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