Learning 68k assembly – now or never
Novel was so blown away by the Amiga Compos after the 2019 revision that he decided – once again – to learn assembler. This time he made it through the first chapters of RamJam’s „Corso di Assembler“ in no time – and discovered a few more opportunities that 2020 has to offer for future Amiga coders.
A new old trend
The competitions at Revision 2019 and GERP 2020 proved it once again: The Amiga is still alive and kicking and the Amiga scene is all the more capable of setting standards in terms of design, concept and storytelling. But above all, the stories of releases like EON by TBL or Coda by Abyss show that there are still new tricks and methods to be discovered that can impress the aging masses all over again.
The A500 has become the central compo platform in recent years.
It is notable that the Amiga 500 in particular has developed to become the central compo platform in recent years. 512 kb chipram, expanded to a maximum of 1 MB, which was the gaming standard of its time, are supposed to be sufficient. After many years in which various Amiga configurations stood out from each other due to AGA, 060s, PowerPC, graphics card or RAM requirements, the direct comparability between the entries is again given. Some people also catch themselves thinking about the retro-funfact that today’s production would have run in the same way in 1987.
Why is the Amiga 500 state of the art again in the Amiga scene? On the one hand, this could be because it is a clearly defined platform that filled millions of afternoons in children’s rooms in its standard configuration. Fortunately, it has never been as easy as it is today to start programming the Amiga.
When the Amiga and the 68k were standard, there were of course various resources. Anyone who tried to program on the 68k during Commodore’s lifetime could learn from books and magazines. The CPU was also quite popular at universities for computer science studies. However, you have to bear in mind how uncommon computers were at the time. Adult education courses from the time were mainly concerned with the introduction to computer operation itself, specific programming courses on the Amiga mostly only dealt with BASIC.
So if you wanted to become a real democoder, you had to find another way. Through swappers or dubious magazine advertisements, you got the demos and some contacts who gave you a first insight. If you actually had access to an assembler that you could buy in a shop for a lot of money, you had to keep on changing disks and, thanks to trial and error, laboriously load the workbench over and over again until the desired address had arrived in the right register. And if it didn’t work after all, the only way to ask questions was to reach for the landline phone, hoping that your buddy had more clue. Fortunately, back then you had time for such things, because you were a schoolchild enjoying summer holidays and not having to cook dinner, vacuum, do your tax return or change any nappies.
The Corso di ASM by RamJam
Scicco/Scarab also used the advantage of his still youthful hour. After his first demo party, the Mekka & Symposium 1999, to which he had been dragged by Lubber/Pandua, he thought: I want to do something like „Grid“, Nature’s Winner-40k. So he spent the following weeks at his Amiga 2000 greedily working through Randy/RAMJAM’s assembler course.
The course, which was published in Italian in 1994 and put on the Aminet a year later around Christmas by Martin de Tomaso, contains all the basics that are necessary for creating oldschool demos. After the obligatory introduction to the different types of addressing and basic arithmetic with binary and hexadecimal numbers, the first moving Copperbars are immediately introduced. Images are being converted, displayed, scrolled, the bitplanes are shifted into each other, distorted with the moduolo and finally backgrounded with Protracker modules. Furthermore, fonts are displayed and scrolled and you also learn how to work with sprites.
The second half of the course contains lessons on blitter and more code optimisation. It was translated from Italian to German and put on Aminet just in 2019/2020, yet the translation was apparently done by machine in large parts and still contains systematic errors, at least for the time being. Readers who are familiar with the Italian language are best off reading the original.
Randy had created this in the early 90s. „I always had the habit of writing books or tutorials while learning something new,“he writes. „I have a very short memory, and I memorise better when I write summaries or explanations in my own words.“ Also, many people around him had an Amiga, but there were hardly any courses and hence hardly any developers. He was determined to make it possible for more people to program.
The fact that many people have rediscovered the Amiga and want to learn programming for it motivated the guys from Ram Jam to get back together and make the course better accessible again. As of 2016, Corso Di Assembler is freely downloadable from the Ram Jam website as a 1872-page PDF and can also be ordered as a printed book.
Ramjam founder Yuki, who responded to Jurassic Pack’s request, remembers: „Alessandro (Trantor) did have some spare time. Well… at night. He said: ‚Hey, I have some available night timeslots‘. He had the idea and asked me and Fabio: What about making a LaTeX version of the original ascii course, in order to have a PDF and /or paper printable version of the course in modern book format? We were both excited about such a production, and immediately started to write the prefaces, while Alessandro did a huge, incredible job re-writing the complete book from scratch. The work lasted for several months. I personally spent a lot of time assembling on A-UAE all the lessons, to make the screenshots available in the 1872 pages free PDF e-book.“
„It’s complex to find a translator who knows assembly, Amiga, Motorola and the weird world of the demoscene“
An English version is not yet known, but could one day become reality. „We did plan to make an English version,“ Yuki writes, „but the translation is really a huge job – 1872 pages of technical, informatic and mathematic explanations.“ They had considered paying for a professional translator, but „it’s complex to find a translator who knows assembly, Amiga, Motorola and the weird world of the demoscene“.
Fabio’s old course is still useful today in order to achieve the goal of bringing something demoscenic onto the screen reasonably quickly. Copper effects, bitplanes, displaying IFFs, modulo effects – all this is timeless. Didactic masterpieces should not be expected, given the fact that it was 16-20 year olds who wrote the course. The LaTeX version ought to stay that way, too, „since we did want to preserve the original spirit of documentation written by teenagers.“ Technically, the course could also do with an update, as Thrashm One and the old Kevcon are certainly no longer at the cutting edge. Nevertheless, it remains a clear recommendation for all beginners.
How to continue?
After Scicco had knitted together his first mini-demo based on the course, he had to find more material from other sources. For Chunky to Planar (C2P), he was apprenticed to Yormas/Nature and picked up topics like matrix rotation and vector calculus from a textbook on mathematics. Even PC assembly code from the Internet at the time helped him, for example to learn 3D routines for texture mapping. Did that ever get really tough? „It’s all difficult, somehow, but the things I’ve done in the last few years have been really tricky, the really rad effects, of which you initially think: that’s not actually possible.“ Everything else, Scicco says, has only ever been new territory. So you just have to stick with it, then it will work, somehow.
But how should one motivate oneself? Bifat/TEK clearly recommends: „Visual programming“ to me. Don’t spend too much time on theory, but put something on the screen right away to see that you have achieved something. The rest comes by itself. That speaks in favour of the Corso di Assembler, I guess.
If you can’t get any further on your own, the old tactic of learning the same content from different sources is recommended, e.g. searching for old books or magazines. German-speaking Amigans can download Peter Wollschlaeger’s Amiga Assembler book as a PDF. Also of interest is „The final Assembler Book“ („Das endliche Assemblerbuch„) by Christian Ullenboom, a now successful Java book author who could not find a publisher for his 68k course back in 1993. As for English, the extensive tutorials by Photon/Scoopex, which he has published on YouTube, are particularly worth mentioning. Like the Italian course, his 43-part „Amiga Hardware Programming“ series is oriented towards beginners in scene coding.
On top of that, innumerable websites, Facebook groups and other sources from which to get code and advice are available. Who would have thought in the mid-90s that the Amiga scene would still be so active in 2020? Thanks to emulators and crossassemblers like vasm, as well as the plug-in capability of modern IDEs, it should also become increasingly simple for younger programmers (or at least such programmers who have previously only worked on the PC) to find their way around the Amiga universe. The Amiga scene is looking forward to seeing you!