|
|
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: 4608 (0x1200)
Types: TextFile
Names: »retafrtst85 «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
└─⟦75ff9bef3⟧
└─⟦this⟧ »retafrtst85 «
mode list.yes
algftnrtst9=edit algftnrtst8
;
; check : magtape :
; if hwds > 0 and
; status contains no special bits then
; z.pos := answ.pos;
;
; check spec : magtape : w1 contains used share instead of hwds xferred =>
; short block out leads to parity repair
;
; check spec : magtape : parity repair : save position should be taken from the
; zone, not from the answer
;
; check spec : magtape : give up after parity repair should add 1 to the
; zones block count
;
; check spec : magtape : setmode op should carry the right mode instead of zero
; and spool count should be zeroed;
;
; tw check spec : moved from check spec to parent message segment
;
;
l./ R E L E A S E 7.0 1 9 8 9 . 0 8 . 0 1 /,
l1, i/
;* *
;* R E L E A S E 7.1 1 9 8 9 . 1 2 . 0 1 *
;* *
;* R E L E A S E 7.2 1 9 9 0 . 1 0 . 0 1 *
/, p-2
l./page ...2/, r/89.07.10/90.10.25/
l./e104=/, r/7<12/7<12/, r/0;/2;/
l./e105=/, r/89/90/, r/0801/1001/
l./page ...117/, r/89.04.19/89.11.30/
l./a32:/, l./sn w1 6/, d6, i/
am. (b3.) ;
rl w2 +2 ;
sn w2 0 ; if hwds = 0 and
se w1 4 ; process kind = area then
jl. a25. ; goto add stopbit
jl. a27. ; else
a25: sn w0 3 ; if less than wanted was input and
se w1 6 ; process kind = disk
sn w0 5 ; or less than wanted was output then
a27: lo. w3 b27. ; status := status or stop bit;
rl. w2 (b0.) ; w2 := saved zone address;
/
l./page ...118/, r/89.01.31/89.11.13/
l./a8:/, l./wa w0 6/, d1, i/
se w0 0 ; if hwds xferred > 0 and
sz. w3 (b15.) ; no special bits in status then
/, p-2
l./page ...120/, r/89.07.10/89.12.04/
l./a12:/, l./sz. w0 (b17.)/, d8, p-1
l./a14:/, r/a14:/a14: rl. w3 (b14.) ;
/, r/ , error/, extend area/
l./page ...129/, r/89.08.17/89.11.13/
l./a26:/, d, i/
a26: am. (b34.) ; short block out or pos err empty xfer:
rl w1 +2 ;
se w1 0 ; if hwds xferred <> 0 then
/, p-3
l./page ...130/, r/88.12.08/89.11.29/
l./al w0 14/, d, i/
zl w1 x2+h1+0 ; message := set mode:
ls w1 13 ; w1.left := (z.mode extract 11) < 13;
al w0 28 ; w0.right := 14 < 1;
ld w1 11 ; w0 := (w0, w1) < 11; <*14 < 12 + mode*>
rs. w1 b1. ; spoolcount := 0;
/, p-4
l./jl. a16./, r/a16/a19/
l./page ...133/, r/83.05.27/89.11.13/
l./a16:/, l1, r/ /a19: /
l./page ...134/, r/89.03.09/90.03.14/
l./a13:/, i/
a10: rl w0 x2+h1+14 ; give up after parity retry:
ba. w0 1 ; zone.block count :=
rs w0 x2+h1+14 ; zone.block count + 1;
jl. a1. ; goto give up;
/, p-3
l./a13:/, l./jl. a1./, r/a1. /a10./,
r/goto/ goto/, r/give up/give up after parity retry/
l./am. (b34.)/, d8, i/
rl w0 x2+h1+14 ; save position := blockcount :=
rs. w0 b4. ; zone.block count;
sl w0 1 ; if blockcount >= 1 then
bs. w0 1 ; blockcount := blockcount - 1;
rs w0 x2+h1+14 ; zone.block count := blockcount;
/, p-2
l./page ...135/, r/89.01.31/89.11.13/
l./c40=/, d7
l./<:check spec:>/, r/spec:>/spec<0><3>:>/
l1, r/segment/segment, rs proc/
l./page ...142/, r/89.04.19/89.11.13/
l./b25:/, i/
b17: 1<21 ; test timer
/, p-1
l./page ...144b/, r/89.04.19/89.11.13/
l./page ...145/, i/
c40=k-b10 ; tw:
rl. w3 (b5.) ;
so. w0 (b17.) ; if not timer then
jl x3+c35 ; goto check special segment.repeat transfer
rl w1 x2+h0+4 ; w1:=used share
bl w0 x1+6 ;
rl. w3 (b6.) ;
sn w0 5 ; if operation = output then
jl x3+c24 ; goto check segment.give up else
jl x3+c25 ; goto check segment.return;
/, p-10
l./m.jz/, r/89.08.17/90.10.25/
f
end
▶EOF◀