ctsnet
mdg
media
photography
software
web sites
writing
|
|
|
|
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.

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


 

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

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

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

 

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

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

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

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

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

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