DIY PROM Do It Yourself PROM chip burning help. No PROM begging. No PROMs for sale. No commercial exchange. Not a referral service.

AUJP ($8D) Idle Air Control (IAC) Logic

Thread Tools
 
Search this Thread
 
Old Aug 16, 2013 | 10:25 PM
  #1  
84Elky's Avatar
Thread Starter
Senior Member
15 Year Member
Liked
 
Joined: Jun 2010
Posts: 580
Likes: 32
From: Montgomery, AL
Car: 84 El Camino
Engine: 360 TPI
Transmission: 700R4
Axle/Gears: 3.42 + Truetrac, Moser 28 Spline
AUJP ($8D) Idle Air Control (IAC) Logic

1000+ hours and done for now. I wanted to understand how the IAC worked under AUJP ($8d), so went through the code to learn. As the project progressed, the uploaded document resulted to record the findings. Also uploaded is a companion document which is an overly commented version of JP's S_AUJP 2 source code hack in a Word .doc format. It's a work-in-process for me as I learn what the code does.

None of this may be meaningful to anyone else as some of it deals with code details; but in the end, it does at least describe how the IAC works in AUJP. Also covered:
  • Fans and Warm Kickdown
  • Startup Delay Period
  • IAC Kickdown
  • Throttle Follower
Attached Files
File Type: zip
JP_AUJP2-ASM.zip (826.8 KB, 6310 views)
Reply
Old Aug 17, 2013 | 03:44 AM
  #2  
JP86SS's Avatar
Supreme Member
20 Year Member
iTrader: (1)
 
Joined: Apr 2004
Posts: 3,180
Likes: 3
From: Browns Town
Car: 86 Monte SS (730,$8D,G3,AP,4K,S_V4)
Engine: 406 Hyd Roller 236/242
Transmission: 700R4 HomeBrew, 2.4K stall
Axle/Gears: 3:73 Posi, 7.5 Soon to break
Re: AUJP ($8D) Idle Air Control (IAC) Logic

Nice review , and a resounding Thank You for taking the time to figure out the details. (You even followed the stack !!)
Found more detail items than I can count so now I can't stop reading it !!!!

Did I see that correctly in that the IAC routines "still" have indexed addressing?
If so I'll need to lable them so if anyone inserts code between the indexes it won't mess up the code execution.

Reply
Old Aug 18, 2013 | 11:23 PM
  #3  
gp90gta's Avatar
Member
15 Year Member
iTrader: (1)
 
Joined: Jan 2009
Posts: 456
Likes: 12
From: New York
Car: 1990 GTA
Engine: 350
Transmission: 700R4
Axle/Gears: 3.23
Re: AUJP ($8D) Idle Air Control (IAC) Logic

This is fantasitc work, thank you, I've always have had a hard time understanding (not understanding) the $8d IAC logic, it just makes no sense to me, you would think that the IAC is really only needed for stall saving, TF, idle, and idle load changes, yet I could be cruising along on the highway with no heavy changes to tps or load and my IAC is move around but the car runs great. So now all I need now is a few year to study it to get a better understanging of it lol.
Reply
Old Aug 22, 2013 | 09:38 AM
  #4  
84Elky's Avatar
Thread Starter
Senior Member
15 Year Member
Liked
 
Joined: Jun 2010
Posts: 580
Likes: 32
From: Montgomery, AL
Car: 84 El Camino
Engine: 360 TPI
Transmission: 700R4
Axle/Gears: 3.42 + Truetrac, Moser 28 Spline
Re: AUJP ($8D) Idle Air Control (IAC) Logic

Originally Posted by JP86SS
Did I see that correctly in that the IAC routines "still" have indexed addressing?
If so I'll need to lable them so if anyone inserts code between the indexes it won't mess up the code execution.
What I was referencding in the comment was not a "jump". Rather it is where a varible's address is loaded to the X register via 'ldx' creating a pointer to a memory addess so that future references "index" off of it to point to another variable. For example:
Code:
ldx   #L8628
cmpa  0x1D,x
Here, the variable represented by '0x1D,x' is L8645, obtained by "offsetting" from the starting index/pointer 0x8628 by 0x1D (0x8628 + 0x1D = 0x8645).

Really makes the code hard to follow. I can't in my wildest dreams understand why GM would have programmed it this way except in one spot where things change whether in gear or P/N. Smells like a contract programmer working by the hour to make things complicated. But that's why I added all the comments where these indexes were used. Would obviously have been better if the actual variable name was used, but it is what it is.

Here are all the places I found where a variable was used as an index pointer:
L8628 - 3 times (LC2A5, LC3DF+6, LE61E)
L862C - 1 time (LC439+2)
Reply
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
EdgesZ28
DFI and ECM
4
May 9, 2006 11:02 AM
Z69
DIY PROM
9
Dec 25, 2005 01:12 PM
Craig Moates
DIY PROM
3
Apr 29, 2005 10:24 AM
3.8TransAM
DIY PROM
2
Apr 20, 2005 01:35 AM
EdgesZ28
DIY PROM
9
Feb 19, 2005 07:01 PM




All times are GMT -5. The time now is 04:46 AM.