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

⟦9897f018a⟧ TextFile

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

Derivation

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

TextFile

mode list.yes
algftnrtst8=edit algftnrtst7
;
; i floating fault rettes check af exception register til at afgøre
;   evt. ix index fejl
;
; i release zones anbringes en nulstillet sharestate fejlagtigt en share
;   for langt fremme i stakken
;
; i rts init sættes stack top = fp command stack top + 10 fordi fp rel. 4.0
;   anbringer en extra kommando "this program" i fp stack top
;
; i check indføjes intervention bit (1<23) som special action bit for
;   character output (tp, lp, imc)
;
; i check special for character output ændres parent message change til attend
;
; i check special for character output behandles intervention som paper low
;   d.v.s. parent message attend
;
; i magtape check nulstilles spoolcount ved parity error
;
; i magtape check sættes position error bit i status ved reposition
;
; i check sættes stopped ved less than wanted in/output and disc or area

; i check returneres normalt hvis area and less than wanted input, mens
;     der laves repeat hvis less than wanted in/output with disc
;
; i check rettes fejl : jl. 0 ved retur fra extend area segment
;

l./           R E L E A S E  6.0  1 9 8 9 . 0 2 . 0 1                   /, 
l1, i/
;*                                                                      *
;*            R E L E A S E  7.0  1 9 8 9 . 0 8 . 0 1                   *
/, p-2

l./page ...2/, r/88.05.19/89.07.10/
l./e104=/, r/6<12/7<12/
l./e105=/, r/0201/0801/
l./s. c99, d115/, r/d115/d200/

l./page ...10/, r/88.10.07/89.07.12/
l./so  w0     3/, r/w0/w3/

l./page ...34/, r/83.05.27/89.06.26/
l./a4:/, l./rs  w0  x3/, r/x3   /x3-h6/

l./page ...59/, r/88.03.01/89.07.10/
l./d106:/, l1, i/
d116:    0              ; user bits
d117:    0              ; saved return from check
/, p-2

l./page ...62/, r/85.09.13/89.06.26/
l./c14=/, l./ds. w2  b5./, 
r/first of rs:= fp base; //, 
r/top;/top-10; <*fp rel4.0 adds one item on top of fp stack*>/
i/
     al  w2  x2-10      ;   first of rs := fp base;
/, p1

l./page ...112/, r/89.01.31/89.07.10/
l./b3 :/, l1, i/
b1 : d116-d0            ; user bits
b2 : d117-d0            ; saved return from check
/, p-2
l./b1:/, d
l./b25:/, d

l./page ...116/, r/83.05.27/89.08.17/
l./a5:/, d./c33:/, d3, i/

a5:  rl. w2    (b0.)    ; exit:
     rl  w1  x2+h0+4    ;   w1 := used share;
a31: rl  w0  x1+22      ; exit1:
                        ;   w0 := top transferred;
a28: el. w3    (b2.)    ; normal return;
     jl.     x3         ;   goto return saved in b2;

c70=a28+2-b10           ; entry to normal return, used by give up segment;
 
c34=k-c31-c30           ; entry check:

c33: ac  w3  x3         ; wait transfer:
     ac. w3  x3+a28.+2  ;   relative of return :=
     hs. w3    (b2.)    ;     abs return - (a28 + 2);
     al  w0     0       ;   parity count := 0;
     rs. w0    (b23.)   ;
 
/, p-2
l./c26=/, l1, r/     b2. /    (b2.)/
l./c71=/, l3, r/     b2. /    (b2.)/

l./page ...117/, r/89.01.31/89.04.19/
l./a32:/, l./; when the logical status/, 
l./am.       (b3.)    ;/, d./rl. w2   (b0.)/, i#
     sn  w0     3       ;   if less than wanted was input  and
     se  w1     4       ;      process kind = area or disk
     sn  w0     5       ;   or less than wanted was output then
     lo. w3     b27.    ;     status := status or stop bit;
     rl. w2    (b0.)    ;   w2 := saved zone address;
#, p-5

l./page ...119/, r/83.05.27/89.07.10/
l./a10:/, l3, g 1/     b1. /    (b1.)/, p-2
l./a17:/, r/     b1. /    (b1.)/
l./a7:/, l4, r/     b2. /    (b2.)/

l./page ...120/, r/89.01.31/89.07.10/
l./a12:/, d1, i#

a12: sz  w0     1<5+1<2 ; bs: if not exist or rejected then
     jl      x3+c36     ;     goto get area process, error segm;
     sz. w0    (b17.)   ;   if not end of doc then
     jl.        a13.    ;   begin <*stopped but not end of doc*>
     zl  w1  x2+h1+1    ;
     am     (x2+h0+4)   ;
     zl  w0    +6       ;     if not (kind = area    and
     sn  w1     4       ;             op   = input) then
     se  w0     3       ;       goto repeat transfer, error segment else
     jl      x3+c35     ;       goto normal return;
     jl.        a17.    ;   end;

#, p-2
l./a13:/, l2, r/ segment//
l1, r/area;/area segment;/
l./c42=/, d./a16:/, i#

a14: jl     x3+c40      ; tw:       goto tw      , error segment;
                          
a15: jl     x3+c22      ; tp,lp,pl: goto tp,lp,pl, error segment;

a16: jl     x3+c23      ; mt:       goto mt      , error segment;

#, p-2

l./page ...123/, r/88.03.01/89.03.09/
l./; 20 tape punch, line printer/, 
l3, r/2.0/2.1/, r/end doc/intervention, end doc/

l./page ...125/, r/89.01.31/89.03.09/
l./b6 :/, r/1<18     /1<23+1<18/, r/end/intervention and end/
l1, r/change/attend/

l./page ...127/, r/88.03.01/89.04.19/
l./a20:/, l-1, 
r/only u/u/, 
r#bs-output, end document#disk input/output or area output, stopped#

l./page ...128/, r/89.01.31/89.08.17/
l./<:change paper:>/, r/change paper/attend/
l./a41:/, l./rl. w3    (b0.); goto physical eom/, r/b0.) /b18.)/
l1, r/c41/c43/, r/previous/extend area/
l./a42:/, d3, i/

a42:  al  w0  1<6       ; add position error bit:
      lo. w0 (b34.)     ;   status :=
      rs. w0 (b34.)     ;     status or position error bit;
/, p1

l./page ...129/, r/89.01.31/89.08.17/
l./a19:/, r/a19:/    /

l./page ...132/, r/89.01.02/89.08.17/
l./a18:/, l1, i/
      al  w1  1<6       ; add position error bit:
      lo. w1 (b34.)     ;   status :=
      rs. w1 (b34.)     ;     status or position error bit;
/, p1

l./page ...134/, r/89.02.01/89.03.09/
l./rs. w1     b2./, i/
     rs. w1     b1.     ;   spoolcount := 0;
/, p-2

l./page ...142/, r/88.04.21/89.04.19/
l./b15:/, l1, i/
b25: <:<25><25><25>:>; 3 EM characters
/, p-1

l./page ...143/, r/88.04.21/89.07.10/
l./c47=/, d./rs. w0     b4./, i/


c47=k-b10               ; end of doc: 
     ds. w3    (b8.)    ;   save sref, w3;
     rl  w1  x2+h0+4    ;   w1 :=
     zl  w1  x1+6       ;     zone.share.operation;
     bz  w0  x2+h1+1    ;   w0 := process kind;
     sn  w0     4       ;   if process kind = <bs>  and
     se  w1     5       ;      output              then
     jl.        a25.    ;   begin <*extend area*>
     al  w3  x2+h1+2    ;
     jd         1<11+4  ;     process description;
     rs. w0     b4.     ;     save area proc addr in b4.;
/

l./page ...144/, r/88.04.21/89.04.19/
l./a27:/, i#

\f


; jz.fgs 1989.04.19               algol/fortran runtime system               page ...144a...


#, p1
l./page ...145/, i#

\f


; jz.fgs 1989.04.19               algol/fortran runtime system               page ...144b...


a25: rl. w3    (b6.)     ;   end <*extend area*> else
     se  w1     3        ;   if not input then
     jl      x3+c24      ;       goto give up, check segment
     rl  w1  x2+h0+4     ;   else
     rl  w0  x1+2        ;
     ea. w0    +1        ;
     sh  w0 (x1+22)      ;   if top transferred > first shared then
     jl      x3+c25      ;     goto normal return, check segment
                         ;   else
c43=k-b10                ;   begin physical eom:
     rl  w1  x2+h0+4     ;     w1 := used share;
     rl. w0     b25.     ;     zone.buffer area.first addr :=
     rs  w0 (x1+8)       ;       <:<25><25><25>:>;
     al  w0     2        ;     zone.top xferred :=    
     wa  w0  x1+8        ;       zone.first addr + 2; 
     rs  w0  x1+22       ;     
     rl. w3    (b6.)     ;     goto normal return, check segment; 
     jl      x3+c25      ;   end;

#

l./m.jz/, r/89.02.01/89.08.17/

f 

end
▶EOF◀