home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
opus
/
v4
/
dopus-dmsextract
/
extractdms.dopus
< prev
next >
Wrap
Text File
|
1996-08-06
|
3KB
|
108 lines
/*rx
*
* ExtractDMS.rexx - Entpackt alle selektierten DMS-Dateien im aktuellen
* Fenster auf HF-Disks. Die nötigen HF-Medien werden
* bei Bedarf selbstständig gemountet.
*
* $VER: ExtractDMS 40.005 (06 Aug 1996) by Torsten Enkelmann
*
* Usage: ARexx command ExtractDMS {F} (from DOpus)
*
* $HISTORY:
*
* 06 Aug 1996 : 040.005 : Extrahieren der DMS-Files
* 06 Aug 1996 : 040.004 : Anlegen der Mountlists und mounten der HF-Disks
* 06 Aug 1996 : 040.003 : Automatische Erkennung von DMS-Files eingebaut
* 06 Aug 1996 : 040.002 : Zweiter Versuch
* 06 Aug 1996 : 040.001 : Erster Versuch
*
*/
/*---------------NO USER SERVICABLE PARTS BELOW :-)----------------------------*/
/* misc. variables */
einheit = 0
DOpusPort = 'DOPUS.1'
if ~show(l,'rexxsupport.library') then
call addlib('rexxsupport.library',0,-30)
/* Sichergehen, das DOpus läuft... */
if showlist('Ports', DOpusPort) = 0 then do
say 'Directory Opus Arexx port nicht Gefunden. Abbruch.'
end
else do
/* Dopus ARexx Port ansprechen... */
address 'DOPUS.1'
options results
/* Übergebene Dateien parsen */
parse arg Dateien
/* Jetzt gehts los... */
do while Dateien ~= ''
/* Jede Datei einzeln herausholen */
parse var Dateien file Dateien
/* Die lästigen Anführungsstriche entfernen */
dummy=right(file,length(file)-1)
file=left(dummy,length(dummy)-1)
/* Und der Einfachheit halber alles in Großbuchstaben wandeln */
dummy=upper(file)
file=dummy
/* Kontrollieren, ob wir wirklich ein DMS-File haben */
if right(file,4) ~= '.DMS' then do
/* Wenn nicht, die nächste Datei kontrollieren */
iterate
end
/* Informationen in der DOpus Titelzeile ausgeben */
TopText "Extracting " || file || " ! Please wait..."
einheit = einheit +1
/* Kontrollieren, ob das benötigte HF-Medium schon gemountet ist */
if ~exists("HF" || einheit) then do
do while exists("T:mount." || einheit)
einheit = einheit + 1
end
call open(mountlist, "T:mount." || einheit,write)
call writeln(mountlist,"HF" || einheit || ": Device = fmsdisk.device")
call writeln(mountlist," Unit = " || einheit || "")
call writeln(mountlist," Flags = 1")
call writeln(mountlist," Surfaces = 2")
call writeln(mountlist," BlocksPerTrack = 11")
call writeln(mountlist," Reserved = 2")
call writeln(mountlist," Interleave = 0")
call writeln(mountlist," LowCyl = 0")
call writeln(mountlist," HighCyl = 79")
call writeln(mountlist," Buffers = 2")
call writeln(mountlist," BufMemType = 0")
call writeln(mountlist,"#")
call writeln(mountlist,"")
call close(mountlist)
address command "C:Mount hf" || einheit || ": from T:mount." || einheit || ""
address command "runback C:dms write " || file || " to hf" || einheit || ": NOTEXT NOPAUSE"
end
end
end
TopText "Fertig!"
EXIT