|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen GIER Computer |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen GIER Computer Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 53895 (0xd287)
Description: Bits:30000739 GIER ALGOL III RS
Types: 8-hole paper tape
Notes: Gier Text, Has10
[2.9.65]
[THE GIER ALGOL COMPILER GIER VERSION]
[Definition of storage of compiler]
b c100, e100 ; Begin of outermost block
_
d c70=39 ; First track during loading of compiler
_
d c60=39 ; After loading the compiler will be moved to have
_
; its first tracn in c60
d e86=0 ; Reserve e86 tracks after top of translator
_
d e20=319 ; Last track used by translator
_
d e96=0 ; Reserve track for HP-entry
_
d e97=319 ; Last track accessible to todrum and fromdrum
_
d e68=0 ; if UV double then 1 else 0
_ __ ____ ____
s ; Allow manual redefinition of c70,c60,
_
; e86, e96, e97, and e20
d e70=c70-c60 ; Resulting displacement of translator
_
d e85=0 ; Reserve e85 tracks after standard procedures
_
d e99=e96+e96 ;
_
d e99=e99+e99 ;
_
d e99=e99+e99 ;
_
d e99=e99+e99+e99+e99+e99 ; e99:= 40⨯e96
_
d e69=0 ; if CDC then 1 else 0
_ __ ____ ____
d e13=i+39 ; First core cell +39
_
d e25=983 ; Last core cell -40
_
d e4=e13+194 ; Place for universal translator parameters
_
d i=0, e90=k ; First track of core picture
_
d e89=205e13 ; Standard procedure list[0]
_
s
_
[2.9.65
Running system 1, track c61=c64-4
In addition to the code below the following words have been
initialized by pass 8 and this track:
0: qq _1 , hv c17 ; last track of program, overflow alarm (spill)
-
3: vk 6c61 , lk 1c ; call CHOICE OF
4: vk (1c62) , hv 17 ; OUTPUT UNIT
c: qq 1c62.29-1.9, hs s2 ; priority word for track place 1
41c: qqf c62.29 , hsf s2 ; - - - - - 2 ]
b k=c60+e70, i=822, a30, b20 ; begin running system block
_
d c61=c60 ; first track of running system
_
d c=6 ; first track place at run time
_
arn _ , ga r1 ;DISPLAY. Initialized from track 5c61.
0
d i=i-e68 ; Adjust for UV double
_
arn _ , ga r1 ;
0
arn _ , ga r1 ;
0
arn _ , ga r1 ; The following code is part of the initi-
0
arn _ , ga r1 ; alization for run. It is called from 5c61.
0
c94:lk 42c , vk (0) ; Last program track to core;
pa c t -1 ; Adjust priority word c
pm 42c , gm a22 ; initialize start of program;
pm 43c , gm a23 ; initialize drumplace;
arn 44c , ga a21 ; initialize last used;
pm r1 , hv s2 ; prepare initialize display; return;
arn _ , ga r1 ;
0
qq _ , hv a17 ;
0
e79: c1:qq _ , pp _ ; display block 0; working word output and
0 0
; write;
[working storage, constants]
c33:c35:qq -2.9 + 512.19-1.39 ; a half, close enough
c34:qq 1.39 ; eps
c37:qq [fullword] ; UV
qq ; if e68=1 then
__ ____
d i=i+e68-1 ; insert UV 2
_
c40:qq 0 t 256 ; 1.0
c41:qq -1 t 512 ; -1.0
c43:qq 511 t 510 ; nonsense
e82:c46: ;
a21:qq _ ; last used, initialized above
0
a22:c19:zq , zq ; start of progr., above: hs c3,track no. rel.
c47:qq _ ; appetite, working address, bits 10-39 = 0
0
c48:qq _ ; input case
0
c49:qq _ ; last character including case
0
c56:qq 41.10 ; constant for counting top of program etc.
c57:qq 801.19+2.39 ; constant for generating priority word
c58:qq -1.19-50.25+60.35 ; constant for generating sr-word
c63:qq _ t _ ; input checksum
0 0
c68:qq [fullword] ; working location for standard procedures
e80:c69: ;
a23: qq [fullword] ; drum place (floating representation), above
c71:qq -1.9+1.11 ; a half, exactly (entier)
c82:ps _ t 11 ; working word for output and write
0
c91:c89:qq s_ , vy 32 ; char is set (false,true_s35),
1 _____ ____=
; medium output and input
c92:c90:qq ___ , vy 17 ; min (drum place); medium write and type
511
c17:ps 7 , hh a18 ; go to overflow alarm (entry from 0)
[tracktable]
ca _ , hh 779c ; track - - is in trackplace ___ c
0 779
ca _ , hh 738c ;
0
ca _ , hh 697c ;
0
ca _ , hh 656c ;
0
[2.9.65]
[Running system 2, track 1c61=c64-3]
[track table continued]
ca _ , hh 615c ;
0
ca _ , hh 574c ;
0
ca _ , hh 533c ;
0
ca _ , hh 492c ;
0
ca _ , hh 451c ;
0
ca _ , hh 410c ;
0
ca _ , hh 369c ;
0
ca _ , hh 328c ;
0
ca _ , hh 287c ;
0
ca _ , hh 246c ;
0
ca _ , hh 205c ;
0
ca _ , hh 164c ;
0
ca _ , hh 123c ;
0
ca _ , hh 82c ;
0
c62: a4: ca _ , hh 41c ;
0
ca _ , hh c ;
0
[call track from drum, track table lookup will go on here when track is not in]
ga b1 MA ; set current track;ensure mark B inR.
a9: hsn a1 , ps s-41 ; get address of last priority word
b2: arn _ , sr s ; trackstart. get address of lowest
0
gs r-1 NT ; priority and store it in trackstart b
2
hh r-3 LB ;
b1: vk _ , ps (b2) ; current track. Read track to
0
lk s1 , arn s ; trackplace
ck 10 , gt r1 ; set current track in
it (b1) , pa _ ; track table
0
arn c46 , ck -1 ; Test if new track place can
sr b4 , sr c56 ; be reserved.
hv a2 LT ; no.
arn c57 , hs a1 ; Get address of new trackplace
c93: b4: qqf __c.10 ; top of program.10
84_
ar (b5) D -1 ; and set new priority word.
ck 20 , pa (b5) ; Format of priority word:
gr s41 , arn a3 ; priority, 2, corresponding
ga s41 MC ; addr in tractable, hs s.
arn c56 , ac b4 ; top af program:=top of program+41
a2: vk (b1) , hv a20 ; wait for drum; goto set s to tracksta
____
rt
a5: ga 41c , ps r ; clean up:
a1: hh (b5) , ps s-41 ; get address of last priority word:
ann s , tk -8 ; s:=addr of last priority word
ga s , ca 0 ; ZB:=false;
_____
[6. nov. 1963]
[Running system 3, track 2c61=c64-2]
qq (b5) V 1 NZB ; repeat: priority[s]:=priority[s]_256
:
pan a3 V 1 IZB ; if priority[s]=0∧-,ZB then
__ ____
arn c56 , sc b4 ; release trackplace else ZB:=true;
____ ____
hh a1 LB ; s:=s-41; if B then goto repeat;
__ ____ ____
c27: zq LKA ; CHOICE OF OUTPUT UNIT, hv3LKA or hv3NKA
a20:c28: ps (b2) , hv a3 ; Prior:=1; goto exit track adm.
____
[entries to track administration]
c2: qq p_ IRC ; transfer track P: p_ used by output and w
0 0
rite
gm b6 MRC ; save M and marks
a17: c3: pm s XV IRC ; goto track P: M:=R; R:=parameter[s]
____
c42: pm b4 , ud a19 ; call track R: indicate not transer set ex
.
c4: c21: gt b7 , ck -10 ; goto track R: set reladdr, Raddr:=trackno
.
b5: hs a_ , ; track table look up; may return s
_4
2
c53: b6: qq _ t _ ; working storage for save M
0 0
ga b1 , gs b2 ; set current track, set trackstart
a3: arn _ D 1 IZB ; exit trackadm:count priority; OB := 0
0
ga s XV NO ; set priority
ga s , hv a5 ; priority overflow, goto clear up
____
b7: pm b6 , ps s_ ; restore M; s:=s+rel addr
0
hh s1 LRC ; exit to track
hv s1 LRA ; exit to track
b15: hv _ t 1 ; exit from take track
0
c65: gm b6 , gs b15 ; call track P: save M; set exit
pmf r X IRC ; indicate not transfer
arn s , hv c21 ; parameter; goto goto track R;
____
[Initialize block or call]
c5: it (c46) , pa b12 ; Init.block or call: descraddr:=last used
pmn s X IRC ; get parameter
ck -10 , ga c47 ; set appetite
ar c46 , ga c46 ; lastused:=lastused+appetite
hv a7 LRB ; if initialize block then
__ ____
tk 10 , gt b9 ; block: begin set display address
_____
ar c58 , pm c46 ; (blockno); generate sr word with
gr (b12) X -2 MA ; old sr; descraddr:=sr:=descraddr-
2
gp (b12) , pp (b12) ; store sr word
b9h: gr p1 , gp _ ; store lastused; set display
0
a7: ck -1 , sr b4 ; end; if last used-top of program
___ __
_0
>
hv a6 NT ; then goto param transfer;
____ ____
hs a8 IRC ; release track places
pm s2 DX ; if current track place is not
__
ck -1 , sr b4 ; released then
____
hv a6 LT ; goto param transfer
____
[6. nov. 1963]
[Running system 4, track 3c61=c64-1]
a19: pa b15 t b12 IRC ; else call current track to
____
nt s , nt (b2) ; new trackplace and return
pt b7 , hv a9 ; to param transf
[index call, parameter transformation]
c26: gm b13 ; index call: array ident. in M, index func
in
sr (b13) t -2 ; R:=R-constant term
sr (b13) V 1 NT ; if R_0 then R:=R-length
__ > ____
ps 6 , hh a18 ; else index alarm
____
ck -10 V LT ; if R<0 then shift to Raddr
__ ____
ps 6 , hh a18 ; else index alarm
____
ga b13 ; UA:=Raddr
c36:b13: qq _ ; UA:=UA+baseaddr; return
0
c20h: hv s1 , ck 10 ; local switch: posiitions to R addr
ga r2 , tk -30 ; positions+1 to R39; NB:roundin
g
ar (b12) D IRA ; Raddr:=descraddr+
c80: ar _ DV ; positions; skip next
0
a11: ar p D ; add sr:
c81: b12: gr _ V -1 MRC ; store descr: count descraddrandstore; skipne
0
xt
a6: gs r1 ; paramtransf: set paramaddr
c84: pmn _ X 1 IRC ; R:=next parameter
0
hv b12 NA ; constant
hv a11 NT ; programpoint
gr r1 , pm r-1 ; the rest: prepare execute parameter
c54: qq _ , qq _ ; execute parameter
0 0
pm s DV LRC ; if simple then M:=abs addr (simple var);
__ ____
hh a14 X LZ ; if proccall then goto enter proc
__ ____ ____
hv b12 X IRC ; goto store descr
____
[reserve array]
c50: arn (s) ITA ; reserve array: TA:=length<0
arn c46 , ck 10 ; R39:=lastused-length
sr (s) ITB ; TB:=R < 0
ck -10 V NTC ; if -,(TA∨TB) then R39 to Raddr
__ ____
ps 4 , hh a18 ; else array alarm
____
ga c46 , ga p1 ; lastused:=stack[sr+1]:=lastused
a16h: hv a7 , ar c56 ; goto test last used; release 1:
____
pm c56 X ; R:=R+41; top of program:=
sc b4 X ; top of program-41;
hr s1 NT ; if R>0 then return s1
__ ____
a8: it (b5) t 1 ; releasetrackplaces: if decrease trackplaces
__
>2
bs 1a4 , hh a16 ; then go_to release 1 else alas alarm
____ __ __ ____
c55h:a18h:ps 13 , vk 2k-e70 ; alarm: call first track with alarm
lk a15 , vk 2k-e70 ; number in s
[6. nov. 1963]
[Running system 5, track 4c61=c64]
d c64=k-e70 [free trackplace starts in c67, 40 instructions from here
_
are stored on track c64]
a15:c38: c67: hv a12 LZ ; value switch des: if index in R39 _ 0 then
__ < ____
hv a12 LT ; goto outside range
____
gm c37 , it (c37) ; UV:=switch identifier:=M
pa r3 , pa c37 ; set base for switch
sr c37 ITA ; R 39:=R39-positions-1
ck 20 , gt r1 ; TA:=R<0; if TA then
__ ____
c85: pm _ V _ LTA ; M:=stack [base+index-positions-1]
0 0
a12: pmnf r X ; else outside range:M:=0; marks:=B;
____
c22: pa b13 t c37 IRC ; take formal:UA:=address(UV);
gm b13 V NRC ; if simple variable then UA:=M
__ ____
gm c37 X MRC ; else UV:=M
____
hv s1 NRA ; if -, programpoint then return
__ ____
c9:a13: pm (b1) DX IZB ; set return: lastused:=lastused-1
pm c46 , ck 10 ; stack [last used]:=pack
gr (c46) X -1 MA ; (sr, s-trackstart, 0, trackno)
nt s , nt (b2) ;
pt (c46) , gp (c46) ;
ck -1 , sr b4 ; R:=lastused+1-top of program
hs a8 LT ; if R<0 then release trackplaces
__ ____
hv c3 LZB ; if standard proc then goto goto t
__ ____ ____
rack
a14h: ps c37 , arn s ; else s:=addr(UV); update: R:=param
____
pp (s) , hh p ; sr:=sr part (param); switch to proper display
c10: grf (c46) V -1 MB ; call st proc 1 fl value:
c11: gr (c46) t -1 MB ; call st proc 1 nonfl: R:=0 goto set return
____
c7h: hvn a13 , pm p-1 ; exit func: UV:=func value
pa b13 t c37 ; UA:=address(UV)
c6h: gm c37 , gs c46 ; exit proc: last used:=s
ps p2 , hh a14 ; s:=sr+2; goto update
____
c18: hv s1 LZ ;goto computed: if labelinR=0 then return; s:=U
__ ____
A
c16h: ps (b13) , pp (s) ; goto non local: sr:=srpart (label)
it (p1) , pa c46 ; lastused:=stack [sr+1]
arn s , hh p ; update and transfer
c13: grf c37 V ; exit RF expr: UV:=RF; skipnext
c14: gr c37 ; exit R expr: UV:=R
c12: pa b13 t c37 ; exit UV expr: UA:=addr (UV);
c15: ps (c46) , it 1 ; exit addrexpr:s:=last used; t:=1; skip next
c51: qq (c46) t 2 ; exit st proc 1V:t:=2, lastused:=t+lastused
c83h: hh a14 , pp _ ; goto update;
0 ____
c8: pp p2 , gp c46 ; exit block : lastused:=sr+2
pp (p-2) , hv s1 ; sr:=stack [sr]; return
[vk first track, hv _ ; this last instruction is set by the program
0
start track, the last instruction on the last track of the running
system being the preceding instruction]
d c60=7c60
_
e
_
[20.Dec.63]
[Running system 6, track 5c61]
[Error printing and program start.]
b i=c67, a20, b10
_
a16: gs a18 , hs a17 ; type text indicated by s
vk 7c61 , ps 10 ;
lyn 40 , ca 41 ; input from typewriter
gs a18 , hv a19 ; if symbol = r then go to a19
__ ____ __ __
lk 40 , vk ; transfer track 7c61
hv 40 ; go to error analysis or compiler ready
b7: qqf c62.29 , hsfs2 ; initial value for 41c
b9: vk , hv c25 ; initial value for 40c67
a17: vk 6c61 , lk 1c ; running system 7 to first track place
vy 17 , syn 64 ; text printing routine entry
a18: arn r__ t 1 LZ ; address of text in address part
10
ca 10 , hv s1 ; if character = 10 then exit
__ ____
ga r1 , tk 10 ;
sy _ , ck -4 ;
0
hv a18 ;
[texts:]
[4] qq 49.9+41.15+41.21+49.27+24.33+10.39 ; array (c50)
[5] qq 58.9+35.15+37.21+10.27 ; ln
[6] qq 57.9+37.15+52.21+53.27+23.33+10.39 ; index (c26, twice)
[7] qq 18.9+39.15+57.21+35.27+35.33+10.39 ; spill (c17)
[8] qq 58.9+18.15+40.21+41.27+19.33+10.39 ; sqrt
[9] qq 58.9+53.15+23.21+39.27+10.33 ; exp
[10] qq 58.9+41.15+20.21+37.27 +10.39 ; run
[11] qq 58.9+53.15+37.21+52.27 +10.39 ; end (pass 8, 1st order in output)
[12] qq 58.9+52.15+41.21+20.27+36.33 ; drum (to drum)
[13] qq 58.9+49.15+35.21+49.27+18.33+10.39 ; alas (a8)
[14] qq 58.9+55.15+38.21+37.27+53.33+10.39 ; gone (above)
[15] qq 39.9+49.15+41.21+49.27+36.33+10.39 ; param (standard procs more param)
c23:a19: vk c61-1 t 1 ; transfer
lk c67-200 t 40 ; tracks 1-4
bt 3 t -1 ; of running system
pm b7 , hv a19 ;
gm 41c MC ; initialize 41c
vk (0) , hs c94 ; call initialize run on c61
gm c1-1 t -1 MA ; initialize display
nc (r-1) , hv r-1 ;
pm c19 , hs a17 ; type: run
pan c24 t c19 ; set exit from CHOICE AF OUTPUT UNIT
cl -10 , ar b9 ;
gr r2 MA ; initialize 40c67
vk c64 , lk c67 ; transfer last track of running system
[40c67:vk first track, hv _ ]
0
e
_
[6.9.65]
[Running system 7, track c66]
[Core store 0-6, CHOICE OF OUTPUT UNIT, entry from SLIP]
[This track is placed from 0-39 by pass 8 or by reading a binout tape
and later in the first track place 1c-40c by 5c61 and on jump to 3 from c27]
b i=c67-40,a20
_
[0] a: qq _ , hv c17 ; last track set by Pass 8,3a69, jump on ov
0
erflow
[1] vk e14 , lk c67 ; call INITIALIZE
[2] vk c61 , hv c67 ; TRANSLATOR
[3] vk 6c61 , lk 1c ; call CHOICE
[4] vk (1c62) , hv a5 ; OF OUTPUT UNIT
[5] lk 1c , hv 40c67 ; return to running system
d i=c+a
_
a3: qq 1c62.29-1.9 , hs s2 ; initial priority and reference
a1: hv 3 NKA ; for track place
a2: qq 1.34 ;
[a5:c25:]a4:vy 17 , arn ra1 ;
ar ra2 NKA ;
gr c27 , lyn ra1 ; set conditional jump
ar ra10 , ca 48 [e] ; if symbol = e then go to slut;
__ ____ __ __
ps 11 , hh c55 ;
ca 17 [w] , hv ra9 ; if symbol = w then write output
__ ____
nc 34 [p] , ar ra8 ; else if symbol = p then punch output
____ __ ____
nc 49 [b] , ck 20 ; else if symbol = b then all output
____ __ ____
a9: pt 40c67 t c28 ; else normal output;
____
gt c89 , ud c89 ;
ck -10 , gt c90 ;
[c24:] a7: hv _ ; first time hv c19
5
a10:qq -5.9+16.19+33.29+32.39;
a8: qq 4.9+32.19-16.29 ;
a21:psn e87 , vk s c61-1 ; entry from SLIP for checksum
a14:lk (ra11) , pp 40 ;
ps s-1 , vk s c61-1 ; exchange buffers
it (ra11) , pt ra13 ; Communication with SLIP for entry
a11:nt a__ , lk a17 ; by h algol:
_16 _
a12:pp p-1 , it -512 ; 6c61 , e95 = track , relative for
a13:bs sc61-550, ar p__ ; entry from SLIP;
-1
bs p , hv ra12 ; a18 and a20 error exit and parameter.
bs s , hh ra14 ;
ck 0 ; a16 buffer area begin
hv 1 LZ ; a16+80 buffer area end
ps a20 , hv a18 ; track 38 is omitted during summation
qq ; if sum ok then goto 1
__ ____ ____
c29:pa 0 t e20 ; else go_to error;
____ __ __
vk 5c61 , lk c67 ; entry from binout reading:
vk 5c61 , hv c23 ; go to start run on track 5c61;
__ __
a19:qq ; sumbalance for this track
d a16= c67-160 ; buffer 1 (first address of running syst)
_
d a17= a16+a16+40 ; buffer 2
_
d a18=626 ; error exit to SLIP
_
d a20=714 ; parameter for SLIP
_
d a5 = a4-a+1a3-a ; entry when placed in 1c
_
d c25 = a5 ; - - - - -
_
d c24 = a7-a+1a3-a ; - - - - -
_
d e95 = a21 - a ; entry from SLIP
_
d c66 = 6c61 ; this track
_
d c29 = c29 - a ; relative entry from binout reading
_
e
_
d i=10 ; for loading purposes only
_
s
_
[6.9.65, Running system 8, track 7 c 61]
[This track is called by 5 c 61 and placed in core store 42c-81c. It calls
the program for analysis and output of the stack (part 1, 2 and 3)]
b i = c67-80, b30, a5;
_
it(c62+7), pt c34 ; save current track-number
qq 2 , hsr b 2 ; transfer to part 1
b1: qq 3 , hsr b 2 ; transfer to part 2
b3: qq 3 , hsr b 2 ; transfer to part 3
b4: vk 5c61 , lk c67 ; call track with error printing
b0: ps 11 , pm rb13 ; go to printing of |<end|
< >
gm c92 , vk 0 ; after output of stack Restore min drumplace in c92
qq e84 , hv c67 ;
b2: pa r 2 tc67-160 ; subroutine for transfer
vk 7c61 t 1 ; of program for analysis
lk t 40 ; and printing of stack
bt (s) t -1 ;
hv r-3 , ;
vk 0 , hvc67-120; exit from subroutine
b5: ptr a 0 , mln ra1 ; subroutine belonging
b6: bt IZBt-1 ; to part 3: printing
hhr b 5 , ; of M regarded as
ck -10 , gar a 2 ; decimal fraction
hvr a 4 LZ ; with sign in b8
a3: ptr a 0 t 16 ; An optional number
hvr a 0 NRA ; of digits in the
arnrb 8 , ca 0 ; beginning are
sy 0 , hhr 1 ; discarded an
sy 32 , ; optional number
hvr a 0 IRA ; are printed
a4: can(rb7) , hvr a 3 ;
a0: par a 2 LOBt 0 ; Output of sign
a2: sy , ; only if RA is set to 1 before entrance
b7: bt t-1 ;
hhr b 5 , ;
zq s 1 ; exit when KA not changed
hv 9c ; exit when KA changed
b8: qq 0 ; e1 in RS 9-11
b12: ;
a1: m ;
_
10 ;
b9: qq e81 , ; (last track number of standard procedures)⨯2∧(-10)
|
b10: qq e20 ; (total number of tracks)⨯2∧(-10) RS9:6a13,RS10:a4-6
|
b11: qq e 0 ; (first track number of standard procedures)⨯2∧(-10),R
|
S10
b13: qq ; min(drumplace)
b14: qq ; 40⨯total number of tracks⨯2∧(-10),RS12:2a0,RS9:8a13
|
b15: qq , qq ;
d a5=c67-c-122 ;
_
d a5=c67-120 ;
_
d b0=b0-a5, b1=b1-a5, b2=b2-a5 ;
_
d b3=b3-a5, b4=b4-a5, b5=b5-a5 ;
_
d b6=b6-a5, b7=b7-a5, b8=b8-a5 ;
_
d b9=b9-a5, b10=b10-a5, b11=b11-a5 ;
_
d b12=b12-a5, b13=b13-a5, b14=b14-a5 ;
_
d b15=b15-a5 ;
_
[6.9.65, Running system 9, track 8 c 61]
[The program for analysis of return information consists of this track and
tracks 9 - 10 c 61 referred to as part 1 in the comments on track 7c 61]
b k = 8c61+e70, i= c67 - 120, a19, d9, e5
_
d d0=c47,d1=26c,d8=27c, d7= 28c, e5=i+120, e1= b8, e2= 30c
_
pm c92 , gm b13 ; save min(drumplace)
ga e4 , vk 5c61 ; save input symbol
pm a17 IRC1 ; move subroutines and constants
gm 2c MRC1 ; used by part 3 and 1
arn r-2 , nc a18 ;
grn d7 , hv r-3 ;
arn e4 , hs 10c ; go to examine input symbol
hv a13 LZ ; R=0 if input symbol =p,w or b
arn(2b0) D ;
ck -1 , sr c92 ;
lk c67 , vk 0 ; call track with error printing
hv 1 LT ; go to pass 1
ps 14 , hv c67 ; if compiler is gone go to alarm
a13: ps (c1) , arn c46 ; if no stack go directly to printing of |<end|
< >
ca s2 , hv b4 ;
arn( b9) D-1 ; calculate constants
ck -1 , gr b9 ;
arn(b10) D1 ;
ck -1 , gr b10 ;
ck -2 , ar b10 ;
ck -1 , gr b14 ;
arn b11 , ck -1 ;
gr b11 , srn c34 ;
bs (c43) , hv a19 ;
pa b3 t 3 ; if stack already analyzed go directly to print
pa b2+1 t 14c61 ;
grn d8 , hv b3 ;
a19: tk 9 , ar b9 ; if current track_ last track number of standard
__ <
hv a11 LT ; procedures then begin expecting call return:=true;
____ _____ ____
pp (c46) , ppn (p) ; sr:=part1(stack[last used]) end else
___ ____
a11: ps (c46) IZA ; expecting call return:=false
_____
a1: ps s-1 , arn p1 ; last used:= last used - 1
ck -1 , gr d8 ; new sr: last used for local block:= stack[sr + 1]
a2: ps s1 , gs d0 ; next word: last used:= last used + 1
arn d0 , ck -1 ;
gr c37 , sr d8 ; if last used_last used for local block
__ >
hh a3 NT ; then go_to block found
____ __ __
grn e2 , arn s ;
hv a2 NA ; if -, mark a[last used] then go_to next word
__ ____ __ __
ga e1 , ck 10 ; stack reference:= part1(stack[last used])
[Running system 10, track 9 c 61]
ga e2 , ck 10 ; track relative:=part2(stack[last used])
nc 0 , hv a2 ; if part3|0 then go_to next word
__ = ____ __ __
ck 10 , ga e 4 ; track number:= part 4(stack[last used])
arn e 1 , ck -1 ;
gr d 1 , arn c37 ;
sr d 1 , ; if last used _ stack reference then
__ > ____
hv a 2 NT ; go_to next word
__ __
arn e 2 , gp d0 ;
hv a 2 LT ; if track relative > 511 then go_to next word
__ ____ __ __
sr 40 D ;
hv a 2 NT ; if track relative _ 40 then go_to next word
__ > ____ __ __
arn e 4 , ck -1 ;
sr b10 , ;
hv a 2 NT ; if track number_totalthen go_to next word
__ > ____ __ __
ar b10 , sr b11 ; if track number < first standard then
__ ____
hv a 2 LT ; go_to next word
__ __
hh a 4 NOA ; if -,expecting call return then go_to parameter call
__ ____ __ __
acn s MB ; marks[last used]:=01
a4h: hv a 5 , arn d1 ; go_to P; parameter call:
__ __
qq 1 , gr 31c ;
can (e2) , hv a2 ; if track relative = 0 then go_to next word
__ ____ __ __
arn e4 , sr r-2 ;
ck -1 , sr b9 ; if track number_ last track number of standard proced
__ <
ure
hv a15 LT ; then go_to S
____ __ __
e4: vk , lk e 5 ; transfer from drum(track number) to (buffer address)
vk , is (e 2) ;
arns+e5-1, gr d 1 ; program word:=store[buffer address + track relative -
arn d9 , is (e2) ; if (track relative >37 ∨ track relative = 37 ∧
__
ca s-66 , sr 38e5 ; stack[buffer address + 38] = convert instructions)
it (e2) , bs 38 ; ∧ store[buffer address + 39] = transfer instruction
hh a6 NZ ; then begin
____ _____
arn 39e5 , gt r4 ; track relative := part2( store[buffer address + 39]);
ck -10 , ga a7 ; track number := part4( store[buffer address + 39])
mb d3 , sr d4 ; transfer from drum(track number) to (buffer address)
hh a6 NZ ; end;
___
pa e2 t ;
a7: vk , lk e5 ;
a6: vk , is (e2) ;
arns+e5 , gr e5 ; program word 1 := store[buffer address + track relati
ve
arn d1 , mb d3 ;
[Running system 11, track 10 c 61]
sr d6 ;
hv a2 NZ ; if program word | take formal then go_to next word
__ = ____ __ __
arn e5 , ck -10 ;
mb d3 , sr d5 ;
hv a8 NZ ; if program word 1 = value call then
__ ____
a15: acn s MC ; begin S: marks[last used]:= 11;
_____
a10: hvn a 9 IZA ; R: expecting call return:= true; go_to Q end
____ __ __ ___
a8:
a14: acn s M ; marks[last used]:=00;
a5: arn r IZA ; P: expecting call return:= false;
_____
a9: arn d 7 , ck -20 ; Q: stack[last used]:= stack[last used] +
; return chain⨯2∧(-29);
|
ar s , grs ;
ck 10 , ca c1-1 ;
hv b1 ; exit when outermost block is found
pp (e 1) , gs d 7 ; sr:= stack reference; return chain:= last used
a3h: hh a 1 , ps p ; go_to new sr; block found: last used:= sr
__ __
acn s MA ; marks[last used]:= 10;
arn s , ga e 1 ; stack reference:= part 1(stack[last used])
a17: hv a10 ; go_to R;
__ __
gr b8 , ann b8 ; subroutine for printing of integer in R
nkf 39 , mkf c49 ; unit in position 39, is used by part 3
tkf 10 ; after being moved o core store 3c-8c
ar b12 X ;
hs b5 ;
hr s1 ;
ly 17c ; program used by part3 wwhen KA is changed
ga 17c , arn ra16 ; (core store 9c-18c)
ar 2c LKA ;
gr b7+2, arn 17c ; store actual value of KA in jump instruction
ca 22 , vyn 17 ; input symbol = w
ca 39 , vyn 33 ; input symbol = p
ca 50 , vyn 49 ; input symbol = b
ca 53 , hv b4 ; if input symbol = e go_to print |<end|
__ __ __ < >
qq , hr s1 ;
a16: hr s1 NKA ;
a18: m ;
_
0.0005 ; round-off constant, stored later in 19c
d3: , udn(p-1) ; mask for left instruction
d4: , hs c2 ;
d5: , ps (c46) ;
d6: , hs c22 ;
d9: tkf -29 , nkf 39 ;
e
_
[7.9.65, Running system 12, track 11 c 61]
[This track and tracks 12-14 c 61 contain the analysis of local quanti-
ties referred to as part 2 in the comments to track 7 c 61]
b k = 11c61+e70, i = c67-120, a27, d6, e4
_
d d1= 31c, d2= 32c, d3= 33c, a10= 28c, a11=30c, d5=26c, e2= 29c
_
d e1= 27c, d6= d5
_
grn 34c t -1 ;
arn r-1 , nc 26c ; clear working locations for part 3
hv r-2 ;
pm e 4 IRC 1 ; move subroutines
gm a25 MRC1 ; and constants
arn r-1 , ncc67-121; used by part3
hv r-3 , ;
ps (c 1) , hv a 0 ; stack reference:= stack[DISPLAY[0]]
a1: ca s , hv a 0 ; procedure : if stack reference = last used then go_to
__ ____ __ __
block
arn s-1 , ;
hv a 0 LA ; if marks[stack reference-1] | b
__ =
hv a 0 NB ; then go_to block
____ __ __
pp s-1 , hh a 0 ; j:= stack reference - 1; go_to common
__ __
a0: pp s , arn s+1 ; block: j:= stack reference; common:
gr d 1 , gr d 2 ; first variable:= first point:= last used
arn b14 IZA ; among variables:= false
_____
gr d 3 , gp a10 ; earlist known program point:= 40⨯total number of trac
k
a2: arn r IZB ; no switch: in switch mode:= false
_____
a3: snn r ITA ; next word: expecting array identifier:= false
_____
a4: pp (a10) , arn d 1 ; following array: if j = first
__
ca p , hv a 5 ; variable then go_to next block
____ __ __
pp p-1 , gp a10 ; j:= j - 1
a6: arn p IRC ; same word; marks[j] to RC
gr p M ; marks[j]:= 00
ga e 1 , tk 10 ; e1:= part 1(stack[j])
ga e 2 , tk 10 ; e2:= part 2(stack[j])
hv a24 LOA ; if among variables then go_to variables
__ ____ __ __
nc 0 , hv a 7 ; if part 3 = 0 then go_to no more points
__ ____ __ __
tk 9 , gr e 4 ; e4:= part 4(stack[j])/2
sr b10 , ;
hv a 7 NT ; if part 4 _ total then go_to no more points
__ > ____ __ __
arn e 2 , ;
hv a 7 LT ; if part 2 > 511 then go_to no more points
__ ____ __ __
sr 40 D ;
hv a 7 NT ; if part 2 _ 40 then go_to no more points
__ > ____ __ __
gs a11 , arn e 1 ;
ck -1 , gr a13 ;
arn a11 , ck -1 ;
sr a13 ITB ; sign of (stack reference - part 1) to TB
hv a 8 NRA ; if marks _ 1 then go_to switch or variable
__ < ____ __ __
[Running system 13, track 12 c 61]
hh a 9 LZ ; if part 1 = stack reference then go_to program point
__ ____ __ __
hv a12 LT ; if stack reference < part 1 then go_to switch element
__ ____ __ __
a9h: hv a 7 , arn e 2 ; go_to no more points; program point:
__ __
ck -4 , ar e 4 ;
ck -2 , ar e 4 ; point:= part4⨯40 + part 2
ck -1 , sr d 3 ;
hv r2 LZ ; if point>earliest known program point then
__ ____
hv a7 NT ; go_to no more points
__ __
ac d 3 , hv a 3 ; earliest known program point:= point go_to next word
__ __
a8: ncn(e 2) , hv a 7 ; switch or variable: if part 2 | 0 then go_to
__ = ____ __ __
; no more points
srn p , tk 30 ;
ar e 1 , ca p ; if j = part 1 - part 4 then
__ ____
hv a14 , ; go_to switch identifier
__ __
arn p , tk 30 ;
hv a 7 NZ ; if part 4 | 0 then go_to no more points
__ = ____ __ __
hv a 7 LRB ; if RB = 1 then go_to no more points
__ ____ __ __
a12: hv a 3 LOB ; switch element: if in switch mode then go_to next wor
__ ____ __ __
d
gpn d 5 IZB ; in switch mode:= true
____
hv a 3 , ; element address:=j,go_to next word
__ __
a7: pp (d 5) LOB ; no more points: if in switch mode then
__ ____
pp p 1 , gp d 2 ; j:= element address; first point:= j + 1;
hvn a6-1 IZA ; among variables:= true; go_to same word;
____ __ __
a14: hv a 7 NRC ; switch identifier: if marks = 0 then go_to no more po
__ ____ __ __
ints
hv a 7 LTB ; if stack reference < part 1 then go_to no more points
__ ____ __ __
hv a15 NOB ; if -,in switch mode then go_to a
__ ____ __ __
arn d 5 , ck -1 ;
sr a13 , ; if part 1 _ element address then go_to no more points
__ < ____ __ __
hv a 7 NT ;
a15: acn p MA ; a: marks[j]:= 10
hv a 2 , ; go_to no switch
__ __
a24: hv a 3 LRB ; variables: if marks | 0 then
__ = ____
hv a 3 LRA ; go_to next word
__ __
arn p , tk 21 ; if part 3 | 0 ∨ part 4 | 0 then
__ = = ____
hv a 3 NZ ; go_to next word
__ __
arn e 2 , ck -1 ;
gr a16 , arn a10 ;
ck -1 , sr a16 ; if j < part 2 then
__ ____
hv a 3 LT ; go_to next word
__ __
pp (e 1) , arn p-1 ; if -,expecting array identifier then
__ ____
hh a19 NTA ; begin length:= stack[part 1 - 1]
_____
[Running system 14, track 13 c 61]
hv a 3 LT ; if length < 0 then go_to next word;
__ ____ __ __
gr e 4 , arn a10 ; if part 1 | j + 3 then go_to next word;
__ = ____ __ __
ar 3 D ; end else
___ ____
a19: hv a20 , arn d 6 ; if part 1 | length address + 1
__ =
ar 1 D ; then go_to next word;
____ __ __
a20: nc (e 1) , hv a 3 ;
srn 90 D ; if part 2 - length < 90 then
__ ____
ar e2 , ck -30 ; go_to next word
__ __
sr e4 ;
hv a3 LT ;
arn e 2 ; if -,expecting array identifier
__
ga d 1 LTA ; then first variable:= part 2
____
acn(a10) MC ; marks[j]:= 11
hv a 4 NTA ; if expecting array identifier then go_to following ar
__ ____ __ __
ray
acn p-2 MA ; marks[part 1 - 2]:= 10
arn p-1 ITA ; expecting array identifier:= true
____
nkf 39 , ;
grf p-1 MA ; marks[part 1 - 1]:= 10
pp p-1 , gp d 6 ; coefficients address:= length address:= part 1 - 1
a17: pp p 1 , arn d 2 ; new coefficients: coefficient address:= coefficient a
ddress
ca p , hv a 4 ; if coefficient address = first point then
__ ____
; go_to following array;
__ __
arnfp , ;
hv a 4 LA ; if marks[coefficient address]|00 then go_to following
__ = ____ __ __
array
hv a 4 LT ; if stack[coefficient address]<0 then go_to following
__ ____ __ __
array
hv a 4 LZ ; if stack[coefficient address] = 0
__
; then go to following array
____ __ __
arnf p , srf (d6) ; if stack[length address]_ stack[coefficient address]
__ <
hv a 4 NT ; then go to following array
____ __ __
arnfp , tkf -29 ; if entier(stack[coefficient address])
__
nkf 39 , srf p ; | stack[coefficient address] then
= ____
hv a 4 NZ ; go_to following array
__ __
arnf(d6) , dkf p ; new length:=
grf a13 , tkf -29 ; stack[length address]/
nkf 39 , srf a13 ; stack[coefficient address];
hv a 4 NZ ; if entier(new length) | new length then go_to followi
__ = ____ __ __
ng array
arnf(d6) , srf a13 ; if new length = stack[ length address ]
__
hv a 4 LZ ; then go_to following array
____ __ __
arnfa13 , grf(d 6) ; stack[length address]:= new length
a26: acn p MA ; accept: marks[coefficient address]:= 10
hv a 17 , ; go_to new coefficient
__ __
a5: pp (d5) , pp p1 ; next block:
[8.9.65, Running system 15, track 14 c 61]
a18: ; first on track
qq VLOA ; if -,among variables∧ in switch mode then
__ ____
gp d2 LOB ; first point := element address + 1;
arn d2 , ck -10 ;
ar d1 , ck -10 ; last used⨯2∧(-9) + first variable⨯2∧(-19)+
| |
ac s 1 , ; first point⨯2∧(-29)
|
a21: arn s IRC ; followchain: previous marks:= marks[stack reference]
ck 20 , ga a11 ; stack reference:= part3(stack[stack reference])
ca 0 , hv b 3 ; if stack reference = 0 then go_to printing
__ ____ __ __
ps (a11) , arn s ;
hv a21 NA ; if marks[stack reference] | 10
__ =
hv a21 LB ; then go_to follow chain
____ __ __
hv a 0 LRA ; if previous marks | 01
__ =
hv a 0 NRB ; then go_to block
____ __ __
arn s+1 , hv a 1 ; goto procedure
____
a16: ;
a13: qq 0 ;
e4: qq 0 ;
d b24=i-a18 ; first free on this track
_
d b25= 23 ; number of words in subroutine below
_
d a25= c67-b25-121 ; first loading address - 1
_
d a22 = i-1 ; RS 12, rel. 12
_
e ; end block RS 12 - 15
_
b k=14c61+e70, i=c67-b24-b25-120 ; begin subroutine block
_
d i=i+b24 ;
_
b16: gs r 1 , syn 64 ; subroutine
arn LZ t 1 ; for output
ga r 2 , ps (r-1) ; of text used
ca 10 , hv s 1 ; by part 3
sy 0 , tk 10 ;
ck -4 , hv r-4 ; constants used in part 3
b18: -4/409/614/410 ; 0.1, RS19, 3 places
-30/274/898/1001 ; 10∧(-9)
|
b19: 28/256/0/0 ; 2∧(28), RS19: a65
|
b20: -1/511/1023/1023 ; 1 - 2∧(-28), RS19: 1a44
|
b21: arn 0 , ga r 1 ; RS16: 1a74
b22: pa b6 t5 ; routine used by part 3, RS16: a14, RS17: 2a33
pa b7 t3 ; for printing of program
tk 10 , ga 27c ; point
tk 20 , ck -30 ;
sy 64 , pm 27c ;
hs 3c IRA ;
b23: arn 27c , ck -30 ; changed by RS16, rel.0
pa b6 t5 ;
pa b7 t3 ;
hs 3c ;
hr s1 ;
m ;
_
b17: 0.1 ; RS19: 2a50
qq ; not used
e ; end block RS 15 second part
_
[6.9.65, Running system 16, track 15 c 61]
[This track and tracks 16-18 c 61 form the program for output of the stack
referred to as part 3 in the comments to track 7 c 61]
b k = 15c61 + e70, i = c67 - 120, a75
_
pm a60 , gm b23 ; word restored in case of repeated printing
sy 58 , hs b16 ; tryktekst(|<stack|)
< >
qq 18.9+19.15+49.21+51.27+34.33+10.39;
a74: pp (c1) , sy 64 ;
arn p3 , sr b21 ; print own variables
hv a73 LZ ;
ga 27c , sr 27c ;
hv a71 LZ ;
arn a74 , ;
ca p3 , hv a71 ;
, ca p4 ;
ncn(c1-1), hv a71 ;
a73: arn p2 , hs a15 ;
pp p 1 , hh a74 ;
a71: pp (c1) , hv a2 ; sr:= part1(DISPLAY[0]); go_to test;
__ __
a1: arn p1 , gr 30c ; follow chain: previous last used:= stack[sr+1];
a72: arn p , ck 20 ; a: sr:= part 3(stack[sr])
ga 28c , pp (28c);
ncn p , hv a2 ;
hs b16 ;
qq 18.9+19.15+49.21+51.27+34.33; if sr=0then begin tryktekst(|<stack_end|);
__ ____ _____ < , >
qq 53.15+37.21+52.27+10.33 ; go_to finished end
__ __ ___
hv b4 ;
a2: arn p1 , pm p ; test:
hv a 5 NA ;
hh a 6 LB ; if marks[sr] = 10 then begin
__ ____ _____
tk 10 , gr 30c ; first var:= part2(stack[sr+1])
tk 10 , gr 29c ; first point:= part3(stack[sr+1])
a6: hh a 9 , hs b16 ; go to block end
__ __ ___
qq 21.9+49.15+35.21+20.27+53.33; if marks[sr] = 11 then
__ ____
qq 51.15+49.21+35.27+35.33+10.39; begin trykvr; tryktekst(|<value_call|)
_____ < , >
a14: arn p , hs b22 ; program point: printpoint(stack[sr])
gp 30c , hv a72 ; previous last used:= sr; go to a end
__ __ ___
a5: hh a13 LB ; if marks[sr]=00
__
hs b16 ; then begin trykvr
____ _____
qq 37.9+49.15+36.21+53.27+51.39; tryktekst(|<name_call|);
< , >
qq 49.9+35.15+35.21+10.27;
a13: hv a14 , hs b16 ; go to programpoint end
__ __ ___
qq 39.9+41.15+38.21+51.27+59.33; if marks[sr] = 01 then begin trykvr
__ ____ _____
qq 51.15+49.21+35.27+35.33+10.39; tryktekst(|<proc._call|)
< , >
[6.9.65, Running system 17, track 16 c 61]
gan r3 ; for i:= sr+1 step 1
___ ____
arn 30c , it 1 ; until previous last used -1 do
_____ __
ca (r 1) , hh r 3 ;
arn p , sy 64 ; print(stack[i]) end
___
hs a15 ;
hv r-4 , hs b16 ; trykvr; tryktekst(|<retur|)
< >
qq 41.9+53.15+19.21+20.27+41.33+37.39;
qq 10 ;
a9: hv a14 , hs b16 ; go_to programpoint; block:
__ __
qq 50.9+35.15+38.21+51.27+34.33+10.39; trykvr; tryktekst(|<block|)
< >
a20: gp 28c , arn 29c ; j:= sr; b:= if j=
__
ca p , hv a18 ; first point then go_to
____ __ __
arn p-1 , gp 33c ; variables; z:= j
hv a19 NB ; if marks[j-1] | 01 then go_to proceed; trykvr
__ = ____ __ __
sy 64 , hs a15 ; print(stack[j-1])
pp p-1 , hh a20 ; j:= j - 1; go_to b; proceed: trukvr
__ __
a19: hs b16 ;
qq 39.9+38.15+57.21+37.27+19.33+18.39; tryktekst(|<points|)
< >
qq 10 ;
a23: pp (29c) , arn p ; j:= first point
hv a21 LA ; c: if marks[j] = 10 then go_to switch
__ ____ __ __
pp p 1 , hs b22 ; j:= j+1; printpoint(stack[j-1])
a24: arn 33c , nc p ;
hh a23 , ; if j |z then go_to c
__ = ____ __ __
a18: arn(30c) IPA ; variables:
arn a18 , pp (30c) ; array mode:=
arna18+1 NPA ; marks[first var] = 00
hh a25 IPA ; j:= first var; go_to P;
__ __
a21: pp (p) , hv a24 ; switch: j:= part 1(stack[j])
a28: hh a26 NPA ; start: if -, array mode
__
arn p , ; then go_to noarr
____ __ __
hv a27 LA ; if marks[j] | 00 then go_to novar
__ = ____ __ __
hs b16 IPA ; array mode := false
_____
qq 21.9+49.15+41.21+57.27+49.33+50.39; trykvr
qq 35.9+53.15+18.21+10.27 ; tryktekst(|<variables|);
< >
a37: sy 64 , arn p ; printvar: trykvr
hs a15 , ; print(stack[j])
a29: pp (30c) , pp p 1 ; next: j:= g; j:= j + 1
a25: gp 30c , arn 29c ; P: g:= j; if j| first point
__ =
nc p , hv a28 ; then go_to start
____ __ __
[7.9.65, Running system 18, track 17c61]
pp (28c) , hv a1 ; go to follow chain
__ __
a27: hh a29 NB ; novar: if marks[j] = 10 then go_to next
__ ____ __ __
hv a30 ; go to new declaration
__ __
a38: srnf32c , tkf -29 ; printarr:
tk 30 , ga a33 ; k:= part 2(stack[j])
arn p , ck 10 ;
a35: ga a22 , sy 64 ; line: trykvr
a36: pa a11 , can (a33); t:= 0
hh a29 , ; d: if f = 0 then
__ ____
ps (a33) , ; go_to next
__ __
a22: arn s , hs a15 ; print(stack[k-f])
a33: qq 0 t 1 ; f:= f+1
a11: arn D t 1 ; t:= t+1
ca 5 , hh a35 ; if t=5 then go_to line
__ ____ __ __
sy 0 , sy 0 ; else tryktekst(|<____|);
____ < ,,,,>
sy 0 , sy 0 ; go_to d
__ __
a26: hh a36 , arn p ; noarr:
hv a37 NA ; if marks[j] = 00 then go_to printvar
__ ____ __ __
a30: hs b16 IPA ; new decl: array mode:=true
____
qq 49.9+41.15+41.21+49.27+24.33+10.39; trykvr; tryktekst(|<array|)
< >
pp p 1 , arn p ; seek: j:= j + 1
hv r-1 LB ; if marks[j] = 11 then go_to seek
__ ____ __ __
arn p 1 , gr 32c ; f:=stack[j+1]
pp p 1 , sy 64 ; j:= j + 1; trykvr
a39: arn p , hs a15 ; dim: print(stack[j])
arn 29c , ca p 1 ; if j+1= first point then
__ ____
pp (30c) , hv a38 ; h:begin j:= g; go to printarr end
_____ __ __ ___
pp p 1 , arnfp ; j:= j + 1
hv r-2 NA ; if marks[j] | 10
__ =
hv r-3 LB ; then go_to h
____ __ __
sy 0 , sy 60 ; tryktekst(|<_⨯|)
< , >
sy 2 , sy 58 ;
mkf 32c , grf 32c ; f:= f⨯stack[j]
hv a39 ; go to dim
__ __
a15: gr b8 , gs a61 ; procedure print(x)
_________
arnf b8 , grf 31c ; real x
____
arn b8 , sr 31c ; x in R-reg at
hv a65 LZ ; start, if x not
pa r1 t9 ; floating number only
bt t-1 ; 9 spaces and sign=+- are
[8.9.65, Running system 19, track 18 c 61]
sy 0 , hv r-1 ; printed
arn b8 ;
sy 60 NT ;
sy 32 , sy 58 ;
a66: sy 0 , hv b7+2 ; exit
a65: snnf31c , arf b19 ; if abs(x)>2∧(28)
__ |
hv a52 LT ; then go to floating
____ __ __
annf 31c , tkf -29 ; if entier(x)=x
__
nkf 39 , snf 31c ; then go to integer
____ __ __
hh a45 LZ ;
a52: arnf31c , ca 0 ; floating:
sy 0 , hh r 1 ; output sign
sy 32 , sy 59 ; (_ or-) and point
,
a44: ps 0 , gs b15 ; s:= 0, cycle:
snnf31c , arf b20 ; if abs(x)<1then
__ ____
hv a48 NT ; go to mult
__ __
snnf31c , mkf b18 ; x:=0.1⨯x
a51: ps s1 , grf 31c ; s:=s+1
hh a44 , ; go to cycle
__ __
a48: annf31c , srf b18 ; mult: if
__
hv a50 NT ; abs(x)>0.1then
____
annf31c , dkf b18 ; go to printing
__ __
ps s-1 , hh a51 ; x:=10⨯x; s:= s-1; go to cycle
__ __
a50: annf31c , tkf 10 ; printing:
ar 19c IOB ;
arn b17 LOB ;
qq (b15) LOB 1 ;
pa b 7 X IRA 2 ; print
pa b 6 , hs b 5 ; mantissa
sy 60 , sy 27 ; print 10
sy 58 , arn b15 ;
pa b 6 IRAt 6 ;
pa b 7 t 2 ; print exponent
tk -30 , hs 3c ; with sign
a45: hv r4 , arnf 31c ; print number
tkf -29 , pm b15 ; as integer
pa b 7 IRAt 8 ; with sign
pa b 6 , hs 3c ;
a61: ps , hv a66 ;
a60: arn 27c , ck -30 ;
e ; end bloack RS 16 - 19
_
e ; end bloack RS 8 - 19
_
d c60=19c61 ;
_
s
_