English
Language : 

HD6433044 Datasheet, PDF (607/867 Pages) Hitachi Semiconductor – Hitachi Single-Chip Microcomputer
LOOPR2: DEC.W
BPL
MOV.B
BEQ
CMP.B
BEQ
SHLL.W
INC.B
BRA
PWVFOK: CMP.L
BEQ
INC.L
BRA
;Execute erase
ERASES: SUB.W
MOV.L
MOV.W
ERASE: CMP.W
BEQ
INC.W
MOV.W
MOV.W
MOV.W
MOV.B
MOV.B
LOOPE: PUSH.L
POP.L
PUSH.L
POP.L
PUSH.L
POP.L
DEC.W
BPL
MOV.B
MOV.B
MOV.W
MOV.W
; Execute erase-verify
MOV.B
MOV.B
MOV.W
LOOPEV: DEC.W
BPL
EVR2: MOV.B
MOV.W
#1,
R5
LOOPR2
@ER1, R5H
PWVFOK
#05,
R0H
ABEND1
E4
R0H
PREWRS
ER2,
ER1
ERASES
#1,
ER1
PREWRN
; Wait
;
; Read data = H'00?
; If read data = H'00, branch to PWVFOK
; Prewrite-verify executed 6 times?
; If prewrite-verify executed 6 times, branch
to ABEND1
; Double prewrite loop counter value
; Prewrite-verify fail count + 1 → R0H
; Prewrite again
; Last address?
;
; Address + 1 → R1
; If not last address, prewrite next address
R0,
R0
; R0: erase-verify fail count
#BLKSTR:32,ER3 ; ER3: top address of block to be erased
#d,
E4
; Set initial erase loop counter value
#025A, R0
; R0 = H'025A? (erase-verify fail count = 603?)
ABEND2
; If R0 = H'025A, branch to ABEND2
#1,
R0
; Erase-verify fail count + 1 → R0
E4,
R4
;
#f,
R5
; Start watchdog timer
R5,
@TCSR:16 ;
#42,
R5H
; Set E bit
R5H,
@FLMCR:8 ;
ER5
ER5
ER5
ER5
ER5
ER5
#1,
R4
; Erase
LOOPE
;
#40,
R5H
;
R5H,
@FLMCR:8 ; Clear E bit
#A500, R5
;
R5,
@TCSR:16 ; Stop watchdog timer
#48,
R5H,
#e ,
#1,
LOOPEV
#FF,
#h,
R5H
;
@FLMCR:8 ; Set EV bit
R4
; R4: erase-verify loop counter
R4
;
; Wait
@ER3
R4
; Dummy write
; R4: erase-verify loop counter
598