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

⟦561183d80⟧ Bits:30000737 GIER ALGOL III PASS 8, 8-hole paper tape

    Length: 50533 (0xc565)
    Description: Bits:30000737 GIER ALGOL III PASS 8
    Types: 8-hole paper tape
    Notes: Gier Text

GIER Text (HTML)

[13.3.64]
[Pass 8. Page 0]
b k=e15+e70, i=205e13, a70, b40, d33; start pass 8 block _
d e17=i ; _
; comment variables _______
b: qq _c_ ; initial last used 2_1
b1: qq ; instr
b3: ps (__) ; ps instr -1
b8: qq ____e__.19-_.39 ; base -124_13 1
b12:qq ; const
b a11, b10, d4 ; Move pass 7 output to first track; _
d d1=e25-80 ; bit array done[0:959]; comment 30 words⨯32bits _ ___ _____ _______
d b3=30d1 ; holds i.14 _
d b4=31d1 ; - j.14 _
d b2=3b4 ; - d.14 _
d d2=8b4 ; initial value for buffer 1 _
d d3=40d2 ; - - - - 2 _
[ 1b4 holds used tracks.14 4b4 - last track.14 5b4 - available tracks.14 7b4 - output track.14]
a10:arn b4 ; boolean procedure move; _______ _________
ga b9 , tk 10 ; begin _____
ck -5 , ga b8 ; move:= -,done[j];
b9: arn __ t d1 ; done[j]:= true ; comment true is 1; -1 ____ _______ ____
b8: ck __ ; end; -1 ___
hr s1 LO ; ar 512 D ; ns (b8) , ck s ; gr (b9) , hr s2 ;
a11:arn b4 ; procedure track; _________
ar 7b4 , sr 4b4 ; begin _____
sr 5b4 NT ; tk:= j+outputtrack;
ar 4b4 , ck 5 ; if tk > lasttrack then __ ____
ga r1 ; tk:= tk-available;
vk __ , hh s ; end; -1 ___
d4: qq 1.14 ; comment constant for counting; _______
a59: ; Start pass 8: move tracks:
a1: arn(1e4)D ; comment these instructions shift the _______
ck -5 , gr 1b4 ; values of used tracks, lasttrack arn(5e4)D ; available and outputtrack so that they ck -5 , gr 5b4 ; are stored with unit in bit 14 instead arn(7e4)D ; of bit 9; ck -5 , gr 7b4 ; arn(4e4)D ; ck -5 , gr 4b4 ; sr 5b4 , sr 7b4 ; R:= lasttrack-available-outputtrack
ar 5b4 LT ; if R < 0 then R:= R+available; __ ____
hv a6 LZ ; if R | 0 then __ = ____
gr b2 , ps 32 ; begin d:= R; _____
ps s-1 , grn sd1 ; for s:= 0 step 1 until 959 do ___ ____ _____ __
bs s , hv r-1 ; done[s]:= false; i:= j:= 0; _____
[7.9.65] [Pass 8, Page 1] ; loopi:
a2: hs a10 ; if move then __ ____
hv a5 ; begin _____
hs a11 , lk (b5) ; track: from drum(buffer1); a3: arn b4 , ar b2 ; loopj:
gr b4 , sr 5b4 ; j:= j+d-(if j+d _ available then __ > ____
gr b4 NT ; available else 0); ____
arn b4 , sr 1b4 ; if j < usedtracks then __ ____
hs a10 LT ; begin _____
hv a4 ; if move then __ ____
b5: pp d_ , it (b10); begin p:= buffer1; _2 _____
pa b5 , gp b10 ; buffer1:= buffer2; buffer2:= p; hs a11 , lk (b5) ; track; from buffer (buffer1);
b10:sk d_ , hv a3 ; to drum (buffer2); go to loopj _3 __ __
; end ___
; end j < used tracks; ___
a4: hs a11 , sk (b5) ; track; to drum (buffer1)
; end; ___
a5: arn d4 , ar b3 ; i:= j:= i+1;
gr b3 , gr b4 ; if j < used tracks then __ ____
sr 1b4 ; go to loopi __ __
a6: hv a2 LT ; end R | 0; ___ =
e ; end move tracks _
; initialize pass 8: vk(4e4) , lk124e13; to core(last track, first output buffer); it(10e4), pa 6e4 ; input track:= it(1e4) , qq (6e4); used tracks + first track - 1; qq(5e4) t 1 ; available:= available+1; pm(4e4) DX 1 ; last track:= output track := last track + 1; ga 7e4 , ck 10 ; track base:= last track-1; ac b8 , hs a9 ; call(next byte); ac b37 , it(b37) ; stack ref:= display+byte; pt b17 , ac b ; initial last used:= stack ref + 2; pt e12 t -41 ; adjust OUTADDRESS counting; pa 2e4 t d21 ; min free stack:= start free stack; grn d8 MA ; A[start stack 2]:= 1; arn 2e4 , ck 10 ; convert relative track number to tl -30 , ps d1 ; absolute for table words
; pm 256 D LB ; call ln, call exp, and call ∧integ; |
qq ; MOGENS HACK ac s13 , tl 1 ; tk -1 , ac s11 ; ac s12 , arn7e4 tk 12 , ac r1 ; t:= textno ⨯ 4 -5;
pp __ , ps a21 ; set return(next); -5
tk -2 , ac b10 ; wconst:= Firstword - 1 + (39 + textno);
vk 0 , pi 0 ; oldhalf:= sets:= false; oldA:= oldB:= 0; _____
hv a13 ; go to byte read; __ __
[Rettet 28.jan.63] [Pass8, page2] [addbyte and store: prel: parentprel: absaddr: with byte] a1: hs a9 ; R:= call(nextbyte); [add R and store] a2: ac b1 V IPC; instr:= instr + R; PA:= newA; PB:= newB; [store: fixed instr:] ; skip; a3: pm b1 IPC; PA:= newA; PB:= newB;
hv a60 NRA; if oldhalf then __ ____
hv a61 NTB; begin if newhalf∧ _____ __
qq V NQA; -, (oldA = 1 ∧ hv a61 LPB; PB = )∧ qq V NQB; -, (oldB = 1∧
hv a61 LPA; PA = 1) then ____
pi 48 V - 51 LQB; begin if oldA = 1 then PB := 1; _____ __ ____
pi 32 t - 35 ; PA := 1; oldhalf:= false; _____
arn (b2) , ck -10 ; word[w]:= bits(0, 29, word[w]) + ar b1 IQC; instr; oldA:= newA; oldB:= newB;
b2: gr ___e__ MPC; A[w]:= PA; B[w]:= PB; 164_13
pp p2 , hr s1 ; t:= t + 2; return
[not compatible:] ; end; ___
a61: pp p2 V NRB; if -, sets then t:= t+2 __ ____
hs a6 ; else call(storeps) ____
; end; ___
a60: pp p2 V NTB; if -, newhalf then t:= t + 2 __ ____
pi 2 V - 35 ; else begin PA:= 0; oldhalf:= true end; ____ _____ ____ ___
pm r IRA; if -, newhalf then oldhalf:= false; __ ____ _____
pm b1 IQC; w:= w - 1; oldA:= newA; oldB:= newB; gm (b2) t - 1 MPC; word[w]:= instr; A[w]:= PA; B[w]:= PB; pp p2 , hr s1 ; t:= t + 2; return; [maybe storeps:]
a5: arn b3 , ca (b4) ; if bits(0, 9, psinstr) = news then __ ____
hr s1 ; return;
[storeps:] ; if oldhalf then __ ____
a6: pi 8 V - 12 LRA; oldA:= 1 else oldA:= oldB:= 0; ____
pin 2 V - 16 ; sets:= false; oldhalf:= -, oldhalf; _____
arn (b2) , ck -10 ; R:= (if -,oldhalf then bits(0,29,word[w]) __ ____
ar b3 , pp p1 ; else 0) + psinstr; t:= t + 1; ____
it -1 LRA; if oldhalf then w:= w - 1; __ ____
gr (b2) MQC; word[w]:= R; A[w]:= oldA; B[w]:= oldB; hr s1 ; return; [left next byte:] a7: cl 10 ; shift previous byte to M from left; [next byte:] a9: arn (e1) t 1 ; Raddr:= input; hs e2 LA ; hr s1 ; return; [21.jan.63] [Pass 8, page 3] [maybechangetrack:]
a10: bs (b5) t 1 LTB; if -, newhalf ∨ appetite + t > 1 ∨ __
hv a11 ;
pm b1 ; (newA = 0 ∧ newB = 0) then ____
hv a11 NC ; go_to change track; __ __
hr s1 NRA; if -, oldhalf ∨ __
qq V NQA; (oldA = 1 ∧ hv a11 LB ; newB = 1) ∨ hr s1 NA ; (oldB = 1 ∧
hr s1 NQB; newA = 1) then return; ____
[changetrack]
a11: hs a6 LRB; if sets then call(storeps); __ ____
qq V LOC; if changemode | 3 then __ = ____
hs a15 ; call(takepoint 1);
pi 32 t - 35 ; oldhalf:= false; PA:= 1; _____
hs 8e12 ; DRUMOUT: qq -1 , pm b6 ; hs a62 X ; setnotlocal(stack 1, -1); qq +1 , pm b7 ; hs a62 X ; setnotlocal(stack 2, 1);
b18: srn __ D ; length:= -length 41
ga b18 , ac b16 ; firstword:= firstword + length tk -10 , ac b33 ; w0const:= w0const + length ac b19 , ac b32 ; const0:= const0 + length; w0:= w0 + length ; ac b9 , ar d10 ; lastword:= lastword + length;
b34: sc b8 , pp -___ ; relbase:= relbase + length; trackbase:= 161
b32: pa b2 t ___e__ ; trackbase - 1; t:= -numberofwords⨯4 - 1; 164_13
b33: pa b10 t ___e__ ; w:= w0; wconstant:= w0constant; 123_13
hr s1 LOC; if changemode = 3 then return; __ ____
hs a17 ; call(usestack 1);
ar d11 V NOB; R:= R + (if changemode | 1 then hsc2 __ = ____
ar d12 ; else hsc42); ____
gr (b2) t - 1 MPC; w:= w - 1; word[w]:= R; pp p4 ; A[w]:= PA; B[w]:= PB; t:= t4;
hr a21 LOA; if changemode = 2 then return to(next); __ ____
a63h: hr s1 , it (s-1) ; return;
b20: pm __ V IPB; procedure setnotlocal(i, step); -1 _________
a62: ga b20 , hv b20 ; value i, step; _____
hr s1 LA ; a63h: if A[i] | 1 then __ = ____
gm (b20) MPC; begin A[i]:= 1; i:= i + step; go_to a63h _____ __ __
hh a63 ; end; ___
d10: qq 1.39 ; d11: hs c2 ; d12: hs c42 [21.jan.63] [Pass 8, page 4] [lookupconstant:] a14: pm b12 IPC; PC:= Cconst; it (b10) , pt b21 ; until:= wconst;
b19: pa b11 t ___e__ ; constaddr:= const0 123_13
b22: gi __ D ; PCconst:= PC; -1
pa b35 t d9 ; lasttest:= false; more: constaddr:= _____
a64:b11: pm __ X 1 IPC; constaddr + 1; PC:= C[constaddr]; -1
b21: bs (b11) t __ ; if constaddr > until then begin if -1 __ ____ _____ __
b35: hh r __ , hr s1 ; lasttest then return elsegoto nextlist end -1 ____ ________ ___
; sr b12 ; R:= word[constaddr] - const;
hv a64 NZ ; if R | 0 then go_to more; __ = ____ __ __
gi r1 , arn b22 ; if PC | Cconst then go_to more; __ = ____ __ __
nc __ , hv a64 ; returnto(constin); -1
a65: hr a30 , pa b35 ; nextlist: lasttest:= true; ____
b9: pt b21 t ___e__ ; until:= lastword; 163_13
it (b2) , pa b11 ; constaddr:= w;
hv a64 ; go_to more; __ __
d d9= a65 - b35 ; define value for lasttest false _ _____
[takepoint 1:] a15: pm (b6) DXV 1 ; Raddr:= stack 1:= stack 1 + 1; [takepoint 2:] ; skip; a16: pm (b7) DX - 1 ; Raddr:= stack 2:= stack 2 - 1; ga b23 ; stackaddr:= Raddr; arn (b2) D ; R:= 0; pack(R, 10, 19, w); ck -10 , ar b8 ; R:= R + base; qq V LRA; stack[stackaddr]:= R;
b23: gr __ V M ; A[stackaddr]:= 0; -1
gr (b23) MB ; B[stackaddr]:= if oldhalf then 1 else 0; __ ____ ____
b13: it d__ t - 1 ; freestack:= freestack - 1; _21
bs (2e4) ; if freestack < minfreestack then __ ____
bt (2e4) t - 1 ; begin minfreestack:= minfreestack - 1; _____
hr s1 , qq e38 ; if minfreestack < 0 then alarm(e38) __ ____
ps r-2 , hv e5 ; end; return; ___
[takestack 1:] a17: pm (b6) XV IPC; R:= stack[stack 1]; PC:= C[stack 1]; [take stack 2:] ; skip; a18: pm (b7) XV IPC; R:= stack[stack 2]; PC:= C[stack 2]; [unstack 1:] ; skip; a19: qq (b6) V - 1 ; stack 1 := stack 1 - 1; [unstack 2:] ; skip; a20: qq (b7) t 1 ; stack 2 := stack 2 + 1; qq (b13) t 1 ; freestack:= freestack + 1; hr s1 ; return; [ 3.3.64] [Pass 8, page 5] [initializereturn:]
a21: qq , ps a21 ; comment this instruction will ensure _______
[next:] ; that the first return which does not match a22: pmn (e1) X 1 ; a call always will goto next; hs e2 LA; ga b24 ; byte:= input; [byteread:]
a13:b24: pmn ___ X d2 ; R:= table[byte]; actions:= bits( 0, 19, R) 133
; ga r1 , gt b14 ; changemode:= bits(0, 1, R); destroy:=
pi __ t 15 ; bit(2, R) = 1; newhalf:= bit(3, R) = 1; -1
gr b1 MPC; instr:= bits(20, 39, R); pa b1 , pt b1 ; newA:= bit(4, R); newB:= bit(5, R); mb 15 D ; appetite:= bits(6, 9, R); ga b5 ;
qq V NRB; if sets ∧ destroys then call(storeps); __ ____
hs a6 LTA;
b5: bs p__ ; if t + appetite > 0 then -1 __ ____
hs a10 ; call(maybechangetrack); pm (b24) IPC; PC:= Ctable[byte];
hh b14 NPB; if PB | 0 then __ = ____
arn b1 , ck -10 ; begin if PA = 0 then instr:= _____ __ ____
ga b26 ; auxiliarytable[bits[30,39,instr)] else ____
pmn (b26) XV NPA; begin pack(instr,0,9,bits(30,39,instr)); _____
tk 10 , ar b26 ; pack(instr, 30, 39, 0) end; ___
b14h: gr b1 , hv __ ; end; -1 ___
b26: qq __ ; gotolabel(action); -1
[withoperand:] a23: pmn (e1) X 1 ; hs e2 LA ; R:= operandtable[input]; ga r1 ; operandaction:= (bits 10, 19, R);
pmn __ X d2 ; pack(R, 10, 19, 0); -1
gt b15 , mb d14 ; instr:= instr + R;
b15h: ac b1 , hv __ ; gotolabel(operandaction); -1
d14: qq -1.9 + 1.19 - 1.39 ; [constantoperand:] a24: hsn a9 X ; M:= 0; call(nextbyte); hs a7 ; call(leftshiftbyte); hs a7 ; call(leftshiftbyte); hs a7 ; call(leftshiftbyte); cl -30 ; shift read in constant right to R; gr b12 MB ; const:= R; Aconst:= 0; Bconst:= 1;
arn b12 , sr d15 ; if const = 1.0 then __ ____
pa b1 V c40 LZ ; pack(instr, 0, 9, addrof 1)
sr d16 ; else if const | -1 then ____ __ = ____
hv a29 NZ ; go_to useconst; __ __
srn d17 , hv a2 ; R:= -bit 28; go_to addRandstore; __ __
d15: qq t 256 ; d16: qq -1 t 256 ; d17: qq r ; [13.3.64] [Pass 8, page 6] [sreloperand:]
b4: a25: paf __ D c1 ; news:= display; comment f is used later; -1 _______
hs a9 ; call(nextbyte); sc b4 ; news:= news - Raddr;
hs a5 LRB; if sets then call(maybestoreps); __ ____
pm 1 DXV LTB; appetite:= appetite +
pm 3 DX ; (if newhalf then 1 else 3); __ ____ ____
ac b5 , bs (b5) ; if t + appetite > 0 then __ ____
hs a10 ; call(maybechangetrack);
pp p-1 LRB; if sets then t:= t - 1; __ ____
pm r IRB; sets:= false; _____
hs a1 ; call(addbyteandstore); pm b4 X IRB; pack(psinstr, 0, 9, news);
ga b3 , pp p1 ; sets:= true; ____
hr s1 ; return; [condgoto 1:]
b6: a26: pmn d_ XV IPC; R:= stack[stack 1]; PC:= C[stack 1]; _7
[condgoto 2:] ; skip;
b7: a27: pmn d_ X IPC; R:= stack[stack 2]; PC:= C[stack 2]; _8
[condgoto:]
a28: hv a33 NPA; if PA = 0 then go_to localgoto; __ ____ __ __
ar d11 ; const:= R + hsc2; gr b12 MPC; Cconst:= PC; [useconstant:] a29: hs a14 ; call(lookupconstant); pm 4 DX ; const not in: appetite:= appetite+4
ac b5 , bs (b5) ; if t + appetite > 0 __
hs a10 ; then call(maybechangetrack); ____
pp p4 ; t:= t+4; pm b12 IPC; wconst:= wconst + 1;
b10: gm ___e__ t 1 MPC; word[wconst]:= const; C[w]:= Cconst; 162_13
it (b10) , pa b11 ; constaddr:= wconst; [constin:] a30: hs a3 ; call(store); arn b11 , sr b2 ; pack(word[w], 0, 9, constaddr - w); ga (b2) , hr s1 ; return; [uncondgoto 1:] a31: pmn (b6) X IPC; R:= stack[stack 1]; PC:= C[stack 1]; [undcondgoto:]
a32: hv a34 LPA; if PA = 1 then go_to nonlocalgoto; __ ____ __ __
[localgoto:] a33: ck 10 ; constaddr:= bits(10, 19, R) +
b16: ar ___e__ D ; firstword; 124_13
ga b11 , arn d18 ; if PB = 1 then __ ____
ac b1 LPB; instr:= instr + (hh - hv);
hv a30 ; go_to constin; __ __
d18: qq 4.25 ; [10.9.65] [Pass 8, page 7] [nonlocalgoto:] a34: ar d11 ; const:= R + hsc2; gr b12 MPC; Cconst:= PC; hs a14 ; call(lookupconstant); pm b12 IPC; notthere: instr:= const; gm b1 MPC; Anew:= Aconst; Bnew:= Bconst;
pm 8 DX ITB; newhalf:= false; _____
ga b5 , bs (b5) ; t:= t + 4; if2appetite + t > 0 then __ ____
hs a10 ; call(maybechangetrack);
hv a3 ; go_to store; __ __
[end block:] a35: hs a36 ; call(endproc);
pp p-2 , pm r ; t:= t - 2; comment for right halfword; _______
hr s1 IRA; oldhalf:= true; return; ____
[end proc:] a36: hs a9 ; call(nextbyte); stack 1:= stack 1 + 1; gr (b6) t 1 M ; stack[stack 1]:= R; C[stack 1]:= 0; hs b13 ; call(checkfreestack);
hv a3 ; go_to store; __ __
[releasefor:] a37: hs a19 ; call(unstack 1); [if:] a38: hs a20 ; call(unstack 2);
hv a20 ; go_to unstack 2; __ __
[endelse:] a39: hs a16 ; call(takepoint 2);
hv a16 ; go_to takepoint 2; __ __
[bypass abs:] a40: is (b7) , arn s1 ; R:= stack[stack 2 + 1];
hv a32 IPC; PC:= C[stack 2 + 1]; go_to undcondgoto; __ __
[bypass LT:] a41: is (b7) , arn s1 ; R:= stack[stack 2 + 1];
hv a28 IPC; PC:= C[stack 2 + 1]; go_to condgoto; __ __
[goto bypass:] a42: hs a18 ; call(take stack 2);
hv a32 ; go_to uncondgoto; __ __
[7.9.65] [Pass 8, page 8] [programpoint:] a43: hs a17 ; call(takestack 1); qq V ; skip ; [return information:] a44: hs a18 ; call(takestack 2); [end local notsame track: ] a12: pm d27 IPA; PA:= 1; ac b1 MPC; instr:= instr + R;
d27: hv a3 , ; go_to store; __ __
[callstandardprocs: endcallstandard: standardproc:] a45: hs a9 ; call(nextbyte); ck 10 , ac b1 ; pack(instr, 30, 39, Raddr); [localswitch:] a46: hs a9 ; call(nextbyte);
ck -10 , hv a2 ; Rcount:= Raddr; goto addRandstore; ____
[begcall:] a47: hs a9 ; call(nextbyte); ck 10 , hv a2 ; pack(R, 10, 19, Raddr); pack(R, 0, 9, 0);
; goto addRandstore; ____
[enddo:] a48: hs a1 ; call(addbyteandstore);
hv a16 ; go_to takepoint2; __ __
[endsingledo:] a49: hs a3 ; call(store); hs a16 ; call(takepoint2); it (7e4) , pa (b7) ; pack(stack[stack 2], 0, 9, hv a9 ; -previousouttrack); [simpleblock 0: describedinstackblock0:]
b17:a50: pa b25 V c_ ; work 1:= stackref; skip; _1
[simple: describedinstack: endcall:] a51: pa b25 ; work 1:= 0; hs a9 ; call(nextbyte); pa b1 t c1 ; pack(instr, 0, 9, display - Raddr); sc b1 ; hs a9 ; call(nextbyte);
b25: ar __ D ; pack(R, 10, 19, work 1 + Raddr); -1
ck -10 , hv a2 ; pack(R, 0, 9, 0); go_to addRandstore; __ __
[end local: ] a70: hs a18 ; call(takestack 1);
hv a12 LPA ; if PA = 1 then goto endlocal notsametrack; __ ____ ____
ck 10 , ud b16 ; c0nstaddr:= bits(10,19,R) + firstword;
ga b11 , pm d30 ; if PB=1 then begin if w=constaddr then __ ____ _____ __ ____
pa b24 V d28 LPB ; begin byte:= d28; comment endlocal as _____ _______
pm d31 V ; halfword; return to(byteread) end ___
ca (b2) , hr a13 ; else instr:= endlocal hh end ____ ___
gm b1 ; else instr:= end local hv ____
hs a3 ; call(store); nt (b2) , it (b11) ; pack(word[w], 10, 19, constaddr - w); pt (b2) , hr s1 ; return; [21.jan.63] [Pass 8, page 9] [beglocal:] a52: pmn (b6) X ; R:= stack[stack 1]; hs a19 ; call(unstack 1); ck 10 , ac b1 ; pack(instr, 30, 39, Raddr); arn b4 , gt b1 ; hs a9 ; call(nextbyte); ck -10 , sc b1 ; pack(instr, 10, 19, display - Raddr);
hv a3 ; go_to store; __ __
[indexmult:] a53: hs a9 ; call(nextbyte); ga b28 ; pack(mkfs, 0, 9, Raddr); hs a22 ; call(next); acn b1 M ; newA:= newB:= 0; arn b28 , sr b1 ; word[w]:= word[w] - instr + mkfs;
ac (b2) , hv a3 ; go_to store; __ __
b28: mkf s__ ; -1
[tk 1:]
a54: bs p516 , hv a3 ; if t + 5 _ 0 then go to store; __ < ____ __ __
pp 1 , hr s1 ; t:= 1; return; [paramconstant:] a55: pan b27 X 3 ; j:= 3; M:= 0; a66: hs a9 ; notfinished: call(nextbyte); ck 10 ; R:= Raddr;
b27: bt __ t - 1 ; j:= j - 1; if j > -1 then -1 __ ____
cl -10 , hv a66 ; begin-bhifcrighccoMN+goco-nocfinished endN _____ _
cl 30 , hv a2 ; shift read in consstant left to R;
; go_to addRandstore; __ __
[else:] a56: hs a20 ; call(unstack 2); hs a16 ; call(takepoint 2);
pa b24 t d3 ; byte:= 114; commend bypass abs; _______
hr a13 ; return to(byteread); [13.3.64] [Pass 8, page 10] [takeforlabel:] a57: arn d11 , pm d20 ; M:= hsc2 + stack[stack 2]; ar (b7) X IPC; PC:= Cconst:= C[stack 2];
ar d18 LPB; const:= if PB = 0 then hvs else hhs; __ ____ ____
gr b12 , is (b7) ; enddotrack:= bits(0, 9, stack[stack2-1])-1 ; arn s1 , ga b29 ; mt d16 , ar (b7) ; pack(const 0, 9, relpart(stack[stack 2]) - tk 10 , ga b12 ; relpart(stack[stack 1]); R:= bit 29;
tk 20 , ar d19 ; if trackpart(stack[stack 2]) = trackpart __
nc 0 , gmn b12 ; (stack[stack 2 - 1]) then begin const:= M ____ _____
;
hs a20 IPA; R:= 0 end; call(unstack 2); ___
nc (b29) , hv a67 ; if enddotrack | 0 then go_to single do; __ = ____ __ __
pa b24 V d5 LZ ; byte := if R | 0 then gmp byte __ = ____
pa b24 V d4 ; else if PB = 1 then gmp byte MC ____ __ ____
qq (b24) t 1 LPB; else gmp byte MA; ____
acn b12 MPC; Cconst:= PC; hs a13 ; call(byteread); pa b24 t d6 ; byte:= pm rrel const; hr a13 ; returnto(byteread); d19: qq s , ; d20: hv s ; [singledo:] a67: ac b12 MPC; Cconst:= PC; const:= const + R; pm b12 , arn (b7) ; M:= const; R:= stack[stack 2]; it (b16) , pa b30 ; oncurrenttrack:= A[stack 2] = 0; enddobase :=
hh a68 NA ; firstword; if -, oncurrent track then __ ____
arn (b29) D -1 ; begin if enddotrack - 1 = firsttrack then _____ __ ____
ca (10e4) , it (5e4) ; enddotrack:= enddotrack -1 +
b29: vk __ , arn (b7) ; number of tracks; selecttrack(enddotrack -1
); nt (b18) , lk (b30) ; enddobase:= enddobase - length; it (b30) , pa b31 ; drumto(enddobase); selecttrack(enddotrack );
a68h: vk (b29) , gt b30 ; end; ___
b30: gm __ t - _ MPC; word[enddobase + relpart(stack[stack 2])]: -1 1
=
b31: sk __ LA ; const; Cconst := PC; -1
hv a9 ; if -, oncurrenttrack then todrum(enddobase __ ____
);
; go_to nextbyte; __ __
[7.9.65] [Pass 8. Page 11] ; end pass 8: a58:hs a11 ; call(change track);
arn 1e4 , ud 10e4 ; if pass inf then __ ____
hs e7 ; begin _____
arn (b2) , ud 10e4 ; new line print (used tracks); ck 10 , hs e9 ; print(relative start address); arn (b2) , ud 10e4 ; print (start track);
ck -10 , hs e9 ; end; ___
pm (b2) , ud 6e4 ; p:= last track of translated program; vk p , lk e25 ; word on track[p,0]:= startword; vk p , gm e25 ; word on track[p,1]:= initial drumplace:= arn 2e4 , gt b ; float(p⨯40-1); cln -10 , nkf 9 ; pack (word on track[p,2], mkf d32 , srf d33 ; 0,9,initial last used, grf 1e25 , pm b ; 10,19,first track of std procs, gm 2e25 , sk e25 ; 20,39,0);
, ud 8e4 ; if LKA then typechar; __ ____
lyn __ D LKA ; -1
vy (8e4) ;
hv a69 NKB ; if -, test output then goto end translation; __ ____ ____
pa 1e8 t 9 ; pass no 1:= 9; pa 2e8 t 59 ; point:= <.>; pp 204e13, hs e5 ; p:= pass place - 1;
hv r1 ,qqe60+10.29; message(|<from reader|, 8+2); < >
ps (e93) , vk s8 ; to core(comp to core track, track place); lk e25 , ud 8e4 ; by:= type wr by; vk s8 , lyn b ; read a char;
hv a69 NKB ; if -,test output then goto end translation; __ ____ ____
vy (8e4) , hse23+e25 ; comp to core(p) ident:(9) error: qq 9 , hv 33e25 ; (in comp to core); hs 205e13 ; call (output translated program); a69: , ud 1e4 ; end translation: vk p6 , lk 0 ; initialize core 0 to 5; vk p5 , ud 6e4 ; to core(RS 5, last RS place); gp 0 , lk c67 ; set addr(LO) to:(last track of translated progr);
vk , hv c23 ; go to start run; __ __
f _
d32: 40 ; comment constants for _______
d33: 1 ; computation of initial drumplace;
m _
[7.9.65] [Pass 8. page 12. Tables 1] [Pass 8 uses 3 tables: 1. Auxiliary table (0d1 - 16d1). This table is referenced from the input table and contains those instructions which require more bits than are available in the input table, see below. 2. Operand table (1d2 - 7d2). This table is referenced by action a23 (with operand), which will read in another byte. This byte gives access to a word in the operand table. This word , cleared in bits 10-19 , will be added to the instruction and pass 8 will proceed to the action address given in bits 10-19 of the word. 3. Input table (10d2 - 133d2). The format and other treatment of the instruction corresponding to each input byte value is given in this table as follows: Track link and s-preservation 0.2 Normal link 1.2 - - , destroys s 2.2 Parameter link 3.2 - - , destroys s 4.2 Normal link, but instruction is suppressed 5.2 - - - - - - , destroys s 6.2 Link is suppressed (unconditional jump) 7.2 - - - - - , destroys s Instruction format and marks 0.5 Full word, no marks 1.5 - - , f (=b) mark 2.5 - - , comma (=a) mark 3.5 - - , comman and f (=c) mark 4.5 Half - , f indifferent 5.5 - - , f mark 6.5 - - , no-f mark Appetite Bits 6-9 supply the appetite which controls the test for transition to a new track. Formation of non-zero bits of instruction Marks on Bits of table-word final instruction are taken from No-f 0-19 are cleared 20-39 20-39 of table-word f and comma 0-9 30-39 of table-word 10-19 are cleared 20-29 20-29 of table word 30-39 are cleared f, no-comma 0-39 address given in bits 30-39 which refer to auxiliary table Action Bits 10-19 of the tableword give the address of action-program to be performe d] [7.9.65] [Pass 8. page 13, Tables 2] [Auxiliary table Input byte Produced by]
d1: mt c33 LT ; 0d1 10 | =
arn 512 D NZ ; 1d1 20 = arn (c36) , hs c18 ; 2d1 25 goto computed pm , hs c22 ; 3d1 55 formal
srf c35 V NT ; 4d1 56 _ :
tkf -29 , nkf 39 ; 5d1 58 _ :
pm , hs c26 ; 6d1 59 index call pm , hs c38 ; 7d1 60 switch call qq -1 , hv s2 ; 8d1 124 array declaration arn c46 , ck -10 ; 9d1 125 - - , take last u sed qq , hs c50 ; 10d1 128 - - , reserve spa ce hs c10 , qq e74+e73.29; 11d1 103 call ln hs c10 , qq e76+e75.29; 12d1 122 call exp
hsn c9 , qq e78+e77.29; 13d1 130 call ∧integ |
d30: ps (c84) , hh s ; 14d1 internal end local d31: ps (c84) , hv s ; 15d1 internal end local ps 11 , hh c55 ; 16d1 internal initial byte [Operand table Byte value Addressing]
d d2=i-1 _
qq rc41+i, qq a24 ; 1d2 1 constant operand
b37: qq c_ , qq a1 [ 2d2 2 abs addr, addresspart is _1
changed to stackreference by start pass 8] qq p , qq a1 ; 3d2 3 p rel qq (p) , qq a1 ; 4d2 4 (p rel) qq s , qq a25 ; 5d2 5 s rel qq (c36) , qq a3 ; 6d2 6 (UA) qq c37 , qq a3 ; 7d2 7 UV zq t 8d2 ; 8d2 not used zq t 9d2 ; 9d2 not used [Input [Input table byte generates Input produced by]
qqf 5 t a3 + d1.29; 10 mt c33 LT | =
mtf 4.5+3 , qq a3 +c33.29; 11 mt c33 (f) < _ _ > < >
qq 2.2+1.5+5 t a3 ; 12 qqf t blind in type proc hvf 6.2+4.5+7 , qq a3 +c12.29; 13 hv c12 (f) end UV expr tkf 5.5+4 , qq a3 +995.29; 14 tkf -29 round hvf 6.2+4.5+7 , qq a3 +c13.29; 15 hv c13 (f) end RF expr hvf 6.2+4.5+7 , qq a3 +c14.29; 16 hv c14 (f) end R expr hvf 6.2+4.5+7 , qq a3 +c15.29; 17 hv c15 (f) end addr expr ab 5 DX a3 ; 18 ab 0 DX -, (not)
srf 6.5+4 , qq a3 +c34.29; 19 sr c34 < > | =
qqf 5 t a3 +1d1.29; 20 arn 512 D NZ in equal arnf (5.5+4), qq a3 +c36.29; 21 arnf(c36) value rounded srf 5.5+4 , qq a3 +c71.29; 22 srf c71 entier nkf 5.5+4 , qq a3 + 39.29; 23 nkf 39 float hhf 7.2+4.5+7 , qq a3 +c16.29; 24 hh c16 (f) goto non local qqf 1.2+2.5+5 t a3 +2d1.29; 25 arn(c36), hs c18 goto computed hvf 7.2+4.5+7 , qq a3 + c3.29; 26 hv c3 (f) goto local pmf 4.5+3 , qq a3 +c36.29; 27 pm c36 (f) clear UA gsf 1.2+4.5+7 , qq a3 +c36.29; 28 gs c36 (f) end addr expr ann 5.5+4 t a23 ; 29 annf <op> abs
srn 5.5+4 t a23 ; 30 srnf <op> - < _ _ > < >
ar 5.5+4 t a23 ; 31 arf <op> until + array
mk 5.5+4 t a23 ; 32 mkf <op> ⨯ until ∧r array |
ab 4.5+3 t a23 ; 33 ab <op> (f) ∧ mb 4.5+3 t a23 ; 34 mb <op> (f) ∨ [Rettet 28.jan.63] [Pass 8. Tables, page 3] [Input [Input table, continued byte generates Input produced by]
mb 5 X a23 ; 35 mb <op> X _ =
sr 5.5+4 t a23 ; 36 srf <op> - < _ _ > = | until < > =
dk 5.5+4 t a23 ; 37 dkf <op> / _ :
snn 4.5+3 t a23 ; 38 snn <op> (f) =
ann 4.5+3 t a23 ; 39 ann <op> (f) | =
arn 5.5+4 t a23 ; 40 arnf <op> array arithm expr arn 6.5+4 t a23 ; 41 arn <op> boolean expr gr 5.5+4 t a23 ; 42 grf <op> value rounded r:= gr 6.5+4 t a23 ; 43 gr <op> b:= array grn 4.5+3 t a23 ; 44 grn <op> (f) :=0 pm 4.5+3 t a23 ; 45 pm <op> (f) array := clear gm 4.5+3 t a23 ; 46 gm <op> (f) array := clear ps 1.2+4.5+3 t a23 ; 47 ps <op> (f) goto local goto nonl ocal gr 1.5+5 V a23 LA ; 48 grf <op> VLA until, coupled to 49 acn 9 t a23 MA ; 49 acn <op> MA until, coupled to 48 gr 1.5+5 t a23 M ; 50 grf <op> M <expr>step grn 5 t a23 M ; 51 grn <op> M 0step gm 5 t a23 M ; 52 gm <op> M <variable>step is (5.5+6)t a23 ; 53 isf (<op>) in 3rd, 4th..subscrip t mk (5.5+4)t a23 ; 54 mkf (<op>) in 2nd subscript qqf 1.2+2.5+5 t a23+3d1.29; 55 pm <op> , hs c22 formal qqf 1.5+5 t a3 +4d1.29; 56 srf c35 V NT in int.divide arf 1.5+9 , qq a3 +c35.29; 57 arf c35 t in int.divide, two in str qqf 3.5+5 t a3 +5d1.29; 58 tkf -29 , nkf 39 in int.divide qqf 1.2+2.5+5 t a23+6d1.29; 59 pm <op> , hs c26 indexcall qqf 1.2+2.5+5 t a23+7d1.29; 60 pm <op> , hs c38 switchcall
grf 5.5+4 , qq a3 +c54.29; 61 grf c54 in ∧int |
grf 5.5+4 , qq a3 +c68.29; 62 grf c68 in ∧int |
gmf 4.5+3 , qq a3 +c54.29; 63 gm c54 (f) in ∧int |
gmf 4.5+3 , qq a3 +c68.29; 64 gm c68 (f) in ∧int |
pmf (4.5+3), qq a3 +c36.29; 65 pm (c36) (f) in take value unround ed d26: pmr 4.5+3 t a29 ; 66 pm r<reladdr> (f) internal in take forl abel sy 4.5+3 t a1 ; 67 sy <by> (f) trykende, -slut etc grp 6.5+4 t a1 ; 68 gr p<by> clear R grp 5.5+4 t a1 ; 69 grf p<by> clear RF d24: gmp 4.5+3 t a1 ; 70 gm p<by> (f) clear. internal take forl. qq 4.5 t a53 ; 71 mkf s<by> 3rd, 4th... subscript hsp 6.2+4.5+7 t a48 [ 72 hs p<by> (f) enddo takepoint2] zq 6.2+ 7 t a49 [ 73 zq end single do takepoint2 and -actual track] lynf 4.5+3 , qq a3 +c68.29; 74 lyn c68 (f) lyn tkf 6.5+0 , qq a54 + 1.29[ 75 tk 1 then while never as last word on a track] hhf 2.2+3.5+5 , qq a46+c20.29; 76 hhf c20 , qq <by> local switch <by> qq 2.2+1.5+5 t a55 [ 77 qq <by4>.9+<by3>.19+<by2>.29+<by1>.39 paramconst <by1><by2><by3><by4>] hsf 2.2+3.5+5 , qq a47+ c5.29; 78 hsf c5 , qq <by>.29 beg call<by> hvf 6.2+2.5+9 , qq a45+c21.29[ 79 hv c21 , qq <rel>+<track>.29 endcall standard <track><rel>] qq 2.2+2.5+5 t a45 [ 80 qq , qq <rel>+<track>.29 param standard <track><rel<] [Pass 8. Tables, page 4] [Input [Input table, continued byte generates Input produced by] ps (2.2+3.5+5), ps sa51 [ 81 psf(displ-<block>) , psf s<rel> param simple <block><rel>] qq 2.2+3.5+5 , ps a50 [ 82 qqf displ-<block> , psfstackref+<rel> param simple block0 <block><rel>] ps (2.2+2.5+5), pm sa51 [ 83 ps (displ-<block>) , pm s<rel> param described in stack <block><rel>] qq 2.2+2.5+5 , pm a50 [ 84 qq displ-<block> , pm stackref+<rel> param described in stack block0 <block><rel>] ps (6.2+2.5+9), psnsa51 [ 85 ps (displ-<block>) , psns<rel> end call <block><rel>] nkf 5.5+4 , qq a3 + 9.29; 86 nkf 9 floataddr (lyn) hsnf1.2+2.5+5 , qq a45+ c9.29[ 87 hsn c9 , qq <rel>+<track>.29 call standard no param <track><rel>] hsf 1.2+2.5+5 , qq a45+c10.29[ 88 hs c10 , qq <rel>+<track>.29 call standard 1 param <track><rel>] hsf 1.2+2.5+5 , qq a45+c11.29[ 89 hs c11 , qq <rel>+<track>.29 call standard 1 Rparam <track><rel>] hhf 6.2+4.5+7 , qq a36+ c6.29[ 90 hh c6 (f) end proc <appetite> set<appetite>in stack1] hhf 6.2+4.5+7 , qq a36+ c7.29[ 91 hh c7 (f) end typeproc <appetite> set<appetite>in stack1] hsf 1.2 +5 , qq a35+ c8.29[ 92 , hs c8 (f) end block <appetite> set<appetite>in stack1] hsf 2.2+2.5+5 , qq a52+ c5.29[ 93 hs c5 , qq displ-<block>+appet.fromstack1.2 9 begin local <block>] qq 1.2 t a39 ; 94 (takepoint2,takepoint2) end else qq 1.2 t a16 ; 95 (takepoint2) bypasslabel qq 1.2 t a15 ; 96 (takepoint1) labeldecl qq 1.2 t a15 ; 97 (takepoint1) begexpr qq 1.2 t a15 ; 98 (takepoint1) begproc qq 1.2 t a15 ; 99 (takepoint1) dolabel qq t a38 ;100 (unstack2, unstack2) if qq t a37 ;101 (unstack2,unstack2,unstack1) release for qq 1.2 t a16 ;102 (takepoint2) forlabel
qqf 1.2+2.5+5 t a3+11d1.29;103 hs c10 , qq e74+e73.29 ∧real |
hv r7.2+4.5+0 t a56 ;104 (goto nexttop 2) else hv r 5 t a27 LT ;105 (goto top2 LT) then hv r 5 t a27 NT ;106 (goto top2 NT) < then >then
hv r 5 t a27 LT ;107 (goto top2 LT) _ then _then < >
hv r 5 t a27 LZ ;108 (goto top2 LZ) | then =
hv r 5 t a27 NZ ;109 (goto top2 NZ) = then hv r 5 t a26 NT ;110 (goto top1 NT) while... until... hv r6.2+4.5+7 t a31 ;111 (goto top1) for... hv r 5 t a41 LT ;112 (goto nexttop2 LT) while..do until..do hv r6.2+4.5+7 t a42 ;113 (goto top2,unstack2) goto bypass d23: hv r6.2+4.5+7 t a40 ;114 (goto nexttop 2) for..do internal: els e qq 2.2+2.5+5 t a43 [115 qq 0, qq reltop1+tracktop1.29+Btop1.41 programpoint] [7.9.65] [Pass 8. page 16. Tables 5, finis tape pass 8] [Input [Input table, continued byte generates Input produced by] d25: gmp 5 t a1 MA ;116 gm p<by> MA internal: take forlab el gmp 5 t a1 MC ;117 gm p<by> MC - - - hvf 6.2+2.5+9 , qq a70+c21.29[118 hv c21 , qq reltop2+tracktop2.29+Btop2.41 unstack2 end local] qq 2.2+2.5+5 t a44 [119 qq , qq reltop2+tracktop2.29+Btop2.41 unstack2 return information] qq t a57 ;120 (see algorithms) take forlabel arnf 5.5+4 , qq a3 +c43.29;121 arnf c43 take nonsense
qqf 1.2+2.5+5 t a3+12d1.29;122 hs c10 , qq e76+e75.29 ∧real |
qq t a58 ;123 (endpass8) endpass qqf 5.2+2.5+9 t a3 +8d1.29;124 qq -1 , hv s2 array qqf 2.5+5 t a3+ 9d1.29;125 arn c46 , ck -10 take last used (array) ar 5 D a23 ;126 ar <op> D array gr 5 M a23 ;127 gr <op> M store array identifier qqf 1.2+2.5+5 t a23+10d1.29;128 qq <op> , hs c50 reserve space (array) ps p1.2+4.5+3 t a1 ;129 ps p<by> end proc
qqf 1.2+2.5+5 t a3+13d1.29;130 hs c9 , qq e78+e77.29 ∧integ |
d29: hhf (4.5) , qq a3+ c84.29;131 hh (c84) internal end local hs 5 t a23 ;132 hs <op> gier qqf 6.2+2.5+9 t a3+16d1.29;133 ps11 hhc55 internal byte [Finis tape pass 8]
d d3=d23-d2 ; used by else (104) _
d d4=d24-d2 ; used by take forlabel (120) _
d d5=d25-d2 ; - - - - - _
d d6=d26-d2 ; - - - - - _
d d28=d29-d2 ; - - end local (118) _
d7: qq 0 , qq 0 ; start stack 1
d d8=1022 ; start stack 2 _
d d21=d8-d7-1 ; initial free stack _
[Pass information for general pass and slip]
d e18=a59, e16=k-e70+1 _
e ; end pass 8 drumblock _
d i=6e21, e22=e16-e15-1 _
qqf e15.9-e24.9+e18.19+e22.36+e22.34+205e13.39,
d e15=e16 _
s _