Morgan Davis

Loading
08.09.2009

MiniScreen

MiniScreen

MiniScreen

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

08.09.2009

Powerless

Powerless

Powerless

The Mac II was one of the first computers to support software-based power-off capability. I wrote Powerless ($19.95) to turn off my Mac at a set time or after a duration. This let me start a time-consuming task (compilation, disk defragmentation, download, etc.) and then have my system shutdown cleanly later.

A new version was being developed when CTSnet came along and stole all my free time. The updated version was an event dispatcher that could shutdown or restart the computer, run an application, play a sound, issue an alert, etc., depending on certain triggers. Triggers included alarm time, countdown timers, idle keyboard or modem activity, etc.

Powerless-2.0.sea 42K self-extracting archive

08.09.2009

RADE

RADE

RADE

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

08.09.2009

VirusMD

VirusMD

VirusMD

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

The Object Module Manager

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.

At this point, I created most of my Apple II software on a Mac IIx using cross-platform development tools. It cost $5,000 new, but saved tons of time.

At this point, I created most of my Apple II software on a Mac IIx using cross-platform development tools. It cost $5,000 new, but saved tons of time.

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

08.09.2009

ModemWorks

ModemWorks

ModemWorks Communications Toolbox

ModemWorks Technical Reference

ModemWorks Technical Reference

Dan Gookin, famous computer book writer, jokingly called me Modem Davis due to my deep interest in telecommunications. To program modems effectively and make ProLine go, I had to devise a communications toolbox. So ModemWorks was developed.

If you knew 6502 or 65816 assembly language, and had a lot of time on your hands, you could write your own serial port and modem drivers. But most Apple II users wanted a fast and easy solution they could use from BASIC. ModemWorks let them easily turn ordinary BASIC applications into online tools, and took care of all those messy details that made writing modem-based programs a hassle.

In 1984, the Hayes Smartmodem 1200 let you download text faster than you could read it.

In 1984, the Hayes Smartmodem 1200 let you download text faster than you could read it.

Since users had different types of computers and modems, ModemWorks needed easily interchangeable parts that integrated efficiently. This inspired the creation of my Object Module Manager (see below). With a well-documented modular architecture, developers could now easily add their own modules. The ModemWorks Technical Reference (MWTR) guides the advanced programmer through the steps needed to develop custom modules.

According to our sales database (which I wrote in FoxBASE), we sold more copies of ModemWorks than any other product. The credit goes to a headstart from Living Legends Software, an early shareware co-op experiment that I conducted with Jerry Hewett in the early 80s.

Prophetic excerpt from page 6 of the Technical Reference:

Rare disk label. Early copies of ModemWorks were distributed as shareware.

Rare disk label. Early copies of ModemWorks were distributed as shareware.

“Let us not believe that even with this new architecture that we will enjoy the cutting edge forever. We may not be communicating using modems in the next eight years. Undoubtedly, new technology will make modems obsolete. Perhaps we’ll connect via high-speed links over direct connections handled for us by the phone (or cable TV?) company. No more Hayes-style AT commands. No more voice-grade lines. We’ll all just network like so many computerized television sets.”

That was written in 1992 long before ISDN, DSL, and high-speed cable were commonplace for Internet access.

ModemWorks-3.1.img 800K ProDOS disk

ModemWorks-3.1.pdf 319K Acrobat file, 72 pages

MWTR-3.1.pdf 135K Acrobat file, 40 pages

08.09.2009

MD-BASIC

MD-BASIC

MD-BASIC

The trouble with ProLine was that it was written in Applesoft BASIC, the computer language burned into the ROM of every Apple II computer. It was a funky version of BASIC, too, with an arcane line editing mode. Since ProLine was modularized among a hundred BASIC programs, management became difficult. That inspired MD-BASIC, an Applesoft “processor” that resembled a C compiler, complete with directives such as #include and the whole C-like thing.

MD-BASIC was written in C (with a little 65816). It ran only on the Apple IIGS but produced BASIC that worked on all Apples

MD-BASIC was written in C (with a little 65816). It ran only on the Apple IIGS but produced BASIC that worked on all Apples

MD-BASIC spruced up Applesoft programs by adding modern constructs such as IF-THEN-ELSE, WHILE-WEND, and support for long, descriptive variable names. Line numbers were now something from the Jurassic period, as MD-BASIC let you use nicely named labels. Plus, it output standard, vanilla Applesoft in a highly compact and optimized format, increasing runtime speed and conserving precious memory. Even better, MD-BASIC let you write your programs in a real text editor, so you could format them properly with copious comments. That was impossible with ordinary Applesoft with its frustrating input mode.

GS+ magazine wrote, “Applesoft may never get better, but writing programs in Applesoft just did. MD-BASIC changes the way people think about Applesoft.”

Like most of my programs, I originally wrote MD-BASIC for me, but realized others would find it just as refreshing and valuable. It was one of our best selling products, retailing for $89.95.

Trivia: An intentional quirk of the MD-BASIC manual is I numbered its chapters by tens, like the old BASIC line numbering technique of yore. Seemed clever at the time.

MD-BASIC-3.0.img 800K ProDOS disk

MD-BASIC-3.0.pdf 500K Acrobat file, 100 pages

08.09.2009

ProLine

ProLine

ProLine

ProLine was the first communications product to truly link Apple II computers to the Internet (known as ARPANET back in the mid 1980s). Users connected via modem to exchange email and Usenet news. ProLine was essentially a version of Unix for the Apple II in less than 48K of memory. By the time I was 30, ProLine had consumed a third of my life.

The leading Apple II and Macintosh magazine, inCider/A+, awarded ProLine five full stars in the December 1992 issue, stating, “ProLine is as powerful as many UNIX minicomputer-based systems, yet amazingly, it runs on a standard Apple II. ProLine is top-notch. You can run ProLine as an independent on-line system, but it gains a new world of capabilities if you network it with other systems.”

Hundreds of ProLine systems were scattered around the globe with sites running in every major country. This contribution to computer users of all denominations brought me more pleasure than notoriety or riches.

The highly-respected Boardwatch Magazine (June 1991) admitted, “ProLine is a network of Apple II systems that are not only tied to each other, but routinely carry Internet News Groups . . . something we just didn’t expect. The speed and power of this BBS running on an Apple II were quite impressive.”

ProLine shipped on two 3.5″ 800K disks and originally sold for $259.95 — a lot of money even today for an application. It consisted of scores of BASIC programs that presented a surprisingly accurate Unix-like environment, complete with a scriptable C-shell and online “man” pages. To produce a nice printed manual, I had to learn the PostScript language — an investment that paid off again a dozen years later when it came time to make a PDF file out of the online manual.

The Apple IIe with 128K -- my first real computer. I had to make ProLine work on an old Apple II+ to run my 24-hour BBS. I later upgraded both machines to the whizzy Apple IIGS.

The Apple IIe with 128K -- my first real computer. I had to make ProLine work on an old Apple II+ to run my 24-hour BBS. I later upgraded both machines to the whizzy Apple IIGS.

My own ProLine system, named pro-sol, operated continuously for over 12 years. In the mid 90s, it interfaced via serial cable to a PC running FreeBSD Unix, connected to the Internet via ISDN. Through that box, you could actually telnet into ProLine. I took it down in 1996 when we moved to a new home and decided not to keep it going. Incredibly, some people are still running ProLine systems today, nearly 20 years after its inception.

Excerpt from the author’s personal note on page 4:

“I started writing a BBS for my brand new Apple IIe, because there were no bulletin board systems that supported my modem back then … ProLine introduced me to many friends and acquaintances, some long forgotten, but many who are good friends today. It allowed me to start my own software business, and helped me buy my first home.”

My fondest memory of working on ProLine was in 1984 when Joe Holt, who wrote code for Beagle Bros, Adobe, and now Apple Computer, spent the summer at my house. He stayed up all night hacking away on ProLine, then would turn over his work and notes (in email) to me the next day to continue coding in between college classes. I’d pass the token to him that evening, and on it went for several weeks.

ProLine inspired several other MDG products: ModemWorks, AmperWorks, OMM, and especially MD-BASIC. These started out as technologies used internally, only to be fashioned into commercial-grade, stand-alone products upon which ProLine depended.

ProLine.1.img 800K ProDOS disk

ProLine.2.img 800K ProDOS disk

ProLine-3.0.pdf 1MB Acrobat file, 335 pages

ProLine source code directory

08.09.2009

MouseTalk

MouseTalk

Published 1987

[ Technical Editor / Programmer. ] I did more programming than writing for the updated MouseTalk manual, and offered plenty of literary tech support. MouseTalk, from United Software Industries, Inc., was a user-friendly terminal program for the Apple II series. It employed mouse technology with unique on-screen pull down menus and dialog boxes. Although it was the easiest modem application at the time, it was built on the powerful ASCII Express Pro framework, creating a robust telecommunications tool for its day.