EEPROM programming routine
Tom Hussey
thussey at idirect.com
Thu Mar 11 14:28:20 GMT 1999
Hi,
I wonder if folks are interested in snips of code? If a few people
respond I will keep sending these sort of listings. The listing attached
comes from my '97 Z28. I am trying to figure out what the processor that
runs the fuel and timing is writing into the EEPROM. This routine seems
to halt everything and so I expect it runs when the engine isn't. There
is another bit of code later on that seems to program the EEPROM in the
background. Does anyone have good knowledge of what things are saved
there?
Cheers,
Tom Hussey
************************************************
* PROGRAM EEPROM
************************************************
8F3B 36 PSHA ; SAVE REGISTERS
8F3C 37 PSHB ; DATA
8F3D 3C PSHX ; ADDRESS
8F3E E1 00 CMPB $00,X ; TEST IF LOCATION MATCHES
DATA
8F40 26 03 BNE $8F45 ; BRANCH IF PROGRAMMING NEEDED
8F42 7E 8F DF JMP $8FDF ; DONE
8F45 86 16 LDAA #$16 ; INITIALIZE EEPROM FOR
8F47 B7 10 3B STAA $103B ; BYTE ERASE
8F4A A7 00 STAA $00,X ; WRITE TO TARGET BYTE
8F4C 86 17 LDAA #$17 ; TURN ON VPP TO START
8F4E B7 10 3B STAA $103B ; THE ERASE CYCLE
8F51 37 PSHB ; SAVE REGISTERS
8F52 3C PSHX ;
8F53 CC 55 AA LDD #$55AA ; KICK THE COP
8F56 B7 10 3A STAA $103A ;
8F59 F7 10 3A STAB $103A ;
8F5C CC 50 A0 LDD #$50A0 ; KICK THE PORT EXPANDER CHIP
WATCHDOG
8F5F B7 18 06 STAA $1806 ;
8F62 F7 18 06 STAB $1806 ;
8F65 CE 0A 3D LDX #$0A3D ; DELAY 5MS, 2621 LOOPS
8F68 09 DEX ; 3 CYCLES
8F69 26 FD BNE $8F68 ; 3 CYCLES AT 12.5829/4 MHZ
8F6B CC 55 AA LDD #$55AA ; KICK THE COP
8F6E B7 10 3A STAA $103A ;
8F71 F7 10 3A STAB $103A ;
8F74 CC 50 A0 LDD #$50A0 ; KICK THE PORT EXPANDER CHIP
WATCHDOG
8F77 B7 18 06 STAA $1806 ;
8F7A F7 18 06 STAB $1806 ;
8F7D CE 0A 3D LDX #$0A3D ; DELAY 5MS, 2621 LOOPS
8F80 09 DEX ; 3 CYCLES
8F81 26 FD BNE $8F80 ; 3 CYCLES AT 12.5829/4 MHZ
8F83 38 PULX ; RESTORE REGISTERS
8F84 33 PULB ;
8F85 7F 10 3B CLR $103B ; TURN OFF ERASE CYCLE
8F88 C1 FF CMPB #$FF ; IF VALUE TO BE PROGRAMMED IS
$FF
8F8A 27 53 BEQ $8FDF ; THE OPERATION IS COMPLETE
NOW
8F8C 86 02 LDAA #$02 ; INITIALIZE THE EEPROM FOR
8F8E B7 10 3B STAA $103B ; PROGRAMMING
8F91 E7 00 STAB $00,X ; WRITE DATA TO THE TARGET
LOCATION
8F93 86 03 LDAA #$03 ; TURN ON VPP TO START THE
PROGRAMMING
8F95 B7 10 3B STAA $103B ;
8F98 3C PSHX ; SAVE TARGET ADDRESS
8F99 CC 55 AA LDD #$55AA ; KICK THE WATCHODOG
8F9C B7 10 3A STAA $103A ;
8F9F F7 10 3A STAB $103A ;
8FA2 CC 50 A0 LDD #$50A0 ; KICK THE PORT EXPANDER CHIP
WATCHDOG
8FA5 B7 18 06 STAA $1806 ; 3 CYCLES
8FA8 F7 18 06 STAB $1806 ; 3 CYCLES AT 12.5829/4 MHZ
8FAB CE 0A 3D LDX #$0A3D ; DELAY 5MS, 2621 LOOPS
8FAE 09 DEX ;
8FAF 26 FD BNE $8FAE ;
8FB1 CC 55 AA LDD #$55AA ; KICK THE COP
8FB4 B7 10 3A STAA $103A ;
8FB7 F7 10 3A STAB $103A ;
8FBA CC 50 A0 LDD #$50A0 ; KICK THE PORT EXPANDER CHIP
WATCHDOG
8FBD B7 18 06 STAA $1806 ;
8FC0 F7 18 06 STAB $1806 ;
8FC3 CE 0A 3D LDX #$0A3D ; DELAY 5MS, 2621 LOOPS
8FC6 09 DEX ; 3 CYCLES
8FC7 26 FD BNE $8FC6 ; 3 CYCLES AT 12.5829/4 MHZ
8FC9 38 PULX ; RESTORE TARGET ADDRESS
8FCA 7F 10 3B CLR $103B ; PROGRAMMING IS COMPLETE
8FCD CC 55 AA LDD #$55AA ; KICK THE COP
8FD0 B7 10 3A STAA $103A ;
8FD3 F7 10 3A STAB $103A ;
8FD6 CC 50 A0 LDD #$50A0 ; KICK THE PORT EXPANDER CHIP
WATCHDOG
8FD9 B7 18 06 STAA $1806 ;
8FDC F7 18 06 STAB $1806 ;
8FDF 38 PULX ; RESTORE TARGET ADDRESS
8FE0 33 PULB ; RESTORE TARGET DATA
8FE1 32 PULA ; RESTORE REGISTER
8FE2 39 RTS ; DONE
More information about the Gmecm
mailing list