P04 Disassembly

Disassembly, Reassembly, Tools and devleopment. Going deep with Hardware and Software.
ProfessWRX
Posts: 185
Joined: Mon Oct 02, 2023 11:33 pm
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: P04 Disassembly

Post by ProfessWRX »

kur4o wrote: Fri Jul 31, 2026 6:52 pmProgramming last segment first is also really bad idea, it needs for safety reason to be, erase last segment first, write last segment last.
I wish I knew how to do this as it's probably the best general fix.

edit: Doesn't matter now. I got my 2 extra PCMs working with the ground pin.
ProfessWRX
Posts: 185
Joined: Mon Oct 02, 2023 11:33 pm
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: P04 Disassembly

Post by ProfessWRX »

Any hardware guys know which pins Im the ecu are pull up inputs?

Even pull doen is fine, and if you know the 0-5v inputs which ecu pins they go to i am going to start some input switching. I am brainless with hardware so any help is appreciated.
ProfessWRX
Posts: 185
Joined: Mon Oct 02, 2023 11:33 pm
cars: 04 Monte SSSC
04 Tahoe
92 Trans Am
Location: AZ USA

Re: P04 Disassembly

Post by ProfessWRX »

Below is a snippet of Lean Cruise for the 98 3800 firebird bin 09352823. If anybody wants to take a stab at reverse engineering it I can help. It's not like my 2004 code, looks simpler.

Code: Select all

ROM:0001D928 sLeanCruise:                            ; CODE XREF: sub_1D3A4:loc_1D838p
ROM:0001D928                 movem.l d1-d2,-(sp)     ; Move Multiple Registers
ROM:0001D92C                 move.w  (word_75B08).l,d1 ; Move Data from Source to Destination
ROM:0001D932                 move.w  (word_FFFF9FBA).w,d4 ; Move Data from Source to Destination
ROM:0001D936                 cmp.w   d1,d4           ; Compare
ROM:0001D938                 bgt.s   loc_1D968       ; Branch if Greater Than
ROM:0001D93A                 cmp.w   (word_75B0A).l,d4 ; Compare
ROM:0001D940                 blt.s   loc_1D968       ; Branch if Less Than
ROM:0001D942                 cmp.w   (word_FFFF9FBE).w,d1 ; Compare
ROM:0001D946                 blt.s   loc_1D968       ; Branch if Less Than
ROM:0001D948                 move.w  (word_FFFF9FBE).w,d3 ; Move Data from Source to Destination
ROM:0001D94C                 cmp.w   (word_75B0A).l,d3 ; Compare
ROM:0001D952                 blt.s   loc_1D968       ; Branch if Less Than
ROM:0001D954                 btst    #6,(byte_FFFF9DB2).w ; Test a Bit
ROM:0001D95A                 bne.s   loc_1D968       ; Branch if Not Equal
ROM:0001D95C                 tst.b   (byte_FFFF9130).w ; Test an Operand
ROM:0001D960                 bne.s   loc_1D968       ; Branch if Not Equal
ROM:0001D962                 tst.b   (byte_FFFF90F6).w ; Test an Operand
ROM:0001D966                 beq.s   loc_1D976       ; Branch if Equal
ROM:0001D968
ROM:0001D968 loc_1D968:                              ; CODE XREF: sLeanCruise+10j
ROM:0001D968                                         ; sLeanCruise+18j ...
ROM:0001D968                 clr.l   (pLeanCruiseAFRAdder).w ; Clear an Operand
ROM:0001D96C                 move.b  #1,(byte_FFFF9106).w ; Move Data from Source to Destination
ROM:0001D972                 bra.w   loc_1DA82       ; Branch Always
ROM:0001D976 ; ---------------------------------------------------------------------------
ROM:0001D976
ROM:0001D976 loc_1D976:                              ; CODE XREF: sLeanCruise+3Ej
ROM:0001D976                 btst    #4,(byte_FFFF9DB4).w ; Test a Bit
ROM:0001D97C                 beq.s   loc_1D9F4       ; Branch if Equal
ROM:0001D97E                 tst.b   (byte_FFFF9106).w ; Test an Operand
ROM:0001D982                 bne.s   loc_1D9F4       ; Branch if Not Equal
ROM:0001D984                 move.w  (word_FFFF9C56).w,d4 ; Move Data from Source to Destination
ROM:0001D988                 cmp.w   (word_75B00).l,d4 ; Compare
ROM:0001D98E                 bcc.s   loc_1D9F4       ; Branch if Carry CLear
ROM:0001D990                 move.w  (word_FFFF9C56).w,d4 ; Move Data from Source to Destination
ROM:0001D994                 cmp.w   (word_75B02).l,d4 ; Compare
ROM:0001D99A                 bls.s   loc_1D9F4       ; Branch if Low or Same
ROM:0001D99C                 move.w  (word_FFFF95BA).w,d4 ; Move Data from Source to Destination
ROM:0001D9A0                 cmp.w   (word_75B04).l,d4 ; Compare
ROM:0001D9A6                 bcc.s   loc_1D9F4       ; Branch if Carry CLear
ROM:0001D9A8                 move.w  (word_FFFF95BA).w,d4 ; Move Data from Source to Destination
ROM:0001D9AC                 cmp.w   (word_75B06).l,d4 ; Compare
ROM:0001D9B2                 bls.s   loc_1D9F4       ; Branch if Low or Same
ROM:0001D9B4                 move.w  (word_FFFF9104).w,d4 ; Move Data from Source to Destination
ROM:0001D9B8                 cmp.w   (word_75AEA).l,d4 ; Compare
ROM:0001D9BE                 bcc.s   loc_1D9F4       ; Branch if Carry CLear
ROM:0001D9C0                 movea.l (dword_FFFF9FC6).w,a2 ; Move Address
ROM:0001D9C4                 move.w  (word_FFFF9104).w,d4 ; Move Data from Source to Destination
ROM:0001D9C8                 add.w   (a2),d4         ; Add
ROM:0001D9CA                 bcc.s   loc_1D9D0       ; Branch if Carry CLear
ROM:0001D9CC                 move.w  #$FFFF,d4       ; Move Data from Source to Destination
ROM:0001D9D0
ROM:0001D9D0 loc_1D9D0:                              ; CODE XREF: sLeanCruise+A2j
ROM:0001D9D0                 move.w  d4,(word_FFFF9104).w ; Move Data from Source to Destination
ROM:0001D9D4                 tst.b   (byte_FFFF93F2).w ; Test an Operand
ROM:0001D9D8                 beq.w   loc_1DA82       ; Branch if Equal
ROM:0001D9DC                 movea.l (dword_FFFF9FC6).w,a2 ; Move Address
ROM:0001D9E0                 move.w  (word_FFFF9118).w,d4 ; Move Data from Source to Destination
ROM:0001D9E4                 add.w   (a2),d4         ; Add
ROM:0001D9E6                 bcc.s   loc_1D9EC       ; Branch if Carry CLear
ROM:0001D9E8                 move.w  #$FFFF,d4       ; Move Data from Source to Destination
ROM:0001D9EC
ROM:0001D9EC loc_1D9EC:                              ; CODE XREF: sLeanCruise+BEj
ROM:0001D9EC                 move.w  d4,(word_FFFF9118).w ; Move Data from Source to Destination
ROM:0001D9F0                 bra.w   loc_1DA82       ; Branch Always
ROM:0001D9F4 ; ---------------------------------------------------------------------------
ROM:0001D9F4
ROM:0001D9F4 loc_1D9F4:                              ; CODE XREF: sLeanCruise+54j
ROM:0001D9F4                                         ; sLeanCruise+5Aj ...
ROM:0001D9F4                 move.w  (word_FFFF9104).w,d4 ; Move Data from Source to Destination
ROM:0001D9F8                 cmp.w   (word_75AEA).l,d4 ; Compare
ROM:0001D9FE                 bcs.w   loc_1DA82       ; Branch if Carry Set
ROM:0001DA02                 tst.b   (byte_FFFF9106).w ; Test an Operand
ROM:0001DA06                 bne.s   loc_1DA82       ; Branch if Not Equal
ROM:0001DA08                 move.w  (word_FFFF9118).w,d4 ; Move Data from Source to Destination
ROM:0001DA0C                 cmp.w   (word_75AEC).l,d4 ; Compare
ROM:0001DA12                 bls.s   loc_1DA48       ; Branch if Low or Same
ROM:0001DA14                 move.b  #1,(byte_FFFF9106).w ; Move Data from Source to Destination
ROM:0001DA1A                 move.l  (dword_75AF8).l,d4 ; Move Data from Source to Destination
ROM:0001DA20                 move.l  d4,d2           ; Move Data from Source to Destination
ROM:0001DA22                 add.l   (dword_FFFF816C).w,d2 ; Add
ROM:0001DA26                 add.l   (pLeanCruiseAFRAdder).w,d4 ; Add
ROM:0001DA2A                 move.l  (dword_75AF0).l,d1 ; Move Data from Source to Destination
ROM:0001DA30                 cmp.l   d1,d4           ; Compare
ROM:0001DA32                 ble.s   loc_1DA3A       ; Branch if Less or Equal
ROM:0001DA34                 move.l  d1,(pLeanCruiseAFRAdder).w ; Move Data from Source to Destination
ROM:0001DA38                 bra.s   loc_1DA3E       ; Branch Always
ROM:0001DA3A ; ---------------------------------------------------------------------------
ROM:0001DA3A
ROM:0001DA3A loc_1DA3A:                              ; CODE XREF: sLeanCruise+10Aj
ROM:0001DA3A                 move.l  d4,(pLeanCruiseAFRAdder).w ; Move Data from Source to Destination
ROM:0001DA3E
ROM:0001DA3E loc_1DA3E:                              ; CODE XREF: sLeanCruise+110j
ROM:0001DA3E                 cmp.l   d1,d2           ; Compare
ROM:0001DA40                 ble.s   loc_1DA7E       ; Branch if Less or Equal
ROM:0001DA42
ROM:0001DA42 loc_1DA42:                              ; CODE XREF: sLeanCruise+154j
ROM:0001DA42                 move.l  d1,(dword_FFFF816C).w ; Move Data from Source to Destination
ROM:0001DA46                 bra.s   loc_1DA82       ; Branch Always
ROM:0001DA48 ; ---------------------------------------------------------------------------
ROM:0001DA48
ROM:0001DA48 loc_1DA48:                              ; CODE XREF: sLeanCruise+EAj
ROM:0001DA48                 cmp.w   (word_75AEE).l,d4 ; Compare
ROM:0001DA4E                 bcc.s   loc_1DA82       ; Branch if Carry CLear
ROM:0001DA50                 move.b  #1,(byte_FFFF9106).w ; Move Data from Source to Destination
ROM:0001DA56                 move.l  (dword_75AFC).l,d4 ; Move Data from Source to Destination
ROM:0001DA5C                 move.l  d4,d2           ; Move Data from Source to Destination
ROM:0001DA5E                 add.l   (dword_FFFF816C).w,d2 ; Add
ROM:0001DA62                 add.l   (pLeanCruiseAFRAdder).w,d4 ; Add
ROM:0001DA66                 move.l  (dword_75AF4).l,d1 ; Move Data from Source to Destination
ROM:0001DA6C                 cmp.l   d1,d4           ; Compare
ROM:0001DA6E                 bge.s   loc_1DA76       ; Branch if Greater or Equal
ROM:0001DA70                 move.l  d1,(pLeanCruiseAFRAdder).w ; Move Data from Source to Destination
ROM:0001DA74                 bra.s   loc_1DA7A       ; Branch Always
ROM:0001DA76 ; ---------------------------------------------------------------------------
ROM:0001DA76
ROM:0001DA76 loc_1DA76:                              ; CODE XREF: sLeanCruise+146j
ROM:0001DA76                 move.l  d4,(pLeanCruiseAFRAdder).w ; Move Data from Source to Destination
ROM:0001DA7A
ROM:0001DA7A loc_1DA7A:                              ; CODE XREF: sLeanCruise+14Cj
ROM:0001DA7A                 cmp.l   d1,d2           ; Compare
ROM:0001DA7C                 blt.s   loc_1DA42       ; Branch if Less Than
ROM:0001DA7E
ROM:0001DA7E loc_1DA7E:                              ; CODE XREF: sLeanCruise+118j
ROM:0001DA7E                 move.l  d2,(dword_FFFF816C).w ; Move Data from Source to Destination
ROM:0001DA82
ROM:0001DA82 loc_1DA82:                              ; CODE XREF: sLeanCruise+4Aj
ROM:0001DA82                                         ; sLeanCruise+B0j ...
ROM:0001DA82                 movem.l (sp)+,d1-d2     ; Move Multiple Registers
ROM:0001DA86                 rts                     ; Return from Subroutine
ROM:0001DA86 ; End of function sLeanCruise
The Code Changed in 2001 to this:

Code: Select all

ROM:00021276 sLeanCruise:                            ; CODE XREF: sub_208D6:loc_21160p
ROM:00021276                 movem.l d0-d2/d6,-(sp)
ROM:0002127A                 movea.l (pRunTime_Millisecs).w,a2
ROM:0002127E                 move.w  (a2),d1
ROM:00021280                 move.w  (word_759F8).l,d4
ROM:00021286                 move.w  (word_FFFFAABA).w,d3
ROM:0002128A                 cmp.w   d4,d3
ROM:0002128C                 bgt.s   loc_212BE
ROM:0002128E                 cmp.w   (word_759F2).l,d3
ROM:00021294                 blt.s   loc_212BE
ROM:00021296                 cmp.w   (word_FFFFAABE).w,d4
ROM:0002129A                 blt.s   loc_212BE
ROM:0002129C                 move.w  (word_FFFFAABE).w,d2
ROM:000212A0                 cmp.w   (word_759F2).l,d2
ROM:000212A6                 blt.s   loc_212BE
ROM:000212A8                 btst    #6,(byte_FFFFA912).w
ROM:000212AE                 bne.s   loc_212BE
ROM:000212B0                 btst    #4,(byte_FFFF99CB).w
ROM:000212B6                 bne.s   loc_212BE
ROM:000212B8                 tst.b   (byte_FFFF99B0).w
ROM:000212BC                 beq.s   loc_212C8
ROM:000212BE
ROM:000212BE loc_212BE:                              ; CODE XREF: sLeanCruise+16j
ROM:000212BE                                         ; sLeanCruise+1Ej ...
ROM:000212BE                 move.b  #3,(byte_FFFF99D9).w
ROM:000212C4                 bra.w   loc_21388
ROM:000212C8 ; ---------------------------------------------------------------------------
ROM:000212C8
ROM:000212C8 loc_212C8:                              ; CODE XREF: sLeanCruise+46j
ROM:000212C8                 btst    #4,(byte_FFFFA914).w
ROM:000212CE                 beq.w   loc_21384
ROM:000212D2                 move.w  (word_FFFFA7B2).w,d4
ROM:000212D6                 cmp.w   (word_759EA).l,d4
ROM:000212DC                 bcc.w   loc_21384
ROM:000212E0                 move.w  (word_FFFFA7B2).w,d4
ROM:000212E4                 cmp.w   (word_759EC).l,d4
ROM:000212EA                 bls.w   loc_21384
ROM:000212EE                 move.w  (word_FFFF9B18).w,d4
ROM:000212F2                 cmp.w   (word_759EE).l,d4
ROM:000212F8                 bcc.w   loc_21384
ROM:000212FC                 move.w  (word_FFFF9B18).w,d4
ROM:00021300                 cmp.w   (word_759F0).l,d4
ROM:00021306                 bls.s   loc_21384
ROM:00021308                 move.w  (word_FFFF99DA).w,d4
ROM:0002130C                 cmp.w   (word_75A40).l,d4
ROM:00021312                 bhi.s   loc_21384
ROM:00021314                 move.l  d1,d4
ROM:00021316                 add.w   (word_FFFF99C0).w,d4
ROM:0002131A                 bcc.s   loc_21320
ROM:0002131C                 move.w  #$FFFF,d4
ROM:00021320
ROM:00021320 loc_21320:                              ; CODE XREF: sLeanCruise+A4j
ROM:00021320                 move.w  d4,(word_FFFF99C0).w
ROM:00021324                 tst.b   (byte_FFFF9CDA).w
ROM:00021328                 beq.s   loc_2133A
ROM:0002132A                 move.l  d1,d0
ROM:0002132C                 add.w   (word_FFFF99E0).w,d0
ROM:00021330                 bcc.s   loc_21336
ROM:00021332                 move.w  #$FFFF,d0
ROM:00021336
ROM:00021336 loc_21336:                              ; CODE XREF: sLeanCruise+BAj
ROM:00021336                 move.w  d0,(word_FFFF99E0).w
ROM:0002133A
ROM:0002133A loc_2133A:                              ; CODE XREF: sLeanCruise+B2j
ROM:0002133A                 cmp.w   (word_759CE).l,d4
ROM:00021340                 bcs.s   loc_21384
ROM:00021342                 move.w  (word_FFFF99E0).w,d3
ROM:00021346                 cmp.w   (word_759D6).l,d3
ROM:0002134C                 bcs.s   loc_21356
ROM:0002134E                 move.b  #1,(byte_FFFF99D9).w
ROM:00021354                 bra.s   loc_2136A
ROM:00021356 ; ---------------------------------------------------------------------------
ROM:00021356
ROM:00021356 loc_21356:                              ; CODE XREF: sLeanCruise+D6j
ROM:00021356                 cmp.w   (word_759D8).l,d3
ROM:0002135C                 bhi.s   loc_21366
ROM:0002135E                 move.b  #2,(byte_FFFF99D9).w
ROM:00021364                 bra.s   loc_2136A
ROM:00021366 ; ---------------------------------------------------------------------------
ROM:00021366
ROM:00021366 loc_21366:                              ; CODE XREF: sLeanCruise+E6j
ROM:00021366                 clr.b   (byte_FFFF99D9).w
ROM:0002136A
ROM:0002136A loc_2136A:                              ; CODE XREF: sLeanCruise+DEj
ROM:0002136A                                         ; sLeanCruise+EEj
ROM:0002136A                 clr.w   (word_FFFF99E0).w
ROM:0002136E                 clr.w   (word_FFFF99C0).w
ROM:00021372                 move.w  (word_FFFF99DA).w,d3
ROM:00021376                 addq.w  #1,d3
ROM:00021378                 move.w  d3,(word_FFFF99DA).w
ROM:0002137C                 cmp.w   (word_75A40).l,d3
ROM:00021382                 bls.s   loc_21388
ROM:00021384
ROM:00021384 loc_21384:                              ; CODE XREF: sLeanCruise+58j
ROM:00021384                                         ; sLeanCruise+66j ...
ROM:00021384                 clr.b   (byte_FFFF99D9).w
ROM:00021388
ROM:00021388 loc_21388:                              ; CODE XREF: sLeanCruise+4Ej
ROM:00021388                                         ; sLeanCruise+10Cj
ROM:00021388                 move.b  (byte_FFFF99D9).w,d2
ROM:0002138C                 cmpi.b  #3,d2
ROM:00021390                 beq.w   loc_21420
ROM:00021394                 clr.l   d4
ROM:00021396                 move.w  (word_75A3E).l,d4
ROM:0002139C                 cmp.l   (dword_FFFFA464).w,d4
ROM:000213A0                 bhi.s   loc_21420
ROM:000213A2                 move.w  (word_FFFF84FC).w,d4
ROM:000213A6                 cmp.w   (word_75A42).l,d4
ROM:000213AC                 bcs.s   loc_21420
ROM:000213AE                 tst.b   (byte_FFFF9CDA).w
ROM:000213B2                 bne.s   loc_21420
ROM:000213B4                 move.w  (word_FFFF99DC).w,d4
ROM:000213B8                 bne.s   loc_21412
ROM:000213BA                 move.w  (word_FFFFA194).w,d3
ROM:000213BE                 move.b  (byte_FFFF9D23).w,d5
ROM:000213C2                 asl.b   #5,d5
ROM:000213C4                 andi.w  #$FF,d5
ROM:000213C8                 lea     unk_759FA(d5.w),a2
ROM:000213D0                 cmpi.w  #$1E00,d3
ROM:000213D4                 bcc.s   loc_213DA
ROM:000213D6                 lsr.w   #1,d3
ROM:000213D8                 bra.s   loc_213DE
ROM:000213DA ; ---------------------------------------------------------------------------
ROM:000213DA
ROM:000213DA loc_213DA:                              ; CODE XREF: sLeanCruise+15Ej
ROM:000213DA                 move.w  #$F00,d3
ROM:000213DE
ROM:000213DE loc_213DE:                              ; CODE XREF: sLeanCruise+162j
ROM:000213DE                 tblu.w  (a2),d3
ROM:000213E2                 cmp.w   (word_FFFFA7B2).w,d3
ROM:000213E6                 bls.s   loc_21438
ROM:000213E8                 move.w  (word_75A3C).l,d0
ROM:000213EE                 ext.l   d0
ROM:000213F0                 asl.l   #8,d0
ROM:000213F2                 asl.l   #8,d0
ROM:000213F4                 add.l   (pLeanCruiseAFRAdder).w,d0
ROM:000213F8                 move.l  d0,(pLeanCruiseAFRAdder).w
ROM:000213FC                 move.l  (dword_759DE).l,d3
ROM:00021402                 cmp.l   d3,d0
ROM:00021404                 bge.s   loc_2140A
ROM:00021406                 move.l  d3,(pLeanCruiseAFRAdder).w
ROM:0002140A
ROM:0002140A loc_2140A:                              ; CODE XREF: sLeanCruise+18Ej
ROM:0002140A                 add.w   d1,d4
ROM:0002140C                 move.w  d4,(word_FFFF99DC).w
ROM:00021410                 bra.s   loc_21438
ROM:00021412 ; ---------------------------------------------------------------------------
ROM:00021412
ROM:00021412 loc_21412:                              ; CODE XREF: sLeanCruise+142j
ROM:00021412                 add.w   d1,d4
ROM:00021414                 move.w  d4,(word_FFFF99DC).w
ROM:00021418                 cmp.w   (word_75A3A).l,d4
ROM:0002141E                 bra.s   loc_21432
ROM:00021420 ; ---------------------------------------------------------------------------
ROM:00021420
ROM:00021420 loc_21420:                              ; CODE XREF: sLeanCruise+11Aj
ROM:00021420                                         ; sLeanCruise+12Aj ...
ROM:00021420                 move.w  (word_FFFF99DC).w,d3
ROM:00021424                 beq.s   loc_21438
ROM:00021426                 add.w   d1,d3
ROM:00021428                 move.w  d3,(word_FFFF99DC).w
ROM:0002142C                 cmp.w   (word_75A3A).l,d3
ROM:00021432
ROM:00021432 loc_21432:                              ; CODE XREF: sLeanCruise+1A8j
ROM:00021432                 bcs.s   loc_21438
ROM:00021434                 clr.w   (word_FFFF99DC).w
ROM:00021438
ROM:00021438 loc_21438:                              ; CODE XREF: sLeanCruise+170j
ROM:00021438                                         ; sLeanCruise+19Aj ...
ROM:00021438                 cmpi.b  #2,d2
ROM:0002143C                 bhi.s   loc_214AE
ROM:0002143E                 beq.s   loc_21472
ROM:00021440                 tst.b   d2
ROM:00021442                 beq.s   loc_214B8
ROM:00021444                 move.l  (dword_759E2).l,d0
ROM:0002144A                 move.l  d0,d4
ROM:0002144C                 add.l   (dword_FFFF99C6).w,d4
ROM:00021450                 add.l   (pLeanCruiseAFRAdder).w,d0
ROM:00021454                 move.l  (dword_759DA).l,d3
ROM:0002145A                 cmp.l   d3,d4
ROM:0002145C                 ble.s   loc_21464
ROM:0002145E                 move.l  d3,(dword_FFFF99C6).w
ROM:00021462                 bra.s   loc_21468
ROM:00021464 ; ---------------------------------------------------------------------------
ROM:00021464
ROM:00021464 loc_21464:                              ; CODE XREF: sLeanCruise+1E6j
ROM:00021464                 move.l  d4,(dword_FFFF99C6).w
ROM:00021468
ROM:00021468 loc_21468:                              ; CODE XREF: sLeanCruise+1ECj
ROM:00021468                 cmp.l   d3,d0
ROM:0002146A                 ble.s   loc_2149A
ROM:0002146C
ROM:0002146C loc_2146C:                              ; CODE XREF: sLeanCruise+222j
ROM:0002146C                 move.l  d3,(pLeanCruiseAFRAdder).w
ROM:00021470                 bra.s   loc_2149E
ROM:00021472 ; ---------------------------------------------------------------------------
ROM:00021472
ROM:00021472 loc_21472:                              ; CODE XREF: sLeanCruise+1C8j
ROM:00021472                 move.l  (dword_759E6).l,d0
ROM:00021478                 move.l  d0,d4
ROM:0002147A                 add.l   (dword_FFFF99C6).w,d4
ROM:0002147E                 add.l   (pLeanCruiseAFRAdder).w,d0
ROM:00021482                 move.l  (dword_759DE).l,d3
ROM:00021488                 cmp.l   d3,d4
ROM:0002148A                 bge.s   loc_21492
ROM:0002148C                 move.l  d3,(dword_FFFF99C6).w
ROM:00021490                 bra.s   loc_21496
ROM:00021492 ; ---------------------------------------------------------------------------
ROM:00021492
ROM:00021492 loc_21492:                              ; CODE XREF: sLeanCruise+214j
ROM:00021492                 move.l  d4,(dword_FFFF99C6).w
ROM:00021496
ROM:00021496 loc_21496:                              ; CODE XREF: sLeanCruise+21Aj
ROM:00021496                 cmp.l   d3,d0
ROM:00021498                 blt.s   loc_2146C
ROM:0002149A
ROM:0002149A loc_2149A:                              ; CODE XREF: sLeanCruise+1F4j
ROM:0002149A                 move.l  d0,(pLeanCruiseAFRAdder).w
ROM:0002149E
ROM:0002149E loc_2149E:                              ; CODE XREF: sLeanCruise+1FAj
ROM:0002149E                 clr.w   d3
ROM:000214A0                 move.b  (byte_FFFF99CA).w,d3
ROM:000214A4                 move.l  (dword_FFFF99C6).w,dword_FFFF847A(d3.w*4)
ROM:000214AC                 bra.s   loc_214B8
ROM:000214AE ; ---------------------------------------------------------------------------
ROM:000214AE
ROM:000214AE loc_214AE:                              ; CODE XREF: sLeanCruise+1C6j
ROM:000214AE                 clr.l   (pLeanCruiseAFRAdder).w
ROM:000214B2                 bset    #7,(byte_FFFF99CB).w
ROM:000214B8
ROM:000214B8 loc_214B8:                              ; CODE XREF: sLeanCruise+1CCj
ROM:000214B8                                         ; sLeanCruise+236j
ROM:000214B8                 movem.l (sp)+,d0-d2/d6
ROM:000214BC                 rts
ROM:000214BC ; End of function sLeanCruise