Deaccelerating The Apple IIc Plus

The Apple IIc Plus is arguably – very arguably from my experience – the best Apple II computer ever made. It’s portable, faster than the IIe, had a much higher capacity built-in drive, and since the Plus could run at 4MHz, it was faster than the strange eight or sixteen bit Apple IIGS. Recently, [Quinn] has been fascinated with the IIc Plus, and has gone so far as to build a custom gamepad and turn the IIc Plus into a laptop. Now, she’s turned her attention to the few things Apple got wrong with the Apple IIc Plus – the startup beep and defaulting to 4MHz on every boot instead of Apple II’s standard 1MHz that’s used in the Apple II, II Plus, IIe, and IIc non-Plus.

The original Apple II is surprisingly primitive. Apart from writing a loop of NOPs and counting cycles, there’s no way to keep time. There is no clock, no timer, no tick counters, and no interrupts. If you’re writing a game for the Apple II that depends on precise timing, the best you’ll be able to manage is a delay loop. This worked for a time, until the Apple IIc Plus was released with a default clock of 4MHz. It was a great idea for AppleWorks and other productivity apps, but [Quinn] is doing retrocomputing, and that means games. Booting the Apple IIc Plus into its 1MHz mode means turning it on and holding escape while resetting the computer every time. It’s very annoying, but a mod to make the IIc Plus run at 1MHz by default would turn her into one of the most accomplished currently active Apple II developers.

The process of booting into the IIc Plus’ 1MHz mode requires holding down escape while restarting the computer. This should tell you something: it’s not a hardware switch that changes speed. It’s in the ROM, and that means diving into the Technical Reference Manual, looking at the listings in the ROM monitor, and figuring out how everything works.

The IIc Plus ROM is incredibly complex – it’s 32k of hand assembled code with jump tables bouncing everywhere. After a ton of research, [Quinn] successfully reverse engineered the ‘slow down if the ESC key is pressed’ routine, allowing her to boot the machine at 1MHz by default, and 4MHz if there’s a soft reset with the option key pressed. Everything works great, and [Quinn] has the video to prove it

This isn’t [Quinn]’s first attempt at hacking the lowest levels of the Apple IIc Plus ROM. Because the IIc Plus ran at 4MHz by default, the startup beep was so very wrong. She fixed that, and with two very useful patches under her belt, she burned a few new chips with her ROM patches. In total, there’s only a few dozen bytes of hers in the new 32k ROM, but that’s enough to make her one of the top current firmware developers for the Apple II platform.

Error Detection and Correction: Reed-Solomon, Convolution and Trellis Diagrams

Transferring data without error when there is a lot of background noise is a challenge. Dr. Claude E. Shannon in 1948 provided guidance with his theory addressing the capacity of a communications channel in the presence of noise. His work quickly spread beyond communications into other fields. Even other aspects of computer use were impacted. An example is the transfer of data from a storage medium, like a hard drive or CD-ROM. These media and their sensors are not 100% reliable so errors occur. Just as Shannon’s work defines communication channel capacity it defines the transfer rate from a media surface to the read head.

Shannon told us how much could be passed through a channel but didn’t say how. Since 1948 a lot of research effort went into accurately detecting errors and correcting them. Error correction codes (ECC) add extra bits to messages, but their cost pays off in their ability to work around errors. For instance, without ECC the two Voyager spacecraft, now leaving our solar system, would be unable to phone home with the information they’ve gathered because noise would overwhelm their signals. Typically in hardware, like memory, error correction is referred to as ECC. In communications, the term forward error correction (FEC) is used.

Robust communication, or data transfer, is a combination of fancy software and tricky signal processing. I’m going to focus on the software side in this article. You may find some of these techniques useful in communicating data among your devices. While I’ll be using the term communications keep in mind this is applicable to transferring data in general.

Continue reading “Error Detection and Correction: Reed-Solomon, Convolution and Trellis Diagrams”

Giving WiFi To An Apple Newton

The Apple Newton gets a bad rap, partly because of the bad handwriting recognition of the first version of the firmware, and mostly because Steve Jobs hated it. Those who know of the Newton love the Newton; it has an exceptionally well-designed interface, the handwriting recognition is great with updated firmware.

[Jake] has the king of the Newtons – a MessagePad 2100. There’s a hidden port in this machine for a modem card, but Apple never made one. While other Newton aficionados trudge along with old PCMCIA WiFi cards that only support 802.11a without WPA2, [Jake] thought it would be possible to build a modern WiFi card for the Newton. He succeeded, opening the door to modern networking apps on the finest tablet Apple will ever make.

Oddly, this isn’t [Jake]’s first attempt at expanding the capabilities of his Newton. There’s an internal serial port inside the MessagePad 2×00, and a few years ago [Jake] tried to build an internal Bluetooth card. The RF design didn’t work, but with a few more years of experience, [Jake] figured he had the skills for the job.

The critical piece of hardware for this build isn’t an ESP8266 or other common WiFi module. Instead, a WiReach module from ConnectOne was used for the built-in PPP server. This allows legacy hardware to use standard AT modem commands to access a WiFi network. It’s a very interesting module; there is a lot of hardware out there that speaks PPP natively, and a module like this could be a drop-in replacement for a modem.

That said, thanks to unintelligible and ‘Apple Classified’ documentation, getting this card working wasn’t easy. The APIs to access the internal serial slot were never documented, and it took a bit of time with a disassembler to figure out how to address the port correctly.

[Jake] has pushed all the files for his project up to Github. This includes the design files for the PCB, the Newton software that enables WiFi, and a nifty 3D printed port cover that shows off the new wireless capabilities of Apple’s greatest tablet.

Ancient Fonts are Fontastic!

Doing some 8-bit ASCII art, but can’t remember where you left your copy of MicroKnight for the Amiga? Or maybe you just need some low-res-but-high-style bitmap fonts to go with your LED pixel array. No fear! Maze.io is cataloguing old text-mode fonts for you.

Textmode.es has a slew of new and old text art from both the Amiga and PC scenes. Rendering some of these correctly really relies on having the right font, so the parser piece reads many different art file formats and renders them with the requested fonts. There’s ASCII, sure, but also ICE Draw, PCBoard, Artworx, and many more. But piece needs the right fonts to do its work, which brings us back to Maze.io.

So whether you’re interested in new or old text-mode art, or just in need of some pixels to push around, have a look at Maze.io. And if you see any ROMs out there with interesting fonts, let them know.

Title image credit trueschool.se

Grandma’s Phone, DSL, and the Copper They Share

My DSL line downloads at 6 megabits per second. I just ran the test. This is over a pair of copper twisted wires, the same Plain Old Telephone Service (POTS) twisted pair that connected your Grandmother’s phone to the rest of the world. In fact, if you had that phone you could connect and use it today.

18zbmki8n3xgkjpgI can remember the old 110 bps acoustic coupler modems. Maybe some of you can also. Do you remember upgrading to 300 bps? Wow! Triple the speed. Gradually the speed increased through 1200 to 2400, and then finally, 56.6k. All over the same  of wires. Now we feel short changed if were not getting multiple megabits from DSL over that same POTS line. How can we get such speeds over a system that still allows your grandmother’s phone to be connected and dialed? How did the engineers know these increased speeds were possible?

shannon_maze_hr
Claude Shannon with his maze running mechanical mouse

The answer lies back in 1948 with Dr. Claude Shannon who wrote a seminal paper, “A Mathematical Theory of Communication”. In that paper he laid the groundwork for Information Theory. Shannon also is recognized for applying Boolean algebra, developed by George Boole, to electrical circuits. Shannon recognized that switches, at that time, and today’s logic circuits followed the rules of Boolean Algebra. This was his Master’s Thesis written in 1937.

Shannon’s Theory of Communications explains how much information you can send through a communications channel at a specified error rate. In summary, the theory says:

  • There is a maximum channel capacity, C,
  • If the rate of transmission, R, is less than C, information can be transferred at a selected small error probability using smart coding techniques,
  • The coding techniques require intelligent encoding techniques with longer blocks of signal data.

What the theory doesn’t provide is information on the smart coding techniques. The theory says you can do it, but not how.

In this article I’m going to describe this work without getting into the mathematics of the derivations. In another article I’ll discuss some of the smart coding techniques used to approach channel capacity. If you can understand the mathematics, here is the first part of the paper as published in the Bell System Technical Journal in July 1948 and the remainder published later that year. To walk though the system used to fit so much information on a twisted copper pair, keep reading.

Continue reading “Grandma’s Phone, DSL, and the Copper They Share”

Building One Thing In China

Conventional wisdom dictates that if you need to make a million of something, you go to China. China is all about manufacturing, and there aren’t many other places on the planet that have the industry and government-subsidized shipping that will bring your product from China to people around the world. Building a million things in China is one thing, but what about building one thing? How do you create a working prototype of your latest product, and how do you make that prototype look like something that isn’t held together with zip ties and hot glue? The folks at Hatch Manufacturing have a guide for doing just that, and lucky for us, it’s a process that’s easy to replicate in any well-equipped shop.

In this tutorial/case study/PR blitz, Hatch Manufacturing takes on constructing a one-off smartphone. The Huaqiangbei markets in Shenzhen are filled with vendors selling smartphones of all shapes and sizes. If you want a miniature iPhone running Android, that’s no problem. If you want a phone that looks like a 1969 Dodge Charger with the Stars and Bars on top, you can find it in China. But how are all these phones made, and how do you show off a prototype to factories begging for business?

The answer, as is always the case, comes from one-off manufacturing. Building, assembling and reworking PCBs is a well-trodden path whose process could fill several volumes, but for this post, Hatch Manufacturing decided to focus on the plastics that go into a smartphone or tablet.

Once the case or enclosure is designed with a few CAD tools, a block of plastic is run through a mill. After that, it’s a matter of painting and finishing the latest smartphone that will show up in the Chinese market. Putting a professional finish on a block of plastic is something that will look familiar to anyone who has ever assembled a miniature plastic model. There’s priming, airbrushing, sanding, more painting, sanding, wet sanding, and still more sanding. After that comes polishing the plastic part to a fine finish. It is extraordinarily labor intensive work even for a skilled hand with the right equipment.

Once the plastics are done, the PCB, display, battery, and everything else comes together in a completely custom one-off prototype. It’s very similar to how this would be done in any small shop with a benchtop mill and a dozen grades of wet/dry sandpaper. It’s also something anyone can do, provided they have enough practice and patience.

Most Beautiful Mini-Galaga-Pi Ever!

The problem with click-bait titles, besides the fact that they make the reader feel cheated and maybe a little bit dirty for reading the article, is that they leave us with nothing to say when something is truly outstanding. But the video of [Tiburcio de la Carcova] building up a mini-Galaga cabinet (complete with actual tiny CRT screen from an old portable 5″ TV) is actually the best we’ve ever seen.

Plywood is laser-cut. Custom 3D printed parts are manufactured and assembled, including the joysticks and coin door. Aluminum panels are cut on a bandsaw and bent with a hand brake. Parts are super-glued. In short, it’s a complete, sped-up video of the cutting-edge of modern DIY fab. If that’s not enough reason to spend four minutes of your time, we don’t know what is.

[Tiburcio] has also made a mini Space Invaders, and is thinking of completing the top-20 of his youth. Pacman, Asteroids, and Missile Command are next. We can’t wait.

There are (ahem) a couple of Raspberry-Pi-powered video game emulators on Hackaday, so it’s a little awkward to pick one or two to link in. We’ll leave you with this build that also uses a small CRT monitor to good effect albeit in less-fancy clothing.

Continue reading “Most Beautiful Mini-Galaga-Pi Ever!”