ST2601B
STA
STZ
CLI
IREQL
LCD_FLAG
;CLEAR LCD INT REQUEST
?WAIT_LCD_INT_RC232K:
LDA LCD_FLAG
BEQ ?WAIT_LCD_INT_RC232K
;=== change SYSCLK = 32K ===
LDA SYS
ORA #10000000B
STA
SYS
NOP
NOP
NOP
BBR7SYS,$
;=== RECOVERY IENAL/H ===
SEI
LDA IENAL_BAK
STA
IENAL
LDA IENAH_BAK
STA
IENAH
CLI
.ENDM
3. Sysck from 32K change to RC. (After changing to RC, LCD must be in fast B/W mode.)
Please use the macro “SWITCH_SYSCLK_32K_TO_RC”.
SWITCH_SYSCLK_32K_TO_RC
.MACRO
;=== BACKUP IENAL/H AND ONLY ENABLE LCD INT ===
SEI
LDA IENAL
STA
IENAL_BAK
LDA IENAH
STA
IENAH_BAK
LDA #10000000B
;ONLY ENABLE LCD INT
STA
STZ
IENAL
IENAH
LDA #01111111B
STA
STZ
CLI
IREQL
LCD_FLAG
;CLEAR LCD INT REQUEST
?WAIT_LCD_INT_32K2RC:
LDA LCD_FLAG
BEQ ?WAIT_LCD_INT_32K2RC
;=== change SYSCLK = RC ===
LDA SYS
AND #~10000000B
STA
SYS
NOP
NOP
NOP
BBS7SYS,$
;=== RECOVERY IENAL/H ===
SEI
LDA IENAL_BAK
STA
IENAL
LDA IENAH_BAK
STA
CLI
IENAH
LDA LPCK_BAK
STA
LPCK
.ENDM
28/35