home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Winzipper
/
Winzipper_ISO.iso
/
multimedia
/
scala
/
install
/
INSTALL.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1996-05-30
|
29KB
|
662 lines
/* $Id: os2_install.cmd,v 1.14 1996/05/30 17:22:52 DANIEL Exp $ */
/* OS/2 Scala MM100 Installer */
PARSE ARG from .
/*
*****************************************************************************
*
* Only make changes in these lines and the ones with the directory lists...
*
*****************************************************************************
*/
Name= 'MM100'
Description= 'Scala MultiMedia MM100'
Version= '1.00'
VersionDate= '05/14/1996'
Default= 'C:\Scala'
/****************************************************************************/
/* Do not touch... */
i=0
/****************************************************************************/
/* Source----------------------------- Destination--------------*/
i=i+1;CODE.i='SCALA\*.EXE \'
i=i+1;CODE.i='SCALA\*.TXT \'
i=i+1;CODE.i='SCALA\APPS\* APPS\'
i=i+1;CODE.i='SCALA\CATALOGS\* CATALOGS\'
i=i+1;CODE.i='SCALA\CLIPS\SCALA\* CLIPS\SCALA\'
i=i+1;CODE.i='SCALA\CONFIG\* CONFIG\'
i=i+1;CODE.i='SCALA\EX\* EX\'
i=i+1;CODE.i='SCALA\FONTS\SAMERICA\* FONTS\SAMERICA\'
i=i+1;CODE.i='SCALA\FONTS\SBETON\* FONTS\SBETON\'
i=i+1;CODE.i='SCALA\FONTS\SCENTURY\* FONTS\SCENTURY\'
i=i+1;CODE.i='SCALA\FONTS\SCOMPACT\* FONTS\SCOMPACT\'
i=i+1;CODE.i='SCALA\FONTS\SDIDOT\* FONTS\SDIDOT\'
i=i+1;CODE.i='SCALA\FONTS\SFRANKLN\* FONTS\SFRANKLN\'
i=i+1;CODE.i='SCALA\FONTS\SFRUTIGR\* FONTS\SFRUTIGR\'
i=i+1;CODE.i='SCALA\FONTS\SFUTURA\* FONTS\SFUTURA\'
i=i+1;CODE.i='SCALA\FONTS\SGARAMND\* FONTS\SGARAMND\'
i=i+1;CODE.i='SCALA\FONTS\SGILL\* FONTS\SGILL\'
i=i+1;CODE.i='SCALA\FONTS\SGOUDY\* FONTS\SGOUDY\'
i=i+1;CODE.i='SCALA\FONTS\SHELVETI\* FONTS\SHELVETI\'
i=i+1;CODE.i='SCALA\FONTS\SNGOTHIC\* FONTS\SNGOTHIC\'
i=i+1;CODE.i='SCALA\FONTS\SPOKABA1\* FONTS\SPOKABA1\'
i=i+1;CODE.i='SCALA\FONTS\SPOKABA2\* FONTS\SPOKABA2\'
i=i+1;CODE.i='SCALA\FONTS\SUNIVERS\* FONTS\SUNIVERS\'
i=i+1;CODE.i='.EMPTYDIR MPEG\'
i=i+1;CODE.i='.EMPTYDIR MUSIC\'
i=i+1;CODE.i='.EMPTYDIR SOUNDS\'
i=i+1;CODE.i='SCALA\POINTERS\* POINTERS\'
i=i+1;CODE.i='SCALA\SYSTEM\* SYSTEM\'
i=i+1;CODE.i='SCALA\SYSTEM\LOADERS\* SYSTEM\LOADERS\'
i=i+1;CODE.i='SCALA\SYSTEM\VIDEO\* SYSTEM\VIDEO\'
i=i+1;CODE.i='SCALA\WIPES\FADE.WIP WIPES\'
i=i+1;CODE.i='SCALA\WIPES\PUSHES.WIP WIPES\'
i=i+1;CODE.i='SCALA\WIPES\REVEALS.WIP WIPES\'
i=i+1;CODE.i='SCALA\WIPES\WIPES.BMP WIPES\'
i=i+1;CODE.i='SCALA\WIPES\ZOOMS.WIP WIPES\'
/* Source----------------------------- Destination--------------*/
/****************************************************************************/
/* Do not touch... */
CODE.0=i
i=0
/****************************************************************************/
/* Source----------------------------- Destination--------------*/
i=i+1;COMP.i='COMPACT\BACKGRND\* BACKGRND\'
i=i+1;COMP.i='COMPACT\MUSIC\MIDI\* MUSIC\MIDI\'
i=i+1;COMP.i='COMPACT\SCRIPTS\* SCRIPTS\'
i=i+1;COMP.i='COMPACT\SCRIPTS\ARTWORK\FEATURES\* SCRIPTS\ARTWORK\FEATURES\'
i=i+1;COMP.i='COMPACT\SCRIPTS\ARTWORK\SOUNDTST\* SCRIPTS\ARTWORK\SOUNDTST\'
/* Source----------------------------- Destination--------------*/
/****************************************************************************/
/* Do not touch... */
COMP.0=i
i=0
/****************************************************************************/
/* Source----------------------------- Destination--------------*/
i=i+1;TYPI.i='SCALA\WIPES\ALPHA1.WIP WIPES\'
i=i+1;TYPI.i='SCALA\WIPES\PICTURES\ALPHA1\* WIPES\PICTURES\ALPHA1\'
i=i+1;TYPI.i='SCALA\HELP\* HELP\'
i=i+1;TYPI.i='SCALA\HELP\GRAPHICS\* HELP\GRAPHICS\'
i=i+1;TYPI.i='SCALA\ANIMS\1* ANIMS\'
i=i+1;TYPI.i='SCALA\BACKGRND\AQUAREL\1* BACKGRND\AQUAREL\'
i=i+1;TYPI.i='SCALA\BACKGRND\BUILD\1* BACKGRND\BUILD\'
i=i+1;TYPI.i='SCALA\BACKGRND\GRADIEN\1* BACKGRND\GRADIEN\'
i=i+1;TYPI.i='SCALA\BACKGRND\NAIVE\1* BACKGRND\NAIVE\'
i=i+1;TYPI.i='SCALA\BACKGRND\OFFICE\1* BACKGRND\OFFICE\'
i=i+1;TYPI.i='SCALA\BACKGRND\PEOPLE\1* BACKGRND\PEOPLE\'
i=i+1;TYPI.i='SCALA\BACKGRND\VOLUME1\* BACKGRND\VOLUME1\'
i=i+1;TYPI.i='SCALA\BUTTONS\* BUTTONS\'
i=i+1;TYPI.i='SCALA\BUTTONS\3D\* BUTTONS\3D\'
i=i+1;TYPI.i='SCALA\BUTTONS\ARROWS\* BUTTONS\ARROWS\'
i=i+1;TYPI.i='SCALA\BUTTONS\BACKDROP\* BUTTONS\BACKDROP\'
i=i+1;TYPI.i='SCALA\BUTTONS\PRESETS\* BUTTONS\PRESETS\'
i=i+1;TYPI.i='SCALA\BUTTONS\CIRCLES\* BUTTONS\CIRCLES\'
i=i+1;TYPI.i='SCALA\BUTTONS\MISC\* BUTTONS\MISC\'
i=i+1;TYPI.i='SCALA\BUTTONS\ROUND\* BUTTONS\ROUND\'
i=i+1;TYPI.i='SCALA\BUTTONS\VCR\* BUTTONS\VCR\'
i=i+1;TYPI.i='SCALA\CLIPS\ARROWS\* CLIPS\ARROWS\'
i=i+1;TYPI.i='SCALA\CLIPS\BALLOONS\* CLIPS\BALLOONS\'
i=i+1;TYPI.i='SCALA\CLIPS\BOXES\* CLIPS\BOXES\'
i=i+1;TYPI.i='SCALA\CLIPS\BULLETS\* CLIPS\BULLETS\'
i=i+1;TYPI.i='SCALA\CLIPS\DIVIDERS\* CLIPS\DIVIDERS\'
i=i+1;TYPI.i='SCALA\CLIPS\DRAWINGS\* CLIPS\DRAWINGS\'
i=i+1;TYPI.i='SCALA\CLIPS\FOOD\* CLIPS\FOOD\'
i=i+1;TYPI.i='SCALA\CLIPS\MISC\* CLIPS\MISC\'
i=i+1;TYPI.i='SCALA\CLIPS\OFFICE\* CLIPS\OFFICE\'
i=i+1;TYPI.i='SCALA\CLIPS\PEOPLE\* CLIPS\PEOPLE\'
i=i+1;TYPI.i='SCALA\CLIPS\SCALA\* CLIPS\SCALA\'
i=i+1;TYPI.i='SCALA\CLIPS\WEATHER\* CLIPS\WEATHER\'
i=i+1;TYPI.i='SCALA\MUSIC\MIDI\1* MUSIC\MIDI\'
i=i+1;TYPI.i='SCALA\MUSIC\WAVE\1* MUSIC\WAVE\'
i=i+1;TYPI.i='SCALA\PALETTES\* PALETTES\'
i=i+1;TYPI.i='SCALA\PALETTES\VIDEO\* PALETTES\VIDEO\'
i=i+1;TYPI.i='SCALA\POINTERS\3DPOINT\* POINTERS\3DPOINT\'
i=i+1;TYPI.i='SCALA\SCRIPTS\CALCUL.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\FEATURES.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\FONTBOOK.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\KIMS.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\MAIN.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\POKABAL.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\SCABACK.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\SCALATOR.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\SCAPRODS.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\SCAQUIZ.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\SCAWORLD.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\SOUNDTST.SCA SCRIPTS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\CALCUL\* SCRIPTS\ARTWORK\CALCUL\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\FEATURES\* SCRIPTS\ARTWORK\FEATURES\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\FONTBOOK\* SCRIPTS\ARTWORK\FONTBOOK\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\KIMS\* SCRIPTS\ARTWORK\KIMS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\MAIN\* SCRIPTS\ARTWORK\MAIN\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\POKABAL\* SCRIPTS\ARTWORK\POKABAL\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\SCALATOR\* SCRIPTS\ARTWORK\SCALATOR\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\SCAPRODS\* SCRIPTS\ARTWORK\SCAPRODS\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\SCAQUIZ\* SCRIPTS\ARTWORK\SCAQUIZ\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\SCAWORLD\* SCRIPTS\ARTWORK\SCAWORLD\'
i=i+1;TYPI.i='SCALA\SCRIPTS\ARTWORK\SOUNDTST\* SCRIPTS\ARTWORK\SOUNDTST\'
i=i+1;TYPI.i='SCALA\SOUNDS\1* SOUNDS\'
i=i+1;TYPI.i='SCALA\SOUNDS\SCAVOICE\* SOUNDS\SCAVOICE\'
/* Source----------------------------- Destination--------------*/
/****************************************************************************/
/* Do not touch... */
TYPI.0=i
i=0
/*
*****************************************************************************
*
* The rest is not to be touched...
*
*****************************************************************************
*/
/* Default language */
LangDir='English'
/* Directory scanning stuff... */
CALL RxFuncAdd 'SysFileTree','RexxUtil','SysFileTree'
IF from='?' THEN
DO
SAY 'OS/2 Scala Install'
SAY
SAY 'OS2_INSTALL [source path]'
SAY
SAY ' Source drive path is optional and defaults to the location of'
SAY ' the install program.'
EXIT
END
/* If the user did not give a FROM we generate it */
IF LENGTH(from)<2 THEN
DO
PARSE SOURCE junk junk from .
from=STRIP(from)
/* Now, remove the file name */
DO UNTIL RIGHT(from,1)='\'
from=LEFT(from,LENGTH(from)-1)
END
from=LEFT(from,LENGTH(from)-1)
IF RIGHT(from,1)=':' THEN
DO
from=from || '\'
END
END
OldDIR=DIRECTORY()
Source=DIRECTORY(from)
junk=DIRECTORY(OldDIR)
IF LENGTH(Source)<2 THEN
DO
SAY 'Could not find the directory' from
EXIT
END
Title=LEFT(Description,80-LENGTH(Name VersionDate)-1,' ') ,
|| Name VersionDate
Target=Default
CALL DisplayTitle
SAY 'Type new path name or EXIT to quit or <RETURN> to continue.'
PARSE PULL line .
IF TRANSLATE(line)='EXIT' THEN EXIT
IF LENGTH(line)>1 THEN Target=line
DO FOREVER
CALL DisplayTitle
SAY 'Checking target...'
junk=TRANSLATE(Target,' ','\')
DO i=1 TO WORDS(junk)
IF LENGTH(WORD(junk,i))>8 THEN
DO
SAY
SAY 'Path name elements must be no greater than 8 characters'
junk=''
LEAVE
END
END
IF junk\='' THEN
DO
test=DIRECTORY(Target)
junk=DIRECTORY(OldDIR)
IF LENGTH(test)<2 THEN
DO
SAY
SAY 'Target directory does not exist.'
junk=CHAROUT(,'Do you wish to create it? (Y/N) Y' || '08'x)
PARSE PULL line .
IF LENGTH(line)<1 THEN line='Y'
line=TRANSLATE(LEFT(line,1))
IF line='Y' THEN
DO
CALL MakePath Target
test=DIRECTORY(Target)
junk=DIRECTORY(OldDIR)
IF LENGTH(test)<2 THEN
DO
SAY
SAY 'Directory could not be created.'
END
ELSE
DO
LEAVE
END
END
END
ELSE
DO
SAY
SAY 'Target directory already exists.'
junk=CHAROUT(,'Do you wish to use it? (Y/N) Y' || '08'x)
PARSE PULL line .
IF LENGTH(line)<1 THEN line='Y'
line=TRANSLATE(LEFT(line,1))
IF line='Y' THEN
DO
LEAVE
END
END
END
SAY
SAY 'Type new path name or EXIT to quit or <RETURN> to continue.'
PARSE PULL line .
IF TRANSLATE(line)='EXIT' THEN EXIT
IF LENGTH(line)>1 THEN Target=line
END
/* Now, select a language */
Lang=Source
IF RIGHT(Lang,1)\='\' THEN Lang=Lang || '\'
Lang=Lang || 'INSTALL\'
rc=SysFileTree(Lang'*',langs,'DO')
DO FOREVER
CALL DisplayTitle
SAY 'Select the language to install:'
SAY
SAY ' 0) English <DEFAULT>'
DO i=1 TO langs.0
Lang=TRANSLATE(langs.i,' ','\')
Lang=WORD(Lang,WORDS(Lang))
langs.i=TRANSLATE(LEFT(Lang,1)) ,
|| TRANSLATE(SUBSTR(Lang,2),XRANGE('a','z'),XRANGE('A','Z'))
SAY ' 'RIGHT(i,2)')' langs.i
END
SAY
junk=CHAROUT(,'Enter your selection: 0' || '08'x)
PARSE PULL line .
IF LENGTH(line)<1 THEN line=0
IF (line<=langs.0) & (line>=0) THEN LEAVE
END
IF line>0 THEN
DO
LangDir=langs.line
END
/* Select Compact or Typical install... */
DO FOREVER
CALL DisplayTitle
SAY 'Please select install type:'
SAY
SAY ' 1) Compact install (about 15 MB) <DEFAULT>'
SAY ' 2) Typical install (about 80 MB)'
SAY ' 3) Full install (about 380 MB)'
SAY
junk=CHAROUT(,'Install type: 1' || '08'x)
PARSE PULL line .
IF (line>=1) & (line<=3) THEN LEAVE
END
InstallType=line
Target=DIRECTORY(Target)
junk=DIRECTORY(OldDIR)
/* Now start the real work... */
CALL DisplayTitle
IF (InstallType<=2) THEN
DO i=1 TO CODE.0
PARSE VAR CODE.i input output .
IF RIGHT(output,1)\='\' THEN
DO
SAY 'Error in line' i 'of the CODE description.'
SAY 'Destination is not a directory.'
SAY CODE.i
EXIT
END
junk=DoCopy(input,output)
END
/* Do the language (English will be a no-op)... */
junk=DoCopy('INSTALL\'LangDir'\CATALOGS\*','CATALOGS\')
junk=DoCopy('INSTALL\'LangDir'\CONFIG\*','CONFIG\')
/* Compact install */
IF InstallType=1 THEN
DO i=1 TO COMP.0
PARSE VAR COMP.i input output .
IF RIGHT(output,1)\='\' THEN
DO
SAY 'Error in line' i 'of the COMP description.'
SAY 'Destination is not a directory.'
SAY COMP.i
EXIT
END
junk=DoCopy(input,output)
END
/* Typical install */
IF InstallType=2 THEN
DO i=1 TO TYPI.0
PARSE VAR TYPI.i input output .
IF RIGHT(output,1)\='\' THEN
DO
SAY 'Error in line' i 'of the TYPI description.'
SAY 'Destination is not a directory.'
SAY TYPI.i
EXIT
END
junk=DoCopy(input,output)
END
/* Full install */
IF InstallType=3 THEN
DO
CopyFrom=From
IF RIGHT(CopyFrom,1)\='\' THEN CopyFrom=CopyFrom || '\'
CopyFrom=From || 'SCALA'
SAY 'Installing everything (this will take a while)...'
'@xcopy /S 'CopyFrom' 'Target' >nul'
end
SAY 'Now creating OS/2 folder and icons...'
CALL MakeIcons Target Name
SAY
SAY 'Installation complete.'
SAY
SAY 'While it is not required that you shutdown before you use Scala,'
SAY 'you may wish to do so to insure that OS/2 fully saves the changes'
SAY 'made to your desktop.'
EXIT
/* Simple title display routine... Used all over the place... */
DisplayTitle: PROCEDURE EXPOSE Title Source Target LangDir
'@CLS'
SAY
SAY Title
SAY
SAY 'Installing from:' Source
SAY
SAY 'Installing to: ' Target
SAY
SAY 'Language: ' LangDir
SAY
RETURN 0
DoCopy: PROCEDURE EXPOSE Target Source
input=ARG(1)
output=ARG(2)
/* Now start the real work for this description line */
CopyTo=Target
IF RIGHT(CopyTo,1)\='\' THEN CopyTo=CopyTo || '\'
IF output\='\' THEN CopyTo=CopyTo || output
CopyFrom=Source
IF RIGHT(CopyFrom,1)\='\' THEN CopyFrom=CopyFrom || '\'
IF input\='\' THEN CopyFrom=CopyFrom || input
/* Now start the real work... */
junk=CHAROUT(,LEFT('Copying to: ' CopyTo,79) || COPIES('08'x,79))
CALL MakePath CopyTo
rc=SysFileTree(CopyFrom,'files','FO')
DO j=1 TO files.0
file=TRANSLATE(files.j,' ','\'); file=WORD(file,WORDS(file))
junk=CHAROUT(,LEFT('Copying to file:' CopyTo || file,79) || COPIES('08'x,79))
'@Copy >NUL: 2>NUL: "'files.j'" "'CopyTo || file'"'
IF RC\=0 THEN
DO
SAY
SAY 'There was a failure during the copy.'
SAY 'Install aborted.'
EXIT
END
END
junk=CHAROUT(,COPIES(' ',79) || COPIES('08'x,79))
RETURN 0
/* Simple multi-segment path create... */
MakePath: PROCEDURE
PARSE ARG Path .
Dirs=TRANSLATE(Path," ","\")
IF LEFT(Path,1)='\' THEN Path='\'
ELSE Path=''
DO i=1 TO WORDS(Dirs)
Path=Path || WORD(Dirs,i)
'@MKDIR >NUL: 2>NUL:' Path
Path=Path || '\'
END
RETURN 0
/* The fancy Folder/Icon generator */
MakeIcons: PROCEDURE
PARSE ARG Dir Name .
/* Functions we need from RexxUtil */
CALL RxFuncAdd 'SysPutEA','RexxUtil','SysPutEA'
CALL RxFuncAdd 'SysSaveObject','RexxUtil','SysSaveObject'
CALL RxFuncAdd 'SysCreateObject','RexxUtil','SysCreateObject'
CALL RxFuncAdd 'SysSetObjectData','RexxUtil','SysSetObjectData'
/* Set a more useful LONGNAME for where our files are... */
Longname='Scala' || '0A'x || Name 'Files'
AppName='Scala' || '0A'x || Name
FolderName='Scala'
DiagName='Scala' || '0A'x || 'Diagnostics'
FolderID='<SCALA_'Name'_FOLDER>'
EA='FDFF'x || D2C(LENGTH(Longname)) || '00'x || Longname
junk=SysPutEA(Dir,'.LONGNAME',EA)
Folder= 'OBJECTID='FolderID';' ,
|| 'OPEN=DEFAULT;' ,
|| 'CONCURRENTVIEW=NO;' ,
|| 'ALWAYSSORT=YES;' ,
|| 'ICONVIEWPOS=10,70,35,22;'
/* First, create the Scala folder on the desktop and open it */
junk=SysCreateObject('WPFolder',FolderName,'<WP_DESKTOP>',Folder,'REPLACE')
/* This is the image data for the Scala application icons */
Icon='424128000000780000000000000043491A00000010001000E00100000C00000020'x || ,
'00400001000100000000FFFFFF43491A00000010001000E00200000C0000002000'x || ,
'200001000400000000000080008000008080800000800080808000C0C0C0808080'x || ,
'0000FF00FF0000FFFFFF0000FF00FFFFFF00FFFFFF424128000000F00000000000'x || ,
'000043491A00000008000800E00400000C0000001000200001000100000000FFFF'x || ,
'FF43491A00000008000800600500000C0000001000100001000400000000800000'x || ,
'008000808000000080800080008080808080CCCCCCFF000000FF00FFFF000000FF'x || ,
'FF00FF00FFFFFFFFFF424128000000680100000004000343491A00000014001400'x || ,
'E00500000C0000002800500001000100000000FFFFFF43491A0000001400140060'x || ,
'0800000C0000002800280001000400000000800000008000808000000080800080'x || ,
'008080808080CCCCCCFF000000FF00FFFF000000FFFF00FF00FFFFFFFFFF424128'x || ,
'000000000000000004000343491A0000000A000A00800B00000C00000014002800'x || ,
'01000100000000FFFFFF43491A0000000A000A00200C00000C0000001400140001'x || ,
'000400000000800000008000808000000080800080008080808080CCCCCCFF0000'x || ,
'00FF00FFFF000000FFFF00FF00FFFFFFFFFF000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'0000000000000000000070808080808080808080808080808080F8888888888888'x || ,
'88888888888888888878888808080808080808080808080880F888800000000000'x || ,
'000000000000008878889999999999999999999999990880F88899999999999999'x || ,
'9999999999008878889999999999999999999999990880F8889999FFF999999999'x || ,
'9999999900887888999FFFFF99999999999999990880F888999FFFFF9999999999'x || ,
'99999900887888999FFFFF99999999999999990880F8889999FFF9999999999999'x || ,
'999900887888999999999FFF9999999999990880F88899999999FFFFF999999999'x || ,
'990088788899999999FFFFFF99999999990880F88899999999FFFFFFF999999999'x || ,
'00887888999999999FFFFFFF999999990880F8889999999999FFFFFFF999999900'x || ,
'88788899999999999FFFFFFF9999990880F888999999999999FFFFFFF999990088'x || ,
'78889999999999999FFFFFFF99990880F88899999999999999FFFFFFF999008878'x || ,
'88999999999999999FFFFFFF990880F8889999999999999999FFFFFF9900887888'x || ,
'99999999999999999FFFFF990880F888999999999999999999FFF9990088788899'x || ,
'99999999999999999999990880F888999999999999999999999999888878888888'x || ,
'888888888888888888888880F88888888888888888888888888888887888888888'x || ,
'8888888888888888888880F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7F7000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000077777777777777777770'x || ,
'00000000000777CCCCCCCCCCCC0777CCFCCCCCCCCC0777CFFFCCCCCCCC0777CCFC'x || ,
'CCCCCCCC0777CCCCFFCCCCCC0777CCCCFFFCCCCC0777CCCCCFFFCCCC0777CCCCCC'x || ,
'FFFCCC0777CCCCCCCFFFCC0777CCCCCCCCFFFC0777CCCCCCCCCFCC0777CCCCCCCC'x || ,
'CCCC77777777777777777777777777777777770000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000FFFFFFFFFF000000FFFFFFFFFF000000FFFFFFFFFF000000'x || ,
'FFFFFFFFFF000000F00000000F000000F00000000F000000F00000000F000000F0'x || ,
'0000000F000000F00000000F000000F00000000F000000F00000000F000000F000'x || ,
'00000F000000F00000000F000000F00000000F000000F00000000F000000F00000'x || ,
'000F000000F00000000F000000F00000000F000000F00000000F000000F0000000'x || ,
'0F000000F00000000F000000F00000000F000000F00000000F000000F00000000F'x || ,
'000000F00000000F000000F00000000F000000F00000000F000000F00000000F00'x || ,
'0000F00000000F000000F00000000F000000F00000000F000000F00000000F0000'x || ,
'00F00000000F000000F00000000F000000F00000000F000000F00000000F000000'x || ,
'FFFFFFFFFF000000FFFFFFFFFF000000FFFFFFFFFF000000FFFFFFFFFF00000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000807070707070707070707070707070700000'x || ,
'0000F7777777777777777777777777777777000000008777770707070707070707'x || ,
'070707077000000000F7777000000000000000000000000077000000008777CCCC'x || ,
'CCCCCCCCCCCCCCCCCCCC077000000000F777CCCCCCCCCCCCCCCCCCCCCCCC007700'x || ,
'0000008777CCCCCCCCCCCCCCCCCCCCCCCC077000000000F777CCCCFFFCCCCCCCCC'x || ,
'CCCCCCCC0077000000008777CCCFFFFFCCCCCCCCCCCCCCCC077000000000F777CC'x || ,
'CFFFFFCCCCCCCCCCCCCCCC0077000000008777CCCFFFFFCCCCCCCCCCCCCCCC0770'x || ,
'00000000F777CCCCFFFCCCCCCCCCCCCCCCCC0077000000008777CCCCCCCCCFFFCC'x || ,
'CCCCCCCCCC077000000000F777CCCCCCCCFFFFFCCCCCCCCCCC0077000000008777'x || ,
'CCCCCCCCFFFFFFCCCCCCCCCC077000000000F777CCCCCCCCFFFFFFFCCCCCCCCC00'x || ,
'77000000008777CCCCCCCCCFFFFFFFCCCCCCCC077000000000F777CCCCCCCCCCFF'x || ,
'FFFFFCCCCCCC0077000000008777CCCCCCCCCCCFFFFFFFCCCCCC077000000000F7'x || ,
'77CCCCCCCCCCCCFFFFFFFCCCCC0077000000008777CCCCCCCCCCCCCFFFFFFFCCCC'x || ,
'077000000000F777CCCCCCCCCCCCCCFFFFFFFCCC0077000000008777CCCCCCCCCC'x || ,
'CCCCCFFFFFFFCC077000000000F777CCCCCCCCCCCCCCCCFFFFFFCC007700000000'x || ,
'8777CCCCCCCCCCCCCCCCCFFFFFCC077000000000F777CCCCCCCCCCCCCCCCCCFFFC'x || ,
'CC0077000000008777CCCCCCCCCCCCCCCCCCCCCCCC077000000000F777CCCCCCCC'x || ,
'CCCCCCCCCCCCCCCC77770000000087777777777777777777777777777770000000'x || ,
'00F777777777777777777777777777777700000000877777777777777777777777'x || ,
'7777777000000000F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8F8000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000000000000000000000000000'x || ,
'000000000000000000000000000000000000000000FFFFF000FFFFF000C0003000'x || ,
'C0003000C0003000C0003000C0003000C0003000C0003000C0003000C0003000C0'x || ,
'003000C0003000C0003000C0003000C0003000C0003000C0003000FFFFF000FFFF'x || ,
'F00000000000000000000000000000000000000000000000000000777777777777'x || ,
'77770000000077700000000000070000000077CCCCCCCCCCCC070000000077CCFC'x || ,
'CCCCCCCC070000000077CFFFCCCCCCCC070000000077CCFCCCCCCCCC0700000000'x || ,
'77CCCCFFCCCCCC070000000077CCCCFFFCCCCC070000000077CCCCCFFFCCCC0700'x || ,
'00000077CCCCCCFFFCCC070000000077CCCCCCCFFFCC070000000077CCCCCCCCFF'x || ,
'FC070000000077CCCCCCCCCFCC070000000077CCCCCCCCCCCC7700000000777777'x || ,
'777777777700000000777777777777777700000000000000000000000000000000'x || ,
'0000000000000000000000'x
DOS_settings= 'SET DOS_AUTOEXEC=;' ,
|| 'SET DOS_BACKGROUND_EXECUTION=0;' ,
|| 'SET DOS_BREAK=0;' ,
|| 'SET DOS_FCBS=16;' ,
|| 'SET DOS_FCBS_KEEP=8;' ,
|| 'SET DOS_FILES=40;' ,
|| 'SET DOS_HIGH=0;' ,
|| 'SET DOS_RMSIZE=640;' ,
|| 'SET DOS_UMB=1;' ,
|| 'SET DPMI_DOS_API=ENABLED;' ,
|| 'SET DPMI_MEMORY_LIMIT=16;' ,
|| 'SET HW_NOSOUND=0;' ,
|| 'SET HW_ROM_TO_RAM=1;' ,
|| 'SET HW_TIMER=1;' ,
|| 'SET IDLE_SECONDS=0;' ,
|| 'SET IDLE_SENSITIVITY=75;' ,
|| 'SET INT_DURING_IO=1;' ,
|| 'SET KBD_ALTHOME_BYPASS=1;' ,
|| 'SET KBD_BUFFER_EXTEND=0;' ,
|| 'SET KBD_CTRL_BYPASS=NONE;' ,
|| 'SET KBD_RATE_LOCK=1;' ,
|| 'SET SESSION_PRIORITY=31;' ,
|| 'SET VIDEO_8514A_XGA_IOTRAP=0;' ,
|| 'SET VIDEO_FASTPASTE=1;' ,
|| 'SET VIDEO_ONDEMAND_MEMORY=1;' ,
|| 'SET VIDEO_RETRACE_EMULATION=0;' ,
|| 'SET VIDEO_ROM_EMULATION=1;' ,
|| 'SET VIDEO_SWITCH_NOTIFICATION=0;'
Common_setup= 'PROGTYPE=VDM;' ,
|| 'CONCURRENTVIEW=NO;' ,
|| 'MINWIN=DESKTOP;'
/* Create the program object */
Prog= 'EXENAME=' || Dir || '\MM.EXE;' ,
|| 'STARTUPDIR=' || Dir || ';' ,
|| 'ICONFILE=' || Dir || '\MM.ICO;' ,
|| 'OBJECTID=<SCALA_'Name'>;' ,
|| DOS_settings ,
|| Common_setup
/* Write an icon image file to use... */
junk=CHAROUT(Dir || '\' || 'MM.ICO',Icon)
junk=STREAM(Dir || '\' || 'MM.ICO','C','CLOSE')
/* Create... */
junk=SysCreateObject('WPProgram',AppName,FolderID,Prog,'REPLACE')
/* Create the DIAG program object */
DIAG= 'EXENAME=' || Dir || '\DIAG.EXE;' ,
|| 'STARTUPDIR=' || Dir || ';' ,
|| 'ICONFILE=' || Dir || '\DIAG.ICO;' ,
|| 'OBJECTID=<SCALA_DIAG>;' ,
|| Common_setup ,
|| DOS_settings
/* Write an icon image file to use... */
junk=CHAROUT(Dir || '\' || 'DIAG.ICO',Icon)
junk=STREAM(Dir || '\' || 'DIAG.ICO','C','CLOSE')
/* Create... */
junk=SysCreateObject('WPProgram',DiagName,FolderID,DIAG,'REPLACE')
/* Finally, create a shadow to the place where the files are */
/* We need to first set some options on the real directory... */
MM_Files= 'NORENAME=YES;' ,
|| 'ALWAYSSORT=YES;'
junk=SysSetObjectData(Dir,MM_Files)
/* and now for the shadow... */
Shadow='SHADOWID=' || Dir || ';' || MM_Files
junk=SysCreateObject('WPShadow',Longname,FolderID,Shadow,'REPLACE')
/* And, just so we know things are saved, we ask the folder to save... */
junk=SysSaveObject(FolderID,'Synchronous')
RETURN 0