|
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: »datonavntx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system └─⟦a957ba283⟧ └─ ⟦this⟧ »datonavntx «
begin message datonavn, side 1 - 800117/cl; <* programmet omdøber en eller flere katalogindgange til navne på formen: <prefix><dato-tid><postfix> hvor <prefix> er de (maximalt) 4 el. 6 første tegn i katalogindgangens oprindelige navn. <dato-tid> er datoangivelse for omdøbelsestidspunktet, på en form der er afhængig af programnavnet: datonavn : år*1000 + måned*100 + dag (prefix max. 4 tegn) ugenavn : år*100 + ugenr (prefix max. 6 tegn) månedsnavn : år*100 + måned (prefix max. 6 tegn) <postfix> er et af tegnene <null>, a, b, ... , æ, ø, å i nævnte rækkefølge, til der findes et unikt navn. programkald: 1 ( datonavn ) * ( <uddatamedie>= ) ( ugenavn ) ( <sp><navn> ) 0 (månedsnavn) 1 <navn> er navn på katalogindgang der skal omdøbes. for hver omdøbt katalogindgang udskrives en linje på det valgte uddatamedie: <gl.-navn> er omdøbt til <nyt-navn> fejludskrifter: *** parameterfejl: <parameter> fejl i programparameter *** <navn> ukendt specificeret navn findes ikke i kataloget *** <navn> kan ikke omdøbes: <årsag> fejlstatus fra monitor(46) 'rename entry' eller unikt navn kav ikke dannes. efter fejludskrift fortsættes normalt med næste parameter. kaldte procedurer: openfp, closefp, skrivtegn, afsluttext, anbringtal, datodag oversættelse: datonavn=algol connect.no datonavntx ugenavn=assig datonavn månedsnavn=assig datonavn *> \f message datonavn, side 2 - 800117/cl; integer ppos, dato, tid, nr, postfix, type, res, pos, i, åå,mm,dd,uu,uå; real array ra(1:2); real t; long array field laf; integer array tail(1:10), nytnavn(1:4); boolean dagnavn,ugenavn,månedsnavn; zone list(128,1,stderror), z(1,1,stderror); if system(4,1,ra) = 6 shift 12 + 10 <* =<navn> *> then ppos:= 2 else ppos:= 1; dagnavn:=ugenavn:=månedsnavn:=false; system(4,ppos-1,ra); if ra(1) shift (-16) shift 16 = real<:dato:> then dagnavn:=true else if ra(1) shift (-24) shift 24 = real<:uge:> then ugenavn:=true else if ra(1) shift (- 8) shift 8 = real<:måned:> then månedsnavn:=true else dagnavn:=true; openfp(list,0); dato:= round(systime(5,0,t)); tid:= round(t); dd:= dato mod 100; mm:= (dato//100) mod 100; åå:= (dato//10000) mod 100 + 1900; datodag(åå,mm,dd,uu,0,uå,0); laf:= 0; nr:=dato; if dagnavn then nr:=dato else if ugenavn then nr:= (uå mod 100)*100 + uu else if månedsnavn then nr:= (åå mod 100)*100 + mm; <*nr:= (dato mod 10000)*100 + (tid//10000) mod 100;*> for type:= system(4,ppos,ra) while type<>0 do begin if type <> 4 shift 12 + 10 then begin write(list,nl,1,<:*** parameterfejl: :>); if type extract 12 = 10 then write(list,ra.laf,nl,1) else if type extract 12 = 4 then write(list,<<d>,round(ra(1)),nl,1) else write(list,<:????<10>:>); end else begin open(z,0,ra,0); if monitor(42)lookup entry:(z,0,tail)<>0 then write(list,nl,1,<:*** :>,ra.laf,<: ukendt<10>:>) else begin if dagnavn then nytnavn.laf(1):= ra.laf(1) shift (-16) shift 16 else nytnavn.laf(1):= ra.laf(1); pos:= 6; while nytnavn.laf(1) shift (8*(pos-6)) extract 8 = 0 do pos:= pos-1; pos:= pos+1; anbringtal(nytnavn,pos,nr,(if dagnavn then (-6) else (-4))); i:= pos; while i<13 do skrivtegn(nytnavn,i,0); postfix:= 96; \f message datonavn, side 3 - 800117/cl; repeat res:= monitor(46)rename entry:(z,0,nytnavn); if res=3 <*navn findes allerede *> then begin postfix:= postfix + 1; if postfix <= 125 then begin i:= pos; skrivtegn(nytnavn,i,postfix); afsluttext(nytnavn,i); end; end; until postfix>125 or res<>3; if res<>0 then write(list,<:<10>*** :>,ra.laf,<: kan ikke omdøbes: :>, case res of (<::>,<:catalog error:>,<:name conflict:>, <:base error:>,<:entry in use:>,<:name format:>, <:no maincat:>),nl,1) else write(list,nl,1,ra.laf,<: er omdøbt til :>, nytnavn.laf,nl,1); end; close(z,true); end; ppos:= ppos+1; end; closefp(list,true); trapmode:= 1 shift 10; end ▶EOF◀