|
|
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: »tcattest«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦this⟧ »tcattest«
(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◀