Code: Learning Disassembly Assembly
From 1project2many:
EagleMark's post below made me realize it would be a good idea to have a place for code questions. Anything goes, so to speak, as long as it's code related. Assembly, Modula, C++, Motorola, Intel, Whatever.
------------------------------------------------
$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
Code: Learning Disassembly Assembly