home *** CD-ROM | disk | FTP | other *** search
- .key COMMAND/A,DEVICE/A,TO/K,FILE,MODE/K,DISKBUF/K,PACKEFF/K,START/K,END/K,VERIFY/S,NOEJECT/S,VERBOSE/S,QUIET/S
- .bra {
- .ket }
-
- ; $VER zFX 1.0 (20.4.1998)
- ; xFX and GZip interface
- ;
- ; © 1998, Alessandro Pedretti
- ;
- ;
- ; Options:
- ; ~~~~~~~~
- ; COMMAND = COPY, READ, WRITE, CHECK, INFO
- ; DEVICE = Device name (AmigaDOS or DEVICE.device:UNIT)
- ; TO = Destination device for copy
- ; FILE = Input/output file for READ/WRITE commands
- ; MODE = Device mode (Std, SCSI, IEC)
- ; PACKEFF = GZip packing efficiency (1...9)
- ; DISKBUF = Disk buffer path for COPY
- ; START = Start cylinder (default 0)
- ; END = End cylinder (default last)
- ; VERIFY = Verifies cylinders during write operations
- ; NOEJECT = Inhibits auto disk eject
- ; VERBOSE = Explains all operations
- ; QUIET = Suppresses all messages
-
-
- ; PIPE: is mounted ?
-
- Assign PIPE: DEVICES EXISTS >NIL:
- If WARN
- Mount PIPE: >NIL:
- If WARN
- Echo "Can't mount PIPE:"
- Quit 20
- EndIf
- EndIf
-
- ; GZip is installed ?
-
- Which GZip >NIL:
- If WARN
- Echo "GZip not found"
- Quit 20
- EndIf
-
- ; Options:
-
- Set Err ""
- Set OPT ""
- Set PackErr "Illegal efficiency"
-
- If {COMMAND} EQ "READ"
- If {PACKEFF}
- If {PACKEFF} NOT GT 0 VAL
- Set Err $PackErr
- Else
- If {PACKEFF} GT 9 VAL
- Set Err $PackErr
- EndIf
- EndIf
- EndIf
- EndIf
-
- If "$Err" EQ ""
- If {MODE}
- Set OPT "MODE {MODE}"
- EndIf
-
- If {START}
- Set OPT "$OPT START {START}"
- EndIf
-
- If {END}
- Set OPT "$OPT END {END}"
- EndIf
-
- If {DISKBUF}
- Set OPT "$OPT DISKBUF {DISKBUF}"
- EndIf
-
- ; Action:
-
- If {COMMAND} EQ "READ"
- Run >NIL: GZip -cf{PACKEFF} <PIPE:xFX_Data.xfx/10240/1 >"{FILE}"
- FailAt 21
- xFX READ {DEVICE} PIPE:xFX_Data.xfx $OPT {NOEJECT} {VERBOSE} {QUIET}
-
- ; xFX fails ?
-
- If FAIL
- Break `Status COMMAND GZip`
- Delete "{FILE}" >NIL:
- Else
-
- ; Waiting GZip:
-
- Lab Loop
- Status COMMAND GZip >NIL:
- If NOT WARN
- Wait 1
- Skip Loop BACK
- EndIf
-
- Echo "Packed size: " NOLINE
- List "{FILE}" LFORMAT "%l bytes"
- EndIf
-
- Else
-
- If {COMMAND} EQ "WRITE"
- If NOT EXISTS {FILE}
- Echo "File not found"
- Else
- Run >NIL: GZip -cdf {FILE} >PIPE:xFX_Data.xfx/10240/1
- FailAt 21
- xFX WRITE {DEVICE} PIPE:xFX_Data.xfx FORCEWRT $OPT {VERIFY} {NOEJECT} {VERBOSE} {QUIET}
-
- ; xFX fails ?
-
- If FAIL
- Break `Status COMMAND GZip`
- Type PIPE:xFX_Data.xfx TO NIL:
- EndIf
- EndIf
- Else
- If {COMMAND} EQ "COPY"
- If {TO}
- xFX COPY {DEVICE} TO {TO} $OPT {NOEJECT} {VERBOSE} {QUIET}
- Else
- xFX COPY {DEVICE} $OPT {NOEJECT} {VERBOSE} {QUIET}
- EndIf
- Else
- xFX {COMMAND} {DEVICE} $OPT {NOEJECT} {VERBOSE} {QUIET}
- EndIf
- EndIf
- EndIf
- Else
- Echo "ERROR: $Err"
- EndIf
-
- UnSet Err
- UnSet OPT
- UnSet PackErr
-