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

⟦f4548b65c⟧ TextFile

    Length: 4608 (0x1200)
    Types: TextFile
    Names: »retafrtst85 «

Derivation

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

TextFile

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◀