MSCSUB - MSCDEX Substitute, (C) Colin King, cik@ukc.ac.uk, 15/03/93 Copyright Colin King/Templeman Library, UKC This software can be freely distributed as long as this documentation is bundled with it and as long as the author gets credited for the work. Any modifications to the source code should be forwarded to the author. DISCLAIMER The author is not responsible for any damage caused from the use or misuse of this software. (The author doubts that anything can be damaged using this software!) --------------------------------------- MSCSUB is a TSR that attempts to emulate MSCDEX for CD Drives mapped onto a PC via NFS. It cannot emulate raw I/O functions such as read/write, nor can it emulate device operations, such as ejecting/locking CD rom drives. MSCSUB has been tested on 386 and 486 PC's and should support 286's, but has not been tested. MSCSUB Supports 26 drives, from A to Z, but most users will use drive D up to Z since A..C are usually reserved for system disks. MSCSUB now emulates the following MSCDEX subfunctions: 00h Get Number of CD ROM Drives 01h Get CD-ROM Drive Device List 02h Get Copyright File Name 03h Get Abstract File Name 04h Get Bibliographic Doc File Name 05h Get VTOC (partially emulated - not sure if okay) 06h Turn Debugging on 07h Turn Debugging off 08h Absolute Disk Read - Emulated to return error 21 0ah (Reserved) 0bh CD ROM Drive check 0ch MSCDEX Version 0dh Get CD Drive Letters 0eh Get/Set Volume Descriptor Preference MSCGET and MSCMOD are auxiliary programs for configuring MSCSUB whilst it is memory resident. This allows MSCSUB to be tailored for each individual application without the need of reloading. MSCSUB Loading. MSCSUB is a TSR. It is loaded in the same was MSCDEX is. It can be placed in high memory using LOADHIGH MSCSUB. MSCSUB Syntax: MSCSUB drive ... Eg: MSCSUB D E F K O loads MSCSUB for drives D, E, F, K and O MSCMOD MSCMOD is used to modify the configuration of MSCSUB whilst MSCSUB is in memory. MSCMOD makes use of MSCDEX reserved function ffh to communicate to MSCSUB. MSCMOD can be used at any time to configure or reconfigure MSCSUB. MSCMOD Syntax: MSCMOD -a drive ... Add drives to MSCSUB MSCMOD -r drice .. Remove drives from MSCSUB MSCMOD -v version Modify MSCDEX version number MSCMOD -moff Turn off MSCSUB MSCMOD -mon Turn on MSCSUB if turned off MSCMOD -name MSCxxxx Set name of device driver to MSCxxxx MSCMOD -file fname Set name of data file to fname for functions 02h, 03h, 04h Eg: MSCMOD -a J K P Add drives J, K and P MSCMOD -r P K Removes drives P and K MSCMOD -v 0210 Set version to 2.10 MSCMOD -name MSCD002 Set device driver name to MSCD002 MSCMOD -file C:\DATA\MSCSUB.DAT Functions 02h, 03h, 04h. To emulate these MSCDEX functions, MSCSUB grabs the data for these from an auxiliary data file that you must create before hand. By default, MSCSUB expects the information to be held in a file called MSCSUB.DAT, but this can be changed using the MSCMOD -file command. To create the datafile for these functions, you need a CD ROM drive locally connected to your PC running the real MSCDEX. Do not install MSCSUB at all. Run MSCGET, this gets the MSCDEX 02h,03h,04h returns from the CD and stores them in a named datafile. MSCGET Syntax: MSCGET -v Runs verbose mode - shows some CD Rom information. MSCGET -g fname Get 02h,03h,04h information, put it in file called fname. For example, suppose we have 2 local CD drives, D and E, and we want the information into file C:\INFO\EXAMPLE.DAT MSCGET -g C:\INFO\EXAMPLE.DAT File C:\INFO\EXAMPLE.DAT will contain something like: 1502 D:xxxxxx E:xxxxxx 1503 D:yyyyyyyy E:yyyyyyyy 1504 D:zzzzzzzz E:zzzzzzzz Where xxxxxx is the Copyright information (02h), yyyyyyyy is the Abstract information (03h) and zzzzzzzz is the Bibliographic Doc information (04h) for drives D and E respectively. Now we have the information in a file, we can tell MSCSUB where to pick up this information once the CD's are mounted on NFS. Suppose you want these 2 CD's mapped onto NFS drives J and K respectively. Edit the file to change D to J and E to K for each entry. Mount the CD roms and run MSCSUB. Let MSCSUB know the name of the file that contains the information, eg: MSCMOD -file C:\INFO\EXAMPLE.DAT MSCMOD allows you to change the name of the file at any time, so you can dynamically change the configuration dynamically, from one database to another. If this documentation is too brief or not good enough, send you gripes to me, cik@ukc.ac.uk.