VOGONS

Common searches


First post, by Setsunaaa

User metadata

Simple test.bat:
echo a>test.txt
echo b>>test.txt
echo c>>test.txt
echo d>>test.txt
echo e>>test.txt

Under "real" dos/win32:
test.txt is (hex)
00000000: 61 0D 0A 62 0D 0A 63 0D 0A 64 0D 0A 65 0D 0A
Note the CR/LF !!!

Under DOSBOX:
00000000: 65 0A

So these are two bugs in one: _appending_ doesn't work as expected, and the file created is suitable for unix instead of DOS.

When the batches get more complex (using choice, inset and environment variables) the output is garbled 'round quite funny.
This attached .bat uses choice.com from DOS, was created LONG ago by me for command & conquer (which I own!).

The conquer.ini created when choosing sbpro with the default settings and hit "yes" at the end looks very funny compared to the same action under win32 or real DOS.

Kind regards,

Setsunaaa

(here the more complex setup.bat example, with inset.com and choice.com "attached")

@echo off
cls
echo Little Setup.bat for this old game.....
echo Choose:
echo.
echo (A) Soundblaster
echo (B) Soundblaster Pro (or better SB cards)
echo ( ) Soundblaster 16/AWE (removed, sorry, buggy, use SBPRO)
echo (D) Roland RAP-10
echo (E) Pro Audio Spectrum 16
echo (F) Pro Audio Spectrum Plus
echo (G) Microsoft Windows Sound System
echo (H) Gravis Ultrasound MAX
echo (I) ESS Audio (SBPro might sound better)
echo (J) Ensonic Soundscape
echo (K) Gold Sound Standard
echo (L) Cardinal Sound Studio
echo (M) No Sound
echo.
echo (X) Exit now.
echo.
choice /c:abcdefghijklmx>NUL
if errorlevel 14 echo Abort.
if errorlevel 14 goto eof
if errorlevel 13 goto nosound
if errorlevel 12 goto card
if errorlevel 11 goto gold
if errorlevel 10 goto ens
if errorlevel 09 goto ess
if errorlevel 08 goto gusmax
if errorlevel 07 goto mswin
if errorlevel 06 goto proplus
if errorlevel 05 goto pro16
if errorlevel 04 goto rap10
rem if errorlevel 03 goto sb16
if errorlevel 02 goto sbpro
if errorlevel 01 goto sb
goto end
:sb
echo Soundblaster
set n=116
set c=e000
set b=8
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 220)" p
if "%p%"=="" set p=220
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:sbpro
echo Soundblaster PRO
set n=117
set c=e00f
set b=8
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 220)" p
if "%p%"=="" set p=220
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:sb16
echo Soundblaster 16/AWE
set n=119
set c=e017
set b=16
set s=1
inset "IRQ (default = 5)" i
if "%i%"=="" set i=7
inset "Port (default = 220)" p
if "%p%"=="" set p=220
inset "DMA (default = 5)" d
if "%d%"=="" set d=5
goto makeini
:rap10
echo Roland RAP-10
set n=120
set c=e022
set b=16
set s=1
inset "IRQ (default = 9)" i
if "%i%"=="" set i=9
inset "Port (default = 330)" p
if "%p%"=="" set p=330
inset "DMA (default = 5)" d
if "%d%"=="" set d=5
goto makeini
:pro16
echo Pro Audio Spectrum 16
set n=132
set c=e004
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 388)" p
if "%p%"=="" set p=388
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:proplus
echo Pro Audio Spectrum Plus
set n=139
set c=e003
set b=8
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 388)" p
if "%p%"=="" set p=388
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:mswin
echo Microsoft Windows Sound System
set n=136
set c=e00d
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 604)" p
if "%p%"=="" set p=604
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:gusmax
echo Gravis Ultrasound MAX
set n=130
set c=e029
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 220)" p
if "%p%"=="" set p=220
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:ess
echo ESS Audio
set n=138
set c=e01b
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 220)" p
if "%p%"=="" set p=220
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:ens
echo Ensonique Sound Scape
set n=133
set c=e01f
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 330)" p
if "%p%"=="" set p=330
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:gold
echo Gold Sound Standard
set n=128
set c=e00a
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 388)" p
if "%p%"=="" set p=388
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:card
echo Cardinal Sound System
set n=124
set c=e00a
set b=16
set s=1
inset "IRQ (default = 7)" i
if "%i%"=="" set i=7
inset "Port (default = 388)" p
if "%p%"=="" set p=388
inset "DMA (default = 1)" d
if "%d%"=="" set d=1
goto makeini
:nosound
echo No Soundcard
set n=0
set c=0
set b=0
set s=0
set i=-1
set p=-1
set d=-1
goto makeini
:makeini
echo Save configuration (Modem Config / Phone numbers will be lost) ? (J/Y/N)

choice /c:jyn>NUL
if errorlevel 3 echo Abort.
if errorlevel 3 goto eof
echo [Sound] >conquer.ini
echo Name=%n%>>conquer.ini
echo Card=%c%>>conquer.ini
echo Port=%p%>>conquer.ini
echo IRQ=%i%>>conquer.ini
echo DMA=%d%>>conquer.ini
echo BitsPerSample=%b%>>conquer.ini
echo Channels=0>>conquer.ini
echo Reverse=0>>conquer.ini
rem echo Speed=%s%>>conquer.ini
echo Speed=0>>conquer.ini
echo Subtitles=0>>conquer.ini
echo.>>conquer.ini
echo [Language] >>conquer.ini
echo Language=ENG>>conquer.ini
echo.>>conquer.ini
echo [Intro]>>conquer.ini
echo PlayIntro=No>>conquer.ini
:end
echo done.
:eof
set n=
set c=
set b=
set s=
set i=
set p=
set d=

begin 600 inset.com
MZ=8````;!!Z.'A8`BQXL`(7;=!!32X[;H0,`L033X"ZC`P$''\,K_XL.`P$F
MB@6$P'3RB?HJP/*NX^J)TXLV!0&L)CH'=>5#/#UU]8?7P^C4_X7)=0+YPSP]
M=1^+#@,!*=&)TR:`/P!T$2:*!T.J270&A,!U].OL*L"JB?J+#@,!*?F+-@4!
MK*I)=`\\/74%@#P`=`:$P'7NZP*)URK`JH7)=0'YPXZ9FH"/D)*$E(&'AH*1
M/&%R!CQZ=P(T(,,\?W;Q4[L.`#J'K`%U!HJ'I0'K`TMU\5O#`+Z!`*P\('3[
M3CPG=`0\(G471HKPK#P-=0/I@P`X\'0(BM"T`LTAZ^R+/@4!K#P@=/L\+'3W
M3JSHK/\\('8'/"]T`ZKK\4ZL/"!T^SPL=/=./"]U#8I$`>B,_SP_=%2BV`$[
M/@4!=#BP/:JZ%P.T"LTAB=9&K(C!*NVL/`UT#8`^V`%5=0/H7O^JZ^XJP*KH
MG?Z%VW0%Z-[^<P7&!A@#_[(-M`+-(;(*M`+-(;1,H!@#S2&ZE`*T"<TAZ^1"
M871C:"!3=')I;F<@26YP=70-"E-Y;G1A>#H@24Y3150@6R)P<F]M<'0B72!V
M87)N86UE(%LO55T-"B]5"6-O;G9E<G0@=&\@=7!P97(@8V%S90T*97)R;W)L
J979E;"`](&EN<'5T(&QE;F=T:"`H;W(@,C4U(&EF(&5R<F]R*0T*)/__
`
end

begin 600 choice.com
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
)B@$'7UO#!@#_
`
end

Reply 3 of 12, by jal

User metadata
Rank Oldbie
Rank
Oldbie
wd wrote:

If you really need stuff like that you should boot msdos
inside dosbox, where it works perfectly.

It does, but that doesn't mean the append shouldn't work. We aim towards perfect compatability (at least as far as games go), and besides, it should be easy to fix these issues.

JAL

Reply 4 of 12, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Well stuff like that is really hard to get working correctly, just
have a look at how freedos does it.
Feel free to add more compatibility in this region, but be sure
that everything else works fine after that.

Reply 5 of 12, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

By the way, did you notice that dosbox has the choice command built-in? Feel free to contact me if something is wrong with it, as I implemented it. Is/was inset a regular MS-DOS command? If not, how would you have done the same thing in MS-DOS?

Reply 6 of 12, by jal

User metadata
Rank Oldbie
Rank
Oldbie
wd wrote:
Well stuff like that is really hard to get working correctly, just have a look at how freedos does it. Feel free to add more com […]
Show full quote

Well stuff like that is really hard to get working correctly, just
have a look at how freedos does it.
Feel free to add more compatibility in this region, but be sure
that everything else works fine after that.

It can't really be that hard to implement. As for the append instead of create, it's file mode "a" vs. "w" (or something). As for the line-endings, appending "\x0d\x0a" instead of "\n" should do the trick?

JAL

Reply 7 of 12, by jal

User metadata
Rank Oldbie
Rank
Oldbie
`Moe` wrote:

By the way, did you notice that dosbox has the choice command built-in? Feel free to contact me if something is wrong with it, as I implemented it.

I noticed. I can't really see the advantage though, as DOS didn't have it, so games don't use it.

`Moe` wrote:

Is/was inset a regular MS-DOS command? If not, how would you have done the same thing in MS-DOS?

There is very, very little a regular MS-DOS command. Bach programming was a real pain in the butt. What would an 'inset' do exactly?

JAL

Reply 9 of 12, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie
jal wrote:
I noticed. I can't really see the advantage though, as DOS didn't have it, so games don't use it. […]
Show full quote
`Moe` wrote:

By the way, did you notice that dosbox has the choice command built-in? Feel free to contact me if something is wrong with it, as I implemented it.

I noticed. I can't really see the advantage though, as DOS didn't have it, so games don't use it.

`Moe` wrote:

Is/was inset a regular MS-DOS command? If not, how would you have done the same thing in MS-DOS?

There is very, very little a regular MS-DOS command. Bach programming was a real pain in the butt. What would an 'inset' do exactly?

MS-DOS did have CHOICE. It appeared in 5.0 I think (not terribly sure, was a DR-DOS+4dos junkie back then - maybe it was version 6). Batch programming improved greatly after DR-DOS proved that people like that.

I don't know 'inset', but from the example in the initial post it seems to read a line of input and put it into an environment var. Since I didn't do pure MS-DOS programming at that time, I have no idea if it or something like it was available in pure MS-DOS.

By the way, games use choice - some installers or the ultima "enhanced graphics" patches do.

Reply 10 of 12, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Never heard of "inset". Some Sierra games use "which" to do that environment variable thing, which is why most of the Collection/Anthology CDs can't be installed the normal way in DOSBox or NTVDM.

Reply 11 of 12, by jal

User metadata
Rank Oldbie
Rank
Oldbie
`Moe` wrote:

MS-DOS did have CHOICE. It appeared in 5.0 I think (not terribly sure, was a DR-DOS+4dos junkie back then - maybe it was version 6).

A quick Google (e.g. http://www.computerhope.com/choicehl.htm) reveals it's indeed version 6. Never used it. Funny.

JAL