|
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◀