2

I would like to learn how to write drivers for Amiga OS. Seems like a daunting task, but I have spare time and I find great value for amiga (CDTV) community in particular. Currently if a CD ROM breaks there is no driver to replace it with a modern equivalent, nor use CD under any accelerator (apart from expensive and ancient stuff like savyna).

If it was AWS or GCP you just type in xxx learning path and there you go. Here, I simply have no idea where to start. Should I learn 68k architecture, amiga hardware reference manual, HxD, assembler? Or is it still possible to hire someone skilled in this tech do do it for me? This is 30 years old, obsolete tech, the community is amazing, but we are hobbyists after all. What do you suggest to start with?

6
  • 1
    In the old days, there were books... "Amiga Programmer's Handbook", Volume 1, Chapter 1. And all of Volume 2. It's not so bad - just normal C programming with a pretty sweet API.
    – Brian H
    Oct 24 '20 at 18:49
  • 1
    I don't even know what AWS and GCP are! But I have written drivers for Amiga OS. What driver(s) do you want? Oct 24 '20 at 20:51
  • @BruceAbbott I think AWS is supposed to be Amazon Web Services and GCP is supposed to be Google Cloud Platform.
    – ssokolow
    Oct 24 '20 at 22:34
  • @BruceAbbott please reach out if you can help, exxoshost.co.uk/forum/…, the talk is about cdtv.device driver Oct 24 '20 at 22:38
  • it's not because it's difficult to make an existing driver work on modern configuration that it's easier to write one from scratch. Writing a driver for amiga, specially a CD driver is far from trivial. It's a better bet to try to make the existing ones work or patch them, like it's attempted currently at EAB Oct 25 '20 at 9:51
3

Amiga device drivers aren't too hard to write, but the terminology and how we write software has changed in the last 35 years so it would seem quite alien if you weren't there the first time round. It is mostly boilerplate due to having to use C and all of its manual memory allocation and other tedious makework. However, you would need to learn enough about the platform to have a chance of knowing which boilerplate to use. Commodore provided example code for basic drivers, but these assume you have a specific C compiler and development kit, which I certainly didn't have back in the day, so you'd either need to figure out the missing headers or acquire a yo-ho-ho copy of the compiler.

If you want this badly enough to spend money on it, hiring somebody who was active in Amiga development would be a much easier solution and produce better results than starting from scratch yourself. I'd be inclined to approach Matthew Dillon for this.

However, it's possible that you don't need to do this at all. (Some versions of) the CDTV's extended ROM don't play nicely with newer Kickstarts, but the ROM only provides the device driver, ISO9660 filesystem, and the fancy menu. The latter is not necessary to boot CDTV discs. I know this because I lashed together bits of Aminet and some scripts (which detected the presence of a CD, and assigned C:/Devs:/etc to it before executing the CD's Startup-Sequence) to boot them on my Amiga 4000 with an Apple CD300 drive.

As it happens, I too have a CDTV where the CD-ROM drive no longer works, but I have not yet attempted to fix it. However, one approach would be something like this: I also have a Vampire board, which replaces the Kickstart and provides a PATA port, and I'd install it in the CDTV. It's possible that the extended ROM would crash with the fancy 68080 Kickstart, so I'd remove said ROM if so. The CDTV would now be essentially just a standard Amiga 500 with Vampire at that point. I would then attach a disk (likely an SSD with a PATA-SATA converter) and a DVD drive from the spare parts bin to the Vampire, install AmigaOS and the CD-ROM drivers from Aminet, and then recreate the scripts from 25 years ago.

While I have little doubt that this hack would work, it's unlikely to fit in the CDTV's case. But the problem there is with physically mounting hardware and making it look tidy, and not drivers as per your question.

1
  • I may actually start a kickstarter campaign to get money for someone to do it. Oct 25 '20 at 8:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.