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

⟦4b7778c38⟧ Bits:30000733 GIER ALGOL III PASS 4, 8-hole paper tape

    Length: 21160 (0x52a8)
    Description: Bits:30000733 GIER ALGOL III PASS 4
    Types: 8-hole paper tape
    Notes: Gier Text

GIER Text (HTML)

[27. jan. 65]
[Pass 4, page 1]
b k = e15 + e70, i = 205e13, a30, b16, c40, d30 _
d e17 = i _
[Input byte values and functions of them]
d d = 109 [bounds int], d1 = 168 [of interest] _
d d4 = 12 [max literal], d6 = 479 [511 - min expres byte] _
d d11 = 41 [min type proc], _
[Output byte values]
d d22 = 242 [output base for processing in pass 6] _
d d3 = 2d22 [ go to bypass label], d7 = 185 [expression] _
d d8 = d22 [end local], d9 = 1d22 [bypass label] _
d d12 = 24 [procvalue], d13 = 19d22[while label] _
d d14 = 15d22 [prepare assign], d15 = 28 [end pass] _
d d16 = 96 [beg local], d17 = 187 [beg express] _
b1: qq d15 ; out byte, initially end pass b2: qq ; counter b9: qq ; last identifier b10:qq 1.7-1.23-1.28-1.34 ; trouble word b11:qq ; beg end word b14:qq ; working location
c30:pm (e1) X 1 ; integer procedure take byte; _______ _________
hs e2 LA ; begin _____
hr s1 NZ ; again: byte:= take byte:= input; if byte = ,CR, then __ ____
hs e3 ; begin output(,CRout,); _____
qq (e4) t -1 ; CRcounter:= CRcounter - 1; go_to again end __ __ ___
; end takebyte; ___
c26:hv c30 , ps a3 ; procedure c26; begin c27; goto byteread end; _________ _____ ____ ___
c27:pm d16 DX ITB ; procedure c27; begin b14:= R; inblock:= false; _________ _____ _____
gm b14 , hv e3 ; output(beg local)
c28:hv s1 LZB ; end; ___
pmn d9 DX IZB ; procedure c28; if set bypass label then _________ __ ____
hv e3 ; begin set bypass label:= false; output(bypasslabe _____ _____
l) end; ___
c29:hv s1 LZA ; procedure c29; if -, operand taken then output(be _________ __ ____
g ex); pm d17 XD ; hv e3 ; [Pass 4, page 2]
c32:hs c30 ; procedure enterlist(counting); _________
hr s1 NT ; begin _____
pp p1 , ud c ; nextidentifier: R:= takebyte; if R > 512 then __ ____
hs c31 ; begin p:= p + 1; if p > maxp then stackoverflow; _____ __ ____
gr pd2 MA ; storewithmarks(byte⨯2∧30 + CRcounter⨯2∧20, | |
it (e4) , pt pd2 ; ,withcounter,, stack[p]);
qq (s1) t 1 ; counting:= counting + 1; go_to nextidentifier __ __
hv c32 ; end ___
; end enterlist; ___
c31:it p-512 , pt b16 ; procedure stackoverflow; _________
gp 2e4 ; if p > ,absmaxp, then alarm(|<stack|, ,stop,) __ ____ < >
bs p-512 t d21 ; else maxp:= maxp + ,deltamaxp,; ____
hs e5 ; hr s1 , qqn e38 ;
c36: ; start pass 4: inswitch:= warning:= false; _____
arn(e1) t 1 IQC ; last identifier:= input; p:= 0; ga b9 , pp 0 ; take byte; input byte:= end block; hs c30 ; pa (e1) t 100 ;
a1: arn b1 , hs e3 ; outandbyteread: output(outbyte); go_to byteread; __ __
a2h:hv a4 , pm b1 ; out: byte:= outbyte; hs e3 X ; next: output(byte); a3: pm (e1) XV 1 ; next 1: byte:= input;
a4: pm (e1) XV ; byteread: if byte > ,ofinterest, then go_to next; __ ____ __ __
hs e2 LA ; R:= table[byte_4]; marks R:= marksof(table[byte_4 : :
]); ga a5 ; actionnumber:= part2(R); outbyte:= part1(R);
a5: bs [byte] t d1 NT ; if marks R | ,nostacking, then __ = ____
ps a3-1 , hv e3 ; begin p:= p + 1; if p > maxp then stackoverflow; _____ __ ____
ck -2 , ga a6 ; storewithmarks(if marks R = ,stop, then R⨯2∧20 el __ ____ | __
se __
a6: pmn[byte_2]Xt b IRC ; (byte⨯2∧30 + (if marks R = ,withcounter, then : | __ ____
ga b1 , gt a7 ; counter⨯2∧20 else 0)), marks R, stack[p]) | ____
hh a7 NC ; end; ___
pp p1 ; go_to action[actionnumber]; __ __
c:b16:bs p-512 t - ___ ; 512
hs c31 ; tk 20 V LC ; pm (e1) X ; gr pd2 MRC ; qq V LRB ; it (b2) , pt pd2 ; a7h: , hh[action]; [Pass 4, page 3]
c1: qq (e4) V -1 ; CR: CRcounter:= CRcounter - 1; go_to out; __ __
c2: qq (b2) t 1 ; boundop1: counter:= counter + 1; go_to out; __ __
c3h:hh a2 , pa b2 ; bounds: counter:= 0;
hv r3 NZB ; if -, set bypass label then __ ____
arn d3 D IZB ; begin set bypass label:= true; _____ ____
hs e3 ; output(goto bypass label);
it (a5) , qq (b1) ; end; outbyte:= outbyte + byte; go_to out; ___ __ __
c4: hh a2 , it (a5) ; literal: outbyte:= byte;
pa b1 ; for i:= 1 step 1 until if CDC then 5 else 4 ___ ____ _____ __ ____ ____
a29:pa a8 t e69+4 ; do output(input); go_to out and byte read; __ __ __
pm (e1) X 1 ; hs e2 LA ; a8: bt t -1 ; ps a29 , hv e3 ;
c5: hv a1 , hs c30 ; trouble: a9:= take byte _ 4; :
ck -2 , ga a9 ; if a9 < 2 then __ ____
pa b15 , it 2 ; begin for i:= 1 step 1 until if CDC then 5 else 4 _____ ___ ____ _____ __ ____ ____
bs (a9) , hv a9 ; do input; go_to trouble __ __ __
a30:pmn(e1) t 1 ; end; ___
hs e2 LA ; if a9 > 39 then go_to trouble; __ ____ __ __
b15:bt _ t 350 ; if bits (a9, a9, troubleword) = 1 then 0 __ ____
d i=i-e69 ; go_to byteread; _ __ __
bt _ t 260 ; go_to trouble; 0 __ __
d i=i+e69-1 ; _
hh c5 ; hv a30 ; a9: bs t 39 NT ; hh c5 ; arn b10 , ck (a9) ; hv a4 LO ;
c6: hh c5 , hs c29 ; parameter: if -, operandtaken then output(,begex,); __ ____
a10:qqn(b2) t 1 IZA ; takeparameter: operandtaken:= false; _____
pp p1 , hs c30 ; counter:= counter + 1; [Pass 4, page 4]
gr pd2 M ; storewithmarks(take byte⨯2∧30, 0, stack[p]); |
bs (pd2) t d4 ; if bits(0, 9, stack[p]) > maxliteral then __ ____
hv a11 IZA ; begin operand taken:= false; goto expression end; _____ _____ ____ ___
hh a12 LT ; if bits(0, 9, stack[p]) < 512 then __ ____
a13:pm (e1) X 1 ; begin for i:= 1 step 1 until if CDC then 5 else 4 _____ ___ ____ _____ __ ____ ____
hs e2 LA ; do begin storewith marks(input⨯2∧30, __ _____ |
gr pd18 MB ; 1, stack[p+4]); p:= p - 1;
; comment s = c30 since hr-jump returning to 2a10 _______
pp p-1 , ps s-1 ; end; ___
bs sd5 , hv a13 ; p:= p + (if CDC then 10 else 8); __ ____ ____
a12h:pp pe69+e69+8,hs c30 ; if takebyte > this begins expr then __ ____
ga a14 , it d6 ; expression: begin if in switch then c28; _____ __ ____
a14:bt , hvn a15 ; output(outbyte); a11:hs c28 LQB ; a16: R:= stack[p]; arn b1 , hs e3 ; in switch:= mark b(stack[p]);
a16:pmn pd2 X IQB ; if operand taken then output(R); __ ____
hs e3 LZA ; if -, in switch then stack[p]:= expr; __ ____
pa pd2 V d7 NQB ; p:= p - 1; goto a16; ____
pp p-1 , hv a16 ; end; ___
a15:ud c ; if p > maxp then stackoverflow; __ ____
hs c31 ; operand taken:= false; _____
hv a4 IZA ; goto byteread; ____
c33:pm d13 DV ; forelem: if warning then __ ____
; begin warning:= false; output(,whilelabel,) end; _____ _____ ___
; go_to out; __ __
c34:pm d14 D ; assign: if warning then __ ____
hs e3 X LQA ; begin warning:= false; output(,prepare assign,) e _____ _____ _
nd; __
c37:pm r V IQA ; go_to out; __ __
c35:pm a23 IQA ; setwarning: warning:= true; go_to out; ____ __ __
c7: hh a2 , hs c29 ; declareswitch: c29; arn b2 , ac b4 ; numberoflocals:= numberoflocals + counter;
; inswitch:=false; _____
hs c32 IQB ; enterlist(numberoflocals); go_to byteread; __ __
qq (b4) , hv a4 ; c8: it (b2) t 1 ; declarearray: numberofvariables:= ; numberofvariables+counter; qq (b5) , hs c32 ; a17:= 0; counter:= counter + 1; enterlist(a17); a17:arn 0 D ; output(a17); output(numberofvariables); pm b5 , ac b5 ; numberofvariables:= numberofvariables + a17;
pa a17 , hs e3 ; go_to outandbyteread; __ __
hs e3 X ; c9: hv a1 , pp p-1 ; declareproc: p:= p - 1;
hv a24 NTB ; if -, inblock then go_to proc unstack; __ ____ __ __
a20:hs c28 NZB ; unstack decl: if -, bypasslabel then c28; __ ____
pm d8 DX ; output(end local); go_to procunstack; __ __
c10:hh a19 , hs c32 ; declaresimple: enterlist(numberofvariables);
b5: qq [number of variables]; goto byteread; ____
c11:hv a4 , hs c32 ; declarelabel: enterlist(numberoflocals);
b4: qq[number of locals] ; go_to outandbyteread; __ __
c12:hv a1 , hs c32 ; declareown: enterlist(numberofowns); go_to byteread; __ __
b3: qq [number of owns] ; hv a4 ; [Pass 4, page 5]
c13:hv a20 LTB ; begin: if inblock then go_to unstack decl; __ ____ __ __
arn b11 , ac b11 ; beg end word:= 2⨯beg end word; go_to set in block __ __
;
c14:hv a21 , hs c29 ; begin call: c29; operand taken:= false; _____
hs c30 IZA ; identifier:= takebyte; ga b12 ; output(outbyte); a19:arn b1 , hs e3 ; procunstack: addrofprocdecl:= p; a24:gp a22 , arn pd2 ; unstack: R:= stack[p]; marks R:= marksof(stack[p]); pp p-1 , ga b1 ; p:=p-1; outbyte:= part 1(R); numberbyte:= part 2( R);
hv a23 LC ; if marks R:= ,stop, then go_to action[numberbyte] __ ____ __ __
;
qq V NA ; if marks R = ,withcounter, then output(numberbyte __ ____
); tk 10 , hs e3 ; output(outbyte);
arn b1 , hs e3 ; go_to unstack; __ __
c15:hh a24 , arn b11 ; endclean: begendword:= begendword_2; :
ck -1 , gr b11 ; a21:pm b11 ITB ; set in block: inblock:= bit(0, 0, beg end word) = 1;
; go_to next 1; __ __
c16:hv a3 , hs c28 ; endproc: c28; hs c30 ; output(take byte); hs e3 ; c17:qq (b13) t 1 IZB ; endblock: blocknumber:= blocknumber + 1;
it (3e4) , bs (b13) ; setbypasslabel:= true; ____
qq (3e4) t 1 ; if blocknumber > maxblocknumber then __ ____
arn b5 , ck 10 ; maxblocknumber:= maxblocknumber + 1; ar b4 , ck 10 ; setpart 3(stack[p]) to: (numberofvariables); ac pd2 , pa b4 ; setpart 4(stack[p]) to: numberoflocals);
arn b11 , ck -1 ; inblock:= true; number of locals:= 0; ____
ar 512 D ITB ; begendword:= begendword_2 + 2∧39; : |
gr b11 , pa b5 ; numberofvariables:= 0; go_to out; __ __
c18:hh a2 , arn b2 ; endcall: setpart 4(stack[p]) to: (counter); ck 10 , ac pd2 ; output(,bypasslabel,); counter:= 0;
pm d9 DV ; go_to takeparameter; __ __
c19:pmf r V IQB ; endswitch: inswitch:= true; ____
hs e3 X ; counter:= 0; go_to takeparameter; __ __
pa b2 , hv a10 ;
c20:hh c9 LTB ; specify: if inblock then go to declare proc; __ ____ __ __
pa b2 , hs c32 ; counter:= 0;
qq , hv a4 ; enterlist(blind); go_to byteread; __ __
a23:gt r , hh[stackaction]; [Pass 4, page 6]
c21:hv a20 LTB ; formal: if inblock then go_to unstackdecl; __ ____ __ __
a28:pa b2 , hs c30 ; counter:= 0; hv a1 NT ; moreformals: R:= takebyte;
qq (b2) t 1 ; if R < 512 then go_to outandbyteread; __ ____ __ __
pm (e4) DX ; counter:= counter + 1; hs e3 ; output(CRcounter); output(R);
hs e3 X ; go_to moreformals; __ __
c22:hh a28 , tk 30 ; outofcall: output(identifier); output(counter);
b12:pm DX ; counter:= part 4(R); go_to out; __ __
hs e3 ; arn b2 , gm b2 ; hs e3 ;
c23:hh a2 , hs c27 ; outofblock: c27; setbypasslabel:= true; ____
a25:qq V IZB ; blockoutput: qq (b4) t 1 ; output(-numberoflocals); a27:srn b4 , hs e3 ; output(-numberoflocals - numberofvariables);
srn b4 , sr b5 ; if blocknumber < 0 then __ ____
pm b14 , hs e3 ; begin _____
bs (b13) , hs a26 ; endpass 4: output(-maxblocknumber-numberofowns + 102 1); srn(b3) D 2 ; output(numberofowns + 2); sr (3e4) D 1 ; output(lastidentifier);
pm b3 , hs e3 ; go_to endpass; __ __
hs e3 X ; end; ___
arn b9 , hs e3 ; numberoflocals:= part 4(b14); hv e92 ; numberofvariables:= part 3(b14); a26:cl -10 , ga b4 ; blocknumber:= blocknumber - 1;
cl -10 , ga b5 ; begendword:= begendword⨯2 - begendword_2∧38⨯2∧40; : | |
b13:qq -1[blockno]t -1 ; inblock:= begendword _ 2∧39; > |
arn b11 , ac b11 ; if setbypasslabel then go_to out; __ ____ __ __
pm b11 ITB ; number of locals:= number of locals + 1;
hh a2 NZB ; go_to out and byte read; __ __
qq (b4) t 1 ; c24:hv a1 , pp p1 ; outofproc: p:= p + 1;
a22:pm 0[addr of proc decl] V d20 NTB; if inblock then begin counter:= 0; c26 en __ ____ _____ __
d; _
pa b2 , hh c26 ; storewithmarks(stack[adressofprocdecl], gm pd2 MA ; ,withcounter,, stack[p]); gr b14 , hs c32 ; b14:= R; enterlist(blind);
qq 0 , it (pd19) ; if part 1[table[p-1]) _ ,mintypeprocedure, then __ > ____
bs d11 , hv a27 ; begin output(CRcounter); output(part 1(table[p]); _____
pm (e4) DX ; output(,procedure,); hs e3 ; numberoflocals:= numberoflocals + 1
pm (pd2) DX ; end; ___
hs e3 ;
pm d12 DX ; go_to blockoutput; __ __
ps a25 , hv e3 ; [Pass 4, page 7, Control table. Input bytes smaller than the limit OF INTEREST initiate an action con- trolled by the following table, which is entered with the argument input
byte _ 4. The actions starts with a stacking process depending on the :
marks of the control word: Marks Put in stack Control word bits 0 Nothing
A , input byte ⨯ 2∧ 30 + counter ⨯ 2∧20 , | |
B f input byte ⨯ 2∧30 f |
C f, output ⨯ 2∧30 + action ⨯ 2∧20 f, | |
where output and action are taken from bits 20 to 39 of the control word. After the stacking the algorithm jumps to the action given in bits 10-19 with the parameter given in bits 0-9 assigned to outbyte] [Pass 4, page 8] [output, action, stackoutput, action] [0] b:qq c1.19 ; CARRET: CRout, CR [4+] qq 4.9+c4.19 ; literal <type>: -, literal [8] qq 8.9+c4.19 ; (not used) [12] qq 12.9+c4.19 ; (not used) [16] qq 22d22.9+c6.19 ; switchparam: enddesex, parameter [20] qq 21d22.9+c6.19 ; callparam: endex, parameter [24] qq 186.9+c14.19 ; begcall: endcall, begcall [28] qq 186.9+c14.19 ; begfunc: endfunc, begcall [32] qq 187.9+c7.19, ; declswitch: begex, declare switch [36+] qq 100.9+c8.19, ; declarray <type>: bounds, declare array [40+] qq c9.19, ; declproc <type>: -, declare proc [44+] qqf c10.19 ; declsimple <type>: -, declare simple [48] qqf 3d22.9+c11.19 ; decllabel: labelcolon, declare label [52+] qqf c12.19 ; declown <type>: -, declare own [56] qqf c20.19 ; specswitch: -, specify [60+] qqf c20.19 ; specarray <type>: -, specify [64+] qqf c20.19 ; specproc <type>: -, specify [68+] qqf c20.19 ; specsimple <type>: -, specify [72] qqf c20.19 ; speclabel: -, specify [76] qqf c20.19 ; specstring: -, specify [80] qqf c20.19 ; value: -, specify [84] qq 84.9+c21.19 ; formal: formal, formal [88] qqf 22d22.9+c19.19 ; switchlist: enddesex, endswitch [92] qqf 21d22.9+c18.19+92.29+c22.39, ; endcall: endex, endcall, begcall, out o f call [96] qq c15.19 ; endclean: -, endclean [100] qqf 104.9+c17.19+16.29+c23.39, ; endblock: endblock, endblock, begblock, outofblock [104] qqf 108.9+c16.19+20.29+c24.39, ; endproc: endproc, endproc, begproc, out ofproc [108] qq 5d22.9-d.9+c3.19 ; bounds: endbounds, bounds [112] qq 4d22.9+c2.19 ; boundcolon: boundcolon, boundcolon [116] qq c13.19 ; begin, -, begin [120] qq a3.19 ; ;: -, next 1 [124] qq 18d22.9+a2.19 ; do: do, out [128] qq 8d22.9+a2.19 ; thenst: thenst, out [132] qq 9d22.9+a2.19 ; elsest: elsest, out [136] qq c5.19 ; trouble: -, trouble [140] qq 10d22.9+c33.19 ; := for: := for, forelem [144] qq 16d22.9+c37.19 ; simplefor: simplefor, simplefor [148] qq 11d22.9+c33.19 ; stepelem: stepelem, forelem [152] qq 14d22.9+c33.19 ; whilelem: whileelem, forelem [156] qq 13d22.9+c35.19 ; while: while, set warning [160] qq 17d22.9+c35.19 ; endassign: endassign, set warning [164] qq 20d22.9+c34.19 ; := : := . assign [168] qq 12d22.9+c34.19 ; first:= : first:= . assign d2:
d d5=e69-c30+4 ; used at a12-1 _
d d18=4d2+e69, d19=d2-1, d20=1d2, d21=40e25-d2-523 ; _
d e18=c36, i=39i, e16=k-e70 ; _
e _
d i=2e21, e22=e16-e15-1 ; _
qq e15.9-e24.9+e18.19+e22.36+e22.34+205e13.39f, ;
d e15=e16 ; _
s _