ADOS... Arts' Disk Operating System... by Art FlexserA crucial step in the development of ADOS occurred in1983 when I decided to buy a Lowerkit for my CoCo 1 fromDennis Kitsz’s Green Mountain Micro. I did this mainly tohave lowercase available for telecommunicating, which Iwas doing quite a lot of on CompuServe’s CoCo SIG. Mypreferred terminal program at the time was <strong>Color</strong>com/E. Itwas able to use a software-generated upper/lowercase displayon the PMODE graphics screen, but output to that wasa bit sluggish for my tastes. In order to have lowercase onthe regular 32 column hardware display, I needed one ofKitsz’s gizmos, so off went my check in the mail.But soon, it began to bother me that whenever I would typea BASIC command in lowercase, all I got for my trouble wasthe familiar ?SN ERROR. I wrote a little ML patch forBASIC to make it understand lowercase commands. Thisexercise was intellectually satisfying to some degree, butwas not of much practical value to me; LOADMing it wasmore bother than just switching to uppercase.Meanwhile, on CompuServe, I had run across a bunch ofsmall utilities by various people to remedy assorted shortcomingsof the CoCo’s stock BASIC. There were patchesfor automatic line-numbering , 40 tracks, fast step rates, anda few others, including a particularly nice one for editing thelast direct-mode command, contributed by Bill Dickhaus,who later gave permission for me to use it in ADOS. Afterthe 64K upgrade became available, several people on theCompuServe SIG put a number of these patches into a 64Kprogram called DOS64.CC. I contributed my lowercasepatch and a RUNM command. But even having a number ofextra features collected into one utility struck me as limitedin usefulness; it was a bother having to boot up the utility andthere was quite a bit of software that DOS64.CC was incompatiblewith. It seemed to me that a collection of BASICenhancements would be a great deal more useful if theywere burned into an EPROM; this would not only avoid thehassle of having to boot it up from disk, but would alsoenable a much greater degree of software compatibility. Iwas also aware that Tandy had left 2K of free space in the 8Kchip that Disk BASIC resided in; this free space would beideal for a collection of enhancements to BASIC.I do not want to claim that the idea of putting enhancementsinto the Disk BASIC chip originated with me. There was arecently-developed product known as JDOS on the marketfrom J&M <strong>Systems</strong> that had many of the same features I wasthinking about putting into an EPROM. But JDOS had theimportant drawback of being incompatible with quite a lot ofsoftware. This was not really the fault of the authors, whowere hampered by copyright restrictions in a way that I(debatably) was not. The folks at J&M had developed JDOSas an adjunct to the disk controllers they were selling. Forthem to have put a patched version of Tandy’s ROM in theircontrollers would have been a copyright infringement, sothey were forced to do a complete rewrite ofTandys' ROM.This changed the addresses of all the entry points into variousROM routines, resulting in a lot of incompatibility. HadTandy included a full set of documented entry points in DiskBASIC, rather than just DSKCON, JDOS would have beenmuch more highly compatible, and it is conceivable that Inever would have bothered to develop ADOS.Unlike the JDOS folks, I had no intention of selling diskcontrollers; my market was people who had already bought adisk controller from Tandy and who had bought use of aTandy ROM. Thus there was a strong argument that there wasno copyright infringement involved in my selling such peoplea means of improving the ROM they had bought from Tandy.I realized that this argument was not entirely airtight, so I wasalways just a tiny bit worried that Tandy might some daycome after me. But I gauged that (a) I was too small for themto bother with, and (b) if they did notice me they wouldprobably just tell me to knock it off, rather than sue. Still, itwas the copyright worries that caused me later to farm out theEPROM-burning to others, rather than handle that myself.In addition to the compatibility advantage of being builtaround the Tandy ROM, there was also another importantway in which I felt ADOS would be a significant advance overJDOS: configurability. I saw it as an enormous advantage thatusers of ADOS (yes, it stands for "Arts' DOS") would be ableto configure the default printer baud rate, the drive step rates,and keystroke macros prior to having an EPROM burned.Throughout the development of ADOS, software compatibilitywas always uppermost in my mind. I saw the biggesthazard to compatibility as arising from 64K software thatused the area immediately above Disk BASIC where I intendedto put my enhancements. The DISABLE command inADOS was my attempt to solve this problem. In shutting offmost of the ADOS enhanced features, DISABLE also freedup the memory above Disk BASIC for other uses, allowing"problem" programs to be made compatible. In the early daysof ADOS, I made quite a few minor changes to achievecompatibility with one program or another, with the resultthat there soon remained practically nothing that wouldn’trun under ADOS at all, and very few that required DISABLE.The compatibility issue also guided my choice of features toinclude in ADOS. Notably absent from ADOS are commandslike DPOKE (double-byte poke). While such a command isconvenient in some situations, the use of it within a programrenders that program unusable by CoCo owners with standardDisk BASIC. My aim was to create a more powerful butalso compatible computing ENVIRONMENT. Hence, theextra commands of ADOS are those that would mainly beused from direct mode, rather than from within programs.<strong>Tandy's</strong> <strong>Little</strong> <strong>Wonder</strong> page 41
As I began to develop ADOS, I was faced with the problemof what features to include. I knew I had a limit of 2K ofspace to work in. Two K does not sound like very much—amodest-sized BASIC program takes up more space thanthis—but I rapidly discovered that many BASIC enhancementscould be accomplished using surprisingly few bytes.My addition of RUNM to the command set required only 18bytes; allowing COPY to took37 bytes. This economy was made possible by the fact thatmany pre-existing ROM routines could be called to accomplishparts of the task, and I made maximum use of suchroutines to squeeze as much as possible into my 2K.During the early phases of development, I did not feelsqueezed for space at all; after putting in various enhancementsto BASIC that had occurred to me early on, I still hadquite a bit of space left, and began to wonder if I would be ableto fill it. I began casting around for suggestions on Compu-Serve and in a Miami CoCo users’ group I was then attending.Pretty soon, I had more than enough to fill 2K. I found myselfporing over already-written routines, modifying the code tosave a few bytes here and there in order to squeeze in this orthat additional feature. The original Microsoft ROM codeprovided me with an excellent model to imitate; it is extremelyeconomically written with regard to accomplishingtasks using a minimal number of bytes. The code for theCoCo 3’s Super Extended BASIC, written much later atMicroware, is much less efficient.In April, 1984, when I had a preliminary version of ADOSready, I sent a copy to Dennis Kitsz, hoping that the tie-inbetween his Lowerkit and ADOS’ support of lowercasecommands might lead to some sort of commercial collaboration.I heard nothing for months and then got a call fromhim. This was something of a thrill for me, since I had in myvery early CoCo days been an eager reader of his CoCoarticles in <strong>80</strong> Micro. We wound up sharing a booth at anumber of RainbowFests, beginning with the September,1984 Princeton one at which ADOS officially debuted.When the CoCo 3 appeared, I wanted to have a version ofADOS that supported its features, and so began work onADOS-3. There was very little room to add any featuresbeyond those present in ADOS, since the ADOS enhancementsentirely filled my available 2K. But I managed to makea little room by taking advantage of the fact that BASIC runsout of RAM on the CoCo 3, which allowed certain routinesto be rewritten. Also, ADOS’ ON ERROR GOTO and RAMcommands were no longer needed, so that gave me someextra bytes to work with. I was particularly interested thatBASIC should support the CoCo 3’s double-speed mode,and modified disk and printer routines while adding FASTand SLOW commands. I also allowed ADOS-3 to be configuredto boot up in <strong>80</strong>-column mode. ADOS-3 was introducedin January, 1987 at the <strong>Color</strong> Expo in Anaheim,California.One thing that disappointed me about the CoCo 3 was that itsinternal ROM was soldered in. Had it been socketed, I wouldhave strongly considered having ADOS-3 reside there, sincethe internal ROM contains plenty of free space (6K of whichis taken up by the infamous "Three Stooges" graphic). Toremove that ROM and install a socket would require somedelicate soldering, which struck me as a highly undesirablerequirement for a commercial product. Still, after releasingADOS-3, I was itching to include quite a number of additionalenhancements—I had a backlog of ideas and suggestionsby this time—and so began to consider a secondpossibility for where to place the required code.From the outset of ADOS, I had been aware that a diskcontroller could accommodate an EPROM with 16K ofspace rather than 8K. The problem was that this could onlybe done with controllers having a 28-pin ROM socket due tothe fact that the only suitable EPROM was the 27128, whichhad 28 pins. All Tandy controllers had 24-pin sockets. Asolution was to offer a 24-to-28-pin adapter for the Tandycontrollers, and I had a source of these, a fellow by the nameof Jim Smith that I had met at a meeting of the Miami CoCousers’ group, who made them by hand. These were originallyoffered to ADOS users simply as a convenience, since 28-pin EPROMs were cheaper and easier to obtain than 24-pinones, and since some CoCo EPROM burners were incapableof handling the 24-pin type. Since requiring an adapter madethe product less attractive, I had decided to confine ADOSand ADOS-3 to an 8K EPROM, even though that limited meto 2K worth of enhancements. With the passage of time,though, two developments occurred that rendered an adapterunnecessary for many CoCo users to use a 28-pin EPROM.First, third-party controllers became considerably morepopular, especially with the more experienceed CoCo usersthat ADOS primarily appeals to. These third-party controllersall had 28-pin ROM sockets. Second, Tandy came outwith the FD-502 controller, which contains a 28-pin ROMsocket, although a minor modification is required to use a27128 EPROM. Therefore, I began to develop ExtendedADOS-3 to fit together with ADOS-3 in a 16K EPROM.After having had to squeeze everything into 2K, watchingevery last byte, having another 8K to work in seemed like thelap of luxury, sort of like moving from a closet to a mansion.When I began, I never felt I would come anywhere near tousing the whole extra 8K, even though I had quite a few thingsI wanted to add. These included a RAMdisk, which MartyGoodman had been begging me to put in for some time; amenu-driven utility for selecting files to execute, kill, load,copy, etc.; fast BACKUP and DSKINI; wild-card copy; filedatingthat supported real-time clocks; block move and copyof BASIC program lines; and various other miscellaneousgoodies. As things turned out, I came a lot closer than Iexpected; less than 1K was left unused, and I had includedpretty much everything on my "wish list". Extended ADOS-3 debuted at the Chicago RainbowFest in April, 1989.page 42<strong>Tandy's</strong> <strong>Little</strong> <strong>Wonder</strong>
- Page 1: Tandy's Little Wonder,The Color Com
- Page 6: Introduction...Alfredo Santos, Dece
- Page 9 and 10: The Micro Works had its CBUG, 80C d
- Page 11 and 12: Washington state. The computers wer
- Page 13 and 14: ticle describing the installation o
- Page 15 and 16: A new CoCo magazine, 68 Color Micro
- Page 17 and 18: pitched carrier tone but by a "disc
- Page 19 and 20: With desktop publishing so popular,
- Page 21 and 22: What better time to advertise new p
- Page 23 and 24: plugged into the CoCo. A separate p
- Page 25 and 26: ceived 20 hours of on-line time. It
- Page 27: Technologies. This computer had bee
- Page 30 and 31: issue (sore spot!) for many adverti
- Page 32 and 33: the missing September OS-9 Undergro
- Page 34 and 35: 1985 (continued)26-1275 - $299.00 -
- Page 38 and 39: Operating Environments and Programm
- Page 40 and 41: The CoCo 3 DOES NOT support the fir
- Page 44 and 45: Compiled BASIC...BASIC is normally
- Page 46 and 47: When you LOAD and RUN a BASIC progr
- Page 48 and 49: the CPU to the number 1 and put the
- Page 50: With all these modules and processe
- Page 54 and 55: * Connecticut -NAME: South Eastern
- Page 56 and 57: * Texas -NAME: CoCoNautsADDRESS: 16
- Page 58 and 59: NAME: Rick's Computer EnterpriseADD
- Page 60 and 61: National Bulletin Board/Database Sy
- Page 63 and 64: Current PublicationsThere are still
- Page 65 and 66: Past MagazinesThe Color Computer de
- Page 67 and 68: The next video type to consider is
- Page 69 and 70: Co., 4300 West 62nd Street, Indiana
- Page 71 and 72: Tape I/O for the CoCo normally occu
- Page 73 and 74: SCS line activates the controller,
- Page 75 and 76: uilt in controller boards and were
- Page 77: Most laser and ink-jet printers als
- Page 80 and 81: Modem Pak that you wish to be inter
- Page 83 and 84: RAM UpgradesEach of the various CoC
- Page 85 and 86: Beyond 64K in the CoCo 1 & 2There w
- Page 87 and 88: functions, the PLAY and SOUND comma
- Page 89 and 90: 5) I cut a piece of sheet metal to
- Page 91 and 92: lows as 0V. A pulse should read as
- Page 93 and 94:
MC6883 and 74LS783/785 SAM Chip (Co
- Page 95 and 96:
on. CTRL-ALT-RESET may not clear ev
- Page 97:
E board CoCo, the zener is a 1N4735
- Page 100 and 101:
When it seemed that the CoCo was ag
- Page 102 and 103:
Around the same time as the demise
- Page 104 and 105:
into the upgradable TC9 and then in
- Page 106 and 107:
I completed my second book, a compl
- Page 108 and 109:
The CoCo is capable of using up to
- Page 110:
BASIC/Extended/Disk Error CodesCode
- Page 124:
POWER JOYSTICK JOYSTICK SERIAL CASS
- Page 132 and 133:
IndexSymbols and Numbers128K upgrad
- Page 134 and 135:
DigiSector DS-69(B) 20, 21, 80Digit
- Page 136 and 137:
MediaLink Software 56Olaf Meding 44
- Page 138:
Snake Mountain Software 11Soft Sect