                 Learning Foreign Tongues for the EOS Literate
 
By Joe Walters also known as Falcon of Albuquerque N.M.
 
                    Prologue: How Falcon got Started with CP/M
 
              (Before I get into the prologue, a pre-prologue:  I tend to
         ramble on a lot; if I do, I apologise, but I have always had a
         problem sticking to a subject instead of wandering off on
         tangents.  I think it's got something to do with either a] in-
         bred senility in my parents genes, or b] the fact that there is
         no large body of water near Albuquerque for 200 miles.  Not sure
         which.  ANYWAY...)
 
              When I recently entered the national ADAM telecommunications
         community in early December of 1989, I found something quite
         unexpected.  I live in relative ADAM seclusion in Albuquerque,
         New Mexico.  I know there must be other ADAMites out here; I was
         #2 on the Sears waiting list when the first [turned out to be
         BETA test] versions of the ADAM came out here.  However, I haven't
         found anybody else who owns one of these remarkable computers, so
         my knowledge has been developing in a rather different direction
         from goings-on in the rest of the international ADAM community.
         What I found when I entered the national telecom.  community
         startled me : a nation of ADAMites, split directly down the
         middle by some strange feud over the two major ADAM operating
         systems:  EOS and CP/M.  Some die-hard EOS people out there
         claimed that they hated CP/M and refused to use it...  I couldn't
         follow this, as I had been using CP/M increasingly for about the
         last five years out of simple necessity.  Then the thought
         occurred to me (watch out, lightbulb alert!  run for the hills!)
         to simply ASK one such EOS person why the didn't switch to CP/M.
         I found Barry Wilson (actually, he sort of found me first) and
         discovered that the majority of EOS-only people out there don't
         use CP/M because on the surface, it seems just too confusing.  So
         I began to think about it some more (watch out again- two
         lightbulbs in one article could spell trouble!) and remembered
         how I started out with CP/M, and what a hellish time I had trying
         to get it all figured out.
              I soon remembered that my reason for using CP/M was out of
         necessity, not because I wanted to.  I was one of the first
         people to lay my hands on the Hacker's Guide to ADAM, by Peter
         and Ben Hinkle...  In the two short years that I had had my ADAM,
         I had been doing a lot of programming, all of it in SmartBASIC,
         most of it dealing with games of one sort or another.  The
         problems with SmartBASIC reared their ugly heads to me quickly;
         chief among them was that SmartBASIC was just too slow and shape
         tables too ungainly for any decent animation.  So I tried another
         approach:  I read the Hacker's Guide to ADAM, and came away
         completely confused.  Almost everything in that manual was done
         in machine language (or machine language with SmartBASIC drivers)
         and I didn't know machine language in the least.  So, I bought
         Coleco's CP/M 2.2 and Assembler package in hopes of learning.
         Unfortunately, by the time I was finished with that huge manual,
         I was worse off than when I started.  (You must remember - I was
         in 7th grade at the time)...  Chief among my problems with CP/M
         were thus:



                                        1





                 Learning Foreign Tongues for the EOS Literate


             1) The disk drives were all strange.  At that time I had
                  one disk and one DDP drive.  When I booted CP/M from
                  DDP, the DDP drive was drive A: and the CP/M drive was
                  drive C:.  No problem there, except that then I tried
                  to boot CP/M from the disk drive; suddenly, the disk
                  was drive A: and the DDP was drive C:.  As if I wasn't
                  lost enough already,
             2) CP/M didn't include BASIC!  I was dumfounded.  I had
                  expected to be able to boot CP/M and start hacking away
                  at newer, faster games immediately.  Then I found out
                  that CP/M wouldn't really do much of ANYTHING!  All the
                  stupid thing did was load programs that somebody ELSE
                  wrote (at this time, I had some misguided and
                  thoroughly demented idea that the "and Assembler" part
                  of "CP/M 2.2 and Assembler" was a program that would
                  quickly and efficiently convert all of my BASIC
                  programming into fast, efficient machine code.  I still had a lot
                  to learn.  And as if I wasn't annoyed
                  enough already at having spent so much money on a
                  worthless program,
             3) There was that damn scrolling thing!  No word wrap, no
                  40 columns, not even a standard 32 column screen.  Just
                  that stupid, rediculously slow 80 column scrolling
                  thing.

        Needless to say, CP/M went onto a high, dusty shelf somewhere
        until I bought my first modem - an ADAMLink 300 BPS made by
        Coleco.  I started calling local BBSs, and was shocked to find
        that THERE WASN'T ANOTHER ADAM OWNER ON THE FACE OF THE PLANET!
        (slightly warped, yes, but I was still in 7th grade, remember.)
        However, I did find a few CP/M bulletin boards - chief among them
        the Remote Operating System (ROS) boards.  These boards had CP/M
        software galore - languages, utilities, and *GAMES*!  I was
        excited, until I found that ADAMLink 2 couldn't support XMODEM
        downloads, so there was no way for me to get all those wonderful
        programs!  Luckily, a friend of mine was a Kaypro junkie - he
        took a look at my modem, made some calls to Coleco, and managed
        to configure a version of MODEM7 for me, and then proceeded to
        make a hex file that my ADAMLink modem could recieve, along with
        detailed instructions on how to recompile the program and make it
        work.  I was ecstatic - I could get new programs after all!
        (Remember that at this time, as far as I could tell, there wasn't
        another ADAM user on the face of the planet; for all I knew, they
        had all been herded up and destroyed by a tactical nuclear weapon
        built by IBM.) At any rate, the new programs FORCED me to learn
        CP/M - things started to make sense.  I continued on like this,
        getting new programs, figuring out how they worked, and learning
        about CP/M bit-by-painful-bit, for a long time (seemed like an
        eternity) until I finally understood Z80 assembly language and
        found a CP/M Z80 assembler to run my programs from.
             I tend to ramble a lot; I hadn't intended to write so much
        for the prologue to this series of articles.  The main goal of
        this series is to get you EOS-only people who have a "CP/M
        complex" using this operating system, because when you get right
        down to it, EOS is a dead-end street.  Don't get me wrong, I


                                        2





                 Learning Foreign Tongues for the EOS Literate


        still use EOS for lots of things - you can't beat it with a stick
        for graphics stuff from assembly language [until GoDOS comes out,
        things will probably stay that way, too.] The problem is that
        EOS just isn't as versatile as CP/M; EOSers are still using the
        brain-damaged (sorry, personal prejudice, but I feel that it's
        true) ADAMLink x series of programs, which as I understand it
        right now, STILL don't do XMODEM transfers right.  Meanwhile,
        most CP/M users are using ZMP or QTerm; ZMP supports XMODEM,
        XMODEM-1K, YMODEM BATCH, and ZMODEM BATCH transfers.  The EOS
        BBSs out there (the popular A-net series, based off of C-net) is
        only capable of doing ASCII file transfers, meaning that they
        can't access the majority of software out for the ADAM, unless
        it's BASIC source code.  In addition, SmartBASIC is just so
        slooow.  Out of necessity, everything in CP/M is 100% machine
        language; the speed differences are incredible.  Going from a two
        benchmark programs that do conventional bubble sorts, one written
        in SmartBASIC and the other written in CP/M Turbo Pascal 3.0 by
        Borland International, one will see a speed increase of probably
        around 500%.  The last real qualm I have about EOS - SmartWriter.
        I abhore this program with everything within me that is
        hackerlike.  This has got to be the single slowest word processor
        on the face of the planet.  I use WordStar 3.3 from CP/M - and
        WordStar is a slow program, relative to some of the others that
        are out in CP/M, but there is still an incredible speed increase
        over SmartWriter.  I'm sorry, there's a little bit (just a teeny
        little bit) of prejudice in there, but everything I've said is
        true.






























                                        3





                 Learning Foreign Tongues for the EOS Literate


                         Three Easy Steps to CP/M-Speek

             Okay, back to the story.  Step-by-step instructions to using
        CP/M.  Instruction #1:  GET A COPY OF TONY MOREHEN'S TDOS.  This
        program is what Coleco's CP/M should have been in the first
        place.  Tony's installation program is so simple that my computer
        illiterate mother (well, she's not COMPLETELY illiterate; she
        took a WordPerfect class for her secretarial job once and now
        believes that all the computers in the known universe boot into
        WordPerfect) could install it.  The dialog is extremely simple,
        the instructions well-written.  At first, I had thought this
        program was only for people who had all of the expensive hardware
        add-ons like the 80CVU, the hard disk, and three separate 720K
        drives.  Not so.  While TDOS is undoubtedly the single best OS
        currently out for support of these hardware items, my system
        consists of 1 DDP drive, 2 standard Coleco 5.25" disk drives, the
        SydModem 1200 BPS modem, a generic Coleco 64K memory expander,
        and a PAI2 printer interface with an Epson LX-810, TDOS still
        beats the living <marbles> out of Coleco's CP/M, and it would
        even for a user an ADAM with but a single DDP drive.  The
        benefits are too numerous to go into here (no they aren't, ace;
        you're already babbling too much, babble a little more.) except
        that I'll go into them any way, 'cause this article's already way
        too long.  First, that confusing drive configuration system where
        all the drives change depending on which one you boot from in
        Coleco CP/M is FIXED.  When you run the TDOS install program,
        TDOS tells you EXACTLY which drive corresponds to which name, be
        it A:  or B:  or C:, and THE DRIVE NAMES NEVER CHANGE!  No matter
        which disk drive you boot from, A: will always be the RamDisk, B:
        will always be the 1st disk drive, C: will always be the 2nd disk
        drive, D: is the first tape, and E: is the second tape (assuming
        you have a system configuration similar to mine.) That one fix
        alone is enough to switch for.  Another incredible enhancement is
        the disk resetting system.  One of the most confusing aspects
        about CP/M from an EOSer's point of view is "the deal with the
        disk switching thing".  In standard CP/M, every time you change a
        disk that you want to write to, you must put a CP/M system disk
        into the drive that you booted on and type <CTRL>-C.  Depending
        upon how fast your drives are, between 5 and 30 seconds later,
        you will finally be able to access the disk you just put in.
        This is hard to explain, as it is still confusing to me.  This
        system is totally eliminated in TDOS; Tony puts the system tracks
        into VRAM on the Video Display Processor (which wasn't being used
        anyway, since this is CP/M and there's not much in the way of
        graphics) and reloads instantly, without the user ever even
        having to type <CTRL>-C.
             As if this weren't enough.  TDOS can be configured to use
        any of the popular 80 column video units on the market today; if
        you have one of these, you're already golden.  If not, you still
        have to live with the scrolling screen.  But there's GOOD NEWS:
        the standard screen is now *40 COLUMNS*!  In SmartWriter, if
        you're in "moving window" mode, you have 34 (I think) columns
        available that can be scrolled.  In TDOS, you have 40 columns,
        and the scrolling is *FASTER*!  It's incredible.  One note - by
        the time you read this, TDOS should be publicly available, along


                                        4





                 Learning Foreign Tongues for the EOS Literate


        with an incredibly in-depth instrution manual from Tony Morehen.
        If you have an 80 column screen, you'll want the "80TDOS40.COM"
        program.  If you don't have an 80 column screen but want the 40
        column scrolling system, you'll want to use "40TDOS40.COM".  TDOS
        is incredibly easy to install; after reading Ron Collins' very
        in-depth set of instructions, you should be able to install TDOS
        for your specific system configuration with your eyes closed.
             Okay, Instruction #2:  If you have a modem, get a good CP/M
        terminal program.  I figured out most of how everything works
        from simply using a terminal program, calling a local ROS,
        leeching hundreds of CP/M programs, and running them.  My
        personal preference in the way of term programs is ZMP, as I have
        already said.  There are versions of ZMP out for both the
        SydModem 1200 BPS modem (contact me at the address below if you
        can't find it or any of the other software mentioned in this
        article) as well as the most common RS-232 serial interfaces that
        were put out by Orphanware and Eve Electronics.  You will most
        likely need to get your first term program on disk from another
        ADAM user (as opposed to over the modem) because trying to
        download a CP/M program with AdamLink and convert it to CP/M is
        not only extremely tedious but positively worthless, because 9
        times out of 10 either AdamLink will mess up or the conversion
        process will kill the program.  Be sure to read all of the
        instructions carefully, and then try to find some good free CP/M
        BBSs locally.  This shouldn't be hard; ROS systems, RCPMs, and
        many other CP/M BBS systems are *everywhere*; if I could find one
        in Albuquerque, NM (the town consists of a few straw huts in the
        middle of the desert with electric and phone company cables
        strung out the top) then you should be able to find a free system
        near you.
             Instruction #3:  Grab as many utilities as you can, and play
        with them until you can figure out how they work.  You will want
        to grab some public domain editor like EXPRESS; the editor that
        comes with CP/M is just trash that I wouldn't wish on the worst
        Intel beaurocrat in existence.  You will also need a file
        maintenance utility such as NSWEEP.COM; this simply allows you to
        copy, rename, delete, move, etc files between disks, much like
        Coleco's Disk Manager program.  Finally, to really get started on
        this thing, you will need the de-archive/library utilities called
        NULU.COM, UNARC16.COM, and UNCR.COM to uncrunch files.  The last
        two major utilities that you need to get your hands on if you
        have a modem are CLONE.COM and IMAGE.COM.  These programs go
        together and allow a CP/M user to put ANY disk "image" into a
        file and send it over to the modem to another user, who can then
        "clone" the file onto a disk, thus duplicating the disk in
        question.  Now you can actually transfer Coleco software (such as
        the SmartBASIC program disk in case yours dies and you don't have
        a backup <not that that happened to anybody *I* know or
        anything>) from one computer to another over the modem...
        Sometimes this is cheaper than sending the disks through the
        mail, sometimes not, but mainly it is much more convienient (not
        to mention the fact that I get real antsy when I'm waiting for
        software in the mail...) At this point, the only thing left to
        earn before I send you out on your own is what these "file
        extension things" are all about. extensions are all about.


                                        5





                 Learning Foreign Tongues for the EOS Literate


                Confusion Factor #130 of 1024: Collect Them All!
                              CP/M File Extensions

             All CP/M file names consist of two parts:  an 8-character
        file name followed by a 3-character file extension.  Most of the
        time, a file extension is a description about the type of file
        that you're looking at.  A file name will look something like
        this: 
 
                          THISFILE.TXT 
                             ^ ^ 
                             | | 
        File description.<---+ +--->3-character file extension 
 
             The .TXT extension identifies this particular file as a text 
        file, that is, one that contains just text.  While a file 
        extension can be any 3 letters you want, such as .ZYC, most of 
        the time people follow certain conventions, just because it is 
        easier that way.  For example, just as .TXT is usually a text 
        file, .DOC is a document file, which is the same thing as .TXT. 
        The actual CP/M program files (the ones that you run) all have 
        the extension of .COM.  You can think of this as a "COMmand 
        file", because in order to run that program, you simply type it's 
        name (the part on the left side of the period) in and hit 
        <RETURN>, just as if it was a command, from say, BASIC. 
             Those are the basic file types.  I could go on and on about 
        all the different types; literally hundreds exist, and I couldn't 
        possibly remember all of them off of the top of my head if I 
        tried.  There are, however, four other important file types you 
        should know.  First, a file with a .LBR extension means that the 
        file is a "library file".  In plain english, this is one big file 
        that contains a lot of little files.  To get the "little" files 
        out of the "big" file, you need the public domain CP/M utility 
        NULU.COM (notice extension .COM, identifying it as a program 
        file.) You run NULU, and you can look at the help menu by typing 
        "-H <RETURN>" at the main prompt.  You should read the 
        instructions that come with NULU thoroughly; you will be using 
        this program a lot.  NULU allows you to open a .LBR file, look at 
        the directory of "little files" inside of it, and extract 
        whichever of those files (could be some, could be all of them) to 
        whatever disk drive you want to. 
             Another file type is a .ARC or .ARK file.  This file is 
        similar to a .LBR; the .ARC stands for "ARChive".  Files with the 
        extension of .ARC are different from .LBR files in that most of 
        the time, the "little files" inside the archive are compressed, 
        thus saving disk space and transfer time over the modem.  The 
        difference between the "C" and the "K" in the last letter is 
        purely cosmetic; some people treat .ARC files as IBM-PC only 
        files and .ARK as CP/M-only, but CP/M archive utilities don't 
        care whether it says .ARC or .ARK; it's an archive either way. 
        To un-archive a file, you must use the public domain de-archive 
        utility UNARC16.COM.  Read the instructions that come with the 
        program carefully; it is invoked slightly differently from it's 
        library companion, NULU.  The primary advantage of .ARC files 
        over .LBR files is that .ARC component files are compressed 
 
 
                                        6 
 
 
 
 
 
                 Learning Foreign Tongues for the EOS Literate 
 
 
        automatically when they go into the archive, and UNARC16.COM 
        automatically decompresses them at the time that they are 
        extracted. 
             Which brings us to the last major point about file types. 
        Often, you will see a file with a "Z", "Q", or "Y" as the middle 
        character of the file extension, such as .DZC, .CZM, or .TZT. 
        These programs are compressed using the public domain CP/M 
        compression utilities CRUNCH.COM, SQUEEZE.COM, and CRLE11.COM. 
        These files must be decompressed before they can be used 
        properly.  In order to decompress a file with a "Z" in the middle 
        character of the extension, use the program UNCR.COM.  To 
        decompress files with the "Y" in the middle character, use 
        CRLE11.COM.  To decompress characters with a "Q" in the middle 
        term, use UNSQ.COM or NSWEEP.COM (NSWEEP includes a file un- 
        squeezer, among it's many other utilities.) Remember to read the 
        directions for each program carefully, as each is slightly 
        different. 
             Many times you will see a file compressed with one of the 
        above programs INSIDE OF A LIBRARY.  This is because libraries 
        themselves do not do automatic compression like archives do, and 
        so compressed programs in libraries must first be extracted with 
        NULU.COM, and THEN DECOMPRESSED WITH THE RESPECTIVE DECOMPRESSION 
        UTILITY.  Newer versions of NULU.COM do support unsqueezing (.?Q? 
        file extensions), but squeezing is being used less and less 
        because LZW (Lempel-Zev-Welsh) compression (.?Z?) is more 
        efficient than squeezing. 
             That'll do it for me for now; I think I've written enough to 
        last a while, and I'm tired.  Summary: GET CP/M PROGRAMS AND USE 
        THEM.  That's the best way to learn anything.  These are the CP/M 
        programs that you should get, and the order that you should 
        (ideally) get them in: 
 
             1) Tony Morehen's TDOS to replace Coleco's brain-damaged 
                  CP/M system. 
             2) A Terminal program, such as ZMP or QTERM configured 
                  for your serial interface and modem. 
             3) NULU.COM, UNARC16.COM, UNSQ.COM, UNCR.COM, and 
                  CRLE11.COM 
 
             That should be enough to get you started.  Make sure you 
        have a lot of disk space!  I hope SOMEBODY gets some use out of 
        this little mini-series; the way things look now, CP/M is going 
        to be a necessity to the survival of the ADAM. 
 
             If you have questions, comments, or you wish to throw money 
        (yeah, right) I can be reached at the following address.  Please 
        enclose a SASE if you want me to reply, and please DON'T CALL 
        COLLECT; I will NOT accept charges.  (Sorry, but New Mexico has 
        the highest per capita price of living/lowest average salary of 
        anywhere in the United States...) However, if I am not home, do 
        leave your name and telephone number if anybody else is, and I 
        *WILL* call you back ASAP. 
 
                   Joe Waters (Falcon@Federation.hack.com) 
                  13009 Gray Hills Rd. NE 
 
 
                                        7 
 
 
 
 
 
                 Learning Foreign Tongues for the EOS Literate 
 
 
                   Albuquerque, NM 87111
                  U.S.A.  (No need for extra postage!)
                  (505)292-0824






















 































                                        8




 

