|
|
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: 3840 (0xf00)
Types: TextFile
Names: »ga34tapetx«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦0f6e8048b⟧ »preditfile«
└─⟦this⟧
\f
comment predit text * page 4 11 02 80, 16.42
0 1 2 3 4 5 6 7 8 9 ;
comment case 2, ga34tape;
_________________________
begin
integer cl, ch, i, t, index;
integer array alfa(0:255);
array outalfabet(0:512);
boolean cont, notsum, paritybit;
zone zin(10, 1, endblock);
procedure endblock(z, s, b);
zone z;
integer s, b;
if s extract 1 = 1 then stderror(z, s, b)
else
if cont and b = 0
and (s shift (-18) extract 1) = 1 then
begin
cont := false; b := 4;
z(1) := real <::>;
end;
for cl := 0 step 1 until 255 do
alfa(cl) := (2 shift 12) + cl; comment ordinary symbol;
alfa(122) := (3 shift 12) + 122; comment LC symbol;
alfa(124) := (4 shift 12) + 124; comment UC symbol;
alfa(109) := (5 shift 12) + 109; comment sumch symbol;
intable(alfa);
for t := 0 step 1 until 512 do outalfabet(t) := real <:<26>:>;
for t := 0 step 1 until 64 do
begin comment assign outputsymboltable;
ch := t; paritybit := true;
for i := 1 step 1 until 8 do
begin comment parity bit test;
if ch extract 1 = 1 then paritybit := -, paritybit;
ch := ch shift (-1);
end parity bit test;
ch := 32*(t//16) + (t mod 16)
_ + (if paritybit then 16 else 0);
\f
comment predit text * page 5 11 02 80, 16.42
0 1 2 3 4 5 6 7 8 9 ;
outalfabet(ch) := real(case t + 1 of (<:_:>,
<:1:>, <:2:>, <:3:>, <:4:>, <:5:>, <:6:>, <:7:>, <:8:>,
<:9:>, _<::>, _<::>, _<::>, <:å:>, _<::>, _<::>, <:0:>,
<:<60>:>, <:s:>, <:t:>, <:u:>, <:v:>, <:w:>, <:x:>, <:y:>,
<:z:>, _<::>, <:, :>, _<::>, _<::>, <:___:>, <:*:>, <:-:>,
<:j:>, <:k:>, <:l:>, <:m:>, <:n:>, <:o:>, <:p:>, <:q:>,
<:r:>, <:<12>:>, <:ø:>, <:; :>, _<::>, _<::>, _<::>, <:æ:>,
<:a:>, <:b:>, <:c:>, <:d:>, <:e:>, <:f:>, <:g:>, <:h:>,
<:i:>, <:<26>:>, <:.:>, <:<26>:>, <:<26>:>, <::>, <::>, <:<10>:>));
outalfabet(ch + 128) := real(case t + 1 of (<:_:>,
<:or:>, <:*:>, <:/:>, <:=:>, <:; :>, <:(:>, <:):>, <:(:>,
<:):>, _<::>, _<::>, _<::>, <:Å:>, _<::>, _<::>, _<:and:>,
<:<62>:>, <:S:>, <:T:>, <:U:>, <:V:>, <:W:>, <:X:>, <:Y:>,
<:Z:>, _<::>, <:':>, _<::>, _<::>, <:___:>, <:*:>, <:+:>,
<:J:>, <:K:>, <:L:>, <:M:>, <:N:>, <:O:>, <:P:>, <:Q:>,
<:R:>, <:<12>:>, <:Ø:>, <:; :>, _<::>, _<::>, _<::>, <:Æ:>,
<:A:>, <:B:>, <:C:>, <:D:>, <:E:>, <:F:>, <:G:>, <:H:>,
<:I:>, <:<26>:>, <:::>, <:<26>:>, <:<26>:>, <::>, <::>, <:<10>:>));
end assign output symbol table;
open(zin, (4 shift 12) + 10, <:reader:>, 1 shift 18);
notsum := cont := true;
index := 0;
for cl := read_char(zin, ch) while cont do
begin
case cl - 1 of
begin
begin comment case 1, ordinary symbol;
if notsum then write(out, string outalfabet(ch + index));
notsum := true;
end case1;
begin comment case 2, LC symbol;
if notsum then index := 0;
notsum := true;
end case2;
begin comment case 3, UC symbol;
if notsum then index := 128;
notsum := true;
end case3;
begin comment case 4, sumcheck symbol;
notsum := false;
end case4;
end input cases;
end input loop;
write(out, false add 25, 3, false, 3);
close(zin, true);
end case 2, ga34tape;
▶EOF◀