|
|
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◀