|
|
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: 2304 (0x900)
Types: TextFile
Names: »table256tx«
└─⟦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⟧
; 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◀