|
|
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: 5376 (0x1500)
Types: TextFile
Names: »retbusnumtx «
└─⟦cde9d517b⟧ Bits:30007477 RC8000 Backup tape fra HT's bus-radio system
└─⟦6a563b143⟧
└─⟦this⟧ »retbusnumtx «
└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system
└─⟦a957ba283⟧
└─⟦this⟧ »retbusnumtx «
begin message retbusnumre side 1 - 820305/cl;
integer i,j,k,pos,busnr,b1,b2,ch,akt,ant,gl_b2,g_nr;
long array garagenavn(0:99);
integer array tail(1:10),linie(1:32);
real t;
real array field raf;
long gar,g;
zone zin,zud(128,1,stderror);
procedure næste_bus;
begin
long array gn(1:2);
integer t;
read(zin,busnr); repeatchar(zin);
readchar(zin,t);
if t='/' then readstring(zin,gn,1)
else gn(1):= long<::>;
gar:= gn(1);
end;
raf:= 0;
initgnavn(garagenavn);
write(out,"+",15,<: rettelse af busnummertabel :>,"+",15,
"nl",2,<:rettelserne skal ske i stigende busnummer-orden:>,
"nl",2,<:vent på '>':>,"nl",2);
ud(out);
open(zin,4,<:busnumre:>,0);
open(zud,4,<:busnrtemp:>,0);
monitorcall(42,zin,i,tail,1);
systime(7,0,t);
tail(6):= round t;
monitorcall(40,zud,i,tail,9);
for i:= readchar(zin,ch) while ch<>25 do
outchar(zud,ch);
write(zud,maxinteger,"nl",1,"em",1);
close(zin,false);
close(zud,false);
open(zin,4,<:busnrtemp:>,0);
open(zud,4,<:busnumre:>,0);
næste_bus;
b1:= b2:= 0;
ant:= 0;
\f
message retbusnumre side 2 - 820305/cl;
næste_linie:
gl_b2:= b2;
outchar(out,'>'); ud(out);
g:= long<::>;
readchar(in,akt);
if akt='f' then
begin
write(out,<:vent !:>,"nl",1); ud(out);
goto finis;
end;
if akt='i' or akt='u' then
begin
for i:= readchar(in,ch) while i<>2 and i<>8 do ;
if i<>2 then
begin
write(out,<:formatfejl (busnr) !!!:>,"nl",1); ud(out);
goto skip_linie;
end
else
begin
b1:= 0;
repeat
b1:= b1*10 + ch - '0';
i:= readchar(in,ch);
until i<>2;
while i=7 do i:= readchar(in,ch);
if b1<=b2 then
begin
write(out,
<:ulovligt - rettelse ikke i stigende busnummer-orden !!!:>,"nl",1);
goto skip_linie;
end;
\f
message retbusnumre side 3 - 820305/cl;
if i <> 2 then
b2:= b1
else
begin
b2:= 0;
repeat
b2:= b2*10 + ch - '0';
i:= readchar(in,ch);
until i<>2;
end;
if b2 < b1 or b1<1 or b2<1 or b1>9999 or b2>9999 then
begin
write(out,<:formatfejl (busnr-2) !!!:>,"nl",1); b2:= gl_b2;
goto skip_linie;
end;
while i=7 do i:=readchar(in,ch);
if i=6 and akt='i' then
begin
j:= 0;
repeat
if 'a'<=ch and ch<='å' then ch:= ch-32;
g:= g shift 8 add ch;
i:= readchar(in,ch);
j:= j+1;
until i<>6 or j=3;
g:= g shift 24;
g_nr:= 0;
for k:= 0 step 1 until 99 do
if g=garagenavn(k) then g_nr:= k;
if g_nr=0 then
begin
write(out,<:ukendt garage: :>,string g,<: !!!:>,"nl",1); b2:= gl_b2;
goto skip_linie;
end;
end;
while i=7 do i:= readchar(in,ch);
if i<>8 then
begin
write(out,<:formatfejl (garage/linieslut) !!!:>,"nl",1); b2:= gl_b2;
goto skip_linie;
end;
end;
\f
message retbusnumre side 4 - 820305/cl;
end <* akt i, akt u *>
else
begin
write(out,<:formatfejl (aktion) !!!:>,"nl",1);
goto skip_linie;
end;
while busnr<b1 do
begin
write(zud,<< dddd>,busnr);
if gar<>0 then write(zud,"/",1,string gar)
else write(zud,"sp",4);
ant:= ant+1;
if ant mod 6 = 0 then outchar(zud,'nl') else outchar(zud,'sp');
næste_bus;
end;
if akt='i' then
begin
for i:= b1 step 1 until b2 do
begin
write(zud,<< dddd>,i);
if g<>0 then write(zud,"/",1,string g)
else write(zud,"sp",4);
ant:= ant+1; outchar(zud,if ant mod 6 = 0 then 'nl' else 'sp');
end;
while busnr<=b2 do næste_bus;
end
else
begin <* akt='u' *>
while busnr <= b2 do
begin
if busnr=9000 then
begin
write(zud,<: 9000 :>);
ant:= ant+1; outchar(zud,if ant mod 6 = 0 then 'nl' else 'sp');
end;
næste_bus;
end;
end;
skip_linie:
repeatchar(in);
for i:= readchar(in,ch) while i<>8 do ;
goto næste_linie;
\f
message retbusnumre side 5 - 820302/cl;
finis:
while busnr < maxinteger do
begin
write(zud,<< dddd>,busnr);
if gar<>0 then write(zud,"/",1,string gar)
else write(zud,"sp",4);
ant:= ant+1; outchar(zud,if ant mod 6 = 0 then 'nl' else 'sp');
næste_bus;
end;
outchar(zud,'nl');
outchar(zud,'em');
close(zud,true);
close(zin,true);
monitorcall(48,zin,0,tail,1);
monitorcall(42,zud,0,tail,1);
systime(7,0,t);
tail(6):= round(t);
tail(10):= ant;
monitorcall(44,zud,0,tail,1);
write(out,<:busnumre ialt::>,ant,"nl",1); ud(out);
trapmode:= 1 shift 10;
write(out,"nl",1,<:retbusnumre slut:>,"nl",1); ud(out);
end
▶EOF◀