86
CONFIG.SYS which resides on the drive C. However, CARDID.EXE cannot be registered as a
device driver at a card boot. If this CARDID.EXE is registered as a device driver, two drives may
be enabled concurrently if MS-DOS executes CONFIG.SYS. In addition, if ENDATA.COM is
called with the INSTALL command, the drive G is enabled exclusively. However, since MS-DOS is
operating under the assumption that the Drive F is the current drive, an access error with the drive F,
which does not actually exist, occurs because the AUTOEXEC.BAT file has been opened.
Then how about calling ENDATA.COM from AUTOEXEC.BAT? It is apparent that this is also not
successful. Although two drives are enabled by executing CONFIG.SYS, the drive G having been
enabled by CARDID.EXE is disabled when MS-DOS accesses the drive F to execute the
AUTOEXEC.BAT file.
Next, the problem where a large program cannot be directly initiated from AUTOEXEC.BAT is
explained. The explanation discusses the restrictions that apply to a card boot. This can be the
situation when an attempt is made to read AUTOEXEC.BAT from the drive F while it is being
disabled. COMMAND.COM consists of two independent parts called the resident part and non-
resident part. The non-resident part will be overwritten by a large application program if it is loaded
into the main memory. The resident part checks if the non-resident part has been destroyed at the
termination of an application program, and will, if it is found to have been destroyed, reload the non-
resident part again from the disk. In this case, accessing the drive F would not cause an error since
the COMMAND.COM file to be read at this time was designated by the SHELL command in the
CONFIG.SYS file. However, an error will result when an attempt is made by the reloaded
COMMAND.COM file to open the AUTOEXEC.BAT file in order to continue its process. This
problem can be avoided by shifting control priority from the AUTOEXEC.BAT file to another
appropriate batch file in the drive G.
Example of AUTOEXEC.BAT
@ECHO OFF
C: CARDSOFT CARDID.EXE
C: ENDATA.COM
----
G:
Other.bat
In the above example the current drive is moved to the drive G, and the Other bat file in the drive G
is called. Since execution of the Other .bat file is performed under the assumption that the drive G is
the current drive, no problem occurs if an attempt is made to open the same batch file in the course
of reloading the non-resident part. But, it is prohibited to use a CALL statement to invoke the
Other.bat file from AUTOEXEC.BAT. This will cause an error when control is returned to the
AUTOEXEC.BAT file.