code:0000B18D code_B18D: ; CODE XREF: ROM_1B03C+134j code:0000B18D mov RAM_2E, A ; Move (Op1 <- Op2) code:0000B18F mov DPTR, #0xFCD0 ; XWDKGR_LMR,{|16XI|SZ-Nr| Throttle angle, turbo (LMR) maps in overboost, supporting points} code:0000B192 movx A, @DPTR ; Move from/to external RAM code:0000B193 code:0000B193 code_B193: ; CODE XREF: ROM_1B03C+153j code:0000B193 mov B, A ; B-Register code:0000B195 mov DPTR, #0xFCCF ; XNMOTGR_LM,{|16XI|SZ-Nr| NMOT-points LMR} code:0000B198 movx A, @DPTR ; Move from/to external RAM code:0000B199 code:0000B199 code_B199: ; CODE XREF: ROM_1B03C+156j code:0000B199 mov DPTR, #0xE376 ; KFPS,{setpoint for map-ldr} code:0000B19C lcall code_2CDA ; Long Subroutine Call code:0000B19F mov R3, A ; Move (Op1 <- Op2) code:0000B1A0 mov DPTR, #0xFCCF ; XNMOTGR_LM,{|16XI|SZ-Nr| NMOT-points LMR} code:0000B1A3 movx A, @DPTR ; Move from/to external RAM code:0000B1A4 mov DPTR, #0xE376 ; KFPS,{setpoint for map-ldr} code:0000B1A7 lcall code_2CAE ; Long Subroutine Call code:0000B1AA cpl A ; Complement Operand code:0000B1AB setb C ; Set Direct Bit code:0000B1AC addc A, R3 ; Add Second Operand to Acc with carry code:0000B1AD jc code_B1B0 ; Jump if Carry is set code:0000B1AF clr A ; Clear Operand (0) code:0000B1B0 code:0000B1B0 code_B1B0: ; CODE XREF: ROM_1B03C-FE8Fj code:0000B1B0 mov R4, A ; Move (Op1 <- Op2) code:0000B1B1 mov R0, #0xC6 ; '¦' ; XERG_DPS,{ LMR set value - value of load line 1 |umr:TL|} code:0000B1B3 movx @R0, A ; Move from/to external RAM code:0000B1B4 mov DPTR, #0xFCC5 ; XNMOTGR28S,{|16XI|SZ-Nr| NMOT-points 2 (group of 8) code:0000B1B7 movx A, @DPTR ; Move from/to external RAM code:0000B1B8 mov B, A ; B-Register code:0000B1BA mov DPTR, #0xFF63 ; XHOEHENGR8,{|16XI|SZ-Nr| altitude correction supporting points (group of 8) code:0000B1BD movx A, @DPTR ; Move from/to external RAM code:0000B1BE mov DPTR, #0xE476 ; KFLDSHK,{Map height correction for LDR setpoint} code:0000B1C1 lcall code_2D55 ; Long Subroutine Call code:0000B1C4 mov DPTR, #0xFFC7 ; XFPSRED,{ Factor height correction PSOLL |umr:FKT128|} code:0000B1C7 movx @DPTR, A ; Move from/to external RAM code:0000B1C8 mov B, R3 ; B-Register code:0000B1CA mul AB ; Multiply Acc by B code:0000B1CB rlc A ; Rotate Acc left through Carry code:0000B1CC mov A, B ; B-Register code:0000B1CE rlc A ; Rotate Acc left through Carry code:0000B1CF jnc code_B1D3 ; Jump if Carry is clear code:0000B1D1 mov A, #0xFF ; Move (Op1 <- Op2) code:0000B1D3 code:0000B1D3 code_B1D3: ; CODE XREF: ROM_1B03C-FE6Dj code:0000B1D3 mov R3, A ; Move (Op1 <- Op2) code:0000B1D4 code:0000B1D4 code_B1D4: ; CODE XREF: ROM_1B03C+190j code:0000B1D4 mov DPTR, #0xFCC5 ; XNMOTGR28S,{|16XI|SZ-Nr| NMOT-points 2 (group of 8) code:0000B1D7 movx A, @DPTR ; Move from/to external RAM code:0000B1D8 mov B, A ; B-Register code:0000B1DA mov DPTR, #0xFF64 ; XTANSGR8S,{|16XI|SZ-Nr| intake air temp points (group of 8)} code:0000B1DD movx A, @DPTR ; Move from/to external RAM code:0000B1DE code:0000B1DE code_B1DE: ; CODE XREF: ROM_1B03C+161j code:0000B1DE mov DPTR, #0xE4B6 ; KFLDSAK,{Map Intake air temp correction for LDR setpoint} code:0000B1E1 lcall code_2D55 ; Long Subroutine Call code:0000B1E4 mov B, R3 ; B-Register code:0000B1E6 mul AB ; Multiply Acc by B code:0000B1E7 rlc A ; Rotate Acc left through Carry code:0000B1E8 mov A, B ; B-Register code:0000B1EA rlc A ; Rotate Acc left through Carry code:0000B1EB jnc code_B1EF ; Jump if Carry is clear code:0000B1ED mov A, #0xFF ; Move (Op1 <- Op2) code:0000B1EF code:0000B1EF code_B1EF: ; CODE XREF: ROM_1B03C-FE51j code:0000B1EF mov R3, A ; Move (Op1 <- Op2) code:0000B1F0 jnb RAM_20.5, code_B208 ; PORTE1.5 McMess active general code:0000B1F3 mov DPTR, #0xF91F ; XTLFKT,{ LMR: TL-soll (xerg_ps), add. vorzeichenb.} code:0000B1F6 movx A, @DPTR ; Move from/to external RAM code:0000B1F7 add A, #0x80 ; 'Ç' ; Add Second Operand to Acc code:0000B1F9 jnc code_B202 ; Jump if Carry is clear code:0000B1FB add A, R3 ; Add Second Operand to Acc code:0000B1FC jnc code_B207 ; Jump if Carry is clear code:0000B1FE mov A, #0xFF ; Move (Op1 <- Op2) code:0000B200 sjmp code_B207 ; Short jump code:0000B202 ; --------------------------------------------------------------------------- code:0000B202 code:0000B202 code_B202: ; CODE XREF: ROM_1B03C-FE43j code:0000B202 add A, R3 ; Add Second Operand to Acc code:0000B203 jc code_B207 ; Jump if Carry is set code:0000B205 mov A, #0 ; Move (Op1 <- Op2) code:0000B207 code:0000B207 code_B207: ; CODE XREF: ROM_1B03C-FE40j code:0000B207 ; ROM_1B03C-FE3Cj ... code:0000B207 mov R3, A ; Move (Op1 <- Op2) code:0000B208 code:0000B208 code_B208: ; CODE XREF: ROM_1B03C-FE4Cj code:0000B208 mov DPTR, #0xF846 ; F_HG,{O:xflag7.1 change-over automatic/manual transmission} code:0000B20B movx A, @DPTR ; Move from/to external RAM code:0000B20C jb ACC.1, code_B241 ; Accumulator code:0000B20F mov DPTR, #0xFCEE ; XF_CAN ? code:0000B212 movx A, @DPTR ; Move from/to external RAM code:0000B213 jnb ACC.5, code_B21F ; Not defined :( code:0000B216 mov DPTR, #0xFCE4 ; XF_TC2,{ Flagregister 2 for Transmission Control Unit} code:0000B219 movx A, @DPTR ; Move from/to external RAM code:0000B21A jnb ACC.1, code_B264 ; B_LDBAG,{O:XF_TC2.1 Boost pressure reduction requested} code:0000B21D code:0000B21D code_B21D: ; CODE XREF: ROM_1B03C+1D9j code:0000B21D sjmp code_B230 ; Short jump code:0000B21F ; --------------------------------------------------------------------------- code:0000B21F code:0000B21F code_B21F: ; CODE XREF: ROM_1B03C-FE29j code:0000B21F mov DPTR, #0xE029 ; Move (Op1 <- Op2) code:0000B222 movx A, @DPTR ; Move from/to external RAM code:0000B223 mov C, ACC.0 ; Accumulator code:0000B225 code:0000B225 code_B225: ; CODE XREF: ROM_1B03C+1E1j code:0000B225 cpl C ; Complement Operand code:0000B226 mov DPTR, #0xFCE4 ; Move (Op1 <- Op2) code:0000B229 movx A, @DPTR ; Move from/to external RAM code:0000B22A mov ACC.1, C ; B_LDBAG,{O:XF_TC2.1 Boost pressure reduction requested} code:0000B22C movx @DPTR, A ; Move from/to external RAM code:0000B22D code:0000B22D code_B22D: ; CODE XREF: ROM_1B03C+1E9j code:0000B22D jnb ACC.1, code_B264 ; Accumulator code:0000B230 code:0000B230 code_B230: ; CODE XREF: ROM_1B03C:code_B21Dj code:0000B230 ; ROM_1B03C+1DFj ... code:0000B230 mov DPTR, #0xC9B6 ; VSTALL,{Vehicle speed threshold for boost pressure reduction on TCM request} code:0000B233 code:0000B233 code_B233: ; CODE XREF: ROM_1B03C+1D1j code:0000B233 clr A ; Clear Operand (0) code:0000B234 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B235 mov B, A ; B-Register code:0000B237 mov R0, #0xB7 ; '+' ; 0xB7 vehicle speed KM/H code:0000B239 mov A, @R0 ; Move (Op1 <- Op2) code:0000B23A cjne A, B, code_B23D ; B-Register code:0000B23D code:0000B23D code_B23D: ; Jump if Carry is clear code:0000B23D jnc code_B264 code:0000B23F sjmp code_B248 ; Short jump code:0000B241 ; --------------------------------------------------------------------------- code:0000B241 code:0000B241 code_B241: ; CODE XREF: ROM_1B03C-FE30j code:0000B241 mov DPTR, #0xFA94 ; X_SCHAST,{gear stage | 1 .. 5 according to gear, 0 = no output|} code:0000B244 movx A, @DPTR ; Move from/to external RAM code:0000B245 cjne A, #1, code_B264 ; Compare Operands and JNE code:0000B248 code:0000B248 code_B248: ; CODE XREF: ROM_1B03C-FDFDj code:0000B248 ; ROM_1B03C+207j code:0000B248 mov DPTR, #0xF846 ; XFLAG7,{flagregister, -> dseg: FLAG7 code:0000B24B movx A, @DPTR ; Move from/to external RAM code:0000B24C code:0000B24C code_B24C: ; CODE XREF: ROM_1B03C+20Cj code:0000B24C setb ACC.2 ; F846.2 B_LDB,{O:xflag7.2 Boost pressure reduction in the first gear} code:0000B24E movx @DPTR, A ; Move from/to external RAM code:0000B24F mov DPTR, #0xE956 ; FLDABMTN,{Faktor Boost pressure reduction, manual transmission} code:0000B252 mov R1, #0xC1 ; '-' ; XN_LMR,{ speed range |umr:DEZ|} code:0000B254 movx A, @R1 ; Move from/to external RAM code:0000B255 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B256 cpl A ; Complement Operand code:0000B257 mov B, R4 ; B-Register code:0000B259 mul AB ; Multiply Acc by B code:0000B25A mov A, R3 ; Move (Op1 <- Op2) code:0000B25B clr C ; Clear Operand (0) code:0000B25C subb A, B ; B-Register code:0000B25E jnc code_B261 ; Jump if Carry is clear code:0000B260 code:0000B260 code_B260: ; CODE XREF: ROM_1B03C+219j code:0000B260 ; ROM_1B03C+21Ej code:0000B260 clr A ; Clear Operand (0) code:0000B261 code:0000B261 code_B261: ; CODE XREF: ROM_1B03C-FDDEj code:0000B261 ; ROM_1B03C+222j code:0000B261 mov R3, A ; Move (Op1 <- Op2) code:0000B262 sjmp code_B26B ; Short jump code:0000B264 ; --------------------------------------------------------------------------- code:0000B264 code:0000B264 code_B264: ; CODE XREF: ROM_1B03C-FE22j code:0000B264 ; ROM_1B03C:code_B22Dj ... code:0000B264 mov DPTR, #0xF846 ; XFLAG7,{flagregister, -> dseg: FLAG7 code:0000B267 movx A, @DPTR ; Move from/to external RAM code:0000B268 clr ACC.2 ; F846.2 B_LDB,{O:xflag7.2 Boost pressure reduction in the first gear} code:0000B26A movx @DPTR, A ; Move from/to external RAM code:0000B26B code:0000B26B code_B26B: ; CODE XREF: ROM_1B03C-FDDAj code:0000B26B ; ROM_1B03C:ROM_1B23Cj code:0000B26B mov DPTR, #0xF97C ; XERFLG7,{} code:0000B26E movx A, @DPTR ; Move from/to external RAM code:0000B26F jnb ACC.0, code_B281 ; E_TM,{O:xerflg7.0 error TMOT} code:0000B272 mov B, R3 ; B-Register code:0000B274 mov DPTR, #0xC9BC ; PSLDMX,{LDR reference limit at high engine temperature} code:0000B277 clr A ; Clear Operand (0) code:0000B278 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B279 cjne A, B, code_B27C ; B-Register code:0000B27C code:0000B27C code_B27C: ; Jump if Carry is clear code:0000B27C jnc code_B27F code:0000B27E mov R3, A ; Move (Op1 <- Op2) code:0000B27F code:0000B27F code_B27F: ; CODE XREF: ROM_1B03C:code_B27Cj code:0000B27F ; ROM_1B03C+238j ... code:0000B27F sjmp code_B2D5 ; Short jump code:0000B281 ; --------------------------------------------------------------------------- code:0000B281 code:0000B281 code_B281: ; CODE XREF: ROM_1B03C-FDCDj code:0000B281 mov DPTR, #0xC9B5 ; TMLD,{Motor temperature threshold for limiting the setpoint LDR} code:0000B284 clr A ; Clear Operand (0) code:0000B285 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B286 cjne A, RAM_38, code_B289 ; Compare Operands and JNE code:0000B289 code:0000B289 code_B289: ; Jump if Carry is set code:0000B289 jc code_B2C2 code:0000B28B mov DPTR, #0xF87B ; XFLAG2,{general flag byte -> DSEG-overlay: oflag2} code:0000B28E code:0000B28E code_B28E: ; CODE XREF: ROM_1B03C+247j code:0000B28E ; ROM_1B03C+24Cj code:0000B28E movx A, @DPTR ; Move from/to external RAM code:0000B28F code:0000B28F code_B28F: ; CODE XREF: ROM_1B03C+250j code:0000B28F jb ACC.4, code_B2C2 ; B_VMAXW,{O:xflag2.4 vmax soft limiter (above PSOLL)}, code:0000B292 mov DPTR, #0xF846 ; XFLAG7,{flagregister, -> dseg: FLAG7 code:0000B295 movx A, @DPTR ; Move from/to external RAM code:0000B296 jnb ACC.1, code_B2B9 ; F_HG,{O:xflag7.1 changeover automatic/manual transmission code:0000B299 code:0000B299 code_B299: ; CODE XREF: ROM_1B03C+231j code:0000B299 mov DPTR, #0xC9B4 ; CNFLDB,{Configbyte for gear-dependent boost pressure control} code:0000B29C clr A ; Clear Operand (0) code:0000B29D movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B29E mov B, A ; B-Register code:0000B2A0 mov DPTR, #0xFA94 ; X_SCHAST,{gear stage | 1 .. 5 according to gear, 0 = no output|} code:0000B2A3 movx A, @DPTR ; Move from/to external RAM code:0000B2A4 add A, #2 ; Add Second Operand to Acc code:0000B2A6 movc A, @A+PC ; Move code byte relative to second op to Acc code:0000B2A7 code:0000B2A7 code_B2A7: ; CODE XREF: ROM_1B03C+261j code:0000B2A7 ; ROM_1B03C+266j code:0000B2A7 sjmp code_B2AF ; Short jump code:0000B2A7 ; --------------------------------------------------------------------------- code:0000B2A9 code_B2A9: .byte 1 ; CODE XREF: ROM_1B03C+26Aj code:0000B2AA .byte 2 code:0000B2AA ; END OF FUNCTION CHUNK FOR ROM_1B03C code:0000B2AB .byte 4 code:0000B2AC .byte 8 code:0000B2AD .byte 0x10 code:0000B2AE .byte 0x20 code:0000B2AF ; --------------------------------------------------------------------------- code:0000B2AF ; START OF FUNCTION CHUNK FOR ROM_1B03C code:0000B2AF code:0000B2AF code_B2AF: ; CODE XREF: ROM_1B03C:code_B2A7j code:0000B2AF ; ROM_1B03C+1FEj code:0000B2AF anl A, B ; B-Register code:0000B2B1 jz code_B2B9 ; Jump if Acc is zero code:0000B2B3 mov DPTR, #0xF8E8 ; TZLDB,{time counter for TLDB (PSMX limitation to B_NMAX) |T_96_MS} code:0000B2B6 movx A, @DPTR ; Move from/to external RAM code:0000B2B7 jnz code_B2C2 ; Jump if Acc is not zero code:0000B2B9 code:0000B2B9 code_B2B9: ; CODE XREF: ROM_1B03C-FDA6j code:0000B2B9 ; ROM_1B03C-FD8Bj code:0000B2B9 mov DPTR, #0xF87B ; XFLAG2,{general flag byte -> DSEG-overlay: oflag2} code:0000B2BC movx A, @DPTR ; Move from/to external RAM code:0000B2BD clr ACC.5 ; B_PSMAX,{O:xflag2.5 PSMX limiter acting} code:0000B2BF movx @DPTR, A ; Move from/to external RAM code:0000B2C0 sjmp code_B2D5 ; Short jump code:0000B2C2 ; --------------------------------------------------------------------------- code:0000B2C2 code:0000B2C2 code_B2C2: ; CODE XREF: ROM_1B03C:code_B289j code:0000B2C2 ; ROM_1B03C:code_B28Fj ... code:0000B2C2 mov DPTR, #0xF87B ; XFLAG2,{general flag byte -> DSEG-overlay: oflag2} code:0000B2C5 movx A, @DPTR ; Move from/to external RAM code:0000B2C6 setb ACC.5 ; B_PSMAX,{O:xflag2.5 PSMX limiter acting} code:0000B2C8 movx @DPTR, A ; Move from/to external RAM code:0000B2C9 mov B, R3 ; B-Register code:0000B2CB mov DPTR, #0xC9B7 ; PSMX,{Maximum value of the A at TMOT> TMLD} code:0000B2CE clr A ; Clear Operand (0) code:0000B2CF movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B2D0 cjne A, B, code_B2D3 ; B-Register code:0000B2D3 code:0000B2D3 code_B2D3: ; Jump if Carry is set code:0000B2D3 jc code_B2D6 code:0000B2D5 code:0000B2D5 code_B2D5: ; CODE XREF: ROM_1B03C:code_B27Fj code:0000B2D5 ; ROM_1B03C-FD7Cj code:0000B2D5 mov A, R3 ; Move (Op1 <- Op2) code:0000B2D6 code:0000B2D6 code_B2D6: ; CODE XREF: ROM_1B03C:code_B2D3j code:0000B2D6 mov R1, #0xC5 ; '+' ; XERG_PS,{ LMR-corrected reference value from map |umr:TL|} code:0000B2D8 movx @R1, A ; Move from/to external RAM code:0000B2D9 mov R0, #0xBD ; '+' ; XF_LMR,{ Flagregister 'LMR'} code:0000B2DB mov A, RAM_2E ; Move (Op1 <- Op2) code:0000B2DD movx @R0, A ; Move from/to external RAM code:0000B2DE ret ; Return from subroutine code:0000B2DE ; END OF FUNCTION CHUNK FOR ROM_1B03C code:0000B2DF code:0000B2DF ; =============== S U B R O U T I N E ======================================= code:0000B2DF code:0000B2DF code:0000B2DF code_B2DF: ; CODE XREF: code_3F5E+188p code:0000B2DF ; ROM_1B03C+297j code:0000B2DF mov P2, #0xF9 ; '·' ; Port 2 code:0000B2E2 code:0000B2E2 code_B2E2: ; CODE XREF: ROM_1B03C+28Bj code:0000B2E2 ; ROM_1B03C+290j ... code:0000B2E2 mov R0, #0x23 ; '#' ; XWDKBL,{Throttle angle relative to idle position |umr:wdk|} code:0000B2E4 code:0000B2E4 code_B2E4: ; CODE XREF: ROM:1B2E1j code:0000B2E4 movx A, @R0 ; Move from/to external RAM code:0000B2E5 mov RAM_30, A ; Move (Op1 <- Op2) code:0000B2E7 mov P2, #0xFA ; '·' ; Port 2 code:0000B2EA mov R0, #8 ; Move (Op1 <- Op2) code:0000B2EC movx A, @R0 ; Move from/to external RAM code:0000B2ED mov RAM_33, A ; FA08 XLASDRE,{Address in case depth map for hysterese memory} code:0000B2EF mov P2, #0xFF ; Port 2 code:0000B2F2 mov R0, #0xBD ; '+' ; Move (Op1 <- Op2) code:0000B2F4 movx A, @R0 ; Move from/to external RAM code:0000B2F5 mov RAM_2E, A ; FFBD B_ISET,{O:xf_lmr.3 Set condition I share} code:0000B2F7 mov R0, #0xC1 ; '-' ; Move (Op1 <- Op2) code:0000B2F9 movx A, @R0 ; Move from/to external RAM code:0000B2FA mov RAM_32, A ; FFC1 XN_LMR,{LMR engine speed range} code:0000B2FC mov R0, #0xC5 ; '+' ; Move (Op1 <- Op2) code:0000B2FE movx A, @R0 ; Move from/to external RAM code:0000B2FF mov R3, A ; FFC5 XERG_PS,{ LMR-corrected reference value from map |umr:TL|} code:0000B300 mov R0, #0xC6 ; '¦' ; Move (Op1 <- Op2) code:0000B302 movx A, @R0 ; Move from/to external RAM code:0000B303 mov R4, A ; FFC6 XERG_DPS,{ LMR set value - value of load line 1 |umr:TL|} code:0000B304 code:0000B304 code_B304: ; CODE XREF: ROM:1B2EAj code:0000B304 mov DPTR, #0xFCC4 ; XNMOTGR1,{|16XI|SZ-Nr| NMOT-allocation 1} code:0000B307 movx A, @DPTR ; Move from/to external RAM code:0000B308 code:0000B308 code_B308: ; CODE XREF: code:0000F21Fj code:0000B308 mov B, A ; B-Register code:0000B30A mov DPTR, #0xFCC7 ; XTLGR1,{|16XI|SZ-Nr| TL-points 1} code:0000B30D movx A, @DPTR ; Move from/to external RAM code:0000B30E mov DPTR, #0xE7FE ; Threshold sum Spätverst for LDA code:0000B311 lcall code_2CDA ; Long Subroutine Call code:0000B314 mov R5, A ; Move (Op1 <- Op2) code:0000B315 jb RAM_2D.1, code_B31C ; KRFLG2.1 KR-adaptation code:0000B318 mov R1, #0xD7 ; '+' ; Factor for setpoint lowering without Adapion code:0000B31A sjmp code_B323 ; Short jump code:0000B31C ; --------------------------------------------------------------------------- code:0000B31C code:0000B31C code_B31C: ; CODE XREF: code_B2DF+36j code:0000B31C mov A, RAM_33 ; From FA08 FA08 XLASDRE,{Address in case depth map for hysterese memory} code:0000B31E anl A, #7 ; Logical AND (op1 &= op2) code:0000B320 add A, #0xCF ; '-' ; Adaptation factor for setpoint lowering code:0000B322 mov R1, A ; Move (Op1 <- Op2) code:0000B323 code:0000B323 code_B323: ; CODE XREF: code_B2DF+3Bj code:0000B323 movx A, @R1 ; Move from/to external RAM code:0000B324 mov R7, A ; Move (Op1 <- Op2) code:0000B325 jb RAM_2E.1, code_B32B ; LMR active code:0000B328 ljmp code_B384 ; Long Jump code:0000B32B ; --------------------------------------------------------------------------- code:0000B32B code:0000B32B code_B32B: ; CODE XREF: code_B2DF+46j code:0000B32B mov P2, #0xFA ; '·' ; Port 2 code:0000B32E mov R0, #0x84 ; 'ä' ; XFALMIT,{ Additive sum of cylinder-specific ignition retard values |umr:ZWONN|} code:0000B330 movx A, @R0 ; Move from/to external RAM code:0000B331 mov B, A ; B-Register code:0000B333 mov A, R5 ; Value from late sum map code:0000B334 cjne A, B, code_B337 ; FA84 sum VS map value code:0000B337 code:0000B337 code_B337: ; Port 2 code:0000B337 mov P2, #0xFF code:0000B33A mov R0, #0xCD ; '-' ; XSPERRT,{ Time counter for setpoint lowering |umr:S} code:0000B33C movx A, @R0 ; Move from/to external RAM code:0000B33D jnz code_B366 ; Jump if Acc is not zero code:0000B33F jnc code_B368 ; Jump if Carry is clear code:0000B341 mov DPTR, #0xE8FE ; FABMXN,{Maximum boost pressure reduction (factor min.)} code:0000B344 mov A, RAM_32 ; FFC1 XN_LMR,{LMR engine speed range} code:0000B346 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B347 mov B, A ; B-Register code:0000B349 code:0000B349 code_B349: ; CODE XREF: ROM_1B318+25j code:0000B349 ; ROM_1B318+2Cj ... code:0000B349 mov DPTR, #0xE906 ; FLDABN,{Boost pressure reduction / cycle (delta factor)} code:0000B34C mov A, RAM_32 ; FFC1 XN_LMR,{LMR engine speed range} code:0000B34E movc A, @A+DPTR ; Boost pressure reduction / cycle (delta factor) code:0000B34F code:0000B34F code_B34F: ; CODE XREF: ROM_1B34C+2Bj code:0000B34F mov R2, A ; Reduction per cycle into R2 code:0000B34F ; Setpoint factor into A code:0000B350 mov A, R7 ; Move (Op1 <- Op2) code:0000B351 clr C ; Clear Operand (0) code:0000B352 subb A, R2 ; Factor for setpoint lowering, reduction per cycle code:0000B353 jc code_B35A ; Jump if Carry is set code:0000B355 cjne A, B, code_B358 ; Lowering Factor, Max Reduction Factor code:0000B358 code:0000B358 code_B358: ; Carry is set if lowering factor is less than maximum factor. code:0000B358 jnc code_B35C ; Jump if this is not the case. code:0000B35A code:0000B35A code_B35A: ; CODE XREF: code_B2DF+74j code:0000B35A mov A, B ; B-Register code:0000B35C code:0000B35C code_B35C: ; CODE XREF: code_B2DF:code_B358j code:0000B35C mov R7, A ; Move (Op1 <- Op2) code:0000B35D mov DPTR, #0xE90E ; PSOLSP,{Waiting time between 2 normal charge pressure reductions} code:0000B360 mov A, RAM_32 ; FFC1 XN_LMR,{LMR engine speed range} code:0000B362 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B363 movx @R0, A ; Move from/to external RAM code:0000B364 sjmp code_B384 ; Short jump code:0000B366 ; --------------------------------------------------------------------------- code:0000B366 code:0000B366 code_B366: ; CODE XREF: code_B2DF+5Ej code:0000B366 jc code_B384 ; Jump if Carry is set code:0000B368 code:0000B368 code_B368: ; CODE XREF: code_B2DF+60j code:0000B368 mov DPTR, #0xE91E ; DKADN,{Throttle angle threshold for charge pressure increase} code:0000B36B mov A, RAM_32 ; FFC1 XN_LMR,{LMR engine speed range} code:0000B36D movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B36E cpl A ; Complement Operand code:0000B36F add A, RAM_30 ; F923 TPS position code:0000B371 jnc code_B384 ; Jump if Carry is clear code:0000B373 mov R0, #0xCE ; '+' ; XSTEIGT, {time counter setpoint increase by 1 incr. | conv S} code:0000B375 movx A, @R0 ; Move from/to external RAM code:0000B376 code:0000B376 code_B376: ; CODE XREF: ROM_1B34C+17j code:0000B376 jnz code_B384 ; Jump if Acc is not zero code:0000B378 mov A, R7 ; Move (Op1 <- Op2) code:0000B379 inc A ; Increment Operand code:0000B37A jz code_B384 ; Jump if Acc is zero code:0000B37C mov R7, A ; Move (Op1 <- Op2) code:0000B37D mov DPTR, #0xE916 ; Time per charge pressure increase by 1 incr. code:0000B380 mov A, RAM_32 ; FFC1 XN_LMR,{LMR engine speed range} code:0000B382 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B383 movx @R0, A ; XSTEIGT, {time counter setpoint increase by 1 incr. | conv S} code:0000B384 code:0000B384 code_B384: ; CODE XREF: code_B2DF+49j code:0000B384 ; code_B2DF+85j ... code:0000B384 mov A, R7 ; Move (Op1 <- Op2) code:0000B385 movx @R1, A ; (address varies based on adaptation map) Adaptationsfactor for setpoint lowering |umr:FKT255} code:0000B386 mov R1, #0xD7 ; '+' ; XFPSABN,{ Factor for setpoint lowering without adaptation |umr:FKT255} code:0000B388 movx @R1, A ; Move from/to external RAM code:0000B389 cpl A ; Complement Operand code:0000B38A mov B, R4 ; B-Register code:0000B38C mul AB ; Multiply Acc by B code:0000B38D mov A, R3 ; Move (Op1 <- Op2) code:0000B38E subb A, B ; B-Register code:0000B390 mov R1, #0xC8 ; '+' ; XP_SOLL,{ LMR-setpoint with adaptive reduction |umr:TL|} code:0000B392 movx @R1, A ; Move from/to external RAM code:0000B393 mov DPTR, #0xC9BB ; PISTBG,{Begr. Pist} code:0000B396 clr A ; Clear Operand (0) code:0000B397 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:0000B398 cjne A, RAM_40, code_B39B ; Compare Operands and JNE code:0000B39B code:0000B39B code_B39B: ; Jump if Carry is clear code:0000B39B jnc code_B39F code:0000B39D mov A, RAM_40 ; Move (Op1 <- Op2) code:0000B39F code:0000B39F code_B39F: ; CODE XREF: code_B2DF:code_B39Bj code:0000B39F mov R1, #0xC2 ; '-' ; XP_IST,{ Actual value (with boundary below) |umr:TL|} code:0000B3A1 movx @R1, A ; Move from/to external RAM code:0000B3A2 mov DPTR, #0xFCD0 ; XWDKGR_LMR,{|16XI|SZ-Nr| Throttle angle, turbo (LMR) maps in overboost, supporting points} code:0000B3A5 movx A, @DPTR ; Move from/to external RAM code:0000B3A6 mov B, A ; B-Register code:0000B3A8 mov DPTR, #0xFCCF ; XNMOTGR_LM,{|16XI|SZ-Nr| NMOT-points LMR} code:0000B3AB movx A, @DPTR ; Move from/to external RAM code:0000B3AC mov DPTR, #0xE4F6 ; KFTVVSLDR,{Duty cycle pilot control for LDR} code:0000B3AF code:0000B3AF code_B3AF: ; CODE XREF: ROM_1B385+27j code:0000B3AF lcall code_2CDA ; Long Subroutine Call code:0000B3B2 push ACC ; Accumulator code:0000B3B4 mov DPTR, #0xFCCF ; XNMOTGR_LM,{|16XI|SZ-Nr| NMOT-points LMR} code:0000B3B7 code:0000B3B7 code_B3B7: ; CODE XREF: ROM:1B3B4j code:0000B3B7 movx A, @DPTR ; Move from/to external RAM code:0000B3B8 mov B, A ; B-Register code:0000B3BA mov DPTR, #0xFF4C ; XFDKHAHGR,{|16XI|SZ-Nr| supporting points for altitude correction factor} code:0000B3BD movx A, @DPTR ; Move from/to external RAM code:0000B3BE code:0000B3BE code_B3BE: ; CODE XREF: ROM:1B3B7j code:0000B3BE mov DPTR, #0xE5F6 ; Duty factor correction in the height LDR code:0000B3C1 code:0000B3C1 code_B3C1: ; CODE XREF: ROM:1B3BCj code:0000B3C1 lcall code_2CDA ; Long Subroutine Call code:0000B3C4 mov B, A ; B-Register code:0000B3C6 pop ACC ; Accumulator code:0000B3C8 add A, B ; B-Register code:0000B3CA jnc code_B3CE ; Jump if Carry is clear code:0000B3CC mov A, #0xFF ; Move (Op1 <- Op2) code:0000B3CE code:0000B3CE code_B3CE: ; CODE XREF: code_B2DF+EBj code:0000B3CE push ACC ; Accumulator code:0000B3D0 mov DPTR, #0xFCCF ; XNMOTGR_LM,{|16XI|SZ-Nr| NMOT-points LMR} code:0000B3D3 movx A, @DPTR ; Move from/to external RAM code:0000B3D4 mov B, A ; B-Register code:0000B3D6 mov DPTR, #0xFCD1 ; XTANSGR,{|16XI|SZ-Nr| TANS (intake air temperature) supporting points} code:0000B3D9 movx A, @DPTR ; Move from/to external RAM code:0000B3DA mov DPTR, #0xE6F6 ; KFTVTA,{intake air temperature correction of ldr duty cycle} code:0000B3DD code:0000B3DD code_B3DD: ; CODE XREF: ROM_1B385+1Dj code:0000B3DD ; ROM_1B385+2Aj code:0000B3DD lcall code_2CDA ; Long Subroutine Call code:0000B3E0 mov B, A ; B-Register code:0000B3E2 pop ACC ; Accumulator code:0000B3E4 clr C ; Clear Operand (0) code:0000B3E5 code:0000B3E5 code_B3E5: ; CODE XREF: ROM_1B3E0j code:0000B3E5 subb A, B ; B-Register code:0000B3E7 jnc code_B3EA ; Jump if Carry is clear code:0000B3E9 clr A ; Clear Operand (0) code:0000B3EA code:0000B3EA code_B3EA: ; CODE XREF: code_B2DF+108j code:0000B3EA ; ROM_1B3E0+6j code:0000B3EA mov P2, #0xFF ; Port 2 code:0000B3ED mov R1, #0xC9 ; '+' ; XTV_VS,{ Duty cycle feedforward code:0000B3EF movx @R1, A ; Move from/to external RAM code:0000B3F0 mov R0, #0xBD ; '+' ; XF_LMR,{ Flagregister 'LMR'} code:0000B3F2 mov A, RAM_2E ; Move (Op1 <- Op2) code:0000B3F4 movx @R0, A ; Move from/to external RAM code:0000B3F5 ret ; Return from subroutine code:0000B3F5 ; End of function code_B2DF ROM:14F1A mov @R0, A ; Move (Op1 <- Op2) ROM:14F1B mov P2, #0xFF ; Port 2 ROM:14F1E mov R0, #0xBD ; '+' ; XF_LMR,{ Flagregister 'LMR'} ROM:14F20 movx A, @R0 ; Move from/to external RAM ROM:14F21 mov RAM_2E, A ; Move (Op1 <- Op2) ROM:14F23 mov R0, #0xBE ; '+' ; XF_OVB,{ Flagregister 'Overboost'} ROM:14F25 movx A, @R0 ; Move from/to external RAM ROM:14F26 mov RAM_2F, A ; Move (Op1 <- Op2) ROM:14F28 mov R0, #0xBF ; '+' ; XPCIHI,{I-Part High} ROM:14F2A movx A, @R0 ; Move from/to external RAM ROM:14F2B mov RAM_30, A ; Move (Op1 <- Op2) ROM:14F2D mov R0, #0xC0 ; '+' ; XPCILO,{I-Part Low} ROM:14F2F movx A, @R0 ; Move from/to external RAM ROM:14F30 mov RAM_31, A ; Move (Op1 <- Op2) ROM:14F32 mov R0, #0xC1 ; '-' ; XN_LMR,{ speed range ROM:14F34 movx A, @R0 ; Move from/to external RAM ROM:14F35 mov RAM_32, A ; Move (Op1 <- Op2) ROM:14F37 mov R0, #0xC2 ; '-' ; XP_IST,{ P-Part, Actual value (with limit below) |umr:TL|} ROM:14F39 movx A, @R0 ; Move from/to external RAM ROM:14F3A mov RAM_33, A ; Move (Op1 <- Op2) ROM:14F3C mov R0, #0xC3 ; '+' ; XPCP,{ control deviation P_SOLL - P_IST |umr:TL|} ROM:14F3E movx A, @R0 ; Move from/to external RAM ROM:14F3F mov RAM_34, A ; Move (Op1 <- Op2) ROM:14F41 mov R0, #0xC4 ; '-' ; XTVM,{ final duty cycle |umr:FKTP256, 1/256} ROM:14F43 movx A, @R0 ; Move from/to external RAM ROM:14F44 mov RAM_35, A ; Move (Op1 <- Op2) ROM:14F46 mov R1, #0xCD ; '-' ; XSPERRT,{ Time counter for setpoint lowering ROM:14F48 movx A, @R1 ; Move from/to external RAM ROM:14F49 jz code_4F4D ; Jump if Acc is zero ROM:14F4B dec A ; Decrement Operand ROM:14F4C movx @R1, A ; Move from/to external RAM ROM:14F4D mov R1, #0xCE ; '+' ; XSTEIGT, {time counter setpoint increase by 1 incr. | conv S} ROM:14F4F movx A, @R1 ; Move from/to external RAM ROM:14F50 jz code_4F54 ; Jump if Acc is zero ROM:14F52 dec A ; Decrement Operand ROM:14F53 movx @R1, A ; Move from/to external RAM ROM:14F54 mov R1, #0xDB ; '¦' ; XPMAINCOUN, {time reduction (factor 4) for overboost times} ROM:14F56 movx A, @R1 ; Move from/to external RAM ROM:14F57 inc A ; Increment Operand ROM:14F58 movx @R1, A ; Move from/to external RAM ROM:14F59 jb RAM_2F.2, code_4F5F+1 ; OVBO_E,{O:xf_ovb.2 Overboost-speed regulation} ROM:14F5C anl A, #3 ; Logical AND (op1 &= op2) ROM:14F5E jnz code_4F67 ; Jump if Acc is not zero ROM:14F60 mov R1, #0xDA ; '+' ; XOVBSZ,{ Overboost time counter |umr:S} ROM:14F62 movx A, @R1 ; Move from/to external RAM ROM:14F63 jz code_4F67 ; Jump if Acc is zero ROM:14F65 dec A ; Decrement Operand ROM:14F66 movx @R1, A ; XOVBSZ,{ Overboost time counter |umr:S} ROM:14F67 mov R0, #0xCB ; '-' ; XFZ_PMX,{ debounce counter 1 |umr:SEC72, 72ms|} ROM:14F69 jb RAM_28.0, code_4F7D+2 ; FLGINI,{D:FLAG4.0 Indikator Initialisierung} ROM:14F6C jb RAM_29.7, code_4F7D+2 ; LMMERR,{D:FLAG5.7 Indicator for MAF error} ROM:14F6F mov DPTR, #0xF868 ; IAT actual value, or replacement ROM:14F72 movx A, @DPTR ; Move from/to external RAM ROM:14F73 mov B, A ; IAT in B ROM:14F75 mov DPTR, #0x3213 ; TADLDU,{TANS-threshold for locking error memory entry DLD} ROM:14F78 clr A ; .. in A ROM:14F79 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14F7A cjne A, B, code_4F7D ; Compare IAT threshold (Oprand 1) to IAT (Oprand 2) ROM:14F7D jc code_4F83 ; Jump if IAT threshold < IAT ROM:14F7F clr RAM_2E.5 ; If IAT threshold > IAT, clear P_IST bigger maximum variable ROM:14F81 sjmp code_4FA5+1 ; And jump around next routine ROM:14F83 ; --------------------------------------------------------------------------- ROM:14F83 mov DPTR, #0x42E8 ; TLULN,{overboost - tL} ROM:14F86 mov A, RAM_32 ; Engine speed range ROM:14F88 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14F89 mov B, A ; B-Register ROM:14F8B mov DPTR, #0x3212 ; DTLDLD,{Delta TL for slide maximum LDR controlled variable (Delta TLUL) ROM:14F8E clr A ; Clear Operand (0) ROM:14F8F movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14F90 cpl A ; Complement Operand ROM:14F91 setb C ; Set Direct Bit ROM:14F92 addc A, B ; B-Register ROM:14F94 jc code_4F96+1 ; Jump if Carry is set ROM:14F96 clr A ; Clear Operand (0) ROM:14F97 cjne A, RAM_33, code_4F9A ; RAM_33 from XP_IST,{ P-Part, Actual value (with limit below) |umr:TL|} ROM:14F9A jnb RAM_2E.5, code_4F9C+2 ; PMSICH,{O:xf_lmr.5 P_IST bigger maximum value} ROM:14F9D cpl C ; Complement Operand ROM:14F9E jnc code_4FA5+1 ; Jump if Carry is clear ROM:14FA0 movx A, @R0 ; XFZ_PMX,{ debounce counter 1 |umr:SEC72, 72ms|} ROM:14FA1 djnz ACC, code_4FAA+1 ; Accumulator ROM:14FA4 cpl RAM_2E.5 ; PMSICH,{O:xf_lmr.5 P_IST bigger maximum value} ROM:14FA6 mov DPTR, #0x3215 ; TDLDMX,{Time for the maximum boost pressure} ROM:14FA9 clr A ; Clear Operand (0) ROM:14FAA movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14FAB movx @R0, A ; XFZ_PMX,{ debounce counter 1 |umr:SEC72, 72ms|} ROM:14FAC mov R0, #0xD8 ; '+' ; XFZ_ULS,{ debounce counter for Overcharge protection |umr:S} ROM:14FAE jnb RAM_2E.5, code_4FD9+1 ; PMSICH,{O:xf_lmr.5 P_IST bigger maximum value} ROM:14FB1 mov DPTR, #0xF868 ; XTANS,{Intake Air Temperature} ROM:14FB4 movx A, @DPTR ; Move from/to external RAM ROM:14FB5 mov B, A ; B-Register ROM:14FB7 mov DPTR, #0x3213 ; TADLDU,{Intake air temp threshold for locking error memory entry DLD} ROM:14FBA clr A ; Clear Operand (0) ROM:14FBB movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14FBC cjne A, B, code_4FBF ; B-Register ROM:14FBF jnc code_4FD9+1 ; Jump if Carry is clear ROM:14FC1 mov DPTR, #0x42E8 ; TLULN,{overboost - tL} ROM:14FC4 mov A, RAM_32 ; Engine speed range ROM:14FC6 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14FC7 mov B, A ; B-Register ROM:14FC9 mov DPTR, #0x3214 ; DTLUL,{Hysterese for overboost - tL} ROM:14FCC clr A ; Clear Operand (0) ROM:14FCD movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14FCE cpl A ; Complement Operand ROM:14FCF setb C ; Set Direct Bit ROM:14FD0 addc A, B ; B-Register ROM:14FD2 jc code_4FD5 ; Jump if Carry is set ROM:14FD4 clr A ; Clear Operand (0) ROM:14FD5 cjne A, RAM_33, code_4FD6+2 ; RAM_33 from XP_IST,{ P-Part, Actual value (with limit below) |umr:TL|} ROM:14FD8 jc code_4FDC+2 ; Jump if Carry is set ROM:14FDA clr RAM_2A.7 ; ti-off as Over Load Protection ROM:14FDC sjmp code_4FEE+2 ; Short jump ROM:14FDE ; --------------------------------------------------------------------------- ROM:14FDE jb RAM_2A.7, code_4FF5+1 ; ti-off as Over Load Protection ROM:14FE1 mov A, B ; B-Register ROM:14FE3 cjne A, RAM_33, code_4FE4+2 ; RAM_33 XP_IST,{ P-Part, Actual value (with limit below) |umr:TL|} ROM:14FE6 jnc code_4FEE+2 ; Jump if Carry is clear ROM:14FE8 movx A, @R0 ; @R0 XFZ_ULS,{ debounce counter for Overcharge protection |umr:S} ROM:14FE9 djnz ACC, code_4FF5 ; Accumulator ROM:14FEC setb RAM_2A.7 ; ti-off as Over Load Protection ROM:14FEE sjmp code_4FF5 ; Short jump ROM:14FF0 ; --------------------------------------------------------------------------- ROM:14FF0 mov DPTR, #0x3216 ; TULV,{Delay overboost cut-off} ROM:14FF3 clr A ; Clear Operand (0) ROM:14FF4 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:14FF5 movx @R0, A ; XFZ_ULS,{ debounce counter for Overcharge protection |umr:S} ROM:14FF6 mov R0, #0xDD ; '¦' ; XZ_LMRGE,{ LMR-Blocking time counter for I-Part bei GE ROM:14FF8 movx A, @R0 ; Move from/to external RAM ROM:14FF9 jz code_4FFE ; Jump if Acc is zero ROM:14FFB dec A ; Decrement Operand ROM:14FFC sjmp code_500C ; Short jump ROM:14FFE ; --------------------------------------------------------------------------- ROM:14FFE mov DPTR, #0xFAFF ; X_GSTBIN,{Transmission status ROM:15001 movx A, @DPTR ; Move from/to external RAM ROM:15002 jz code_500F ; Jump if Acc is zero ROM:15004 mov DPTR, #0x42C8 ; TLDRGEN,{Blocking time of the I component for transmission intervention} ROM:15007 mov A, RAM_32 ; Speed range ROM:15009 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:1500A jz code_500F ; Jump if Acc is zero ROM:1500C movx @R0, A ; Move from/to external RAM ROM:1500D setb RAM_2E.4 ; I_STOP,{O:xf_lmr.4 Integratorstop} ROM:1500F mov R0, #0xDE ; '¦' ; LMRPGE,{ LMR-lock time counter for P-part in transmission intervention ROM:15011 movx A, @R0 ; Move from/to external RAM ROM:15012 jz code_5017 ; Jump if Acc is zero ROM:15014 dec A ; Decrement Operand ROM:15015 sjmp code_5024+1 ; Short jump ROM:15017 ; --------------------------------------------------------------------------- ROM:15017 mov DPTR, #0xFAFF ; X_GSTBIN,{Transmission status} ROM:1501A movx A, @DPTR ; Move from/to external RAM ROM:1501B jz code_5028 ; Jump if Acc is zero ROM:1501D mov DPTR, #0x42D0 ; TLDRGEPN,{Blocking time of the P component for transmission intervention} ROM:15020 mov A, RAM_32 ; Speed range ROM:15022 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15023 jz code_5028 ; Jump if Acc is zero ROM:15025 movx @R0, A ; XZ_LMRPGE,{ LMR-Blocking time counter for P-Part bei GE ROM:15026 setb RAM_2F.7 ; STOP_P,{O:xf_ovb.7 P-Part stopped for gearbox shift intervention},$FFBE ROM:15028 jb RAM_2E.5, code_502E ; PMSICH,{O:xf_lmr.5 P_IST bigger maximum value} ROM:1502B jb RAM_2E.1, code_5031 ; B_LMRA,{O:xf_lmr.1 LMR aktiv} ROM:1502E ljmp ROM_1516D ; Long Jump ROM:15031 ; --------------------------------------------------------------------------- ROM:15031 mov R1, #0xC8 ; '+' ; XP_SOLL,{ LMR-Sollwert mit adaptiver Absenkung |umr:TL|},$FFC8, ROM:15033 movx A, @R1 ; Move from/to external RAM ROM:15034 clr C ; Clear Operand (0) ROM:15035 subb A, RAM_33 ; RAM_33 = FFC2 = XP_IST,{ P-Part, Actual value (with limit below) |umr:TL|},$FFC2 ROM:15037 mov RAM_2E.2, C ; Move (Op1 <- Op2) ROM:15039 jnc code_503B+2 ; Jump if Carry is clear ROM:1503B cpl A ; Complement Operand ROM:1503C inc A ; Increment Operand ROM:1503D mov RAM_34, A ; RAM_34 = FFC3 = XPCP,{ control deviation P_SOLL - P_IST |umr:TL|},$FFC3 ROM:1503F jnz code_5043 ; Jump if Acc is not zero ROM:15041 setb RAM_2E.4 ; I_STOP,{O:xf_lmr.4 Integratorstop ROM:15043 jb RAM_2F.7, code_504A ; STOP_P,{O:xf_ovb.7 P-Part stopped for gearbox shift intervention},$FFBE ROM:15046 mov C, RAM_2E.2 ; POLARI,{O:xf_lmr.2 Negative deviation} ROM:15048 mov RAM_2F.6, C ; POLARI_P,{O:xf_ovb.6 Deviation negative for P-part} ROM:1504A mov R1, #0xCC ; '¦' ; XFZ_LDR,{ Entprellzeitzähler 2 |umr:SEC72, 72ms|},$FFCC ROM:1504C mov DPTR, #0x320F ; NDLDRA,{Engine RPM threshold for dia LDR - Deviation} 2520 RPM ROM:1504F clr A ; Clear Operand (0) ROM:15050 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15051 cjne A, RAM_3B, code_5053+1 ; Compare Operands and JNE ROM:15054 jnc code_506B+1 ; Jump if Carry is clear ROM:15056 mov DPTR, #0x3210 ; DPDLDRP,{pressure difference for dia LDR - positive control deviation} ROM:15059 clr A ; Clear Operand (0) ROM:1505A jnb RAM_2E.2, code_5060 ; POLARI,{O:xf_lmr.2 Negative deviation} ROM:1505D mov DPTR, #0x3211 ; DPDLDRN,{pressure difference for dia LDR - negative control deviation} ROM:15060 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15061 cjne A, RAM_34, code_5063+1 ; Compare Operands and JNE ROM:15064 jnc code_506B+1 ; Jump if Carry is clear ROM:15066 movx A, @R1 ; Move from/to external RAM ROM:15067 djnz ACC, code_5070+1 ; Accumulator ROM:1506A setb RAM_2E.6 ; LDSICH,{O:xf_lmr.6 control deviation unplausibel},$FFBD ROM:1506C mov DPTR, #0xF184 ; TDLDRA,{Time threshold for slide LDR - Deviation} ROM:1506F clr A ; Clear Operand (0) ROM:15070 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15071 movx @R1, A ; Move from/to external RAM ROM:15072 jnb RAM_2E.6, code_5077+1 ; LDSICH,{O:xf_lmr.6 Deviation implausible} ROM:15075 ljmp ROM_1516D ; Long Jump ROM:15078 ; --------------------------------------------------------------------------- ROM:15078 mov A, RAM_34 ; XPCP,{ control deviation P_SOLL - P_IST |umr:TL|},$FFC3 ROM:1507A mov B, #4 ; B-Register ROM:1507D mul AB ; Multiply Acc by B ROM:1507E jnb PSW.2, code_5082+1 ; PSW.OV Overflow Flag ROM:15081 mov A, #0xFF ; Move (Op1 <- Op2) ROM:15083 push ACC ; Accumulator ROM:15085 mov DPTR, #0xFCC4 ; XNMOTGR1,{|16XI|SZ-Nr| NMOT supporting points 1} ROM:15088 movx A, @DPTR ; Move from/to external RAM ROM:15089 mov DPTR, #0x42D8 ; PLDRN,{P - Part Ladedruckregler} ROM:1508C lcall ROM_12CAE ; Long Subroutine Call ROM:1508F pop B ; B-Register ROM:15091 mul AB ; Multiply Acc by B ROM:15092 mov A, B ; B-Register ROM:15094 jnb RAM_2E.2, code_5098 ; POLARI,{O:xf_lmr.2 Negative deviation} ROM:15097 cpl A ; Complement Operand ROM:15098 mov R1, #0xCA ; '-' ; FFCA XPCP_TV,{ P-Part } ROM:1509A jbc RAM_2F.7, code_50A5 ; STOP_P,{O:xf_ovb.7 P-Part stopped for gearbox shift intervention} ROM:1509D mov R5, A ; Move (Op1 <- Op2) ROM:1509E mov C, RAM_2F.6 ; POLARI_P,{O:xf_ovb.6 Deviation negative for P-part} ROM:150A0 cpl C ; Complement Operand ROM:150A1 rrc A ; Rotate Acc right through Carry ROM:150A2 movx @R1, A ; FFCA XPCP_TV,{ P-Part } ROM:150A3 sjmp code_50AB+1 ; Short jump ROM:150A5 ; --------------------------------------------------------------------------- ROM:150A5 movx A, @R1 ; FFCA XPCP_TV,{ P-Part } ROM:150A6 clr C ; Clear Operand (0) ROM:150A7 rlc A ; Rotate Acc left through Carry ROM:150A8 cpl C ; Complement Operand ROM:150A9 mov RAM_2F.6, C ; POLARI_P,{O:xf_ovb.6 Deviation negative for P-part} ROM:150AB mov R5, A ; Move (Op1 <- Op2) ROM:150AC mov R1, #0xC9 ; '+' ; XTV_VS,{ Duty cycle feedforward |umr:FKTP256, 1/256} ROM:150AE movx A, @R1 ; Move from/to external RAM ROM:150AF add A, R5 ; Add Second Operand to Acc ROM:150B0 mov R5, A ; Move (Op1 <- Op2) ROM:150B1 clr A ; Clear Operand (0) ROM:150B2 jb RAM_2F.6, code_50B7 ; POLARI_P,{O:xf_ovb.6 Deviation negative for P-part} ROM:150B5 cpl C ; Complement Operand ROM:150B6 cpl A ; Complement Operand ROM:150B7 jc code_50BA ; Jump if Carry is set ROM:150B9 mov R5, A ; Move (Op1 <- Op2) ROM:150BA mov R1, RAM_30 ; XPCIHI,{ I-Part High ROM:150BC mov R0, RAM_31 ; XPCILO,{ I-Part Low} ROM:150BE jbc RAM_2E.4, code_50E9+2 ; I_STOP,{O:xf_lmr.4 Integratorstop} ROM:150C1 mov DPTR, #0x320C ; LDRIV,{Distance between breakpoints |Psoll - Pist| ROM:150C4 clr A ; Clear Operand (0) ROM:150C5 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:150C6 mov B, RAM_34 ; XPCP,{ control deviation P_SOLL - P_IST |umr:TL|} ROM:150C9 mul AB ; Multiply Acc by B ROM:150CA mov A, B ; B-Register ROM:150CC cjne A, #4, code_50CF ; Compare Operands and JNE ROM:150CF jc code_50D3+1 ; Jump if Carry is set ROM:150D1 mov B, #3 ; B-Register ROM:150D4 mov A, #8 ; Move (Op1 <- Op2) ROM:150D6 mul AB ; Multiply Acc by B ROM:150D7 add A, RAM_32 ; Engine Speed Range ROM:150D9 mov DPTR, #0x42A8 ; KFP2,{Duty cycle - change / cycle} ROM:150DC movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:150DD mov B, #0x10 ; B-Register ROM:150E0 mov C, RAM_2E.2 ; POLARI,{O:xf_lmr.2 Negative deviation} ROM:150E2 mov RAM_29.4, C ; FLAG5.4 sign flag for control routines ROM:150E4 lcall ROM_1019C ; Long Subroutine Call ROM:150E7 mov RAM_31, R0 ; XPCILO,{ I-Part Low} ROM:150E9 mov RAM_30, R1 ; XPCIHI,{ I-Part High} ROM:150EB mov A, R5 ; Move (Op1 <- Op2) ROM:150EC mov B, #0x80 ; 'Ç' ; B-Register ROM:150EF clr RAM_29.4 ; FLAG5.4 sign flag for control routines ROM:150F1 lcall ROM_1019C ; Long Subroutine Call ROM:150F4 mov A, R0 ; Move (Op1 <- Op2) ROM:150F5 rlc A ; Rotate Acc left through Carry ROM:150F6 mov A, R1 ; Move (Op1 <- Op2) ROM:150F7 rlc A ; Rotate Acc left through Carry ROM:150F8 jc code_50FB ; Jump if Carry is set ROM:150FA clr A ; Clear Operand (0) ROM:150FB mov RAM_35, A ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:150FD mov DPTR, #0x320E ; TVMAX,{Lim. Duty cycle (max) for LDR} ROM:15100 clr A ; Clear Operand (0) ROM:15101 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15102 cjne A, RAM_35, code_5107 ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:15105 sjmp code_5111+2 ; Short jump ROM:15107 ; --------------------------------------------------------------------------- ROM:15107 jc code_5111+2 ; Jump if Carry is set ROM:15109 mov DPTR, #0x320D ; TVMIN,{Lim. Duty cycle (min.)} ROM:1510C clr A ; Clear Operand (0) ROM:1510D movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:1510E cjne A, RAM_35, code_5111 ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:15111 jc code_5114+2 ; Jump if Carry is set ROM:15113 lcall ROM_1518E ; Long Subroutine Call ROM:15116 mov R0, #0xBB ; '+' ; TVMBEG,{LMR: Change Limited Duty Cycle |umr: FKTP256|} ROM:15118 mov DPTR, #0x42F0 ; TVBLDRN,{Duty cycle limit, change, for LDR (step height per scan time) ROM:1511B mov A, RAM_32 ; Engine speed range ROM:1511D movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:1511E add A, @R0 ; Add Second Operand to Acc ROM:1511F jc code_5169 ; Jump if Carry is set ROM:15121 cjne A, RAM_35, code_5124 ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:15124 jnc code_5169 ; Jump if Carry is clear ROM:15126 setb RAM_2E.4 ; I_STOP,{O:xf_lmr.4 Integratorstop} ROM:15128 mov B, A ; B-Register ROM:1512A mov DPTR, #0x4300 ; TVSTLDRN,{Duty cycle starting value for LDR change limiting} ROM:1512D mov A, RAM_32 ; Engine speed range ROM:1512F movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15130 cjne A, RAM_35, code_5133 ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:15133 jnc code_513C ; Jump if Carry is clear ROM:15135 cjne A, B, code_5138 ; B-Register ROM:15138 jc code_513C ; Jump if Carry is set ROM:1513A mov B, A ; B-Register ROM:1513C mov @R0, B ; B-Register ROM:1513E mov DPTR, #0x42F8 ; DTVILDRN,{Delta duty cycle setting condition for I-Share (B_ISET = 1) ROM:15141 mov A, RAM_32 ; Engine speed range ROM:15143 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15144 add A, @R0 ; Add Second Operand to Acc ROM:15145 jc code_514F+1 ; Jump if Carry is set ROM:15147 cjne A, RAM_35, code_514A ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:1514A jnc code_514F+1 ; Jump if Carry is clear ROM:1514C setb RAM_2E.3 ; B_ISET,{O:xf_lmr.3 Set condition I share} ROM:1514E sjmp code_516C+1 ; Short jump ROM:15150 ; --------------------------------------------------------------------------- ROM:15150 jb RAM_2E.2, code_516C+1 ; xf_lmr.2 Negative deviation} ROM:15153 mov DPTR, #0x4308 ; DPILDRN,{Deviation for Setting the I component} ROM:15156 mov A, RAM_32 ; Engine speed range ROM:15158 movc A, @A+DPTR ; Move code byte relative to second op to Acc ROM:15159 cjne A, RAM_34, code_515B+1 ; RAM_34 from XPCP,{ control deviation P_SOLL - P_IST |umr:TL|} ROM:1515C jc code_516C+1 ; Jump if Carry is set ROM:1515E jnb RAM_2E.3, code_516C+1 ; B_ISET,{O:xf_lmr.3 Set condition I share} ROM:15161 mov A, @R0 ; Move (Op1 <- Op2) ROM:15162 lcall ROM_1518E ; Long Subroutine Call ROM:15165 clr RAM_2E.3 ; B_ISET,{O:xf_lmr.3 Set condition I share} ROM:15167 sjmp code_516C+1 ; Short jump ROM:15169 ; --------------------------------------------------------------------------- ROM:15169 mov @R0, RAM_35 ; @R0 = 0xBB TVMBEG,{LMR: Change Limited Duty Cycle |umr: FKTP256|} ROM:15169 ; RAM_35 from XTVM,{final duty cycle |umr:FKTP256, 1/256} ROM:1516B clr RAM_2E.3 ; B_ISET,{O:xf_lmr.3 Set condition I share} ROM:1516D ROM:1516D ROM_1516D: ; CODE XREF: ROM:1502Ej ROM:1516D ; ROM:15075j ROM:1516D mov R0, #0xBD ; '+' ; Move (Op1 <- Op2) ROM:1516F mov A, RAM_2E ; Move (Op1 <- Op2) ROM:15171 movx @R0, A ; Move from/to external RAM ROM:15172 mov R0, #0xBE ; '+' ; Move (Op1 <- Op2) ROM:15174 mov A, RAM_2F ; Move (Op1 <- Op2) ROM:15176 movx @R0, A ; Move from/to external RAM ROM:15177 mov R0, #0xBF ; '+' ; Move (Op1 <- Op2) ROM:15179 mov A, RAM_30 ; Move (Op1 <- Op2) ROM:1517B movx @R0, A ; Move from/to external RAM ROM:1517C mov R0, #0xC0 ; '+' ; Move (Op1 <- Op2) ROM:1517E mov A, RAM_31 ; Move (Op1 <- Op2) ROM:15180 movx @R0, A ; Move from/to external RAM ROM:15181 mov R0, #0xC3 ; '+' ; Move (Op1 <- Op2) ROM:15183 mov A, RAM_34 ; Move (Op1 <- Op2) ROM:15185 movx @R0, A ; Move from/to external RAM ROM:15186 mov R0, #0xC4 ; '-' ; Move (Op1 <- Op2) ROM:15188 mov A, RAM_35 ; Move (Op1 <- Op2) ROM:1518A movx @R0, A ; Move from/to external RAM ROM:1518B ljmp ROM_1519B ; Long Jump ROM:1518E ROM:1518E ; =============== S U B R O U T I N E =======================================