Execution on Z80 CPM or DOS+ systems The code in BUFFLIB is all executable on 8080s, and thus will never disturb the extended registers on Z80s (af', bc', de', hl') nor the index registers (ix, iy). The main program is thus ALMOST perfectly free to use these. HOWEVER, some poor bios implementations DO disturb these registers. The bios is never used except through BDOS calls (or direct bios calls, not considered here). Thus the system can be protected at one central point (.DOS in BUFFLIB). DOSZ is a replacement module for this purpose. Known examples of poor bios implementations are the Osborne I and the original Kaypro 2/4. A replacement Kaypro bios/rom (83 version) is available. To use, simply alter the linking procedure to include DOSZ module at any time before the library search. E.G., if the original link command was: ... myprog,bufflib/s ... use ... myprog,dosz,bufflib/s ... (... represents any other components of the command) The resultant program will execute on 8080s and z80s (at least the library portions). Results on the 8085 and NEC V20 are unknown. Even worse are systems that disturb these registers on interrupts. No cure is available except to disable interrupts whenever the alt- ernate registers are vulnerable. BUFFLIB routines are intended to be usable as components of interrupt systems, and enable inter- rupts to control critical data access, so this will fail unless the appropriate modules are modified. NOTE: At some future time I intend to include the high speed 32x32 bit multiply/divide routines, which execute ONLY on Z80s. These do not permanently disturb the alternate registers, although register IX is used, so most comments above apply. At a 2 Mhz clock multi- plication takes about 1.1 Millisec. for a 64 bit result. The code is again pure and re-entrant. NOTE: If DOS+ is in use the IX and IY registers are automatically protected against the bios. This leaves only the alternate set. CBF.