|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 7680 (0x1e00)
Types: TextFile
Names: »retfppr3tx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
└─⟦75ff9bef3⟧
└─⟦this⟧ »retfppr3tx «
mode list.yes
fpproc4tx=edit fpproc3tx
; entry 95 : close up text output
; rettelse til call blockproc
l./page 1/, r/84.03.29/88.06.02/
l./; action /, i/
\f
; rc 1988.06.03 fpproc page 2
/
l./; 79/, l1, i/
; 95 (cl.up txt output)*) irr zone irr
/
l1, l./page 2/, r/page 2/page 3/
l./; Implementa/, i/
\f
; rc 1988.06.03 fpproc page 4
/
l1, l./page 3/, r/page 3/page 5/
l1,l./page 4/, r/page 4/page 6/, r/84.03.29/88.06.02/
l./s. a10/, r/b5, c9, d4, g3, j97/b10, c20, d10, g10, j197/
l./g2=/, i/
j1: 1<11 o. 1,0 ; own segment, next one
/, p-1
l./e1:/, i/
\f
; rc 1988.06.03 fpproc page 7
/
l./a10:/, d, i/
a10: sn w1 95, al w1 19 ; 95 => 19
sn w1 79, al w1 20 ; 79 => 20
/, p-2
l./sl w1 20/, g/20/19/
l./page 5/, r/page 5/page 8/, r/84.03.29/88.06.03/
l./a1:/, l./sn w0 18/, d./hs. w0 d3./, i/
rl w1 x1 ;
so w1 1 ; if base address even then
jl. c10. ; goto oddfield alarm;
rl w1 0 ; typeshift :=
zl. w1 x1+b7. ; case kind of (0, 1, 2, 2, 3, 3, 2);
hs. w1 d3. ;
/
l./d4 =/, i/
\f
; rc 1988.06.03 fpproc page 9
/
l./page 6/, r/31.01.73/88.06.02/, r/page 6/page 10/
l./c1:/, l-2, d./jl. c4./, i#
bl. w1 x1+d2. ;
hs. w1 d5. ; save rel entry;
rx w3 0 ; swop (w0, w3);
rl. w3 (j1.) ;
d5 = k + 1 ; rel entry:
jl x3+0 ; goto special action on next segment;
c1: rl. w3 (j1.) ; call acts with giveup:
se w1 27 ; if action = connect out
sn w1 28 ; or action = connect in
jl x3+c14 ; then goto connect on next segment;
#
l./c2:/, i/
\f
; rc 1988.06.03 fpproc page 11
/
l./c2:/, l5, i/
al w0 x2-16 ; addr of saved reg :=
rs w0 x2-18 ; sref - 16;
/, p-3
l./al w3 26 ; s/, r/; s/;/
l./page 7/, r/rc 31.01.73/ rc 1988.06.02/, r/page 7/page 12/
l./c4:/, d./jl. (j8.)/
l./page 8/, r/rc 31.01.73/ rc 1988.06.05/, r/page 8/page 13/
l./; special actions:/, d./c9:/, d2, i#
c10: al. w0 b6. ; oddfield alarm:
rl w1 x2+6 ; param :=
al w1 x1-8 ; (entry - 8) /
ls w1 -2 ; 4 +
al w1 x1+1 ; 1 ;
jl. w3 (j21.) ; general alarm (<:oddfield:>, param);
#
l./d0=k-20/, l-1, d./h35-h20/, i#
\f
; rc 1988.06.02 fpproc page 14
; each parameter is described by the pattern:
; zone<3 + array<2 + integer<1 + irr
;
; for each action the parameters are packed:
; w0<8 + w1<4 + w2
d0=k-19 ; parameter table :
h.
2.0001<8 + 2.1000<4 + 2.0001 ; h95=19
2.0001<8 + 2.1000<4 + 2.0001 ; h79=20
2.0001<8 + 2.1000<4 + 2.0010 ; h48=21
2.0001<8 + 2.1000<4 + 2.0001 ; h22
2.0001<8 + 2.1000<4 + 2.0001 ; h23
2.0001<8 + 2.1000<4 + 2.0010 ; h24
2.0001<8 + 2.1000<4 + 2.0010 ; h25
2.0001<8 + 2.1000<4 + 2.0010 ; h26
2.0010<8 + 2.1010<4 + 2.0100 ; h27
2.0010<8 + 2.1010<4 + 2.0100 ; h28
2.0001<8 + 2.1000<4 + 2.0110 ; h29
2.0001<8 + 2.1000<4 + 2.0110 ; h30
2.0100<8 + 2.1000<4 + 2.0001 ; h31
2.0010<8 + 2.1000<4 + 2.0010 ; h32
2.0001<8 + 2.1000<4 + 2.0010 ; h33
2.0001<8 + 2.1000<4 + 2.0010 ; h34
;functions not calling a give_up action
2.0001<8 + 2.0100<4 + 2.1000 ; h35
0 ; not allowed ; h36
2.0001<8 + 2.1001<4 + 2.0010 ; h7=37
2.0001<8 + 2.0001<4 + 2.0001 ; h14=38
2.0001<8 + 2.0001<4 + 2.0001 ; h67=39
d1=k-19 ; entry points in fp relative
; to descriptor of in
h95-h20 ; 19
h79-h20, h48-h20, h22-h20, h23-h20, h24-h20 ; 20-24
h25-h20, h26-h20, h27-h20, h28-h20, h29-h20 ; 25-29
h30-h20, h31-h20, h32-h20, h33-h20, h34-h20 ; 30-34
h35-h20, h36-h20, h7 -h20, h14-h20, h67-h20 ; 35-39
#, p1
l./d2=/, l1, r/c6-e5 /c16 /, r/c9-e5 /c19 /, r/c7-e5 /c17 /,
r/c8-e5/c18 /
l./page 9/, i/
w.
/
l./page 9/, r/page 9/page 15/, r/rc 1984.03.29/ rc 1988.06.05/
l./; constants and variables/, r/w./ /
l./b5:/, l1, i/
b6: <:<10>oddfield :> ; - -
h.
b7=k-17 ; table typeshift (kind):
0, 1, 2, 2, 3, 3, 2 ; bool, int, long, real, doubl., compl, zone
w.
/
l./e4:/, i/
\f
; rc 1988.06.02 fpproc page 16
e4:
c. e4-e5-506
m. code on segment 0 too long
z.
c. 502-e4+e5, ks-1, r. 252-(:e4-e5:)>1 z.
<:fp proc:>, 0 ; alarm text
\f
; rc 1988.06.03 fpproc page 17
k=10000
h.
e3: ; start segment
g4: g5 , g6 ; head word
j130: g0+30 , 0 ; - - 30: savedw2w3
j108: g0+8 , 0 ; - - 8: end addr expr
j129: g0+29 , 0 ; - - 29: param alarm
j0: 1<11 o. (:-1:), 0; own segment, previous segment
g6=k-2-g4 ; end of abswords
g5=k-2-g4 ; end of points
w.
\f
; rc 1988.06.02 fpproc page 18
/
s 1, d./page 7/, d./jl. (j8.)/
l./c4:/, i/
/,
l./c4:/, l1, r/rl/dl/
l./j29./, r/j29.) /j129.)/
l./a5:/, d, i/
a5: rl. w3 (j0.) ; goto compute action address
jl w3 x3+c5-e5 ; on previous segment;
/, p-2
l./dl. w3 (j30.)/, d./jl. (j8.)/, i/
am. (j130.) ;
rl w3 -2 ; w3 := stackref;
rs w0 (x3+12) ; w0 param := w0;
rl w3 x3+18 ; w3 := addr first word of name;
am (x3) ;
se w3 x3 ; if (w3) = 0 then
jl. (j108.) ; begin
dl w1 x2+4 ; move
ds w1 x3+2 ; generated name to
dl w1 x2+8 ; array;
ds w1 x3+6 ; end;
jl. (j108.) ; end addr expression;
/, p-14
l./; procedure compute/, d./; end procedure compute/
l./page 8/, r/rc 31.01.73/ rc 1988.06.02/, r/page 8/page 19/
l./; special actions/, d./c9:/, d2, i#
; special actions: ; entries from previous segment:
c6: rl w1 x2+14 ; parent message:
am (x2+18) ; w1:= addr of first part;
al w2 h1+2 ; w2:= name addr in zone
c7: ; finis message:
c8: rx w3 0 ; break message:
jl w3 x3 ; swop (w0, w3);
jl. (j108.) ; end address expression;
c9: rx w3 0 ; end program:
am (x2+14) ; swop (w0, w3);
al w1 h1+2 ; w1:= name addr in zone;
rl w2 x2+18 ; w2:= status;
jl x3 ; goto end program;
#
l./h. ;/, d./b5:/, i/
c14=c4-e3 ; rel entry conn. inout next segm.
c16=c6-e3, c17=c7-e3, c18=c8-e3, c19=c9-e3; rel entries spec. act next segm.
/, p-2
l./e4:/, i/
\f
; rc 1988.06.03 fpproc page 20
/
l./e4:/, g4/e4/e2/, l-4, g4/e5/e3/, l-4, l./too/, r/too/1 too/
l./g0:/, l1, g/1/2/
l6, r/1/2/, r/1 seg/2 seg/
l./m.fpproc/, r/84.03.29/88.06.05/
f
end
▶EOF◀