Preliminary documentation for LBRDISK (CP/M 2.2 version) Jim Lopushinsky March 5, 1984 What is LBRDISK? ---------------- LBRDISK is an extension of the CP/M 2.2 BDOS (RSX) that allows you to treat libraries and archives as a logical drive. For example, to squeeze and collect into a library a collection of text files you might do the following: B>CREATE TEXT.LBR <--- creates an empty library Allow how many entries: 12 <--- 12 files. B>LBRDISK C:=TEXT <--- allocate drive C to TEXT.LBR B>NSQ C:=*.TXT <--- squeeze all text files into TEXT.LBR It doesn't matter if the assigned drive actually exists or not. All transient programs (including the CCP) have access to the newly created drive. Are there any restrictions? --------------------------- Yes. LBRDISK allows modifications to the library drive only if one library or archive is allocated. If more than one is allocated, the library drive becomes Read-only, and will return appropriate CP/M errors if an attempt is made to write, erase or rename a file on the library drive. There must not be more than one open output file on the library drive. Programs must close any output file before opening another. There are no restrictions on the number of open input files. Libraries and archives are sequential files. It is strongly recomended to erase a file and re-make it before writing to it. Writing to an existing file is allowed. However, the records replace existing records in the old file, and if writing occurs past the end of the file, the next member will be clobbered. Making a new file causes output records to be appended to the end of the library. Random write is allowed, but the program must not leave any "holes" in the file. As far as I can tell, all the common utilities operate as expected. Editors should not be used, unless you are positive that the editor maintains only one output file at a time. What are the programs? ---------------------- There are two utilities associated with LBRDISK: 1. CREATE - to create an empty library or archive. This utility will run under CP/M 2.2 as well as CP/M 3. 2. SETRSX - loads the RSX manager just below the CCP. This utility must be executed prior to using LBRDISK. It is loaded once only, and remains active through warm boots. How do I use LBRDISK? --------------------- Here is the syntax: A>LBRDISK Entering LBRDISK with no command tail will remove the last active Lbrdisk RSX from memory. If there is more than one active Lbrdisk, only the last one loaded is removed. A>LBRDISK C1:=B5:CASM,C:TEXT Drive C user 1 will be allocated to CASM on B5 and TEXT on C0. B>LBRDISK C:=*,1:=A1:JRT*,2:=2:CASM,LASM Drive C will be assigned to the following: C0 = all libraries and archives on B0 C1 = all libraries and archives on A1 beginning with JRT C2 = CASM on B2 and LASM on B0 In the above two examples, drive C becomes read-only. B>LBRDISK D:=TEST D0 will be assigned to TEST on B0. Since only one library was specified, drive D becomes read-write. If we now execute the following: B>LBRDISK C:=1:TESTA A second library drive is created. C0 is now all the members from TESTA on B1. There is nothing stopping you from using NSWP to copy members back and forth between the 2 libraries and/or archives! B>CREATE TEST.LBR Allow how many entries: 6 This creates an empty TEST.LBR file with room for a maximum of 6 members. B>CREATE TEST.ARC This creates an empty TEST.ARC and TEST.DIR file. B>SETRSX This command must be executed before using LBRDISK. If executed a second time, it removes the RSX manager, and any LBR RSXs below it. Please make any bug reports and/or comments to the SYSOP at Meadowlark RCP/M (403) 484-5981 @ 300/1200 baud.