|
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: 6144 (0x1800) Types: TextFile Names: »kksltst1t«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt. └─⟦0364f57e3⟧ └─⟦this⟧ »kksltst1t«
(kksltst=slang list.yes xref.yes; ); s. a3,b30,d1,i9,j100 w.; p. <:fpnames:> ; k=h55 ; ;. program til afvikling af slangprogrammer ; 1 ordre af gangen ; jd og je fungerer dog kun som jl 0,0 ; al w0 2.10 ; jd 1<11+30; set cpu1 al. w2 h31.-2 ; al. w3 h7. ; al. w0 h32.-2 ; jl. 2,r.1536; make room for end program jl. b0. ; goto start d0: 0 ; displayment d1: 0 ; address a0: 0 ; w0 a1: 0 ; w1 a2: 0 ; w2 a3: 0 ; w3 i0: 0 ; ic i1: 0 ; indexing (x1,x2 or x3) i2: 0 ; modify (relative or and indirect) i3: 0 ; wreg (w0,w1,w2,w3) i4: 0 ; instruction i5: 0 ; am result i6: 2.1111 1111 1111 1000 0000 0000; mask for mon call check i7: 0 ; instruction+wreg i8: 2.000000 00 11 00 ; mask for modify+indexing i9: 0 ; current instruction j12: 0 ; first of proc j31:0 j7:0 j32:0 ; ; b0: ds. w3 j7. rs. w0 j32. al. w3 b29. ; rs. w3 i0. ; start address rs. w1 j12. ; al. w1 b6. ; rs. w1 b6. ; rs. w1 b7. ; wa. w1 b5. ; rs. w1 b5. ; proc id b10: rl. w0 i0. ;next instruction ws. w0 j12. ;ic:=relative ic rl. w3 b6. ; al w3 x3+10 ; sl. w3 ( b5.) ; rl. w3 b7. ; rs. w3 b6. ; rs w0 x3+4 ; dl. w1 a1. ; ds w1 x3+8 ; dl. w1 a3. ; ds w1 x3+12 ; save current reg val rl. w1 ( i0.) ; w1:=next instruction rs. w1 i9. ; bl w2 3 ; w2:=displayment rs. w2 d0. ; ld w2 -14 ; ls w2 -22 ;w2:=indexing rs. w2 i1. ; ld w2 -2 ; ls w2 -22 ; w2:=modifying rs. w2 i2. ; al w0 x1 ; ; ld w2 -2 ; ls w2 -22 ; w2:=wreg rs. w2 i3. ; rs. w1 i4. ; save instruction number ls w0 4 ; rs. w0 i7. ; save instruction+wreg ; address calculation rl. w1 d0. ;w1:=dispayment wa. w1 i5. ; + am-result rl. w2 i1. ; ls w2 1 ; se w2 0 ; wa. w1 x2+a0. ; + indexing rl. w2 i2. ; sz w2 2.10 ; wa. w1 i0. ; +ic (if relative) so w2 2.01 ; if not indirect then jl. b12. ; goto b12; sh w1 6 ; else if address=wreg then am. a0. ; add saved register value else rl w1 x1 ; else address:=(address) b12: rs. w1 d1. ; rl. w2 i0. ; al w2 x2+2 ;ic:=ic+2 rs. w2 i0. ; al w2 0 ; rs. w2 i5. ;clear am result rl. w2 i4. ;w2:=instruction se w2 9 ; if not am then jl. b15. ;goto b15 rs. w1 i5. ;else am result:=address jl. b10. ; and goto next instruction b15: se w2 14 ; if not jd then jl. b17. ; goto b17 else so. w1 ( i6.) ; if not monitor call then jl. b18. ; goto b18 else al w0 2.0111 1111 1111; la w0 2 ; w0:=mon call number sl w0 150 ; if not mon call then jl. b18. ; goto b18 rl. w2 i9. ; else perform the monitor call here rs. w2 b16. ; dl. w1 a1. ; dl. w3 a3. ;load registers b16: jd 1<11+0 ; call monitor ds. w1 a1. ; ds. w3 a3. ; save registers jl. b10. ; and goto next instruction b17: se w2 13 ; if je or sn w2 15 ; jl then jl. b18. ; goto b18 else jl. b20. ; else goto b20; b18: rx. w1 i0. ; jd,je or jl: ic:=address rl. w2 i3. ; ls w2 1 ; se w2 0 ; if wreg<>w0 then rs. w1 x2+a0. ; link:=ic+2 jl. b10. ; goto next instruction b20: sn w2 21 ; if sp then jl. b21. ; goto b21 else sl w2 40 ; if not sl w2 47 ; sh, sl, se, sn, so, sz, or sx then jl. b25. ; goto b25 b21: rl. w2 i7. ;else lo. w2 i8. ; hs. w2 b22. ; dl. w1 a1. ; dl. w3 a3. ; b22: sh. w2 ( d1.) ; skip instruction am -2 ; no skip al w0 2 ; skip ic:=ic+2 wa. w0 i0. ; rs. w0 i0. ; rs. w1 a1. ; ds. w3 a3. ; jl. b10. ; goto next instruction b25: rl. w2 i7. ; lo. w2 i8. ; hs. w2 b27. ; dl. w1 a1. ; dl. w3 a3. ; b27: al. w0 ( d1.) ; instruction ds. w1 a1. ; ds. w3 a3. ; jl. b10. ; goto next instruction ; b. a20 w. b29:rl w2 68 ; a9: al w0 x2-18 ; jl. w3 (j32.) ; 1<23+32<12+9 ; rl w0 x2-24 ; jl. w3 (j32.) ; 1<23+32<12+8 ; dl w1 x2-14 ; ds. w1 a3. ; dl w1 x2-10 ; ds. w1 a5. ; al. w0 a2. ; jl. w3 (j31.) ; al. w0 a6. ; jl. w3 (j31.) ; rl w2 x2 ; se w2 68 ; jl. a9. ; al w2 0 ; jl. (j7.) ; a2: <:<32><32><32>:> ; 0 a3: 0 ; a4: 0 ; a5: 0 ; a6: <:<10><0><0>:>,0,0; e. ; b5: b8 ; b6: 0 ; b7: 0 ; 0,r.2000 ; b8: ; e. ; e. ; ▶EOF◀