Notes on Changes in SYSLIB From SYSLIB 2.7 to SYSLIB 3.0 Richard Conn February 1, 1984 This document summarizes the changes made to SYSLIB under Version 3.0 from the previous version, 2.7. SYSLIB 3.0 consists of over 210 routines in over 150 modules, each module residing in a separate file. A. Changes Made to Existing Routines and Modules 1. All of the ZCPR2-specific routines have been removed from SYSLIB. These are now placed in a separate library and have been updated to reflect ZCPR3 rather than ZCPR2. SYSLIB 2.7 is still to be used to support ZCPR2, while SYSLIB 3.0 and Z3LIB are to be used to support ZCPR3. 2. Disk-Based Named Directories are not supported in Z3LIB. The ZDNAME routine has been omitted, and ZCPRQ2, ZFNINIT, ZDNFIND, and ZFNAME have been changed to remove any features relating to disk-based named directories. Memory-based named directories are still supported. Modules: SZFNAME.MAC and SZGPINS.MAC changed and now named Z3FNAME.MAC and Z3GPINS.MAC. Also, to test the value of this change, XD was reassembled, and the new COM file is 11 blocks (almost 1.5K) smaller than the old version. 3. All math routines have been broken out into separate modules as appropriate. There are now 12 math modules in SYSLIB. Modules: SMATH.MAC removed, SMTHnn (01 <= nn <= 12) added. 4. A bug has been corrected in EVAL10 which prohibited accurate processing of numbers greater than 8 bits. Module: SEVAL1.MAC. 5. Version Number is now 3.0. Module: SVERSION.MAC. 6. A bug has been corrected in DIRF and DIRFS in which the proper return code was not returned in A/PSW. Internal documentation was also cleaned up. Also, the SDIR.MAC module was broken up into a set of independent modules, named SDIRxx.MAC (00 <= xx <= 10), SDIR.MAC, SDIRHDR.LIB, and SDIRBF.MAC. 7. The SUD module was broken up into SUD1.MAC, SUD2.MAC, and SUD3.MAC. 8. The routines F$MAKE, F$READ, and F$WRITE were changed to return proper PSW flag settings. Now return codes can be examined without an ORA A after the routine call. Modules: SFMAKE.MAC, SFREAD.MAC, SFWRIT.MAC. 9. The following SYSLIB routines have been modified or improved: Routine Module Routine Module ------- ------ ------- ------ PADC SPADC PA2HC SPA2HC PHL4HC SPHL4HC PHL5DC SPHL5DC PHLDC SPHL5DC LADC SLADC LA2HC SLA2HC LHL4HC SLHL4HC LHL5DC SLHL5DC LHLDC SLHLDC B. New SYSLIB Routines and Modules 1. The following numeric output routines have been added: Routine Module Function ------- ------ -------- LAFDC SLAFDC Print A as Floating Decimal to LST: LHLFDC SLHLFDC Print HL as Floating Decimal to LST: MAFDC SMAFDC Print A as Floating Decimal to Memory MHLFDC SMHLFDC Print HL as Floating Dec to Memory PAFDC SPAFDC Print A as Floating Decimal to CON: PHLFDC SPHLFDC Print HL as Floating Decimal to CON: SA2HC SSA2HC Print A as 2 Hex Chars to S Output* SA3DC SSADC Print A as 3 Dec Chars to S Output SADC SSADC Print A as Decimal Chars to S Output SAFDC SSAFDC Print A as Floating Dec to S Output SHL4HC SSHL4HC Print HL as 4 Hex Chars to S Output SHL5DC SSHL5DC Print HL as 5 Dec Chars to S Output SHLDC SSHL5DC Print HL as Dec Chars to S Output SHLFDC SSHLFDC Print HL as Floating Dec to S Output * S Output is the new SYSLIB Switched Output feature, where output can be selected to go to any one of four combinations of CON: or LST: dynamically. 2. The following S-Output Routines have been added: Routine Module Function ------- ------ -------- SCOUT SSCOUT Print Char A with Ctrl Char Processing to S Output SCRLF SSCRLF Print New Line to S Output SCTLFL SSCTLFL Switch Control Flag SOUT SSOUT Print Char A to S Output SPRINT SSPRINT Print String at Ret Adr to S Output SPSTR SSPSTR Print String at HL to S Output B. New SYSLIB Routines and Modules, Con't 3. The following Byte-Oriented File I/O routines, which support variable-sized buffers for blocking/deblocking, have been added. All are in the SFXIO.MAC Module. Routine Function ------- -------- FXI$OPEN Open File for Input FXI$CLOSE Close Input File FXO$OPEN Open File for Output FXO$CLOSE Close Output File FX$GET Get Byte from Input File FX$PUT Put Byte to Output File 4. An F$SIZE routine has been added which computes the file size of a file to the nearest K, ignoring grouping factors. Just the first 12 bytes of the FCB are passed to F$SIZE. Module: SFSIZE.MAC. 5. A set of routines have been added for character testing and string parsing functions. Each is contained in its own module, which is named after it with an S prefix. These routines are: Routine Function ------- -------- ISALNUM Is Alphanumeric ISALPHA Is Alphabetic ISCTRL Is Control ISDIGIT Is Digit ISGRAPH Is Graphic ISHEX Is Hexadecimal ISPRINT Is Printable ISPUN Is Punctuation ISSP Is Space Char SKNPUN Skip Over Non-Punctuation Chars SKNSP Skip Over Non-Space Chars SKPUN Skip Over Punctuation Chars SKSP Skip Over Space Chars 6. New dynamic buffer allocation routines have been added. Both are in the SALLOC.MAC Module. Routine Function ------- -------- ALLOC Allocate N Bytes from Dynamic Buffer IALLOC Specify Bounds of Dynamic Buffer B. New SYSLIB Routines and Modules, Con't 7. The following character I/O routines have been added: Routine Module Function ------- ------ -------- BIN SBIN Input CON: Char via BDOS BIST SBIST Input CON: Char Status via BDOS BOUT SBOUT Output Char to CON: via BDOS CAPIN SCAPIN Input CON: Char and Capitalize CAPINE SCAPIN CAPIN and Echo 8. There are now eight SYSTEST programs, designed to test the various features of SYSLIB 3.0. These programs are SYSTEST.MAC and SYSTESTn.MAC (1 <= n <= 7). 9. The following FCB File Name and Type Output routines have been added: CON: LST: Switched Memory Function ---- ---- -------- ------ -------- PFN1 LFN1 SFN1 MFN1 12 Chars, Embedded Spaces PFN2 LFN2 SFN2 MFN2 N-Chars, No Spaces PFN3 LFN3 SFN3 MFN3 12 Chars, Trailing Spaces Each routine is in its own module, which is named after the routine but is prefixed with an S (ie, PFN1 is in SPFN1.MAC). 10. The following User Area Manipulation routines have been added: Routine Module Function ------- ------ -------- GUA SGUA.MAC Get Current User Area in A SUA SSUA.MAC Set User Area in A 11. The following file attribute manipulation routines have been added: Routine Module Function ------- ------ -------- GFA SGFA.MAC Return File Attributes SCFA SSCFA.MAC Set and Clear File Attributes SFA SFA.MAC Set File Attributes B. New SYSLIB Routines and Modules, Con't 12. The following random file access routines have been added: Routine Module Function ------- ------ -------- R$READ SRREAD Random Block Read R$WRITE SRWRITE Random Block Write C. Documentation 1. All of the SYSLIB.HLP files have been rewritten, and many new files have been added. These files completely document SYSLIB 3.0. There are 20 SYSLIB 3.0 HLP Files. 2. Realizing the investment some people have in hard copy of the SYSLIB 2.4 documentation, I do not intend to release new SYSLIB 3.0 manuals at this time. This update and the four Z2SYS- n.MOD files will serve to bring your documentation up to date. The SYSLIBx.HLP files should be used as the complete, on-line authoritative reference. Richard Conn