jmtd → log → amiga → Amiga floppy recovery project scope
This is the eighth part in a series of blog posts. The previous post was First successful Amiga disk-dumping session. The next post is Amiga floppy recovery project: what next?. The whole series is available here: Amiga.
The main goal of my Amiga project is to read the data from my old floppy disks. After a bit of hiatus (and after some gentle encouragement from friends at FOSDEM) I'm nearly done, 150/200 disks attempted so far. Ultimately I intend to get rid of the disks to free up space in my house, and probably the Amiga, too. In the meantime, what could I do with it?
The most immediately obvious things are to improve the housing of the emulated floppy disk. My Gotek adaptor is unceremoniously balanced on top of the case. Housing it within the A500 would be much neater. I might try to follow this guide which requires no case modifications and no 3D printed brackets, but instead of soldering new push-buttons, add a separate OLED display and rotary encoder (knob) in a separate housing, such as this 3D-printed wedge-shaped mount on Thingiverse. I do wonder if some kind of side-mounted solution might be better, so the top casing could be removed without having to re-route the wires each time.
Next would be improving the video output. My A520 video modulator developed problems that are most likely caused by leaking or blown capacitors. At the moment, I have a choice of B&W RF out, or using a 30 year old Philips CRT monitor. The latter is too big to comfortably fit on my main desk, and the blue channel has started to fail. Learning the skills to fix the A520 could be useful as the same could happen to the Amiga itself. Alternatively replacements are very cheap on the second hand market. Or I could look at a 3rd-party equivalent like the RGB4ALL. I have tried a direct, passive socket adaptor on the off-chance my LCD TV supported 15kHz, but alas, it appears it doesn't. This list of monitors known to support 15kHz is very short, so sourcing one is not likely to be easy or cheap. It's possible to buy sophisticated "Flicker Fixers/Scan Doublers" that enable the use of any external display, but they're neither cheap nor common.
My original "tank" Amiga mouse (pictured above) is developing problems with the left mouse button. Replacing the switch looks simple (in this Youtube video) but will require me to invest in a soldering iron, multimeter and related equipment (not necessarily a bad thing). It might be easier to buy a different, more comfortable old serial mouse.
Once those are out of the way, It might be interesting to explore aspects of the system that I didn't touch on as a child: how do you program the thing? I don't remember ever writing any Amiga BASIC, although I had several doomed attempts to use "game makers" like AMOS or SEUCK. What programming language were the commercial games written in? Pure assembly? The 68k is supposed to have a pleasant instruction set for this. Was there ever a practically useful C compiler for the Amiga? I never networked my Amiga. I never played around with music sampling or trackers.
There's something oddly satisfying about the idea of taking a 30 year old computer and making it into a useful machine in the modern era. I could consider more involved hardware upgrades. The Amiga enthusiast community is old and the fans are very passionate. I've discovered a lot of incredible enhancements that fans have built to enhanced their machines, right up to FPGA-powered CPU replacements that can run several times faster than the fastest original m68ks, and also offer digital video out, hundreds of MB of RAM, modern storage options, etc. To give an idea, check out Epsilon's Amiga Blog, which outlines some of the improvements they've made to their fleet of machines.
This is a deep rabbit hole, and I'm not sure I can afford the time (or the money!) to explore it at the moment. It will certainly not rise above my more pressing responsibilities. But we'll see how things go.
Comments
I developed software for the Amiga. The first C compiler available was from Lattice, and I think it was used to develop most applications. Somewhat later Manx C appeared. I switched over to that as soon as I could, and never looked back. It ran faster and produced more efficient code, with binaries about 1/3 or 1/2 half the size I was getting from the Lattice compiler.
To be proficient at Amiga software development, you had to buy the Amiga ROM Kernel Reference Manual set from Commodore. The last time I looked, I was not able to find the complete set online. The manual set covered three major parts of the Amiga system: AmigaDOS, the CLI based on the Tripos operating system, and written in BCPL. Intuition was the user interface (GUI), and the rest of the programming manuals were about accessing the custom chips for high-performance graphics and 4-channel sound.
I believe most commercial Amiga games were written in assembly or C. Some were written in Basic implementations like Blitz Basic (including Worms) or AMOS (using the compiler add-on).
There were many C compilers available. I think the most widely used for commercial development was SAS C (formerly Lattice C). I tried some cheaper options including NorthC (K&R C, not very good at all) and DICE (C89, fast and reliable). The ADE (later Geek Gadgets) project ported the GNU toolchain but I seem to remember that its output required a large run-time library - a bit like Cygwin.