Assembly Question 8746 $61 ANLU
#1
Junior Member
Thread Starter
Join Date: Feb 2009
Posts: 67
Likes: 0
Received 0 Likes
on
0 Posts
Engine: LO5 350 (TBI 220)
Transmission: 200R4
Axle/Gears: 2.73
Assembly Question 8746 $61 ANLU
Having read through the hack/disassembly of the 8746, I am curious as to how the computer handles the analog to digital conversion (ADC). For instance, near the start of the EPROM in the ANLU chip, there is this line:
The 'form constant byte' gives 8, which is indeed the number of cylinders.
However, a little way into the program we have a constant for the smog pump turning on:
The 96 is not in degrees C. Where is the conversion for this, as RBob commented that this value is listed in inverse ADC units (0 = 150 °C) in another thread. Since the ADC gives values of 0-255, I am curious how these 0-255 values (i.e., the 96 in this case) is turned into meaningful units. Does one reverse engineer these conversions based on the arithmetic in the code itself, or is there a conversion table somewhere that I am missing?
A second question, does the program just reference that value of 96 by the line number, or is the FCB command storing it into a variable of some kind? I do not see where else in the code this value is referenced.
Thanks in advance to those reading!
Code:
LD00F: FCB 8 ; cyl count
However, a little way into the program we have a constant for the smog pump turning on:
Code:
LD4A5: FCB 96 ; coolant thres, 67c
A second question, does the program just reference that value of 96 by the line number, or is the FCB command storing it into a variable of some kind? I do not see where else in the code this value is referenced.
Thanks in advance to those reading!
#2
Moderator
iTrader: (1)
Join Date: Mar 2002
Location: Chasing Electrons
Posts: 18,401
Likes: 0
Received 215 Likes
on
201 Posts
Car: check
Engine: check
Transmission: check
Re: Assembly Question 8746 $61 ANLU
There is a table to convert from the CTS ADC value to the actual temperature. In the hac it is right after the ALDL parameter list.
The FCB tells the assembler to store a byte of data. The data being the value of 96.
The assembler uses the LD4A5 to locate that value:
RBob.
The FCB tells the assembler to store a byte of data. The data being the value of 96.
The assembler uses the LD4A5 to locate that value:
Code:
LEEDA: 96 21 LDAA L0021 ; coolant, defaulted, 1k pu, inverse, adc cnts LEEDC: B1 D4 A5 CMPA LD4A5 ; 96, coolant thres, 67c LEEDF: 24 15 BCC LEEF6 ;
#3
Junior Member
Thread Starter
Join Date: Feb 2009
Posts: 67
Likes: 0
Received 0 Likes
on
0 Posts
Engine: LO5 350 (TBI 220)
Transmission: 200R4
Axle/Gears: 2.73
Re: Assembly Question 8746 $61 ANLU
Ugh. My search function was not working. It came up with no hits for "4A5" until I restarted the computer. Thanks for your explanation; the FCB works just as I thought it did--through referencing a specific line in the code.
As for the coolant table, I believe I found it, just after the ALDL list as you said:
However, I am having trouble figuring out where the 67 °C comes from. An A/D value of 96 gives a temperature between 60-65 °C on the table, and the inverse column gives a temperature of between 35-40 °C.
This would seem to indicate that the A/D is in regular (not inverse) units, and that there may be a slight typo (67°C rather than 62°C). Is this correct, or am I missing something?
As for the coolant table, I believe I found it, just after the ALDL list as you said:
Code:
<!-- /* Font Definitions */ @font-face {font-family:"Courier New"; panose-1:2 7 3 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536859905 -1073711037 9 0 511 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:-536870145 1107305727 0 0 415 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0in; margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman";} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; font-size:10.0pt; mso-ansi-font-size:10.0pt; mso-bidi-font-size:10.0pt;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in; mso-header-margin:.5in; mso-footer-margin:.5in; mso-paper-source:0;} div.WordSection1 {page:WordSection1;} --> ;* Table 1 --- Coolant Temperature, 1k pu ;* ;* ;* A/D degrees A/D ;* counts C Inv ;* ------- ------- --- ;* 255 -40 0 ;* 251 -30 4 ;* 250 -25 5 ;* 247 -20 8 ;* 245 -15 10 ;* 241 -10 14 ;* 237 - 5 18 ;* 231 0 24 ;* 225 5 30 ;* 218 10 37 ;* 209 15 46 ;* 199 20 56 ;* 189 25 66 ;* 177 30 78 ;* 165 35 90 ;* 152 40 103 ;* 139 45 116 ;* 126 50 129 ;* 114 55 141 ;* 102 60 153 ;* 92 65 163 ;* 81 70 174 ;* 72 75 183 ;* 64 80 191 ;* 56 85 199 ;* 50 90 205 ;* 44 95 211 ;* 39 100 216 ;* 34 105 221 ;* 30 110 225 ;* 26 115 229 ;* 23 120 232 ;* 21 125 234 ;* 18 130 237 ;* 16 135 239 ;* 14 140 241 ;* 13 145 242 ;* 12 150 243 ;* 0 200 255
This would seem to indicate that the A/D is in regular (not inverse) units, and that there may be a slight typo (67°C rather than 62°C). Is this correct, or am I missing something?
#5
Junior Member
Thread Starter
Join Date: Feb 2009
Posts: 67
Likes: 0
Received 0 Likes
on
0 Posts
Engine: LO5 350 (TBI 220)
Transmission: 200R4
Axle/Gears: 2.73
Re: Assembly Question 8746 $61 ANLU
Ah ha! That was what I had assumed, but I wanted to double check, as I have been wrong (many times) before.
Thus, this means that the smog pump turn on is in regular A/D units, although the regular units are inverted with respect to temperature. I'm going to have fun editing up the XDF in TunerPro tonight.
Thanks again!
Thus, this means that the smog pump turn on is in regular A/D units, although the regular units are inverted with respect to temperature. I'm going to have fun editing up the XDF in TunerPro tonight.
Thanks again!
#6
Junior Member
Thread Starter
Join Date: Feb 2009
Posts: 67
Likes: 0
Received 0 Likes
on
0 Posts
Engine: LO5 350 (TBI 220)
Transmission: 200R4
Axle/Gears: 2.73
Re: Assembly Question 8746 $61 ANLU
Not to reply to myself, but I have been going over the code and have more questions related to the above topic.
The ADC to temperature conversion table appears to be solely in the comments section of the code. Is this the case? If so, how does the code make the conversion? I have not been able to discern how this is done in the code if this is the case. If it is not the case, then how is this table referenced? I don't see a line number associated with it.
Second question pertains to how the code is read. I have read as much as I can find on code here on thirdgen, and have been reading through the code manuals (the pink book, etc.) from Motorola and other sites. They are helpful, and many of the commands make sense. For instance:
From what I have discerned from here (RBob's help mostly), the LD545: is the line number, the FCB tells the computer to store 156, and this value is referenced by line number elsewhere in the code.
Many of the commands, such as the LDAA (load accumulator A), make sense. I have not, however, been able to find examples of the syntax used in the ANLU code, such as this:
So here, we have line number LD573, the command to LoaD Accumulator A, a comment that this is the rpm / 25, and a reference to this line:
which appears earlier in the code, and to my understanding, equates the name "L001B" (for however descriptive that is) to $1B (a register, from what I gather).
However, I am unsure what the 96 and 1B are for. In the case of the 96, it appears to me that it might be an Opcode, and 1B is the operand? Is this machine code for the LDAA L001B and thus redundant? I am a little confused. Any clarification would be appreciated.
This link seems to explain a lot about the assembly syntax, for those trying to learn:
http://www.eee.metu.edu.tr/~cb/e447/...20-%20v2.0.pdf
The ADC to temperature conversion table appears to be solely in the comments section of the code. Is this the case? If so, how does the code make the conversion? I have not been able to discern how this is done in the code if this is the case. If it is not the case, then how is this table referenced? I don't see a line number associated with it.
Second question pertains to how the code is read. I have read as much as I can find on code here on thirdgen, and have been reading through the code manuals (the pink book, etc.) from Motorola and other sites. They are helpful, and many of the commands make sense. For instance:
Code:
LD545: FCB 156 ;
Many of the commands, such as the LDAA (load accumulator A), make sense. I have not, however, been able to find examples of the syntax used in the ANLU code, such as this:
Code:
LD573: 96 1B LDAA L001B ; rpm / 25
Code:
L001B EQU $1B ; rpm / 25
However, I am unsure what the 96 and 1B are for. In the case of the 96, it appears to me that it might be an Opcode, and 1B is the operand? Is this machine code for the LDAA L001B and thus redundant? I am a little confused. Any clarification would be appreciated.
This link seems to explain a lot about the assembly syntax, for those trying to learn:
http://www.eee.metu.edu.tr/~cb/e447/...20-%20v2.0.pdf
Thread
Thread Starter
Forum
Replies
Last Post
1992 Trans Am
History / Originality
27
05-10-2023 07:19 PM
gixxer92
Engine/Drivetrain/Suspension Parts for Sale
5
09-01-2015 04:32 PM