[ with co-author Dan Gookin. ] This was the more technical follow-up to the original Apple IIGS programming book Dan and I wrote the year before. Though it had fewer pages, it was more challenging to write as it included C, Pascal, and 65816 assembler code for every example.
[ with co-author Dan Gookin. ] This 642-page monster reveals the secrets to programming the Apple IIGS, Apple’s last incarnation of the Apple II series. The IIGS combined the value of the venerable Apple II with the user-friendliness of the Mac. The GS stands for graphics and sound, cutting edge at the time, rivaling that of its Mac brethren for a while. (Trivia: The publisher sorted our hexadecimal toolbox function index in alphabetical order, making it a treat for programmers to follow.)
[ Technical researcher and writer. ] This is the book I really wanted to do because I knew Applesoft BASIC quite well. Although not as radical as the Mac, the Apple II was a big departure from the TRS-80 upon which the original manuscript was based. As a result, much rewriting and new text was needed. There’s even a chapter on loading and saving programs to cassette tape! Gads.
Remembering and celebrating Steve Jobs and my longtime affinity with Apple which profoundly influenced the course my life when I was a young man. (Photo taken with iPhone, of course.)
I’ve been fuming about a recent decision by Netflix to remove a convenient feature of its DVD “queue” management on streaming-enabled devices. Netflix, the company that sends DVDs to my mailbox and streams movies over the Internet, recently revealed plans to eliminate the ability to put a disc-based movie into the mail-order DVD queue. This appears as a button next to movie titles on Netflix streaming apps and devices. The company cites this as a move to make the interface simpler for customers. Was that feature really so complicated? I don’t buy it. There’s something more strategic going and I think I have it all figured out…
MiniScreen reduces the Mac desktop area to that of a smaller Mac. For example, a 15″ display could be demoted to a nine-incher like on the Mac Plus. I developed MiniScreen for testing applications within the display environment of common Macs. It was great for making sure menu bars and dialog boxes would fit.
The price was $39.95. Among many notable customers, I sold many copies to Microsoft and Apple over the years.
I was working on an application version of MiniScreen before I turned my attention to bigger projects… starting an ISP.
MiniScreen-2.0.sea 27K self-extracting archive
RADE is the Real-time Applesoft Debugging Environment, allowing you to explore the guts of a BASIC program, its variables, program flow, and other runtime characteristics without disturbing the program’s memory or screen display. Without RADE, debugging Applesoft BASIC was intensely frustrating and time consuming. With RADE and its powerful features, like stepping, tracing, and breakpoints, debugging is quick and painless. A relatively proficient programmer, I had to pull out the RADE and exterminate several elusive bugs more than once. The stuff really worked, and it worked well and earned great reviews.
InCider/A+ magazine wrote, “RADE is fast, powerful, full-featured, and easy to use. It’s a breath of fresh air . . . a throwback to the days of tight, efficient programming.”
RADE was a collaborative effort with Russell Gibson. Russ and I conceived and developed RADE during the summer of 1992 with Russ doing the programming, and I did the rest. We split the gross revenue fifty-fifty. Daily electronic mail (via the ProLine network, of course) kept the project rolling. Russ and I met for the first time, face to face, only after RADE and the manual were completed.
RADE was the last Apple II product MDG introduced.
RADE-1.0.img 800K ProDOS disk
RADE-1.0.pdf 450K Acrobat file, 48 pages
VirusMD scans an Apple II drive reporting files infected with Apple II viruses, and also offers to fix them. VirusMD repairs damage to volume directories that the viruses cause, and can update your boot blocks if they’re found to be “impure”. This utility sold for $19.95 and included Apple IIGS and 8-bit versions on the disk.
The program landed me an opportunity in 1989 to write an article for A+ Magazine about viruses. After publication, one reader commented in comp.sys.apple2, “As a professional in the computer security game I’d like to publicly complement Morgan Davis on his article in the recent A+ on viruses. It is both well-written and technically accurate.” That was nice to see, as I did not consider myself an expert on computer viruses at the time.
VirusMD-2.1.img 800K ProDOS disk
OMM reminds one of a meditation chant. And in a way, the Object Module Manager (OMM) was a kind of nirvana for me. At the time, object oriented programming (OOP) was the big deal. After wedging a few chunks of machine code into the 48K space along with the operating system, your BASIC code, and its variables, memory management became a nightmare. The OMM created harmony among the growing number of machine language programs needed for fast, efficient 8-bit Apple II applications.
The OMM was the first mechanism to dynamically relocate active code blocks and associated data inside of memory. It allowed you to shuffle code modules on the fly to make the most efficient use of memory. The interface to BASIC applications, which typically would make a CALL to a fixed memory address, was arbitrated by the OMM. So BASIC programs didn’t need to worry about at which address a needed function resided.
Taking a cue from the OOP hysteria, the OMM supported the concept of message passing. This was required for the OMM to perform dynamic relocation, as modules may want to know when they moved around, especially those employing interrupt handlers. And so a set of messages was developed for such housekeeping chores, including user-defined messages so that developers could create intercommunicating modules.
OMM sold for $39.95. It included an extremely handy module called AmperWorks that added scores of fast and helpful functions to BASIC. Easily the least glamorous of all the “back end” tools that ProLine relied on, the OMM marked a critical evolutionary step. Without it, none of it could have worked.
OMM-1.4.img 800K ProDOS disk
OMM-1.4.pdf 317K Acrobat file, 68 pages