==============================================================================
[   THE KAY*FOG RBBS  |  CPM-CC13.ART  |  posted 01/18/86  |  135 lines  8k  ]

         The CP/M Connection                   Originally published in
                 by                               Computer Currents
            Ted Silveira                           2550 9th Street
 (copyright and all rights reserved)             Berkeley, CA  94710


                              October 22, 1985
                            LEARNING ABOUT CP/M

    I like CP/M, but I admit it's not what anyone would call an intuitive
operating system.  People aren't born knowing how to use CP/M, and its
structure and commands aren't immediately obvious to anyone.  But to keep
your CP/M computer alive during this Night of the IBM Clones, you need to
know some things about the ins and outs of CP/M.

    Without a doubt, the worst way to learn about CP/M is to read the
Digital Research CP/M manual that came with your computer.  The _best_ way
to learn CP/M is to apprentice yourself to a friend, neighbor, or close
relative who already knows it well.  Failing that, join a good user group,
either a general CP/M group or one specific to your particular computer.  A
good group gives you the chance to share problems and information with
other CP/M users, getting help from the more technically knowledgeable and
sympathy from others in the same boat.

    Failing _that_, your main source of information is--shudder--computer
books.  I swear that, on the whole, computer books seem to be more
expensive, less useful, harder to read, and more poorly produced than
anything except textbooks.  Fortunately, you can find a few good books
mixed in with the trash.

    [BEGINNER'S LUCK]  I wish I could recommend a basic CP/M book for the
complete beginner, but I can't.  I've never seen one that was at once
simple enough and useful enough to be worth buying.  Some people have
recommended _CP/M and the Personal Computer_, by Thomas Dwyer and Margot
Critchfield, but I find its "casual" page design just too busy and
confusing--hard to follow and hard to look things up in.  I'm open to other
nominations.

    [CP/M REFERENCE]  For general reference, I like _The CP/M Bible_, by
Mitchell Waite and John Angermeyer.  It won't teach you CP/M by itself, but
it's good for refreshing your memory on old commands or looking up new
ones.  It includes clear explanations of CP/M's built-in commands and
accompanying utility programs, as well as of some more technical programs
such as assemblers and debuggers.

    Best of all, the book is very well produced.  It's easy to find things
in (with table of contents, index, and tab markings), and the page design
is very good--easy to look at and easy to follow.

    [FURTHER INTO CP/M]  If you want to get beneath the surface of CP/M,
there's no better book than _CP/M Assembly Language Programming_ by Ken
Barbier, subtitled "A Guide to the Integrated Learning of the CP/M
Operating System and Assembly Language Programming."  Amazingly enough, it
delivers.

    While CP/M has the reputation of being tough to learn, the mere
mention of assembly language causes people to faint dead away.  Unlike
BASIC, Pascal, and other languages that hide the dirty details of
programming, assembly language forces the programmer to get as close as
possible to machine language, the native language of the computer itself.
Because of this enforced intimacy, assembly language programs are faster,
smaller, and "livelier" than programs written in other languages.

    Barbier patiently leads you through the details of assembly language
programming and the mysteries of the CP/M operating system, making both
seem clear, straightforward, and not at all intimidating.  He writes very
well, but I most admire what teachers would call his pedagogy.  Each of the
main chapters teaches you something new about CP/M and about assembly
language.  At the same time, each chapter also builds toward the final
goal--writing a copying program--in such a way that by the time you get to
the end of the book, all you have to do is hook together the routines
you've created in the previous chapters.  If you've ever tried to break a
complex task into pieces that are both logical and teachable, you'll
appreciate how good Barbier is.

    While this book isn't for complete novices, you needn't be an
experienced programmer either.  If you're comfortable using CP/M and aren't
terrified by the idea of learning about hexadecimal numbers and the like,
you're ready.  You won't find it all dead easy, but you couldn't ask for a
better teacher.

    When I read Barbier's book, I'd never written a program in any
language (though I could follow a program in BASIC, sort of).  I'm still
not a complete programmer and don't have any desire to be, but I can now
disassemble a small to medium size program (given time), patch almost any
program to adapt it to my computer, install operating system modifications
like ZCPR3 without strain, and add assembly language routines to other
people's programs.  In addition, I know enough about CP/M to have a good
sense of what to do when something goes wrong.  I've been able to save
myself (and others) from crashes that would have left me despondent two
years ago.

    [MORE INSIDE INFORMATION]  Another good book is David Cortesi's
_Inside CP/M_.  This massive book tries to cover everything--CP/M basics
for the beginner, beginning assembly language for the curious, the innards
of CP/M for the programmer, and reference for everyone.  I don't think it
succeeds in all these, but it comes close.  Like Barbier, Cortesi writes
very well (though I like Barbier's _style_ a little better), and the book
is well laid out.

    Cortesi actually gives a bit more information about the workings of
CP/M than Barbier does, but Barbier does the better job of teaching.  If
you're already a competent programmer or you just want a technical
reference, you may prefer Cortesi; if you're just starting, I think you're
better off with Barbier.  Ideally, you'll get both.

    [MAINTENANCE AND REPAIR]  For information on maintaining and repairing
your computer, try _The Plain English Repair and Maintenance Guide for Home
Computers_ by Henry Beechhold.  This book is not aimed at any specific
brand of computer, so you won't find detailed information on your
particular hardware, but it's full of general purpose tips and techniques
for maintaining and troubleshooting these sensitive beasts.  Beechhold
covers everything from selecting tools and cleaning out dust to fixing a
cracked circuit board and looking for a faulty chip.

    Like Barbier and Cortesi, Beechhold writes very clearly, even with a
bit of charm.  The book isn't for the _complete_ novice, but Beechhold does
his best to make it easy with appendices, a glossary, and plenty of
sidebars to explain important terms and concepts.  Even if electronics is
foreign territory to you, you'll find enough useful information to make the
book worthwhile, and as you become more experienced, you'll get even more
out of it.  As Beechhold says "Nobody is born knowing how to fix things."
But with this book and some patience, you can become what he calls "a
fearless tinkerer."

------------------------------------------------------------------------------
     Ted Silveira is a freelance writer and contributing editor to several
  computer-oriented publications.  He appreciates suggestions or feedback
  and can be reached through the KAY*FOG RBBS (415)285-2687 and CompuServe
  (72135,1447) or by mail to 2756 Mattison Lane, Santa Cruz, CA 95065.

-------------------------  End of CPM-CC13.ART Text  -------------------------