Notes on SuperZap Version 5 This program has had a long history with me personally, but an even longer one with the CP/M community at large. Practically everyone who has ever owned a CP/M computer has on one occasion or another used SuperZap in one of its various incarnations, as ZAP.COM, SZAP.COM, or SPZ.COM, so I guess that makes it one of the all-time greats. Until now, the latest release was version 3.5X (dated September 1986), but unfortunately the only updates to the documen- tation since version 2.3 were a series of random, rambling "notes" on the various bug fixes and feature enhancements that the different authors (originally Willie Davidson and H.J. Sheldrake, later John Hastwell-Batten and Peter G. Martin) had seen fit to introduce. As a result, the hesitant first-time user was faced with either deciphering the ill-fitting descriptions of SuperZap's functions from one or other of the earlier libraries (if they could be found anywhere), or trying to figure out things for him/herself on the fly (the program actually is fairly "intuitively obvious" to operate). The current release seeks to make up for all the deficiencies of the earlier versions, as well as atone for the hastiness and oversights of its previous custodians, however competent they may otherwise have been in Z80 Assembler. Not only have I rewritten the documentation from scratch on the basis of my own thorough testing (it's safe to say that I use SuperZap almost every time I turn on my computer), but I have carefully revised the program itself to elimi- nate the many small but annoying anomalies and inconsistencies that I found still persisting in version 3.5 (see comments in ZAP.AZM and ZAP.MAC). Taking on a "classic" program of this sort for revision was no light undertaking. Messing around with working code always runs the painful risk of introducing new bugs by "fixing what ain't broke"-- but I decided to chalk it all up to self-education, anyway. Serious programming in any language, especially Assembler, is a challenge to one's logical capacities; but the payoff in sheer elegance and efficiency provides a potent motivating force. SuperZap was a masterpiece of coding long before I began scrutinizing it for flaws and shortcomings, and I can only hope that my own patient efforts have served to highlight its inherent style and beauty. Nonetheless, in spite of such flagrant editorial license, my rewriting of SuperZap has also been unabashed homage to the genius of its authors, retracing their steps across the wilderness of code space to reach the haven of successful functionality. I am grateful that they wrote their program as something to be learned from so lavishly at every level, and especially that they finally saw fit to dispense it unselfishly to the public domain for "the rest of us" to delight in. Although I could never have created SuperZap myself, I have drawn much satisfaction from re-creating it through an extended optimization exercise that now, at long last, seems to have reached full term. Why version 5? Well, it seems that sometime in early 1990, I noticed that an undated release of "SZAP41.LBR" appeared on a few CP/M BBSs. "What's this!" I mused, "have I been scooped?" But, though borrowing the same name and, apparently, version-numbering sequence as earlier "SZAP"s, it actually bore only a faint resem- blance to the authentic version, having been totally recast into a fairly clunky menu-screen-driven program. The .DOC file turned out to be nothing more than a slight reformatting of Willie Davidson's guide to version 2.2--completely worthless as a user's guide for this unrecognizable transmogrification! Particularly noteworthy in the library, however, was a separate, so-called installation utility SZCONFIG.COM, which even asked such arcane questions as whether your disk sectors number from 0 or 1(!). But most disconcerting of all was the dubious display of a trademark symbol on the name "Super Zap", along with a copyright notice of "1982 Alta Systems, Inc." The history of this bogus derivative is anybody's guess, but it seems to be a particularly brazen example of expropriation of public-domain code--strictly legal, perhaps, but frankly immoral (copyright lawyers, please take note!). Beyond this passing notice, the less said about this regrettable aberration, the better. So, in merely acknowledging it here, I have decided to skip over version 4 altogether for the current re-release of the full SuperZap package in a form fully and recognizably in keeping with its earlier, altogether more prestigious pedigree. With that said, I will conclude here with a few "random, rambling" thoughts of my own on CP/M in general and public-domain software in particular. I suppose, by now, we've all heard the pronouncement repeated ad nauseam from every "mainstream" computer publication that "CP/M is dead," to the extent that we've come to wonder in our drier moments just why we're still hanging on to our "obsolete" machines with their "fossil" software running under an "archaic" operating system. Well, it may be true that CP/M-86 has seen an abrupt and inglorious demise as a viable competitor to MS-DOS; surely no one in their right mind would set about developing CP/M software for an 80x86 machine in the current marketplace. But CP/M-80? No way, Jose. There happen to be more micros in this world running--or ABLE to run--CP/M-80 than MS-DOS. Period. Why, you can even run your favorite CP/M programs on the latest 80486 speed demon if you want to, thanks to "Z80 emulators" like 22NICE (Sydex), or expansion cards like UniDOS (MicroSolutions), which sports a true Zilog Z80H skipping along at 8 MHz. If you ask me why I continue to use CP/M, I'll answer, "because it works--quite well, thank you." I simply see no compelling reason to give away, sell off, dump, or otherwise dispossess myself of perfectly functional hardware and software which I not only know inside and out, but which also continues to challenge, perplex, delight, frustrate, and enliven me on a regular, reliable, and consistent basis. In an automotive vein, I'm reminded of the bumper sticker, "Don't laugh-- it's paid for!" If it gets you from here to there, don't call it junk. In my humble opinion, rumors of the death of CP/M have been greatly exaggerated. Why, even "Is DOS dead?" articles have been appearing lately--no doubt to pave the way for the "next generation" of operating systems from vaporland. But such fatuous propaganda can garner a credulous hearing only from an audience with lots of loose change in their pockets. What strikes me as far more deeply significant about the subculture of CP/M public-domain software is its undying idealism of creative freedom, of liberation from the shackles of the economic imperative ("Thou shalt make money!") and economic imperialism ("If it doesn't make money, it isn't worth doing"). Programs like SuperZap have been spawned and spread in outright defiance of commercial channels of distribution, on the basis of sheer human communication--what McLuhan might have called amor medii, love of the medium. In an ideal world, perhaps, this mode of propagation would not be necessary; administration, mar- keting, and lawyership would provide overall protective and pro- motive support of a programmer's craft within any efficient business organization--instead, nowadays, of interposing just so many layers of crap between him/her and the user. Frankly, it is evident that the burgeoning "underworld" of BBS networks has arisen partly out of indignant frustration at the stifling ineptitude of the bottom-line mindset, which knows the price of everything but the value of nothing. So, in the pragmatic judgment of every contributor to the vast field of public-domain software, there are many programs better given away than sold--"for sharing, not for shearing." The decision has been taken, many times over, by software authors to donate their ingenious (and sometimes ingenuous) handiwork to "the cause" of dispelling computerphobia, computer illiteracy, and ignorance in general, by thus enabling individual users to become the masters of their own machines. Outstanding among such treasured contributions have been the hardy and handy file and disk utilities, among which SuperZap deserves first rank. Having expended an inordinate amount of irretrievable time and energy upon polishing SuperZap both for my own amusement and for ultimate re-release, I can attest to the palpable investment in simple human resources such a long-term project entails. Nonethe- less, sensing that many others can and probably will benefit from my hidden labors in ways I can but dimly perceive, I am thoroughly pleased to once again submit SuperZap to the roving attentions of the wider world. It has been my good fortune and undeniable privi- lege, amidst the incessant hustle and bustle of daily living, to find enough quiet hours at home to somehow carry this endeavor off and thus to "pass the torch" bearing a flame that still fires our imaginations. George A. Havach San Francisco, California Halloween October 31, 1990