home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Today (UK) 4 / CDRT4.iso / pc / install.dat < prev    next >
Encoding:
INSTALL Professional project  |  1994-06-15  |  19.5 KB  |  836 lines

  1. @DefineProject
  2.     @Name="Return to Zork"
  3.     @Version="1.1"
  4.     @OutDrive=C
  5.     @Subdir="\\RTZ-DEMO"
  6.     @InDiskBell=1
  7. @EndProject
  8.  
  9. @If (@Exists("@OutDrive:\\386MAX$$"))
  10.     @Display
  11.  @Text("386MAX")
  12.  
  13.  @Text("MaySLO", @Name)
  14.  
  15.  @Pause
  16.     @EndDisplay
  17. @EndIf
  18.  
  19. @ChDrive @InDrive
  20. // @ChDir "@InDir"
  21.  
  22. @DefineVars
  23.     @QString @Lang ="TXT"   // Natural language textfile
  24.                 // Version (0=FD, 1=regular CD, 2=Reel Magic CD)
  25.     @Integer @Media =0
  26.                 // Installing (else reconfiguring)?
  27.     @Integer @Initial =(@Exists("@InDrive:\\DISK.ID"))
  28.     @Integer @ChgCfg =0     // Changing (else showing) configuration?
  29. @EndVars
  30.  
  31. @If (@Exists("@InDrive:.\\RTZCD.*"))
  32.     @Media=1
  33.     @Name="@Name CD-ROM"
  34. @ElseIf (@Exists("@InDrive:.\\RTZRM.*"))
  35.     @Media=2
  36.     @Name="@Name Reel Magic"
  37. @EndIf
  38.  
  39. @If (!@Exists("@InDrive:.\\ITXT.@Lang"))
  40.     @If (1)        // 0=international; 1=English only
  41.         @SetOption(1)
  42.     @Else
  43.         @GetOption @Cls @LocalWindow(9,40)
  44.                 @Name
  45.             @Option 1="For  ENGLISH,  highlight this line and press ENTER"
  46.             @Option 2="Pour FRANÇAIS, ..."
  47.             @Option 3="Für  DEUTSCH,  diese Linie hervvorheben und ENTER drücken"
  48.           //@Option 4="Para ESPAÑOL,  ..."
  49.           //@Option 5="Per  ITALIANO, ..."
  50.         @EndOption
  51.     @EndIf
  52.     @If     (1[=@Option) @Lang="ENG"
  53.     @ElseIf (2[=@Option) @Lang="FRA"
  54.     @ElseIf (3[=@Option) @Lang="DEU"
  55.     @ElseIf (4[=@Option) @Lang="ESP"
  56.     @ElseIf (5[=@Option) @Lang="ITA"
  57.     @EndIf
  58. @EndIf
  59. @TextFile="ITXT.@Lang"
  60.  
  61. @DefineVars
  62.     @Integer @ExtraMem =(@ExtTotal + @EMMTotal)
  63.     @QString @MADECmd ="MADE"
  64.     @QString @FileBase ="RTZ"
  65.     @QString @ReadMe ="README"
  66.     @Integer @PRJM =22
  67.     @Integer @OtherM =2
  68.     @QString @Args =""
  69.     @Drive   @CDDrive =@InDrive     // CD-ROM drive, if any
  70.     @Integer @CDDriveI =@Eval(@CDDrive-A)   // (0=A, ..., 26=Z)
  71.     @QString @OutDir =""
  72.     @QString @ST0  ="LifeSize Sound Enhancer"
  73.     @QString @SF0  ="LSIZE"
  74.     @QString @ST1  ="Creative Labs Sound Blaster"
  75.     @QString @SF1  ="SBLASTER"
  76.     @QString @ST2  ="@ST1 Pro"
  77.     @QString @SF2  ="SBPRO"
  78.     @QString @ST3  =@Text("SBclone")
  79.     @QString @SF3  ="SBCLONE"
  80.     @QString @ST4  ="Disney SoundSource"
  81.     @QString @SF4  ="SOURCE"
  82.     @QString @ST5  ="Tandy SL/TL & Sensation"
  83.     @QString @SF5  ="TANSLTL"
  84.     @QString @ST6  ="Pro AudioSpectrum"
  85.     @QString @SF6  ="PAUDIO"
  86.     @QString @ST7  ="@ST6 16"
  87.     @QString @SF7  ="PAS16"
  88.     @QString @ST8  ="Covox Speech Thing"
  89.     @QString @SF8  ="CVXSND"
  90.     @QString @ST9  ="Windows Sound System"
  91.     @QString @SF9  ="SNDSYS"
  92.     @QString @ST10 ="@ST1 16"
  93.     @QString @SF10 ="SB16"
  94.     @QString @ST11 ="Logitech SoundMan"
  95.     @QString @SF11 =@SF2
  96.     @QString @ST12 ="Advanced Gravis UltraSound"
  97.     @QString @SF12 ="GF166"
  98.     @QString @ST13 =@Text("AdLibG")
  99.     @QString @SF13 ="ADLIBG"
  100.     @QString @SndDrvs ="@SF0=@ST0:@SF1=@ST1:@SF2=@ST2:@SF3=@ST3:@SF4=@ST4:@SF5=@ST5:@SF6=@ST6:@SF7=@ST7:@SF8=@ST8:@SF9=@ST9:@SF10=@ST10:@SF11=@ST11:@SF12=@ST12:@SF13=@ST13"
  101.     @QString @SndDrv =""
  102.     @Integer @SndDrvI =0
  103.     @QString @Snd =""
  104.     @QString @MT0 =@Text("None")
  105.     @QString @MF0 ="NUL"
  106.     @QString @MT1 =@Text("AdLib")
  107.     @QString @MF1 ="ADLIB"
  108.     @QString @MT2 =@ST13
  109.     @QString @MF2 =@SF13
  110.     @QString @MT3 =@ST1
  111.     @QString @MF3 =@MF1
  112.     @QString @MT4 =@ST2
  113.     @QString @MF4 =@MF1
  114.     @QString @MT5 =@Text("PCspkr")
  115.     @QString @MF5 ="PCSPKR"
  116.     @QString @MT6 ="Roland LAPC-I synthesizer"
  117.     @QString @MF6 ="MT32MPU"
  118.     @QString @MT7 ="Roland MPU-401 MIDI"
  119.     @QString @MF7 =@MF6
  120.     @QString @MT8 ="Roland MT-32 synthesizer"
  121.     @QString @MF8 =@MF6
  122.     @QString @MT9 =@ST10
  123.     @QString @MF9 =@MF1
  124.     @QString @MT10 =@ST12
  125.     @QString @MF10 ="GF1MIDI"
  126.     @QString @MT11 =@ST6
  127.     @QString @MF11 =@MF1
  128.     @QString @MT12 =@ST3
  129.     @QString @MF12 =@MF1
  130.     @QString @MT13 =@ST11
  131.     @QString @MF13 =@MF1
  132.     @QString @MT14 ="@ST10 MIDI"
  133.     @QString @MF14 ="SB16MPU"
  134.     @QString @MusDrvs ="@MF0=@MT0:@MF1=@MT1:@MF2=@MT2:@MF3=@MT3:@MF4=@MT4:@MF5=@MT5:@MF6=@MT6:@MF7=@MT7:@MF8=@MT8:@MF9=@MT9:@MF10=@MT10:@MF11=@MT11:@MF12=@MT12:@MF13=@MT13:@MF14=@MT14"
  135.     @QString @MusDrv =""
  136.     @Integer @MusDrvI =0
  137.     @QString @Mus =""
  138.     @QString @SndDflt =""
  139.     @QString @SndDflts ="5:3:4:12:5s:5:11p:11p:5:5:14:13:10!u:2s!"
  140.     @Integer @IOAddr =0
  141.     @QString @IOAddrQS =""
  142.     @Integer @IRQ =0
  143.     @QString @IRQQS =""
  144.     @Integer @DMA =0
  145.     @QString @DMAQS =""
  146.     @QString @LH =""
  147.     @QString @HexDig ="0123456789ABCDEF0123456789abcdef"
  148.     @QString @NY ="~N ~Y"
  149.     @QString @BOn =""
  150.     @QString @BOff =""
  151.     @Integer @TmpI1 =0
  152.     @Integer @TmpI2 =0
  153.     @Integer @TmpI3 =0
  154.     @QString @TmpQS =""
  155.     @Drive   @TmpDr =A
  156.     @Dir     @TmpDi ="\\"
  157.     @Integer @Zork = 0
  158.     @Integer @RTZ = 0
  159. @EndVars
  160.  
  161. @If (@Media==1)
  162.     @Subdir="@Subdir"
  163.     @MADECmd="@MADECmd@!CD"
  164.     @FileBase="@FileBase@!CD"
  165.     @ReadMe="@ReadMe@!CD"
  166.     @PRJM=45
  167. @ElseIf (@Media==2)
  168.     @Subdir="@Subdir@!-RM"
  169.     @MADECmd="@MADECmd@!RM"
  170.     @FileBase="@FileBase@!RM"
  171.     @ReadMe="@ReadMe@!RM"
  172. @EndIf
  173.  
  174. @Display
  175.     @MoveCStr(0,54,126,"╔════════════════╗")
  176.     @MoveCStr(1,54,126,"║    INFOCOM     ║")
  177.     @MoveCStr(2,54,126,"╚════════════════╝")
  178.     @MoveCStr(3,56,  0,"                  ")
  179.     @MoveCStr(1,72,0,"  ")
  180.     @MoveCStr(2,72,0,"  ")
  181.     @MoveCStr(4,20,95,"╔═══════════════════════════════╗")
  182.     @MoveCStr(5,20,95,"║  R E T U R N   T O   Z O R K  ║")
  183.     @MoveCStr(6,20,95,"╚═══════════════════════════════╝")
  184.     @MoveCStr(7,22, 0,"                                 ")
  185.     @MoveCStr(5,53,0,"  ")
  186.     @MoveCStr(6,53,0,"  ")
  187.     @Move(8,0)
  188.     @If (@Initial)
  189.     @Text("HiNew", @Name)
  190.         @If (!@Media)
  191.     @Text("LongTime", @Name)
  192.         @EndIf
  193.     @Text("EscCmd")
  194.     @Else
  195.     @Text("HiOld", @Name)
  196.     @EndIf
  197.  
  198.     @Pause
  199. @EndDisplay
  200.  
  201. @If (!@Initial)
  202.     @OutDrive=@InDrive
  203.     @Subdir="@GetCWD(@InDrive)"
  204.     @OutDir="@OutDrive:\\@Subdir"
  205.     @Goto ChooseConfig
  206. @EndIf
  207.  
  208. ChooseGame:
  209. @GetOption
  210.   @cls
  211.   @LocalWindow(13,40)
  212.   @Text("Whichgame?2")
  213.   @Option 95="@Text("InstallBoth")"
  214.   @Option 96="@Text("InstallZork")"
  215.   @Option 97="@Text("InstallRTZ")"
  216. @EndOption
  217. @If    (95[=@Option)
  218.   @Zork=1
  219.   @RTZ=1
  220. @ElseIf    (96[=@Option)
  221.   @RTZ=0
  222.   @Zork=1
  223. @ElseIf (97[=@Option)
  224.   @Zork=0
  225.   @RTZ=1
  226. @Endif
  227.  
  228.  
  229. ChooseDest:
  230.  
  231. @FlushOptions()
  232.  
  233. @TmpI1=@OtherM
  234. @If (!@Media)
  235.     @SetOption(61)
  236.     @TmpI1=(@TmpI1+@PRJM)
  237. @EndIf
  238. @If (!@RTZ)
  239.   @TmpI1=100000
  240. @EndIf
  241.  
  242. @GetOutDrive @LocalWindow(15,40)
  243.     // @Suppress @InDrive // INSTALL only accepts A-Z after @Suppress
  244.     @If (!@DirExists("A:")) @Suppress A @EndIf
  245.     @If (!@DirExists("B:")) @Suppress B @EndIf
  246.     @Cls
  247.  
  248.  @Text("ProdDrv?1", @Name)
  249.  
  250.  @If (@RTZ)
  251.  @Text("ProdDrv?2", "@TmpI1")
  252.  @Else
  253.  @Text("ZorkSpace")
  254.  @Endif
  255.  
  256.  @Text("ProdDrv?3")
  257.     @Move(22,0)@Text("SelectCmds")@Move(0,0)
  258. @EndOutDrive
  259.  
  260. @TmpI2=(@DiskFree(@OutDrive)/1000000)
  261. @If (!@RTZ)
  262.   @TmpI2=(@DiskFree(@OutDrive))
  263. @EndIf
  264. @If (@TmpI2<@TmpI1)
  265.     @GetOption @Cls @LocalWindow(13,40)
  266.  @Text("NotEnufDisk", @Name, "@TmpI1", "@OutDrive", "@Eval(@TmpI2+1)")
  267.  
  268.  @Text("NowWhat?")
  269.         @Option 12="@Text("NewDrv")"
  270.         @Option 13="@Text("TryToInstall")"
  271.         @Option 14="@Text("Abort")"
  272.     @EndOption
  273.     @If     (12[=@Option) @Goto ChooseDest
  274.     @ElseIf (14[=@Option) @Exit
  275.     @EndIf
  276. @EndIf
  277.  
  278. @GetSubdir @Cls @LocalWindow(9,40)
  279.     @Prompt=" @Text("Dir?") "
  280.  
  281.  @Text("ProdDir?", @Name)
  282.  
  283.  @Text("CreDir")
  284. @EndSubdir
  285.  
  286. @OutDir="@OutDrive:\\@Subdir"
  287. @If (@DirExists(@OutDir))
  288.     @GetOption @Cls @LocalWindow(11,40)
  289.  @Text("DirExist", @OutDir)
  290.  
  291.  @Text("NowWhat?")
  292.         @If (@DirExists("@OutDir\\DRIVERS"))
  293.             @Option 11="@Text("NewCfg")"
  294.         @EndIf
  295.         @Option 12="@Text("NewDrvOrDir")"
  296.         @Option 13="@Text("Overwrite")"
  297.         @Option 14="@Text("Abort")"
  298.     @EndOption
  299.     @If     (11[=@Option) @Goto ChooseConfig
  300.     @ElseIf (12[=@Option) @Goto ChooseDest
  301.     @ElseIf (14[=@Option) @Exit
  302.     @EndIf
  303. @EndIf
  304.  
  305. @MkDir(@OutDir)
  306.  
  307. @If ((!@Media) && 61[=@Option)
  308. @DefineDisk @Label="Disk #1"  @BeginLib RTZ.001 @File *.* @EndLib @EndDisk
  309. @DefineDisk @Label="Disk #2"  @BeginLib RTZ.002 @File *.* @EndLib @EndDisk
  310. @DefineDisk @Label="Disk #3"  @BeginLib RTZ.003 @File *.* @EndLib @EndDisk
  311. @DefineDisk @Label="Disk #4"  @BeginLib RTZ.004 @File *.* @EndLib @EndDisk
  312. @DefineDisk @Label="Disk #5"  @BeginLib RTZ.005 @File *.* @EndLib @EndDisk
  313. @DefineDisk @Label="Disk #6"  @BeginLib RTZ.006 @File *.* @EndLib @EndDisk
  314. @DefineDisk @Label="Disk #7"  @BeginLib RTZ.007 @File *.* @EndLib @EndDisk
  315. @DefineDisk @Label="Disk #8"  @BeginLib RTZ.008 @File *.* @EndLib @EndDisk
  316. @DefineDisk @Label="Disk #9"  @BeginLib RTZ.009 @File *.* @EndLib @EndDisk
  317. @DefineDisk @Label="Disk #10" @BeginLib RTZ.010 @File *.* @EndLib @EndDisk
  318. @DefineDisk @Label="Disk #11" @BeginLib RTZ.011 @File *.* @EndLib @EndDisk
  319. @DefineDisk @Label="Disk #12" @BeginLib RTZ.012 @File *.* @EndLib @EndDisk
  320. @EndIf
  321.  
  322. @DefineDisk @Label="Disk #1"
  323.     @If (@RTZ)
  324.     @If (@Media && 61[=@Option)
  325.         @File @FileBase.PRJ
  326.     @EndIf
  327.     @If (@Zork)
  328.       @File ZORK1.COM
  329.       @File ZORK1.DAT
  330.     @EndIf
  331.     @File INSTALL.EXE
  332.     @File INSTALL.DAT
  333.     @File @TextFile @Out ITXT.TXT
  334.     @BeginLib @FileBase@!DRV.RED
  335.         @File *.* @Out DRIVERS\\*.*
  336.         @File SBPRO.COM @Out DRIVERS\\SB16.*
  337.     @EndLib
  338.     @BeginLib @FileBase.RED
  339.         @If (@Exists("@InDrive:\\READ.ME"))
  340.             @File @ReadMe.@Lang @Out READ.ME
  341.         @EndIf
  342.         @File SAMPLE.*
  343.         @File SAMPLE.AD @Out *.OPL
  344.         @File RTZ*.*
  345.         @File *.EXE
  346.     @EndLib
  347.     @If (@Exists("@InDrive:\\@MADECmd.EXE"))
  348.         @File @MADECmd.EXE
  349.     @EndIf
  350.     @ElseIf (@Zork)
  351.       @File ZORK1.COM
  352.       @File ZORK1.DAT
  353.     @EndIf
  354. @EndDisk
  355.  
  356. @Commit
  357.  
  358. @ChDrive @OutDrive
  359. @ChDir "@Subdir"
  360.  
  361. @TmpI1=@PeekF("RTZ.PIF", 1, 1)
  362. @PeekF(, 101, 0)
  363. @TmpI2=0
  364. PIF:
  365.     @TmpI3=(@StrIndex(@OutDir, @TmpI2))
  366.     @PokeF(,, 1, @TmpI3)
  367.     @TmpI1=(@TmpI1+@TmpI3- 32)
  368.     @TmpI2=(@TmpI2+1)
  369.     @If (@TmpI3) @Goto PIF @EndIf
  370. @PokeF(, 1, 1, @TmpI1)
  371.  
  372. @TmpI1=@PeekF("RTZ.GRP", 4, 2)
  373. @PeekF(, 90, 0)
  374. @TmpQS="@OutDir\\RTZ.PIF"
  375. @TmpI2=0
  376. GRP1:
  377.     @TmpI3=(@StrIndex(@TmpQS, @TmpI2))
  378.     @PokeF(,, 1, @TmpI3)
  379.     @TmpI1=(@TmpI1-(@TmpI3 * ((@TmpI2 & 1)*255 + 1)))
  380.     @TmpI2=(@TmpI2+1)
  381.     @If (@TmpI3) @Goto GRP1 @EndIf
  382.  
  383. @PeekF(, 158, 0)
  384. @TmpQS="@OutDir\\RTZ.ICO"
  385. @TmpI2=0
  386. GRP2:
  387.     @TmpI3=(@StrIndex(@TmpQS, @TmpI2))
  388.     @PokeF(,, 1, @TmpI3)
  389.     @TmpI1=(@TmpI1-(@TmpI3 * ((@TmpI2 & 1)*255 + 1)))
  390.     @TmpI2=(@TmpI2+1)
  391.     @If (@TmpI3) @Goto GRP2 @EndIf
  392. @PokeF(, 4, 2, @TmpI1)
  393.  
  394. @If (!@RTZ)
  395.   @Goto Done
  396. @EndIf
  397.  
  398. ChooseWindows:
  399.  
  400. @GetOption @Cls @CheckBox @LocalWindow(10,40)
  401.  
  402.  @Text("Win1", @Name)
  403.     @If (!@InWin)
  404.  @Text("Win2")
  405.     @EndIf
  406.     @SetOption(62) @Option 62="@Text("Win?")"
  407.     @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  408. @EndOption
  409. @If (62[=@Option)
  410.     @GetOutDrive @TmpDr @LocalWindow(15,40)
  411.         // @Suppress @InDrive // INSTALL only accepts A-Z after @Suppress
  412.         @If (!@DirExists("A:")) @Suppress A @EndIf
  413.         @If (!@DirExists("B:")) @Suppress B @EndIf
  414.         @Cls
  415.  
  416.  @Text(@StrToken("WinDrv?1 WinDrv?2", !!@InWin))
  417.         @Move(22,0)@Text("SelectCmds")@Move(0,0)
  418.     @EndOutDrive
  419.  
  420.     @TmpDi="\\WINDOWS"
  421.     @GetSubdir @TmpDi @Cls @LocalWindow(9,40)
  422.         @Prompt=" @Text("Dir?") "
  423.  
  424.  @Text("WinDir?")
  425.         @If (!@InWin)
  426.  @Text("CreDir")
  427.         @EndIf
  428.     @EndSubdir
  429.  
  430.     @TmpQS="@TmpDr:\\@TmpDi"
  431.     @If (@InWin && !@DirExists(@TmpQS))
  432.         @Display @Cls
  433.  
  434.  @Text("!DirExist", @TmpQS)
  435.  
  436.             @Pause
  437.         @EndDisplay
  438.         @Goto ChooseWindows
  439.     @EndIf
  440.     @MkDir(@TmpQS)
  441.     @TmpQS="@TmpQS\\PROGMAN.INI"
  442.     @If (!@Exists(@TmpQS))
  443.         @Write(@TmpQS, "wt", "[Groups]\n")
  444.     @ElseIf (@Grep(@TmpQS, "\\RTZ.GRP\r\n")+1)
  445.         @Goto ChooseConfig
  446.     @EndIf
  447.     @TmpI1=((@FileSize(@TmpQS)&65535)|8192)
  448.     @Write(@TmpQS,, "Group@TmpI1=@OutDir\\RTZ.GRP\n")
  449. @EndIf
  450.  
  451.  
  452. ChooseConfig:
  453.  
  454. @FlushOptions
  455. @FlushGroups
  456.  
  457. @TmpQS="@OutDir\\RTZ.CFG"
  458. @TmpI1=32767
  459. @If (@Exists(@TmpQS))
  460.     @TmpI1=@PeekF(@TmpQS, 32, 1)
  461. @EndIf
  462.  
  463. @If (@TmpI1>2)
  464.     @SetOption(65)
  465.     @SetOption(67)
  466.     @SetGroup(O) @SetGroup(S)
  467.     @If (@ExtraMem)
  468.         @SetGroup(B) @SetGroup(H) @SetGroup(X)
  469.     @EndIf
  470.     @Goto InputConfig
  471. @EndIf
  472.  
  473. @CDDriveI=@PeekF(,, 1)
  474. @SetOption(20+@PeekF(,, 1))
  475. @SetOption(40+@PeekF(,, 1))
  476. @If (@PeekF(,, 1)) @SetGroup(O) @EndIf
  477. @If (@PeekF(,, 1)) @SetGroup(X) @EndIf
  478. @IOAddr=@PeekF(,, 2)
  479. @IRQ=@PeekF(,, 2)
  480. @DMA=@PeekF(,, 2)
  481. @If (@PeekF(,, 1)) @SetGroup(H) @EndIf
  482. @If (@PeekF(,, 1)) @SetGroup(S) @EndIf
  483.  
  484. @If (@TmpI1<2)
  485.     @If (X[=@Group) @SetGroup(B) @EndIf
  486. @Else
  487.     @If (@PeekF(,, 1)) @SetGroup(B) @EndIf
  488. @EndIf
  489.  
  490.  
  491. InputConfig:
  492.  
  493. @If (@ChgCfg)
  494.     @FlushOptions
  495.     @GetOption @Cls @LocalWindow(11,40)
  496.  @Text("Snd?"):
  497.       //@Option 65="@Text("AutoDet")"
  498.         @Option 21="@ST1"
  499.         @Option 22="@ST2"
  500.         @Option 30="@ST10"
  501.         @Option 23="@ST3"
  502.         @Option 20="@ST0"
  503.         @Option 33="@ST13"
  504.           //@Option 28="@ST8"
  505.         @Option 24="@ST4"
  506.         @Option 32="@ST12"
  507.         @Option 31="@ST11"
  508.         @Option 26="@ST6"
  509.         @Option 27="@ST7"
  510.         @Option 25="@ST5"
  511.         @If (@Media) @Option 29="@ST9" @EndIf
  512.     @EndOption
  513. @EndIf
  514. @If (65[=@Option)
  515. //  @If (@DetectSoundCard(0))
  516. //      @SetOption(21)
  517. //      @IOAddr=@DetectSoundCard(1)
  518. //      @IRQ=@DetectSoundCard(2)
  519. //      @DMA=@DetectSoundCard(3)
  520. //      @SetOption(66)
  521. //  @Else   // Assume LifeSize
  522.         @SetOption(20)
  523. //  @EndIf
  524. @EndIf
  525.  
  526. @SndDrvI=0
  527. L2:
  528. @If (@SndDrvI+20[!@Option)
  529.     @SndDrvI=(@SndDrvI+1)
  530.     @Goto L2
  531. @EndIf
  532. @SndDrv=@StrToken(@SndDrvs, @SndDrvI*2, ":=")
  533. @SndDrv="DRIVERS\\@SndDrv"
  534. @Snd=@StrToken(@SndDrvs, @SndDrvI*2 + 1, ":=")
  535.  
  536. @If (65[=@Option && @ChgCfg)
  537.     @ClearOption(65)
  538.     @GetOption @Cls @CheckBox @LocalWindow(11,40)
  539.         @SetOption(0) @Option 0="@Text("Det", @Snd)"
  540.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  541.     @EndOption
  542.     @If (0[!@Option) @Goto InputConfig @EndIf
  543. @EndIf
  544.  
  545. @If (66[!@Option)
  546.     @IOAddr=@PeekF("@OutDir\\@SndDrv.COM", 262, 2)
  547.     @IRQ=@PeekF(,, 2)
  548.     @DMA=@PeekF(,, 2)
  549. @EndIf
  550.  
  551. @TmpI1=@IOAddr
  552. @IOAddrQS=""
  553. @If (!@TmpI1) @IOAddrQS="0" @EndIf
  554. IOAD2H:
  555.     @TmpI2=(@TmpI1&15)
  556.     @TmpI1=(@TmpI1/16)
  557.     @If (@TmpI1+@TmpI2)
  558.         @IOAddrQS="@StrMid(@HexDig, @TmpI2, 1)@IOAddrQS"
  559.     @EndIf
  560.     @If (@TmpI1) @Goto IOAD2H @EndIf
  561.  
  562. @If (@ChgCfg)
  563.     @TmpQS=@IOAddrQS
  564.     @TmpI2=@IRQ
  565.     @TmpI3=@DMA
  566.     @If (@DetectSoundCard(0))
  567.         @TmpI1=@DetectSoundCard(1)
  568.         @TmpQS=""
  569.         @If (!@TmpI1) @TmpQS="0" @EndIf
  570. IOAD2H2:
  571.             @TmpI2=(@TmpI1&15)
  572.             @TmpI1=(@TmpI1/16)
  573.             @If (@TmpI1+@TmpI2)
  574.                 @TmpQS="@StrMid(@HexDig, @TmpI2, 1)@TmpQS"
  575.             @EndIf
  576.             @If (@TmpI1) @Goto IOAD2H2 @EndIf
  577.         @TmpI2=@DetectSoundCard(2)
  578.         @TmpI3=@DetectSoundCard(3)
  579.     @EndIf
  580.  
  581.     @If (@IOAddr!=65535)
  582.         @GetString @IOAddrQS @Cls @Prompt=" @Text("Hex?") "
  583.  @Text("IOA?", @TmpQS):
  584.  
  585.         @EndString
  586.         @IOAddr=0
  587.         @TmpI1=(-1)
  588.         @Goto IOAH2D2
  589. IOAH2D1:
  590.         @IOAddr=(@IOAddr*16 + (@StrFind(@HexDig, @StrMid(@IOAddrQS, @TmpI1, 1)) & 15))
  591. IOAH2D2:
  592.         @TmpI1=(@TmpI1+1)
  593.         @If (@TmpI1<@StrLen(@IOAddrQS)) @Goto IOAH2D1 @EndIf
  594.     @EndIf
  595.  
  596.     @If (@IRQ!=65535)
  597.         @GetInteger @IRQ @Cls @Prompt=" @Text("Dec?") "
  598.  @Text("IRQ?", "@TmpI2"):
  599.  
  600.         @EndInteger
  601.     @EndIf
  602.  
  603.     @If (@DMA!=65535)
  604.         @GetInteger @DMA @Cls @Prompt=" @Text("Dec?") "
  605.  @Text("DMA?", "@TmpI3"):
  606.  
  607.         @EndInteger
  608.     @EndIf
  609. @EndIf
  610.  
  611. @IOAddr=(@IOAddr&65535)
  612. @IOAddrQS=@StrTail(@IOAddrQS, 4)
  613. @If (@IOAddr==65535) @IOAddrQS=@Text("None") @EndIf
  614.  
  615. @IRQ=(@IRQ&65535)
  616. @IRQQS="@IRQ"
  617. @If (@IRQ==65535) @IRQQS=@Text("None") @EndIf
  618.  
  619. @DMA=(@DMA&65535)
  620. @DMAQS="@DMA"
  621. @If (@DMA==65535) @DMAQS=@Text("None") @EndIf
  622.  
  623.  
  624. InputMusic:
  625.  
  626. @SndDflt=@StrToken(@SndDflts, @SndDrvI, ":")
  627. @TmpI1=@StrToInt(@SndDflt)
  628. @If (@StrFind(@SndDflt, "!")+1)
  629.     @SetOption(40+@TmpI1)
  630.     @ClearOption(67)
  631. @ElseIf (@ChgCfg)
  632.     @GetOption @Cls @LocalWindow(12,40)
  633.  @Text("Mus?"):
  634.         @Option 40="@MT0"
  635.       //@Option 67="@Text("AutoDet")"
  636.         @Option 43="@MT3"
  637.         @Option 44="@MT4"
  638.         @Option 49="@MT9"
  639.       //@Option 54="@MT14"
  640.         @Option 52="@MT12"
  641.         @Option 48="@MT8"
  642.         @Option 47="@MT7"
  643.         @Option 46="@MT6"
  644.         @Option 41="@MT1"
  645.         @Option 42="@MT2"
  646.         @Option 50="@MT10"
  647.         @Option 53="@MT13"
  648.         @Option 51="@MT11"
  649.         @Option 45="@MT5"
  650.     @EndOption
  651. @EndIf
  652. @If (67[=@Option)
  653.   @If (0)
  654.     @TmpI2=@DetectMusicDriver()
  655.     @If     (@TmpI2==3) @TmpI1=8
  656.     @ElseIf (!@TmpI2)   @TmpI1=5
  657.     @EndIf
  658.   @EndIf
  659.     @SetOption(40+@TmpI1)
  660. @EndIf
  661.  
  662. @MusDrvI=0
  663. L3:
  664. @If (@MusDrvI+40[!@Option)
  665.    @MusDrvI=(@MusDrvI+1)
  666.    @Goto L3
  667. @EndIf
  668. @MusDrv=@StrToken(@MusDrvs, @MusDrvI*2, ":=")
  669. @Mus=@StrToken(@MusDrvs, @MusDrvI*2 + 1, ":=")
  670.  
  671. @If (67[=@Option && @ChgCfg)
  672.     @ClearOption(67)
  673.     @GetOption @Cls @CheckBox @LocalWindow(11,40)
  674.         @SetOption(0) @Option 0="@Text("Det", @Mus)"
  675.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  676.     @EndOption
  677.     @If (0[!@Option) @Goto InputMusic @EndIf
  678. @EndIf
  679.  
  680. @TmpI1=(@StrFind(@SndDflt, "s")+1)
  681. @If (@TmpI1)
  682.     @ClearGroup(O)
  683. @EndIf
  684. @If (!@ExtraMem)
  685.     @ClearGroup(X)
  686.     @ClearGroup(B)
  687.     @ClearGroup(H)
  688. @EndIf
  689.  
  690. @If (@ChgCfg)
  691.     @If (@ExtraMem || !@TmpI1 || @Media)
  692.         @GetGroups @Cls @CheckBox @LocalWindow(9,40)
  693.  @Text("Add?")
  694.         @If (!@TmpI1)
  695.             @Set O="@Text("Smooth?")"
  696.         @EndIf
  697.         @If (@ExtraMem)
  698.             @Set X="@Text("EMS?")"
  699.             @Set B="@Text("EMSVideo?")"
  700.             @Set H="@Text("LoadHi?")"
  701.         @EndIf
  702.         @If (@Media==1)
  703.             @Set S="@Text("DigSnd?")"
  704.         @EndIf
  705.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  706.         @EndGroups
  707.     @EndIf
  708.  
  709.     @If (@Media)
  710.         @GetOutDrive @CDDrive @LocalWindow(15,40)
  711.         @If (!@DirExists("A:")) @Suppress A @EndIf
  712.         @If (!@DirExists("B:")) @Suppress B @EndIf
  713.         @Cls
  714.  
  715.  @Text("CD?", @Name):
  716.         @Move(22,0)@Text("SelectCmds")@Move(0,0)
  717.         @EndOutDrive
  718.         @CDDriveI=@Eval(@CDDrive-A)
  719.     @EndIf
  720. @EndIf
  721.  
  722. @TmpQS="@OutDir\\RTZ.CFG"
  723. @Write(@TmpQS, "wb", "@Name\r\n\x1a               ")
  724. @PokeF(@TmpQS, 32, 1, 2)             // .CFG file version
  725. @PokeF(,, 1, @CDDriveI)
  726. @PokeF(,, 1, @SndDrvI)
  727. @PokeF(,, 1, @MusDrvI)
  728. @PokeF(,, 1, O[=@Group)
  729. @PokeF(,, 1, X[=@Group)
  730. @PokeF(,, 2, @IOAddr)
  731. @PokeF(,, 2, @IRQ)
  732. @PokeF(,, 2, @DMA)
  733. @PokeF(,, 1, H[=@Group)
  734. @PokeF(,, 1, S[=@Group)
  735. @PokeF(,, 1, B[=@Group)
  736.  
  737. @PokeF("@OutDir\\@SndDrv.COM", 262, 2, @IOAddr)
  738. @PokeF(,, 2, @IRQ)
  739. @PokeF(,, 2, @DMA)
  740.  
  741. @CDDrive=(@StrIndex("ABCDEFGHIJKLMNOPQRSTUVWXYZ", @CDDriveI))
  742.  
  743. @GetOption @Cls @CheckBox @LocalWindow(20,40)
  744.          @Name @Text("SysCfg")
  745.  
  746.     @Text("Snd"):@Move(3,44)@Snd
  747.       @Text("IOA"):@Move(4,44)@IOAddrQS
  748.       @Text("IRQ"):@Move(5,44)@IRQQS
  749.       @Text("DMA"):@Move(6,44)@DMAQS
  750.     @Text("Mus"):@Move(7,44)@Mus
  751.     @Text("Smooth"):@Move(8,44)@Text(@StrToken(@NY,O[=@Group))
  752.     @Text("EMS"):@Move(9,44)@Text(@StrToken(@NY,X[=@Group))
  753.     @Text("EMSVideo"):@Move(10,44)@Text(@StrToken(@NY,B[=@Group))
  754.     @Text("LoadHi"):@Move(11,44)@Text(@StrToken(@NY,H[=@Group))
  755.     @If (@Media==1)@Text("DigSnd"):@Move(12,44)@Text(@StrToken(@NY,S[=@Group)) @EndIf
  756.     @If (@Media)@Text("CD"):@Move(13,44)@CDDrive: @EndIf
  757.  
  758.     @Text("ToChg"):
  759.                @OutDir\INSTALL
  760.  
  761.     @If (!@ChgCfg) @SetOption(63) @EndIf @Option 63="@Text("Cfg?")"
  762.     @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  763. @EndOption
  764. @ChgCfg=1
  765. @If (63[=@Option) @Goto InputConfig @EndIf
  766.  
  767. @If (O[=@Group)   @Args="@Args -O" @EndIf
  768. @If (X[=@Group)   @Args="@Args -X" @EndIf
  769. @If (B[=@Group)   @Args="@Args -L" @EndIf
  770. @If (S[!@Group)   @Args="@Args -S" @EndIf
  771. @If (H[=@Group)   @LH="LOADHIGH "  @EndIf
  772.  
  773. @BOn="@@echo off\n@OutDrive:\ncd \\@Subdir\n"
  774. @BOff="@SndDrv u\n"
  775.  
  776. @If (@StrFind(@SndDflt, "u")+1)
  777.     @BOn="@BOn@!SBOS -f\n@LH@!DRIVERS\\ULTRAMID -DDRIVERS\\ -M90 -NMT32.INI\n"
  778.     @BOff="@BOff@!DRIVERS\\ULTRAMID -F\necho.\n"
  779. @EndIf
  780. @BOn="@BOn@LH@SndDrv\n"
  781. @If (@StrFind(@SndDflt, "p")+1)
  782.     @BOn="@BOn@!PAS set fm to 90\nPAS set pcm to 60\nPAS set vol to 60\n"
  783. @EndIf
  784.  
  785. @If (40[!@Option) @Args="@Args -M:DRIVERS\\@MusDrv" @EndIf
  786. @If (@Media)
  787.     @Args="@Args -P:@CDDrive:\\"
  788.     @If (@Exists("@OutDir\\@FileBase.PRJ"))
  789.         @Args="@Args -F"
  790.     @EndIf
  791.     @If (@Media==2)
  792.         @BOn="@BOn@!FMPDRV\n"
  793.     @EndIf
  794. @EndIf
  795.  
  796. @Write("RTZDEMO.BAT", "wt", "@BOn@MADECmd @FileBase@Args\n@BOff")
  797.  
  798. @TmpQS="@OutDir\\READ.ME"
  799. @If (@Initial && @Exists(@TmpQS))
  800.     @GetOption @Cls @CheckBox @LocalWindow(10,40)
  801.  
  802.  @Text("README1", @Name)
  803.  
  804.  @Text("README2")
  805.         @SetOption(64) @Option 64="@Text("VuREADME?")"
  806.         @Move(22,0)@Text("CheckBoxCmds")@Move(0,0)
  807.     @EndOption
  808.     @If (64[=@Option) @Browse(@TmpQS) @EndIf
  809. @EndIf
  810.  
  811. Done:
  812. @Display @Cls
  813.  @Text("Done", @Name)
  814.  
  815.  @Text("ToPlay"):
  816.  
  817.     @OutDir\RTZ
  818.  
  819.  @Text("ZorkDone")
  820.  @Text("ZorkDone2")
  821.  @Text("ZorkDone3"):
  822.  
  823.    @OutDir\ZORK1
  824.  
  825.  @Text("ToChg"):
  826.  
  827.     @OutDir\INSTALL
  828.  
  829.  @If (@Initial && @InWin)@Text("ExitWin", @Name) @EndIf
  830.  
  831.     @Pause
  832. @EndDisplay
  833.  
  834. @Finish @Cls
  835. @EndFinish
  836.