|
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: 3072 (0xc00) Types: TextFile Names: »epscopytxt«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦this⟧ »epscopytxt«
epscopy=set 1 scope day epscopy epscopy=algol program for copying text on epson mx80 printer call: <objectfile>=epscopy <sourcefile> <fpparam>(0,n) fpparam: linewith lw.72 linespacing ld.1 leading spaces lsp.1 condensed printing cp.false begin integer i,c,ic,isp,il,lw,ld,nl,lsp,kind,mode,fnc; boolean cp,bif; real array field raf; long array field laf; integer array TAIL(1:10); long array IFILE,OFILE(1:3); zone zi,zo(128,1,stderror); raf:= 0; cleararray(IFILE); bif:= readinfp(IFILE.raf,1); if bif then open(zi,4,IFILE,0); cleararray(OFILE); readlsfp(OFILE.raf); lookuptail(OFILE,TAIL); if TAIL(1)=0 then kind:= -1 else if TAIL(1)>0 then begin kind:= 4; mode:= 0 end else begin kind:= TAIL(1) extract 12; mode:= TAIL(1) shift (-12)-2048; laf:= 2; for i:= 1,2 do OFILE(i):= TAIL.laf(i) end; fnc:= if kind=8 and mode=2 then 3 else 1; open(zo,mode shift 12+kind,OFILE,0); il:= 1; isp:= 0;ic:= 1; readbfp(<:cp:>,cp,false); readifp(<:lw:>,lw,if cp then 130 else 72); readifp(<:ld:>,ld,1); readifp(<:fnc:>,fnc,fnc); l0:readifp(<:lsp:>,lsp,1); readifp(<:nl:>,nl,69*ld); if fnc=3 then write(zo,<:<17>:>); if -,bif then begin write(zo,"ff",1); goto l2; end; write(zo,<:<27>A:>,false add (12//ld),1,<:<27>2:>); write(zo,<:<27>C:>,false add 72,1); write(zo,if cp then <:<15>:> else <:<18>:>); write(zo,"sp",lsp); l1:readchar(zi,c); if c=10 then begin if il+1>nl then begin write(zo,"cr",1,"nl",1,"ff",ld-il//72); il:= 1 end else begin write(zo,"cr",1,"nl",1); il:= il+1 end; write(zo,"sp",lsp); ic:= 1+lsp; isp:= 0; end; if c=12 then begin write(zo,"cr",1,"nl",1,"ff",ld-il//72); il:= 1; write(zo,"sp",lsp); isp:= 0; ic:= lsp+1 end; if ic>lw then begin if il+1>nl then begin write(zo,"cr",1,"nl",1,"ff",ld-il//72); il:= 1 end else begin write(zo,"cr",1,"nl",1); il:= il+1 end; ic:= 1; write(zo,"sp",lsp-1,false add 62,1); end; if c=32 then isp:= isp+1; if c<>10 and c<>32 and c<>25 and c<>12 then begin write(zo,"sp",isp,false add c,1); ic:= ic+isp+1; isp:= 0 end; if c<>25 then goto l1; write(zo,"cr",1,"nl",1,"ff",ld-il//72); write(zo,<:<18><27>A<12><27>2:>); write(zo,<:<27>C:>,false add 72,1); l2: if fnc=3 then write(zo,<:<19>:>); write(zo,"em",1); close(zi,true); close(zo,true); end ▶EOF◀