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

⟦bf0e71520⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »table256tx«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦80900d603⟧ »giprocfile« 
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
    └─⟦b2ec5d50f⟧ 
        └─⟦80900d603⟧ »giprocfile« 
            └─⟦this⟧ 

TextFile


;       table256tx            * page 1   25 10 78, 14.06;  
if listing.yes
char 10 12 10
table256=set 1
table256=algol
external procedure table256(a);  

  integer array a;  
  comment  convert ebcdic  to iso or use directly for defining
  an ebcdic alphabet to be used by rc read procedures 
  with the usual class values , e. g. 8 for end medium;  

  begin
    integer e, i, j;  
    integer array sh(0:255);  
    comment construction of intable;  
    <* chariso101=e*>
    <*chariso26=SUB*>
    e:=26;  <* e is used to signal unconverted ebcdic characters*>
    <*  NB: if visible characters wanted  e. g. use 101*>
    for i := 1 step 1 until 255 do a(i):=e;  
    a(64):=32;  
    for i:=0 step 1 until 7 do
    begin
      a( 74+i):=case i+1 of ( 35,  46, 60, 40, 43,  94, 38,  e);  
      a( 90+i):=case i+1 of ( 33,  36, 42, 41, 59, 126, 45, 47);  
      a(107+i):=case i+1 of ( 44,  37, 95, 62, 63,   e,  e,  e);  
      a(122+i):=case i+1 of ( 58, 123, 64, 39, 61,  34,  e,  e);  
    end;  
    for i:=193 step 1 until 201 do a(i):=i-128;  
    for i:=209 step 1 until 217 do a(i):=i-135;  
    for i:=226 step 1 until 233 do a(i):=i-143;  
    for i:=240 step 1 until 249 do a(i):=i-192;  
    j:=96;  
    for i:=129 step 1 until 137, 
    145 step 1 until 153, 162 step 1 until 169
    do
    begin
      j:=j+1;  
      a(i):=j;  
    end;  
    for i:=0, 12, 13, 25 do a(i):=i;  
    a(7):=127;  a(21):=10;  a(121):=96;  
    a(95):=94;  a(123):=35;  a(161):=126;  
    a(74):=91;  a(79):=93;  a(123):=35;  
    a(161):=126;  a(192):=123;  a(208):=125;  
    a(224):=92;  a(106):=124;  

    for i:=0 step 1 until 64 do sh(i):=7;  
    for i:=65 step 1 until 255 do sh(i):=6;  
    for i:=0, 13, 127 do sh(i):=0;  
    for i:=48 step 1 until 57 do sh(i):=2;  
    for i:=43, 45 do sh(i):=3;  
    for i:=46 do sh(i):=4;  
    for i:=39 do sh(i):=5;  
    for i:=94, 95, 96, 126 do sh(i):=7;  
    for i:=10, 12, 25 do sh(i):=8;  
    for i:= 139 step 1 until 143, 
    _      155 step 1 until 160, 171 step 1 until 191, 
    _      204, 206, 236, 250  do
    a(i):=95  <*_=95*>;  
    for i:=0 step 1 until 255 do a(i):=a(i)+sh(a(i)) shift 12;  
  end;  
end

if warning.yes
( mode 0.yes
message table256 not ok
lookup table256)
▶EOF◀