por CCandido » 21 Mar 2007 14:56
antiga e tosca mas funciona até hoje.
FLCR EQU $FE08
HVEN EQU 3
MASS EQU 2
ERASE EQU 1
PGM EQU 0
FLBPR EQU $FE09 ;
BRKH EQU $FE0C ;
BRKL EQU $FF7D ;
BRKSCR EQU $FF7E ;
COPCTL EQU $FFFF
RAM EQU $0080
RAMPRG EQU $00A0
ERARNGE EQU $FC06
PRGRNGE EQU $FC09
;******************************
ORG $0080
ORG $0088
CTRLBYT EQU $0088
ORG $0089
CPUSPD EQU $0089
ORG $008A
LADDR rmb 2
ORG $008C
DATA rmb $08 //sao os 8 bytes a ser gravado
ID0 RMB 1 //IDx = temp
ID1 RMB 1
ID2 RMB 1
ID3 RMB 1
ID4 RMB 1
ID5 RMB 1
ID6 RMB 1
ID7 RMB 1
;******************************
//---------------------------------------------------------
carregar:
LDA ID0
LDHX #$00
STA DATA,X
LDA ID1
LDHX #$01
STA DATA,X
LDA ID2
LDHX #$02
STA DATA,X
LDA ID3
LDHX #$03
STA DATA,X
LDA ID4
LDHX #$04
STA DATA,X
LDA ID5
LDHX #$05
STA DATA,X
LDA ID6
LDHX #$06
STA DATA,X
LDA ID7
LDHX #$07
STA DATA,X
SEI ; INTERRUPÇAOES DESABILITDA
BSET TSTOP,TSC ; TIMER PARALIZADO
CLRX
CLRX
;*********************************************************************
; AQ. É EXECUTADO A ROTINA W_FLASH
; ! NAO TEM RETURN !
; A MCU É LEVADA AO RESET PELO CAO DE GUARDA!!!
;*********************************************************************
FLASH_PROG
CLRX
NEXTRAM
LDA ERAPAGE,X
STA RAMPRG,X
INCX
CBEQX #(ENDPRG-ERAPAGE),RUNRAM
BRA NEXTRAM
RUNRAM
JMP RAMPRG
;**************************************
ERAPAGE
LDA #$FF
STA FLBPR
CLR CTRLBYT
MOV #$04,CPUSPD
LDHX #$FB00 ;FBF0
JSR ERARNGE
;*************************************
PRGPAGE
CLR CTRLBYT
MOV #$04,CPUSPD
LDHX #$FB07 ;
STHX LADDR
LDHX #$FB00 ; 8byte de $FB00~$FB07
JSR PRGRNGE
BRA * // colocar retorno aqui.....
ENDPRG
;*************************************