home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / GFX / AdPro2_5_0-4.DMS / AdPro2_5_0-4.adf / Install-Patches < prev    next >
Encoding:
Text File  |  1994-01-26  |  25.2 KB  |  1,038 lines

  1. ; ************************************************
  2. ; *
  3. ; * Install-Patches
  4. ; *
  5. ; * $VER: Install-Patches 2.5.0 (26.1.94)
  6. ; *
  7. ; * This is the installation script that will patch the following modules:
  8. ; *
  9. ; *    Professional Conversion Pack
  10. ; *        ALIAS
  11. ; *        PICT
  12. ; *        RENDITION
  13. ; *        SGI
  14. ; *        SUNRASTER
  15. ; *        TARGA
  16. ; *        TIFF
  17. ; *        WAVEFRONT
  18. ; *        X
  19. ; *    EPSON_SCAN (previously called EPSON_ES300C)
  20. ; *
  21. ; * for ASDG's ADPro or MorphPlus.
  22. ; *
  23. ; * Copyright © 1992-1994 ASDG, Incorporated
  24. ; * All Rights Reserved
  25. ; *
  26. ; ************************************************
  27.  
  28.  
  29. ; ****************************
  30. ; * Set up some global variables.
  31. ; ****************************
  32. ;
  33. (set OSVersion        (/ (getversion) 65536))
  34. (set TotalFiles        0)
  35. (set AccumFiles        0)
  36. (set PctDone        0)
  37. (set DisplayReadMe    0)
  38.  
  39. (set Disk4Name            "ADPro_D4")    ; actual name of disk 4
  40. (set DiskPatches        Disk4Name)    ; patch disk
  41.  
  42. (set patch_cksum_0 0)
  43. (set patch_cksum_1 0)
  44. (set patch_cksum_2 0)
  45. (set patch_cksum_3 0)
  46. (set patch_cksum_4 0)
  47. (set patch_cksum_5 0)
  48. (set patch_cksum_6 0)
  49. (set patch_cksum_7 0)
  50.  
  51.  
  52.  
  53.  
  54. (procedure setPkgOpts
  55. ;
  56. ; ****************************
  57. ; * Ask the user which parts of the package should be installed.
  58. ; ****************************
  59. ;
  60.     (
  61.     (set PkgOpts
  62.         (askoptions
  63.             (prompt    "Select the previously installed expansion modules to patch")
  64.             (help    "In addition to the basic ADPro/MorphPlus system, ASDG offers several expansion "
  65.                 "modules giving you added capabilities.  These expansion modules include "
  66.                 "scanner controllers, film recorder controllers, and the ability to read and "
  67.                 "write additional file formats.\n"
  68.                 "\n"
  69.                 "If you are upgrading from ADPro 1.0.3 or earlier, you might already own some "
  70.                 "of our expansion modules. If so, read on.\n"
  71.                 "\n"
  72.                 "If you don't own any of the expansion modules now, you can skip this "
  73.                 "step, but before you do so, please read the following paragraphs.\n"
  74.                 "\n"
  75.                 "If ADPro 2.5.0 is your first version of ADPro, or you don't own any "
  76.                 "expansion modules now, it is possible that when you purchase expansion "
  77.                 "modules in the future, you may get an older version.  If this happens, "
  78.                 "ADPro 2.5.0 will alert you with a message when you try to execute an "
  79.                 "expansion module designed for a previous version of ADPro.\n"
  80.                 "\n"
  81.                 "If you find that you have purchased an older expansion module, you can "
  82.                 "re-execute this installation program and select only this step to apply the "
  83.                 "patches contained here. "
  84.                 "\n"
  85.                 "If you don't need to perform any of the patches at this time, you can stop "
  86.                 "reading now.\n"
  87.                 "\n"
  88.                 "*** Professional Conversion Pack (PCP)\n"
  89.                 "This option lets you patch the ALIAS, PICT, RENDITION, SGI, SUNRASTER, "
  90.                 "TARGA, TIFF, WAVEFRONT, and X loader and saver modules.\n"
  91.                 "\n"
  92.                 "*** EPSON_SCAN / EPSON_ES300C\n"
  93.                 "This option lets you patch the EPSON_ES300C loader module to the "
  94.                 "EPSON_SCAN version (it will be renamed).  If you are using the older "
  95.                 "EPSON_ES300C_030 modules, you MUST reinstall the EPSON_ES300C "
  96.                 "version and delete the EPSON_ES300C_030 version before attempting "
  97.                 "the patch.\n"
  98.                 "\n"
  99.                 "To have these patches work, the modules to be patched must be installed in "
  100.                 "their proper places in the directory in which you just installed ADPro 2.5.0 "
  101.                 "(or MorphPlus).  This may mean that you have to re-install your expansion "
  102.                 "modules where you just installed ADPro or MorphPlus.  If so, exit this "
  103.                 "patch installation process for now, re-install the expansion modules, "
  104.                 "execute this patch install again and select only this last step.\n"
  105.                 "\n"
  106.                 "If the expansion modules to be patched are already located in the Loaders2 "
  107.                 "and Savers2 directory where you just installed ADPro 2.5.0 (or MorphPlus), "
  108.                 "then you may proceed with the patch process.\n"
  109.                 "\n"
  110.                 "If you have additional difficulties or questions, call ASDG at the phone "
  111.                 "number listed in your manual and please have your ADPro or MorphPlus serial "
  112.                 "number handy.  Thank you.\n"
  113.                 "\n"
  114.                 @askoptions-help)
  115.             (choices
  116.                 ; bit position 0 -- todo & 1
  117.                 ;
  118.                 "Professional Conversion Pack (PCP)"
  119.  
  120.                 ; bit position 1 -- todo & 2
  121.                 ;
  122.                 "EPSON_SCAN / EPSON_ES300C Loader"
  123.             )
  124.         )
  125.     )
  126.     )
  127. )
  128.  
  129.  
  130. (procedure patchFile
  131. ;
  132. ; ****************************
  133. ; * Patch a file.
  134. ; ****************************
  135. ;
  136. ; these variables must be defined before calling this procedure:
  137. ;    patch_type
  138. ;    patch_thisfile
  139. ;    patch_newname
  140. ;    patch_dir
  141. ;    patch_curnum
  142. ;    patch_maxnum
  143. ;    patch_cksum_0
  144. ;    patch_cksum_1
  145. ;    patch_cksum_2
  146. ;    patch_cksum_3
  147. ;    patch_cksum_4
  148. ;    patch_cksum_5
  149. ;    patch_cksum_6
  150. ;    patch_cksum_7
  151. ;
  152.     (if (= 1 (exists (tackon patch_dir patch_thisfile)))
  153.         (
  154.         (working ("Updating your %s %s...\n\nPlease read the ReadMe file after completing the installation." patch_thisfile patch_type))
  155.  
  156.         (set fsum (getsum (tackon patch_dir patch_thisfile)))
  157.         (set patched FALSE)
  158.         (while (AND (<= patch_curnum patch_maxnum) (NOT patched))
  159.             (
  160.             (set tsum (select patch_curnum patch_cksum_0 patch_cksum_1 patch_cksum_2 patch_cksum_3 patch_cksum_4 patch_cksum_5 patch_cksum_6 patch_cksum_7 0))
  161.             (if (= tsum fsum)
  162.                 (
  163.                 (run ("RAM:lhex -qw=RAM: x %s:%ssPatches.lha \"%s.%ld.PCH\"" DiskPatches patch_type patch_thisfile patch_curnum))
  164.                 (set patchCmd (cat "RAM:lpatch " ("-o%s " (tackon "RAM:" patch_thisfile)) ("-p%s.%ld.PCH \"%s\"" (tackon "RAM:" patch_thisfile) patch_curnum (tackon patch_dir patch_thisfile))))
  165.                 (if (= 0 (run patchCmd))
  166.                     (
  167.                     (protect (tackon patch_dir patch_thisfile) "+rwed")
  168.                     (copyfiles
  169.                         (prompt "")
  170.                         (help "")
  171.                         (source (tackon "RAM:" patch_thisfile))
  172.                         (dest patch_dir)
  173.                         (newname patch_newname)
  174.                     )
  175.                     (delete (tackon "RAM:" patch_thisfile))
  176.                     (delete ("RAM:%s.%ld.PCH" patch_thisfile patch_curnum))
  177.                     (set patched TRUE)
  178.                     )
  179.                 )
  180.                 )
  181.             )
  182.             )
  183.             (set patch_curnum (+ patch_curnum 1))
  184.         )
  185.         (if (NOT patched)
  186.             (
  187.             (set tsum (getsum (tackon patch_dir patch_thisfile)))
  188.             (if (= tsum fsum)
  189.                 (message
  190.                     ("\nThe current version of the %s %s is already up-to-date.\n" patch_thisfile patch_type)
  191.                     "\n"
  192.                     "No patching needs to be done.")
  193.                 (message
  194.                     ("\nThe attempt to patch the %s %s failed.\n" patch_thisfile patch_type)
  195.                     "\n"
  196.                     "This may have happened because the file has already been patched "
  197.                     "or the file is corrupted.  Please install the module(s) again and retry the patch."
  198.                 )
  199.             )
  200.             )
  201.         )
  202.         )
  203.         (
  204.         (message
  205.             ("The %s %s did not exist in your %ss2 directory.\n" patch_thisfile patch_type patch_type)
  206.             "\n"
  207.             "Please install the module again and retry this patch."
  208.         )
  209.         )
  210.     )
  211. )
  212.  
  213.  
  214. (procedure createModule
  215. ;
  216. ; ****************************
  217. ; * create a module from an existing module.
  218. ; ****************************
  219. ;
  220. ; these variables must be defined before calling this procedure:
  221. ;    create_oldname
  222. ;    create_newname
  223. ;    create_dir
  224. ;    create_type
  225. ;
  226.     (
  227.     (working ("Creating %s %s...\n\nPlease read the ReadMe file after completing installation." create_newname create_type))
  228.     (run ("RAM:lhex -qw=RAM: x %s:%ssPatches.lha \"%s.0.PCH\"" DiskPatches create_type create_newname))
  229.     (set patchCmd ("RAM:lpatch -oRAM:%s -pRAM:%s.0.PCH \"%s\"" create_newname create_newname (tackon create_dir create_oldname)))
  230.     (if (= 0 (run patchCmd))
  231.         (
  232.         (if (= (exists (tackon create_dir ("%s" create_newname))) 1)
  233.             (
  234.             (protect (tackon create_dir ("%s" create_newname)) "+rwed")
  235.             )
  236.         )
  237.         (copyfiles
  238.             (prompt "")
  239.             (help "")
  240.             (source ("RAM:%s" create_newname))
  241.             (dest create_dir)
  242.         )
  243.         (delete ("RAM:%s" create_newname))
  244.         (delete ("RAM:%s.0.PCH" create_newname))
  245.         )
  246.     )
  247.     )
  248. )
  249.  
  250.  
  251. (procedure setDirPath
  252. ;
  253. ; ****************************
  254. ; * Ask the user for a directory name.
  255. ; ****************************
  256. ;
  257. ; these variables must be defined before calling this procedure:
  258. ;    setDirPathWhy
  259. ;    setDirPathHelp
  260. ;    DirPath
  261. ;
  262. ; this procedure returns the selected directory in DirPath
  263. ;
  264.     (
  265.     (set moveon    FALSE)
  266.     (while (NOT moveon)
  267.         (
  268.         (set DirPath
  269.             (askdir
  270.                 (prompt    ("Please select the directory %s" setDirPathWhy)
  271.                 )
  272.                 (help    setDirPathHelp
  273.                     "\n"
  274.                     @askdir-help
  275.                 )
  276.                 (default DirPath)
  277.             )
  278.         )
  279.  
  280.         (if (= (exists DirPath) 0)
  281.             (makedir DirPath)
  282.             (set moveon    TRUE)
  283.         )
  284.         )
  285.     )
  286.     )
  287. )
  288.  
  289.  
  290. (procedure copyLibFile
  291. ;
  292. ; ****************************
  293. ; * Copy the specific library file to the LIBS: directory.
  294. ; ****************************
  295. ;
  296. ; these variables must be defined before calling this procedure:
  297. ;
  298. ;    copyLibFileName
  299. ;    copyLibFileHelp
  300. ;    DirPath
  301. ;
  302.     (
  303.     (if (= (exists (tackon DirPath copyLibFileName)) 1)
  304.         (
  305.         (protect (tackon DirPath copyLibFileName) "+rwed")
  306.         )
  307.     )
  308.     (copylib
  309.         (prompt    ("Copying %s to %s" copyLibFileName copyLibFileSize DirPath))
  310.         (help    copyLibFileHelp
  311.             "\n"
  312.             "If you already have a copy of this library in the selected destination directory, the library "
  313.             "included on the distribution disk will be compared to the one you "
  314.             "already have.  If your current library is an old version, the newer "
  315.             "version will be installed.\n"
  316.             "\n"
  317.             @copylib-help
  318.         )
  319.         (source copyLibFileName)
  320.         (dest DirPath)
  321.         (confirm)
  322.     )
  323.     )
  324. )
  325.  
  326.  
  327. (procedure deleteIfExists
  328. ;
  329. ; ****************************
  330. ; * Delete the given file, if it exists.
  331. ; ****************************
  332. ;
  333. ; these variables must be defined before calling this procedure:
  334. ;
  335. ;    deleteFileName
  336. ;
  337.     (
  338.     (if (= (exists deleteFileName) 1)
  339.         (
  340.         (protect deleteFileName "+rwed")
  341.         (delete deleteFileName)
  342.         )
  343.     )
  344.     )
  345. )
  346.  
  347.  
  348. (procedure incrementMeter
  349. ;
  350. ; ****************************
  351. ; * Increment the progress meter indicator.
  352. ; ****************************
  353. ;
  354. ;    addToMeter
  355. ;
  356.     (
  357.     (set PctDone    (/ (* AccumFiles 100) TotalFiles))
  358.     (set AccumFiles    (+ AccumFiles addToMeter))
  359.     (complete PctDone)
  360.     )
  361. )
  362.  
  363.  
  364. ; ****************************
  365. ; * ADPro Module Installation routine
  366. ; ****************************
  367. ;
  368. (procedure installADProModule
  369. ;
  370. ; This procedure does the work of de-arcing and copying files.
  371. ; It requires initialization of variables:
  372. ;    moduleArcName
  373. ;    moduleFileName
  374. ;    moduleType
  375. ;    moduleDestDir
  376. ;    modulesToDo
  377. ;    moduleCurrN
  378. ;
  379.     (
  380.     (set addToMeter    1)
  381.     (incrementMeter)
  382.  
  383.     (if (IN modulesToDo moduleCurrN)
  384.         (
  385.         (set deleteFileName    (tackon moduleDestDir moduleFileName))
  386.         (deleteIfExists)
  387.  
  388.         (set workingMsg        ("Installing %s %s..." moduleFileName moduleType))
  389.         (set arcFileName    moduleArcName)
  390.         (set srcFileName    moduleFileName)
  391.         (set destDirName    moduleDestDir)
  392.         (extractLZFile2Dir)
  393.         )
  394.     )
  395.     )
  396. )
  397.  
  398.  
  399. ; ****************************
  400. ; * PCP Patch routine
  401. ; ****************************
  402. ;
  403. (procedure PCPPatchInstall
  404.     (
  405.     ; ****************************
  406.     ; * Patching TIFF Loader
  407.     ; ****************************
  408.     ;
  409.     (set addToMeter    1)
  410.     (incrementMeter)
  411.  
  412.     (set patch_thisfile    "TIFF")
  413.     (set patch_newname    patch_thisfile)
  414.     (set patch_dir        ADProLoadersDir)
  415.     (set patch_type        "Loader")
  416.     (set patch_curnum    1)
  417.     (set patch_maxnum    7)
  418.     (set patch_cksum_1    819297291)    ; +++ (r1.0.2)
  419.     (set patch_cksum_2    859597812)    ; 2.0.4 (r1.0.3)
  420.     (set patch_cksum_3    1518344491)    ; 3.0.1 (r2.0.0)
  421.     (set patch_cksum_4    -1541692165)    ; +++ (r2.0.0+old2)
  422.     (set patch_cksum_5    617758844)    ; 3.0.3 (r2.1.0, r2.1.5)
  423.     (set patch_cksum_6    1350601782)    ; 3.0.5 (r2.2.0)
  424.     (set patch_cksum_7    -1509921674)    ; 3.1.0 (r2.3.0)
  425.     (patchFile)
  426.  
  427.     ; ----------------------------
  428.     ; latest version            ; 3.1.1 (r2.5.0)
  429.  
  430.  
  431.     ; ****************************
  432.     ; * Patching TARGA Loader
  433.     ; ****************************
  434.     ;
  435.     (set addToMeter    1)
  436.     (incrementMeter)
  437.  
  438.     (set patch_thisfile    "TARGA")
  439.     (set patch_newname    patch_thisfile)
  440.     (set patch_dir        ADProLoadersDir)
  441.     (set patch_type        "Loader")
  442.     (set patch_curnum    1)
  443.     (set patch_maxnum    6)
  444.     (set patch_cksum_1    244623600)    ; +++ (r1.0.2)
  445.     (set patch_cksum_2    1482780211)    ; 2.0.4 (r1.0.3)
  446.     (set patch_cksum_3    -1058239812)    ; 3.1.4 (r2.0.0)
  447.     (set patch_cksum_4    828434421)    ; +++ (r2.0.0+oldpatch3)
  448.     (set patch_cksum_5    828958717)    ; 3.1.5 (r2.1.0)
  449.     (set patch_cksum_6    832770327)    ; +++ (r2.1.5, r2.2.0)
  450.     (patchFile)
  451.  
  452.     ; ----------------------------
  453.     ; latest version:            ; 3.2.0 (r2.5.0)
  454.  
  455.  
  456.     ; ****************************
  457.     ; * Patching RENDITION Loader
  458.     ; ****************************
  459.     ;
  460.     (set addToMeter    1)
  461.     (incrementMeter)
  462.  
  463.     (set patch_thisfile    "RENDITION")
  464.     (set patch_newname    patch_thisfile)
  465.     (set patch_dir        ADProLoadersDir)
  466.     (set patch_type        "Loader")
  467.     (set patch_curnum    1)
  468.     (set patch_maxnum    4)
  469.     (set patch_cksum_1    1509760538)    ; +++ (r1.0.2)
  470.     (set patch_cksum_2    -784668211)    ; 2.0.3 (r1.0.3)
  471.     (set patch_cksum_3    -1088099858)    ; 3.0.5 (r2.0.0)
  472.     (set patch_cksum_4    1771791148)    ; 3.0.3 (r2.1.0, r2.1.5, r2.2.0)
  473.     (patchFile)
  474.  
  475.     ; ----------------------------
  476.     ; latest version:            ; 3.0.4 (r2.5.0)
  477.  
  478.  
  479.     ; ****************************
  480.     ; * Creating/Patching SUNRASTER Loader
  481.     ; ****************************
  482.     ;
  483.     (set addToMeter    1)
  484.     (incrementMeter)
  485.  
  486.     (if (= 0 (exists (tackon ADProLoadersDir "SUNRASTER")))
  487.         (
  488.         (set create_oldname    "RENDITION")
  489.         (set create_newname    "SUNRASTER")
  490.         (set create_type    "Loader")
  491.         (set create_dir        ADProLoadersDir)
  492.         (createModule)
  493.         )
  494.         (
  495.         (set patch_thisfile    "SUNRASTER")
  496.         (set patch_newname    patch_thisfile)
  497.         (set patch_dir        ADProLoadersDir)
  498.         (set patch_type        "Loader")
  499.         (set patch_curnum    1)
  500.         (set patch_maxnum    2)
  501.         (set patch_cksum_1    -607213817)    ; 3.0.0 (r2.1.0, r2.1.5)
  502.         (set patch_cksum_2    522824665)    ; 3.0.0 (r2.2.0)
  503.         (patchFile)
  504.         )
  505.     )
  506.  
  507.     ; ----------------------------
  508.     ; latest version:            ; 4.0.1 (r2.5.0)
  509.  
  510.  
  511.     ; ****************************
  512.     ; * Creating/Patching X Loader
  513.     ; ****************************
  514.     ;
  515.     (set addToMeter    1)
  516.     (incrementMeter)
  517.  
  518.     (if (= 0 (exists (tackon ADProLoadersDir "X")))
  519.         (
  520.          (set create_oldname    "RENDITION")
  521.         (set create_newname    "X")
  522.         (set create_type    "Loader")
  523.         (set create_dir        ADProLoadersDir)
  524.         (createModule)
  525.         )
  526.         (
  527.         (set patch_thisfile    "X")
  528.         (set patch_newname    patch_thisfile)
  529.         (set patch_dir        ADProLoadersDir)
  530.         (set patch_type        "Loader")
  531.         (set patch_curnum    1)
  532.         (set patch_maxnum    2)
  533.         (set patch_cksum_1    -1915921780)    ; 3.0.0 (r2.1.0, r2.1.5)
  534.         (set patch_cksum_2    1033339899)    ; 3.0.0 (r2.2.0)
  535.         (patchFile)
  536.         )
  537.     )
  538.  
  539.     ; ----------------------------
  540.     ; latest version:            ; 4.0.1 (r2.5.0)
  541.  
  542.  
  543.     ; ****************************
  544.     ; * Creating/Patching PICT Loader
  545.     ; ****************************
  546.     ;
  547.     (set addToMeter    1)
  548.     (incrementMeter)
  549.  
  550.     (if (= 0 (exists (tackon ADProLoadersDir "PICT")))
  551.         (
  552.         (set create_oldname    "RENDITION")
  553.         (set create_newname    "PICT")
  554.         (set create_type    "Loader")
  555.         (set create_dir        ADProLoadersDir)
  556.         (createModule)
  557.         )
  558.         (
  559.         (set patch_thisfile    "PICT")
  560.         (set patch_newname    patch_thisfile)
  561.         (set patch_dir        ADProLoadersDir)
  562.         (set patch_type        "Loader")
  563.         (set patch_curnum    1)
  564.         (set patch_maxnum    1)
  565.         (set patch_cksum_1    27806237)    ; 1.0.0 (r2.3.0)
  566.         (patchFile)
  567.         )
  568.     )
  569.  
  570.     ; ----------------------------
  571.     ; latest version:            ; 1.0.1 (r2.5.0)
  572.  
  573.  
  574.     ; ****************************
  575.     ; * Creating/Patching ALIAS Loader
  576.     ; ****************************
  577.     ;
  578.     (set addToMeter    1)
  579.     (incrementMeter)
  580.  
  581.     (set create_oldname    "RENDITION")
  582.     (set create_newname    "ALIAS")
  583.     (set create_type    "Loader")
  584.     (set create_dir        ADProLoadersDir)
  585.     (createModule)
  586.  
  587.     ; ----------------------------
  588.     ; latest version:            ; 1.0.1 (r2.5.0)
  589.  
  590.  
  591.     ; ****************************
  592.     ; * Creating/Patching SGI Loader
  593.     ; ****************************
  594.     ;
  595.     (set addToMeter    1)
  596.     (incrementMeter)
  597.  
  598.     (set create_oldname    "RENDITION")
  599.     (set create_newname    "SGI")
  600.     (set create_type    "Loader")
  601.     (set create_dir        ADProLoadersDir)
  602.     (createModule)
  603.  
  604.     ; ----------------------------
  605.     ; latest version:            ; 1.0.2 (r2.5.0)
  606.  
  607.  
  608.     ; ****************************
  609.     ; * Creating/Patching WAVEFRONT Loader
  610.     ; ****************************
  611.     ;
  612.     (set addToMeter    1)
  613.     (incrementMeter)
  614.  
  615.     (set create_oldname    "RENDITION")
  616.     (set create_newname    "WAVEFRONT")
  617.     (set create_type    "Loader")
  618.     (set create_dir        ADProLoadersDir)
  619.     (createModule)
  620.  
  621.     ; ----------------------------
  622.     ; latest version:            ; 1.0.1 (r2.5.0)
  623.  
  624.  
  625.  
  626.  
  627.     ; ****************************
  628.     ; * Patching TIFF Saver
  629.     ; ****************************
  630.     ;
  631.     (set addToMeter    1)
  632.     (incrementMeter)
  633.  
  634.     (set patch_thisfile    "TIFF")
  635.     (set patch_newname    patch_thisfile)
  636.     (set patch_dir        ADProSaversDir)
  637.     (set patch_type        "Saver")
  638.     (set patch_curnum    1)
  639.     (set patch_maxnum    6)
  640.     (set patch_cksum_1    -1780612422)    ; +++ (r1.0.2)
  641.     (set patch_cksum_2    1720074818)    ; 2.0.3 (r1.0.3)
  642.     (set patch_cksum_3    1124297027)    ; 3.0.3 (r2.0.0)
  643.     (set patch_cksum_4    1124362563)    ; 3.0.3 (r2.1.0, r2.1.5, r2.2.0)
  644.     (set patch_cksum_5    629023311)    ; 3.1.0 (r2.3.0)
  645.     (set patch_cksum_6    1643870817)    ; +++ (r2.3.0B)
  646.     (patchFile)
  647.  
  648.     ; ----------------------------
  649.     ; latest version:            ; 3.1.2 (r2.5.0)
  650.  
  651.  
  652.     ; ****************************
  653.     ; * Patching TARGA Saver
  654.     ; ****************************
  655.     ;
  656.     (set addToMeter    1)
  657.     (incrementMeter)
  658.  
  659.     (set patch_thisfile    "TARGA")
  660.     (set patch_newname    patch_thisfile)
  661.     (set patch_dir        ADProSaversDir)
  662.     (set patch_type        "Saver")
  663.     (set patch_curnum    1)
  664.     (set patch_maxnum    4)
  665.     (set patch_cksum_1    -2024131800)    ; +++ (r1.0.2)
  666.     (set patch_cksum_2    242601535)    ; 2.0.3 (r1.0.3)
  667.     (set patch_cksum_3    -1841823675)    ; 3.1.1 (r2.0.0)
  668.     (set patch_cksum_4    -1409949583)    ; 3.1.2 (r2.1.0, r2.1.5, r2.2.0)
  669.     (patchFile)
  670.  
  671.     ; ----------------------------
  672.     ; latest version:            ; 3.2.0 (r2.5.0)
  673.  
  674.  
  675.     ; ****************************
  676.     ; * Patching RENDITION Saver
  677.     ; ****************************
  678.     ;
  679.     (set addToMeter    1)
  680.     (incrementMeter)
  681.  
  682.     (set patch_thisfile    "RENDITION")
  683.     (set patch_newname    patch_thisfile)
  684.     (set patch_dir        ADProSaversDir)
  685.     (set patch_type        "Saver")
  686.     (set patch_curnum    1)
  687.     (set patch_maxnum    4)
  688.     (set patch_cksum_1    1939121335)    ; +++ (r1.0.2)
  689.     (set patch_cksum_2    -1958352664)    ; 2.0.3 (r1.0.3)
  690.     (set patch_cksum_3    1418874756)    ; 3.0.3 (r2.0.0)
  691.     (set patch_cksum_4    1418874757)    ; 3.0.3 (r2.1.0, r2.1.5, r2.2.0)
  692.     (patchFile)
  693.  
  694.     ; ----------------------------
  695.     ; latest version:            ; 3.1.0 (r2.5.0)
  696.  
  697.  
  698.     ; ****************************
  699.     ; * Creating/Patching SUNRASTER Saver
  700.     ; ****************************
  701.     ;
  702.     (set addToMeter    1)
  703.     (incrementMeter)
  704.  
  705.     (if (= 0 (exists (tackon ADProSaversDir "SUNRASTER")))
  706.         (
  707.         (set create_oldname    "RENDITION")
  708.         (set create_newname    "SUNRASTER")
  709.         (set create_type    "Saver")
  710.         (set create_dir        ADProSaversDir)
  711.         (createModule)
  712.         )
  713.         (
  714.         (set patch_thisfile    "SUNRASTER")
  715.         (set patch_newname    patch_thisfile)
  716.         (set patch_dir        ADProSaversDir)
  717.         (set patch_type        "Saver")
  718.         (set patch_curnum    1)
  719.         (set patch_maxnum    2)
  720.         (set patch_cksum_1    80549463)    ; 3.0.0 (r2.1.0, r.2.15)
  721.         (set patch_cksum_2    -1254807098)    ; 3.0.1 (r2.2.0)
  722.         (patchFile)
  723.         )
  724.     )
  725.  
  726.     ; ----------------------------
  727.     ; latest version:            ; 3.1.0 (r2.5.0)
  728.  
  729.  
  730.     ; ****************************
  731.     ; * Creating/Patching X Saver
  732.     ; ****************************
  733.     ;
  734.     (set addToMeter    1)
  735.     (incrementMeter)
  736.  
  737.     (if (= 0 (exists (tackon ADProSaversDir "X")))
  738.         (
  739.         (set create_oldname    "RENDITION")
  740.         (set create_newname    "X")
  741.         (set create_type    "Saver")
  742.         (set create_dir        ADProSaversDir)
  743.         (createModule)
  744.         )
  745.         (
  746.         (set patch_thisfile    "X")
  747.         (set patch_newname    patch_thisfile)
  748.         (set patch_dir        ADProSaversDir)
  749.         (set patch_type        "Saver")
  750.         (set patch_curnum    1)
  751.         (set patch_maxnum    3)
  752.         (set patch_cksum_1    1301953576)    ; 3.0.0 (r2.1.0, r2.1.5)
  753.         (set patch_cksum_2    -36548833)    ; 3.0.0 (r2.2.0)
  754.         (set patch_cksum_3    990072282)    ; 3.0.1 (r2.3.0)
  755.         (patchFile)
  756.         )
  757.     )
  758.  
  759.     ; ----------------------------
  760.     ; latest version:            ; 3.0.2 (r2.5.0)
  761.  
  762.  
  763.     ; ****************************
  764.     ; * Creating/Patching PICT Saver
  765.     ; ****************************
  766.     ;
  767.     (set addToMeter    1)
  768.     (incrementMeter)
  769.  
  770.     (if (= 0 (exists (tackon ADProSaversDir "PICT")))
  771.         (
  772.         (set create_oldname    "RENDITION")
  773.         (set create_newname    "PICT")
  774.         (set create_type    "Saver")
  775.         (set create_dir        ADProSaversDir)
  776.         (createModule)
  777.         )
  778.         (
  779.         (set patch_thisfile    "PICT")
  780.         (set patch_newname    patch_thisfile)
  781.         (set patch_dir        ADProLoadersDir)
  782.         (set patch_type        "Loader")
  783.         (set patch_curnum    1)
  784.         (set patch_cksum_1    141623904)    ; 1.0.0 (r2.3.0)
  785.         (patchFile)
  786.         )
  787.     )
  788.  
  789.     ; ----------------------------
  790.     ; latest version:            ; 1.0.1 (r2.5.0)
  791.  
  792.  
  793.     ; ****************************
  794.     ; * Creating/Patching ALIAS Saver
  795.     ; ****************************
  796.     ;
  797.     (set addToMeter    1)
  798.     (incrementMeter)
  799.  
  800.     (set create_oldname    "RENDITION")
  801.     (set create_newname    "ALIAS")
  802.     (set create_type    "Saver")
  803.     (set create_dir        ADProSaversDir)
  804.     (createModule)
  805.  
  806.     ; ----------------------------
  807.     ; latest version:            ; 1.0.0 (r2.5.0)
  808.  
  809.  
  810.     ; ****************************
  811.     ; * Creating/Patching SGI Saver
  812.     ; ****************************
  813.     ;
  814.     (set addToMeter    1)
  815.     (incrementMeter)
  816.  
  817.     (set create_oldname    "RENDITION")
  818.     (set create_newname    "SGI")
  819.     (set create_type    "Saver")
  820.     (set create_dir        ADProSaversDir)
  821.     (createModule)
  822.  
  823.     ; ----------------------------
  824.     ; latest version:            ; 1.0.2 (r2.5.0)
  825.  
  826.  
  827.     ; ****************************
  828.     ; * Creating/Patching WAVEFRONT Saver
  829.     ; ****************************
  830.     ;
  831.     (set addToMeter    1)
  832.     (incrementMeter)
  833.  
  834.     (set create_oldname    "RENDITION")
  835.     (set create_newname    "WAVEFRONT")
  836.     (set create_type    "Saver")
  837.     (set create_dir        ADProSaversDir)
  838.     (createModule)
  839.  
  840.     ; ----------------------------
  841.     ; latest version:            ; 1.0.0 (r2.5.0)
  842.     )
  843. )
  844.  
  845.  
  846. ; ****************************
  847. ; * EPSON Patch routine
  848. ; ****************************
  849. ;
  850. (procedure EPSONPatchInstall
  851.     (
  852.     ; ****************************
  853.     ; * Patching EPSON_SCAN / ESPON_ES300C Loader
  854.     ; ****************************
  855.     ;
  856.     (set addToMeter    1)
  857.     (incrementMeter)
  858.  
  859.     (if (= (exists (tackon ADProLoadersDir "EPSON_ES300C")) 1)
  860.         (
  861.         (protect (tackon ADProLoadersDir "EPSON_ES300C") "+rwed")
  862.         (rename (tackon ADProLoadersDir "EPSON_ES300C") (tackon ADProLoadersDir "EPSON_SCAN"))
  863.         )
  864.     )
  865.  
  866.     (set patch_thisfile    "EPSON_SCAN")
  867.     (set patch_newname    patch_thisfile)
  868.     (set patch_dir        ADProLoadersDir)
  869.     (set patch_type        "Loader")
  870.     (set patch_curnum    1)
  871.     (set patch_maxnum    4)
  872.     (set patch_cksum_1    477972192)    ; 2.1.0 (r???)
  873.     (set patch_cksum_2    539717622)    ; 2.2.0 (r???)
  874.     (set patch_cksum_3    -1329441256)    ; 3.0.1 (r???)
  875.     (set patch_cksum_4    1871690267)    ; 3.0.2 (r???)
  876.     (patchFile)
  877.     ; ----------------------------
  878.     ; latest version:
  879.     ;    (set patch_cksum_n    -196811803)    ; 3.0.3 ieee (r2.1.0-r2.2.0)
  880.     ;    (set patch_cksum_n+1    -529146241)    ; 3.0.3 m68881 (r2.1.0-r2.2.0)
  881.     )
  882. )
  883.  
  884.  
  885. ; ****************************
  886. ; * General CleanUp routine
  887. ; ****************************
  888. ;
  889. (procedure cleanUp
  890.     (
  891.     ; ****************************
  892.     ; * delete temporary files.
  893.     ; ****************************
  894.     ;
  895.     (set deleteFileName    "RAM:lhex")
  896.     (deleteIfExists)
  897.     (set deleteFileName    "RAM:lpatch")
  898.     (deleteIfExists)
  899.  
  900.     (set deleteFileName    "RAM:X.0.PCH")
  901.     (deleteIfExists)
  902.     (set deleteFileName    "RAM:SUNRASTER.0.PCH")
  903.     (deleteIfExists)
  904.     (set deleteFileName    "RAM:PICT.0.PCH")
  905.     (deleteIfExists)
  906.     (set deleteFileName    "RAM:ALIAS.0.PCH")
  907.     (deleteIfExists)
  908.     (set deleteFileName    "RAM:SGI.0.PCH")
  909.     (deleteIfExists)
  910.     (set deleteFileName    "RAM:WAVEFRONT.0.PCH")
  911.     (deleteIfExists)
  912.  
  913.  
  914.     ; ****************************
  915.     ; * exit the program.
  916.     ; ****************************
  917.     ;
  918.     (if (= DisplayReadMe 1)
  919.         (
  920.         (complete 100)
  921.         (exit)
  922.         )
  923.     )
  924.     )
  925. )
  926.  
  927.  
  928. ; *************************************************************************
  929. ; *                         ACTUAL START OF SCRIPT
  930. ; *
  931. ; * Ask all questions for the user now, do all of the work later.
  932. ; *************************************************************************
  933. ;
  934.  
  935. ; ****************************
  936. ; * set the default destination to SYS:<ProductBaseName>.
  937. ; ****************************
  938. ;
  939. (onerror
  940.     (cleanUp)
  941. )
  942.  
  943. ; ****************************
  944. ; * set the default destination to ADPRO: (if exists) or SYS:<ProductBaseName> (if it doesn't).
  945. ; ****************************
  946. ;
  947. (if (= (getassign "ADPRO" "a") "")
  948.     (set @default-dest "SYS:ADPro")
  949.     (set @default-dest (getassign "ADPRO" "a"))
  950. )
  951. ;(set @default-dest    "SYS:ADPro")
  952.  
  953. (setPkgOpts)
  954. (if (= PkgOpts 0)
  955.     (abort "You didn't select anything, so there is nothing to do.\n")
  956. )
  957.  
  958. (if (IN PkgOpts 0)                    ; if bit position 0 is on
  959.     (set TotalFiles        (+ TotalFiles 18))    ; 9 loaders + 9 savers
  960. )
  961.  
  962. (if (IN PkgOpts 1)                    ; if bit position 1 is on
  963.     (set TotalFiles        (+ TotalFiles 1))    ; 1 loader
  964. )
  965.  
  966. (set validDir FALSE)
  967. (while (NOT validDir)
  968.     (
  969.     (set setDirPathWhy    "where the ADPro (or MorphPlus) program is located.")
  970.     (set setDirPathHelp    "You must select the directory into which the ADPro (or MorphPlus) program was installed.\n")
  971.     (set DirPath        @default-dest)
  972.     (setDirPath)
  973.     (set ADProDir        DirPath)
  974.     (set @default-dest    ADProDir)
  975.  
  976.     (set ADProLoadersDir    (tackon ADProDir "Loaders2"))
  977.     (if (= (exists ADProLoadersDir) 0)
  978.         (message ("The %s directory does not exist.\n\nThis directory needs to be available for the patch process to succeed.\n" ADProLoadersDir))
  979.         (
  980.         (set ADProSaversDir    (tackon ADProDir "Savers2"))
  981.         (if (= (exists ADProSaversDir) 0)
  982.             (message ("The %s directory does not exist.\n\nThis directory needs to be available for the patch process to succeed.\n" ADProSaversDir))
  983.             (set validDir TRUE)
  984.         )
  985.         )
  986.     )
  987.     )
  988. )
  989.  
  990. (set TotalFiles    (+ TotalFiles 2))                ; lhex; lpatch
  991.  
  992.  
  993. (complete 0)
  994.  
  995. (message "\nShall I proceed with the installation?"
  996.     (help    "Once you press the Proceed button, the selected modules will be patched.  This is your last chance "
  997.         "to abort this procedure.\n"
  998.         "\n"
  999.         "After you press Proceed, you can use the Esc key to abort the patch procedure.\n")
  1000. )
  1001.  
  1002.  
  1003. ; ****************************
  1004. ; * copy lhex and lpatch to the RAM: directory.
  1005. ; ****************************
  1006. ;
  1007. (set addToMeter    2)
  1008. (incrementMeter)
  1009.  
  1010. (copyfiles
  1011.     (prompt "")
  1012.     (help "")
  1013.     (source ("%s:C/lhex" DiskPatches))
  1014.     (dest "RAM:")
  1015. )
  1016. (copyfiles
  1017.     (prompt "")
  1018.     (help "")
  1019.     (source ("%s:C/lpatch" DiskPatches))
  1020.     (dest "RAM:")
  1021. )
  1022. (if (OR (= (exists "RAM:lhex") 0) (= (exists "RAM:lpatch") 0))
  1023.     (abort    "Unable to copy necessary files to RAM:.\n"
  1024.         "\n"
  1025.         "Please make sure you have at least 100K of memory available before patching the modules.\n")
  1026. )
  1027.  
  1028.  
  1029. (if (IN PkgOpts 0)
  1030.     (PCPPatchInstall)
  1031. )
  1032. (if (IN PkgOpts 1)
  1033.     (EPSONPatchInstall)
  1034. )
  1035.  
  1036. (set DisplayReadMe    1)
  1037. (cleanUp)
  1038.