Duhhhh.....

Razor

Forum tech Advisor
Staff member
Joined
Jul 31, 2001
Ok..a bit confused here.I see posts where addresses are being changed that dont coincide with addresses within the eeprom.

Like 3849: F6 30 01
384C F0 3F FF
etc...when looking at the eprom files from the eprom itself these numbers are not there.Unless I start at location 3000 not 0000.And what about the instruction code in the micro..Where are the tables or what is being used to derive these addresses.

Like the GOSUB,LDAB,ADDB,JMP,etc...How are these programmed into the eprom?

And the "hack" by Dave H....it lists eprom addresses with functions, but no where are the subroutines listed.

What am I missing here?Where is the connection between the micro and the eeprom?

Anyone?

Thanks in advance.
 
The calibration tables start at 3000 in the ECM
 
Go to www.gnttype.org and surf to the technical articles, ecm stuff, and find the listing that Mike Pitts created by dumping and disassembling all the code in the rom and eprom. Then start reading :).
 
Missing Link

Ok..saw and read the breakdown.

So how does the eprom addresses interface with this.I can see the bin images of an eprom,I can see the ecm command lines on the gnttype.org website,I can also see going into the eprom and changing values to specific locations will alter those particular settings like fan turn on etc...

My missing link is where and how on the eprom you make the subroutines.The LDAB,GOTO,etc...Or..How are you guys converting the bin stuff in hex into this type of readible tables.I have a eprom reader and it gives me 0000-FFFF...How can I read the specifics of my chip.In other words the code built into it so I can make my changes accordingly.What program is being used or method to do this.

I'm trying to be as specific as possible...Thanks guys.
 
The subroutines you're asking about all occur in the EPROM starting at location 37A3. The first 3 you see in all the locations merely indicates that the address occurs in the EPROM, as apposed to imbedded ROM, etc. When I talk about specific addresses I alway drop the leading 3 and refer directly to location addresses (like 7A2, instead of 37A2).
It's understood we're all talking about the EPROM since it's the only chip that is addressable and "changeable". So technically it is address 3000 to 3FFF in the PCM, but internally (what your reader will be looking for, it is 000 to FFF.

All the addresses from 000 to 7A2 are table values that are used by the subroutines in this and other chips in the PCM. These are the tables that are manipulated to change the state of tune (so-to-speak).
The only subroutine changeable areas are 7A2 to FFF. This is changed and manipulated by programmers that know what they're doing. I don't include myself in that group. I'm not a programmer by any means.
I am however, pretty familiar with the table data, and how it may or may not effect the state of tune, so please don't ask me anything about subroutines, I'm stumped by that kinda stuff :eek:

Hope that helps.
 
If you want to know how to go from "I want to make the fan turn on temperature 175 deg F" to knowing that that means putting hex $C3 at location hex $35D1 (I made up those values :)), then the most basic way is to get the spreadsheet that Dave H put on gnttype with the conversion formulas and table addresses and do it manually with a calculator and the hex editor that came with your eprom programmer. A better, easier,way is to use a commercial chip editor like the turbo 6 tuner or tunercat or the old chipster or tweaker programs. They have a listing of tables in English and do the conversions for you, so you just select fan on temp and type in 175 and they do the rest (modifying a binary chip image; you then have to burn the eprom with the image). There are also the freeware promedit and winbin programs which require an ecm definition file to tell them where the tables are. I created a file with all the important stuff (and a couple of errors which I'll get around to uploading the later version to fix one day, sigh, but the old one is okay for standard tuning). All this is at www.diy-efi.org in the gmecm ftp area.

If you want to make programming changes instead of data value changes, then you need to understand Motorola 6801 assembler programming.
 
Fog is getting clearer

"The only subroutine changeable areas are 7A2 to FFF. This is changed and manipulated by programmers that know what they're doing"

Ok...So the information thats contained in addy's 7A2 to FFF..where is the info that deciphers this :)

I have done assembler language programming many years ago so a lot of the terms are still familiar to me...my question still stands

How can I read the assembler language program listings on an eprom after location 7A2 :) in assembler language not hex

ie..LDAB...load accummulator B,GOTO...Go To, GOSUB...go to subroutine,etc...

Thats the meat of this inquisition :) ...Or where can I find a program to get the hex after 7A2 and convert it into Assember language
 
2/3 or the program is actually soldered inside the ECM. This "ROM" calls to lookcups on the chip. For the most part, the lookups are tables. Spark, fuel, EGR stuff like that. For the most part, stuff from 7A3 to FFF is car specific. CCP, WG, stuff like that. After 3FFF the program jumps back to soldered in ROM.

There is a disassembly on gnttype. Its is a disassembled ROM dump called treprom.txt. It is supposedly close, but not 100%. I think you would get a better understanding if you downloaded and looked at that file.

It shows from 0000 which starts data bits, to code, to the prom area (3000-3FFF) and above that, more code. From cranking, to running, to calibration lookups, to trouble code logic up to address FFFF. Again, I've been told its not 100%, but you will get a better understanding if you look through it.

As Dave, I am no programmer. I have lots of ideas, but no way to put em on silicon. I like to tinker/tweak, and as Dave, I think I have a decent idea of what tables are good to play with, what wont realize any significant gain, and which will downright ruin a calibration.

I learned by asking a lot of questions. Probably wore out my welcome in many cases. I'm be glad to help in any way I can (which probably aint that much since you ARE a programmer :) )
 
Uh, yeah I didn't mention that little detail. I meant that he could disassemble the eprom code. The 7148 process code would have to be dumped unless someone here want to just send him what most of the code geeks already have......
 
Jim,
I couldnt program my alarm clock :D J/K

Theres a wealth of information on the eprom and I'm just like you.... trying to take these dam training wheels off and get going.

I like for simplicity the turbo6 tuner..but I want more..And anything I learn I wont hold out on..

FWIW my email is

Idoxlr8_70@yahoo.com

if someone has something relevant I can use ;) ;)
 
Top