; INIT SERIAL PORT 75 AA F3 MOV S0RELL, 0xF3 75 BA 03 MOV S0RELH, 0x3 ; S0REL = 1011 -- 38.4kbaud with SMOD set 75 98 40 MOV S0CON, #0x40 ; Set mode 1, 8bit UART, receive disable, clear RI/TI 43 87 80 ORL PCON, #0x80 ; set SMOD 43 D8 80 ORL ADCON0, #0x80 ; enable baud generator (ADCON0.BD) C2 AC CLR IEN0.4 ; Turn off serial interrupt 75 A0 00 MOV P2, #0 ; Clear Port 2 register ; SEND START BYTES 74 5A MOV A, #0x5A F5 99 MOV S0BUF, A ; Send 0x55, start of sequence 30 99 FD JNB S0CON.1, $ ; Wait on S0CON.TI to be set: transmit has completed C2 99 CLR S0CON.1 ; Clear S0CON.TI 74 A5 MOV A, #0xA5 F5 99 MOV S0BUF, A ; Send 0xAA, start of sequence 30 99 FD JNB S0CON.1, $ ; Wait on S0CON.TI to be set: transmit has completed C2 99 CLR S0CON.1 ; Clear S0CON.TI ; DZW_KR KR-Ignition-Corr.Val E5 10 MOVX A, RAM_10 F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; N RPM E5 3B MOVX A, RAM_3B F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; TL LOAD E5 40 MOVX A, RAM_40 F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; UHLM MAF VOLTAGE E5 4B MOVX A, RAM_4B F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; ZWOUT OUTPUT FIRING ANGLE E5 54 MOVX A, RAM_54 F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; TI INJECTION TIME HOB E5 6E MOVX A, RAM_6E F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; TI_L INJECTION TIME LOB E5 6F MOVX A, RAM_6F F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; Q16 AIR MASS FLOW 1.6KG/H 78 97 MOV R0, #0x97 86 99 MOV S0BUF, @R0 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; VMESS SPEED KM/H 78 B7 MOV R0, #0xB7 86 99 MOV S0BUF, @R0 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; XML_SCATT AIRFLOW IN 4KG/H 90 FB A8 MOV DPTR, #0xFBA8 E0 MOVX A, @DPTR F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; XWDK ABSOLUTE THROTTLE ANGLE 90 F9 22 MOV DPTR, #0xF922 E0 MOVX A, @DPTR F5 99 MOV S0BUF, A 30 99 FD JNB S0CON.1, $ C2 99 CLR S0CON.1 ; TRAILING BYTES 74 A5 MOV A, #0xA5 F5 99 MOV S0BUF, A ; Send 0xAA, end of sequence 30 99 FD JNB S0CON.1, $ ; Wait on S0CON.TI to be set: transmit has completed C2 99 CLR S0CON.1 ; Clear S0CON.TI 74 5A MOV A, #0x5A F5 99 MOV S0BUF, A ; Send 0x55, end of sequence 30 99 FD JNB S0CON.1, $ ; Wait on S0CON.TI to be set: transmit has completed C2 99 CLR S0CON.1 ; Clear S0CON.TI 74 0D MOV A, #0xD F5 99 MOV S0BUF, A ; Send 0x55, end of sequence 30 99 FD JNB S0CON.1, $ ; Wait on S0CON.TI to be set: transmit has completed C2 99 CLR S0CON.1 ; Clear S0CON.TI ; RETURN 22 RET ASSEMBLED BYTES: 75 AA F3 75 BA 03 75 98 40 43 87 80 43 D8 80 C2 AC 75 A0 00 74 5A F5 99 30 99 FD C2 99 74 A5 F5 99 30 99 FD C2 99 E5 10 F5 99 30 99 FD C2 99 E5 3B F5 99 30 99 FD C2 99 E5 40 F5 99 30 99 FD C2 99 E5 4B F5 99 30 99 FD C2 99 E5 54 F5 99 30 99 FD C2 99 E5 6E F5 99 30 99 FD C2 99 E5 6F F5 99 30 99 FD C2 99 78 97 86 99 30 99 FD C2 99 78 B7 86 99 30 99 FD C2 99 90 FB A8 E0 F5 99 30 99 FD C2 99 90 F9 22 E0 F5 99 30 99 FD C2 99 74 A5 F5 99 30 99 FD C2 99 74 5A F5 99 30 99 FD C2 99 74 0D F5 99 30 99 FD C2 99 74 4F 12 29 AE 75 2E 00 90 C9 C9 E4 93 90 FF D9 F0 90 FF AA E5 2E F0 22 Note that these assembled bytes also incude the neccessary portions of the intake air temp sensor diagnostic routine to avoid getting a code. If you want to try this, insert at 0x935E in the 607 automatic binary, or search on the byte pattern 90 F1 96 E4 93 70 0B and overwrite with the above bytes starting with the 90 (place the 75 AA on top of the 90 F1 and continue on...) -- Remember to update the checksums!