The appearance of this massive (and expensive) volume (33 chapters and 14 appendices) reminds us toilers in the PC garden that, despite the introduction of a relatively bug-free version of Windows and the much-publicized unveiling of OS/2--a 32-bit operating system to harness the power of now industry-standard 32-bit processors--PC programming remains largely DOS programming. Even if the preferred platform should change, system programmers would still need a solid grounding in DOS before moving on. Anyone conversant with assembler, C, or Pascal who wishes to become a master system programmer in DOS will find this book an excellent reference.
“System programming,” says Tischer, “controls any hardware that sends information to, or receives information from, the computer.” Using this definition, the author discusses and provides routines for controlling video cards, the keyboard, diskettes and hard drives, the parallel and serial ports, mice, joysticks, the AT real-time clock, memory management and expansion, sound, files, device drivers, multiplexers, terminate-and-stay-resident (TSR) programs, protected mode and DOS extenders, and networks. The pluses and minuses of direct hardware programming versus calling BIOS or DOS functions are carefully reviewed. (Programming the math coprocessor is not included, because the author does not regard that as “system programming.”)
Program listings appear in assembler, C (Microsoft C 6.0 and Borland C++), Pascal (Turbo 6.0), and, where possible, BASIC (QuickBASIC 4.5). In the text, the listings are reproduced in small print and a light typeface, making them hard to read, but the accompanying diskette, which expands to over 2 megabytes on a hard disk, contains all 161 programs. The code is clean and clear, and the documentation, in both the programs and the text, is first-rate.
Unlike the authors of other DOS cookbooks, or cookbooks generally, Tischer manages to present, along with his program listings, a vast amount of generally accessible information about how both the hardware and the software work. He does not achieve his original goal: “to present [his] readers with EVERYTHING they’d need to know about system programming on the PC.” The author concedes the impossibility of that task, because “today, the term ‘PC’ refers to a set of hardware and software standards, on which an almost infinite number of products are based, in almost infinite complexity.” Nevertheless, his book contains more intelligible detail about programming in DOS than any other single volume I have seen.