DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦83a27cb16⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »epscopytxt«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦this⟧ »epscopytxt« 

TextFile

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◀