
WriteFlash:
	PUSH	DPH
	PUSH	DPL
	PUSH	ACC
        MOV     P1,#0  ;high address bits 16-23 wired on P1
	CALL	FlashUnlock
	MOV	DPTR,#0555h
	MOV	A,#0A0h
	MOVX	@DPTR,A
	POP	ACC
	POP	DPL
	POP	DPH
        MOV     A,MyDPH2
        MOV     P1,A   ;set high address bits
	MOVX	@DPTR,A
	MOV	Scratch,A
WFPoll:	MOVX	A,@DPTR
	CJNE	A,Scratch,WFPoll
        RET

EraseFlash:
	CALL	FlashUnlock
        MOV     P1,#0  ;reset high address bits
	MOV	DPTR,#0555h
	MOV	A,#080h
	MOVX	@DPTR,A
	CALL	FlashUnlock
	MOV	DPTR,#0555h
	MOV	A,#010h
	MOVX	@DPTR,A
EFPoll:	MOVX	A,@DPTR
	CJNE	A,#0FFh,EFPoll
        RET

FlashUnlock:
	MOV	A,#0AAh
	MOV	DPTR,#0555h
	MOVX	@DPTR,A
	MOV	A,#055h
	MOV	DPTR,#02AAh
	MOVX	@DPTR,A
	RET
