Especially, the SH2 register are needed :
Code: Select all
org $0
dc.l $06000120
dc.l $06040000
dc.l $06000120
dc.l $06040000
dc.l $060003D4
dc.l $00000000
dc.l $060003D4
dc.l $20100400
dc.l $20100420
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $00000000
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $060003D4
dc.l $06000220
dc.l $06000220
dc.l $06000220
dc.l $06000220
dc.l $06000220
dc.l $06000220
dc.l $06000220
dc.l $06000220
org $120
mov.l REG_32X,R14
ldc R14,GBR
mov #$20,R0
ldc R0,SR
mov.l REG_TIER,R1
mov #0,R0
mov.b R0,@R1
mov.b #$E2,R0
mov.b R0,@(7,R1) ; TOCR
mov #0,R0
mov.b R0,@(4,R1) ; OCRB
mov #1,R0
mov.b R0,@(5,R1) ; TCR
mov #0,R0
mov.b R0,@(6,R1) ; TCR
mov #1,R0
mov.b R0,@(1,R1) ; FTCSR
mov #0,R0
mov.b R0,@(3,r1) ; OCRA
mov.b r0,@(2,r1) ; FRC
test:
mov.l @(8,GBR),r0
add #1,R10
cmp/eq #0,r0
bra test
nop
REG_32X: dc.l $20004000
REG_TIER: dc.l $FFFFFE10
Beware ASMSH is not as good than what I had believed : it adds 15 leading bytes and 1 tailing byte.