|
|
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: »retafrtst74 «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
└─⟦75ff9bef3⟧
└─⟦this⟧ »retafrtst74 «
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◀