home *** CD-ROM | disk | FTP | other *** search
/ MGA Millennium Bulk / BLK_5_FEB_96.iso / os2 / install.cmd < prev    next >
OS/2 REXX Batch file  |  1995-05-31  |  8KB  |  267 lines

  1. /********************************************************************/
  2. /*         MGA OS/2 PM drivers installation batch file              */
  3. /********************************************************************/
  4.  
  5. '@ECHO OFF'
  6. say 'MATROX MGA Millennium Driver'
  7.  
  8. call rxfuncadd sysloadfuncs, rexxutil, sysloadfuncs
  9. call sysloadfuncs
  10.  
  11. CurDir = Directory()
  12. parse SOURCE cmdd
  13. cmdd = word(cmdd,3)
  14. SrcDrv = left(cmdd, length(cmdd)-length('install.cmd')-1)
  15. Dstdrv = 'C:'           /* default value */
  16. AutoInstall = 0         /* default value */
  17.  
  18. /********************************************************************/
  19. /* Get arguments if any                                             */
  20. /********************************************************************/
  21.  
  22. Parse Arg all
  23.  
  24. ArgCount=words(all)
  25. if ArgCount > 3 then ArgCount = 3
  26. srcset=0
  27. dstset=0
  28. If ArgCount > 0 then do i=1 to ArgCount
  29.     ntmp = translate(word(all,i))
  30.     if ntmp ='/U' then AutoInstall = 1
  31.     else do
  32.         if srcset=0 then do
  33.             Srcdrv=ntmp
  34.             srcset=1
  35.         end
  36.         else do
  37.             Dstdrv=ntmp
  38.             dstset=1
  39.         end
  40.     end
  41. end
  42.  
  43. if srcset=1 then signal FoundSrcDrv
  44.  
  45. SeachRep = 0
  46. SeachAgain:
  47. if stream(Srcdrv'\MGAX64.DSC','C','query exists') \= "" then signal FoundSrcDrv
  48. Srcdrv=Srcdrv'\OS2'
  49. if stream(Srcdrv'\MGAX64.DSC','C','query exists') \= "" then signal FoundSrcDrv
  50.  
  51. SeachRep = SeachRep + 1
  52.  
  53. select
  54.    when SeachRep=1 then do
  55.         Srcdrv = CurDir
  56.         signal SeachAgain
  57.         end
  58.    when SeachRep=2 then do
  59.         DrvLetter = 'A'
  60.         Srcdrv = DrvLetter':'
  61.         signal SeachAgain
  62.         end
  63.     otherwise nop
  64. end
  65.  
  66. if DrvLetter \= 'Z' then do
  67.     DrvLetter= D2C(C2D(DrvLetter)+1)
  68.     Srcdrv = DrvLetter':'
  69.     signal SeachAgain
  70. end
  71.  
  72. Srcdrv='A:'
  73. signal NotFoundSrcDrv
  74.  
  75. FoundSrcDrv:
  76. say 'Install from 'Srcdrv
  77.  
  78. if dstset=1 then signal FoundDstDrv
  79.  
  80. /********************************************************************/
  81. /* Seach for OS2 system path in PATH environement                   */
  82. /********************************************************************/
  83.  
  84. Path = value('PATH',,'OS2ENVIRONMENT')
  85. if Path = '' then signal ENDSEARCH
  86.  
  87. ntmp = pos(':\OS2;', Path)
  88. if ntmp = 0 then signal ENDSEARCH
  89.  
  90. Dstdrv=substr(Path, ntmp-1,2)
  91.  
  92. FoundDstDrv:
  93. say 'Install to   'Dstdrv
  94.  
  95. /*****************************************************************************/
  96. /*                 Checking the default values                               */
  97. /*****************************************************************************/
  98.  
  99.                                                /* checking source      */
  100. if stream(Srcdrv'\MGAX64.DSC', 'C', 'query exists') \= "" then signal CheckDst
  101. Srcdrv=Srcdrv'\OS2'
  102. if stream(Srcdrv'\MGAX64.DSC', 'C', 'query exists') = "" then signal RESUME
  103.  
  104. CheckDst:
  105.  
  106. FileName=Dstdrv'\OS2KRNL'                       /* checking target      */
  107. 'attrib -r -s -h 'FileName
  108. if stream(FileName, 'C', 'query exists') = "" then signal RESUME
  109. 'attrib +h +s +r 'FileName
  110.  
  111. signal StartInstall
  112.  
  113. /********************/
  114. /* Ask the User     */
  115. /********************/
  116.  
  117. NotFoundSrcDrv:
  118. RESUME:
  119. cls
  120. say ''
  121. say ''
  122. say 'Source dir will be:' Srcdrv
  123. say 'Destination drive will be:' Dstdrv
  124. say 'Is the above information correct? (Y/N): Y'
  125. pull answer
  126. if answer = 'N' then signal askdrives
  127.  
  128. if stream(Srcdrv'\MGAX64.DSC', 'C', 'query exists') \= "" then signal CheckDst1
  129. Srcdrv=Srcdrv'\OS2'
  130. if stream(Srcdrv'\MGAX64.DSC', 'C', 'query exists') = "" then signal usage0
  131.  
  132. CheckDst1:
  133. FileName=Dstdrv'\OS2KRNL'
  134. 'attrib -r -s -h 'FileName
  135. if stream(FileName, 'C', 'query exists') = "" then signal usage0
  136. 'attrib +h +s +r 'FileName
  137.  
  138. say 'Source Directory will be 'Srcdrv
  139. say 'Ready to install? (Y/N): Y'
  140. pull answer
  141. if answer \= 'N' then signal StartInstall
  142.  
  143. say 'INSTALLATION ABORT'
  144. signal end
  145.  
  146. StartInstall:
  147. say 'PLEASE WAIT ...'
  148.  
  149. NewDir=directory(Dstdrv'\')             /* go to root off OS/2 drive */
  150.  
  151. /********************************************/
  152. /* remove any MGA statement from CONFIG.SYS */
  153. /********************************************/
  154.  
  155. InnF=Dstdrv'\CONFIG.MGA'
  156. OutF=Dstdrv'\CONFIG.SYS'
  157. 'copy 'OutF' 'InnF' >nul'
  158. 'del 'OutF
  159.  
  160. do until lines(InnF) = 0
  161.     InStr = linein(InnF)
  162.     select
  163.         when pos('VVGA.SYS', InStr) > 0     then nop
  164.         when pos('VSVGA.SYS', InStr) > 0    then nop
  165.         when pos('MGAKRNL.SYS', InStr) > 0  then nop    /* Terminator       */
  166.         when pos('MGA=', InStr) > 0         then nop    /* Termin / Millen  */
  167.         when pos('MGARES=', InStr) > 0      then nop    /* Terminator < 2.0 */
  168.         when pos('VIO_MGA', InStr) > 0      then nop    /* Termin / Millen  */
  169.         when pos('RAMBIOS.SYS', InStr) > 0  then nop    /* Terminator < 2.0 */
  170.         when pos('VMGA.SYS', InStr) > 0     then nop    /* Terminator       */
  171.         when pos('KMGAX64.SYS', InStr) > 0  then nop    /* Millennium       */
  172.         when pos('VMGAX64.SYS', InStr) > 0  then nop    /* Millennium       */
  173.         otherwise
  174.         do
  175.             if pos('LIBPATH=', InStr) > 0   then        do
  176.                 itmp = pos(':\MGA\OS', InStr)
  177.                 if itmp > 0 then stmp=delstr(InStr, itmp-1, 11)
  178.                 else stmp=InStr
  179.                 call lineout OutF, stmp
  180.             end
  181.             else do
  182.                 itmp = pos(':\MGA\OS2', InStr)
  183.                 if itmp = 0 then  call lineout OutF, InStr
  184.                 end
  185.         end
  186.     end
  187. end
  188.  
  189. call stream OutF, 'c', 'close'
  190. call stream InnF, 'c', 'close'
  191.  
  192. /**********************************************/
  193. /* remove any MGA statement from autoexec.bat */
  194. /**********************************************/
  195.  
  196. 'call 'Srcdrv'\FIXAUTO.CMD 'Dstdrv' ON'
  197.  
  198. /**********************************/
  199. /* Call OS/2 Installation process */
  200. /**********************************/
  201.  
  202. NewDir=directory(Dstdrv'\OS2\INSTALL')
  203. 'if exist MGA8.DSC del MGA8.DSC > nul'
  204. 'copy   'Srcdrv'\MGAX64.DSC .>nul'
  205.  
  206. /***************************************************/
  207. /* save OS2's Keyboard driver (ver > 2.11 is Warp) */
  208. /***************************************************/
  209. ver = SysOS2Ver()
  210.  
  211. if ver > '2.11' then do                             /* Warp */
  212.     option=' /S:'Srcdrv' /T:'Dstdrv
  213.     if AutoInstall = 1 then option=' /PD:'Srcdrv'\MGAX64.DSC'option
  214.     end
  215. else do                                             /* not Warp */
  216.     option=''
  217.     end
  218.  
  219. /**************************************************/
  220. /* Call dspinstl to install drivers               */
  221. /**************************************************/
  222.  
  223. 'DSPINSTL.EXE'option
  224. IstRetCode = rc
  225.  
  226. /**************************************************************/
  227. /* restore CONFIG.SYS and AUTOEXEC.BAT in case abort or error */
  228. /**************************************************************/
  229. if IstRetCode \= 0 then do
  230.     NewDir=directory(Dstdrv'\')
  231.     'copy config.mga config.sys >nul'
  232.     'copy autoexec.mga autoexec.bat >nul'
  233.     'del  *.mga'
  234.     say 'INSTALLATION ABORT'
  235.     end
  236. else say 'INSTALLATION DONE'
  237.  
  238. signal end
  239.  
  240. ASKDRIVES:
  241. say 'Enter source drive ('Srcdrv')'
  242. pull answer
  243. if   answer = "" then nop
  244. else Srcdrv = answer'\OS2'
  245. say 'Enter destination drive ('Dstdrv')'
  246. pull answer
  247. if   answer = "" then nop
  248. else Dstdrv = answer
  249. signal RESUME
  250.  
  251. USAGE0:
  252. say 'File' FileName ' does not exist'
  253. USAGE:
  254. say ''
  255. say 'Usage:'
  256. say '   install src: dst:'
  257. say '   Where src is the drive from which you are installing the driver'
  258. say '   and dst is your OS/2 boot drive.'
  259. say 'Example:'
  260. say '   b:install b: d:'
  261. say '   a:install'
  262. say '   e:\os2\install'
  263.  
  264. end:
  265. call directory CurDir
  266. exit
  267.