DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

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

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦b8065e729⟧ TextFile

    Length: 7680 (0x1e00)
    Types: TextFile
    Names: »retfppr3tx  «

Derivation

└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
    └─⟦75ff9bef3⟧ 
        └─⟦this⟧ »retfppr3tx  « 

TextFile

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◀