home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 98 / af098sub.adf / disksqueeze.LZX / DiskSqueeze / DiskSqueeze < prev    next >
Text File  |  1997-04-03  |  23KB  |  725 lines

  1. .bra {
  2. .ket }
  3.  
  4. ;$VER: DiskSqueeze v1.23, 4/4/97
  5.  
  6. Resident >NIL: C:RequestChoice PURE
  7. Resident >NIL: C:RequestFile PURE
  8. If NOT EXISTS ENV:DSQ
  9.  If NOT EXISTS ENVARC:DSQ
  10.   Set DSQbit `RequestChoice "DiskSqueeze Message" "WARNING!*nCould not find 'DSQ' file in your ENV: or ENVARC: dir...*nUsing default T: directory (= RAM) for temporary storage" "Choose Other Path" "Continue (T: is fine)"`
  11.   If $DSQbit EQ "1"
  12.     LAB PathSelect
  13.     RequestFile >ENV:DSQ DRAWER RAM: PATTERN ~(#?.info) DRAWERSONLY NEGATIVE T: TITLE "Select Temporary Path"
  14.     If WARN
  15.      SetEnv DSQ T:
  16.     EndIf
  17.   else
  18.    SetEnv DSQ T:
  19.    Skip MEMCHK
  20.   EndIf
  21.  else
  22.   Copy >NIL: ENVARC:DSQ TO ENV:
  23.  EndIf
  24. EndIf
  25. If NOT EXISTS $DSQ
  26.  RequestChoice >NIL: "DiskSqueeze Error Message" "WARNING!*nYour default temporary-storage*npath is non-existant ..." "Choose Other Path"
  27.  Skip PathSelect BACK
  28. Endif
  29. LAB MEMCHK
  30. Set DSQbit `Avail flush total`
  31. If NOT $DSQbit VAL GT 2000000
  32.  If "$DSQ" EQ "T:"
  33.   RequestChoice >NIL: "DiskSqueeze Message" "WARNING!*nMemory too low to use T: (RAM) as temporary storage directory!*nRead docs carefully to use DiskSqueeze anyway..." "Choose Other Path"
  34.   Skip PathSelect BACK
  35.  else
  36.   If "$DSQ" EQ "RAM:"
  37.    RequestChoice >NIL: "DiskSqueeze Message" "WARNING!*nMemory too low to use RAM: as temporary storage directory!*nRead docs carefully to use DiskSqueeze anyway..." "Choose Other Path"
  38.    Skip PathSelect BACK
  39.   EndIf
  40.  EndIf
  41. EndIf
  42. If NOT EXISTS ENV:LZX
  43.  Which LZX >env:lzx
  44.  If WARN
  45.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'LZX' tool...*nCheck docs for troubleshooting!" "Quit"
  46.   Skip Quit
  47.  EndIf
  48. EndIf
  49. If NOT EXISTS ENV:DirII
  50.  Which DirII >env:dirii
  51.  If WARN
  52.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'DirII' tool...*nCheck docs for troubleshooting!" "Quit"
  53.   Skip Quit
  54.  EndIf
  55. EndIf
  56. If NOT EXISTS ENV:DiskCopy
  57.  Which DiskCopy >env:diskcopy
  58.  If WARN
  59.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'DiskCopy' tool...*nCheck docs for troubleshooting!" "Quit"
  60.   Skip Quit
  61.  EndIf
  62. EndIf
  63. If NOT EXISTS ENV:GetChars
  64.  Which Getchars >env:getchars
  65.  If WARN
  66.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'GetChars' tool...*nCheck docs for troubleshooting!" "Quit"
  67.   Skip Quit
  68.  EndIf
  69. EndIf
  70. If NOT EXISTS ENV:disktype
  71.  Which disktype >env:disktype
  72.  If WARN
  73.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'DiskType' tool...*nCheck docs for troubleshooting!" "Quit"
  74.   Skip Quit
  75.  EndIf
  76. EndIf
  77. If NOT EXISTS ENV:PathName
  78.  Which PathName >env:pathname
  79.  If WARN
  80.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'PathName' tool...*nCheck docs for troubleshooting!" "Quit"
  81.   Skip Quit
  82.  EndIf
  83. EndIf
  84. If EXISTS L:lzx.keyfile
  85.  Set LZXr 1
  86. else 
  87.  Set LZXr 0
  88. EndIf
  89. If NOT EXISTS ENV:ChDir
  90.  Which ChDir >env:ChDir
  91.  If WARN
  92.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'ChDir' tool...*nCheck docs for troubleshooting!" "Quit"
  93.   Skip Quit
  94.  EndIf
  95. EndIf
  96. If NOT EXISTS ENV:PackDev
  97.  Which PackDev >ENV:packdev
  98.  If WARN
  99.   RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'PackDev' tool...*nCheck docs for troubleshooting!" "Quit"
  100.   Skip Quit
  101.  EndIf
  102. EndIf
  103. Resident >NIL: C:Delete PURE
  104. Resident >NIL: C:Type PURE
  105. If NOT $DSQbit VAL GT 2000000
  106.  Assign >NIL: DH0: EXISTS
  107.  If WARN
  108.   Set DSQbit `RequestChoice "DiskSqueeze 1.23 © 1997 Dirk VAEL" "Do you wanna ± avoid constant disk-access ?*n   (at the expense of ±110 K of RAM...)" "Yes" "No"`
  109.   If $DSQbit EQ "1"
  110.    Set DSQm 1
  111.    Resident >NIL: C:Resident PURE
  112.    Resident >NIL: C:Assign PURE
  113.    Resident >NIL: C:Eval PURE
  114.    Resident >NIL: $DiskCopy
  115.    Resident >NIL: $DirII PURE
  116.    Resident >NIL: $LZX PURE
  117.    Resident >NIL: $PathName
  118.    Resident >NIL: $DiskType
  119.    Resident >NIL: $GetChars
  120.    Resident >NIL: $PackDev
  121.   EndIf
  122.  EndIf
  123. EndIf
  124. Set DSQload RAM:
  125. Set DSQsave RAM:
  126.  
  127. LAB Init
  128. Cd $DSQ
  129. Delete #?.dsq File_ID.DIZ FORCE >NIL:
  130. Set DSQact `RequestChoice "DiskSqueeze 1.23 © 1997 Dirk VAEL - Main Menu" "Select Action" "Pack" "UnPack" "View" "Test" "Convert" "Quit"`
  131. If $DSQact EQ "0"
  132.  Skip Quit
  133. EndIf
  134. If $DSQact EQ "1"
  135. Skip PACK
  136. EndIf
  137. If $DSQact EQ "2"
  138.  Skip UNPACK
  139. EndIf
  140. If $DSQact EQ "3"
  141.  Skip VIEW
  142. EndIf
  143. If $DSQact EQ "4"
  144.  Skip TEST
  145. EndIf
  146. If $DSQact EQ "5"
  147.  Skip CONVERT
  148. EndIf
  149.  
  150.  
  151. LAB Pack
  152. Set DSQbit `RequestChoice "DiskSqueeze 1.23 © 1997 Dirk VAEL - Pack Menu" "Select Device to Pack" "DF0:" "DF1:" "DF2:" "DF3:" "RAD:" "RAD2:" "CUSTOM" "Main Menu"`
  153. If $DSQbit EQ "0"
  154.  Skip Init BACK
  155. EndIf
  156. LAB Devices
  157. If $DSQbit EQ "5"
  158.  Assign >NIL: RAD: EXISTS
  159.  If WARN
  160.   Set DSQbit2 `Avail flush total`
  161.   If $DSQbit2 VAL GT 2000000
  162.    Echo >RAM:ErrLog "RAD:*ndevice=ramdrive.device*nunit=0*nflags=0*nsurfaces=2*nblockspertrack=11*nsectorsize=512*nreserved=2*ninterleave=0*nlowcyl=0*nhighcyl=79*nbuffers=5*nbufmemtype=1"
  163.    If NOT $DSQ EQ "T:"
  164.     If NOT $DSQ EQ "RAM:"
  165.      Mount RAD: FROM RAM:ErrLog >NIL:
  166.      Skip RADok
  167.     else
  168.      If $DSQbit2 VAL GT 3000000
  169.       Mount RAD: FROM RAM:ErrLog >NIL:
  170.       Skip RADok
  171.      EndIf
  172.     EndIf
  173.    EndIf
  174.    Mount RAD: FROM RAM:ErrLog >NIL:
  175.   else
  176.    RequestChoice >NIL: "DiskSqueeze Memory Error (only $DSQbit2 bytes allocated)" "Sorry, not enough RAM available to use device 'RAD:'!*nTry using a disk based temporary storage to free RAM." "Back"
  177.     If $DSQact EQ "1"
  178.      Skip Pack BACK
  179.     EndIf
  180.     If $DSQact EQ "2"
  181.      Skip UnPack3
  182.     EndIf
  183.    EndIf
  184.   EndIf
  185. LAB RADok
  186.  Set DSQdrv RAD:
  187.  Skip DEX
  188. EndIf
  189. If $DSQbit EQ "6"
  190.  Assign RAD2: EXISTS >NIL:
  191.  If WARN
  192.   Set DSQbit2 `Avail total`
  193.   If $DSQbit2 VAL GT 2000000
  194.    Echo >RAM:ErrLog "RAD2:*ndevice=ramdrive.device*nunit=1*nflags=0*nsurfaces=2*nblockspertrack=11*nsectorsize=512*nreserved=2*ninterleave=0*nlowcyl=0*nhighcyl=79*nbuffers=5*nbufmemtype=1"
  195.    If NOT $DSQ EQ "T:"
  196.     If NOT $DSQ EQ "RAM:"
  197.      Mount RAD2: FROM RAM:ErrLog >NIL:
  198.      Skip RAD2ok
  199.     else
  200.      If $DSQbit2 VAL GT 3000000
  201.       Mount RAD2: FROM RAM:ErrLog >NIL:
  202.       Skip RAD2ok
  203.      EndIf
  204.     EndIf
  205.    EndIf
  206.    Mount RAD2: FROM RAM:ErrLog >NIL:
  207.   else
  208.    RequestChoice >NIL: "DiskSqueeze Memory Error (only $DSQbit2 bytes allocated)" "Sorry, not enough RAM available to use device 'RAD2:'!*nTry using a disk based temporary storage to free RAM." "Back"
  209.    If $DSQact EQ "1"
  210.     Skip Pack BACK
  211.    EndIf
  212.    If $DSQact EQ "2"
  213.     Skip UnPack3
  214.    EndIf
  215.   EndIf
  216.  EndIf
  217. LAB RAD2ok
  218.  Set DSQdrv RAD2:
  219.  Skip DEX
  220. EndIf
  221. If $DSQbit EQ "7"
  222.  If NOT EXISTS ENV:DSQusr
  223.   RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, you have not defined a custom device (see docs)" "Choose Other Device"
  224.   If $DSQact EQ "1"
  225.    Skip Pack BACK
  226.   EndIf
  227.   If $DSQact EQ "2"
  228.    Skip UnPack3
  229.   EndIf
  230.  EndIf
  231.  Set DSQdrv $DSQusr
  232.  Skip DEX
  233. EndIf
  234. Set DSQbit2 `Eval $DSQbit - 1`
  235. Set DSQdrv DF$DSQbit2:
  236. LAB DEX
  237. Assign >NIL: $DSQdrv EXISTS
  238. If WARN
  239.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, your Amiga cannot allocate the specified device...!" "Choose Other Device"
  240.  If $DSQact EQ "1"
  241.   Skip Pack BACK
  242.  EndIf
  243.  If $DSQact EQ "2"
  244.   Skip UnPack3
  245.  EndIf
  246. EndIf
  247. If $DSQact EQ "2"
  248.  Skip UnPack4
  249. EndIf
  250. LAB MIX
  251. $DiskType $DSQdrv
  252. Set DSQflip $rc
  253. If $DSQflip EQ 10
  254.  Echo "No Disk!"
  255.  Set DSQflip `RequestChoice "DiskSqueeze - Urgent Question :-)" "Please Insert a Disk in Device $DSQdrv NOW!" "Ok" "Re-select"`
  256.  If $DSQflip EQ 0
  257.   Skip Pack BACK
  258.  EndIf
  259.  Skip MIX BACK
  260. EndIf
  261. If $DSQflip EQ 5
  262. ; Requestchoice >NIL: "dsq" "NDOS!" "OK"
  263.  Set DSQbit 1
  264.  Skip SWEETY
  265. EndIf
  266. Set DSQbit `RequestChoice "DiskSqueeze - Packing Question" "Is the disk using a mixed filesystem ?" "Yes" "No" "Help" "Back"`
  267. LAB SWEETY
  268. If $DSQbit EQ "0"
  269.  If $DSQact EQ "5"
  270.   Skip Convert
  271.  else
  272.   Skip Pack BACK
  273.  EndIf
  274. EndIf
  275. If $DSQbit EQ "1"
  276.  Set DSQpdf ALL
  277. EndIf
  278. If $DSQbit EQ "2"
  279.  Set DSQpdf ""
  280. EndIf
  281. If $DSQbit EQ "3"
  282.  RequestChoice >NIL: "DiskSqueeze Info" "A mixed filesystem means that the disk (which*nis about to be packed) is using a combination*nof normal AmigaDOS (directories & files)+AND+*ntrackdisk instructions (fastloader or special*nbootblock which contain specific instructions*nto load a menu, intro or data). Simply check*nthe contents of the disk, and if there's only*nfew bytes used, although the program is quite*nbig, it's almost certainly such a rare 'mixed*nfilesystem' disk. Read docs for further info." "Back"
  283.  Skip MIX BACK
  284. EndIf
  285. LAB Beavis
  286. Echo " DiskSqueeze 1.23 - © 1997 Dirk VAEL"
  287. Echo ""
  288. Echo "» Remember to press CTRL-C to abort current actions! «"
  289. Echo ""
  290. Echo "Reading and storing disk image from the $DSQdrv drive ... Please wait!"
  291. $PackDev $DSQdrv Image.dsq NC F TN $DSQpdf >RAM:ErrLog
  292. If ERROR
  293.  Type RAM:ErrLog
  294.  RequestChoice >NIL: "DiskSqueeze Error (see output)" "Sorry, a disk read-error has occured...*nIs the disk readable and/or present in the drive ?" "Abort"
  295.  If $DSQact EQ "5"
  296.   Skip Convert
  297.  else
  298.   Skip Pack BACK
  299.  EndIf
  300. EndIf
  301. If NOT EXISTS Image.dsq
  302.  Set DSQbit `RequestChoice "DiskSqueeze Error Message (CTRL-C pushed?)" "Couldn't load the image from the disk ! *n*nIs there really a disk in device $DSQdrv ?*n*n                 AND/OR*n*n Is the disk readable on your system ?" "Retry" "Abort"`
  303.  If $DSQbit EQ "1"
  304.   Skip Beavis BACK
  305.  else
  306.   Skip Pack BACK
  307.  EndIf
  308. EndIf
  309. If NOT $DSQbit2 EQ Y
  310.  Set DSQbit `RequestChoice "DiskSqueeze Question" "Do you want add a filelist to the archive?" "Yes" "No"`
  311.  If $DSQbit EQ "0"
  312.   Echo "No filelist added to archive..."
  313.   Skip txtfile
  314.  else
  315.   $DiskType $DSQdrv >NIL:
  316.   If NOT WARN
  317.    Echo "Adding filelist to archive... Hold on !"
  318.    Set DSQbit `$DiskType $DSQdrv `
  319.    $DirII >Files.dsq all sizes width=64 "$DSQbit:"
  320.    Echo "Done..."
  321.   else
  322.    Echo "No standard DOS disk : no filelist added to archive..."
  323.   EndIf
  324.  EndIf
  325. EndIf
  326. If EXISTS Files.dsq
  327.  Set DSQbit `$DirII Files.dsq LFORMAT %l`
  328.  If $DSQbit VAL EQ 0
  329.   Delete >NIL: Files.dsq FORCE
  330.   Echo "(Empty) filelist removed from archive..."
  331.   If NOT $DSQpdf EQ "ALL"
  332.    Set DSQbit `RequestChoice "DiskSqueeze IMPORTANT Reminder Message" "         ! ! ! ! !  W A R N I N G  ! ! ! ! !*n*nSince this disk is probably using a mixed filesystem,*nyou should've selected the 'Mixed FileSystem' option,*n       This option is currently NOT enabled !!*nThe archive WILL be faulty if option isn't selected !*n*nShall I re-read the disk as a mixed filesystem-disk ?" "YES, please do!" "NO, ignore this"`
  333.    If $DSQbit EQ "1"
  334.     Set DSQpdf "ALL"
  335.     Set DSQbit2 Y
  336.     Skip Beavis BACK
  337.    EndIf
  338.   EndIf
  339.  EndIf
  340. EndIf
  341. LAB txtfile
  342. Set DSQbit `RequestChoice "DiskSqueeze Question" "Do you want add a File_ID.DIZ to the archive?" "Yes" "No"`
  343. If $DSQbit EQ "0"
  344.  Echo "No File_ID.DIZ added to archive..."
  345.  Skip ReqDSQfile
  346. else
  347.  Set DSQbit2 ":"
  348.  Set DSQbit2 `RequestFile DRAWER "$DSQload" NEGATIVE Abort TITLE "Select File_ID.DIZ"`
  349.  If "$DSQbit2" EQ ":"
  350.   Set DSQbit `RequestChoice "DiskSqueeze Confirm" "Are you sure to abort packing ?" "YES, main menu" "NO, continue !"`
  351.   If $DSQbit EQ "1"
  352.    Skip Init BACK
  353.   else
  354.    Skip txtfile BACK
  355.   EndIf
  356.  EndIf
  357.  Type $DSQbit2 >File_ID.DIZ
  358. EndIf
  359. Echo "File_ID.DIZ added to archive..."
  360. LAB ReqDSQfile
  361. Set DSQdst ":"
  362. Set DSQdst `RequestFile DRAWER "$DSQsave" FILE ".dsq" PATTERN "~(#?.info)#?.dsq" NEGATIVE Abort TITLE "Select Destination File"`
  363. If "$DSQdst" EQ ":"
  364.  Set DSQbit `RequestChoice "DiskSqueeze Confirm" "Are you sure to abort packing ?" "YES, main menu" "NO, continue !"`
  365.  If $DSQbit EQ "1"
  366.   Skip Init BACK
  367.  else
  368.   Skip ReqDSQfile BACK
  369.  EndIf
  370. EndIf
  371. If EXISTS $DSQdst
  372.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, that name already exists, try another one!" "Ok, sorry for that!"
  373.  Skip ReqDSQfile BACK
  374. EndIf
  375. Set DSQsave `$PathName "$DSQdst"`
  376. Set DSQbit `Avail total flush`
  377. If $DSQbit VAL GE 3000000
  378.  If NOT $LZXr EQ 0
  379.   $LZX -m -3 -bo930 -X0 -U0 -Qf af "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  380.  else
  381.   $LZX -m -3 -bo930 -X0 -U0 a "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  382.  EndIf
  383. else
  384.  If NOT $DSQbit VAL GE 1000000
  385.   If NOT $LZXr EQ 0
  386.    $LZX -m -3 -bo32 -X0 -U0 -Qf af "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  387.   else
  388.    $LZX -m -3 -X0 -U0 a "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  389.   EndIf
  390.  else
  391.   If NOT $LZXr EQ 0
  392.    $LZX -m -3 -bo256 -X0 -U0 -Qf af "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  393.   else
  394.    $LZX -m -3 -bo256 -X0 -U0 a "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  395.   EndIf
  396.  EndIf
  397. EndIf
  398. If WARN
  399.  RequestChoice >NIL: "DiskSqueeze Error Message" "Problems packing disk image...*nIs your LZX keyfile valid?" "Main Menu"
  400.  Skip Init BACK
  401. EndIf
  402. If $DSQact EQ "5"
  403.  Skip ConvertEnd
  404. EndIf
  405. Set DSQbit `$DirII "$DSQdst" LFORMAT %l`
  406. If NOT $DSQbit VAL GT 10
  407.  RequestChoice >NIL: "DiskSqueeze Error Message (did you push 'CTRL-C' ?)" "Something went definitely wrong while packing or saving !*nSuggest you check the output window + involved devices...*n   Also make sure you have enough free RAM (read docs)" "Main Menu"
  408. else
  409.  RequestChoice >NIL: "DiskSqueeze Result" "The disk was squeezed into $DSQbit bytes!" "Ok"
  410. EndIf
  411. Echo " "
  412. Skip Init BACK
  413.  
  414. LAB UnPack
  415. Set DSQdst ":"
  416. Set DSQdst `RequestFile DRAWER "$DSQload" FILE " " PATTERN "~(#?.info)#?(.dsq|.DMS)" NEGATIVE "Main Menu" TITLE "Select DSQ/DMS archive"`
  417. If "$DSQdst" EQ ":"
  418.  Skip Init BACK
  419. EndIf
  420. If NOT EXISTS "$DSQdst"
  421.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
  422.  Skip UnPack BACK
  423. EndIf
  424. Set DSQload `$PathName $DSQdst`
  425. LAB UnPack2
  426. If "`$GetChars "$DSQdst" 46 4`" EQ ".dsq"
  427.  Set DSQpdf .dsq
  428.  Skip UnpackDSQ
  429. else
  430.  If "`$GetChars "$DSQdst" 46 4`" EQ "ID.D"
  431.   Set DSQpdf .dsq
  432.   Skip UnpackDSQ
  433.  EndIf
  434.  If "`$GetChars "$DSQdst" 0 4`" EQ "DMS!"
  435.   Set DSQpdf DMS!
  436.   Echo " DiskSqueeze 1.23 - © 1997 Dirk VAEL"
  437.   Echo ""
  438.   Echo "Disk Masher System archive (DMS) detected"
  439.   Echo ""
  440.   Assign >NIL: DM0: EXISTS
  441.   If WARN
  442.    Echo >RAM:ErrLog "DM0:*ndevice=dms.device*nunit=0*nflags=0*nsurfaces=2*nblockspertrack=11*nreserved=2*ninterleave=0*nlowcyl=0*nhighcyl=79*nbuffers=30*nbufmemtype=1"
  443.    Mount DM0: FROM RAM:ErrLog >NIL:
  444.   EndIf
  445.   Assign >NIL: DM0: EXISTS
  446.   If WARN
  447.    RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, cannot allocate the specified device...*n  Make sure the device-handler is present !" "Abort"
  448.    Skip Init BACK
  449.   EndIf
  450.   Set DSQbit `Echo $DSQdst`
  451.   $ChDir 0 $DSQbit
  452.   Skip UnPack3
  453.   LAB DMSwrite
  454.   Echo ""
  455.   Echo "Press RETURN to recreate the DMS-archive using the $DSQdrv drive ..."
  456.   $DiskCopy DM0: $DSQdrv NOVERIFY >RAM:Errlog
  457.   If ERROR
  458.    Type RAM:ErrLog
  459.    Skip Hoola
  460.    $ChDir 0 "" >NIL:
  461.   else
  462.    $ChDir 0 "" >NIL:
  463.    Skip Finished
  464.   EndIf
  465.  else
  466.   RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, archive-type not supported" "Choose Other"
  467.   Skip UnPack BACK
  468.  EndIf
  469. EndIf
  470. LAB UnpackDSQ
  471. Echo " DiskSqueeze 1.23 - © 1997 Dirk VAEL"
  472. Echo ""
  473. Echo "DiskSqueeze archive (DSQ) detected"
  474. Echo ""
  475. Echo "UnPacking disk-image... Hold on!"
  476. Echo ""
  477. Echo "» Remember to press CTRL-C to abort current actions! «"
  478. Set DSQbit `Avail flush total`
  479. If $DSQbit VAL GT 4000000
  480.  $LZX -m -F -X0 -bo930 x "$DSQdst" $DSQ (Image.dsq|File_ID.DIZ)
  481.  If WARN
  482.   RequestChoice >NIL: "DiskSqueeze Error Message" "Problems unpacking disk-image...*nPlease test archive integrity !" "Back"
  483.   Skip UnPack BACK
  484.  EndIf
  485. else
  486.  $LZX -m -F -X0 x "$DSQdst" $DSQ (Image.dsq|File_ID.DIZ)
  487.  If WARN
  488.   RequestChoice >NIL: "DiskSqueeze Error Message" "Problems unpacking disk-image...*nPlease test archive integrity !" "Back"
  489.   Skip UnPack BACK
  490.  EndIf
  491. EndIf
  492. LAB UnPack3
  493. Set DSQbit `RequestChoice "DiskSqueeze 1.23 - © 1997 Dirk VAEL - UnPack Menu" "Select Device to UnPack to (RAD-drives automounted)" "DF0:" "DF1:" "DF2:" "DF3:" "RAD:" "RAD2:" "CUSTOM" "Back"`
  494. If $DSQbit EQ "0"
  495.  Skip UnPack BACK
  496. else
  497.  Skip Devices BACK
  498. EndIf
  499. LAB UnPack4
  500. If NOT EQ $DSQdrv "RAD:"
  501.  If NOT EQ $DSQdrv "RAD2:"
  502.   RequestChoice >NIL: "DiskSqueeze Message" "Insert destination disk in floppy-drive $DSQdrv" "Ok"
  503.  EndIf
  504. EndIf
  505. $DiskType $DSQdrv >NIL:
  506. If ERROR
  507.  RequestChoice >NIL: "DiskSqueeze Message" "Hey, I told you to insert a disk in floppy-drive $DSQdrv!" "Okay!"
  508. EndIf
  509. If $DSQpdf EQ "DMS!"
  510.  Skip DMSwrite BACK
  511. EndIf
  512. If EXISTS File_ID.DIZ
  513.  Echo " "
  514.  Type File_ID.DIZ
  515. EndIf
  516. Echo "» Writing disk-image to $DSQdrv... Hold on!"
  517. $PackDev Image.dsq $DSQdrv NC TN NVF ETDF >RAM:ErrLog
  518. If ERROR
  519.  Type RAM:ErrLog
  520.  Skip Hoola
  521. else
  522.  Skip Finished
  523. EndIf
  524. LAB Hoola
  525.  If NOT $DSQdrv EQ "RAD:"
  526.   If NOT $DSQdrv EQ "RAD2:"
  527.    $DiskType $DSQdrv >NIL:
  528.    If WARN
  529.     Set DSQbit `RequestChoice "DiskSqueeze Error (see output)" "  Couldn't write the image to disk !*n*nMake sure there is a disk in drive $DSQdrv" "Retry" "Abort"`
  530.     If $DSQbit EQ "1"
  531.      If $DSQpdf EQ ".dsq"
  532.       Skip UnPack4 BACK
  533.      else
  534.       Skip DMSwrite BACK
  535.      EndIf
  536.     else
  537.      RequestChoice >NIL: "DiskSqueeze Error Message" "      Some obscure error occured...*n*nSuggest you test your media & the archive" "Abort"
  538.      Skip Init BACK
  539.     EndIf
  540.    EndIf
  541.   else
  542.    RequestChoice >NIL: "DiskSqueeze Error Message" "      Some obscure error occured...*n*nSuggest you test your ram hardware & ramdrive.device" "Abort"
  543.    Skip Init BACK
  544.   EndIf
  545.  else
  546.   RequestChoice >NIL: "DiskSqueeze Error Message" "      Some obscure error occured...*n*nSuggest you test your ram hardware & ramdrive.device" "Abort"
  547.   Skip Init BACK
  548.  EndIf
  549. EndIf
  550. LAB Finished
  551. Echo "Unpacking process finished..."
  552. Skip Init BACK
  553.  
  554. LAB View
  555. Set DSQdst ":"
  556. Set DSQdst `RequestFile DRAWER "$DSQload" FILE ".dsq" PATTERN "~(#?.info)#?.dsq" NEGATIVE "Main Menu" TITLE "VIEW: Select DSQ Archive"`
  557. If "$DSQdst" EQ ":"
  558.  Skip Init BACK
  559. EndIf
  560. If NOT EXISTS "$DSQdst"
  561.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
  562.  Skip View BACK
  563. EndIf
  564. Set DSQload `$PathName "$DSQdst"`
  565. If NOT "`$GetChars "$DSQdst" 46 4`" EQ ".dsq"
  566.  If NOT "`$GetChars "$DSQdst" 46 4`" EQ "ID.D"
  567.   RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, that's not a DiskSqueeze archive!" "Choose Other"
  568.   Skip View BACK
  569.  EndIf
  570. EndIf
  571. $LZX -q -X0 -m x "$DSQdst" (Files.dsq|File_ID.DIZ) $DSQ
  572. If NOT EXISTS Files.dsq
  573.  If EXISTS File_ID.DIZ
  574.   Echo " "
  575.   Type File_ID.DIZ
  576.  EndIf
  577.  RequestChoice >NIL: "DiskSqueeze FileList Information" "No filelist was found in the archive." "Choose Other"
  578.  Skip View BACK
  579. else
  580.  If NOT EXISTS ENV:More
  581.   Set More `Which More`
  582.   If WARN
  583.    RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, unable to locate the 'More' textviewer !" "Main Menu"
  584.    Skip Init BACK
  585.   EndIf
  586.  else
  587.   $More Files.dsq
  588.  EndIf
  589. EndIf
  590. If EXISTS File_ID.DIZ
  591.  Echo " " 
  592.  Type File_ID.DIZ
  593.  Delete File_ID.DIZ
  594. EndIf
  595. Delete #?.dsq >NIL:
  596. Skip View BACK
  597.  
  598. LAB Test
  599. Set DSQdst ":"
  600. Set DSQdst `RequestFile DRAWER "$DSQload" FILE ".dsq" PATTERN "~(#?.info)#?.dsq" NEGATIVE "Main Menu" TITLE "TEST: Select DSQ Archive"`
  601. If "$DSQdst" EQ ":"
  602.  Skip Init BACK
  603. EndIf
  604. Set DSQload `$PathName "$DSQdst"`
  605. If NOT EXISTS "$DSQdst"
  606.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
  607.  Skip Test BACK
  608. EndIf
  609. If "`GetChars "$DSQdst" 46 4`" EQ "ID.D"
  610.  Skip Begin
  611. else
  612.  If "`GetChars "$DSQdst" 46 4`" EQ ".dsq"
  613.   Skip Begin
  614.  EndIf
  615. EndIf
  616. RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, that's not a DiskSqueeze archive!" "Choose Other"
  617. Skip Test BACK
  618. LAB Begin
  619. Echo " DiskSqueeze 1.23 - © 1997 Dirk VAEL"
  620. Echo ""
  621. Echo Testing DiskSqueeze archive $DSQdst ...
  622. Echo ""
  623. Echo "» Remember to press CTRL-C to abort current actions! «"
  624. Echo ""
  625. Echo "Pass 1 ... " NOLINE
  626. $LZX -F -X0 t "$DSQdst" >RAM:ErrLog
  627. If ERROR
  628.  Echo "FAILED"
  629.  Type RAM:ErrLog
  630.  RequestChoice >NIL: "DiskSqueeze Error Message" "LZX encountered difficulties while testing compressed disk-image...!*n      Check DiskSqueeze output window for error-description(s)*n*n    If you simply pressed CTRL-C, forget about this error report" "Oops!"
  631.  Skip Test BACK
  632. else
  633.  Echo "completed - archive LZX integrity OK"
  634. EndIf
  635. Echo ""
  636. Echo "Pass 2 ... " NOLINE
  637. If $DSQmav VAL GT 4000000
  638.  $LZX -q -m -X0 -bo930 x "$DSQdst" $DSQ Image.dsq
  639. else
  640.  $LZX -q -m -X0 x "$DSQdst" $DSQ Image.dsq
  641. EndIf
  642. $PackDev TESTFILE Image.dsq NC TN >RAM:ErrLog
  643. If ERROR
  644.  Echo "FAILED"
  645.  Type RAM:ErrLog
  646.  RequestChoice >NIL: "DiskSqueeze Error Message" "PackDev encountered difficulties while testing uncompressed disk-image...!*n         Check DiskSqueeze output window for error-description(s)*n*n       If you simply pressed CTRL-C, forget about this error report" "Oops!"
  647. else
  648.  Echo "completed - disk-image integrity OK"
  649.  Echo ""
  650.  Echo ""
  651.  Echo Archive $DSQdst was tested successfully.
  652. EndIf
  653. Skip Test BACK
  654.  
  655. LAB Convert
  656. Set DSQbit ":"
  657. Set DSQbit `RequestFile DRAWER "$DSQload" PATTERN "~(#?.info)#?(.DMS)" FILE " " NEGATIVE "Main Menu" TITLE "CONVERT: Select DMS Archive"`
  658. If "$DSQbit" EQ ":"
  659.  Skip Init BACK
  660. EndIf
  661. Set DSQload `$PathName "$DSQbit"`
  662. If NOT EXISTS "$DSQbit"
  663.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
  664.  Skip Convert BACK
  665. EndIf
  666. If NOT "`Getchars "$DSQbit"`" EQ "DMS"
  667.  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, archive-type not supported" "Ok"
  668.  Skip Convert BACK
  669. EndIf
  670. Assign >NIL: DM0: EXISTS
  671. If WARN
  672.  Echo >RAM:ErrLog "dm0:*ndevice=dms.device*nunit=0*nflags=0*nsurfaces=2*nblockspertrack=11*nreserved=2*ninterleave=0*nlowcyl=0*nhighcyl=79*nbuffers=30*nbufmemtype=1"
  673.  Mount DM0: FROM RAM:ErrLog
  674. EndIf
  675. Assign >NIL: DM0: EXISTS
  676. If WARN
  677.  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't mount DMS-handler !*n Check Docs for troubleshooting!" "Main Menu"
  678.  Skip Init BACK
  679. EndIf
  680. Set DSQorg `$DirII "$DSQbit" LFormat %l`
  681. Set DSQdst `Echo "$DSQbit"`
  682. Echo " DiskSqueeze 1.23 - © 1997 Dirk VAEL"
  683. Echo ""
  684. Echo "Disk Masher System archive (DMS) detected"
  685. Echo ""
  686. $CHDIR 0 $DSQdst
  687. Set DSQdrv DM0:
  688. Skip MIX BACK
  689. LAB ConvertEnd
  690. Set DSQbit `$DirII "$DSQdst" LFormat %l`
  691. Set DSQbit2 `Eval $DSQorg - $DSQbit`
  692. Set DSQdst `Eval $DSQbit2 * 100 / $DSQorg`
  693. RequestChoice >NIL: "DiskSqueeze Results" "Original DMS archive : $DSQorg bytes*nDiskSqueeze archive  : $DSQbit bytes*n*nDiskSqueeze gain: $DSQdst% = $DSQbit2 bytes" "Ok"
  694. If DSQdrv EQ "DM0:"
  695. $ChDir 0 "" >NIL:
  696. EndIf
  697. Skip Init BACK
  698.  
  699. LAB Quit
  700. Resident >NIL: RequestChoice REMOVE
  701. Resident >NIL: RequestFile REMOVE
  702. Delete >NIL: RAM:ErrLog FORCE
  703. Assign DM0: DISMOUNT
  704. If $DSQm EQ "1"
  705.  Resident >NIL: $DirII REMOVE
  706.  Resident >NIL: $LZX REMOVE
  707.  Resident >NIL: $PackDev REMOVE
  708.  Resident >NIL: Eval REMOVE
  709.  Resident >NIL: Assign REMOVE
  710.  Resident >NIL: $DiskType REMOVE
  711.  Resident >NIL: $GetChars REMOVE
  712.  Resident >NIL: Resident REMOVE
  713.  UnSet DSQm
  714. EndIf
  715. Resident >NIL: Type REMOVE
  716. Resident >NIL: Delete REMOVE
  717. UnSet DSQorg
  718. UnSet DSQbit
  719. UnSet DSQbit2
  720. UnSet DSQact
  721. UnSet DSQdst
  722. UnSet DSQpdf
  723. UnSet DSQdrv
  724. UnSet LZXr
  725.