==============================================================================
[   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  -------------------------