md   :mdg  services   résumé   portfolio   pursuits   contact 






web sites


  brief history of the morgan davis group
My longtime dream of being a programmer for Beagle Bros, Inc., the coolest Apple software company ever, came true in 1989. But it was not to last.
Visit the Beagle Bros museum
These gents gave me the boot on Friday the 13th, April 1990.
After Beagle was sold to one of its programmers, it was heavy on programming talent, but light on experienced management. The struggling company began laying off employees. The day I was sent home I vowed never again to work for anyone but myself, a promise I would break later (only to ponder again recently).

The best chronicle of my early computer history (including fresh details about Beagle Bros and MDG) is in this GEnieLamp newsletter interview from 1992, posted on the GEnie online service.

So as Beagle was shutting down, the Morgan Davis Group was just booting up. MDG consisted of the three of us (me, myself, and I). Together, we put out several successful products to customers all around the world over a six year period. Here's how we creatively distributed the labor...

Me, being the technical one, conceived and wrote all the software, including support systems, handled all tech support, and administrated ProLine, our 24-hour BBS. Myself, being semi-creative, managed the marketing, designed, wrote and typeset the accompanying documentation, ad copy, newsletters, and press releases. And, finally, I being the hard-working grunt, developed packaging solutions, copied disks, bound manuals, sorted bulk mailings, boxed quantities of products for retail distributors, and schlepped orders to the post office every day. We each put in an eight-hour shift, or so it felt. We were having great fun -- innovating and creating unique, high-quality products like no other schizophrenically-staffed solo company.

Below are products MDG sold commercially, now available for downloading for free. To learn more about them, click on the manual covers to view them in glorious Adobe Acrobat format.

LEGAL NOTICE: This page contains links to copyrighted software that you may download, use for non-commercial purposes, and give away exactly as-is, provided you include this notice. Modifying copies for others or commercial usage requires written authorization from Morgan Davis.

apple ii products

Click to view the ProLine manual

  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

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.

Apple IIe with dual floppy drives
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. It was the reason that I met Dawn, sysop of pro-simasd. We married a couple of years later and have two wonderful kids!"

You've heard about people meeting on the Net and falling in love. I always thought they were kooky, until I realized that's exactly what happened to me, long before anyone had heard of web surfers and cyberspace. But, that's a story for another page.

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. (Trivia: Joe was best man at my wedding in 1990.)

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.

Click to view the MD-BASIC manual

  MD-BASIC-3.0.img 800K ProDOS disk
MD-BASIC-3.0.pdf 500K Acrobat file, 100 pages

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 spruced up Applesoft programs by adding modern constructs such as IF-THEN-ELSE, WHILE-WEND, and support for long, descriptive variable names.
Apple IIGS
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.
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.

Click to view the ModemWorks manual

Click to view the ModemWorks Technical Reference

  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

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.
Hayes Smartmodem
In 1984, the Hayes Smartmodem 1200 let you download text faster than you could read it.
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.

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.

Rare disk label.
Early copies of ModemWorks were distributed as shareware.
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:

"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.

Click to view the Object Module Manager manual

  OMM-1.4.img 800K ProDOS disk
OMM-1.4.pdf 317K Acrobat file, 68 pages

The title reminds one of a transcendental 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.

Macintosh IIx
At this point, I created most of my Apple II software on a Mac IIx using cross-platform development tools. It cost $5000 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.

Click to download the VirusMD disk

  VirusMD-2.1.img 800K ProDOS disk

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.

Click to view the RADE manual

  RADE-1.0.img 800K ProDOS disk
RADE-1.0.pdf 450K Acrobat file, 48 pages

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.

macintosh products

MiniScreen 2.0

  MiniScreen-2.0.sea 27K self-extracting archive

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.


  Powerless-2.0.sea 42K self-extracting archive

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.

what i learned
Aside from the endless lessons that come with running your own business, the MDG years allowed me to dabble in (and sometimes master) several computer-related subjects:

   Programming Languages
  • 6502, 65C02, 65816, and 68000 assembler
  • APW C, MPW IIGS C, THINK/Symantec C
  • FoxBASE
  • PostScript
  • HyperScript
  • Bourne shell, C-shell, and BASH scripting
  • Many software development environments
   Hardware/firmware/ROM Interfaces
  • Various internal modem cards
  • Hayes AT command set for many modems
  • High-speed serial communications controllers
  • Serial and parallel printer interfaces
  • Apple IIGS and Macintosh toolboxes
  • Clocks, timers, and interrupt controllers
   Operating Systems
  • Apple ProDOS and GS/OS
  • Macintosh HFS
  • Variations of System V and BSD Unix
   Computer Sciences
  • Computer human interfaces
  • Communications protocols
  • Compiler design
  • Event-driven application model
  • Extreme code optimization
  • Integrating modular applications
  • Operating system development
  • Object oriented programming
  • Multiuser systems application development
  • Computer virus identification and eradication
  • Cross-platform development
...and a lot more that escapes enumeration, but all of it the foundation for what was to come next: CTSnet.