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