DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen GIER Computer

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

See our Wiki for more about RegneCentralen GIER Computer

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦c80c52684⟧ Bits:30000735 GIER ALGOL III PASS 6, 8-hole paper tape

    Length: 67051 (0x105eb)
    Description: Bits:30000735 GIER ALGOL III PASS 6
    Types: 8-hole paper tape
    Notes: Gier Text, Has10

GIER Text (HTML)

[19.1.66]
[PASS 6, page 1, GIER version]
b k=e15+e70, i=205e13, b30, c100, d40, a22; _
d e17=i ; first location of control table _
d d6=59 ; number of mode dependent input symbo _
ls
d d1=i+d6+d6-200 ; control table base, address for byte = 0 _
d d3=d1+279 ; base for operator table: d1 + max input byte - 1 _
d d2=49d3 ; base for operand table: d3 + no. of operators + 2 _
d i=26d2 ; first instruction: d2 + no. of operands _
[The following are input byte values]
d d21=270 [CAR RET], d26=161 [no-type proc] _
[The following are output byte values] [GIER definitions, skipped for CDC]
d d10= 56 [∧ integer], d11= 30 [round], d12= 36 [end RF exp] _ |
;
d d13= 37 [end R exp], d14= 38 [end addr exp], d15= 37 [end string expr] _
;
d d16= 42 [else adr exp], d17= 45 [end else adr exp], d18= 27 [end subscripts] _
;
d d19= 29 [end switch des],d20= 34 [not], d22= 96 [end proc call] _
;
d d23= 97 [end std. call], d24= 94 [prepare func], d25= 2 [begin call] _
;
d d27= 4 [end proc], d28= 47 [prepare assign], d31= -2 [elseRF-elseadr] _
;
d d32= -1 [else R-else adr] _
s _
[26. jan. 65] [Pass 6, page 2, page 1 is on the tape for pass 7, to facilitate handling of CDC ] a20:can sd30 , hv c99 ; Initialize stack:
grn s M ; for s:= s - 1 while s | d30 do ___ _____ = __
c60:ps s-1 , hv a20 ; pack(store[s], 0, 41, 0);
; go_to in out 1; __ __
c5: pmn(e1) Xt 1 ; integer procedure input; _______ _________
hs e2 LA ; R:= input:= next byte; hh s ;
c65:pm (s) DVX ; procedure output(n); begin R:= n; output R end; _________ _____ ___
b6:
c66:pm[par 3] DX ; procedure output par 3; begin R:= par 3; output R _________ _____
end; ___
c: hv e3 LQA ; procedure output R; begin if relation is waiting _________ _____ __
then ____
gr p3 , arn b13 ; begin out(buffer); relation is waiting:= false en _____ _____ __
d; _
hs e3 IQA ; out(R);
arn p3 , hv e3 ; end output R; ___
b13:qq , ; b7: c9: qq 0 , pm [par 4]; stack operator of par 4: pos in input: neg in input: ; left par input: not input: M:= OPERATOR TABLE[par 4]; c8: gm (b12) V 1 MA ; stack operator: top operator:= topoperator + 1; ; storewithmarks(M, ,a,, OPERATORSTACK[top operator ]);
; go_to next symbol; __ __
c7: qq (b12) t -1 ; remove operator: right par input: ; topoperator:= topoperator - 1; c6: pmn(e1) XV 1 IZA ; next symbol: inputsymbol:= input; a1:
b2: pmn XV ; output is normal:= true; ____
hs e2 LA ; if input symbol > ,min standard proc, then __ ____
ga b1 V NT ; begin input reference:= input symbol; input symbo _____
l:= ga b2 , hv a1 ; part 1(STANDARDPROCEDURETABLE[input symbol])
b1: pm Xt d1 IRA ; end; controlword:= CONTROLTABLE[input symbol]; ___
arn(b1) t -d6 LRC ; markscontrolword:= marks CONTROLTABLE[input symbo l];
ga b4 , gt b5 ; if parametermode ∧ marks a(controlword) then __ ____
ck 20 , ga b6 ; begin controlword:= CONTROLTABLE[input - _____
; ,number of mode dependent symbols,]; gt b7 ; marks controlword:= marks CONTROLTABLE[input - ; ,number of mode dependent symbols,]
hv c3 NB ; end; ___
b5: a3: arn p , hv[action]; par 1:= part 1(controlword); par 2:= part 2(controlw ord); ; par 3:= part 3(controlword); par 4:= part 4(controlw ord);
; if -, marksb(controlword) then go_to repeat; __ ____ __ __
; search finished: R:= OPERANDSTACK[top operand];
; go_to action [par 2]; __ __
c4: gm p ; set top operand and repeat: OPERANDSTACK[topoperand] := M; c3: b12:arn d5 , gt b9 ; repeat: b4: b9: bs [par 1]t[stackpriority]; stackpriority:= part 2 (OPERANDSTACK[topoperator ]);
hv a3 ; if par 1 > stackpriority then go_to search finish __ ____ __ __
ed; ga b8 , tk 20 ; p1:= part 1(OPERANDSTACK[topoperator]); ga b10 , tk 10 ; p3:= part 3(OPERANDSTACK[topoperator]); b8: hv [stackaction] ; setpart 1(R) to:(part 4(OPERANDSTACK[top operator ]));
; go_to stackaction [p1]; __ __
[Pass 6, page 3] c10:ga b11 IZA ; standard proc 1 value after call:
; p4:= part 1(R); output is normal:= false; _____
c70:pm (b12) V -1 IQB ; after standard function integer argument: ; top operator:= top operator - 1; ; M:= OPERATORSTACK[top operator]; ; marks M:= marks(OPERATORSTACK[top operator]);
; go_to lab 0; __ __
c11:pm (b2) IQB ; standard procedure in normal mode: cln -10 , hs c ; M:= STANDARDPROCEDURETABLE[input reference]; hv a4 NQB ; marks M:= marks STANDARDPROCEDURETABLE[input referen ce];
cln -10 , hs c ; lab 0: OUTPUT(part 4(M)); if marks b(M) then __ ____
cln -10 , hs c ;
d i=i-e69 ; _
qq ; CDC
d i=i+e69-1 ; _
a4: hv c75 LZA ; begin OUTPUT(part 3(M)); OUTPUT(part 2(M)); end; _____ ___
hv c14 ; if output is normal then go_to c75 else go_to c14 __ ____ __ __ ____ __ __
; c12:pm p X ; stackaction 3:
ck 3 X IOA ; if -, comb 3(OPERANDSTACK[top operand]) then __ ____
arn d10 D NOA ; setpart 1(R) to: (,int,); c13:hs c ; stackaction 1: OUTPUT(part 1(R)); c14:pm p X ; stackaction 2: R:= OPERANDSTACK[top operand]; qq (b12) t -1 ; top operator:= top operator - 1;
b10:hv [checkaction] ; go_to checkaction[p3]; __ __
c15:pm 1d2 , gm p ; c16:ck 1 ; integer arithmetics from stack:
hs c2 NO ; if -, comb 1(R) then ALARM AND SET UNDECLARED; __ ____
hv c3 ; go_to repeat; __ __
c17:ck 2 , pm 2d2 ; real arithmetics from stack: M:= OPERANDTABLE[,real, ];
hv c4 LO ; if comb 2(R) then go_to set top operand and repea __ ____ __ __
t;
ck -1 , hv 1c16 ; if -,comb1(R) then ALARM AND SETUNDECLARED; go_to re __ ____ __ __
peat; c18:ck 4 ; integer divide from stack:
hs c2 NO ; if -, comb 4(R) then ALARM AND SETUNDECLARED; __ ____
hv c3 ; go_to repeat; __ __
c19:ck 7 ; checkaction 4: prepare boolean assignment from stack :
hs c1 NO ; if -, comb 7(R) then ALARM; __ ____
pp p-2 , hv c3 ; top operand:= top operand - 2; go_to repeat; __ __
c20:gm b13 IQA ; relation from stack: tk 6 , pm 3d2 ; buffer:= M; M:= OPERANDTABLE[,boolean,];
; if comb 5(R) then OPERANDSTACK[top operand]:= M; __ ____
gm p LT ;
hs c2 NO ; if comb 6(R) _ comb 5(R) then ALARM AND SETUNDECL __ = ____
ARED;
hv c3 IQA ; relation is waiting:= true; go_to repeat; ____ __ __
c21:ck 7 ; boolean-operator-from-stack: hs c2 NO ; ulæseligt
hv c3 ; go_to repeat; __ __
[19.1.66] [Pass 6, page 4] c22:ck 8 ; undeclared operator from stack:
hs c1 NO ; if -, comb 8(R) then ALARM; __ ____
pm 13d2 , hv c4 ; M:= OPERANDTABLE[,undeclared,];
; go_to set top operand and repeat; __ __
c23:ck 1 ; prepare real assign from stack:
a5: hs c1 NO ; if -, comb 1 (R) then ALARM; __ ____
c25:pp p-2 , hv c3 ; unstack repeat:
; top operand:= top operand - 2; go_to repeat; __ __
c24:ck 3 IOA ; prepare integer assign from stack:
pm d11 DV LO ; if comb 3(R) then OUTPUT(,round,) __ ____
ck -2 ; else if -, comb 1(R) then ALARM; ____ __ ____
d i=i-e69-e69-e69 ; cdc: no round _
ck 1 ;
d i=i+e69-1 ; _
hs c1 NO ; top operand:= top operand - 2; hs c X LOA ; OUTPUT(,prepare assign,);
d i=i-e69 ; cdc: no round _
pp p-2 , ps c3-1 ; go_to repeat; __ __
pm d28 D ; hv c X ; c26:ga b11 IZA ; standard function integer argument:
arn p , ck 3 ; p4:= part 1(R); output is normal:= false; _____
pm d11 D ; if comb 3(OPERANDSTACK[top operand]) then __ ____
hs c X LO ; OUTPUT(,round,); go_to c70; __ __
d i=i-e69-e69-e69 ; cdc: no round _
hv c70 ; comment after standard function integer argument; _______
c27:ck 1 V ; standard function arithmetic argument from stack:
; if -, comb 1(R) then ALARM; go_to lab 1; __ ____ __ __
c28:ck 29 ; standard function string argument from stack:
hs c1 NO ; if -, comb 29(R) then ALARM; __ ____
b11:pm [p4] , gm p ; lab 1: OPERANDSTACK[top operand]:= OPERANDTABLE[p4];
pa b3 , hv c6 ; skip bypasslabel:= true; go_to next; ____ __ __
c96: ; bypasslabel:
b3: bs _ , hv c40 ; if -,skip bypasslabel then goto output par 3 goto 1 __ ____ ____
next
pa b3 t 1 ; skip bypasslabel:= false; _____
hv c6 ; go_to next symbol; __ __
c94:pa b4 t d2 ; procedure ALARM 2; _________
c92:hs e5 ; begin _____
hr s1 , qq s+e41 ; PRINTTEKST(|<proc.call or ident.|); < >
a17:pm s DX ; A:= s; qq , ud 9e4 ; select error by; hs e9 ; print(A);
vy (8e4) , hr s1 ; end; ___
c30:ck 9 , pp p-2 ; designational expression: end goto: hs c1 NO ; top operand:= top operand - 2;
ps c6-1 , hv c66 ; if -, comb 9(R) then ALARM; __ ____
; OUTPUT PAR 3; go_to next symbol; __ __
c31:ck 10 ; procedure semicolon:
hs c1 NO ; if -, comb 10(R) then ALARM; __ ____
c83:pp p-2 , ps c6-1 ; delete call: top operand:= top operand - 2;
hv c66 , ; OUTPUT PAR 3; go_to next symbol; __ __
c32:tk 4 , ud b7 ; arith or relation in input: M:=
a6: pm (b6) NT ; OPERATORTABLE[if comb 3(R) then par 4 else par 3] __ ____ ____
; [Pass 6, page 5]
hv a7 LO ; if comb 4(R) _ comb 3(R) then __ = ____
arn p , ck 6 ; lab 3: begin if -, comb 6(OPERANDSTACK[top operand] _____ __
; then ALARM; ____
hs c1 NO ; M:= OPERANDTABLE[par 1]; comment undeclared; _______
pm (b4) t d3 ; end; ___
a7: pp p-2 , hv c8 ; lab 4: topoperand:= topoperand - 2; go_to stackopera __ __
tor; c33:ck 2 , hv a6 ; integer divide in input: M:= OPERANDTABLE[par 3];
; go_to if comb 2(R) then lab 4 else lab 3; __ __ __ ____ ____
c34:ck 11 , hv a6 ; boolean operator in input: M:= OPERATORTABLE[par 3];
; go_to if comb 11(R) then lab 4 else lab 3; __ __ __ ____ ____
c35:ck 12 ; left bracket in input:
hs c2 NO ; if -, comb 12(R) then ALARM AND SET UNDECLARED; __ ____
hh c9 ; go_to stack operator of par 4; __ __
c93:ck 12 ; standard function array argument:
hs c1 NO ; if -, comb 12(R) then ALARM; __ ____
hv b11 ; go_to lab 1; __ __
c36:pa b14 V d16 ; else expression: ; inputsymbol:= ,else adress expression,;
; go_to lab 5; __ __
c37:pa b14 t d17 ; end else expression: tk 20 , ck -6 ; input symbol:=,end else adress expression,; ga r2 , pp p-2 ; lab 5: top operand:= topoperand - 2; pmn p X ; current operand:= OPERANDSTACK[top operand];
hv t a8 ; go_to action 20 switch[R bits 20 to 22]; __ __
a8: hs c2 ; not allowed: ALARM AND SET UNDECLARED;
hv c6 ; go_to next symbol; __ __
[2a8]pm 13d2 , gm p ; undeclared: OPERANDSTACK[top operand]:=,undeclared,;
hv c6 ; go_to next symbol; __ __
[4a8]ck 23 , ps 3 ; integer or integer procedure no parameters:
pm 1d2 , hv a9 ; if comb 23(current operand) then __ ____
; OPERANDSTACK[topoperand]:=,integer, else ____
; if -, comb 26(current operand) then __ ____
; ALARM AND SET UNDECLARED; go_to RF case; __ __
[6a8]ck 24 , ps 2 ; real or real procedure no parameters:
pm 2d2 , hv a9 ; if comb 24(current operand) then __ ____
; OPERANDSTACK[top operand]:=,real, else ____
; if 10, comb 26(current operand) then __ ____
; ALARM AND SET UNDECLARED; go_to RFcase; __ __
[8a8]ck 23 , ps 4 ; boolean or boolean procedure no parameters:
pm 3d2 , hv a10 ; if comb 23(current operand) then __ ____
; OPERANDSTACK[top operand]:= ,boolean, else ____
; if -, comb 27(current operand) then __ ____
; ALARM AND SET UNDECLARED; go_to Rcase; __ __
[10a8]ck23 , ps 5 ; label: if comb 23(current operand) then __ ____
pm 4d2 , hv a11 ; OPERANDSTACK[top operand]:= ,label, else ____
; if -, comb 28(current operand) then __ ____
; ALARM AND SET UNDECLARED;
; go_to address case; __ __
[Pass 6, page 6]
[12a8]ck23 , ps 6 ; string: if comb 23(current operand) then __ ____
pm 5d2 , hv a10 ; OPERANDSTACK[top operand]:= ,string,;
; if -, comb 29(current operand) then __ ____
; ALARM AND SET UNDECLARED; go_to Rcase; __ __
[14a8]arnp , ck 25 ; nonsense:
ps 1 , pm 6d2 ; if comb 25(current operand) then __ ____
; OPERANDSTACK[top operand]:= ,nonsense, else ____
; if -, comb 26(current operand) then __ ____
; ALARM AND SET UNDECLARED; a9: qq (b14) V d31 ; RF case: input symbol:= RFversion(input symbol);
; go_to address case; __ __
a10:qq (b14) t d32 ; Rcase: input symbol:= R version(input symbol); a11:gm p V LO ; address case: ck s ; OUTPUT(input symbol);
hs c2 NO ; go_to next symbol; __ __
b14:pm[input symbol] DX ; ps c6-1 , hv c ; c38:pp p-2 , pm p ; colon equal input: tl 16 ITA ; top operand:= top operand - 2; tl 2 V LO ; M:= OPERANDSTACK[top operand];
ck 2 V NTA ; if (comb 15(R) ∧ comb16(R) ∧ -, comb 17(M)) ∨ __
tl 1 LTA ; (comb 15(R) ∧ -, comb 16(R) ∧ -, comb 19(M)) ∨ ck -1 ; (-, comb 15(R) ∧ comb 16(R) ∧ -, comb 18(M)) ∨
hs c2 NO ; -, comb 17(R) then ALARM AND SET UNDECLARED; ____
ps c9-1 , hv c66 ;
; OUTPUT PAR 3; go_to stack operator of par 4; __ __
c95:tk 2 , tk -3 ; stepelement: stepelement and do: c39:tk 2 , pp p-2 ; forelements input: hs c1 NT ; topoperand:= top operand - 2;
hv c40 NO ; if -, comb 1(R) then ALARM; __ ____
arn p , ck 2 ; if comb 1(R) _ comb 2(R) then go_to c40; __ = ____ __ __
d i=i-e69 ; cdc: no round _
a13:pm d11 D LO ; if comb 2(OPERANDSTACK[topoperand]) then __ ____
hs c X LO ; OUTPUT(,round,);
d i=i-e69-e69 ; cdc: no round _
c40:ps c6-1 , hv c66 ; output par 3 go to next: expression in parameter mod e: ; it statement: end elsest: for: OUTPUT PAR 3;
; go_to next symbol; __ __
c41:tk 2 , pp p-2 ; right bracket input: hs c1 NT ; top operand:= top operand - 2;
pm d11 D LO ; if -, comb 1(R) then ALARM; __ ____
hs c X LO ; if -, comb 1(R) _ comb 2(R)) then OUTPUT(,round,) __ = ____
;
d i=i-e69-e69 ; cdc: no round _
pm p X ; current operand:= OPERANDSTACK[topoperand];
tk 31 IOB ; operand array:= -, (comb 30(current operand) _ =
; comb 31(current operand));
hv a12 NT ; if comb 30(current operand) then __ ____
pm (p-1) DX -1 ; begin _____
hs c91 NZ ; set part 1(OPERANDSTACK[top operator - 1]) ; to:(OPERANDSTACK[topoperator-1]-1);
pm d19 DVX NOB ; if part 1(OPERANDSTACK[top operator - 1] | 0 __ =
; then ALARM 1 ____
; end; ___
[Pass 6, page 7] a12:pm d18 DX ; hs c ; OUTPUT(
arn p , tk 33 ; if operandarray then,] array, else,] switch,); __ ____ ____
ck -7 , ga r1 ; OPERANDSTACK[top operand]:= pm t d2 ; OPERANDTABLE[bit 33 to 35(current operand)];
gm p , hv c7 ; go_to remove operator; __ __
c42:tk 15 , ck -8 ; first assign input: ga r2 , tk -29 ; OPERANDSTACK[top operand]:= hs c1 LZ ; OPERANDTABLE[bit 15 to 16(R)];
pm t d2 ; if -, (comb 15(R) ∨ comb 16(R) ∨ comb 17(R)) then __ ____
gm p , ps c9-1 ; ALARM; OUTPUT PAR 3;
hv c66 ; go_to stackoperator of par 4; __ __
c43:qq d20 , hs c65 ; implication input: OUTPUT(,_,); par 1:= 5; ,
pa b4 t 5 ; R:= OPERANDSTACK[top operand];
arn p , hv c34 ; go_to c34; comment boolean operator in input; __ __ _______
c44:qq (b13) V -6 NQA ; then input: if relation is waiting then __ ____
; begin comment change to then version; _____ _______
; buffer:= buffer - 6 end else ___ ____
c45:hs c66 ; while element input: pm p X ; OUTPUT PAR 3; ck 7 ;
hs c1 NO ; if -, comb 7(OPERANDSTACK[top operand]) then ALAR __ ____
M; c85:pp p-2 , hv c6 ; remove operand next symbol: do: ; topoperand:= topoperand - 2;
; go_to next symbol; __ __
c46:ck 32 ; colonequal for:
hs c2 NO ; if -, comb 32(R) then ALARM AND SET UNDECLARED; __ ____
ps c6-1 , hv c66 ; OUTPUT PAR 3; go_to next symbol; __ __
c47:qq (p-3) t -1 ; subscript comma: set part 1(OPERANDTABLE[topoperand- 3]) ; to: (part 1(OPERANDSTACK[topoperand]-3])-1);
c48:tk 2 ; end bounds: bound comma: if -, comb 1(R) then ALARM; __ ____
hs c1 NT ; top operand:= top operand - 2;
pp p-2 , hv a13 ; if -, (comb 1(R) _ comb 2(R)) then OUTPUT(,round, __ = ____
);
; OUTPUT PAR 3; go_to next symbol; __ __
c49:tk 2 , pp p-2 ; boundcolon: hs c1 NT ; top operand:= top operand - 2;
pm d11 D LO ; if -, comb 1(R) then ALARM; __ ____
hs c X LO ; if -, (comb 1(R) _ comb 2(R)) then OUTPUT(,round, __ = ____
);
d i=i-e69-e69 ; cdc: no round _
hv c6 ; go_to next symbol; __ __
c50:hs c66 ; output par 3 copy 1: hs c5 , hs c ; OUTPUT PAR 3; hv c6 ; OUTPUT(input);
; go_to next symbol; __ __
c51:hs c66 ; endpass: pm d4 X -1 ; OUTPUT PAR 3; hv r-1 LZ ; information 1:= ,max height of operatorstack,; nt d5 , it (r-2) ; information 2:= ,max height of operandstack,;
pa 2e4 ; if no running then go_to initialize translator; __ ____ __ __
pm e25-e71+40 X -1 ; go_to pass 7; __ __
hv r-1 LZ ; nt d4 , it (r-2) ; pa 3e4 , hh e94 ;
s _
[Pass 6, page 8] c52:hs c5 , ga b15 ; begcall: hs c5 , ga b16 ; number of actuals:= input pmf r IRB ; procedurekind:= input;
hv a14 NT ; parametermode:= true; ____
arn(b16) , ga r1 ; if procedurekind ,min standard proc, then __ ____
arn t d1 ; R:= CONTROLTABLE[part 1(STANDARDPROCEDURETABLE
; [procedurekind])] else ____
hv a15 ; begin _____
a14:hs c5 , ga b17 ; number of formals:= input; hs c5 , ga b18 ; relative address:= input; hs c5 , ga b19 ; blocknumber:= input; it d22 ; callbyte:= ,end proc call,; pa b20 ; b16:pmn[proc.kind] Xt d1 ;
d i=i-e69-e69-e69 ; _
is (b16) , it s+d22 ; CDC
d i=i+e69+e69+e69-1 ; R:= CONTROLTABLE[procedurekind] _
; end; ___
a15:ga b4 , ck 20 ; par 1:= part 1(R);
gt r, hv[callaction] ; go_to callaction[part 4(R)]; __ __
; comment c53, c54, c67, c55, c56, c87, c57, or c59 _______
; c53:qq d24 , hs c65 ; standard procedure 1 value in call: OUTPUT(,prep fun c,);
bs (b15) t 1 ; if number of actuals 1 then go_to c59; __ ____ __ __
; comment procedure call alarm; _______
hv c59 ; top operator:= top operator + 1; pm (b16) IQB ; storewithmarks(STANDARDPROCEDURETABLE[procedureki nd], gm (b12) t 1 MQB ; marks STANDARDPROCEDURETABLE[procedurekind], pm (b4) IRB ; OPERATORSTACK[topoperator]);
hv c8 ; M:= OPERATORTABLE[par1]; parametermode:= false; _____
; go_to stackoperator; __ __
c54:qq (b4) V 3 ; procedure call or assign in call:
; par 1:= par 1 + 3; go_to c55; __ __
c67:qq (b4) t 22 ; no type in call only in call: par 1:= par 1 + 22; c55:arn(b15) D ; not formal call only in call:
b17:nc , hv c59 ; if number of actuals | number of formals then __ = ____
; go_to c59; __ __
c56:qq (b4) t -22 ; formal procedure in call: ; par 1:= par1 - 22; a16: c87:qq d25 , hs c65 ; formal procedure no type in call: b15:srn Dt 1 ; OUTPUT(.beg call,); hs c t ; OUTPUT(number of actuals + 1);
hv c75 ; go_to c75; comment stack operand from par 1; __ __ _______
c57:arn(b16) , ck 10 ; standard procedure several parameters in call: ga b19 , ck 10 ; R:= STANDARDPROCEDURETABLE[procedurekind]; pa b20 t d23 ; blocknumber:= part 2(R); ; callbyte:= ,end standard call,;
ga b18 , hv a16 ; relative address:= part 3(R); go_to c87; __ __
c58:hs c66 ; standard procedure in parametermode: pmn(b2) , cl -10 ; OUTPUT PAR 3; cln -10 , hs c ; M:= STANDARDPROCEDURETABLE[input reference]; cln -10 , hs c ; OUTPUT(part 3(M));
d i=i-e69 ; OUTPUT(part 2(M)); comment Not for CDC; _ _______
hv c6 ; go_to next symbol; __ __
c59:hs c92 ; c59: procedure call alarm: pm d2 , hh c75 ; ALARM 2; ; M:= OPERANDTABLE[,undeclared,];
; go_to c75h; comment go_to next symbol; __ __ _______ __ __
[Pass 6, page 9] c61:hs c5 , ca d26 ; end procedure:
pm d27 DV ; OUTPUT(if input = .no type proc, then __ ____
pm (b6) D ; ,end proc, else par 3); ____
d i=i-e69-e69-e69 ; _
qq ;Ulæseligt: For CDC: qq
d i=i+e69+e69-2 ; _
hs c X ; OUTPUT(input + 3); comment 3 + number of paramete _______
rs;
hs c5 , ; R:= input; comment Remove the address bytes; _______
ar 3 D ; R:= input;
hs c ; go_to next symbol; __ __
hs c5 , ; hs c5 , hv c6 ; c62: b20:qq[call byte], hs c65 ; end call in parametermode: b18:qq[rel addr] , hs c65 ; OUTPUT(call byte); OUTPUT(relative adress); b19:qq[block no] , hs c65 ; OUTPUT(blocknumber); c63:pm r V ; set normal mode: beg expr in parameter mode:
; parametermode:= false; go_to next symbol; _____ __ __
c69:hs c5 , pmf r ; expression in normal mode:
hv c6 IRB ; R:= input; comment removes ,end call,; _______
; parametermode:= true; ____
; go_to next symbol; __ __
c64:hs c66 ; beg expression in normal mode: OUTPUT PAR 3;
pm (b4) , hv c8 ; M:= OPERATORTABLE[par 1]; go_to stack operator; __ __
c88:pmf r V IRB ; beg local: parametermode:= true; OUTPUT PAR 3; ____
; go_to next symbol; __ __
c89:pm r IRB ; end local: parametermode:= false; OUTPUT PAR 3; _____
ps c6-1 , hv c66 ; go_to next symbol; __ __
c68:tk 15 , ck -8 ; prepare assign:
ga r2 , ca ; if -, (comb 15(R) ∨ comb 16(R)) then __ ____
pm 2d3 V ; M:= OPERATORTABLE[,prep undcl assign,] else ____
pm t 33 d3 ; M:= OPERATORTABLE[bit 15 to 16(R) + 33];
pp p-2 , hv c8 ; top operand:= top operand - 2; go_to stackoperato __ __
r; c90:hs c66 ; if expression:
hv c75 ; OUTPUT PAR 3; go_to c75; __ __
c71:hs c5 , gr p1 ; array: set part 1(OPERANDSTACK[topoperand+1])
hh c73 ; to: (input); go_to c73h; __ __
c72:arn 1 D ; switch: gr p1 ; set part 1(OPERANDSTACK[topoperand + 1]) to: (1); c73:hs c5 , hs c66 ; label simple formal etc normal mode: ; R:= input; ; c73h: OUTPUT PAR 3; c74:hs c5 , hs c ; copy 2: hs c5 , hs c ; OUTPUT(input); OUTPUT(input); c75:pm (b4) , gm p2 ; stackoperand of par 1: pp p+2 , hv c6 ; M:= OPERANDTABLE[par 1]; ; c75h: set operand: ; OPERANDSTACK[top operand + 2]:= M; ; top operand:= top operand + 2;
; go_to next symbol; __ __
[Pass 6, page 10] c76:hs c66 ; bounds: OUTPUT PAR 3; hs c5 , hs c ; OUTPUT(input); hs c5 , hs c ; OUTPUT(input);
hv c6 ; go_to next symbol; __ __
c77:hs c5 , ; call or assign normal mode;
qq (b4) t -3 NZ ; if input | 0 then par 1:= par 1 - 3; __ = ____
hh c73 ; go_to c73h; __ __
c78:hs c66 ; constant normal mode: OUTPUT PAR 3; hs c5 , hs c ; For CDC:
d i=i+e69-1 ; OUTPUT(input) _
hs c5 , hs c ; OUTPUT(input); hs c5 , hs c ; OUTPUT(input);
hv c74 ; go_to c74; __ __
c79:hs c5 , ; call only normal mode:
hs c94 NZ ; if input | 0 then ALARM 2a; __ = ____
hh c73 ; go_to c73h; __ __
c80:hs c5 , hs c66 ; normal identifiers parameter mode: ; R:= input; ; OUTPUT PAR 3; c84:hs c5 , hs c ; copy 2 next symbol: OUTPUT(input); c99:hs c5 , hs c ; copy next symbol: OUTPUT(input);
hv c6 ; go_to next symbol; __ __
c81:hs c66 ; constants parameter mode: OUTPUT PAR 3; hs c5 , hs c ; For CDC
d i=i+e69-1 ; OUTPUT(input); _
hs c5 , hs c ; OUTPUT(input); hs c5 , hs c ; OUTPUT(input);
hv c84 ; go_to c84; __ __
c82:qq (e4) t 1 ; CR: CRcounter:= CRcounter + 1;
hv c6 ; go_to next symbol; __ __
d i=i-e69 ; For CDC: _
ps c6-1 , hv c66 ; OUTPUT(CRcounter);
d i=i+e69-1 ; go_to next symbol; _ __ __
[21.1.66] [Pass 6, page 11]
c2: pm d2 , gm p ; procedure ALARM AND SET UNDECLARED; _________
; begin OPERANDSTACK[topoperand]:= undeclared; _____
; ALARM end; ___
c1: hs e5 ; procedure ALARM; _________
hv a17 , qq s+e42 ; begin PRINTTEXT(|<type|); PRINT(s) end; _____ < > ___
c91:hs e5 ; procedure ALARM 1; _________
hv a17 , qq s+e40 ; begin PRINTTEXT(|<subscript|); PRINT(s) end; _____ < > ___
; actual parameter expression from stack: c29:ck -4 , tk -7 ; R:= bits 36 to 38 (R); ga b25 , pp p-2 ; top operand:= top operand - 2;
ca 0 , hs c1 ; if R = 0 then ALARM; __ ____
b25:pmn[end expr]Xta21 ; OUTPUT(END EXPR[R]);
ps c6-1 , hv c ; goto next symbol; ____
d a21=i-1 ; END EXPR _
qq d12 ; 1 end RF expression qq d13 ; 2 end R expression qq d14 ; 3 end address expression qq d15 ; 4 end string expression c100:ck 6 , hv c27 ; st. func. boolean argument: d5: qq c13 +1.19+777.39 ; operatorstack pos 0 [The following instructions are overwritten by the stack] ; start pass 6: c86: , ud 5e4 ; tables from drum: gs b21 , ud 4e4 ; s:= save no:= number of std idents; a18:vk p1 , pp p1 ; p:= std table track; core:= top table place;
lk __e__ t -40 ; rep: p:= p - 1; core:= core - 40; 40_25
ps s-40 , vk p1 ; to core(p, core); s:= s - 40;
bs s , hh a18 ; if s > 0 then go_to rep; __ ____ __ __
hs c5 , ga b22 ; R:= stackref 0:= input;
b21:pp __ , hs e3 ; p:= save no; output(R); -1
b22:srn __ D ; stackref 0:= -stackref 0⨯2∧(-20); -1 |
ck 20 , gr b22 ; R:=0; arn 2e4 , mb b24 ; pack(R, 10, 19, first std proc track); a19: ; modify table:
b23:pm __e__ t -1 ; 40_25
pm b22 VX LA ; for p:= p, p-1 while p > 0 do ___ _____ __
ac (b23) V ; table[p]:= table[p] +
ac (b23) X MB ; (if bit(40, table[p]) = 0 then R __ ____
pp p-1 , bs p ; else stackref 0 + bit 41 - bit 40); ____
hv a19 ; ps (b23) , pp d4 ; s:= stack top + 1; pi 1.6 , hv c60 ; p:= address(operandstack[0]); ; normal:= t; condition waiting:= f;
; go_to initialize stack; __ __
b24:qq 0 t 511 ; mask for first std proc track;
d d30=-d5 ; -address(operator stack[0]); _
d29:
s _
[9.12.65] [PASS 6, page 12, CONTROL TABLE 1, PARAMETERMODE CDC] [Action Output]
d i=e17 ; _
qq c58.19+13.29 f ; string in real out qq c58.19+13.29 f ; no par. bool out qq c58.19+13.29 f ; more par. int.out qq c58.19+13.29 f ; more par. real out qq c58.19+13.29 f ; more par. bool out qq c58.19+142.29f ; standard integer qq c58.19+13.29 f ; array, int. out qq c58.19+13.29 f ; no par. int. out qq c58.19+13.29 f ; int. in, no type qq c81.19+ 0.29 f ; lit string qq c81.19+ 1.29 f ; lit.int. qq c81.19+ 2.29 f ; lit.real qq c81.19+ 3.29 f ; lit. Boolean qq c80.19+ 4.29 f ; own int. qq c80.19+ 5.29 f ; own real qq c80.19+ 6.29 f ; own Boolean qq c80.19+ 7.29 f ; switch qq c80.19+ 7.29 f ; array int qq c80.19+ 7.29 f ; array real qq c80.19+ 7.29 f ; array Bool qq c80.19+ 7.29 f ; proc. no type qq c80.19+ 7.29 f ; proc. no int. qq c80.19+ 7.29 f ; proc. no real qq c80.19+ 7.29 f ; proc. no Bool qq c80.19+ 8.29 f ; simple int qq c80.19+ 9.29 f ; simple real qq c80.19+10.29 f ; simple Bool qq c80.19+11.29 f ; label qq c80.19+ 7.29 f ; formal array int. qq c80.19+ 7.29 f ; formal array real qq c80.19+ 7.29 f ; formal array Bool qq c80.19+ 7.29 f ; formal proc. no type qq c80.19+ 7.29 f ; formal proc. no int. qq c80.19+ 7.29 f ; formal proc. real qq c80.19+ 7.29 f ; formal proc. Bool qq c80.19+ 7.29 f ; formal simple int. qq c80.19+ 7.29 f ; formal simple real qq c80.19+ 7.29 f ; formal simple Bool qq c80.19+ 7.29 f ; formal label qq c80.19+ 7.29 f ; formal switch qq c80.19+ 7.29 f ; formal string qq c80.19+ 7.29 f ; proc. call or assign int qq c80.19+ 7.29 f ; proc.call or assign real qq c80.19+ 7.29 f ; proc.call or assign Bool qq c40.19+12.29 f ; expression qq c62.19 f ; end call qq c63.19 f ; beg exp qq c80.19 f ; undeclared qq c58.19+13.29 f ; læs string qq c58.19+13.29 f ; læst qq c58.19+13.29 f ; output no param. qq c58.19+13.29 f ; several par. no type qq c58.19+13.29 f ; several par. nonsense qq c58.19+13.29 f ; arith in. real out qq c58.19+13.29 f ; string in, nons. out qq c58.19+13.29 f ; string in, Bool. out qq c58.19+13.29 f ; arith in, int. out qq c58.19+13.29 f ; int.in, nons. out qq c58.19+13.29 f ; arith. in, real out [PASS 6, page 13, CONTROL TABLE 2, NORMAL MODE CDC] [Type Action Output Call with par.] [141] qq 48d3+c59.19 +c53.39 f, ; bool in. real out [142] qq 25d2+c11.19 +c59.39 f, ; no par. bool. out [143] qq 1d2+c59.19 +c57.39 f, ; more par. int.out [144] qq 2d2+c59.19 +c57.39 f, ; more par. real out [145] qq 3d2+c59.19 +c57.39 f, ; more par. bool.out [146] qq 1d2+c11.19 +c59.39 f, ; standard integer [147] qq 46d3+c59.19 +c53.39 f, ; array, int. out [148] qq 23d2+c11.19 +c59.39 f, ; no par. int. out [149] qq 47d3+c59.19 +c53.39 f, ; int. in, no type [150] qq 5d2+c78.19+14.29 f, ; lit.string [151] qq 1d2+c78.19+15.29 f, ; lit.int. [152] qq 2d2+c78.19+16.29 f, ; lit.real [153] qq 3d2+c78.19+17.29 f, ; lit.Boolean [154] qq 1d2+c73.19+18.29+c59.39 f, ; own integer [155] qq 2d2+c73.19+19.29+c59.39 f, ; own real [156] qq 3d2+c73.19+20.29+c59.39 f, ; own Boolean [157] qq 11d2+c72.19+21.29+c59.39 f, ; switch [158] qq 8d2+c71.19+22.29+c59.39 f, ; array integer [159] qq 9d2+c71.19+23.29+c59.39 f, ; real [160] qq 10d2+c71.19+24.29+c59.39 f, ; Boolean [161] qq 7d2+c79.19+27.29+c67.39 f, ; proc. no type [162] qq 23d2+c79.19+25.29+c55.39 f, ; integer [163] qq 24d2+c79.19+26.29+c55.39 f, ; real [164] qq 25d2+c79.19+27.29+c55.39 f, ; Boolean [165] qq 1d2+c73.19+28.29+c59.39 f, ; simple integer [166] qq 2d2+c73.19+29.29+c59.39 f, ; real [167] qq 3d2+c73.19+30.29+c59.39 f, ; Boolean [168] qq 4d2+c73.19+31.29+c59.39 f, ; label [169] qq 14d2+c73.19+32.29+c59.39 f, ; formal array integer [170] qq 15d2+c73.19+33.29+c59.39 f, ; real [171] qq 16d2+c73.19+34.29+c59.39 f, ; Boolean [172] qq 7d2+c73.19+37.29+c87.39 f, ; formal proc.no type [173] qq 23d2+c73.19+35.29+c56.39 f, ; integer [174] qq 24d2+c73.19+36.29+c56.39 f, ; real [175] qq 25d2+c73.19+37.29+c56.39 f, ; Boolean [176] qq 1d2+c73.19+38.29+c59.39 f, ; formal simple integer [177] qq 2d2+c73.19+39.29+c59.39 f, ; real [178] qq 3d2+c73.19+40.29+c59.39 f, ; Boolean [179] qq 4d2+c73.19+41.29+c59.39 f, ; formal label [180] qq 11d2+c72.19+21.29+c59.39 f, ; formal switch [181] qq 5d2+c73.19+61.29+c59.39 f, ; formal string [182] qq 20d2+c77.19+25.29+c54.39 f, ; proc.call or ass.int. [183] qq 21d2+c77.19+26.29+c54.39 f, ; real [184] qq 22d2+c77.19+27.29+c54.39 f, ; Bool. [185] qq c69.19 f, ; expression [186] qq 2 , ; end call [187] qq 39d3+c64.19+42.29 f, ; beg exp [188] qq 13d2+c73.19 +c87.39 f, ; undeclared [189] qq 7d2+c11.19 +c59.39 f, ; læsstreng [190] qq 24d2+c11.19 +c59.39 f, ; læst [191] qq 6d2+c11.19 +c59.39 f, ; output no param. [192] qq 7d2+c59.19 +c57.39 f, ; several par. no type [193] qq 6d2+c59.19 +c57.39 f, ; several par. nonsense [194] qq 40d3+c59.19 +c53.39 f, ; arith.in, real out [195] qq 41d3+c59.19 +c53.39 f, ; string in, nons. out [196] qq 42d3+c59.19 +c53.39 f, ; string in, Bool. out [197] qq 43d3+c59.19 +c53.39 f, ; arith.in, int. out [198] qq 44d3+c59.19 +c53.39 f, ; int.in, nonsense out [199] qq 45d3+c59.19 +c53.39 f, ; arith.in, real out [PASS 6, page 14, CONTROL TABLE 3 CDC] [mode independent symbols originating in pass 3, values rel. to d50 in 3] [Priority Action Output or operator] [200] qq 2.9+c48.19+ 43.29 ; bound comma [201] qq 2.9+c47.19+ 44.29 ; subscr.comma [202] qq c31.19+ 45.29 f ; proc; [203] qq 12d2.9+c90.19+ 46.29 f ; ifex [204] qq c40.19+ 46.29 f ; ifst [205] qq 3.9+c44.19+ 47.29 ; thenex [206] qq 3.9+c36.19 ; elseex [207] qq c83.19+ 45.29 f ; delete call [208] qq 3.9+c37.19 ; end else ex [209] qq c40.19+ 48.29 f ; end else st [210] qq c40.19+ 48.29 f ; end then st [211] qq c30.19+ 49.29 f ; end go to [212] qq c40.19+ 50.29 f ; for [213] qq 3.9+c39.19+ 51.29 ; step [214] qq 3.9+c39.19+ 52.29 ; until [215] qq c40.19+ 53.29 f ; end do [216] qq c9.19 +16d3.39 f ; pos [217] qq c9.19 +15d3.39 f ; neg [218] qq 9.9+c32.19+12d3.29+17d3.39 ; + [219] qq 9.9+c32.19+13d3.29+18d3.39 ; - [220] qq 10.9+c32.19+14d3.29+19d3.39 ; ⨯ [221] qq 10.9+c32.19+20d3.29+20d3.39 ; /
[222] qq 10.9+c33.19+22d3.29 ; _ :
[223] qq 11.9+c32.19+23d3.29+21d3.39 ; ∧ |
[224] qq 8.9+c32.19+24d3.29+24d3.39 ; <
[225] qq 8.9+c32.19+25d3.29+25d3.39 ; _ <
[226] qq 8.9+c32.19+26d3.29+26d3.39 ; =
[227] qq 8.9+c32.19+27d3.29+27d3.39 ; _ >
[228] qq 8.9+c32.19+28d3.29+28d3.39 ; >
[229] qq 8.9+c32.19+29d3.29+29d3.39 ; | =
[230] qq 6.9+c34.19+30d3.29 ; ∧ [231] qq 5.9+c34.19+31d3.29 ; ∨ [232] qq 4.9+c43.19+31d3.29 ; =>
[233] qq 3.9+c34.19+32d3.29 ; _ =
[234] qq c9.19 +37d3.39 f ; ( [235] qq c35.19 +37d3.39 f ; [ [236] qq 3.9+c41.19 ; right bracket [237] qq 3.9+ c7.19 ; ) [238] qq c9.19 +33d3.39 f ; -, [239] qq 3.9+c39.19+ 54.29 ; simple for and do [240] qq 3.9+c95.19+ 55.29 ; stepelement and do [241] qq 3.9+c45.19+ 56.29 ; while element and do [2.12.65] [PASS 6, page 15, CONTROL TABLE 4 CDC] [MODE INDEPENDENT SYMBOLS FROM PASS 4, VALUES RELATIVE TO d22] [PRIORITY ACTION OUTPUT] [ 0] qq c89.19+ 57.29 f ; end local [ 1] qq c96.19+ 58.29 f ; bypasslabel [ 2] qq c40.19+ 59.29 f ; goto bypasslabel [ 3] qq c40.19+ 60.29 f ; labelcolon [ 4] qq 2.9+c49.19 ; boundcolon [ 5] qq 2.9+c48.19+125.29 ; end bounds integer [ 6] qq 2.9+c48.19+126.29 ; end bounds real [ 7] qq 2.9+c48.19+127.29 ; end bounds Boolean [ 8] qq 3.9+c44.19+ 47.29 ; thenst = then ex [ 9] qq c40.19+ 62.29 f ; else st [10] qq c46.19+ 63.29 f ; := for [11] qq 3.9+c95.19+ 64.29 ; stepelem [12] qq c42.19+ 65.29+38d3.39 f ; first:= [13] qq 3.9+c39.19+ 66.29 ; while [14] qq 3.9+c45.19+ 67.29 ; while element [15] qq c68.19 f ; prepare assign [16] qq 3.9+c39.19+ 68.29 ; simple for [17] qq 2.9+ c6.19 ; end assign [18] qq c85.19 f ; do [19] qq c40.19+ 69.29 f ; while label [20] qq c38.19+ 65.29+38d3.39 f ; := [21] qq 2.9 ; end ex [22] qq 2.9+c30.19+109.29 ; end des [MODE INDEPENDENT SYMBOLS FROM PASS 5. VALUES RELATIVE TO d10] [ 0] qq c50.19+ 70.29 f ; local switch [ 1] qq c50.19+ 71.29 f ; local proc [ 2] qq c40.19+ 72.29 f ; local label [ 3] qq c40.19+ 73.29 f ; blind [ 4] qq c51.19+ 74.29 f ; end pass [ 5] qq c82.19+130.29 f ; CR [ 6] qq c50.19+ 75.29 f ; beg block [ 7] qq c50.19+ 76.29 f ; beg proc [ 8] qq c61.19 f ; end proc [ 9] qq c50.19+ 77.29 f ; take value integer [10] qq c50.19+ 78.29 f ; take value real [11] qq c50.19+ 79.29 f ; take value Boolean [12] qq c52.19+ 80.29 f ; beg call [13] qq c40.19+ 81.29 f ; end block [14] qq c76.19+ 82.29 f ; bounds [15] qq c88.19+138.29 f ; beg local [19.1.66] [PASS 6, page 16. OPERATOR TABLE CDC] [i=2d3 ACTION PRIORITY CHECK OUTPUT OUTPUTSYMBOL [ 2] qq c14+ 2.19+c25.29 ; prep. undecl. ass. [ 3] qq c14+ 3.19+c22.29 ; undecl. 3 [ 4] qq c14+ 4.19+c22.29 ; undecl. 4 [ 5] qq c14+ 5.19+c22.29 ; undecl. 5 [ 6] qq c14+ 6.19+c22.29 ; undecl. 6 [ 7] qq c14+ 7.19+c22.29 ; undecl. 7 [ 8] qq c14+ 8.19+c22.29 ; undecl. 8 [ 9] qq c14+ 9.19+c22.29 ; undecl. 9 [10] qq c14+10.19+c22.29 ; undecl. 10 [11] qq c14+11.19+c22.29 ; undecl. 11 [12] qq c13+ 9.19+c16.29+ 83.39 ; i+ : + [13] qq c13+ 9.19+c16.29+ 84.39 ; i- : - [14] qq c13+10.19+c16.29+ 85.39 ; i⨯ : ⨯ [15] qq c13+ 9.19+c16.29+105.39 ; neg: neg [16] qq c14+ 9.19+c16.29 ; pos [17] qq c13+ 9.19+c17.29+ 83.39 ; r+ : + [18] qq c13+ 9.19+c17.29+ 84.39 ; r- : - [19] qq c13+10.19+c17.29+ 85.39 ; r⨯ : ⨯ [20] qq c13+10.19+c17.29+ 86.39 ; /: /
[21] qq c12+11.19+c17.29+ 89.39 ; r∧ : ∧ real | |
[22] qq c13+10.19+c18.29+ 87.39 ; _ : _ : :
[23] qq c12+11.19+c16.29+ 89.39 ; i∧ : ∧real | |
[24] qq c14+ 8.19+c20.29+ 96.39 ; < : <
[25] qq c14+ 8.19+c20.29+ 97.39 ; _ : _ < <
[26] qq c14+ 8.19+c20.29+ 98.39 ; = : =
[27] qq c14+ 8.19+c20.29+ 99.39 ; _ : _ > >
[28] qq c14+ 8.19+c20.29+100.39 ; > : >
[29] qq c14+ 8.19+c20.29+101.39 ; | : | = =
[30] qq c13+ 6.19+c21.29+102.39 ; ∧ : ∧ [31] qq c13+ 5.19+c21.29+103.39 ; ∨ : ∨
[32] qq c13+ 3.19+c21.29+104.39 ; _ : _ = =
[33] qq c13+ 7.19+c21.29+d20.39 ; -, : -, [34] qq c14+ 2.19+c24.29+d28.39 ; prep. int. ass. : prepare assign [35] qq c13+ 2.19+c23.29+d28.39 ; prep.real ass. : prepare assign [36] qq c13+ 2.19+c19.29+d28.39 ; prep. Bool. ass. : prepare assign [37] qq 1.19 ; ( [38] qq c13+ 2.19+ c3.29+107.39 ; := : := [39] qq c14+ 2.19+c29.29[RESULT TYPE] ; actual parameter [40] qq c10+ 2.19+c27.29+2d2.39 ; arith.in, val. out: real [41] qq c10+ 2.19+c28.29+6d2.39 ; string in.nons. out: nonsense [42] qq c10+ 2.19+c28.29+3d2.39 ; string.Bool. out: Boolean [43] qq c10+ 2.19+c27.29+1d2.39 ; arith.in, int. out: integer [44] qq c26+ 2.19+c27.29+6d2.39 ; int.in, nons. out: nonsense [45] qq c10+ 2.19+c27.29+2d2.39 ; arith.in, val. out: real [46] qq c10+ 2.19+c93.29+1d2.39 ; array in, int. out: integer [47] qq c26+ 2.19+c27.29+7d2.39 ; int. in, no type: no type [48] qq c10+ 2.19+c28.29+2d2.39 ; string in, real out: real d8: [TABLE HAS 47 WORDS, FROM 2d3 TO 48d3]
d a2=e69+e69, a2=a2+a2+a2+a2 ; e69= if CDC then 1 else 0 _ __ ____ ____
d a2=a2+a2+a2+a2+a2+a2+a2+a2 ; a2=64⨯e69 _
b k=e15+e70+a2, i=e17 ; begin drum block _ _____
[25. Jan. 65] [PASS 6, page 17, CONTROL TABLE 1, PARAMETERMODE GIER] [Action Output] qq c58.19+89.29 f ; bool in real out qq c58.19+89.29 f ; no par. bool out qq c58.19+89.29 f ; more par. int.out qq c58.19+89.29 f ; more par. real out qq c58.19+89.29 f ; more par. bool out qq c58.19+86.29 f ; standard integer qq c58.19+89.29 f ; array, int. out qq c58.19+89.29 f ; no par. int. out qq c58.19+89.29 f ; int. in, no type qq c81.19+90.29 f ; lit string qq c81.19+90.29 f ; lit.int. qq c81.19+90.29 f ; lit.real qq c81.19+90.29 f ; lit. Boolean qq c80.19+87.29 f ; own int. qq c80.19+87.29 f ; own real qq c80.19+87.29 f ; own Boolean qq c80.19+88.29 f ; switch qq c80.19+88.29 f ; array int qq c80.19+88.29 f ; array real qq c80.19+88.29 f ; array Bool qq c80.19+88.29 f ; proc. no type qq c80.19+88.29 f ; proc. no int. qq c80.19+88.29 f ; proc. no real qq c80.19+88.29 f ; proc. no Bool qq c80.19+86.29 f ; simple int qq c80.19+86.29 f ; simple real qq c80.19+86.29 f ; simple Bool qq c80.19+86.29 f ; label qq c80.19+88.29 f ; formal array int. qq c80.19+88.29 f ; formal array real qq c80.19+88.29 f ; formal array Bool qq c80.19+88.29 f ; formal proc. no type qq c80.19+88.29 f ; formal proc. no int. qq c80.19+88.29 f ; formal proc. real qq c80.19+88.29 f ; formal proc. Bool qq c80.19+88.29 f ; formal simple int. qq c80.19+88.29 f ; formal simple real qq c80.19+88.29 f ; formal simple Bool qq c80.19+88.29 f ; formal label qq c80.19+88.29 f ; formal switch qq c80.19+88.29 f ; formal string qq c80.19+88.29 f ; proc. call or assign int qq c80.19+88.29 f ; proc.call or assign real qq c80.19+88.29 f ; proc.call or assign Bool qq c40.19+85.29 f ; expression qq c62.19 f ; end call qq c63.19 f ; beg exp qq c80.19 f ; undeclared qq c58.19+89.29 f ; læs string qq c58.19+89.29 f ; læst qq c58.19+89.29 f ; output no param. qq c58.19+89.29 f ; several par. no type qq c58.19+89.29 f ; several par. nonsense qq c58.19+89.29 f ; arith in, real out qq c58.19+89.29 f ; string in, nons. out qq c58.19+89.29 f ; string in, Bool. out qq c58.19+89.29 f ; arith in, int. out qq c58.19+89.29 f ; int.in, nons. out qq c58.19+89.29 f ; arith. in, real out [PASS 6. page 18, CONTROL TABLE 2, NORMAL MODE GIER] [Type Action Output Call with par.] [141] qq 48d3+c59.19 +c53.39 f, ; bool in. real out [142] qq 25d2+c11.19 +c59.39 f, ; no par. bool. out [143] qq 1d2+c59.19 +c57.39 f, ; more par. int.out [144] qq 2d2+c59.19 +c57.39 f, ; more par. real out [145] qq 3d2+c59.19 +c57.39 f, ; more par. bool.out [146] qq 1d2+c11.19 +c59.39 f, ; standard integer [147] qq 46d3+c59.19 +c53.39 f, ; array, int. out [148] qq 23d2+c11.19 +c59.39 f, ; no par. int. out [149] qq 47d3+c59.19 +c53.39 f, ; int. in, no type [150] qq 5d2+c78.19+95.29 f, ; lit.string [151] qq 1d2+c78.19+95.29 f, ; lit.int. [152] qq 2d2+c78.19+95.29 f, ; lit.real [153] qq 3d2+c78.19+95.29 f, ; lit.Boolean [154] qq 1d2+c73.19+75.29+c59.39 f, ; own integer [155] qq 2d2+c73.19+75.29+c59.39 f, ; own real [156] qq 3d2+c73.19+75.29+c59.39 f, ; own Boolean [157] qq 11d2+c72.19+76.29+c59.39 f, ; switch [158] qq 8d2+c71.19+73.29+c59.39 f, ; array integer [159] qq 9d2+c71.19+73.29+c59.39 f, ; real [160] qq 10d2+c71.19+73.29+c59.39 f, ; Boolean [161] qq 7d2+c79.19+79.29+c67.39 f, ; proc. no type [162] qq 23d2+c79.19+79.29+c55.39 f, ; integer [163] qq 24d2+c79.19+79.29+c55.39 f, ; real [164] qq 25d2+c79.19+79.29+c55.39 f, ; Boolean [165] qq 1d2+c73.19+74.29+c59.39 f, ; simple integer [166] qq 2d2+c73.19+74.29+c59.39 f, ; real [167] qq 3d2+c73.19+74.29+c59.39 f, ; Boolean [168] qq 4d2+c73.19+74.29+c59.39 f, ; label [169] qq 14d2+c73.19+73.29+c59.39 f, ; formal array integer [170] qq 15d2+c73.19+73.29+c59.39 f, ; real [171] qq 16d2+c73.19+73.29+c59.39 f, ; Boolean [172] qq 7d2+c73.19+79.29+c87.39 f, ; formal proc.no type [173] qq 23d2+c73.19+79.29+c56.39 f, ; integer [174] qq 24d2+c73.19+79.29+c56.39 f, ; real [175] qq 25d2+c73.19+79.29+c56.39 f, ; Boolean [176] qq 1d2+c73.19+78.29+c59.39 f, ; formal simple integer [177] qq 2d2+c73.19+78.29+c59.39 f, ; real [178] qq 3d2+c73.19+78.29+c59.39 f, ; Boolean [179] qq 4d2+c73.19+78.29+c59.39 f, ; formal label [180] qq 11d2+c72.19+76.29+c59.39 f, ; formal switch [181] qq 5d2+c73.19+78.29+c59.39 f, ; formal string [182] qq 20d2+c77.19+79.29+c54.39 f, ; proc.call or ass.int. [183] qq 21d2+c77.19+79.29+c54.39 f, ; real [184] qq 22d2+c77.19+79.29+c54.39 f, ; Bool. [185] qq c69.19 f, ; expression [186] qq 2 , ; end call [187] qq 39d3+c64.19+11.29 f, ; beg exp [188] qq 13d2+c73.19 +c87.39 f, ; undeclared [189] qq 7d2+c11.19 +c59.39 f, ; læsstreng [190] qq 24d2+c11.19 +c59.39 f, ; læst [191] qq 6d2+c11.19 +c59.39 f, ; output no param. [192] qq 7d2+c59.19 +c57.39 f, ; several par. no type [193] qq 6d2+c59.19 +c57.39 f, ; several par. nonsense [194] qq 40d3+c59.19 +c53.39 f, ; arith.in, real out [195] qq 41d3+c59.19 +c53.39 f, ; string in, nons. out [196] qq 42d3+c59.19 +c53.39 f, ; string in, Bool. out [197] qq 43d3+c59.19 +c53.39 f, ; arith.in, int. out [198] qq 44d3+c59.19 +c53.39 f, ; int.in, nonsense out [199] qq 45d3+c59.19 +c53.39 f, ; arith.in, real out [PASS 6, page 19, CONTROL TABLE 3 GIER] [mode independent symbols originating in pass 3, values rel. to d50 in 3] [Priority Action Output or operator] [200] qq 2.9+c48.19+ 99.29 ; bound comma [201] qq 2.9+c47.19+ 28.29 ; subscr.comma [202] qq c31.19+ 39.29 f ; proc; [203] qq 12d2.9+c90.19+ 12.29 f ; ifex [204] qq c40.19+ 12.29 f ; ifst [205] qq 3.9+c44.19+ 46.29 ; thenex [206] qq 3.9+c36.19 ; elseex [207] qq c83.19+ 39.29 f ; delete call [208] qq 3.9+c37.19 ; end else ex [209] qq c40.19+ 14.29 f ; end else st [210] qq c40.19+ 14.29 f ; end then st [211] qq c30.19+ 50.29 f ; end go to [212] qq c40.19+ 15.29 f ; for [213] qq 3.9+c39.19+ 22.29 ; step [214] qq 3.9+c39.19+ 23.29 ; until [215] qq c40.19+ 26.29 f ; end do [216] qq c9.19 +16d3.39 f ; pos [217] qq c9.19 +15d3.39 f ; neg [218] qq 9.9+c32.19+12d3.29+17d3.39 ; + [219] qq 9.9+c32.19+13d3.29+18d3.39 ; - [220] qq 10.9+c32.19+14d3.29+19d3.39 ; ⨯ [221] qq 10.9+c32.19+20d3.29+20d3.39 ; /
[222] qq 10.9+c33.19+22d3.29 ; _ :
[223] qq 11.9+c32.19+23d3.29+21d3.39 ; ∧ |
[224] qq 8.9+c32.19+24d3.29+24d3.39 ; <
[225] qq 8.9+c32.19+25d3.29+25d3.39 ; _ <
[226] qq 8.9+c32.19+26d3.29+26d3.39 ; =
[227] qq 8.9+c32.19+27d3.29+27d3.39 ; _ >
[228] qq 8.9+c32.19+28d3.29+28d3.39 ; >
[229] qq 8.9+c32.19+29d3.29+29d3.39 ; | =
[230] qq 6.9+c34.19+30d3.29 ; ∧ [231] qq 5.9+c34.19+31d3.29 ; ∨ [232] qq 4.9+c43.19+31d3.29 ; =>
[233] qq 3.9+c34.19+32d3.29 ; _ =
[234] qq c9.19 +37d3.39 f ; ( [235] qq c35.19 +37d3.39 f ; [ [236] qq 3.9+c41.19 ; right bracket [237] qq 3.9+ c7.19 ; ) [238] qq c9.19 +33d3.39 f ; -, [239] qq 3.9+c39.19+ 18.29 ; simple for and do [240] qq 3.9+c95.19+ 25.29 ; stepelement and do [241] qq 3.9+c45.19+ 21.29 ; while element and do [2.12.65] [PASS 6, page 20, CONTROL TABLE 4 GIER] [MODE INDEPENDENT SYMBOLS FROM PASS 4, VALUES RELATIVE TO d22] [PRIORITY ACTION OUTPUT] [ 0] qq c89.19+ 1.29 f ; end local [ 1] qq c96.19+104.29 f ; bypasslabel [ 2] qq c40.19+ 8.29 f ; goto bypasslabel [ 3] qq c40.19+ 9.29 f ; labelcolon [ 4] qq 2.9+c49.19 ; boundcolon [ 5] qq 2.9+c48.19+100.29 ; end bounds integer [ 6] qq 2.9+c48.19+100.29 ; end bounds real [ 7] qq 2.9+c48.19+100.29 ; end bounds Boolean [ 8] qq 3.9+c44.19+ 46.29 ; thenst [ 9] qq c40.19+ 13.29 f ; else st [10] qq c46.19+ 16.29 f ; := for [11] qq 3.9+c95.19+ 24.29 ; stepelem [12] qq c42.19+ 80.29+38d3.39 f ; first:= [13] qq 3.9+c39.19+ 19.29 ; while [14] qq 3.9+c45.19+ 20.29 ; while element [15] qq c68.19 f ; prepare assign [16] qq 3.9+c39.19+ 17.29 ; simple for [17] qq 2.9+ c6.19 ; end assign [18] qq c85.19 f ; do [19] qq c40.19+ 10.29 f ; while label [20] qq c38.19+ 80.29+38d3.39 f ; := [21] qq 2.9 ; end ex [22] qq 2.9+c30.19+ 38.29 ; end des [MODE INDEPENDENT SYMBOLS FROM PASS 5, VALUES RELATIVE TO d10] [ 0] qq c50.19+ 81.29 f ; local switch [ 1] qq c50.19+ 82.29 f ; local proc [ 2] qq c40.19+ 83.29 f ; local label [ 3] qq c40.19+ 84.29 f ; blind [ 4] qq c51.19+103.29 f ; end pass [ 5] qq c82.19 f ; CR [ 6] qq c50.19+ 6.29 f ; beg block [ 7] qq c50.19+ 3.29 f ; beg proc [ 8] qq c61.19+ 5.29 f ; end proc [ 9] qq c50.19+101.29 f ; take value integer [10] qq c50.19+102.29 f ; take value real [11] qq c50.19+102.29 f ; take value Boolean [12] qq c52.19+ 2.29 f ; beg call [13] qq c40.19+ 7.29 f ; end block [14] qq c76.19+ 98.29 f ; bounds [15] qq c88.19+ 0.29 f ; beg local
s _
[PASS 6, page 21, OPERATOR TABLE GIER, 17.june 1965] [i=2d3 ACTION PRIORITY CHECK OUTPUT OUTPUTSYMBOL] [ 2] qq c14+ 2.19+c25.29 ; prep. undecl. ass. [ 3] qq c14+ 3.19+c22.29 ; undecl. 3 [ 4] qq c14+ 4.19+c22.29 ; undecl. 4 [ 5] qq c14+ 5.19+c22.29 ; undecl. 5 [ 6] qq c14+ 6.19+c22.29 ; undecl. 6 [ 7] qq c14+ 7.19+c22.29 ; undecl. 7 [ 8] qq c14+ 8.19+c22.29 ; undecl. 8 [ 9] qq c14+ 9.19+c22.29 ; undecl. 9 [10] qq c14+10.19+c22.29 ; undecl. 10 [11] qq c14+11.19+c22.29 ; undecl. 11 [12] qq c13+ 9.19+c16.29+ 51.39 ; i+ : + [13] qq c13+ 9.19+c16.29+ 52.39 ; i- : - [14] qq c13+10.19+c16.29+ 53.39 ; i⨯ : ⨯ [15] qq c13+ 9.19+c16.29+ 35.39 ; neg: neg [16] qq c14+ 9.19+c16.29 ; pos [17] qq c13+ 9.19+c17.29+ 51.39 ; r+ : + [18] qq c13+ 9.19+c17.29+ 52.39 ; r- : - [19] qq c13+10.19+c17.29+ 53.39 ; r⨯ : ⨯ [20] qq c13+10.19+c17.29+ 54.39 ; /: /
[21] qq c12+11.19+c17.29+ 57.39 ; r∧ : ∧ real | |
[22] qq c13+10.19+c18.29+ 55.39 ; _ : _ : :
[23] qq c12+11.19+c16.29+ 57.39 ; i∧ : ∧real | |
[24] qq c14+ 8.19+c20.29+ 64.39 ; < : <
[25] qq c14+ 8.19+c20.29+ 65.39 ; _ : _ < <
[26] qq c14+ 8.19+c20.29+ 66.39 ; = : =
[27] qq c14+ 8.19+c20.29+ 67.39 ; _ : _ > >
[28] qq c14+ 8.19+c20.29+ 68.39 ; > : >
[29] qq c14+ 8.19+c20.29+ 69.39 ; | : | = =
[30] qq c13+ 6.19+c21.29+ 70.39 ; ∧ : ∧ [31] qq c13+ 5.19+c21.29+ 71.39 ; ∨ : ∨
[32] qq c13+ 3.19+c21.29+ 72.39 ; _ : _ = =
[33] qq c13+ 7.19+c21.29+d20.39 ; -, : -, [34] qq c14+ 2.19+c24.29+d28.39 ; prep. int. ass. : prepare assign [35] qq c13+ 2.19+c23.29+d28.39 ; prep.real ass. : prepare assign [36] qq c13+ 2.19+c19.29+d28.39 ; prep. Bool. ass. : prepare assign [37] qq 1.19 ; ( [38] qq c13+ 2.19+ c3.29+ 49.39 ; := : := [39] qq c14+ 2.19+c29.29[RESULT TYPE] ; actual parameter [40] qq c10+ 2.19+c27.29+2d2.39 ; arith.in, val. out: real [41] qq c10+ 2.19+c28.29+6d2.39 ; string in,nons. out: nonsense [42] qq c10+ 2.19+c28.29+3d2.39 ; string in.Bool. out: Boolean [43] qq c10+ 2.19+c27.29+1d2.39 ; arith.in, int. out: integer [44] qq c26+ 2.19+c27.29+6d2.39 ; int.in, nons. out: nonsense [45] qq c10+ 2.19+c27.29+2d2.39 ; arith.in, val. out: real [46] qq c10+ 2.19+c93.29+1d2.39 ; array in, int. out: integer [47] qq c26+ 2.19+c27.29+7d2.39 ; int. in, no type: no type [48] qq c10+ 2.19+c100.29+2d2.39; bool in, real out: real d7: [TABLE HAS 47 WORDS, FROM 2d3 TO 48d3]
e ; end GIER table drum block _
[PASS 6, page 22, OPERAND TABLE]
d i=d2 _
[ 0] qq 367.9+679.19+143.29+1.32+1.38 ; undeclared [ 1] qq 434.9+ 42.19+312.29+1.32+1.38 ; integer [ 2] qq 338.9+ 49.19+408.29+1.32+1.38 ; real [ 3] qq 6.9+348.19+516.29 +2.38 ; boolean [ 4] qq 1.9+ 96.19+642.29 +3.38 ; label [ 5] qq 64.19+769.29 +4.38 ; string [ 6] qq 544.19+904.29 +1.38 ; nonsense [ 7] qq 512.19 ; no type proc. [ 8] qq 128.19 +4.32+1.35 ; int. arr [ 9] qq 128.19 +4.32+2.35 ; real arr. [10] qq 128.19 +4.32+3.35 ; bool. arr. [11] qq 128.19 +6.32+4.35 ; switch [12] qq +127.29 ; unknown type [13] qq 367.9+679.19+143.29+1.32+1.38 ; undeclared [14] qq 128.19 +1.35 ; for.int.arr. [15] qq 128.19 +2.35 ; for.real arr. [16] qq 128.19 +3.35 ; for.bool.arr. [17] qq 8.19 ; proc 1 = procedure with [18] qq 16.19 ; parameters, call and assign [19] qq 24.19 ; [20] qq 434.9+552.19+312.29 +1.38 ; proc 2 = procedure without [21] qq 338.9+560.19+408.29 +1.38 ; parameters, call and assign [22] qq 6.9+856.19+516.29 +2.38 ; [23] qq 434.9+544.19+312.29 +1.38 ; proc 3 = procedure without [24] qq 338.9+544.19+408.29 +1.38 ; parameters, call only [25] qq 6.9+832.19+516.29 +2.38 ; d9:
d i=39d29, d4= d5+50 ; _
d e18=c86, e16=k-e70 ; Pass word parameters _
e ; _
d i=4e21, e22=e16-e15-1 ; _
qqe15.9-e24.9+e18.19+e22.36+e22.34+205e13.39; Pass word
d e15=e16 ; _
s _