
Preliminary W78E365
Publication Release Date: April 2001
- 33 -
Revision A1
;*********************************************************************
;* BLANK CHECK
;*********************************************************************
MOV SFRCN,#0H
MOV SFRAH,#0H
MOV SFRAL,#0H
MOV R6,#FBH
MOV R7,#FFH
MOV TL0,R6
MOV TH0,R7
BLANK_CHECK_LOOP:
SETB TR0
MOV PCON,#01H
MOV A,SFRFD
CJNE A,#FFH,BLANK_CHECK_ERROR
INC SFRAL
MOV A,SFRAL
JNZ BLANK_CHECK_LOOP
INC SFRAH
MOV A,SFRAH
CJNE A,#0H,BLANK_CHECK_LOOP ;END ADDRESS=FFFFH
JMP PROGRAM_64KROM
BLANK_CHECK_ERROR:
MOV P1,#F0H
MOV P3,#F0H
JMP $
;*******************************************************************************
;* RE-PROGRAMMING 64KB APROM BANK
;*******************************************************************************
PROGRAM_64KROM:
MOV DPTR,#0H
;THE ADDRESS OF NEW ROM CODE
MOV R2,#00H
;TARGET LOW BYTE ADDRESS
MOV R1,#00H
;TARGET HIGH BYTE ADDRESS
MOV DPTR,#0H
;EXTERNAL SRAM BUFFER ADDRESS
MOV SFRAH,R1
;SFRAH, TARGET HIGH ADDRESS
MOV SFRCN,#21H
;SFRCN(C7H) = 21 (PROGRAM 64K)
MOV R6,#0CH
;SET TIMER FOR PROGRAMMING, ABOUT 150us.
MOV R7,#FEH
MOV TL0,R6
MOV TH0,R7
;READ 64KB APROM MODE
;START ADDRESS = 0H
;SET TIMER FOR READ OPERATION, ABOUT 1.5us.
;ENABLE TIMER 0
;ENTER IDLE MODE
;READ ONE BYTE
;NEXT ADDRESS