cads – Ciaran’s Amiga Development System

I decided to hack my ‘hacked together Amiga dev kit‘ into something more useful. The main downside to the previous setup was that your binary code had to be transferred to the Amiga via a serial link and written to a disk, and then the Amiga could be booted from that disk.

Under the new setup, a custom ‘loader’ is what the Amiga boots into. This waits for binary code to be sent over the serial link, puts it at the appropriate location in memory, and then executes it on command.

As before, for the development machine you need a PC running Linux, with GNU binutils set up for the m68k-elf target. The target machine is ideally an A500 although it ought to work with other Amigas as well. All the code can be found in the git repository.

The loader itself is very small at ~400 bytes, not even half-filling the boot sector. The first step to using the system is to build this and write it to a disk. From that point on, the Amiga should boot from that disk, which takes less than a second. The code relocates itself to the top end of memory, leaving basically the entire machine free for your code. It is then listening on the serial interface for commands to be sent via a very simple ad-hoc protocol. There are two basic commands – a) receive a block of data and store it at a given address in memory, and b) start executing at a given address.

There’s a corresponding python script, sendbin.py, which speaks this protocol and can send binary data (the output of the assemble/link process) and also give the execute command.

The code and script in the ‘test’ directory of the project demonstrate this. With the loader running, execute the ‘a’ script there, and test.asm will be assembled, linked, sent to the Amiga, and executed. Note that when the code executes, the operating system has been nuked, and all interrupts and DMA are switched off. This is a system for hardware junkies only.

Future updates to this system might add remote debugging support, again using the serial link, with an expanded loader.

  1. Andy Turner’s avatar

    Happy New Year Mr C

    I don’t suspect my friend Paul ever came up with that Amiga boot disc did he? I’m sure his friend Mark said he had one somewhere in his parents loft…

    There has been some work along these lines in the NetBeans community. I don’t know much about it, but the following threads provide some information, the first of which fairly randomly flitted across my screen earlier this week:

    http://www.nabble.com/NetBeans-sighting-td21055216.html

    http://markmail.org/message/cfiun665qyjyaxjm

    Best wishes,

    Mr T

    Reply

    1. CiaranG’s avatar

      Happy new year indeed.

      He didn’t, but I managed to locate one on ebay eventually. :)

      Reply

  2. Andy Turner’s avatar

    Jolly good :-) hope to see you this weekend…

    Reply