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

⟦7f515f7d6⟧ TextFile

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

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »tcattest« 

TextFile

(cattest=slang
)
s. a30,b30,w.
p.<:fpnames:>
k=h55
a0:  4<12+10           ; kode for text
a1:  0
     ba  w3  x3+1      ; 1. paramter
     bz  w2  x3+1      ;
    se  w2     10    ; if param<>name then
     jl.        b17.   ; error
     al  w3  x3+2      ;
     rs. w3     a1.    ;
     al. w1     a20.   ;
     al  w2  x1+510    ;
     ds. w2     a5.    ;
     dl  w2  x3+2      ;
     ds. w2     a10.   ;
     dl  w2  x3+6      ; move name
     ds. w2     a12.   ;
     al. w0     a9.    ;
     jl. w3     h31.-2 ; write name
     al  w2     10     ;
     jl. w3     h26.-2 ;
     al. w3     a9.    ; name addr
     al. w1     a2.    ; tail addr
     jd      1<11+42   ; lookup entry
     se  w0     0      ; if entry do not exist then
     jl.        b18.   ; error
b0:  jd      1<11+52   ; create area process
     se  w0     0      ;
     jl.        b19.   ; if not created then goto error
b1:  rl. w2     a6.    ;
     al  w2  x2+1      ; next segement
     sl. w2     (a2.)  ;
     jl.        b21.   ;
     rs. w2     a6.    ;
     al. w3     a9.    ; name addr
     al. w1     a3.    ; mess addr
     jd      1<11+16   ; input next segment
     al.w1      a7.    ; answer addr
     jd      1<11+18   ;
     se  w0     1      ; if input error then
     jl.        b10.   ; goto b10.
     rl  w1  x1+2      ;
     se  w1     512    ; if number of bytes<512 then
     jl.        b10.   ; goto b10.
     al  w2     10     ;
     jl. w3     h26.-2 ; NL
     rl. w0     a6.    ;
     jl. w3     h32.-2 ; segment number
     32<12+4
     rl. w2     a4.    ; first addr
b5:  rs. w2     a8.    ;
     rl   w0     x2    ;
     sn  w0      -1    ; if no entry then
     jl.         b13.  ; next entry
     dl  w1  x2+12     ;
     aa  w1  x2+8      ; compute namekey
     wa  w1     0      ;
     ba  w1     2      ;
     al  w0     0      ;
     wd. w1     a2.    ;
     sn. w0     (a6.)  ; if namekey=curr segment number then
     jl.        b14.   ; goto b14 else
     rl. w3     a13.   ;
     al  w3  x3+1      ; count
     rs. w3     a13.   ;
     jl. w3     h32.-2 ; print name key
     32<12+4
b8:  al  w2  x2+34     ;
     sl. w2     (a5.)  ;
     jl.        b1.    ;  goto next segment
     jl.        b5.    ; else goto next entry
b10: rl. w2     a6.    ;
     al  w2  x2-1      ;
     rs. w2     a6.    ;
     jl.        b0.    ; try again
b13: al. w0     a16.   ;
     jl. w3     h31.-2 ; print ...
     jl.        b8.    ; goto next entry
b14: rl. w3     a14.   ;
     al  w3  x3+1      ; count
     rs. w3     a14.   ;
     al. w0     a15.   ;
     jl. w3     h31.-2 ;
     jl.        b8.    ;
b17: al. w0     a17.   ;
     jl.        b20.   ;
b18: al. w0     a18.   ;
     jl.        b20.   ;
b19: al. w0     a19.   ;
     jl.        b20.   ;

b21: al. w0     a22.   ;
     jl. w3     h31.-2 ;
     rl. w0     a2.    ;
     ls  w0     4      ; number of segments*15
     ws. w0     a2.    ;
     rs. w0     a10.   ; !!
     jl. w3     h32.-2 ;
     1<23+32<12+8

     al. w0     a23.   ;
     jl. w3     h31.-2 ;
     rl. w0     a10.   ;
     ws. w0     a13.   ;
     ws. w0     a14.   ;
     jl. w3     h32.-2 ;
     1<23+32<12+8

     al. w0     a24.   ;
     jl. w3     h31.-2 ;
     rl. w0     a14.   ;
     wa. w0     a13.   ;
     jl. w3     h32.-2 ;
     1<23+32<12+8

     al. w0     a25.   ;
     jl. w3     h31.-2 ;
     rl. w0     a13.   ;
     jl. w3     h32.-2 ;
     1<23+32<12+8

     al. w0     a21.   ;
b20: jl. w3     h31.-2 ;
     al  w2     0      ;
     jl.        h7.    ; stop

a2:  0,r.17            ;
a3:  3<12+0            ;
a4:  0                 ;
a5:  0                 ; last addr
a6:  -1,0,r.4          ; segment
a7:  0,r.8             ;
a8:  0                 ; 
a9:  0                 ; 
a10: 0
a11: 0
a12: 0,0
a13: 0                 ; counter for entries outside homesegments
a14: 0                 ; counter for entries at homesegments
a15: <:----<0><0><0>:>
a16:<:....<0><0><0>:>
a17:<:param error<10><0><0>:>
a18:<:entry do not exist<10><0><0>:>
a19:<:reserved by another user<10><0><0>:>
a21:<:<10>end<10><0><0><0>:>
a22:<:<10>entries                  <0><0><0>:>
a23:<:<10>entries free             <0><0><0>:> 
a24:<:<10>used entries             <0><0><0>:>
a25:<:<10>entries at other segments<0><0><0>:>
a20:
e.
e.
▶EOF◀