I ordered the book last year, curious about what I might find. A good introduction to developing software for the Amiga operating system is a rare thing, and as far as I know nobody has attempted to make one since the early days when publishers such as Sybex did splendid work in this field. I name "Amiga programmer's handbook" (volumes I and II) and "Programmer's guide to the Amiga" as the best books in this field (which I, so it happens, didn't discover until years later, after I had already learned a lot about the craft in my own bumbling ways).
So, what do you find in this book?
The author begins quickly by outlining how you get started with the Native Development Kit, which contains all the basics you need to develop Amiga software. You may need an assembler tool (Asm-Pro being offered as a good choice) or a 'C' compiler (vbcc is offered as a good choice). Then the fundamentals of the system design are covered by starting with the 68000 CPU architecture, its instruction set, constraints and peculiarities. As you may find out very quickly, the author has a proclivity for 68k assembly language development when programming the Amiga. Development using the 'C' programming language is touched upon, but the main point is in covering how to make use of the Amiga operating system using assembly language programming.
After this introduction to the system, the operating system's main components are covered in a form which I would call a "digest" of both the AutoDocs (which are the detailed, but sometimes not detailed enough, pieces of the operating system documentation) and select details one may find only in the Amiga ROM Kernel Reference Manuals (which provide context and show how the pieces described in the AutoDocs fit together). You can learn about the memory management, the multitasking functions, device I/O, the graphical user interface, the building blocks which underpin it, and the dos.library. An entire chapter is dedicated to how you would make use of the trackdisk.device which controls access to the floppy disk drive which you may use to read and store data permanently.
The digests, as I called them, are retellings of what you could find in the AutoDocs, which themselves are already very terse. Which functions are mentioned in these sections apparently is determined by their utility if you want to build something quickly, allowing you to experiment and get a grip on how to develop Amiga software. Portions of the Amiga operating system which are not mentioned here, such as icon.library, could arguably be explored further by having learned in the book how the other operating system components work, and how they work together. As the book's title says, it is an introduction.
These digests are generally well-written, but they also contain curious omissions which might just handicap you if you tried, for example, the graphics.library Flood() function. No mention is made that for Flood() to be used you need use a RastPort with a correctly set up TmpRas and how you would do that. Not knowing how this accomplished, you'll only get memory corruption and worse...
The book covers operating system functionality which would have been available in 1987 but also makes mention of features present only in later operating system versions, such as Kickstart 2.0 and 3.0. The target machines mentioned to develop software for are the Amiga 500, Amiga 500+ and the Amiga 1200. All of these are entry level machines the likes of which people such as myself got their start on back in the day.
Looking back, I would say that this is as good an introduction to Amiga programming as a novice might find who's inclined to favour assembly language programming. Smaller errors (e.g. how to not to use the graphics.library Flood() function) are present but could be revised in later publishing runs. One big obstacle I can see is in that data structures (such as used for the Intuition Window and Screen) are explained in 'C' language syntax which would be a big problem for assembly language programmers, especially novices.
As a hobbyist you might be well-served by this introduction. Compared to the books of yore as published by Sybex I do feel, however, that "Classic AmigaOS programming" fails to build the knowledge you need in order to develop software for the Amiga operating system like Rob Peck's "Programmer's guide to the Amiga" did. Where "Classic AmigaOS programming" tends to be somewhat anecdotal, Rob Peck's book is much more structured in how it teaches the craft. And Eugene P. Mortimore's "Amiga programmer's handbook" is much, much, much better researched and written than the digests offered in "Classic AmigaOS programming" and also strives to document the entire operating system as it was in 1987 (and succeeds: its contents rival if not outshine the AutoDocs of the Kickstart 1.3 days).
As an Amiga software developer who's been around a bit and paid his dues several times over while pretending to have learned something from the Amiga operating system documentation available to him at the time, would I buy "Classic AmigaOS programming" given the options? I sure would do. Would I be on the right path to learn and grow beyond being a hobbyist, content to use a portion of the operating system as I was shown here? No, sadly, not. But then 68k assembly language programming or 'C' language programming on the Amiga is not for everyone anyway, and, you probably might have heard it before, it always was a harsh and unforgiving environment to begin with. Small errors, easily overlooked by the beginner, would be punished harshly and very swiftly. "Classic AmigaOS programming" might just help to run more quickly and more deeply intro trouble without understanding your predicament. As with 'C' language programming, and certainly 68k assembly programming, you'll find enough rope to hang yourself with unless you learn piece by piece first how trouble looks like and how to avoid it. For the likes of me, it can take years, but it can also be fun at the same time. It pays to read the ROM Kernel Reference Manuals and not to get stuck with the AutoDocs. Enough said...
Last edited by olsen on 23-Nov-2021 at 06:04 PM.
Last edited by olsen on 23-Nov-2021 at 06:04 PM.
Last edited by olsen on 23-Nov-2021 at 06:03 PM.