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 08-16-2013, 10:25 PM
  #1  
Senior Member

Thread Starter
 
84Elky's Avatar
 
Join Date: Jun 2010
Location: Montgomery, AL
Posts: 577
Received 29 Likes on 25 Posts
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, 5552 views)
Old 08-17-2013, 03:44 AM
  #2  
Supreme Member

iTrader: (1)
 
JP86SS's Avatar
 
Join Date: Apr 2004
Location: Browns Town
Posts: 3,178
Likes: 0
Received 3 Likes on 3 Posts
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.

Old 08-18-2013, 11:23 PM
  #3  
Member

iTrader: (1)
 
gp90gta's Avatar
 
Join Date: Jan 2009
Location: New York
Posts: 390
Likes: 0
Received 0 Likes on 0 Posts
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.
Old 08-22-2013, 09:38 AM
  #4  
Senior Member

Thread Starter
 
84Elky's Avatar
 
Join Date: Jun 2010
Location: Montgomery, AL
Posts: 577
Received 29 Likes on 25 Posts
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)
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
EdgesZ28
DFI and ECM
4
05-09-2006 11:02 AM
Z69
DIY PROM
9
12-25-2005 01:12 PM
Craig Moates
DIY PROM
3
04-29-2005 10:24 AM
3.8TransAM
DIY PROM
2
04-20-2005 01:35 AM
EdgesZ28
DIY PROM
9
02-19-2005 07:01 PM



Quick Reply: AUJP ($8D) Idle Air Control (IAC) Logic



All times are GMT -5. The time now is 11:43 AM.