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

$42 Questions

Thread Tools
 
Search this Thread
 
Old Dec 15, 2012 | 02:48 AM
  #1  
jim_in_dorris's Avatar
Thread Starter
Member
 
Joined: Dec 2007
Posts: 152
Likes: 0
$42 Questions

Well, I got crazy and decided to try to get a $42 hack to assemble. After spending the afternoon looking at the pink book, I am down to a couple of questions. The last 3 bytes of the $42 bin are 27 09 96. the Hack says BEQ LE008. That is 9 bytes from the end of the prom if it is offset at $D000 like it appears. so 27 09 is a BEQ with a relative address of 9. Whats the 96? BEQs use relative addressing with a range of +- 128 which 9 is between, but I keep getting an addressing out of range error. Is there more code on another chip starting at $E000? and I guess I can just use an equ to set the 96. Splain it to me please. I can get $0D code, but $42 has me stumped right now.
Reply
Old Dec 15, 2012 | 08:14 AM
  #2  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
Re: $42 Questions

The PROM only holds the first 1/3 of the calibration & code. The remaining 2/3's is in on-board masked ROM. There is already a commented dis-assembly of $42 out there in pdf format.

The last byte of the PROM is the first byte of another instruction. This instruction continues over into the on-board ROM at $E000. Here is what it looks like:

Code:
LDFF7:	LDAA	L00BC		; PROPORTIONIAL FACTORED AIR FLOW
				;
	LDAB	L000E		; A/F MODE Word Flag
	BITB	#$40		; b6, RICH
	BEQ	LE008		; BR IF NOT b6, RICH
				; ... else

;---------------------------------------------
; ROM PORTION OF ALGO
; $E000 - $FFFF
;---------------------------------------------
;				;--------------------------------
;	ORG	$E000		; Can't do this, an instruction
;				; is split between the sections
;				;
;				;	ANDA	$90,X		;
;				;	CPX	L2409		;
;				;--------------------------------


	LDAA	L00A4		; Current Integrator
	SUBA	L00BC		; PROPORTIONIAL FACTORED AIR FLOW
	BCC	LE00E		; bra if no underflow
				;
	CLRA			; clear reg A
	BRA	LE00E		;
				;
LE008:	ADDA	L00A4		; INTEGRATOR
RBob.
Reply
Old Dec 15, 2012 | 02:48 PM
  #3  
jim_in_dorris's Avatar
Thread Starter
Member
 
Joined: Dec 2007
Posts: 152
Likes: 0
Re: $42 Questions

That's the hac I was working with, not a really well done one, it has lots of errors in it. I understand that the C3 platform used a different processor, is this true. I want to be able to burn a prom from the assembly source like $0D, I just need to get everything to work. I used EQU to get around the last 3 bytes, but it won't open the S19 file to make a bin.
Reply
Old Dec 15, 2012 | 04:10 PM
  #4  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
Re: $42 Questions

The C3 series of ECMs used a GMCM uProc (General Motors Custom Microprocessor). It is similar to the 6803 uProc.

RBob.
Reply
Old Dec 15, 2012 | 10:44 PM
  #5  
jim_in_dorris's Avatar
Thread Starter
Member
 
Joined: Dec 2007
Posts: 152
Likes: 0
Re: $42 Questions

RBob, Thanks. Is the GMCM assembly different than the 6811 asembly? Does ASM11 work OK for it? I noticed that the code you posted took into account the LDAA instruction was split across the boundary of the 2 chips, but the ORG really should be ORG $DFFF not ORG $E000 because the LDAA instruction starts at $DFFF.
Reply
Old Dec 16, 2012 | 09:32 AM
  #6  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
Re: $42 Questions

The GMCM code is a subset of 'HC11 code, so ASM11 works. I use Dunfield's XTOOLS ASM11 for the work I do. For a disassembler I wrote one many years ago when I first started working with the GM ECMs.

I corrected the ORG at $E000 as that file is able to be assembled. As for the correct location of the ORG, the reason it is that way is that the EPROM was disassembled as one part, with the ROM code being disassembled separately.

If they were first combined and disassembled the ORG at $E000 would not have been required. As far as the errors in the many hac's out there, it sure is better then trying to figure it all out on our own.

RBob.
Reply
Old Dec 16, 2012 | 10:36 AM
  #7  
EagleMark's Avatar
Supreme Member
 
Joined: Oct 2002
Posts: 1,096
Likes: 0
From: Idaho
Re: $42 Questions

I've done a lot of work with available hacks and although I never had an issue with location there are a lot of values wrong to specified bin and comments are, well?

Here's one I'm trying to figure out? In Bold Italic. 2 the same, both values listed are wrong, one is higher and one lower and they both are commented as the same?
Code:
 ;
; CLOSED LOOP TIMER QUALS
;
;-----------------------------------
LD296 FCB 102 ; 60 Deg c, (140f) CLS LP Timer WARM Thresh, (1K PU)
;
LD297 FCB 20 ; 10.0 Sec WARM CLS LP Timer
LD298 FCB 95 ; 47.5 Sec COLD CLS LP Timer
;----------------------------------
LD299 FCB 64 ; 35c, COOL Min for CLS LP Enable
LD29A FCB 100 ;; 35c, COOL Min for CLS LP Enable
Reply
Old Dec 16, 2012 | 11:33 AM
  #8  
EagleMark's Avatar
Supreme Member
 
Joined: Oct 2002
Posts: 1,096
Likes: 0
From: Idaho
Re: $42 Questions

Found the differance between the two, one is Cold CL timer and one is Warm CL timer.

In all the $42 masks I've combined and added to never found both.
Reply
Old Dec 16, 2012 | 02:34 PM
  #9  
RBob's Avatar
Moderator
iTrader: (1)
 
Joined: Mar 2002
Posts: 18,432
Likes: 233
From: Chasing Electrons
Car: check
Engine: check
Transmission: check
Re: $42 Questions

I believe that these are the correct usage:

Code:
;--------------------------------------
; Closed loop timer quals
;--------------------------------------

LD296:	FCB	102	; 60 deg c, (140f) cls lp timer warm thresh, (1k pu)
			;
LD297:	FCB	 20 	; 40.0 sec warm closed loop timer (sec = val * 2)
LD298:	FCB	110	; 220.0 sec (3m 40s) cold closed loop timer (val * 2)
			; 
LD299:	FCB	104	; 62c, min cool for closed loop, øc = ((n * 0.625) - 5)
			; 
LD29A:	FCB	100	; 20 sec, O2 window closed loop timeout (val / 5)
RBob.
Reply
Old Dec 16, 2012 | 05:13 PM
  #10  
EagleMark's Avatar
Supreme Member
 
Joined: Oct 2002
Posts: 1,096
Likes: 0
From: Idaho
Re: $42 Questions

Already figured out I was wrong.

But what you have makes a lot of sense! Thanks!
Reply
Old Dec 17, 2012 | 04:18 AM
  #11  
jim_in_dorris's Avatar
Thread Starter
Member
 
Joined: Dec 2007
Posts: 152
Likes: 0
Re: $42 Questions

Well, I am down to forcing addressing modes in the assembly to get the correct bin values. Slow and tedious, but the help i received here and on gearhead-efi answered the important questions. Thanks RBob
Reply
Old Dec 18, 2012 | 09:22 PM
  #12  
jim_in_dorris's Avatar
Thread Starter
Member
 
Joined: Dec 2007
Posts: 152
Likes: 0
Re: $42 Questions

Got it!!! All errors are resolved, it assembles exactly the same as the stock ASDX.bin file.
Reply
Old Jan 2, 2013 | 06:34 PM
  #13  
jim_in_dorris's Avatar
Thread Starter
Member
 
Joined: Dec 2007
Posts: 152
Likes: 0
Re: $42 Questions

I have completed ASDX assembly source for stock ASDX, added hiway lean cruise patch, and the ESC forced knock patch. I just completed doing the ASDU auto version, and now would like to find ADTT to do a 305 version. Anyone know where to find a stock factory ADTT bin I could use to create a commented ASM file?
Reply
Related Topics
Thread
Thread Starter
Forum
Replies
Last Post
MustangBeater20
TBI
11
Oct 29, 2022 09:20 PM
fasteddi
Organized Drag Racing and Autocross
15
Sep 10, 2015 09:32 AM
Bubbajones_ya
Electronics
4
Aug 31, 2015 12:02 PM
ezobens
DIY PROM
8
Aug 19, 2015 10:29 PM
redmaroz
LTX and LSX
7
Aug 16, 2015 11:40 PM




All times are GMT -5. The time now is 04:12 PM.