|
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: 9984 (0x2700) Types: TextFile Names: »kkrht1«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦this⟧ »kkrht1«
kkrh1=slang list.no xref.no ) \f s. a50,b20,c60 w. ; p. <:fpnames:> ; k=h55 ; 0 ; a16: a14 ; al w3 x1 ; wa. w3 a16. ; jl w2 x3 ; start init jl. b0. ; a50: 0,r.20 ; ; start exekvering b0: jl. w3 h25.-2 ; input next command se w2 114 ; if not r(eset) then jl. b1. ; goto b1 jl. w3 a22. ; else reset cpu1 jl. b0. ; goto input next command b1: se w2 97 ; if not (st)a(rt) jl. b2. ; goto b jl. w3 a24. ; else start cpu1 jl. b0. ; goto input next command b2: se w2 111 ; if not (st)o(p) then jl. b3. ; goto b3 jl. w3 a23. ; else stop cpu1 jl. b0. ; goto input next command b3: se w2 105 ; if interrupt then jl. b4. ; goto b4 jl. w3 a21. ; else interrupt jl. b0. ; goto input next command b4: se w2 102 ; if not f(inis) then jl. b0. ; goto input next command al w0 0 ; rs w0 100 ; jl. w3 a20. ; al w2 0 ; jl. w3 h7. ; b. j1 w. ; ; ; ; a20: ; venteprocedure rs. w3 j0. ; al. w3 a6. ; al. w1 a7. ; jd 1<11+16; al. w1 a8. ; jd 1<11+18; al. w2 a50. ; j1: rl w0 x2 ; jl. w3 h32.-2 ; 1<23+32<12 +8 ; al w2 x2+2 ; sh. w2 a50.+12; jl. j1. ; al w2 10 ; jl. w3 h33.-2 ; jl. (j0.) ; j0: 0 ; e. ; b. j0 w. ; a24: am 1<1 ; start a23: am 1<1 ; stop a22: am 1<1 ; reset a21: al w0 a0 ; interrupt wa. w0 a5. ; rs. w3 j0. ; al w3 8 ; do w3 (0) ; jl. w3 a20. ; goto vent jl. (j0.) ; j0: 0 ; e. ; c0=+1 ; c0>0 for test af ri-ordren a0=20<3 ; a5: 1<23 ; a6: <:clock:>,0,0,0,0 ; a7: 0,1,0,0,0,0 ; a8: 0,r.10 ; ; a11: ; start test c. -c0 ; al w2 0 ; al w3 20 ; al w0 0 ; al w1 19 ; ds w3 1194 ; ds w1 1190 ; ss w1 1194 ; ds w1 1186 ; rl. w1 -4 ; jl. a12. ; m. wait cpu1 ; a12: ls w1 -18 ; rs w1 1198 ; rl w1 1196 ; al w1 x1+1 ; rs w1 1196 ; gg w3 66 ; jl. a11. ; ; ; c27: ; b. h20,i11 w. ; z. ; c. c0 ; jl. c26. ; c27: ; rl. w1 a50. ; al w1 x1+1 ; rs. w1 a50. ; ri 16 ; b. h20,i11 w. ; c26: al. w3 h0. ;#1 init cpu1 gp w3 26 ;#1 set inf register addr; rl w3 8 ;#1 base of controller descr addr al. w1 c27. ;#1 rs w1 x3+a0+0 ;#1 set start addr ri 16 ;#1 return interrupt; ;; ; testoutput ; ant. ri - i type - antal int - int level - di - di - tæller ; ; interrupt 16: input finis ; 18: input request ; 20: output finis ; ;#1 system table: monitor mode h.; 0 ; h0: ; 0,r.6 ; w. ; 0 ; -5 monitor call service addr i0: h6 ; -3 interrupt service addr 1<23+0 ; -1 status interrupt limit i1: h3 ; +1 register dump addr 0 ; +3 exception service addr 0 ; +5 escape service addr ;#1 system table: user mode i2: h4 ; -5 monitor call service addr i3: h5 ; -3 interrupt - - 1<23 + 6 ; -1 status < 12 + interrupt limit i5: h7 ; +1 register dump addr 0 ; +3 exception service addr 0 ; +5 escape service addr ;#1 monitor register dump addr h3: 0 ; w0 0 ; w1 0 ; w2 0 ; w3 1<23 ; status monitor mode i4: c27 ; ic start cpu1 process 0 ; cause 0 ; sb 8 ; cpa 0 ; base 8 ; lower write limit 8.3777 7777 ; upper write limit 0<12 + 6 ; interrupt limits ;#1 interrupt service cpu1 h4: am 1 ;#1 monitor call service addr h5: am 1 ;#1 interrupt service addr (level 1) h6: al w3 1 ;#1 interrupt service addr (level 2) rs. w3 a50.+2 ; rl. w1 a50.+4 ; al w1 x1+1 ; rs. w1 a50.+4 ; sh w2 14 ; jl. c27. ; rs. w2 a50.+6 ; rs. w2 i10. ; jl. c27. ; h7: 0 ; w0 0 ; w1 0 ; w2 0 ; w3 1<23 ; status i6: h8 ; ic 0 ; cause 0 ; sb 8 ; cpa 0 ; base 8 ; 8.3777 7777 ; upper write limit 0<12+13 ; h8: ; c.-1 rl. w2 i10. ; se w2 18 ; wait for ready signal from hc8000 jl. h9. ; al w0 0 ; rs. w0 i10. ; rl w1 8 ; al w0 4 ; al. w3 i11. ; input addr ds w3 x1+a0+1<3+2; al w3 -4 ; di. w2 (a9.) ; reset di. w3 (a2.) ; send input request to hc8000 rs. w3 a50.+8 ; se w3 160 ; jl. 0 ; al. w3 a49. ; am -16 ; h10: al w0 20 ; ds w3 x1+a0+1<3+2; al w2 0 ; rs. w2 i10. ; do. w2 (a9.) ; reset do. w0 (a2.) ; send data transfer request h11: rl. w2 i10. ; sn w2 0 ; wait for data tranfer completed jl. h11. ; jl. 0 ; al w3 0 ; rx. w3 i10. ; se w3 x2 ; if a new interrupt already is arrieved then jl. h13. ; goto h13 h12: rl. w2 i10. ; sn w2 0 ; wait for ready signal from hc jl. h12. ; h13: al w3 0 ; di. w3 (a9.) ; reset di. w3 (a2.) ; rs. w3 a50.+10; dl w3 x1+a0+1<3+2; sn w0 4 ; jl. h10. ; se. w3 a49. ; jl. h9. ; al w3 x3+20 ; jl. h10. ; z. h9: ; rl. w1 a50.+12; al w1 x1+1 ; rs. w1 a50.+12; jl. h8. ; i10: 0 ; m. input buffer ; i11: 0,r.20 ; z. ; a1: 0 ; a2: 1<23+21<3+2.001 ; a3: 26 ; a4: 0 ; a9: 1<23+21<3+ 2.010 ; reset a14: ; start init rs. w2 a4. ; save return rs. w1 a14. ; save fp base rl w3 8 ; base of controller tabel al w3 x3+a0 ; rs. w3 a1. ; addr of contr. table for cpu1 al. w1 a11. ; al w0 x1 ; ds w1 x3+2 ; dl. w1 a3. ; ds w1 x3+6 ; jd 1<11+28; c. c0 ; rl. w1 i0. ; wa. w1 a14. ; rs. w1 i0. ; rl. w1 i1. ; wa. w1 a14. ; rs. w1 i1. ; rl. w1 i2. ; wa. w1 a14. ; rs. w1 i2. ; rl. w1 i3. ; wa. w1 a14. ; rs. w1 i3. ; rl. w1 i4. ; wa. w1 a14. ; rs. w1 i4. ; rl. w1 i5. ; wa. w1 a14. ; rs. w1 i5. ; rl. w1 i6. ; wa. w1 a14. ; rs. w1 i6. ; ; ; ; rl. w1 i7. ; wa. w1 a14. ; rs. w1 i7. z. ; jl. (a4.) ; return a49: ; 2 ; 2 ; 0 ; rl w1 32 ; rl w1 34 ; rl w1 36 ; rl w1 38 ; rl w1 40 ; rl w1 42 ; rl w1 44 ; rl w1 46 ; rl w1 48 ; al w1 1 ; ls w1 23 ; al w1 x1+24<3+2.001; al. w3 a48. ; al w0 0 ; do w2 x1 ; a48: jl. 0 ; e. ; e. ; e. ; ▶EOF◀