Software developer Mike Kohn has written of his — impressively successful — effort to bring the Java programming language to an entirely new, though simultaneously old, platform: the Commodore Amiga family, launched back in 1985.
"Since Java Grinder (a Java byte-code compiler) already supports the Motorola 68000 CPU with the Sega Genesis I figured it shouldn't be too hard to extend the MC68000.cxx class to support the Commodore Amiga computer," Kohn writes of his project. "More specifically, the original Amiga 1000.
"This computer is to me a technological work of art. The hardware registers for programming graphics and sound are laid out in a mostly simple way and give the ability of four channel 8-bit sound, hardware sprites, a copper coprocessor, and a blitter coprocessor that independently of the CPU is capable of copying graphical areas, drawing lines, and drawing shapes. Released in 1985, the OS had full windowing interface and could do pre-emptive multitasking."
What it couldn't do, however, is run Java — hardly surprising, given that when Java was released in 1995 Commodore had been bankrupt for a year. Kohn, who has a history of adding support in Java Grinder for classic platforms including the Sony PlayStation 2, Sega Genesis, Atari 2600, and even the Commodore Amiga's eight-bit predecessor the Commodore 64, decided this simply wouldn't do - and set about adding support.
"All my development was done on a Linux box using FS-UAE as an emulator. As usual, getting the software running on a real computer was quite a bit of work," writes Kohn. "I connected the Amiga 500 to an Ubuntu based netbook with a serial USB cable running minicom. Using a terminal program on the Amiga, I was able to transfer the software using the ZMODEM protocol from the netbook to the floppy disk in the Amiga 500. I wasn't sure what baud rate would work so I did it at 9600 baud. Took over 2 minutes for the 140k demo."
Kohn's full write-up is available on his personal website, along with links to his other Java Grinder and Amiga projects.