Burning
Peter Gargano
peter at ntserver.techedge.com.au
Sat Apr 15 21:29:07 GMT 2000
Hmm, love that descriptive title - I guess we're not talking
burning rubber - not with a 998 cc Mini anyways (you wish!).
black maj wrote:
> Okay, i'm not very good with programming etc yet.. but am learning,
> i have read programming 101, but have a quick question.. I have installed modifed
> EFI into my mini, and have found that i have the automatic memcal...
Get the manual trans. memcal! - Camira 2.0 (PFI NA) used following memcals
Engine Trans Model Code ID Comments
2.0PFI A JE AJUN 0098 Prod'n
2.0PFI A JE AMXX 0518 Prod'n No Ping
2.0PFI M JE AKFL 1968 Prod'n
2.0PFI M JE AMXY 0528 Prod'n No Ping
What do you have? (see http://www.syty.org/promguide.html ) to see a
picture of a MemCal - sticker should have letters and numbers = broadcast code
or BCC. I have attach you an AMXY privately.
> the problem is that the car after moving idles up around 3000rpm when i stop, i
> am assuming this is usually to fight against the torque converter? it drops
> back down to idle after a lil bit tho... I have the camira .bin file for
> the manual and am hoping tomorrow to burn a manual chip... if i modify the
Oh, you already have one!
> tables do i need to create another checksum??? (btw what is a checksum?) and
> if so.. do i need to create another even if i leave the .bin as it is???
for AMXY, I've used my disassembler's output, and I added comments (doesn't
do this automatically yet ;-) - see more explanation below...
[snip]
org $C000
;
db $02, $10, $09, $0E, $00, $2F
LC006: dw $7598 ;Checksum
LC008: db $5D ;Program ID
;
[snip]
;
ldX #$C008 ;start of checksum area
ldD #$3FF8 ;length to check
call LF04D ;compute checksum
ldX #$0100 ;data area indexed address base
cmpY LC006 ;check with checksum at $C006
bne LD065 ;no match - branch, do further checks
ldaA LC008 ;match - now check program ID byte at $C008
cmpA #$5D
beq LD071 ;match - now have correct checksum AND ID byte
LD065: ldaA LC008 ;bad checksum found
cmpA #$AA ;if ID is $AA then we'll ignore checksum
beq LD071 ;ignore it
bset 0, X, #%00010000 ;don't ignore - set bit 4 of $0100
jr LD074 ;continue
;
LD071: bclr 0, X, #%00010000 ;clear set bit 4 of $0100
This code (or very similar) is pretty much in every GM MemCal ever
made, so it's worth understanding - some of the locations may change,
but basically the checksum routine calculates a 16 bit sum of all the
bytes from $C008 to $FFFF (I have not shown this routine, but in this
MemCal it's at $D065).
The implications for tuning is that you can set location $C008
to $AA and the checksum will be ignored - so you can zap bytes in
the ROM and you won't get any "codes". Or you can compute a checksum
and have the added security of the code checking itself that it's all
there!
PG.
----------------------------------------------------------------------------
To unsubscribe from gmecm, send "unsubscribe gmecm" (without the quotes)
in the body of a message (not the subject) to majordomo at lists.diy-efi.org
More information about the Gmecm
mailing list