VOGONS


DOS Questions

Topic actions

First post, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

I thought I’d already started a thread for this, but I guess I’d just imagined/considered it. I’ll use this thread to ask any and all DOS questions, mainly concerning commands etc. My knowledge with DOS is still fairly basic, but I’m interested in learning new things as I go and when I need them.

At the moment I’d like to know if there’s something you can add to a batch file, such as a specific directory, so you don’t need to keep typing it out? For instance, when I’m typing out the directory to unload a possible existing CD image at the start, can I add something so it remembers that path and I can just call what’s needed for adding a new game’s image? So if I have:

C:\SHSUCD\SHSUCDHD /U
C:\SHSUCD\SHSUCDX /U

…to unmount the existing image, but I want to get it to mount the next image, can I do something so only SHSUCDHD and SHSUCDX and their needed switches/assignments are typed out? I figured it would be SET, followed by the location path, but when I tried that it didn’t seem to work. I did use SET twice - one for each of those, so maybe only one path can be set…?

Another thing would be unloading and loading sound utilities. I have UNISOUND configured in my autoexec.bat file, which initialises on boot. But if I want to make use of the onboard sound card and its GM, like the DOS versions of Simon the Sorcerer 1 & 2, which either don’t work with the SC-55 or there’s a hanging note bug, I need to unload UNISOUND first. I’ve added UNISOUND /D in both Simon 1 & 2’s batch file at the start. Then put the commands for loading SBPCI. There are three - one for LOAD, INIT, and MT32. However, it’d be nice to have a command that puts things back after quitting the game. Is such a shortcut possible? Or would I need to type them out at the end to disable one and re-enable the other?

Thanks

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 1 of 44, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie

The PROMPT and PATH environment variables are special, in that there are built in aliases PROMPT and PATH that automatically do SET PROMPT=... or SET PATH=... You can still use those forms if you want.

If you want to be able to type shsucdx and so forth directly, they need to be somewhere in your PATH. In practice, you'd put them somewhere already in your path (like C:\DOS) but you could also edit AUTOEXEC.BAT to put them in your path like so:

PATH C:\DOS;C:\SHSUCD

If there is already a PATH command there, edit it accordingly. You jam together multiple directories to search with a semicolon, and no spaces. There is a limit on the PATH of around 127 characters or so, so although this is perfectly fine, it can get unwieldy on Windows 9x when you start wanting to put various C:\Progra~1\ paths in there.

I don't follow the unloading question exactly. You can call your game in the middle of a batch file if you want, so that you can do cleanup after the game exits. Note that if you call one batch file from another, by default the new batch file takes over the flow of control without returning back (like exec on a Unix shell). You can use CALL and another batch file if you want to return back when it's done. This might load a second copy of COMMAND and take up conventional memory though; haven't checked.

Reply 2 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote on 2025-02-16, 01:29:
The PROMPT and PATH environment variables are special, in that there are built in aliases PROMPT and PATH that automatically do […]
Show full quote

The PROMPT and PATH environment variables are special, in that there are built in aliases PROMPT and PATH that automatically do SET PROMPT=... or SET PATH=... You can still use those forms if you want.

If you want to be able to type shsucdx and so forth directly, they need to be somewhere in your PATH. In practice, you'd put them somewhere already in your path (like C:\DOS) but you could also edit AUTOEXEC.BAT to put them in your path like so:

PATH C:\DOS;C:\SHSUCD

If there is already a PATH command there, edit it accordingly. You jam together multiple directories to search with a semicolon, and no spaces. There is a limit on the PATH of around 127 characters or so, so although this is perfectly fine, it can get unwieldy on Windows 9x when you start wanting to put various C:\Progra~1\ paths in there.

I don't follow the unloading question exactly. You can call your game in the middle of a batch file if you want, so that you can do cleanup after the game exits. Note that if you call one batch file from another, by default the new batch file takes over the flow of control without returning back (like exec on a Unix shell). You can use CALL and another batch file if you want to return back when it's done. This might load a second copy of COMMAND and take up conventional memory though; haven't checked.

Hmm. Well, I have these in my autoexec.bat:

LH C:\SHSUCD\SHSUCDX.COM /D:MSCD001, /L:E
LH C:\SHSUCD\SHSUCDHD.EXE

…so the drives/drivers initialise when DOS loads. I believe two different commands are needed for both SHSUCDHD and SHSUCDX to mount the image, which I’ve been putting in a game’s batch file.
So I would need to use PATH for it to remember a directory then? Thanks. Also, good to know about the semicolon for adding multiple directories. I did not know that. 😀
I’ll avoid calling one batch file from another; I imagine that would get messy. Plus, there’s no guarantees of wanting to load up another game after finishing one. 😜

But regarding the unloading question - I did try adding the command of unloading an image at the end of a game’s batch file for when the game is ended. It didn’t appear to work though. Because when I tried loading a different game, it complained the devices/drivers weren’t there/initialised or whatever. So I’ve been sticking them at the start of each game’s batch file to ensure they’re unloaded before their images are mounted. Not sure if that’s the right way of doing it, but it’s been working so far.
But rather than typing the whole thing, such as:

C:\SHSUCD\SHSUCDHD or C:\SHSUCD\SHSUCDX every time I want to do something with them, it’d be nice to set the directory first, which I presume I’d be able to with PATH…?, and then just type out SHSUCDHD or SHSUCDX followed by * insert switch/command here to load image/driver*

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 3 of 44, by ludicrous_peridot

User metadata
Rank Member
Rank
Member

Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share couple BAT files I have put together to help me manage physical CD-ROM and ISO-based one in MS-DOS and FreeDOS.

I am giving an example of MS-DOS 7 (well, that's Windows 98SE actually), and FreeDOS version is in the attachments.

Here's the utility MOUNTCD.BAT:

@ECHO OFF

SET dosdir=D:\FREEDOS\FDOS
SET SHSUCH=D:\SYSTEM\SHSUCH21
SET SHSUCD=D:\SYSTEM\SHSUCD.R36

LABEL J: >NUL
IF ERRORLEVEL 15 GOTO EMPTYDRIVE
SET NODEV=TRUE
:EMPTYDRIVE

%SHSUCD%\SHSUCDX /Q /U /I
IF ERRORLEVEL 247 %SHSUCD%\SHSUCDX /Q /U
%SHSUCH%\SHSUCDHD /U

IF TRUE==%NODEV% GOTO DONEDEV
%dosdir%\BIN\DEVLOAD /Q D:\SYSTEM\APICD214\VIDE-CDD.SYS /D:FDCD0001

:DONEDEV
SET DONEDEV=

IF "Z%1"=="Z" GOTO LOADISO
IF EXIST "%1" LH %SHSUCH%\SHSUCDHD /F:%1
IF EXIST "F:\SOFT\%1" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1
IF EXIST "F:\SOFT\%1.ISO" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1.ISO
GOTO DONELOAD

:LOADISO
LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\HEXENDK_.ISO
:DONELOAD

LH %SHSUCD%\SHSUCDX /Q /I /C /~ /D:?SHSU-CDR,I /D:?SHSU-CDH,I /D:?FDCD0001,I /D:?FDCD0002,I /D:?FDCD0003,I

With MOUNTCD.BAT in my D:\ I have the following in my AUTOEXEC.BAT to spin up both image and physical drives starting from letter I: (note SET PATH which adds D:\ to the list of lookup directories)

@ECHO OFF
SET ISO=TIECD
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\FREEDOS\FDOS\BIN;D:\

REM ...

CALL MOUNTCD %ISO%

I can also run the below from the command prompt to re-mount an arbitrary CD image:

MOUNTCD TIECD

If you are curious why I have image preloaded in AUTOEXEC.BAT, that's because the version of SHSUCH I have allows for "image drive" to be accessible from Windows 98, but Windows 98 would not allow image juggling, so I have to load custom CD-ROM drivers before passing on to "32-bit kernel" to enjoy this feature.

For FreeDOS the BAT-files did not get "ported" like for like, so I am using a separate BAT-file for loading during boot and and another one for on-demand image swap (well, that's just how it ended up being 😀 ).

Here's the relevant portion of my FDAUTO.BAT (note that D:\ where this sits is again added to PATH on boot):

@ECHO OFF
SET ISO=TIECD
SET PATH=D:\FREEDOS\FDOS\BIN;D:\FREEDOS\FDOS\BIN2;E:\;D:\

REM ...

CALL FDCDROM %ISO%

When I need to load an image from command prompt I invoke this:

MOUNTISO TIECD

EDIT:

I have actually set up similar BAT-files for other "optionalities".
E.g. here's an example for running a concrete game - an Interplay Star Trek title:

@ECHO OFF
CALL DS-XG
LH CTMOUSE
CALL MOUNTISO TREKCD
CALL BURAN MT32
LH SMARTDRV
E:
CD E:\TREKCD
CALL TREKCD.BAT
CALL BURAN GS

DS-XG is the sound card initializer/TSR, BURAN is a script for loading a particular bank into the MIDI synth, and MOUNTISO I've covered above.
The batch file is TREKCD.BAT and sits in E:\ which I have added to PATH. With this I can just go

TREKCD

after booting into the relevant DOS configuration from boot menu.

GA-G41M-Combo G41/ICH7 - Core 2 Quad Q9550 - DDR3 1033 - Radeon RX570 - YMF744 (Cobra) - X3MB (Buran)
Beetle/M/i815+ICH2 - Celeron 566Mhz - Opti 924 (Typhoon Media)

Reply 4 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ludicrous_peridot wrote on 2025-02-16, 14:52:
Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share c […]
Show full quote

Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share couple BAT files I have put together to help me manage physical CD-ROM and ISO-based one in MS-DOS and FreeDOS.

I am giving an example of MS-DOS 7 (well, that's Windows 98SE actually), and FreeDOS version is in the attachments.

Here's the utility MOUNTCD.BAT:

@ECHO OFF

SET dosdir=D:\FREEDOS\FDOS
SET SHSUCH=D:\SYSTEM\SHSUCH21
SET SHSUCD=D:\SYSTEM\SHSUCD.R36

LABEL J: >NUL
IF ERRORLEVEL 15 GOTO EMPTYDRIVE
SET NODEV=TRUE
:EMPTYDRIVE

%SHSUCD%\SHSUCDX /Q /U /I
IF ERRORLEVEL 247 %SHSUCD%\SHSUCDX /Q /U
%SHSUCH%\SHSUCDHD /U

IF TRUE==%NODEV% GOTO DONEDEV
%dosdir%\BIN\DEVLOAD /Q D:\SYSTEM\APICD214\VIDE-CDD.SYS /D:FDCD0001

:DONEDEV
SET DONEDEV=

IF "Z%1"=="Z" GOTO LOADISO
IF EXIST "%1" LH %SHSUCH%\SHSUCDHD /F:%1
IF EXIST "F:\SOFT\%1" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1
IF EXIST "F:\SOFT\%1.ISO" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1.ISO
GOTO DONELOAD

:LOADISO
LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\HEXENDK_.ISO
:DONELOAD

LH %SHSUCD%\SHSUCDX /Q /I /C /~ /D:?SHSU-CDR,I /D:?SHSU-CDH,I /D:?FDCD0001,I /D:?FDCD0002,I /D:?FDCD0003,I

With MOUNTCD.BAT in my D:\ I have the following in my AUTOEXEC.BAT to spin up both image and physical drives starting from letter I: (note SET PATH which adds D:\ to the list of lookup directories)

@ECHO OFF
SET ISO=TIECD
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\FREEDOS\FDOS\BIN;D:\

REM ...

CALL MOUNTCD %ISO%

I can also run the below from the command prompt to re-mount an arbitrary CD image:

MOUNTCD TIECD

If you are curious why I have image preloaded in AUTOEXEC.BAT, that's because the version of SHSUCH I have allows for "image drive" to be accessible from Windows 98, but Windows 98 would not allow image juggling, so I have to load custom CD-ROM drivers before passing on to "32-bit kernel" to enjoy this feature.

For FreeDOS the BAT-files did not get "ported" like for like, so I am using a separate BAT-file for loading during boot and and another one for on-demand image swap (well, that's just how it ended up being 😀 ).

Here's the relevant portion of my FDAUTO.BAT (note that D:\ where this sits is again added to PATH on boot):

@ECHO OFF
SET ISO=TIECD
SET PATH=D:\FREEDOS\FDOS\BIN;D:\FREEDOS\FDOS\BIN2;E:\;D:\

REM ...

CALL FDCDROM %ISO%

When I need to load an image from command prompt I invoke this:

MOUNTISO TIECD

EDIT:

I have actually set up similar BAT-files for other "optionalities".
E.g. here's an example for running a concrete game - an Interplay Star Trek title:

@ECHO OFF
CALL DS-XG
LH CTMOUSE
CALL MOUNTISO TREKCD
CALL BURAN MT32
LH SMARTDRV
E:
CD E:\TREKCD
CALL TREKCD.BAT
CALL BURAN GS

DS-XG is the sound card initializer/TSR, BURAN is a script for loading a particular bank into the MIDI synth, and MOUNTISO I've covered above.
The batch file is TREKCD.BAT and sits in E:\ which I have added to PATH. With this I can just go

TREKCD

after booting into the relevant DOS configuration from boot menu.

Hey, thanks for sharing these custom BAT set-ups and commands. It might take me some time to get my head around it all and know what does what. ^^; One follow-up question I was going to ask at some point is how you would go about setting up multiple image drives so you can mount multiple ISOs. Especially for games like the Tex Murphy series.

EDIT: So '%%' is a way of calling a directory without having to type it all out? Interesting. Good to know.

Last edited by DustyShinigami on 2025-02-16, 15:40. Edited 1 time in total.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 5 of 44, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
DustyShinigami wrote on 2025-02-16, 15:33:
ludicrous_peridot wrote on 2025-02-16, 14:52:
Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share c […]
Show full quote

Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share couple BAT files I have put together to help me manage physical CD-ROM and ISO-based one in MS-DOS and FreeDOS.

I am giving an example of MS-DOS 7 (well, that's Windows 98SE actually), and FreeDOS version is in the attachments.

Here's the utility MOUNTCD.BAT:

@ECHO OFF

SET dosdir=D:\FREEDOS\FDOS
SET SHSUCH=D:\SYSTEM\SHSUCH21
SET SHSUCD=D:\SYSTEM\SHSUCD.R36

LABEL J: >NUL
IF ERRORLEVEL 15 GOTO EMPTYDRIVE
SET NODEV=TRUE
:EMPTYDRIVE

%SHSUCD%\SHSUCDX /Q /U /I
IF ERRORLEVEL 247 %SHSUCD%\SHSUCDX /Q /U
%SHSUCH%\SHSUCDHD /U

IF TRUE==%NODEV% GOTO DONEDEV
%dosdir%\BIN\DEVLOAD /Q D:\SYSTEM\APICD214\VIDE-CDD.SYS /D:FDCD0001

:DONEDEV
SET DONEDEV=

IF "Z%1"=="Z" GOTO LOADISO
IF EXIST "%1" LH %SHSUCH%\SHSUCDHD /F:%1
IF EXIST "F:\SOFT\%1" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1
IF EXIST "F:\SOFT\%1.ISO" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1.ISO
GOTO DONELOAD

:LOADISO
LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\HEXENDK_.ISO
:DONELOAD

LH %SHSUCD%\SHSUCDX /Q /I /C /~ /D:?SHSU-CDR,I /D:?SHSU-CDH,I /D:?FDCD0001,I /D:?FDCD0002,I /D:?FDCD0003,I

With MOUNTCD.BAT in my D:\ I have the following in my AUTOEXEC.BAT to spin up both image and physical drives starting from letter I: (note SET PATH which adds D:\ to the list of lookup directories)

@ECHO OFF
SET ISO=TIECD
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\FREEDOS\FDOS\BIN;D:\

REM ...

CALL MOUNTCD %ISO%

I can also run the below from the command prompt to re-mount an arbitrary CD image:

MOUNTCD TIECD

If you are curious why I have image preloaded in AUTOEXEC.BAT, that's because the version of SHSUCH I have allows for "image drive" to be accessible from Windows 98, but Windows 98 would not allow image juggling, so I have to load custom CD-ROM drivers before passing on to "32-bit kernel" to enjoy this feature.

For FreeDOS the BAT-files did not get "ported" like for like, so I am using a separate BAT-file for loading during boot and and another one for on-demand image swap (well, that's just how it ended up being 😀 ).

Here's the relevant portion of my FDAUTO.BAT (note that D:\ where this sits is again added to PATH on boot):

@ECHO OFF
SET ISO=TIECD
SET PATH=D:\FREEDOS\FDOS\BIN;D:\FREEDOS\FDOS\BIN2;E:\;D:\

REM ...

CALL FDCDROM %ISO%

When I need to load an image from command prompt I invoke this:

MOUNTISO TIECD

EDIT:

I have actually set up similar BAT-files for other "optionalities".
E.g. here's an example for running a concrete game - an Interplay Star Trek title:

@ECHO OFF
CALL DS-XG
LH CTMOUSE
CALL MOUNTISO TREKCD
CALL BURAN MT32
LH SMARTDRV
E:
CD E:\TREKCD
CALL TREKCD.BAT
CALL BURAN GS

DS-XG is the sound card initializer/TSR, BURAN is a script for loading a particular bank into the MIDI synth, and MOUNTISO I've covered above.
The batch file is TREKCD.BAT and sits in E:\ which I have added to PATH. With this I can just go

TREKCD

after booting into the relevant DOS configuration from boot menu.

Hey, thanks for sharing these custom BAT set-ups and commands. It might take me some time to get my head around it all and know what does what. ^^; One follow-up question I was going to ask at some point is how you would go about setting up multiple image drives so you can mount multiple ISOs. Especially for games like the Tex Murphy series.

I found with the pandora directive you can simply copy all the files from all the CDs to one directory on the hard drive and run the game from there, no emulated CDs required

Reply 6 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
maxtherabbit wrote on 2025-02-16, 15:37:
DustyShinigami wrote on 2025-02-16, 15:33:
ludicrous_peridot wrote on 2025-02-16, 14:52:
Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share c […]
Show full quote

Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share couple BAT files I have put together to help me manage physical CD-ROM and ISO-based one in MS-DOS and FreeDOS.

I am giving an example of MS-DOS 7 (well, that's Windows 98SE actually), and FreeDOS version is in the attachments.

Here's the utility MOUNTCD.BAT:

@ECHO OFF

SET dosdir=D:\FREEDOS\FDOS
SET SHSUCH=D:\SYSTEM\SHSUCH21
SET SHSUCD=D:\SYSTEM\SHSUCD.R36

LABEL J: >NUL
IF ERRORLEVEL 15 GOTO EMPTYDRIVE
SET NODEV=TRUE
:EMPTYDRIVE

%SHSUCD%\SHSUCDX /Q /U /I
IF ERRORLEVEL 247 %SHSUCD%\SHSUCDX /Q /U
%SHSUCH%\SHSUCDHD /U

IF TRUE==%NODEV% GOTO DONEDEV
%dosdir%\BIN\DEVLOAD /Q D:\SYSTEM\APICD214\VIDE-CDD.SYS /D:FDCD0001

:DONEDEV
SET DONEDEV=

IF "Z%1"=="Z" GOTO LOADISO
IF EXIST "%1" LH %SHSUCH%\SHSUCDHD /F:%1
IF EXIST "F:\SOFT\%1" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1
IF EXIST "F:\SOFT\%1.ISO" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1.ISO
GOTO DONELOAD

:LOADISO
LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\HEXENDK_.ISO
:DONELOAD

LH %SHSUCD%\SHSUCDX /Q /I /C /~ /D:?SHSU-CDR,I /D:?SHSU-CDH,I /D:?FDCD0001,I /D:?FDCD0002,I /D:?FDCD0003,I

With MOUNTCD.BAT in my D:\ I have the following in my AUTOEXEC.BAT to spin up both image and physical drives starting from letter I: (note SET PATH which adds D:\ to the list of lookup directories)

@ECHO OFF
SET ISO=TIECD
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\FREEDOS\FDOS\BIN;D:\

REM ...

CALL MOUNTCD %ISO%

I can also run the below from the command prompt to re-mount an arbitrary CD image:

MOUNTCD TIECD

If you are curious why I have image preloaded in AUTOEXEC.BAT, that's because the version of SHSUCH I have allows for "image drive" to be accessible from Windows 98, but Windows 98 would not allow image juggling, so I have to load custom CD-ROM drivers before passing on to "32-bit kernel" to enjoy this feature.

For FreeDOS the BAT-files did not get "ported" like for like, so I am using a separate BAT-file for loading during boot and and another one for on-demand image swap (well, that's just how it ended up being 😀 ).

Here's the relevant portion of my FDAUTO.BAT (note that D:\ where this sits is again added to PATH on boot):

@ECHO OFF
SET ISO=TIECD
SET PATH=D:\FREEDOS\FDOS\BIN;D:\FREEDOS\FDOS\BIN2;E:\;D:\

REM ...

CALL FDCDROM %ISO%

When I need to load an image from command prompt I invoke this:

MOUNTISO TIECD

EDIT:

I have actually set up similar BAT-files for other "optionalities".
E.g. here's an example for running a concrete game - an Interplay Star Trek title:

@ECHO OFF
CALL DS-XG
LH CTMOUSE
CALL MOUNTISO TREKCD
CALL BURAN MT32
LH SMARTDRV
E:
CD E:\TREKCD
CALL TREKCD.BAT
CALL BURAN GS

DS-XG is the sound card initializer/TSR, BURAN is a script for loading a particular bank into the MIDI synth, and MOUNTISO I've covered above.
The batch file is TREKCD.BAT and sits in E:\ which I have added to PATH. With this I can just go

TREKCD

after booting into the relevant DOS configuration from boot menu.

Hey, thanks for sharing these custom BAT set-ups and commands. It might take me some time to get my head around it all and know what does what. ^^; One follow-up question I was going to ask at some point is how you would go about setting up multiple image drives so you can mount multiple ISOs. Especially for games like the Tex Murphy series.

I found with the pandora directive you can simply copy all the files from all the CDs to one directory on the hard drive and run the game from there, no emulated CDs required

Huh. Cool. Does that also work for UAKM, too? Do you need to assign anything to other drives in Preferences? I take it you just click Okay when it asks for the next CD?

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 7 of 44, by ludicrous_peridot

User metadata
Rank Member
Rank
Member
maxtherabbit wrote on 2025-02-16, 15:37:

I found with the pandora directive you can simply copy all the files from all the CDs to one directory on the hard drive and run the game from there, no emulated CDs required

This has actually been my approach to the problem - never got to figuring out a resident disk juggling solution for DOS. Having said that my collection of games is pretty small, but e.g. for Lands of Lore II I simply used what GOG ships which already combines contents of 4 CD-s into something you can copy to a hard drive and play.

GA-G41M-Combo G41/ICH7 - Core 2 Quad Q9550 - DDR3 1033 - Radeon RX570 - YMF744 (Cobra) - X3MB (Buran)
Beetle/M/i815+ICH2 - Celeron 566Mhz - Opti 924 (Typhoon Media)

Reply 8 of 44, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
DustyShinigami wrote on 2025-02-16, 15:41:
maxtherabbit wrote on 2025-02-16, 15:37:
DustyShinigami wrote on 2025-02-16, 15:33:

Hey, thanks for sharing these custom BAT set-ups and commands. It might take me some time to get my head around it all and know what does what. ^^; One follow-up question I was going to ask at some point is how you would go about setting up multiple image drives so you can mount multiple ISOs. Especially for games like the Tex Murphy series.

I found with the pandora directive you can simply copy all the files from all the CDs to one directory on the hard drive and run the game from there, no emulated CDs required

Huh. Cool. Does that also work for UAKM, too? Do you need to assign anything to other drives in Preferences? I take it you just click Okay when it asks for the next CD?

It's been a while but I think you can take a similar approach with under a killing moon, though there are more than a couple files which have the same name and different contents across the 4 CDs.

Iirc I believe it never asks for a disc swap prompt at all it just works

Reply 9 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
ludicrous_peridot wrote on 2025-02-16, 14:52:
Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share c […]
Show full quote

Appreciate the way you put your question is fairly generic, but since this is on the topic of CD images, I would like to share couple BAT files I have put together to help me manage physical CD-ROM and ISO-based one in MS-DOS and FreeDOS.

I am giving an example of MS-DOS 7 (well, that's Windows 98SE actually), and FreeDOS version is in the attachments.

Here's the utility MOUNTCD.BAT:

@ECHO OFF

SET dosdir=D:\FREEDOS\FDOS
SET SHSUCH=D:\SYSTEM\SHSUCH21
SET SHSUCD=D:\SYSTEM\SHSUCD.R36

LABEL J: >NUL
IF ERRORLEVEL 15 GOTO EMPTYDRIVE
SET NODEV=TRUE
:EMPTYDRIVE

%SHSUCD%\SHSUCDX /Q /U /I
IF ERRORLEVEL 247 %SHSUCD%\SHSUCDX /Q /U
%SHSUCH%\SHSUCDHD /U

IF TRUE==%NODEV% GOTO DONEDEV
%dosdir%\BIN\DEVLOAD /Q D:\SYSTEM\APICD214\VIDE-CDD.SYS /D:FDCD0001

:DONEDEV
SET DONEDEV=

IF "Z%1"=="Z" GOTO LOADISO
IF EXIST "%1" LH %SHSUCH%\SHSUCDHD /F:%1
IF EXIST "F:\SOFT\%1" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1
IF EXIST "F:\SOFT\%1.ISO" LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\%1.ISO
GOTO DONELOAD

:LOADISO
LH %SHSUCH%\SHSUCDHD /F:F:\SOFT\HEXENDK_.ISO
:DONELOAD

LH %SHSUCD%\SHSUCDX /Q /I /C /~ /D:?SHSU-CDR,I /D:?SHSU-CDH,I /D:?FDCD0001,I /D:?FDCD0002,I /D:?FDCD0003,I

With MOUNTCD.BAT in my D:\ I have the following in my AUTOEXEC.BAT to spin up both image and physical drives starting from letter I: (note SET PATH which adds D:\ to the list of lookup directories)

@ECHO OFF
SET ISO=TIECD
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\FREEDOS\FDOS\BIN;D:\

REM ...

CALL MOUNTCD %ISO%

I can also run the below from the command prompt to re-mount an arbitrary CD image:

MOUNTCD TIECD

If you are curious why I have image preloaded in AUTOEXEC.BAT, that's because the version of SHSUCH I have allows for "image drive" to be accessible from Windows 98, but Windows 98 would not allow image juggling, so I have to load custom CD-ROM drivers before passing on to "32-bit kernel" to enjoy this feature.

For FreeDOS the BAT-files did not get "ported" like for like, so I am using a separate BAT-file for loading during boot and and another one for on-demand image swap (well, that's just how it ended up being 😀 ).

Here's the relevant portion of my FDAUTO.BAT (note that D:\ where this sits is again added to PATH on boot):

@ECHO OFF
SET ISO=TIECD
SET PATH=D:\FREEDOS\FDOS\BIN;D:\FREEDOS\FDOS\BIN2;E:\;D:\

REM ...

CALL FDCDROM %ISO%

When I need to load an image from command prompt I invoke this:

MOUNTISO TIECD

EDIT:

I have actually set up similar BAT-files for other "optionalities".
E.g. here's an example for running a concrete game - an Interplay Star Trek title:

@ECHO OFF
CALL DS-XG
LH CTMOUSE
CALL MOUNTISO TREKCD
CALL BURAN MT32
LH SMARTDRV
E:
CD E:\TREKCD
CALL TREKCD.BAT
CALL BURAN GS

DS-XG is the sound card initializer/TSR, BURAN is a script for loading a particular bank into the MIDI synth, and MOUNTISO I've covered above.
The batch file is TREKCD.BAT and sits in E:\ which I have added to PATH. With this I can just go

TREKCD

after booting into the relevant DOS configuration from boot menu.

Yeah, unfortunately I’m not able to get my head around the vast majority of that code. 😅 At the moment I’m just trying to get SET working for various directories. The first attempt was a fail and the batch file just wound up reloading everything I’d set up in an endless loop. 😂

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 10 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

Okay, this what I have one game set up like so far:

The attachment IMG_4120.jpeg is no longer available

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 11 of 44, by DaveDDS

User metadata
Rank Oldbie
Rank
Oldbie

You can add directories to your PATH which will make DOS automatically
search there for commands. That way you don't have to use separate env.
vars to prefix the commands.

If you are only doing this within a certain batch file, and don't want to clutter
your environment and PATH outside that batch file, you can save the PATH to a
temp env.var, set the new PATH, do your commands that use it, then restore PATH
from the temp env.var, and finally remove the temp env.var.

Here's an example .BAT file that does this:

R:\>type dopath.bat
@echo OFF
echo Original PATH: %PATH%
set _PATH_=%PATH%
set PATH=C:\dir1;C:\dir2;%PATH%
echo New PATH: %PATH%
rem ... commands using new PATH go here ...
set PATH=%_PATH_%
set _PATH_=
echo Restored PATH: %PATH%

R:\>dopath
Original PATH: C:\CMDS;C:\DOS;C:\MC
New PATH: C:\dir1;C:\dir2;C:\CMDS;C:\DOS;C:\MC
Restored PATH: C:\CMDS;C:\DOS;C:\MC

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Reply 12 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
DaveDDS wrote on 2025-02-17, 13:09:
You can add directories to your PATH which will make DOS automatically search there for commands. That way you don't have to use […]
Show full quote

You can add directories to your PATH which will make DOS automatically
search there for commands. That way you don't have to use separate env.
vars to prefix the commands.

If you are only doing this within a certain batch file, and don't want to clutter
your environment and PATH outside that batch file, you can save the PATH to a
temp env.var, set the new PATH, do your commands that use it, then restore PATH
from the temp env.var, and finally remove the temp env.var.

Here's an example .BAT file that does this:

R:\>type dopath.bat
@echo OFF
echo Original PATH: %PATH%
set _PATH_=%PATH%
set PATH=C:\dir1;C:\dir2;%PATH%
echo New PATH: %PATH%
rem ... commands using new PATH go here ...
set PATH=%_PATH_%
set _PATH_=
echo Restored PATH: %PATH%

R:\>dopath
Original PATH: C:\CMDS;C:\DOS;C:\MC
New PATH: C:\dir1;C:\dir2;C:\CMDS;C:\DOS;C:\MC
Restored PATH: C:\CMDS;C:\DOS;C:\MC

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Okay, this is information overload. ^^; I'm struggling to understand what each line/command is, what it's doing, and why. Once I get that, it'll be much easier for me to implement it. I keep trying to look up some of the syntax on Google, but a lot isn't coming up with anything.

Is 'R' one of your HDDs? Or does that have a different meaning/use? What's the purpse of '>' after R:\? I'm not sure why %PATH% is added at the end of set PATH=C:\dir1;C:\dir2 either. Likewise how %PATH% is being used for Original PATH and New PATH.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 13 of 44, by DaveDDS

User metadata
Rank Oldbie
Rank
Oldbie
DustyShinigami wrote on 2025-02-17, 13:49:

Okay, this is information overload. ^^; I'm struggling to understand what each line/command is, what it's doing, and why. Once I get that, it'll be much easier for me to implement it. I keep trying to look up some of the syntax on Google, but a lot isn't coming up with anything.

You can simplify the .BAT by removing the "echo" lines - those were just to show how PATH was
changing:

@echo OFF
set _PATH_=%PATH%
set PATH=C:\dir1;C:\dir2;%PATH%
... commands using new PATH go here ...
set PATH=%_PATH_%
set _PATH_=

Is 'R' one of your HDDs? Or does that have a different meaning/use? What's the purpse of '>' after R:\? I'm not sure why %PATH% is added at the end of set PATH=C:\dir1;C:\dir2 either. Likewise how %PATH% is being used for Original PATH and New PATH.

R: is a RamDrive on my system... I tend to use RamDrives (not so much for speed, but because I can put all kinds of
trash on it and it will "self clean" next time I reboot)!
Think of it as just another drive - nothing special in this case.

R:\> is the command prompt (I use PROMPT=$P$G) - where the "type dopath.bat" and "dopath"
commands were entered.

set PATH=...%PATH%

Is just putting "..." at the beginning of PATH (so DOS will look first in the new dirs you
added as they are likely to be where you will be executing from most in this .BAT) but
keeps your old/existing PATH in the search so you will still be able to use other commands.

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Reply 14 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
DaveDDS wrote on 2025-02-17, 15:22:
You can simplify the .BAT by removing the "echo" lines - those were just to show how PATH was changing: […]
Show full quote
DustyShinigami wrote on 2025-02-17, 13:49:

Okay, this is information overload. ^^; I'm struggling to understand what each line/command is, what it's doing, and why. Once I get that, it'll be much easier for me to implement it. I keep trying to look up some of the syntax on Google, but a lot isn't coming up with anything.

You can simplify the .BAT by removing the "echo" lines - those were just to show how PATH was
changing:

@echo OFF
set _PATH_=%PATH%
set PATH=C:\dir1;C:\dir2;%PATH%
... commands using new PATH go here ...
set PATH=%_PATH_%
set _PATH_=

Is 'R' one of your HDDs? Or does that have a different meaning/use? What's the purpse of '>' after R:\? I'm not sure why %PATH% is added at the end of set PATH=C:\dir1;C:\dir2 either. Likewise how %PATH% is being used for Original PATH and New PATH.

R: is a RamDrive on my system... I tend to use RamDrives (not so much for speed, but because I can put all kinds of
trash on it and it will "self clean" next time I reboot)!
Think of it as just another drive - nothing special in this case.

R:\> is the command prompt (I use PROMPT=$P$G) - where the "type dopath.bat" and "dopath"
commands were entered.

set PATH=...%PATH%

Is just putting "..." at the beginning of PATH (so DOS will look first in the new dirs you
added as they are likely to be where you will be executing from most in this .BAT) but
keeps your old/existing PATH in the search so you will still be able to use other commands.

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

A RamDrive. I see. I take it that's set up in your autoexec.bat file...? That R: has been assigned a path/directory to the driver? Or is it just the standard for calling it? I'll have to play around and try adding similar variables and see if I can figure out how they work. I'll report back if I manage or not. 😀

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 15 of 44, by DaveDDS

User metadata
Rank Oldbie
Rank
Oldbie
DustyShinigami wrote on 2025-02-17, 17:25:

A RamDrive. I see. I take it that's set up in your autoexec.bat file...? That R: has been assigned a path/directory to the driver? Or is it just the standard for calling it? I'll have to play around and try adding similar variables and see if I can figure out how they work. I'll report back if I manage or not. 😀

I'm mostly running is DosBox these days, the R: RamDrive is set up on the Windows host (and appears there as an R: drive,
I picked the 'R' - makes sense to me as I have them on most of my systems, some of which have D: E: G: ... but none go as far
as R: and it makes sense (at least to me))

I have: mount R R:\
in my DosBox.INI ... so R:\ is a common drive that appears both in Windows, and within DosBox ... makes it really easy to
copy stuff back and forth without having to figure out where a particular Windows directory is in DosBoxs mounted drives ...
I can copy anything just by copying it to R:\ on one system, and from R:\ on the other.

For this discussion ... It's "just another drive" that happens to be R:

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Reply 16 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie
DaveDDS wrote on 2025-02-17, 19:14:
I'm mostly running is DosBox these days, the R: RamDrive is set up on the Windows host (and appears there as an R: drive, I pick […]
Show full quote
DustyShinigami wrote on 2025-02-17, 17:25:

A RamDrive. I see. I take it that's set up in your autoexec.bat file...? That R: has been assigned a path/directory to the driver? Or is it just the standard for calling it? I'll have to play around and try adding similar variables and see if I can figure out how they work. I'll report back if I manage or not. 😀

I'm mostly running is DosBox these days, the R: RamDrive is set up on the Windows host (and appears there as an R: drive,
I picked the 'R' - makes sense to me as I have them on most of my systems, some of which have D: E: G: ... but none go as far
as R: and it makes sense (at least to me))

I have: mount R R:\
in my DosBox.INI ... so R:\ is a common drive that appears both in Windows, and within DosBox ... makes it really easy to
copy stuff back and forth without having to figure out where a particular Windows directory is in DosBoxs mounted drives ...
I can copy anything just by copying it to R:\ on one system, and from R:\ on the other.

For this discussion ... It's "just another drive" that happens to be R:

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

I see. Guess that does make sense. I'll have to see if I can get it working. I'm guessing for Windows 98 though I would need to configure it in the autoexec.bat file and call RAMDRIVE.SYS? I presume that's what it's called.

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 17 of 44, by DaveDDS

User metadata
Rank Oldbie
Rank
Oldbie
DustyShinigami wrote on 2025-02-17, 19:35:

I see. Guess that does make sense. I'll have to see if I can get it working. I'm guessing for Windows 98 though I would need to configure it in the autoexec.bat file and call RAMDRIVE.SYS? I presume that's what it's called.

To be honest I don't really recall .... Win98 more-or-less runs on top of DOS...
I do think earlier versions of DOS had "vdisk.sys", later ones "RAMDRIVE.SYS"
(which you had to load in CONFIG.SYS)

and I often use a 3rd party one "XMSDSK" (which is a pgm you can load in autoexec.bat,
and IIRC can use to change the drive parameters on the fly).

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Dave ::: https://dunfield.themindfactory.com ::: "Daves Old Computers"->Personal

Reply 18 of 44, by DustyShinigami

User metadata
Rank Oldbie
Rank
Oldbie

My other thread on the topic looks to be dead; every question I ask gets no response. So I guess I'll try here instead.

Regarding SHSUCD - can it be used to load physical CDs as well? Or is it purely images?

Also, how does one go about setting it up if you need to switch discs mid-game?

I might have some questions regarding conventional memory in DOS a bit later. I'm having an issue with a game's installer at the moment. Hopefully I'll get it sorted, but if not...

OS: Windows 98 SE
CPU: Pentium III Katmai 450MHz (SL35D)/Pentium III Coppermine 933MHz (SL448)
RAM: SK Hynix 128MB 100MHz/Kingston 256MB 133MHz
GPU: Nvidia 16MB Riva TNT/Geforce 128MB 4 MX 440
Motherboard: MSI-6156/Abit BE6-II

Reply 19 of 44, by Grzyb

User metadata
Rank l33t
Rank
l33t
DustyShinigami wrote on 2025-03-02, 12:09:

Regarding SHSUCD - can it be used to load physical CDs as well? Or is it purely images?

SHSUCDX is supposed to be an MSCDEX substitute - so yes, it should work with real drives as well.

Kiełbasa smakuje najlepiej, gdy przysmażysz ją laserem!