割り込みなしのタイマー
以下のような割り込みを用いないタイマーを使うプログラムをH8マイコンで動かしたいのですが、上手くいきません・・・。表示を1秒間隔で切り替えていくものです。どこがよくないのでしょうか?
MOV.L #FFFFD1,ER0 //PADDR
MOV.B #FF,R1L //FF=11111111
MOV.B R1L,@ER0 //PADDR = FF
MOV.L #FFFFD4,ER0 //PBDDR
MOV.B #FF,R1L //FF=11111111
MOV.B R1L,@ER0 //PBDDR = FF
MOV.L #FFFFD6,ER0 //PBDR
MOV.B #5B,R1L //5B = "2"
MOV.B R1L,@ER0 //PBDR = 5B
MOV.L #FFFFD3,ER0 //PADR
MOV.B #01,R1L //01 = 0KETA
MOV.B R1L,@ER0 //PADR = 0KETA
**128 MOV.L #FFFF64,ER2 //TCR0
MOV.B #83,R1H //83 = 1/8
MOV.B R1H,@ER2 //TCR0 = 1/8
MOV.L #FFFF6A,ER3 //GRA0
MOV.W #61A8,E1 //61A8 = 25000
MOV.W E1,@ER3 //GRA0 = 25000
MOV.W #3E8,E4 //3E8 = 1000
MOV.W #0,R4 // 0
MOV.B #F9,R5L // F9
MOV.L #FFFF67,ER0 //TSR0
MOV.L #FFFF60,ER6 //TSTR
MOV.B #1,R5H
MOV.B R5H,@ER6 //TSTR = 1
*158 MOV.B @ER0,R5H //TSR0の値
CMP.B R5L,R5H
BNE FFF*
MOV.B #F8,R5H //初期値に戻す
MOV.B R5H,@ER0
INC.W #1,R4
CMP.W R4,E4
BNE FFF*
MOV.B #0,R5H //ストップ
MOV.B R5H,@ER6
MOV.L #FFFFD3,ER0 //PADR
ADD.B R1L,R1L //表示桁の更新
MOV.B R1L,@ER0
BRA FFF**