Back in the early 90’s the Canadian company Gravis came out with a range of sound cards called “Ultrasound”, or GUS for short. They were meant to be Adlib and Sound Blaster compatible, as well as having a versatile Wavetable synth, which could be populated with custom samples. It was similar to what the Amiga did, but with way more concurrent samples or channels. The Sound Blaster compatibility was lacking at best, or non functional in other games. So at one point Gravis left out all that made the GUS compatible and simply put the Ultrasound part on a card called the Audio Card Enhancer (ACE). This card is very sought after nowadays, as you can simply plug it into a retro machine alongside an existing SoundBlaster card. Let’s have a look at it!
In my Let’s Code MS-DOS series we already did a little bit of assembly language. However I think it is more fitting if I start a new series on x86 assembly, as I want to keep the original series so that it uses only C and BASIC. This series will use Oscar Toledo’s book “Programming Boot Sector Games” as a guideline, and we will use examples from his book as a foundation. Many thanks to Oscar for allowing me to do this. In this first episode we will start off simple, with the classic “Hello World” program.
In the last episode we refurbished a corroded “Zelda – The Ocarina of Time” cartridge for the Nintendo 64. After this the cartridge worked fine, however I was not happy with how broken the gold edge fingers on the cartridge looked. So I looked around and wondered: maybe someone designed a replacement PCB for old cartridges? And sure enough: The N64 Preservation Project has PCB designs for the four major cartridge types. So I ordered some PCBs and we can rebuild the cartridge from the ground up!
Some months ago I acquired a Nintendo 64. It was missing a controller, power supply and games, and since then I got the missing parts as well as a wonky cartridge of “Zelda: Ocarina of Time”. When trying the cartridge it wouldn’t to anything, the screen stayed black. Closer inspection revealed that the edge connector of the cartridge was pretty corroded.
I am using an ancient German telephone, which goes by the name “FeTAp 751”, or Fernmeldetischapparat for short. It is a lovely orange 80s piece of equipment. But it has one drawback: it only supports pulse dialing, which isn’t supported by my WiFi router anymore. Since all German landlines use tone dialing by now, I can’t connect this phone directly, but need a converter. That converter used to work on a different router, but doesn’t on this one. So we will swap out the whole numberpad! The German Postal service made a similar phone with tone dialing. And you can still get a tone dialing number block as “new old stock”. So let’s swap it out and see if we can start calling people again!
One of the effects that is easy to do on machines like the C64 or Amiga is the „melting screen“. In theory you can do such things just by copying lots of pixels in video memory. However the VGA is rather slow for doing that. So what we will do instead is cleverly manipulating the CRTC registers of the VGA to achieve a similar effect. This lets us move big portions of the screen without actually copying any bytes.
About a year ago I acquired a very cheap Atari 2600 Jr. It had only RF output, so I can’t use it on my CM8833-II monitor. A composite mod was required. I decided this time around to get the deluxe mod from The Future Was 8bit and see if it’s worth the extra expense. For extra points, after opening up the Atari, I noticed I have one of the more rare variants without the big metal RF modulator box, but instead have a bunch of discrete components on the board. So where to get the instructions? Luckily archive.org never forgets!
Some time ago I acquired a very affordable Commodore 1541 drive. This is the original one that came with the earliest C64s, and it is an absolute unit of a floppy drive. It contains a pretty hefty transformer and lots of metal parts. This device came es untested/defective, and sure enough: both LEDs stayed on after power up. So I took to it to try and get it repaired.
Back in 1993 two Finnish demoscene coders by the names of Dweezil and Tsunami came up (probably independently?) with a graphical effect that became known as the infinite fractal zoomer. Sometims it’s also called the Dweezil zoomer. The Linux xscreensaver knows it by the name of Kumppa. It is a clever and simple algorithm which allows even pretty slow machines to do an impressive infinite rotating zoom. Today I will talk you through the algorithm and we will do the actual implementation in Turbo C, using VGA 320×200 and 256 colors.
I love those little SMD soldering kits for practicing manual surface mount component soldering. They are only 2-3 EUR each and you can practice your skills before you try and repair you precious vintage hardware or broken modern console or laptop. This time I got a nice kit from a Chinese seller which includes (Chinese) instructions and actually can be tested without a testing harness, simply by looking at the LEDs. So let’s do some soldering!