Results 1 to 15 of 19

Thread: Quirks!

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Super Moderator
    Join Date
    Mar 2011
    Location
    Camden, MI
    Age
    35
    Posts
    3,026

    Quirks!

    busy hacking through some 94-95 3800 code(5B), found something that i forgot about seeing in a derivative before.... 1FA and 2E are basically slimmed down versions of 5B, but their applications were a bit different... 1FA/2E was used on 3100 and 3.4DOHC, while 5B was used on the 3800. i don't work with the 90V6 engines very much, which is why i saw it on the 60V6 application first.

    anyways, plowing through the calibration and i found something odd with the main spark tables... here's a quick rundown of the code concerning it:

    check if above 4800RPM
    if so, lookup high RPM spark table (2D) (8115)
    if not, lookup main spark table (8022)

    well... the main spark table only actually goes to 4400RPM... but since the 4800 and up table is immediately after the main table, it actually lines up and will be looked up as another row. the code doesn't attempt to limit reading above 4400RPM either...

    so, it acts like a single 400-4800RPM table, but in the code it's actually a 400-4800RPM table and a 4800+ RPM table.... essentially, the extra lookup for 4800+ is pointless since it will already be used.



    so, anybody else find odd things they want to discuss/share?
    Last edited by RobertISaar; 02-09-2013 at 11:56 PM.
    1995 Chevrolet Monte Carlo LS 3100 + 4T60E


  2. #2
    RIP EagleMark's Avatar
    Join Date
    Feb 2011
    Location
    North Idaho
    Age
    64
    Posts
    10,477
    Hard to compete with you but I'll play and maybe learn something?

    $4F XDF Fuel VE table goes to 5200 RPM, but the assembly only goes to 4800? Somone started at 400 RPM instead of 0 RPM.

    Odd? Have you ever seen how much Air managmant code is in a $6E assembly? And I can't find a way to turn it off? In $42 it's just a temp on and timer...

    Since I'm stating to understand looups and sub routines how about a lesson on the commands? I just grabbed this piece and BOLD, Italic and UNDERLINED some examples.

    Code:
                     ;--------------------
                    ; LK UP  ACCEL ENRICH 
                    ; vs Diff TPS 
                    ; ** PUMP SHOT **
                    ;--------------------
    D775:            LDAA    #255
    D777:  LD777     LDX     #$D312         ; ACCEL ENRICH vs Diff TPS TBL
                                            ; Contrib vs Diff TPS TBL
    D77A:            JSR     LFAD7          ; 2D LK UP 
     ;                                                            
    D77D:            LDAB    L00DF
    D77F:            ORAB    #$10           ; BIT 4
    D781:            BRA     LD786
     ;                                                            
    D783:  LD783     CLRA    
    D784:            ANDB    #$EF       ; 0111 1111
    D786:  LD786     STAB    L00DF
    D788:            STAA    L0058      ; BPW, MSB
    D78A:            STAA    L009A
    D78C:            CLRA    
    D78D:            LDAB    L00DF
    D78F:            BITB    #4         ; BIT 2
    D791:            BEQ     LD796
     ;                                                            
    D793:            LDAA    LD28F      ; 183 Usec, BPW ADDER TO BPW WHILE 
                                        ; IAC IS OPENING
                                        ; VAL MSEC = 16.384 
                                        
    D796:  LD796     ADDA    L0058      ; BPW, MSB
    D798:            BCS     LD79E
                                        ; ... else                               
    D79A:            ADDA    L0059      ; BPW, LSB
    D79C:            BCC     LD7A0
                                        ; ... else    
    D79E:  LD79E     LDAA    #255       ; MAX LMT
    D7A0:  LD7A0     BEQ     LD7BE
     ;                                                            
    D7A2:            LDAB    L0098
    D7A4:            MUL     
    D7A5:            LSRD               ; DIV BY 8
    D7A6:            LSRD    
    D7A7:            LSRD    
    D7A8:            ADDD    L0096
    D7AA:            STD     L0096
    D7AC:            LDAB    L0006
    D7AE:            LDAA    L000D
    D7B0:            BITA    #$40       ; BIT 6
    D7B2:            BNE     LD7B6
                                        ; ...... else                         
    D7B4:            ORAB    #8
    D7B6:  LD7B6     ORAA    #$C0       ; 1100 0000
    D7B8:            ORAB    #1         ; BIT 0
    D7BA:            STAB    L0006
    D7BC:            BRA     LD7C2
                                                                
    D7BE:  LD7BE     LDAA    L000D
    D7C0:            ANDA    #$BF       ; 1011 1111
    D7C2:  LD7C2     STAA    L000D
    D7C4:            LDAB    L0072
    D7C6:            BITB    #2         ; BIT 1
    D7C8:            BEQ     LD7DD

    1990 Chevy Suburban 5.7L Auto ECM 1227747 $42!
    1998 Chevy Silverado 5.7L Vortec 0411 Swap to RoadRunner!
    -= =-

  3. #3
    Super Moderator
    Join Date
    Mar 2011
    Location
    Camden, MI
    Age
    35
    Posts
    3,026
    i don't see anything bolded? the [ code ] command seems to disable a lot of formatting.

    AIR management should be able to be disabled completely with relative ease.... there have to be calibration scalars that could be manipulated to remove it entirely.
    1995 Chevrolet Monte Carlo LS 3100 + 4T60E


  4. #4
    Fuel Injected! jim_in_dorris's Avatar
    Join Date
    Dec 2011
    Posts
    803
    I'm not sure if I see it correctly myself, but it looks like this is highlighted. If I may.

    LDAA #255
    D777: LD777 LDX #$D312 ; ACCEL ENRICH vs Diff TPS TBL
    ; Contrib vs Diff TPS TBL
    D77A: JSR LFAD7
    ; 2D LK UP ;
    D77D: LDAB L00DF


    LDAA and LDAB are Load Accumulators A and B.
    LDX is Load index register X.
    and JSR is Jump to subroutine.

    What that piece of code is doing is loading accumulator A with $FF(256), loading the index register X with the address of the routine it wants (
    ACCEL ENRICH vs Diff TPS TBL)
    then jumping to that subroutine to do a lookup. on return it then loads the B accumulator with the contents of $DF which is a status flag most likely. I'm not looking at the
    hac of whatever piece of code that come from, but I feel confident that is what is happening
    Last edited by jim_in_dorris; 02-10-2013 at 12:51 AM.
    Square body stepsides forever!!!

  5. #5
    Super Moderator
    Join Date
    Mar 2011
    Location
    Camden, MI
    Age
    35
    Posts
    3,026
    more quirks from 5B....

    the IAT correction to spark advance table.... instead of using normalized IAT, it's using raw A/D counts..... ???? it also has an upper limit of $D1 counts, not $D0 as expected... this complicates things a bit to try and get everything labeled correctly in the XDF.

    so, within an hour or so of hacking/commenting, i've run across two really big mistakes in 5B... this one can be fixed with a single byte change, the other requires a bit of branching. wonder what else i'll find.
    1995 Chevrolet Monte Carlo LS 3100 + 4T60E


  6. #6
    RIP EagleMark's Avatar
    Join Date
    Feb 2011
    Location
    North Idaho
    Age
    64
    Posts
    10,477
    That was hard to see bold, I changed it to bold, Italic and underline... but Jim caught it and now I can spend some time with that info!

    I don't want to hijack but I need some help and it's Quirk related.

    BJYK has Mode 4 commands in the hex starting at $1800, BJYL and the available dissasmbly do not. What does Mode 4 do and how would it affect whatever?

    Code:
      Location of ALDL mode 4 jump table and code in PROM
    ;
    ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ;
    ;-Not present in this calibration, dummy RTS table provided for this disassembly
    ;
     ORG $1800  
    ;
    L1800 NOP    ;
     NOP    ;
     RTS    ;Return
    ;
    L1803 NOP    ;
     NOP    ;
     RTS    ;Return
    ;
    L1806 NOP    ;
     NOP    ;
     RTS    ;Return
    ; 
    L1809 NOP    ;
     NOP    ;
     RTS    ;Return
    ;
    L180C NOP    ;
     NOP    ;
     RTS    ;Return
    ;
    L180F NOP    ;
     NOP    ;
     RTS    ;Return
    ;
    L1812 NOP    ;
     NOP    ;
     RTS    ;Return
    ;
    L1815 NOP    ;
     NOP    ;
     RTS    ;
    ;

    1990 Chevy Suburban 5.7L Auto ECM 1227747 $42!
    1998 Chevy Silverado 5.7L Vortec 0411 Swap to RoadRunner!
    -= =-

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •