home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 33 VDrivers
/
33-VDrivers.zip
/
s3_20003.zip
/
SETUP.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
2001-03-05
|
12KB
|
345 lines
/**/
'@echo off'
call rxfuncadd sysloadfuncs, rexxutil, sysloadfuncs
call sysloadfuncs
/* CID ERROR CODES */
error = 65024
ERR_USAGE = 5632
ERR_CHIP = 5636
ERR_OS2VER = 5636
ERR_UNPACK = 5636
ERR_COMPAT = 5636
env = 'OS2ENVIRONMENT'
src = ''
trg = ''
parse upper arg args
cid = parsearg('U')
call getsrc
if args <> '' then signal usage
call gettrg
/* space-seperated S3 chip list -- must match with svgadefs.h */
chips = '801/805 928 911 864 964 868 968 Trio32 Trio64 Trio64V+'
chips = chips 'Aurora64V+ ViRGE ViRGE/vX Trio64UV+ Trio64V+Compatible Trio64V2'
chips = chips 'Yosemite ViRGE/DX-GX ViRGE/GX2 ViRGE+COMPATBLE M3 M5 ViRGE/GX2'
chips = chips 'Trio3D M5+ Savage_family SavageMX/IX Trio3D/2X'
pipenull = ' 1>nul 2>&1'
w = 70
log = trg'\os2\install\display.log'
x = linein(src||'BUILD.LVL')
rc = lineout( src||'BUILD.LVL' )
rc = lineout(log, copies('=',w))
rc = lineout(log, x)
call SysCls
say ''
say copies('*',w)
say center('S3 ViRGE,ViRGE/VX,ViRGE/DX,ViRGE/GX,ViRGE/GX2,Trio3D/2X',w)
say center('âfâBâXâvâîâCüEâhâëâCâoü[üEâCâôâXâgü[âï',w)
say center('âoü[âWâçâô 2.00.03',w)
say ''
say center('âCâôâXâgü[âïé╠æOé╔ READMEJ.TXT âtâ@âCâïé╠', w)
say center('ôαùeé≡é¿ô╟é▌é¡é╛é│éó', w)
say ''
call usage1
say ''
say center('âCâôâXâgü[âïî│âhâëâCâu 'src,w)
say center('âCâôâXâgü[âïɵâhâëâCâu 'trg '['word(trginfo,4)']',w)
if cid <> '' then do
say ''
say 'âåü[âUü[üEâIâvâVâçâô:'
call saylog ' Ä⌐ô«âCâôâXâgü[âï'
end
say copies('*',w)
say ''
u2spec = SysSearchPath('PATH', 'UNPACK2.EXE')
if (u2spec = '') then do
call lineout log, 'âVâXâeâÇé╔ UNPACK2.EXE é≡Æ╟ë┴é╡é─é¡é╛é│éó'
'unpack' src'unpack.pk2' trg pipenull
end
call unpack 'prereq.pk2' trg||'\os2\dll\portio.dll'
call unpack 'prereq.pk2' trg||'\os2\install\s3chipid.exe'
''trg||'\os2\install\s3chipid 2 0'
chipid = rc
rc = SysFileDelete( trg||'\os2\install\s3chipid.exe' )
rc = SysFileDelete( trg||'\os2\dll\portio.dll' )
if chipid = 0 then do
error = ERR_CHIP
call saylog 'âGâëü[: òsû╛é╚ârâfâIüEâAâ_âvâ^ü[é¬îƒÅoé│éΩé▄é╡é╜'
signal readme
end
else if chipid < -1 then do
error = ERR_COMPAT
call saylog 'âGâëü[: ârâfâI BIOS é╔î▌è╖ɽé¬éáéΦé▄é╣é±'
signal readme
end
else if chipid <> -1 then do
chiptext = 'S3 ' || word( chips, chipid )
tempid = chipid
end
else do
chiptext = 'IBM Mach 868'
tempid = 6
end
call saylog 'é▒é╠âVâXâeâÇé╠ârâfâIüEâ`âbâvé═ ['tempid'] ' || chiptext || 'é┼é╖'
say ''
if chipid <> -1 then x = wordpos(chipid, '12 13 18 19 23 28')
else x = 1
if x=0 then do
error = ERR_CHIP
call saylog 'âGâëü[: é▒é╠ârâfâIüEâ`âbâvé═âTâ|ü[âgé╡é─éóé▄é╣é±'
say 'É│é╡éóâhâëâCâoü[é≡Ägùpé╡é─é¡é╛é│éó'
signal readme
end
os2ver = SysOS2Ver() /* returns 2.30 for Warp */
if (os2ver > 2.4) then do
call saylog 'îxìÉ: OS/2 é╠ÉVâoü[âWâçâôé¬îƒÅoé│éΩé▄é╡é╜'
SAY ''
SAY 'é▒é╠âfâBâXâvâîâCüEâhâëâCâoü[é═'
SAY 'ô·û{îΩ OS/2 Warp âoü[âWâçâô 4.00'
SAY 'é▄é╜é═ 2.11 Åπé┼ô«ì∞é╡é▄é╖üB'
SAY 'î╗ì▌é╠ OS/2 é╔âCâôâXâgü[âïé╖éΘé╞üAÉ│é╡é¡'
SAY 'ô«ì∞é╡é╚éóë┬ö\ɽé¬éáéΦé▄é╖üB'
SAY 'âCâôâXâgü[âïé≡ÅIù╣é╡é─üAÉ│é╡éóâoü[âWâçâôé╠'
SAY 'âfâBâXâvâîâCüEâhâëâCâoü[é≡ôⁿÄΦé╡é─é¡é╛é│éóüB'
call prompt
end
if (os2ver < 2.10) then do
error = ERR_OS2VER
call saylog 'âGâëü[: âTâ|ü[âgé╡é─éóé╚éó OS/2 é╠âoü[âWâçâôé┼é╖'
signal readme
end
currentdriver = sysini(, 'PM_DISPLAYDRIVERS', 'CURRENTDRIVER')
If \pos('IBMVGA32',currentdriver) then do
call saylog 'îxìÉ: î╗ì▌üAâCâôâXâgü[âïÄ₧é╠âVâXâeâÇé╠ârâfâIüEâéü[âhé¬'
say "VGA é┼é═éáéΦé▄é╣é±üB"
say 'âfâBâXâvâîâCüEâhâëâCâoü[é≡É│é╡é¡âCâôâXâgü[âïé╖éΘé╜é▀üA'
say 'âCâôâXâgü[âïÄ₧é╠âVâXâeâÇ'
say 'é╠ârâfâIüEâéü[âhé≡ VGA é╔é╖éΘòKùvé¬éáéΦé▄é╖üB'
say 'âhâëâCâoü[üEâfâBâXâPâbâgôαé╠ READMEJ.TXT âtâ@âCâïé╠ôαùeé≡'
say 'ÄQÅ╞é╡é─üAâVâXâeâÇé╠ârâfâIüEâéü[âhé≡ VGA é╔É▌ÆΦé╡é─é¡é╛é│éóüB'
call prompt
end
if cid = '' then do
say "âLü[é≡é╟éΩé⌐ëƒé╖é╞æ▒ìsüA'q' âLü[é┼ÆåÄ~"
key = SysGetKey('NOECHO')
parse upper var key key
if key = 'Q' then signal readme
end
prefix = 'WIN_RES_S3_'
count = 20
Do i = 0 to 20
appkey = prefix||i
result = sysini(, appkey, 'DELETE:')
End
rc=sysini( , 'PM_DISPLAYDRIVERS', 'RESOURCESIZE', 'DELETE:' )
/*
** turn off readonly attributes -- fails dspinstl
*/
rc = SysFileTree(trg||'\os2\*.*',stem,'S','***+*','***-*')
/* Files required by dspinstl.exe */
say ''
call saylog 'âtâ@âCâïé╠òíÄ╩Æå'
if os2ver = 2.11 then do
rc = SysFileTree(trg||'\os2\install\IBMJC05.DSC',stem,'F','*****','***-*')
if stem.0 = 1 then
'rename ' || trg || '\os2\install\IBMJC05.DSC IBMJC05.S3'
end
call unpack 'prereq.pk2' trg||'\os2\install\dspinstl.exe'
call unpack 'prereq.pk2' trg||'\os2\install\dspinstl.hlp'
call unpack 'prereq.pk2' trg||'\os2\install\dspinstl.ico'
call unpack 'prereq.pk2' trg||'\os2\install\product.exe'
call unpack 'prereq.pk2' trg||'\os2\dll\svga.dll'
call unpack 'prereq.pk2' trg||'\os2\dll\inscfg32.dll'
'copy ' || src || 'install1.dsp ' || trg || '\' pipenull
'copy ' || src || 'install2.dsp ' || trg || '\' pipenull
'copy ' || src || 's3common.dsp ' || trg || '\' pipenull
'copy ' || src || 's3misc1.dsp ' || trg || '\' pipenull
mmbase = value('MMBASE',,env)
if mmbase <> '' then do
if right(mmbase,1) = ';' then mmbase = left(mmbase, length(mmbase)-1)
if right(mmbase,1) = '\' then mmbase = left(mmbase, length(mmbase)-1)
if ( os2ver < 2.4 ) & ( os2ver > 2.11 )then do
call unpack 'prereq.pk2' mmbase'\dll\dive.dll'
call unpack 'prereq.pk2' mmbase'\dll\svsh.dll'
call unpack 'prereq.pk2' mmbase'\r565lut8.lut'
call unpack 'prereq.pk2' mmbase'\y644lut8.lut'
call unpack 'prereq.pk2' mmbase'\yuv_lut8.lut'
end
end
rc=SysFileDelete( trg || '\os2\install\s3virge.dsc' )
rc=SysFileDelete( trg || '\os2\install\s3triov.dsc' )
rc=SysFileDelete( trg || '\os2\install\triov.dsc' )
rc=SysFileDelete( trg || '\os2\install\triov1.dsc' )
rc=SysFileDelete( trg || '\os2\install\pss3.dsc' )
rc=SysFileDelete( trg || '\os2\install\s3.dsc' )
rc=SysFileDelete( trg || '\os2\install\00s3.dsc' )
rc=SysFileDelete( trg || '\os2\private.dif' )
rc=SysFileDelete( trg || '\os2\video.cfg' )
refreshtable = value('REFRESH_TABLE',,env)
if refreshtable <> '' then rc=SysFileDelete( refreshtable )
call unpack 'prereq.pk2' trg||'\os2\install\VIRGE.dsc'
'rename ' || trg || '\os2\install\VIRGE.dsc 00S3.DSC'
call unpack 'prereq.pk2' trg||'\os2\svga.exe'
call saylog "OS/2é╠âfâBâXâvâîâCüEâCâôâXâgü[âïüEâvâìâOâëâÇé≡èJÄné╡é─éóé▄é╖..."
say ''
/* set up parameters for dspinstl.exe */
call stream log, 'c', 'close'
dspinstl = trg||'\os2\install\dspinstl.exe'
dspsrc = right( src, 1 )
if (dspsrc <> '\') & (dspsrc <> '/') then
dspsrc = src
else
dspsrc = left(src, length(src)-1) /* dspinstl: no trailing slash */
dspopt = '/pk:other /sk:none /s:'dspsrc' /t:'trg
if os2ver = 2.11 then do
dspdsc = '/pd:'src'S3MISC1.DSC'
dcmd = dspinstl dspopt dspdsc cid
rc = lineout(log, dcmd)
''dcmd
end
dspdsc = '/pd:'src'PVIRGE.DSC'
dcmd = dspinstl dspopt dspdsc cid
rc = lineout(log, dcmd)
/* Dspinstl renames files on replace so delete files first. */
result = sysini(, 'PM_INSTALL', 'WINOS2_LOCATION')
winpath = ''
if (result <> '') & (pos('ERROR',result) = 0) then do
winpath = space(left(result,length(result)-1),0)
rc = SysFileTree(winpath||'\*.*',stem,,'***+*','***-*')
rc = SysFileDelete( winpath || '\os2fs.exe' )
end
rc = SysFileDelete( trg || '\OS2\DDC.CMD' )
''dcmd
if os2ver = 2.11 then 'copy ' || src || 'screen01.211 ' || trg || '\os2\screen01.sys'
call saylog "...OS/2 âfâBâXâvâîâCüEâCâôâXâgü[âïüEâvâìâOâëâÇé¬ÅIù╣é╡é▄é╡é╜"
say ''
if winpath <> '' then do
setup='EXENAME='||winpath||'\os2fs.exe;NORENAME=YES'
rc = SysCreateObject("WPProgram", "S3 Windows âtâHâôâgüEâTâCâY", "<WP_CONFIG>",setup,'update')
If (rc <> 0)
Then call lineout log,'Font Size Object Created'
Else call lineout log,'Font Size Object Creation Failed in 'winpath' rc='rc
end
setup = 'EXENAME=' || trg || '\OS2\DDC.CMD;'
setup = setup || 'ICONFILE=' || trg || '\OS2\DDC.ICO;'
setup = setup || 'NOAUTOCLOSE=YES;MAXIMIZED=YES;NORENAME=YES'
rc = SysCreateObject("WPProgram", "DDC âfâBâXâvâîâCüEâZâbâgâAâbâv", "<WP_CONFIG>",setup,'update')
If (rc <> 0)
Then call lineout log, 'DDC âZâbâgâAâbâvüEâAâCâRâôé¬É╢ɼé│éΩé▄é╡é╜'
Else call lineout log, 'DDC âZâbâgâAâbâvüEâAâCâRâôé╠É╢ɼé╔Ä╕ösé╡é▄é╡é╜, rc='rc
setting = 'WIN_BACKGROUND_INIT=1;'
len = length(setting)
x = SysIni(, 'WINOS2', 'PM_GlobalWindows31Settings')
If (left(x, len) <> setting)then do
x = setting||x
SysIni(, 'WINOS2', 'PM_GlobalWindows31Settings', x)
end
if ((os2ver = 2.10) | (os2ver = 2.11)) then do
'' || trg || '\os2\install\vcfginst.exe'
rc = SysFileDelete( trg || '\os2\install\vcfginst.exe' )
end
'' || trg || '\os2\install\create.exe ' || trg || '\os2\install\syslevel.vid 2000 S320003 562107701 ViRGE,ViRGE/VX,ViRGE/DX,ViRGE/GX,ViRGE/GX2,Trio3D/2X Video Display Driver'
rc = SysFileDelete( trg || '\os2\install\create.exe' )
dspdsc = '/pd:' || trg || '\os2\install\00S3.DSC'
dspopt = '/pk:other /sk:none /s:'dspsrc' /t:'trg
if cid = '' then
dcmd = dspinstl dspopt dspdsc
else
dcmd = dspinstl dspopt dspdsc '/res:640x480x256 /u'
''dcmd
rc = SysFileDelete( trg || '\install1.dsp' )
rc = SysFileDelete( trg || '\install2.dsp' )
rc = SysFileDelete( trg || '\s3common.dsp' )
rc = SysFileDelete( trg || '\s3misc1.dsp' )
'start ' || trg || '\os2\install\product.exe ' || trg cid
signal done
getsrc:
if cid = '' then do
parse source src
src = word(src,3)
end
else do
src = parsearg('S')
if src = '' then signal usage
src = right(src,length(src)-3)
temp = right(src, 1)
if (temp <> '\') & (temp <> '/') then src=src||'\'
end
src = FileSpec('DRIVE', src) || FileSpec('PATH', src)
return
gettrg:
trg = SysSearchPath('PATH', 'PMSHELL.EXE')
trg = FileSpec('drive',trg)
trginfo = SysDriveInfo(trg)
return
parsearg:
parse upper arg switch
result = ''
x = pos(switch, args)
if x <> 0 then do
y = pos(' ', args, x)
if y = 0 then y = length(args)
result = space(substr(args, x-1, y-x+2),0)
args = delstr(args, x-1, y-x+2)
end
return result
usage:
call usage1
error = ERR_USAGE
signal readme
saylog:
parse arg msg
say msg
rc = lineout(log, msg)
return
prompt:
if cid = '' then do
say ''
SAY 'âCâôâXâgü[âïé≡æ▒é»é▄é╖é⌐? (y or n)'
key = SysGetKey('NOECHO')
say ''
parse upper var key key
if key <> 'Y' then signal readme
end
return
unpack:
parse arg pack file
pack = src||pack
if file = '' then
'unpack2' pack trg pipenull
else do
call SysFileTree file,stem,,'***+*','***-*'
filename = filespec("name", file)
filedrive = filespec("drive", file)
filepath = filedrive||filespec("path", file)
if filepath='' then filepath=trg
'unpack2 'pack filepath' /n:'filename pipenull
end
if (rc <> 0) then do
error = err_unpack
call saylog 'âGâëü[: 'pack' é⌐éτ 'file' é╠âAâôâpâbâNÆåé╔âGâëü[é¬ö¡É╢é╡é▄é╡é╜, rc = 'rc
signal readme
end
else rc = lineout(log, file' é≡âAâôâpâbâNé╡é▄é╡é╜')
return
readme:
say ''
say 'âfâBâXâvâîâCüEâhâëâCâoü[é╠âCâôâXâgü[âïé¬ÅIù╣é╡é▄é╡é╜üB'
say 'âhâëâCâoü[üEâfâBâXâPâbâgé╠ READMEJ.TXT âtâ@âCâïé╔'
say 'Æ╟ë┴Åεò±é¬ïLÅqé│éΩé─éóé▄é╖üB'
say ''
rc = lineout( log )
exit error
done:
rc = lineout( log )
if cid = '' then 'exit'
exit error
usage1:
say 'SETUP.CMD: S3 âfâBâXâvâîâCüEâhâëâCâoü[üEâCâôâXâgü[âïüEâåü[âeâBâèâeâBü['
say ''
say 'Ägùpû@: SETUP {/U /S:SRCPATH}'
say ''
say 'Ä⌐ô«âCâôâXâgü[âï(CID)Ä₧é╔é═üA/U âpâëâüü[â^ü[é≡ÄwÆΦé╡é─é¡é╛é│éó'
return