|
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 - metrics - download
Length: 4608 (0x1200) Types: TextFile Names: »listerrortx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦baac87bee⟧ »gi« └─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦baac87bee⟧ »gi« └─⟦this⟧
comment listerrortx * page 1 27 04 79, 9.19 0 1 2 3 4 5 6 7 8 9 ; begin comment Listerror er et program, som kan liste vilkårlige linier fra en algol kildetekst (program eller extern procedure). Sammen med linierne listes også de tilsvarende boss - og algol - numre. Kald af program: ---------------- _ 1 50 listerror (in.<input_file name>) lines(.<algol_nbr>) _ 1 1 Eks. listerror in.readmaptx lines.45.46.57.68.101 Fra <readmaptx> listes nu teksten fra ovenstående linier samt disse liniers samhørende boss- og algolnumre. Programmør Erik Hansen, Topografisk Afdeling 22-01-79 ; integer t, val, nbr, algol_nr, int, pointer, boss_nr; integer array write_line, kind(1:50), table(0:127); real array param, aktion(1:2); long array input_file(1:2), la(1:50); zone zn(128*2, 2, stderror); boolean continue, ok; continue := true; algol_nr := 1; pointer := 1; boss_nr := 0; nbr := 0; val := 0; \f comment listerrortx * page 2 27 04 79, 9.19 0 1 2 3 4 5 6 7 8 9 ; <******** R E A D F P - P A R A M ********> for int := read_param(param) while int <> 0 do case int + 2 of begin val := write(out, nl, 1, <:***list<95>error FP-syntax, outputfile not allowed:>); <* end of parameter list *> ; <* <space><integer> *> val := write(out, nl, 1, <:***list<95>error FP-syntax, :>, round param(1)); <* <space><text> *> to_from(aktion, param, 8); <* .<integer> *> if aktion(1) shift (-24) shift 24 = real<:lin:> then begin nbr := nbr + 1; write_line(nbr) := round param(1); end else val := write(out, nl, 1, <:***list<95>error FP-syntax, :>, string pump(aktion), <:.:>, round param(1)); <* .<text> *> if aktion(1) shift (-32) shift 32 = real<:in:> then to_from(input_file, param, 8) else val := write(out, nl, 1, <:***list<95>error FP-syntax, :>, string pump(aktion), <:.:>, string pump(param)); end; <******* R E A D F P - P A R A M ********> if val <> 0 then system(9, 0*write(out, nl, 1, <:***list<95>error FP-problems:>), <:<10>stopped:>); la(1) := longzero; <* ==> scope(1) := longzero *> val := lookup_proc(la, input_file, kind <* tail *> ); if val <> 0 then system(9, 0*write(out, nl, 1, <:***list<95>error, input<95>file problems:>, nl, 1, <:lookup<95>proc = :>, <<dd>, val), <:<10>stopped:>) else open(zn, 4, inputfile, 0); while continue do begin int := read_all(zn, la, kind, 1); boss_nr := boss_nr + 10; for t:=1 step 1 until int do if la(t) = long<:begin:> or _ la(t) shift (-8) shift 8 = long<:exter:> then continue := false; end; \f comment listerrortx * page 3 27 04 79, 9.19 0 1 2 3 4 5 6 7 8 9 ; <* redefinering af alfabetet *> stdtable(table); for int:=32 step 1 until 125 do table(int) := 6 shift 12 + int; table(10) := 8 shift 12 + 0; intable(table); continue := true; while continue do begin int := read_all(zn, la, kind, 1); boss_nr := boss_nr + 10; ok := false; if t > 1 then for t:=1, t+1 while t<=(int-1) and -, ok do for val:=-40 step 8 until 0 do if la(t) shift val extract 8 <> 32 and _ la(t) shift val extract 8 <> 0 and _ la(t) shift val extract 8 <> 95 then ok := true; if la(int) = 12 <* ff *> then boss_nr := ((((boss_nr//1000) + 1) * 1000) - 10) else if ok then algol_nr := algol_nr + 1; if write_line(pointer) = algol_nr then begin write(out, nl, 1, <<ddddd>, boss_nr, <<ddddd>, algol_nr, _ sp, 1, la); pointer := pointer + 1; end; if pointer > nbr then continue := false; readchar(zn, val); if val = 25 then continue := false else repeatchar(zn); end; close(zn, true); end; ▶EOF◀