home *** CD-ROM | disk | FTP | other *** search
/ Computer Installation Guide - Dragon Clan Series / CD1.iso / CDROM / OCD / 0CD.DOC < prev    next >
Encoding:
Text File  |  1995-12-08  |  23.3 KB  |  530 lines

  1.                            0cd CD-Rom Emulator v7.1
  2.                         ---========================---
  3.  
  4. 1. The Problem!
  5. ===============----------------------------------------------------------------
  6. Sometimes, a game comes along that looks to be the best game you've ever seen.
  7. Unfortunately, you have only a single-speed cd-rom, and no matter how fast
  8. your pentium 133 goes, the movies and animations looks like a beetle stuck in
  9. glue.
  10.  
  11. Then you think of the possibility of copying the game into your harddisk, and
  12. playing it off of it, but alas, that probably won't work. The reason for this
  13. is that such games usually check to see if they are actually running from the
  14. cd-rom. The purpose of this check is to make sure that audio tracks on the
  15. cd-rom are available, but mostly it is used as a simple copy-protection check.
  16.  
  17. It can take a lot of hard work to make it work from your harddisk, and some
  18. times it can't be done; but the main work is to make the program think it is
  19. really running on a cd-rom. So, how do you accomplish that? 0cd is the answer.
  20.  
  21. 2. Introduction to cd-rom emulators
  22. ===================================--------------------------------------------
  23. So, what does a cd-rom emulator have to do? Well, the following list gives you
  24. a clue of the task it must fill:
  25.  
  26.   ■ Appear as a normal MSCDEX driver to any program
  27.   ■ Make one or more drives appear as a cd-rom
  28.   ■ Simulate or "Swallow" all functions that it cannot handle
  29.  
  30. The simplest cd-rom emulators work by simply installing itself as a MSCDEX
  31. clone and when a program ask, it will answer with correct data to make it
  32. appear as some of your drives are really cd-rom drives instead of normal
  33. harddisks. This way, you can use SUBST to create a virtual drive in the
  34. directory the game is located in, and use the emulator to make it appear as a
  35. cd-rom drive.
  36.  
  37. "Swallow" means that when a program tells the emulator to start playing an
  38. audio track (example), then the program will say "sure thing" and just go whop
  39. in the memory, doing essentially nothing. The program will be none the wiser
  40. and happy as a clam.
  41.  
  42. But, some games does more than just tell the emulator to do stuff. Sometimes
  43. it even checks to make sure that the data the emulator is playing with is the
  44. correct ones. For instance, the game may check how many music tracks there is
  45. on the cd, and crash and burn if it is the wrong number. Simple emulators
  46. usually don't know this kind of information, and says "Ehmmm... 0?" or
  47. something like that.
  48.  
  49. 3. The answer - 0CD!
  50. ====================-----------------------------------------------------------
  51. 0CD is built to solve a lot of these problems, but unfortunately not all. 0CD
  52. is a small resident utility which emulates MSCDEX in a way I have not found in
  53. any other emulator. 0CD installs itself into memory, runs a program or a batch
  54. file, and then cleans up and exits, neat and tidy. 0CD does the following:
  55.  
  56.   ■ Appear as a normal MSCDEX driver to any program
  57.   ■ Creates virtual drives from directories, making them appear as cd-rom
  58.     drives
  59.   ■ Lets the virtual drives have their own volume label
  60.   ■ Can write protect the cd-rom drive
  61.   ■ Can make the cd-rom drive appear to have 0 bytes free
  62.   ■ Simulates different speed of the cd-rom drives
  63.   ■ Enables audio-through-put
  64.   ■ Can co-exist with mscdex
  65.   ■ Answers intelligently to the following function calls:
  66.     ■ MSCDEX installation check
  67.     ■ Get number of cd-rom drives
  68.     ■ Get bibliographical filename                   *
  69.     ■ Get abstract filename                          *
  70.     ■ Get copyright filename                         *
  71.     ■ Get drive list
  72.     ■ Get device driver list
  73.     ■ Get MSCDEX version
  74.     ■ Get directory entry
  75.     ■ Get descriptor preference
  76.     ■ Get VTOC entry (Volume Table Of Contents)      *
  77.     ■ Absolute sector read
  78.     ■ Device driver requests
  79.       ■ Play audio
  80.       ■ Stop audio
  81.       ■ Head position (chaning)
  82.       ■ Audio channel info
  83.       ■ Media changed
  84.       ■ Get sector size                              *
  85.       ■ Get volume size                              *
  86.       ■ Get device status
  87.       ■ Get audio disk info                          *
  88.       ■ Get audio track info                         *
  89.       ■ Get UPC code                                 *
  90.       ■ Get audio status (playing/paused)
  91.  
  92. The entries marked with * are saved by a program called RIPCD into a file.
  93. This file is then read back into memory when 0cd is installed. RIPCD reads the
  94. data off the original cd so the data will appear to be authentic.
  95.  
  96. 4. How to use 0CD
  97. =================--------------------------------------------------------------
  98. 0CD works by way of command line parameters and is therefore best suited in
  99. a batch file. The format of the 0CD command line is as follows:
  100.  
  101.    0CD [options] <directory> [<directory> ... ]
  102.  
  103. Ignore the [options] part for now; we'll get back to it later. The important
  104. part is <directory>. You fill out the <directory> part with a valid directory.
  105. 0CD will create a new drive and redirect this drive to the given directory.
  106. This drive will automatically look like a cd-rom to any program that checks
  107. this.
  108.  
  109. Example:
  110.  
  111.   0CD C:\TEMP
  112.  
  113. This command line will tell 0CD to create a new drive. This drive will really
  114. lie in the C:\TEMP directory.
  115.  
  116. On the 0CD command line shown above, you can also see that the parameter
  117. <directory> can be repeated. This is denoted with [<directory> ... ]. You can
  118. supply up to 8 such parameters at one time to 0CD, creating at most 8 cd-rom
  119. drives. The cd-rom drives can all be directed to different directories or the
  120. same as seem fit. Example follows:
  121.  
  122.   0CD C:\CD1&2 C:\CD1&2 C:\CD3
  123.  
  124. Here, 0CD will create 3 cd-rom drives. The first two will be redirected to the
  125. same directory, C:\CD1&2. The third cd-rom drive will be redirected to the
  126. directory C:\CD3.
  127.  
  128. When 0CD has created all cd-rom drives, and settled into your computer, it
  129. does one of two things:
  130.  
  131.   if a file called 0CDSTART.BAT (or a user-supplied program file) exists in
  132.   the current directory, 0CD starts it. When execution of this file is
  133.   finished, 0CD unloads itself from memory.
  134.  
  135.   if the file doesn't exist, 0CD starts up your current command line shell
  136.   (usually COMMAND.COM or 4DOS.COM). When this shell exits, 0CD unloads itself
  137.   from memory.
  138.  
  139. 5. 0CD valid options
  140. ====================-----------------------------------------------------------
  141. 0CD can also respond to various options on the command line. The options can
  142. be given before all <directory> in between the <directory> parameters, or
  143. after the <directory> parameters, but note that they only take effect on the
  144. <directory> parameters which comes after the options. See the text below on
  145. the -q option to see how this works.
  146.  
  147. Each option will get it's own subchapter here, for optimal clarity and easier
  148. reference later on.
  149.  
  150. 5.1. 0CD option: -Q
  151. ===================------------------------------------------------------------
  152. The simplest option for 0CD is the -Q option. This option tells 0CD to not
  153. print any text on the screen (QUIET operation). Above it was explained that
  154. options only takes effect on any parameters which comes after them, and here
  155. are some examples on that:
  156.  
  157.   0CD -Q C:\TEMP
  158.  
  159. This example will not print any text on the screen.
  160.  
  161.   0CD C:\TEMP1 -Q C:\TEMP2
  162.  
  163. This example will print text on the screen up to the point it reaches -Q. This
  164. means that you will not notice that two drives has been created, only one
  165. (C:\TEMP1), and you will not see the uninstall message.
  166.  
  167. 5.2. 0CD option: -R
  168. ===================------------------------------------------------------------
  169. Earlier, you was told that 0CD automatically starts the file called
  170. 0CDSTART.BAT if the file exists in the current directory. If you would like
  171. some other program to be started, you can supply the name of this program to
  172. 0CD with the -R option. Example:
  173.  
  174.   0CD -RC:\NC50\NC.EXE C:\TEMP
  175.  
  176. Here, 0CD will create a cd-rom drive, and run Norton Commander. When Norton
  177. Commander exits, 0CD will unload itself from memory. You can run .BAT, .COM or
  178. .EXE files or any other file types your current command line shell allows for
  179. (4DOS allows you to run .BTM files also for instance).
  180.  
  181. 5.3. 0CD options: -0 and -W
  182. ===========================----------------------------------------------------
  183. If you examine a cd-rom, you will notice two things; the drive is write
  184. protected, and it has no bytes free. To simulate this behavior, 0CD has two
  185. options for this: -0 and -W. the -W option turns on the write protection, and
  186. -0 simulates the "disk full" behaviour of cd-rom drives.
  187.  
  188. Unfortunately, DOS sometimes sees through the redirection that 0CD sets up,
  189. and when a program or command (like DIR) checks to see how many bytes the
  190. drive has free, it will look at the host drive for the emulated cd-rom drive.
  191. Example:
  192.  
  193.   0CD C:\TEMP
  194.  
  195. This will create a new cd-rom drive (like E:) and put it in the C:\TEMP
  196. directory. When a program checks to see how much available space E: has, DOS
  197. will sometimes check the C: drive. To simulate the "disk full" syndrome of
  198. cd-rom drives, 0CD has to make it appear that C: is full. This will in turn
  199. make it appear as E: is full. Also, the disk can be written to. Please note
  200. that even though 0CD will make it appear as the disk is full by reporting 0
  201. bytes free, you can still create files as normal. The "Disk full" messages
  202. comes when a program isn't able to find vacant space on your harddrive, not
  203. when the disk allegedly has 0 bytes free.
  204.  
  205. If you use this command line:
  206.  
  207.   0CD -W -0 C:\TEMP
  208.  
  209. then 0CD will report 0 bytes free for all programs that check this. Also, the
  210. disk has been write protected. Note that drive C: will also report 0 bytes
  211. free, but will not be write protected.
  212.  
  213. 5.4. 0CD option: -S
  214. ===================------------------------------------------------------------
  215. Also, if you need to simulate different speed of the cd-rom drives, use the
  216. -s option. After -s, you supply either s, 1, 2, 3, 4, 6 or 8 for the speed,
  217. denoting "Super", single, double, triple, quadra, sexa or octa speed. Super
  218. speed means that the read that the minimal amount of time, and on my P90 the
  219. speed of the cd-rom drive is approximately 9.1 MB/s in super mode.
  220.  
  221. 5.5. 0CD option: -F
  222. ===================------------------------------------------------------------
  223. If a function call to the simulated cd-rom driver has no data to operate on,
  224. or no valid data to return, 0cd simply returns with all flags and values set
  225. to success, even though the data it returns may not be valid. If you want
  226. the driver to return failure codes instead, use the -F option.
  227.  
  228. 5.6. 0CD option: -A
  229. ===================------------------------------------------------------------
  230. If you come across a really stubborn game, try using the -A option for
  231. alternate cd-rom driver simulation. In fact, the -A option will make 0CD work
  232. like another cd-rom emulater that is available, and that is called FAKECD 1.0.
  233. One game you must use -A with is Worms from Team 17. The -A option effectively
  234. disables some of the cd-rom driver functions, and ignores any cd-rom data which
  235. has been read into memory. Use this only as a last resort.
  236.  
  237. 5.7. 0CD option: -I
  238. ===================------------------------------------------------------------
  239. By using the -I option you can instruct 0CD to simulate three different types
  240. of cd-rom drives. Physical (like a harddisk), substed, or remote (network
  241. and cd-rom drives). Default is to simulate a remote drive.
  242.  
  243. The option is followed by a single digit which has to be 0, 1 or 2, like this:
  244.  
  245.   0CD -I1
  246.  
  247. The three different digits means the following:
  248.  
  249.    -I0 = Physical
  250.    -I1 = Substed (like a subst and then a cd-rom emulator on top)
  251.    -I2 = Remote (network or cd-rom)
  252.  
  253. 5.8. 0CD option: -D
  254. ===================------------------------------------------------------------
  255. If you have access to the cd-rom when you copy or start the game, use the -D
  256. option to read back data from a file. The file should contain valid cd-rom data
  257. and if you look in chapter 6, you will see a way to steal the data from the
  258. original cd-rom. This way, 0CD will emulate the original cd better than without
  259. the data.
  260.  
  261. 5.9. 0CD option: -M
  262. ===================------------------------------------------------------------
  263. The -M option instructs 0CD to co-exist with mscdex the best way possible.
  264. The -M option needs a parameter, a single digit which can be 0, 1, 2 or 3.
  265. The different meanings of the digits are:
  266.  
  267.    -M0 = 0CD will NOT co-exist with MSCDEX in any way (this is default)
  268.    -M1 = 0CD will enable audio through-put
  269.    -M2 = 0CD will co-exist with MSCDEX, but audio through-put is disabled
  270.    -M3 = -M1 + -M2
  271.  
  272. Audio through-put means that the program can start and stop audio tracks on
  273. the first cd-rom attached to the system as normal. This means that for games
  274. that enables you to listen to music from the cd, you can just pop in any
  275. cd which you have lying about and listen to it. 0CD will take over and respond
  276. to any communication with the cd-rom drive, but will leave all the aspects of
  277. audio to the original MSCDEX driver.
  278.  
  279. 5.10. 0CD option: -V
  280. ====================-----------------------------------------------------------
  281. The -V option shows version information about 0CD. This is primarily intended
  282. as an identification utility when you report bugs.
  283.  
  284. 6. Advanced
  285. ===========--------------------------------------------------------------------
  286. If you have to copy a really tough game onto your harddisk, you need to use
  287. the supplied utility called RIPCD. RIPCD reads a small portion of the system
  288. information available from a cd and stores it in a file on your harddisk. When
  289. 0CD later on loads itself into memory, you can instruct it to load the file.
  290. When a program then asks 0CD for some of this information 0CD can supply it
  291. with the same information that the original cd would have produced.
  292.  
  293. RIPCD takes two parameters, and the command line format is as follows:
  294.  
  295.   RIPCD <filename> [<cd-drive>]
  296.  
  297. The <filename> parameter names the file to put the information in, and the
  298. <cd-drive> parameter identifies the cd-rom drive. You don't need to identify
  299. the cd-rom drive if you only have one drive in your system. If you have more
  300. than one drive, you need to supply this parameter.
  301.  
  302. RIPCD will then read the data and put it in the file. Example:
  303.  
  304.   RIPCD CARPET.DAT E:
  305.  
  306. RIPCD will here read the system data from the cd-rom in drive E:, and put it
  307. in the file called CARPET.DAT.
  308.  
  309. To make 0CD load the data back into memory, use the -D option. Example:
  310.  
  311.   0CD -DCARPET.DAT D:\CARPET
  312.  
  313. Notice that the -D option is supplied BEFORE the <directory> parameter. The -D
  314. option will then work for all such <directory> parameters which comes after
  315. it. To make a drive have no data, use an empty -D option. Example follows:
  316.  
  317.   0CD -DCD1.DAT C:\TEMP C:\TEMP -D C:\TEMP
  318.  
  319. Here, 0CD will create three cd-rom drives. The first two will have system data
  320. available from the file CD1.DAT, but the third cd-rom drive will have no
  321. system data available. You can supply different system data files for each
  322. drive if you want to.
  323.  
  324. RIPCD needs the program CRUNCH.COM to be in the same directory as the
  325. RIPCD.EXE file itself, so don't move this file.
  326.  
  327. If you for some reason need to make a cd-rom with a specific volume label,
  328. or you'd like to simulate how many audio tracks the cd has, but don't have the
  329. original cd nearby, use the MAKECD program. The MAKECD program will create a
  330. dummy cd with most normal values, but let you enter the volume label and how
  331. many audio tracks there is on the cd. MAKECD needs only the filename of the
  332. file to create.
  333.  
  334. 7. Known problems
  335. =================--------------------------------------------------------------
  336. 0CD is far from perfect. Some problems are made to be so stubborn that 0CD
  337. will not be able to respond in a satisfactory way. One reason for this is that
  338. the ABSOLUTE READ SECTOR function call is off course not implemented in 0CD.
  339. If a program uses this function call to read system data and check for the
  340. original CD, 0CD will come up short. Usually, this problems crops up when you
  341. use cd-rom identification utilities.
  342.  
  343. Here is a list of games and programs it has been tested and found to be
  344. working with:
  345.  
  346.   MechWarrior 2
  347.   Magic Carpet 1
  348.   Magic Carpet 1: The Hidden Worlds
  349.   Magic Carpet 2: Netherworlds
  350.   Fade 2 Black
  351.   Command & Conquer
  352.   QCD (cd-player that comes with SB16 system)
  353.   Norton System Information
  354.   Worms (use the -A switch, and no cd-data, or use the audio through-put)
  355.   ScanCD from Corel Corporation
  356.  
  357. Apart from these games, it hasn't been tested on any other products. As you
  358. can see for yourself, the list is far too short to say anything conclusive
  359. about the quality of 0CD. So far, it has worked fine, but there are probably
  360. some problems with it yet to be found.
  361.  
  362. 8. Disclaimer
  363. =============------------------------------------------------------------------
  364. In this document I have talked a lot about copying games onto harddisks, and
  365. avoiding copy protections and such stuff. As you already know, this is
  366. illegal, and I do not encourage such behaviour. The reason I made this utility
  367. was to make my computer able to smoothly play some of the newest games
  368. available, not to make it possible to rip and distribute pirated games. I hope
  369. that some people will enjoy this utility, and not blaim the "weapons" maker
  370. for the "deaths" it make.
  371.  
  372. 9. Who am I?
  373. ============-------------------------------------------------------------------
  374. My name is Lasse Vågsæther Karlsen, and you can reach me on internet on the
  375. following email address:
  376.  
  377.   lassek@tmih.no
  378.  
  379. 10. Why would you get in touch with me?
  380. =======================================----------------------------------------
  381. If for some reason you have a program 0CD doesn't run with, tell me about the
  382. problem. Give me your best shot at the reason for the failure, and a probable
  383. remedy for it. If I can fix the problem, you will get a 0CD that works with
  384. your software, and 0CD will get better. In the end, 0CD may be usable for a
  385. much larger range of software than it is today.
  386.  
  387. 11. The source code for 0CD
  388. ===========================----------------------------------------------------
  389. As you can see, the source code for 0CD follows this package. Always when I
  390. get a new utility, I feel a lot safer when the person who wrote it supplies
  391. the source code as well. Because of this, I supply the source code as part of
  392. this package. It is the complete source code, with the exception of the source
  393. code to CRUNCH.COM. This program is part of another package I have created,
  394. and is available upon request (Package+Source code that is). So tinker around
  395. and look at the source code, or even modify it.
  396.  
  397. 12. Tips
  398. ========-----------------------------------------------------------------------
  399. If you encounter a stubborn game, try combinations of the options. Sometimes,
  400. a game will not work when you feed it with original data from the cd-rom,
  401. but may instead work with a subset of the data and functions.
  402.  
  403. 13. Revision history for 0CD
  404. ============================---------------------------------------------------
  405. ; Revision 1.36  1995/12/04 00:56:07  Lasse
  406. ; Version 6.6; Now works with worms too, and simulates the following new
  407. ; device requests:
  408. ;   Play
  409. ;   Stop
  410. ; also, the AudioStatus function has been augmented to react on the Play
  411. ; and Stop functions, and the HeadLocation function will return different
  412. ; values, as though the cd was playing or moving around.
  413. ; Also, the -a option will make 0cd simulate FakeCD.
  414. ;
  415. ; Revision 1.35  1995/12/03 02:35:45  Lasse
  416. ; Version 6.5; Fixed the root-directory subst problem which came back :(
  417. ;
  418. ; Revision 1.34  1995/11/26 09:46:54  Lasse
  419. ; Version 6.4; Fixed several bugs with the DiskFree function
  420. ;
  421. ; Revision 1.33  1995/11/16 06:36:22  Lasse
  422. ; Fixed a bug in the makecd program, and an inconsistency in 0cd
  423. ;
  424. ; Revision 1.32  1995/11/16 06:14:39  Lasse
  425. ; Put Decrunch into 0cd.asm for maximum distributability
  426. ;
  427. ; Revision 1.31  1995/11/16 06:04:28  Lasse
  428. ; Version 6.2
  429. ;
  430. ; Revision 1.30  1995/11/16 05:24:59  Lasse
  431. ; Commented all code; Done some minor cosmetic changes, tidied up the
  432. ; code a bit
  433. ;
  434. ; Revision 1.29  1995/11/14 22:04:22  Lasse
  435. ; If last character in directory was \ then redirection failed; fixed!
  436. ;
  437. ; Revision 1.28  1995/11/14 21:57:59  Lasse
  438. ; Removed the "Unmangling" of filename
  439. ;
  440. ; Revision 1.27  1995/11/14 21:46:19  Lasse
  441. ; Version 6.2; Fixed so that magic carpet works; Fixed so that DiskFree(d:)
  442. ; where d: is a cd-rom now returns correct data
  443. ;
  444. ; Revision 1.26  1995/11/14 19:50:33  Lasse
  445. ; Bug in previous revision concerning the drive letter in speed messages;
  446. ; fixed
  447. ;
  448. ; Revision 1.25  1995/11/14 19:48:43  Lasse
  449. ; Fixed so that speed message included correct drive letter
  450. ;
  451. ; Revision 1.24  1995/11/14 19:29:30  Lasse
  452. ; Version 6.1; Super speed emulation enabled
  453. ;
  454. ; Revision 1.23  1995/11/14 19:02:11  Lasse
  455. ; Updated the usage message, and renamed VTC to data
  456. ;
  457. ; Revision 1.22  1995/11/14 18:51:36  Lasse
  458. ; Version 6.0; Now simulates speed of cd-rom; Also read sector 16 (system
  459. ; data)
  460. ;
  461. ; Revision 1.21  1995/11/12 21:52:52  Lasse
  462. ; Version 5.0; fixed a couple of bugs with the audio track information
  463. ;
  464. ; Revision 1.20  1995/11/12 08:14:22  Lasse
  465. ; Version 4.1
  466. ;
  467. ; Revision 1.19  1995/11/12 08:09:58  Lasse
  468. ; Removed some old dummy-stuff
  469. ;
  470. ; Revision 1.18  1995/11/12 06:44:56  Lasse
  471. ; Audio Status now responds music paused; fix necessary for MechWarrior 2
  472. ;
  473. ; Revision 1.17  1995/11/12 03:39:43  Lasse
  474. ; Fixed the return to directory bug
  475. ;
  476. ; Revision 1.16  1995/11/12 03:24:55  Lasse
  477. ; Bug-fix; couldn't supply more than name.ext, no dir to run
  478. ;
  479. ; Revision 1.15  1995/11/12 03:21:29  Lasse
  480. ; Version 4; supply name of program to run
  481. ;
  482. ; Revision 1.14  1995/11/12 02:34:58  Lasse
  483. ; Fixed so that it reads audio data also
  484. ;
  485. ; Revision 1.13  1995/11/11 22:51:03  Lasse
  486. ; Fixed so cd-roms could be redirected to the root of a drive
  487. ;
  488. ; Revision 1.12  1995/11/11 22:48:52  Lasse
  489. ; Fixed a bug which caused strange symbols in 'dir' listings
  490. ;
  491. ; Revision 1.11  1995/11/11 22:39:32  Lasse
  492. ; Fixed so it didn't automatically write protect cd-roms unless the user
  493. ; asked for it
  494. ;
  495. ; Revision 1.10  1995/11/11 20:50:50  Lasse
  496. ; DiskFree function now clears carry flag
  497. ;
  498. ; Revision 1.9  1995/11/11 20:44:24  Lasse
  499. ; Version 3.1; added option to supply name of .vtc file
  500. ;
  501. ; Revision 1.8  1995/11/11 20:15:29  Lasse
  502. ; Returns dummy filenames, and uses CD0.VTC - CD7.VTC instead of DIR.VTC
  503. ; so that the same directory may be used for different cd's.
  504. ;
  505. ; Revision 1.7  1995/11/11 05:55:23  Lasse
  506. ; Fixed so it reads the VTOC into memory and returns it upon request.
  507. ;
  508. ; Revision 1.6  1995/11/10 23:14:47  Lasse
  509. ; Fixed the volume label bug that appeared in the last revision.
  510. ;
  511. ; Revision 1.5  1995/11/10 23:05:40  Lasse
  512. ; Fixed a bug when checking more than 8 drives past the first emulated
  513. ; cd-rom drive.
  514. ;
  515. ; Revision 1.4  1995/11/07 22:15:01  Lasse
  516. ; Version 2.0
  517. ;
  518. ; Revision 1.3  1995/11/07 22:13:19  Lasse
  519. ; Now saves current drive and directory and restores them when the sub-
  520. ; process exits. Also has self-installed check code now.
  521. ;
  522. ; Revision 1.2  1995/11/07 21:50:29  Lasse
  523. ; Moved all string procedures into 0cd.asm itself. Tidied up some of the
  524. ; code. Replace the uppercase functions. Fixed so that the GetDirEntry call
  525. ; to MSCDEX will go through (possibly returning garbage, but...) and some
  526. ; other stuff.
  527. ;
  528. ; Revision 1.1  1995/11/07 20:15:56  Lasse
  529. ; Initial revision
  530.