ZB4MHZ.DOC P. L. Kelley - (617) 332-1610 05/29/82 The file ZB4MHZ.ASM modifies Percom's ZBIOS.SYS and ZFOR.COM for CP/M to operate with a 4 MHz CPU on the H89. You will need to modify the CPU board to operate at 4MHz. Instructions on how to do this can be found in the December 81 H-Scoop or obtained from Najay Systems, 3136 Vermillion Street, West Covina, CA 91792. You should be warned that some instructions describe modifications that are specific to the pre FCC board (the one that is used with the H-19). The new board used with the H-19A is not identical in the area of the board where the Najay modifications are made. It was found that the description given of the location of the clock pullup resistor and the lines differed from the layout on the FCC board. Why 4 MHz? Speed of course. In particular, I was very disturbed by the very, very slow warmboot of a "normal" double density Percom system (256 byte physical sectoring). I decided to go 4 MHz hoping I could buy at least a factor of 2 on disk I/O reasoning that the CPU might be able to keep up with Percom's non-interleaved sectoring. The non-interleaving of sectors caused the disk to rotate once per sector accessed; it took about 3 seconds to read a 4K (256 byte physical sectors) track. On the way to 4 MHz I discovered Percom's undocumented "extended" density (1K byte physical sectors). For a 32K file using normal density the 4MHz system takes 18 seconds to load the file while the 2 MHz system takes about 30 seconds; using extended density the 4 MHz system takes about 5 seconds while the 2 MHz system takes 10 seconds. In any case, at 4 MHz and using 1K sector size the H89 is now acceptably fast based on my earlier experience with other 5.25 inch CP/M systems. What is the Percom 4MHz problem? It was not obvious at least from the approach I took. After modifying the CPU and making certain that it was running properly by using a 4MHz modification of Heath's H-17 CP/M I discovered the system would cold boot from Percom's zrom but do no disk I/O. Using a Z-80 version of Ward Christensen's Resource program I disassembled both the zrom and ZBIOS.SYS. Much of the code was similar which puzzled me. I finally discovered a slight difference in the delay between the interrupt command and the execution of a new command. There was a MOV A,B in ZBIOS.SYS instead of a POP PSW which was in zrom. This difference is 6 clock cycles out of approximately 100 in the zrom version. It took me a long while to believe that an 6 persent difference was that crucial. If I had taken the straightforward approach of just doubling the timing loops in ZBIOS I could have saved myself some time. It was also necessary to add a slight delay on return from the interrupt routine when writing single density soft sectored disks. The changes to ZFOR, Percom's formatting program, were relatively simple after understanding the 4 MHz problems with ZBIOS. The tricky part was the routine to synchronize to the holes when formatting hard disks. I found the appropriate counter value was not a simple multiple of Percom's value. Either Percom's value is wrong or my drives are off speed since I had trouble formatting hard disks at 2 MHz. Are there remaining problems? At this point I cannot cold boot at 4 MHz hard sector or single density soft sectored disks. This is not surprising for hard sectored disks since the H17 rom must be modified for 4 Mhz operation. I do not plan to try to solve this problem a I am quite happy to live with booting from double density or extended density disks. The information Percom gave me about their system was incorrect. The minimum configuration needed to run the Percom board as a stand alone soft sectored controller is: 1. 32K ram 2. I/O rom (444-61) 3. H17 rom (444-19) The H17 controller board is not needed except to make the initial CP/M disk. If you own CP/M for the Heath have your dealer make a soft sectored Percom system for you or borrow a friend's H17 board to make your own. If you upgrade from an H19 order the roms at the same time you buy your upgrade kit. Included in ZB4MHZ.ASM is an implimentation of the parallel port, something that Percom has not provided in version 1.00 of their BIOS. It is a simple routine for a Centronics 730 which allows paging and eliminates a linefeed after carriage return assuming you are using the auto linefeed after carriage return feature of the 730. It is also possible to cut the connection between U13 pin 12 and U9 pin 10 and reconnect U13 pin 12 to U9 pin 9. This readdresses the status port for the printer from E5 to E6. Since the DSR bit is the same on the serial port as the BUSY bit on the parallel port, this allows much of the software written for a serial port to be compatible with the parallel port; in particular, ZBIOS.SYS will drive the parallel port. ZB4MHZ.ASM can be converted from the version to modify ZBIOS.SYS to the version to modify ZFOR.COM simply by reversing TRUE and FALSE in two equates in the file. There are options available in ZB4MHZ.ASM for modifying ZBIOS.SYS depending on memory size and whether the Centronics 730 driver is desired. ZB4MHZ.ASM is written for use with versions 1.00 of ZBIOS.SYS and ZFOR.COM, when and if newer versions become available extensive modifications to ZB4MHZ.ASM will likely need to be made.