Cadensdad14
Full Member
Karma: +8/-1
Offline
Posts: 134
|
|
« Reply #19 on: June 17, 2018, 10:04:12 AM »
|
|
|
Ok. Revisions have been made to follow the recommendations from TinjCU. Once flags are set, it returns. Then subroutines are called that are flag dependent that either copy the original code or insert constant values for zwout, lamfaw_w, and B_kr.
Flag Setting Routine ROM:008A3ACC ALS_Coding: ; CODE XREF: sub_86FB9C+3EP ROM:008A3ACC bmov S_cruise.6, word_FDD6.5 ROM:008A3AD0 ROM:008A3AD0 B_ALS_Set: ROM:008A3AD0 extp #0E1h, #1 ; 'ß' ROM:008A3AD4 movb rl4, tmotlin ROM:008A3AD8 exts #81h, #1 ; 'ü' ROM:008A3ADC movb rh4, AL_MaxTemp ROM:008A3AE0 cmpb rl4, rh4 ROM:008A3AE2 jmpr cc_UGT, B_als_reset ROM:008A3AE4 exts #81h, #1 ; 'ü' ROM:008A3AE8 movb rh4, AL_MinTemp ROM:008A3AEC cmpb rl4, rh4 ROM:008A3AEE jmpr cc_ULE, B_als_reset ROM:008A3AF0 ROM:008A3AF0 LC_SetRoutine: ROM:008A3AF0 movb rl4, CWALS ROM:008A3AF4 jnb r4.0, B_LC_reset ROM:008A3AF8 jnb Cl_Br_Pos_Cond.13, B_LC_reset ROM:008A3AFC mov r4, vfil_w ROM:008A3B00 exts #81h, #1 ; 'ü' ROM:008A3B04 mov r9, ALSpdThresh ROM:008A3B08 cmp r4, r9 ROM:008A3B0A jmpr cc_NC, B_LC_reset ROM:008A3B0C mov r4, nmot_w ROM:008A3B10 exts #81h, #1 ; 'ü' ROM:008A3B14 mov r9, LaunchRPM ROM:008A3B18 cmp r4, r9 ROM:008A3B1A jmpr cc_ULE, B_LC_reset ROM:008A3B1C extp #0E0h, #1 ; 'a' ROM:008A3B20 movb rl4, B_alsflags ROM:008A3B24 bset r4.0 ROM:008A3B26 extp #0E0h, #1 ; 'a' ROM:008A3B2A movb B_alsflags, rl4 ROM:008A3B2E jmpr cc_UC, B_NLS_set ROM:008A3B30 ; --------------------------------------------------------------------------- ROM:008A3B30 ROM:008A3B30 B_LC_reset: ; CODE XREF: ROM:008A3AF4j ROM:008A3B30 ; ROM:008A3AF8j ... ROM:008A3B30 extp #0E0h, #1 ; 'a' ROM:008A3B34 movb rl4, B_alsflags ROM:008A3B38 bclr r4.0 ROM:008A3B3A extp #0E0h, #1 ; 'a' ROM:008A3B3E movb B_alsflags, rl4 ROM:008A3B42 jmpr cc_UC, B_NLS_set ROM:008A3B44 ; --------------------------------------------------------------------------- ROM:008A3B44 ROM:008A3B44 B_als_reset: ; CODE XREF: ROM:008A3AE2j ROM:008A3B44 ; ROM:008A3AEEj ROM:008A3B44 extp #0E0h, #1 ; 'a' ROM:008A3B48 mov B_alsflags, ZEROS ROM:008A3B4C jmpr cc_UC, flg_return ROM:008A3B4E ; --------------------------------------------------------------------------- ROM:008A3B4E ROM:008A3B4E B_NLS_set: ; CODE XREF: ROM:008A3B2Ej ROM:008A3B4E ; ROM:008A3B42j ROM:008A3B4E extp #0E0h, #1 ; 'a' ROM:008A3B52 movb rl4, B_alsflags ROM:008A3B56 jb r4.0, nls_bit_reset ROM:008A3B5A movb rl4, CWALS ROM:008A3B5E jnb r4.1, nls_bit_reset ROM:008A3B62 jnb Cl_Br_Pos_Cond.13, nls_bit_reset ROM:008A3B66 jb Cl_Br_Pos_Cond.9, nls_bit_reset ROM:008A3B6A mov r4, nmot_w ROM:008A3B6E exts #81h, #1 ; 'ü' ROM:008A3B72 mov r9, NLSRPMThresh ROM:008A3B76 cmp r4, r9 ROM:008A3B78 jmpr cc_ULE, nls_bit_reset ROM:008A3B7A movbz r4, wped ROM:008A3B7E exts #81h, #1 ; 'ü' ROM:008A3B82 movbz r9, NLSAccPedal ROM:008A3B86 cmp r4, r9 ROM:008A3B88 jmpr cc_ULE, nls_bit_reset ROM:008A3B8A extp #0E0h, #1 ; 'a' ROM:008A3B8E movb rl4, B_alsflags ROM:008A3B92 bset r4.1 ROM:008A3B94 extp #0E0h, #1 ; 'a' ROM:008A3B98 movb B_alsflags, rl4 ROM:008A3B9C jmpr cc_UC, flg_return ROM:008A3B9E ; --------------------------------------------------------------------------- ROM:008A3B9E ROM:008A3B9E nls_bit_reset: ; CODE XREF: ROM:008A3B56j ROM:008A3B9E ; ROM:008A3B5Ej ... ROM:008A3B9E extp #0E0h, #1 ; 'a' ROM:008A3BA2 movb rl4, B_alsflags ROM:008A3BA6 bclr r4.1 ROM:008A3BA8 extp #0E0h, #1 ; 'a' ROM:008A3BAC movb B_alsflags, rl4 ROM:008A3BB0 jmpr cc_UC, flg_return ROM:008A3BB2 ; --------------------------------------------------------------------------- ROM:008A3BB2 ROM:008A3BB2 flg_return: ; CODE XREF: ROM:008A3B4Cj ROM:008A3BB2 ; ROM:008A3B9Cj ... ROM:008A3BB2 rets ROM:008A3BB2 ; ---------------------------------------------------------------------------
And then the RAM functions als_kr_disable: ; CODE XREF: sub_872D1C+90P ROM:008A4000 extp #0E0h, #1 ; 'a' ROM:008A4004 movb rl4, B_alsflags ROM:008A4008 cmpb rl4, #0 ROM:008A400C jmpr cc_NZ, loc_8A4014 ROM:008A400E bset b_kr.14 ROM:008A4010 jmps 87h, loc_872DB2 ROM:008A4014 ; --------------------------------------------------------------------------- ROM:008A4014 ROM:008A4014 loc_8A4014: ; CODE XREF: ROM:008A400Cj ROM:008A4014 jmps 87h, loc_872DB0 ROM:008A4018 ROM:008A4018 ; =============== S U B R O U T I N E ======================================= ROM:008A4018 ROM:008A4018 ROM:008A4018 ALS_lamfaset: ; CODE XREF: sub_8693B6:lamfa_hijackP ROM:008A4018 extp #0E0h, #1 ; 'a' ROM:008A401C movb rl6, B_alsflags ROM:008A4020 cmpb rl6, #0 ROM:008A4024 jmpr cc_NZ, als_lamfa ROM:008A4026 extp #0E1h, #1 ; 'ß' ROM:008A402A ROM:008A402A stk_lamfa: ROM:008A402A mov lamfaw_w, r4 ROM:008A402E jmpr cc_UC, lam_ret ROM:008A4030 ; --------------------------------------------------------------------------- ROM:008A4030 ROM:008A4030 als_lamfa: ; CODE XREF: ALS_lamfaset+Cj ROM:008A4030 mov r4, #6Ch ; 'l' ROM:008A4034 extp #0E1h, #1 ; 'ß' ROM:008A4038 mov lamfaw_w, r4 ROM:008A403C jmpr cc_UC, lam_ret ROM:008A403E ; --------------------------------------------------------------------------- ROM:008A403E ROM:008A403E lam_ret: ; CODE XREF: ALS_lamfaset+16j ROM:008A403E ; ALS_lamfaset+24j ROM:008A403E rets ROM:008A403E ; End of function ALS_lamfaset ROM:008A403E ROM:008A4040 ROM:008A4040 ; =============== S U B R O U T I N E ======================================= ROM:008A4040 ROM:008A4040 ROM:008A4040 als_zwoutset: ; CODE XREF: sub_89CD08:zwout_als1P ROM:008A4040 ; sub_89CD08:loc_89CDA6P ... ROM:008A4040 extp #0E0h, #1 ; 'a' ROM:008A4044 movb rl6, B_alsflags ROM:008A4048 cmpb rl6, #0 ROM:008A404C jmpr cc_NZ, als_zwout ROM:008A404E ROM:008A404E stk_zwout: ROM:008A404E movb zwout, [r12] ROM:008A4052 jmpr cc_UC, zwout_ret ROM:008A4054 ; --------------------------------------------------------------------------- ROM:008A4054 ROM:008A4054 als_zwout: ; CODE XREF: als_zwoutset+Cj ROM:008A4054 movb rl4, #0E4h ; 'S' ROM:008A4058 movb rl4, zwout ROM:008A405C jmpr cc_UC, zwout_ret ROM:008A405E ; --------------------------------------------------------------------------- ROM:008A405E ROM:008A405E zwout_ret: ; CODE XREF: als_zwoutset+12j ROM:008A405E ; als_zwoutset+1Cj ROM:008A405E rets ROM:008A405E ; End of function als_zwoutset ROM:008A405E ROM:008A405E ; ---------------------------------------------------------------------------
|