|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 96768 (0x17a00) Types: TextFile Names: »flyttx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system └─⟦a957ba283⟧ └─ ⟦this⟧ »flyttx «
begin <* flyt flytter filer fra en disc til en anden, med bevarelse af entrybase og permanent-key. kald: * * flyt ( disc.<nydisc> ( <filnavn> ) ) 1 1 <nydisc> navnet på disc der skal flyttes til. <filnavn> den pågældende fil flyttes til <nydisc> Der skal altid angives disc.<nydisc> som første parameter efter programnavnet. Efterfølgende <filnavne> flyttes til den pågældende disc. Det er muligt at angive flere disc-filnavne sekvenser i samme programkald f.eks. vil: flyt disc.disc1 fil1 fil2 fil3 disc.disc2 fil4 fil5 flytte fil1, fil2 og fil3 til disc1 og fil4 og fil5 til disc2. Ændringshistorie: ================= 930611 cl Original version. *> \f boolean testbit1; integer argc; argc:=fpparmantal+1; testbit1:= false; begin integer array partype(0:argc), parval(1:4*(argc+1)), ia,gltail,nytail(1:10),glhead(1:17),zd(1:20); integer i, j, maxpar; integer fclo, fchi, freecore, zsize, hw; long fsize, b; integer array field iaf; long array field laf,doc; long array docname(1:2); zone zhelp(1,1,stderror); doc:=2; docname(1):=docname(2):= long<::>; maxpar:=fpparmliste(partype,parval); fclo:=system(15,fchi,ia); freecore:= (if fclo > fchi then fclo else fchi) - 16384; zsize:= freecore // 2048; if zsize < 1 then zsize:= 1; begin zone zin,zud(128*2*zsize,2,stderror); for i:= 2 step 1 until maxpar do begin iaf:=laf:= i*8; <* write(out,<<dd>,i,<:: :>,<< dd>,partype(i) shift (-12), partype(i) extract 12,"sp",1,parval.laf,"nl",1); *> if partype(i)=(5 shift 12 + 4) <* <sp><navn> *> and parval.laf(1)=long<:disc:> and partype(i+1)=(7 shift 12 + 4) then <*ingenting*> else if partype(i)=(7 shift 12 + 4) <* .<navn> *> and partype(i-1)=(5 shift 12 + 4) and parval.laf(-1)=long<:disc:> then begin tofrom(docname,parval.laf,8); if docname(1) extract 8=0 then docname(2):=long<::>; end else begin if docname(1)=long<::> then begin write(out,<:*** flyt: discnavn skal angives før første filnavn!:>); flushout(10); goto slut; end; open(zin,4,parval.laf,0); j:=monitor(42)lookup_entry:(zin,0,gltail); if j=0 then begin monitor(76)lookup_headandtail:(zin,0,glhead); tofrom(nytail,gltail,20); tofrom(nytail.doc,docname,8); open(zud,4,<::>,0); j:=monitor(40)create_entry:(zud,0,nytail); if j<>0 then begin write(out,<:*** :>,parval.laf,<: kunne ikke oprettes på :>, docname,<:, monitor-result=:>,<<d>,j); flushout(10); close(zin,true); goto next; end; if testbit1 then begin getzone6(zud,zd); write(out,zd.doc,<: oprettet på :>,docname,<: ok:>); flushout(10); end; j:=monitor(50)permanent_entry:(zud,glhead(1) extract 3,ia); if j<>0 then begin write(out,<:*** :>,parval.laf, <: kunne ikke oprettes med permkey :>, <<d>,glhead(1) extract 3,<:, monitor-result=:>,<<d>,j); flushout(10); monitor(48)remove_entry:(zud,0,ia); close(zin,true); close(zud,true); goto next; end; if testbit1 then begin write(out,zd.doc,<: permanent :>,<<d>,glhead(1) extract 3,<: ok:>); flushout(10); end; ia(1):=glhead(2); ia(2):=glhead(3); j:=monitor(74)set_entry_base:(zud,0,ia); if j<>0 then begin write(out,<:*** :>,parval.laf,<: kunne ikke sætte entry-base :>, <<d>,ia(1),"sp",1,ia(2),<:, monitor-result=:>,<<d>,j); flushout(10); monitor(48)remove_entry:(zud,0,ia); close(zin,true); close(zud,true); goto next; end; if testbit1 then begin write(out,zd.doc,<: set_entry_base :>,<<d>,ia(1),"sp",1,ia(2),<: ok:>); flushout(10); end; fsize:= if gltail(1) > 0 then gltail(1)*512 else 0; b:= 0; while b < fsize do begin hw:= if (fsize-b) < (zsize*512) then (fsize-b) else (zsize*512); inrec6(zin,hw); outrec6(zud,hw); tofrom(zud,zin,hw); b:= b+hw; end; if testbit1 then begin write(out,parval.laf,<: kopieret til :>,zd.doc,<: ok:>); flushout(10); end; open(zhelp,0,<::>,0); monitor(68)generate_name:(zhelp,0,ia); getzone6(zhelp,zd); close(zhelp,true); tofrom(ia,zd.doc,8); if testbit1 then begin write(out,zd.doc,<: generate name ok:>); flushout(10); end; j:=monitor(46)rename_entry:(zin,0,ia); if j<>0 then begin write(out,<:*** :>,parval.laf,<: kunne ikke omdøbes :>, <:, monitor-result=:>,<<d>,j); flushout(10); monitor(48)remove_entry:(zud,0,ia); close(zin,true); close(zud,true); goto next; end; getzone6(zin,zd); tofrom(zd.doc,ia,8); setzone6(zin,zd); if testbit1 then begin write(out,parval.laf,<: omdøbt til :>,zd.doc,<: ok:>); flushout(10); end; j:=monitor(46)rename_entry:(zud,0,parval.iaf); if j<>0 then begin write(out,<:*** :>,<: kopi kunne ikke omdøbes til :>, parval.laf,<:, monitor-result=:>,<<d>,j); flushout(10); monitor(48)remove_entry:(zud,0,ia); monitor(46)rename_entry:(zin,0,parval.iaf); close(zin,true); close(zud,true); goto next; end; getzone6(zud,zd); tofrom(zd.doc,parval.laf,8); setzone6(zud,zd); if testbit1 then begin getzone6(zud,zd); write(out,zd.doc,<: omdøbt til :>,parval.laf,<: ok:>); flushout(10); end; j:=monitor(48)remove_entry:(zin,0,ia); if j<>0 then begin write(out,<:*** :>,<: oprindelig fil kunne ikke slettes (:>, zhelp.doc,<:), monitor-result=:>,<<d>,j); flushout(10); monitor(48)remove_entry:(zud,0,ia); close(zin,true); close(zud,true); goto next; end; if testbit1 then begin getzone6(zin,zd); write(out,zd.doc,<: slettet ok:>); flushout(10); end; close(zud,true); write(out,parval.laf,<: flyttet til :>,docname); flushout(10); end; <*entry looked up*> close(zin,true); end; <*filparameter*> next: end; <* for i *> slut: end; end; trapmode:=1 shift 10; end ▶EOF◀