.bra {
.ket }

;$VER: DiskSqueeze v1.22, 1/10/96

Resident >NIL: C:RequestChoice PURE
Resident >NIL: C:RequestFile PURE
If NOT EXISTS ENV:DSQ
 If NOT EXISTS ENVARC:DSQ
  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)"`
  If $DSQbit EQ "1"
    LAB PathSelect
    RequestFile >ENV:DSQ DRAWER RAM: PATTERN ~(#?.info) DRAWERSONLY NEGATIVE T: TITLE "Select Temporary Path"
    If WARN
     SetEnv DSQ T:
    EndIf
  else
   SetEnv DSQ T:
   Skip MEMCHK
  EndIf
 else
  Copy >NIL: ENVARC:DSQ TO ENV:
 EndIf
EndIf
If NOT EXISTS $DSQ
 RequestChoice >NIL: "DiskSqueeze Error Message" "WARNING!*nYour default temporary-storage*npath is non-existant ..." "Choose Other Path"
 Skip PathSelect BACK
Endif
LAB MEMCHK
Set DSQbit `Avail flush total`
If NOT $DSQbit VAL GT 2000000
 If "$DSQ" EQ "T:"
  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"
  Skip PathSelect BACK
 else
  If "$DSQ" EQ "RAM:"
   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"
   Skip PathSelect BACK
  EndIf
 EndIf
EndIf
If NOT EXISTS ENV:LZX
 Which LZX >env:lzx
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'LZX' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If NOT EXISTS ENV:DirII
 Which DirII >env:dirii
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'DirII' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If NOT EXISTS ENV:DiskCopy
 Which DiskCopy >env:diskcopy
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'DiskCopy' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If NOT EXISTS ENV:GetChars
 Which Getchars >env:getchars
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'GetChars' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If NOT EXISTS ENV:disktype
 Which disktype >env:disktype
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'DiskType' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If NOT EXISTS ENV:PathName
 Which PathName >env:pathname
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'PathName' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If EXISTS L:lzx.keyfile
 Set LZXr 1
else 
 Set LZXr 0
EndIf
If NOT EXISTS ENV:ChDir
 Which ChDir >env:ChDir
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'ChDir' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
If NOT EXISTS ENV:PackDev
 Which PackDev >ENV:packdev
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Can't find 'PackDev' tool...*nCheck docs for troubleshooting!" "Quit"
  Skip Quit
 EndIf
EndIf
Resident >NIL: C:Delete PURE
Resident >NIL: C:Type PURE
If NOT $DSQbit VAL GT 2000000
 Assign >NIL: DH0: EXISTS
 If WARN
  Set DSQbit `RequestChoice "DiskSqueeze 1.22 © 1996 Dirk VAEL" "Do you wanna ± avoid constant disk-access ?*n   (at the expense of ±110 K of RAM...)" "Yes" "No"`
  If $DSQbit EQ "1"
   Set DSQm 1
   Resident >NIL: C:Resident PURE
   Resident >NIL: C:Assign PURE
   Resident >NIL: C:Eval PURE
   Resident >NIL: $DiskCopy
   Resident >NIL: $DirII PURE
   Resident >NIL: $LZX PURE
   Resident >NIL: $PathName
   Resident >NIL: $DiskType
   Resident >NIL: $GetChars
   Resident >NIL: $PackDev
  EndIf
 EndIf
EndIf
Set DSQload RAM:
Set DSQsave RAM:

LAB Init
Cd $DSQ
Delete #?.dsq File_ID.DIZ FORCE >NIL:
Set DSQact `RequestChoice "DiskSqueeze 1.22 © 1996 Dirk VAEL - Main Menu" "Select Action" "Pack" "UnPack" "View" "Test" "Convert" "Quit"`
If $DSQact EQ "0"
 Skip Quit
EndIf
If $DSQact EQ "1"
Skip PACK
EndIf
If $DSQact EQ "2"
 Skip UNPACK
EndIf
If $DSQact EQ "3"
 Skip VIEW
EndIf
If $DSQact EQ "4"
 Skip TEST
EndIf
If $DSQact EQ "5"
 Skip CONVERT
EndIf


LAB Pack
Set DSQbit `RequestChoice "DiskSqueeze 1.22 © 1996 Dirk VAEL - Pack Menu" "Select Device to Pack" "DF0:" "DF1:" "DF2:" "DF3:" "RAD:" "RAD2:" "CUSTOM" "Main Menu"`
If $DSQbit EQ "0"
 Skip Init BACK
EndIf
LAB Devices
If $DSQbit EQ "5"
 Assign >NIL: RAD: EXISTS
 If WARN
  Set DSQbit2 `Avail flush total`
  If $DSQbit2 VAL GT 2000000
   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"
   If NOT $DSQ EQ "T:"
    If NOT $DSQ EQ "RAM:"
     Mount RAD: FROM RAM:ErrLog >NIL:
     Skip RADok
    else
     If $DSQbit2 VAL GT 3000000
      Mount RAD: FROM RAM:ErrLog >NIL:
      Skip RADok
     EndIf
    EndIf
   EndIf
   Mount RAD: FROM RAM:ErrLog >NIL:
  else
   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"
    If $DSQact EQ "1"
     Skip Pack BACK
    EndIf
    If $DSQact EQ "2"
     Skip UnPack3
    EndIf
   EndIf
  EndIf
LAB RADok
 Set DSQdrv RAD:
 Skip DEX
EndIf
If $DSQbit EQ "6"
 Assign RAD2: EXISTS >NIL:
 If WARN
  Set DSQbit2 `Avail total`
  If $DSQbit2 VAL GT 2000000
   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"
   If NOT $DSQ EQ "T:"
    If NOT $DSQ EQ "RAM:"
     Mount RAD2: FROM RAM:ErrLog >NIL:
     Skip RAD2ok
    else
     If $DSQbit2 VAL GT 3000000
      Mount RAD2: FROM RAM:ErrLog >NIL:
      Skip RAD2ok
     EndIf
    EndIf
   EndIf
   Mount RAD2: FROM RAM:ErrLog >NIL:
  else
   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"
   If $DSQact EQ "1"
    Skip Pack BACK
   EndIf
   If $DSQact EQ "2"
    Skip UnPack3
   EndIf
  EndIf
 EndIf
LAB RAD2ok
 Set DSQdrv RAD2:
 Skip DEX
EndIf
If $DSQbit EQ "7"
 If NOT EXISTS ENV:DSQusr
  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, you have not defined a custom device (see docs)" "Choose Other Device"
  If $DSQact EQ "1"
   Skip Pack BACK
  EndIf
  If $DSQact EQ "2"
   Skip UnPack3
  EndIf
 EndIf
 Set DSQdrv $DSQusr
 Skip DEX
EndIf
Set DSQbit2 `Eval $DSQbit - 1`
Set DSQdrv DF$DSQbit2:
LAB DEX
Assign >NIL: $DSQdrv EXISTS
If WARN
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, your Amiga cannot allocate the specified device...!" "Choose Other Device"
 If $DSQact EQ "1"
  Skip Pack BACK
 EndIf
 If $DSQact EQ "2"
  Skip UnPack3
 EndIf
EndIf
If $DSQact EQ "2"
 Skip UnPack4
EndIf
LAB MIX
$DiskType $DSQdrv
Set DSQflip $rc
If $DSQflip EQ 10
 Echo "No Disk!"
 Set DSQflip `RequestChoice "DiskSqueeze - Urgent Question :-)" "Please Insert a Disk in Device $DSQdrv NOW!" "Ok" "Re-select"`
 If $DSQflip EQ 0
  Skip Pack BACK
 EndIf
 Skip MIX BACK
EndIf
If $DSQflip EQ 5
; Requestchoice >NIL: "dsq" "NDOS!" "OK"
 Set DSQbit 1
 Skip SWEETY
EndIf
Set DSQbit `RequestChoice "DiskSqueeze - Packing Question" "Is the disk using a mixed filesystem ?" "Yes" "No" "Help" "Back"`
LAB SWEETY
If $DSQbit EQ "0"
 If $DSQact EQ "5"
  Skip Convert
 else
  Skip Pack BACK
 EndIf
EndIf
If $DSQbit EQ "1"
 Set DSQpdf ALL
EndIf
If $DSQbit EQ "2"
 Set DSQpdf "NV"
EndIf
If $DSQbit EQ "3"
 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"
 Skip MIX BACK
EndIf
LAB Beavis
Echo "[41;32mDiskSqueeze 1.22 - © 1996 Dirk VAEL[0m"
Echo ""
Echo "[42m» Remember to press CTRL-C to abort current actions! «[0m"
Echo ""
Echo "Reading and storing disk image from the [33m$DSQdrv[0m drive ... Please wait!"
$PackDev $DSQdrv Image.dsq NC F TN $DSQpdf >RAM:ErrLog
If ERROR
 Type RAM:ErrLog
 RequestChoice >NIL: "DiskSqueeze Error (see output)" "Sorry, a disk read-error has occured...*nIs the disk readable and/or present in the drive ?" "Abort"
 If $DSQact EQ "5"
  Skip Convert
 else
  Skip Pack BACK
 EndIf
EndIf
If NOT EXISTS Image.dsq
 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"`
 If $DSQbit EQ "1"
  Skip Beavis BACK
 else
  Skip Pack BACK
 EndIf
EndIf
If NOT $DSQbit2 EQ Y
 Set DSQbit `RequestChoice "DiskSqueeze Question" "Do you want add a filelist to the archive?" "Yes" "No"`
 If $DSQbit EQ "0"
  Echo "[32mNo filelist added to archive...[0m"
  Skip txtfile
 else
  $DiskType $DSQdrv >NIL:
  If NOT WARN
   Echo "[32mAdding filelist to archive... Hold on ![0m"
   Set DSQbit `$DiskType $DSQdrv `
   $DirII >Files.dsq all sizes width=64 "$DSQbit:"
   Echo "Done..."
  else
   Echo "[32mNo standard DOS disk : no filelist added to archive...[0m"
  EndIf
 EndIf
EndIf
If EXISTS Files.dsq
 Set DSQbit `$DirII Files.dsq LFORMAT %l`
 If $DSQbit VAL EQ 0
  Delete >NIL: Files.dsq FORCE
  Echo "[32m(Empty) filelist removed from archive...[0m"
  If NOT $DSQpdf EQ "ALL"
   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"`
   If $DSQbit EQ "1"
    Set DSQpdf "ALL"
    Set DSQbit2 Y
    Skip Beavis BACK
   EndIf
  EndIf
 EndIf
EndIf
LAB txtfile
Set DSQbit `RequestChoice "DiskSqueeze Question" "Do you want add a File_ID.DIZ to the archive?" "Yes" "No"`
If $DSQbit EQ "0"
 Echo "[32mNo File_ID.DIZ added to archive...[0m"
 Skip ReqDSQfile
else
 Set DSQbit2 ":"
 Set DSQbit2 `RequestFile DRAWER "$DSQload" NEGATIVE Abort TITLE "Select File_ID.DIZ"`
 If "$DSQbit2" EQ ":"
  Set DSQbit `RequestChoice "DiskSqueeze Confirm" "Are you sure to abort packing ?" "YES, main menu" "NO, continue !"`
  If $DSQbit EQ "1"
   Skip Init BACK
  else
   Skip txtfile BACK
  EndIf
 EndIf
 Type $DSQbit2 >File_ID.DIZ
EndIf
Echo "[32mFile_ID.DIZ added to archive...[0m"
LAB ReqDSQfile
Set DSQdst ":"
Set DSQdst `RequestFile DRAWER "$DSQsave" FILE ".dsq" PATTERN "~(#?.info)#?.dsq" NEGATIVE Abort TITLE "Select Destination File"`
If "$DSQdst" EQ ":"
 Set DSQbit `RequestChoice "DiskSqueeze Confirm" "Are you sure to abort packing ?" "YES, main menu" "NO, continue !"`
 If $DSQbit EQ "1"
  Skip Init BACK
 else
  Skip ReqDSQfile BACK
 EndIf
EndIf
If EXISTS $DSQdst
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, that name already exists, try another one!" "Ok, sorry for that!"
 Skip ReqDSQfile BACK
EndIf
Set DSQsave `$PathName "$DSQdst"`
Set DSQbit `Avail total flush`
If $DSQbit VAL GE 3000000
 If NOT $LZXr EQ 0
  $LZX -m -3 -bo930 -X0 -U0 -Qf af "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
 else
  $LZX -m -3 -bo930 -X0 -U0 a "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
 EndIf
else
 If NOT $DSQbit VAL GE 1000000
  If NOT $LZXr EQ 0
   $LZX -m -3 -bo32 -X0 -U0 -Qf af "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  else
   $LZX -m -3 -X0 -U0 a "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  EndIf
 else
  If NOT $LZXr EQ 0
   $LZX -m -3 -bo256 -X0 -U0 -Qf af "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  else
   $LZX -m -3 -bo256 -X0 -U0 a "$DSQdst" (Image.dsq|Files.dsq|File_ID.DIZ)
  EndIf
 EndIf
EndIf
If WARN
 RequestChoice >NIL: "DiskSqueeze Error Message" "Problems packing disk image...*nIs your LZX keyfile valid?" "Main Menu"
 Skip Init BACK
EndIf
If $DSQact EQ "5"
 Skip ConvertEnd
EndIf
Set DSQbit `$DirII "$DSQdst" LFORMAT %l`
If NOT $DSQbit VAL GT 10
 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"
else
 RequestChoice >NIL: "DiskSqueeze Result" "The disk was squeezed into $DSQbit bytes!" "Ok"
EndIf
Echo ""
Skip Init BACK

LAB UnPack
Set DSQdst ":"
Set DSQdst `RequestFile DRAWER "$DSQload" FILE " " PATTERN "~(#?.info)#?(.dsq|.DMS)" NEGATIVE "Main Menu" TITLE "Select DSQ/DMS archive"`
If "$DSQdst" EQ ":"
 Skip Init BACK
EndIf
If NOT EXISTS "$DSQdst"
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
 Skip UnPack BACK
EndIf
Set DSQload `$PathName $DSQdst`
LAB UnPack2
If "`$GetChars "$DSQdst" 46 4`" EQ ".dsq"
 Set DSQpdf .dsq
 Skip UnpackDSQ
else
 If "`$GetChars "$DSQdst" 46 4`" EQ "ID.D"
  Set DSQpdf .dsq
  Skip UnpackDSQ
 EndIf
 If "`$GetChars "$DSQdst" 0 4`" EQ "DMS!"
  Set DSQpdf DMS!
  Echo "[41;32mDiskSqueeze 1.22 - © 1996 Dirk VAEL[0m"
  Echo ""
  Echo "Disk Masher System archive (DMS) detected"
  Echo ""
  Assign >NIL: DM0: EXISTS
  If WARN
   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"
   Mount DM0: FROM RAM:ErrLog >NIL:
  EndIf
  Assign >NIL: DM0: EXISTS
  If WARN
   RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, cannot allocate the specified device...*n  Make sure the device-handler is present !" "Abort"
   Skip Init BACK
  EndIf
  Set DSQbit `Echo $DSQdst`
  $ChDir 0 $DSQbit
  Skip UnPack3
  LAB DMSwrite
  Echo ""
  Echo "Press [41;32mRETURN[0m to recreate the DMS-archive using the [33m$DSQdrv[0m drive ..."
  $DiskCopy DM0: $DSQdrv NOVERIFY >RAM:Errlog
  If ERROR
   Type RAM:ErrLog
   Skip Hoola
   $ChDir 0 "" >NIL:
  else
   $ChDir 0 "" >NIL:
   Skip Finished
  EndIf
 else
  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, archive-type not supported" "Choose Other"
  Skip UnPack BACK
 EndIf
EndIf
LAB UnpackDSQ
Echo "[41;32mDiskSqueeze 1.22 - © 1996 Dirk VAEL[0m"
Echo ""
Echo "DiskSqueeze archive (DSQ) detected"
Echo ""
Echo "UnPacking disk-image... Hold on!"
Echo ""
Echo "[42m» Remember to press CTRL-C to abort current actions! «[0m"
Set DSQbit `Avail flush total`
If $DSQbit VAL GT 4000000
 $LZX -m -F -X0 -bo930 x "$DSQdst" $DSQ (Image.dsq|File_ID.DIZ)
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Problems unpacking disk-image...*nPlease test archive integrity !" "Back"
  Skip UnPack BACK
 EndIf
else
 $LZX -m -F -X0 x "$DSQdst" $DSQ (Image.dsq|File_ID.DIZ)
 If WARN
  RequestChoice >NIL: "DiskSqueeze Error Message" "Problems unpacking disk-image...*nPlease test archive integrity !" "Back"
  Skip UnPack BACK
 EndIf
EndIf
LAB UnPack3
Set DSQbit `RequestChoice "DiskSqueeze 1.22 - © 1996 Dirk VAEL - UnPack Menu" "Select Device to UnPack to (RAD-drives automounted)" "DF0:" "DF1:" "DF2:" "DF3:" "RAD:" "RAD2:" "CUSTOM" "Back"`
If $DSQbit EQ "0"
 Skip UnPack BACK
else
 Skip Devices BACK
EndIf
LAB UnPack4
If NOT EQ $DSQdrv "RAD:"
 If NOT EQ $DSQdrv "RAD2:"
  RequestChoice >NIL: "DiskSqueeze Message" "Insert destination disk in floppy-drive $DSQdrv" "Ok"
 EndIf
EndIf
$DiskType $DSQdrv >NIL:
If ERROR
 RequestChoice >NIL: "DiskSqueeze Message" "Hey, I told you to insert a disk in floppy-drive $DSQdrv!" "Okay!"
EndIf
If $DSQpdf EQ "DMS!"
 Skip DMSwrite BACK
EndIf
If EXISTS File_ID.DIZ
 Echo ""
 Type File_ID.DIZ
EndIf
Echo "[42m» Writing disk-image to $DSQdrv... Hold on![0m"
$PackDev Image.dsq $DSQdrv NC TN NVF ETDF >RAM:ErrLog
If ERROR
 Type RAM:ErrLog
 Skip Hoola
else
 Skip Finished
EndIf
LAB Hoola
 If NOT $DSQdrv EQ "RAD:"
  If NOT $DSQdrv EQ "RAD2:"
   $DiskType $DSQdrv >NIL:
   If WARN
    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"`
    If $DSQbit EQ "1"
     If $DSQpdf EQ ".dsq"
      Skip UnPack4 BACK
     else
      Skip DMSwrite BACK
     EndIf
    else
     RequestChoice >NIL: "DiskSqueeze Error Message" "      Some obscure error occured...*n*nSuggest you test your media & the archive" "Abort"
     Skip Init BACK
    EndIf
   EndIf
  else
   RequestChoice >NIL: "DiskSqueeze Error Message" "      Some obscure error occured...*n*nSuggest you test your ram hardware & ramdrive.device" "Abort"
   Skip Init BACK
  EndIf
 else
  RequestChoice >NIL: "DiskSqueeze Error Message" "      Some obscure error occured...*n*nSuggest you test your ram hardware & ramdrive.device" "Abort"
  Skip Init BACK
 EndIf
EndIf
LAB Finished
Echo "[32mUnpacking process finished...[0m"
Skip Init BACK

LAB View
Set DSQdst ":"
Set DSQdst `RequestFile DRAWER "$DSQload" FILE ".dsq" PATTERN "~(#?.info)#?.dsq" NEGATIVE "Main Menu" TITLE "VIEW: Select DSQ Archive"`
If "$DSQdst" EQ ":"
 Skip Init BACK
EndIf
If NOT EXISTS "$DSQdst"
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
 Skip View BACK
EndIf
Set DSQload `$PathName "$DSQdst"`
If NOT "`$GetChars "$DSQdst" 46 4`" EQ ".dsq"
 If NOT "`$GetChars "$DSQdst" 46 4`" EQ "ID.D"
  RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, that's not a DiskSqueeze archive!" "Choose Other"
  Skip View BACK
 EndIf
EndIf
$LZX -q -X0 -m x "$DSQdst" (Files.dsq|File_ID.DIZ) $DSQ
If NOT EXISTS Files.dsq
 If EXISTS File_ID.DIZ
  Echo ""
  Type File_ID.DIZ
 EndIf
 RequestChoice >NIL: "DiskSqueeze FileList Information" "No filelist was found in the archive." "Choose Other"
 Skip View BACK
else
 If NOT EXISTS ENV:More
  Set More `Which More`
  If WARN
   RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, unable to locate the 'More' textviewer !" "Main Menu"
   Skip Init BACK
  EndIf
 else
  $More Files.dsq
 EndIf
EndIf
If EXISTS File_ID.DIZ
 Echo "" 
 Type File_ID.DIZ
 Delete File_ID.DIZ
EndIf
Delete #?.dsq >NIL:
Skip View BACK

LAB Test
Set DSQdst ":"
Set DSQdst `RequestFile DRAWER "$DSQload" FILE ".dsq" PATTERN "~(#?.info)#?.dsq" NEGATIVE "Main Menu" TITLE "TEST: Select DSQ Archive"`
If "$DSQdst" EQ ":"
 Skip Init BACK
EndIf
Set DSQload `$PathName "$DSQdst"`
If NOT EXISTS "$DSQdst"
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
 Skip Test BACK
EndIf
If "`GetChars "$DSQdst" 46 4`" EQ "ID.D"
 Skip Begin
else
 If "`GetChars "$DSQdst" 46 4`" EQ ".dsq"
  Skip Begin
 EndIf
EndIf
RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, that's not a DiskSqueeze archive!" "Choose Other"
Skip Test BACK
LAB Begin
Echo "[41;32mDiskSqueeze 1.22 - © 1996 Dirk VAEL[0m"
Echo ""
Echo Testing DiskSqueeze archive [32m$DSQdst[0m ...
Echo ""
Echo "[42m» Remember to press CTRL-C to abort current actions! «[0m"
Echo ""
Echo "Pass 1 ... " NOLINE
$LZX -F -X0 t "$DSQdst" >RAM:ErrLog
If ERROR
 Echo "[42mFAILED[0m"
 Type RAM:ErrLog
 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!"
 Skip Test BACK
else
 Echo "[43;32mcompleted - archive LZX integrity OK[0m"
EndIf
Echo ""
Echo "Pass 2 ... " NOLINE
If $DSQmav VAL GT 4000000
 $LZX -q -m -X0 -bo930 x "$DSQdst" $DSQ Image.dsq
else
 $LZX -q -m -X0 x "$DSQdst" $DSQ Image.dsq
EndIf
$PackDev TESTFILE Image.dsq NC TN >RAM:ErrLog
If ERROR
 Echo "[42mFAILED[0m"
 Type RAM:ErrLog
 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!"
else
 Echo "[43;32mcompleted - disk-image integrity OK[0m"
 Echo ""
 Echo ""
 Echo Archive [32m$DSQdst[0m was tested successfully.
EndIf
Skip Test BACK

LAB Convert
Set DSQbit ":"
Set DSQbit `RequestFile DRAWER "$DSQload" PATTERN "~(#?.info)#?(.DMS)" FILE " " NEGATIVE "Main Menu" TITLE "CONVERT: Select DMS Archive"`
If "$DSQbit" EQ ":"
 Skip Init BACK
EndIf
Set DSQload `$PathName "$DSQbit"`
If NOT EXISTS "$DSQbit"
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, couldn't find that file...*nMake sure you enter the right name!" "Choose Other"
 Skip Convert BACK
EndIf
If NOT "`Getchars "$DSQbit"`" EQ "DMS"
 RequestChoice >NIL: "DiskSqueeze Error Message" "Sorry, archive-type not supported" "Ok"
 Skip Convert BACK
EndIf
Assign >NIL: DM0: EXISTS
If WARN
 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"
 Mount DM0: FROM RAM:ErrLog
EndIf
Assign >NIL: DM0: EXISTS
If WARN
 RequestChoice >NIL: "DiskSqueeze Error Message" "Can't mount DMS-handler !*n Check Docs for troubleshooting!" "Main Menu"
 Skip Init BACK
EndIf
Set DSQorg `$DirII "$DSQbit" LFormat %l`
Set DSQdst `Echo "$DSQbit"`
Echo "[41;32mDiskSqueeze 1.22 - © 1996 Dirk VAEL[0m"
Echo ""
Echo "Disk Masher System archive (DMS) detected"
Echo ""
$CHDIR 0 $DSQdst
Set DSQdrv DM0:
Skip MIX BACK
LAB ConvertEnd
Set DSQbit `$DirII "$DSQdst" LFormat %l`
Set DSQbit2 `Eval $DSQorg - $DSQbit`
Set DSQdst `Eval $DSQbit2 * 100 / $DSQorg`
RequestChoice >NIL: "DiskSqueeze Results" "Original DMS archive : $DSQorg bytes*nDiskSqueeze archive  : $DSQbit bytes*n*nDiskSqueeze gain: $DSQdst% = $DSQbit2 bytes" "Ok"
If DSQdrv EQ "DM0:"
$ChDir 0 "" >NIL:
EndIf
Skip Init BACK

LAB Quit
Resident >NIL: RequestChoice REMOVE
Resident >NIL: RequestFile REMOVE
Delete >NIL: RAM:ErrLog FORCE
Assign DM0: DISMOUNT
If $DSQm EQ "1"
 Resident >NIL: $DirII REMOVE
 Resident >NIL: $LZX REMOVE
 Resident >NIL: $PackDev REMOVE
 Resident >NIL: Eval REMOVE
 Resident >NIL: Assign REMOVE
 Resident >NIL: $DiskType REMOVE
 Resident >NIL: $GetChars REMOVE
 Resident >NIL: Resident REMOVE
 UnSet DSQm
EndIf
Resident >NIL: Type REMOVE
Resident >NIL: Delete REMOVE
UnSet DSQorg
UnSet DSQbit
UnSet DSQbit2
UnSet DSQact
UnSet DSQdst
UnSet DSQpdf
UnSet DSQdrv
UnSet LZXr
