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

Assembly Question 8746 $61 ANLU

Thread Tools
 
Search this Thread
 
Old 02-18-2014, 11:00 PM
  #1  
hmx
Junior Member
Thread Starter
 
hmx's Avatar
 
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:

Code:
LD00F:      FCB     8   ; cyl count
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:

Code:
LD4A5:      FCB   96   ; coolant thres, 67c
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!
Old 02-19-2014, 10:47 AM
  #2  
Moderator

iTrader: (1)
 
RBob's Avatar
 
Join Date: Mar 2002
Location: Chasing Electrons
Posts: 18,400
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:

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		;
RBob.
Old 02-19-2014, 03:07 PM
  #3  
hmx
Junior Member
Thread Starter
 
hmx's Avatar
 
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:
Code:
             <!--  /* Font Definitions */ @font-face 	{font-family:&quot;Courier New&quot;; 	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:&quot;Cambria Math&quot;; 	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:&quot;&quot;; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:&quot;Times New Roman&quot;; 	mso-fareast-font-family:&quot;Times New Roman&quot;;} .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
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?
Old 02-19-2014, 04:42 PM
  #4  
Moderator

iTrader: (1)
 
RBob's Avatar
 
Join Date: Mar 2002
Location: Chasing Electrons
Posts: 18,400
Likes: 0
Received 215 Likes on 201 Posts
Car: check
Engine: check
Transmission: check
Re: Assembly Question 8746 $61 ANLU

It's just a typo, note that the line below would have the stated (incorrect) value.

RBob.
Old 02-19-2014, 05:05 PM
  #5  
hmx
Junior Member
Thread Starter
 
hmx's Avatar
 
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!
Old 02-20-2014, 09:59 PM
  #6  
hmx
Junior Member
Thread Starter
 
hmx's Avatar
 
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:

Code:
LD545:	FCB	156	;
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:

Code:
LD573: 96 1B		LDAA 	L001B		; rpm / 25
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:

Code:
L001B	EQU $1B	; rpm / 25
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
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
1992 Trans Am
History / Originality
27
05-10-2023 07:19 PM
Cleotiz
Electronics
7
01-06-2018 08:56 PM
gixxer92
Engine/Drivetrain/Suspension Parts for Sale
5
09-01-2015 04:32 PM
thefirebirdm@n
Cooling
1
08-25-2015 05:21 PM
redmaroz
LTX and LSX
7
08-16-2015 11:40 PM



Quick Reply: Assembly Question 8746 $61 ANLU



All times are GMT -5. The time now is 08:50 PM.