Ok and what line does blends out the injection?
Announcement
Collapse
No announcement yet.
The parameters of the launch control with stock turbo kkk7000.
Collapse
X
-
Stock injection cut is used in another place with a switch. That routine only handles retard, knock control disable and cut.
Originally posted by vwnut8392 View Post
thats not right. launch control spark cut happens before knock control is disabled in code. knock control is disabled only at high RPM for spark cut rev limiter and flat shift.
- 1 like
Comment
-
Originally posted by prj View PostStock injection cut is used in another place with a switch. That routine only handles retard, knock control disable and cut.
Not true, better brush up on disasm skills.
Code:ode:00008610 ; =============== S U B R O U T I N E ======================================= code:00008610 code:00008610 code:00008610 Motorsport_Features_Code: ; CODE XREF: MAP_Sensor_Read:Jmp_M_Sprt_Code↑p code:00008610 code:00008610 ; FUNCTION CHUNK AT code:0000866C SIZE 0000000C BYTES code:00008610 code:00008610 C0 82 push DPL ; Data Pointer, Low Byte code:00008612 C0 83 push DPH ; Data Pointer, High Byte code:00008614 E5 3A mov A, RAM_RPM_1 ; Move (Op1 <- Op2) code:00008616 code:00008616 Hard_RPM_Limit: ; Spark Cut RPM Limit code:00008616 B4 C8 00 cjne A, #0xC8, code_8619 code:00008619 code:00008619 code_8619: ; CODE XREF: Motorsport_Features_Code:Hard_RPM_Limit↑j code:00008619 50 26 jnc NLS_Limiter_Crank_Angle ; -If at RPM limit go to mod crank angle code:00008619 ; -If below RPM limit go to launch control code code:0000861B code:0000861B W_Speed_LC: ; Speed for launch control code:0000861B 90 01 70 mov DPTR, #0x170 ; Speed in 2 km/h code:0000861B ; XRAM=XVMESS code:0000861E E0 movx A, @DPTR ; Move from/to external RAM code:0000861F B4 02 0C cjne A, #2, code_862E ; -If below wheel speed go to launch control code:0000861F ; -If above wheel speed go to NLS code code:00008622 80 48 sjmp LC_Ign_Cut_RPM ; Short jump code:00008624 ; --------------------------------------------------------------------------- code:00008624 code:00008624 code_8624: ; CODE XREF: Motorsport_Features_Code+66↓j code:00008624 B4 71 00 cjne A, #0x71, code_8627 ; 'q' ; Launch control IGN retard RPM code:00008627 code:00008627 code_8627: ; CODE XREF: Motorsport_Features_Code:code_8624↑j code:00008627 40 1B jc code_8644 ; Jump if Carry is set code:00008629 code:00008629 LC_Ign_Deg: ; Launch control IGN angle code:00008629 75 53 29 mov ZWOUT, #0x29 ; ')' code:0000862C 80 16 sjmp code_8644 ; Short jump code:0000862E ; --------------------------------------------------------------------------- code:0000862E code:0000862E code_862E: ; CODE XREF: Motorsport_Features_Code+F↑j code:0000862E E5 D9 mov A, ADDAT ; If ECU pin 39 is supplied with 12v go to NLS code. code:00008630 B4 FF 11 cjne A, #0xFF, code_8644 ; Compare Operands and JNE code:00008633 78 EC mov R0, #0xEC ; Move (Op1 <- Op2) code:00008635 code:00008635 NLS_Min_TPS: ; min TPS for NLS code:00008635 B6 C0 00 cjne @R0, #0xC0, code_8638 code:00008638 code:00008638 code_8638: ; CODE XREF: Motorsport_Features_Code:NLS_Min_TPS↑j code:00008638 40 0A jc code_8644 ; -If below this TPS % go to normal operation code:00008638 ; -If above go to NLS RPM compare code:0000863A E5 3A mov A, RAM_RPM_1 ; Move (Op1 <- Op2) code:0000863C code:0000863C NLS_MIN_RPM: ; min RPM for NLS code:0000863C B4 C8 00 cjne A, #0xC8, code_863F code:0000863F code:0000863F code_863F: ; CODE XREF: Motorsport_Features_Code:NLS_MIN_RPM↑j code:0000863F 40 03 jc code_8644 ; -If below this RPM go to normal operation code:0000863F ; -If above this ROM go to crank angle Degree (spark cut) code:00008641 code:00008641 NLS_Limiter_Crank_Angle: ; CODE XREF: Motorsport_Features_Code:code_8619↑j code:00008641 ; Motorsport_Features_Code:code_8674↓j code:00008641 75 53 52 mov ZWOUT, #0x52 ; 'R' ; IGN angle for NLS/Spark revlimit code:00008644 code:00008644 code_8644: ; CODE XREF: Motorsport_Features_Code:code_8627↑j code:00008644 ; Motorsport_Features_Code+1C↑j ... code:00008644 30 FC 0F jnb P5.4, code_8656 ; Jump if no knock detected. If knock detected go to RPM check. code:00008644 ; -Knock signal from Boost processor code:00008647 50 0B jnc code_8654 ; Jump if Carry is clear code:00008649 E5 3A mov A, RAM_RPM_1 ; Move (Op1 <- Op2) code:0000864B code:0000864B Spark_Cut_Knock_Dis: ; Spark Cut RPM Limit with knock disable code:0000864B B4 B1 00 cjne A, #0xB1, code_864E code:0000864E code:0000864E code_864E: ; CODE XREF: Motorsport_Features_Code:Spark_Cut_Knock_Dis↑j code:0000864E 50 04 jnc code_8654 ; -If above this RPM knock control is disabled code:0000864E ; -If below this RPM knock control is enabled code:00008650 C2 EF clr P4.7 ; Knock disable is sent to boost processor code:00008652 80 02 sjmp code_8656 ; Short jump code:00008654 ; --------------------------------------------------------------------------- code:00008654 code:00008654 code_8654: ; CODE XREF: Motorsport_Features_Code+37↑j code:00008654 ; Motorsport_Features_Code:code_864E↑j code:00008654 D2 EF setb P4.7 ; Knock enable is sent to boost processor. code:00008656 code:00008656 code_8656: ; CODE XREF: Motorsport_Features_Code:code_8644↑j code:00008656 ; Motorsport_Features_Code+42↑j code:00008656 C3 clr C ; Clear Operand (0) code:00008657 E5 53 mov A, ZWOUT ; Move (Op1 <- Op2) code:00008659 95 58 subb A, SW ; Subtract Second Operand from Acc with Borrow code:0000865B D0 83 pop DPH ; Data Pointer, High Byte code:0000865D D0 82 pop DPL ; Data Pointer, Low Byte code:0000865F 22 ret ; Return from subroutine code:0000865F ; End of function Motorsport_Features_Code code:0000865F code:0000866C ; --------------------------------------------------------------------------- code:0000866C ; START OF FUNCTION CHUNK FOR Motorsport_Features_Code code:0000866C code:0000866C LC_Ign_Cut_RPM: ; CODE XREF: Motorsport_Features_Code+12↑j code:0000866C 75 F0 B4 mov B, #0xB4 ; Launch control IGN cut RPM code:0000866F E5 3A mov A, RAM_RPM_1 ; Move (Op1 <- Op2) code:00008671 B5 F0 00 cjne A, B, code_8674 ; B-Register code:00008674 code:00008674 code_8674: ; CODE XREF: Motorsport_Features_Code+61↑j code:00008674 50 CB jnc NLS_Limiter_Crank_Angle ; Jump if Carry is clear code:00008676 80 AC sjmp code_8624 ; Short jump code:00008676 ; END OF FUNCTION CHUNK FOR Motorsport_Features_Code code:00008676 ; ---------------------------------------------------------------------------
"The really good drivers got the bugs on the side windows." Walter Röhrl
Comment
-
Originally posted by Acki View PostWhere (exactly) you see a spark cut? There is only a spark "delay"...
Originally posted by Acki View PostWhere (exactly) you see a fuel cut? There is no impact on the fuel side...
Dmitry has done everything necessary to work LC and NLS, but I think he left a little bit to add from us to use it
He watching when will we do it )))))
Comment
-
Originally posted by d_anev View Post- I think that result from code:00008659 subb A, RAM_58 and then "code:0000080E jc code_815" instruction in main code will explain logic's and cut or delay with 52 - 1E hex for degree ATDC.
RAM_58 = DWELL
But you don't touch the DWELL value, you only change RAM_53 (0x29h or 0x52h) - that I mean with retard the ignition
The result will be stored in RAM_52 and is the time of the closing angle begin (dwell begin?) - the effect I will check in my car, I think it's faster than thinking too much about the code
For the understanding of what happens I think it's important to see the difference - a cut (disable the output) and a retard/shift are two things.
The really impressing thing is - to get the idea for this kind of "spark cut" and to see the possibility years ago without FR etc.
Big thanks to prj for doing this.
- the code for fuel cut exist in Prjmod main code, but there is no jump to it and some little mods are necessary to work fully. Look carefully in the code and find where the main rpm limits are set, add jump to "hidden" code. Change logic's some sjmp's before some ram's and all will work perfectly.
But the question was more in the direction of vwnuts cause he's sure the fuel cut is in his copied code :-D
Comment
-
Originally posted by vwnut8392 View Post
well here's the whole routine, i know you wrote it but looking at it from my disassembly all spark cut happens before knock disable so i'll go with what i said. unless you made a different version than what you posted public that your thinking about.
KR is switched off in both cases, LC and NLS. The logic is always evaluated at the end.
For fuel cut it depends which base file you are using, one of the files had adjustable stuff and so on...
Ideally it needs a revisit from me, but not really had time.Last edited by prj; 14 December 2018, 18:18.
Comment
-
fuel cut launch control is totally separate from the spark cut code and not active in PRJmod. if you look at my notes at the top of the code it does tell you how to activate it though.
this is the fuel cut launch control
Code:de:00007E70 ; --------------------------------------------------------------------------- code:00007E70 This is soft launch control. (Fuel Cut) code:00007E70 To enable change 74 0A 93 at 0x399F to 02 7E 70. code:00007E70 code:00007E70 Soft_Launch_Control_Code: ; Wheel speed signal from X-ram 0x0170 code:00007E70 75 A0 01 mov P2, #1 code:00007E73 78 70 mov R0, #0x70 ; 'p' ; Move (Op1 <- Op2) code:00007E75 E2 movx A, @R0 ; Move from/to external RAM code:00007E76 75 A0 04 mov P2, #4 ; Slimming factor from FNMXTL 0x041A code:00007E79 78 1A mov R0, #0x1A ; Move (Op1 <- Op2) code:00007E7B B4 02 19 cjne A, #2, code_7E97 ; Speed for launch control #2 code:00007E7E E5 39 mov A, EGR_Temp ; Move (Op1 <- Op2) code:00007E80 75 F0 0A mov B, #0xA ; B-Register code:00007E83 A4 mul AB ; Multiply Acc by B code:00007E84 FB mov R3, A ; Move (Op1 <- Op2) code:00007E85 AA F0 mov R2, B ; B-Register code:00007E87 74 40 mov A, #0x40 ; '@' ; Move (Op1 <- Op2) code:00007E89 9B subb A, R3 ; Subtract Second Operand from Acc with Borrow code:00007E8A FB mov R3, A ; Move (Op1 <- Op2) code:00007E8B 74 0D mov A, #0xD ; Move (Op1 <- Op2) code:00007E8D 9A subb A, R2 ; Subtract Second Operand from Acc with Borrow code:00007E8E FA mov R2, A ; Move (Op1 <- Op2) code:00007E8F 08 inc R0 ; Increment Operand code:00007E90 F2 movx @R0, A ; Move from/to external RAM code:00007E91 08 inc R0 ; Increment Operand code:00007E92 EB mov A, R3 ; Move (Op1 <- Op2) code:00007E93 F2 movx @R0, A ; Move from/to external RAM code:00007E94 02 39 AB ljmp code_39AB ; Long Jump code:00007E97 ; --------------------------------------------------------------------------- code:00007E97 code:00007E97 code_7E97: ; CODE XREF: code:00007E7B↑j code:00007E97 74 0A mov A, #0xA ; Move (Op1 <- Op2) code:00007E99 93 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:00007E9A 02 39 A2 ljmp code_39A2 ; Long Jump code:00007E9A ; ---------------------------------------------------------------------------
and this is the RPM for the fuel cut to happen.
Code:code:0000860A 09 AA Soft_LC_RPM: .word 0x9AA
"The really good drivers got the bugs on the side windows." Walter Röhrl
Comment
-
Originally posted by vwnut8392 View Postfuel cut launch control is totally separate from the spark cut code and not active in PRJmod. if you look at my notes at the top of the code it does tell you how to activate it though
Originally posted by Acki View Post/edit: Thanks, only saw the first lines at mobile. The reference is missing in the stock prj files.
The code is for flatshift I guess? So no soft cut for launch.
Guys we have big gift ...... Dmitri already done everything ... he give as example how to use stock fuel cut procedure. He give example by calculation. and if you know values there is no problem to use it. But main from this is that there is no need to write new procedure, we can use stock one and change values for RPM limit to new values, depending on our needs.
We have example for for fuel cut procedure, with little thinking we easily can add change for HB of DPTR and in case of LC i.e. vehicle speed =02 hex and clutch pedal is pressed to read other RPM limit like 0x860A for example.
Then we must change HB and/or LB of DPTR in case of vehicle speed >02 hex and clutch pedal is pressed to read another offset/address named like flat shifting RPM limit
That is all
Comment
-
I also have another version of fuel cut launch control from PRJ as well thats not like the one found in the PRJmod. this one looks a bit more straight forward than the one in PRJmod.
Code:code:00007E70 ; --------------------------------------------------------------------------- code:00007E70 ; START OF FUNCTION CHUNK FOR code_2130 code:00007E70 code:00007E70 Soft_Launch_Control: ; CODE XREF: code_2130+186F↑j code:00007E70 75 A0 01 mov P2, #1 ; Port 2 code:00007E73 78 70 mov R0, #0x70 ; 'p' ; Move (Op1 <- Op2) code:00007E75 E2 movx A, @R0 ; Move from/to external RAM code:00007E76 75 A0 04 mov P2, #4 ; Port 2 code:00007E79 78 1A mov R0, #0x1A ; Move (Op1 <- Op2) code:00007E7B B4 03 00 cjne A, #3, code_7E7E ; Compare Operands and JNE code:00007E7E code:00007E7E code_7E7E: ; CODE XREF: code_2130+5D4B↑j code:00007E7E 50 03 jnc code_7E83 ; Jump if Carry is clear code:00007E80 90 86 00 mov DPTR, #0x8600 ; Move (Op1 <- Op2) code:00007E83 code:00007E83 code_7E83: ; CODE XREF: code_2130:code_7E7E↑j code:00007E83 74 0A mov A, #0xA ; Move (Op1 <- Op2) code:00007E85 93 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:00007E86 FA mov R2, A ; Move (Op1 <- Op2) code:00007E87 08 inc R0 ; Increment Operand code:00007E88 F2 movx @R0, A ; Move from/to external RAM code:00007E89 74 0B mov A, #0xB ; Move (Op1 <- Op2) code:00007E8B 93 movc A, @A+DPTR ; Move code byte relative to second op to Acc code:00007E8C FB mov R3, A ; Move (Op1 <- Op2) code:00007E8D 08 inc R0 ; Increment Operand code:00007E8E F2 movx @R0, A ; Move from/to external RAM code:00007E8F 50 03 jnc code_7E94 ; Jump if Carry is clear code:00007E91 90 83 8B mov DPTR, #0x838B ; Move (Op1 <- Op2) code:00007E94 code:00007E94 code_7E94: ; CODE XREF: code_2130+5D5F↑j code:00007E94 02 39 AB ljmp code_39AB ; Long Jump code:00007E94 ; END OF FUNCTION CHUNK FOR code_2130 code:00007E94 ; ---------------------------------------------------------------------------
Code:code:0000399F 02 7E 70 ljmp Soft_Launch_Control ; Long Jump
Last edited by vwnut8392; 17 December 2018, 19:37."The really good drivers got the bugs on the side windows." Walter Röhrl
Comment
-
Originally posted by vwnut8392 View PostI also have another version of fuel cut launch control from PRJ as well thats not like the one found in the PRJmod. this one looks a bit more straight forward than the one in PRJmod.
Originally posted by Acki View PostRAM_39 is the clutch switch I think. 0 or FF I think.
Now is our turn to understand, use and do it.
Last edited by d_anev; 18 December 2018, 07:05.
Comment
Comment