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