#CC-RL Compiler RL78 Assembler Source #@ CC-RL Version : V1.15.00 [06 Dec 2024] #@ Commmand : #@ -cpu=S3 #@ -S #@ -Olite #@ -I . #@ -asm_path=tmp #@ r_main.c #@ r_cg_cgc_user.c #@ compiled at Tue Sep 15 15:35:58 2026 .EXTERN _g_boot_reset_flags .EXTERN _g_trace_magic .EXTERN _g_trace_stage .EXTERN _g_trace_byte .EXTERN _g_trace_stack_low .EXTERN _g_trace_isr .PUBLIC _uart_rx_done .PUBLIC _uart_rx_index .PUBLIC _uart_rx_buffer .PUBLIC _uart_rx_length .PUBLIC _g_fixed_addr .EXTERN _uart1_send_string .EXTERN _R_WDT_Restart .EXTERN _delay_ms .EXTERN _delay_us .EXTERN _memset .EXTERN _sprintf .EXTERN _Gate_SetByNum .EXTERN _isdigit .EXTERN _app_owi_read_basic .EXTERN _OWI_GetCaptureError .EXTERN _OWI_GetCaptureSync .EXTERN _NVM_TraceStack .EXTERN _app_owi_write_basic .EXTERN _Cal_Init .EXTERN _GateCtrl_SelectChannel .EXTERN _app_owi_write_t_basic .EXTERN _memcmp .EXTERN _memcpy .EXTERN _strncpy .EXTERN _strlen .EXTERN _app_cmd_parse_line .EXTERN _app_scheduler_push .EXTERN _app_scheduler_pop .PUBLIC _main .PUBLIC _R_MAIN_UserInit .EXTERN _R_WDT_Create .EXTERN _R_UART1_Create .EXTERN _R_IICA0_Create .EXTERN _R_UART1_Start .EXTERN _app_scheduler_init .EXTERN _R_UART1_Receive .EXTERN _R_PORT_Create .SECTION .textf,TEXTF .TYPE _send_end_response@1,function,.LFE1-_send_end_response@1 _send_end_response@1: .STACK _send_end_response@1 = 4 movw ax, #SMRLW(.STR@1) call !!_uart1_send_string ret .LFE1: .TYPE _out_print@1,function,.LFE2-_out_print@1 _out_print@1: .STACK _out_print@1 = 4 cmpw ax, #0x0000 skz .BB@LABEL@2_1: ; if_then_bb call !!_uart1_send_string .BB@LABEL@2_2: ; return ret .LFE2: .TYPE _uart1_send_string_safe@1,function,.LFE3-_uart1_send_string_safe@1 _uart1_send_string_safe@1: .STACK _uart1_send_string_safe@1 = 4 cmpw ax, #0x0000 skz .BB@LABEL@3_1: ; if_then_bb call !!_uart1_send_string .BB@LABEL@3_2: ; return ret .LFE3: .TYPE _app_kick_wdt@1,function,.LFE4-_app_kick_wdt@1 _app_kick_wdt@1: .STACK _app_kick_wdt@1 = 4 call !!_R_WDT_Restart ret .LFE4: .TYPE _delay_ms_wdt@1,function,.LFE5-_delay_ms_wdt@1 _delay_ms_wdt@1: .STACK _delay_ms_wdt@1 = 8 push ax push hl br $.BB@LABEL@5_4 .BB@LABEL@5_1: ; bb cmpw ax, #0x000B skc .BB@LABEL@5_2: ; bb.bb6_crit_edge movw ax, #0x000A .BB@LABEL@5_3: ; bb4 movw [sp+0x00], ax call !!_delay_ms call $!_app_kick_wdt@1 movw hl, sp movw ax, [sp+0x02] subw ax, [hl+0x00] movw [sp+0x02], ax .BB@LABEL@5_4: ; bb12 cmpw ax, #0x0000 bnz $.BB@LABEL@5_1 .BB@LABEL@5_5: ; return addw sp, #0x04 ret .LFE5: .TYPE _hex2byte@1,function,.LFE6-_hex2byte@1 _hex2byte@1: .STACK _hex2byte@1 = 6 push ax mov b, a shrw ax, 8+0x00000 cmpw ax, #0x0061 bc $.BB@LABEL@6_3 .BB@LABEL@6_1: ; bb mov a, b shrw ax, 8+0x00000 cmpw ax, #0x0067 bnc $.BB@LABEL@6_3 .BB@LABEL@6_2: ; if_then_bb mov a, b add a, #0xE0 mov b, a .BB@LABEL@6_3: ; if_break_bb mov a, [sp+0x00] shrw ax, 8+0x00000 cmpw ax, #0x0061 bc $.BB@LABEL@6_6 .BB@LABEL@6_4: ; bb22 mov a, [sp+0x00] shrw ax, 8+0x00000 cmpw ax, #0x0067 bnc $.BB@LABEL@6_6 .BB@LABEL@6_5: ; if_then_bb35 mov a, [sp+0x00] add a, #0xE0 mov [sp+0x00], a .BB@LABEL@6_6: ; if_break_bb40 mov a, b shrw ax, 8+0x00000 cmpw ax, #0x0041 mov a, b bc $.BB@LABEL@6_8 .BB@LABEL@6_7: ; bb45 add a, #0xC9 br $.BB@LABEL@6_9 .BB@LABEL@6_8: ; bb52 add a, #0xD0 .BB@LABEL@6_9: ; bb52 mov b, a mov a, [sp+0x00] shrw ax, 8+0x00000 cmpw ax, #0x0041 mov a, [sp+0x00] bc $.BB@LABEL@6_11 .BB@LABEL@6_10: ; bb67 add a, #0xC9 br $.BB@LABEL@6_12 .BB@LABEL@6_11: ; bb74 add a, #0xD0 .BB@LABEL@6_12: ; bb74 mov x, a mov a, b shl a, 0x04 or a, x pop bc ret .LFE6: .TYPE _relay_init@1,function,.LFE7-_relay_init@1 _relay_init@1: .STACK _relay_init@1 = 4 mov a, #0xFE and a, !0xFF2E mov 0xFFF2E, a or 0xFFF0E, #0x01 ret .LFE7: .TYPE _relay_on@1,function,.LFE8-_relay_on@1 _relay_on@1: .STACK _relay_on@1 = 4 and 0xFFF0E, #0xFE ret .LFE8: .TYPE _relay_off@1,function,.LFE9-_relay_off@1 _relay_off@1: .STACK _relay_off@1 = 4 or 0xFFF0E, #0x01 ret .LFE9: .TYPE _gauge_req_start@1,function,.LFE10-_gauge_req_start@1 _gauge_req_start@1: .STACK _gauge_req_start@1 = 4 cmpw ax, #0x0000 bz $.BB@LABEL@10_2 .BB@LABEL@10_1: ; if_break_bb movw de, ax movw ax, [de+0x02] movw hl, ax mov a, [de+0x06] xor a, #0xFF and a, [hl] mov [hl], a movw ax, [de] movw hl, ax mov a, [de+0x06] or a, [hl] mov [hl], a .BB@LABEL@10_2: ; return ret .LFE10: .TYPE _gauge_req_stop@1,function,.LFE11-_gauge_req_stop@1 _gauge_req_stop@1: .STACK _gauge_req_stop@1 = 4 cmpw ax, #0x0000 bz $.BB@LABEL@11_2 .BB@LABEL@11_1: ; if_break_bb movw de, ax movw ax, [de+0x02] movw hl, ax mov a, [de+0x06] xor a, #0xFF and a, [hl] mov [hl], a movw ax, [de] movw hl, ax mov a, [de+0x06] xor a, #0xFF and a, [hl] mov [hl], a .BB@LABEL@11_2: ; return ret .LFE11: .TYPE _gauge_read_pin@1,function,.LFE12-_gauge_read_pin@1 _gauge_read_pin@1: .STACK _gauge_read_pin@1 = 4 movw hl, ax mov a, c and a, [hl] cmp0 a bnz $.BB@LABEL@12_2 .BB@LABEL@12_1: ; entry clrw ax ret .BB@LABEL@12_2: ; entry onew ax ret .LFE12: .TYPE _gauge_wait_pin_state@1,function,.LFE13-_gauge_wait_pin_state@1 _gauge_wait_pin_state@1: .STACK _gauge_wait_pin_state@1 = 16 push de push bc push ax subw sp, #0x04 movw ax, [sp+0x10] movw [sp+0x00], ax movw ax, [sp+0x0E] movw [sp+0x02], ax br $.BB@LABEL@13_3 .BB@LABEL@13_1: ; bb mov a, [sp+0x06] mov c, a movw ax, [sp+0x04] call $!_gauge_read_pin@1 movw hl, sp cmpw ax, [hl+0x08] bz $.BB@LABEL@13_8 .BB@LABEL@13_2: ; if_break_bb clrw bc onew ax call !!_delay_us .BB@LABEL@13_3: ; bb8 pop de push de push de pop bc movw ax, [sp+0x02] movw hl, ax addw ax, #0xFFFF movw [sp+0x02], ax skc .BB@LABEL@13_4: ; bb8 decw de .BB@LABEL@13_5: ; bb8 pop ax push de movw ax, hl addw ax, bc bnz $.BB@LABEL@13_1 .BB@LABEL@13_6: ; bb8 bc $.BB@LABEL@13_1 .BB@LABEL@13_7: ; bb8.bb17_crit_edge clrb a br $.BB@LABEL@13_9 .BB@LABEL@13_8: ; bb.bb17_crit_edge oneb a .BB@LABEL@13_9: ; bb17 addw sp, #0x0A ret .LFE13: .TYPE _gauge_read_nibble@1,function,.LFE14-_gauge_read_nibble@1 _gauge_read_nibble@1: .STACK _gauge_read_nibble@1 = 16 push bc push ax subw sp, #0x04 or a, x bz $.BB@LABEL@14_13 .BB@LABEL@14_1: ; entry movw ax, [sp+0x06] or a, x bz $.BB@LABEL@14_13 .BB@LABEL@14_2: ; entry.bb94_crit_edge clrb a mov [sp+0x00], a clrw ax br $.BB@LABEL@14_11 .BB@LABEL@14_3: ; bb26 clrw ax push ax movw ax, #0x7530 push ax movw ax, [sp+0x08] movw de, ax mov a, [de+0x0E] mov c, a movw ax, [de+0x08] movw de, #0x0001 call $!_gauge_wait_pin_state@1 addw sp, #0x04 cmp0 a bz $.BB@LABEL@14_13 .BB@LABEL@14_4: ; if_break_bb46 clrw ax push ax movw ax, #0x7530 push ax movw ax, [sp+0x08] movw de, ax mov a, [de+0x0E] mov c, a movw ax, [de+0x08] movw de, #0x0000 call $!_gauge_wait_pin_state@1 addw sp, #0x04 cmp0 a bz $.BB@LABEL@14_13 .BB@LABEL@14_5: ; if_break_bb66 clrw bc movw ax, #0x000A call !!_delay_us movw ax, [sp+0x04] movw hl, ax movw ax, [hl+0x10] movw de, ax mov a, [de] and a, [hl+0x16] movw hl, sp cmp0 a bz $.BB@LABEL@14_10 .BB@LABEL@14_6: ; if_then_bb80 mov a, [sp+0x02] mov b, a onew ax cmp0 b br $.BB@LABEL@14_8 .BB@LABEL@14_7: ; if_then_bb80 addw ax, ax dec b .BB@LABEL@14_8: ; if_then_bb80 bnz $.BB@LABEL@14_7 .BB@LABEL@14_9: ; if_then_bb80 mov a, x or a, [hl] mov [hl], a .BB@LABEL@14_10: ; if_break_bb91 movw ax, [sp+0x02] incw ax .BB@LABEL@14_11: ; if_break_bb91 movw [sp+0x02], ax xor a, #0x80 cmpw ax, #0x8004 bc $.BB@LABEL@14_3 .BB@LABEL@14_12: ; bb99 movw ax, [sp+0x06] movw de, ax mov a, [sp+0x00] mov [de], a oneb a br $.BB@LABEL@14_14 .BB@LABEL@14_13: ; bb103 clrb a .BB@LABEL@14_14: ; bb103 addw sp, #0x08 ret .LFE14: .TYPE _gauge_is_valid_frame@1,function,.LFE15-_gauge_is_valid_frame@1 _gauge_is_valid_frame@1: .STACK _gauge_is_valid_frame@1 = 4 cmpw ax, #0x0000 bz $.BB@LABEL@15_15 .BB@LABEL@15_1: ; if_break_bb movw de, ax mov a, [de] cmp a, #0x0F bnz $.BB@LABEL@15_15 .BB@LABEL@15_2: ; bb15 mov a, [de+0x01] cmp a, #0x0F bnz $.BB@LABEL@15_15 .BB@LABEL@15_3: ; bb29 mov a, [de+0x02] cmp a, #0x0F bnz $.BB@LABEL@15_15 .BB@LABEL@15_4: ; bb43 mov a, [de+0x03] cmp a, #0x0F bnz $.BB@LABEL@15_15 .BB@LABEL@15_5: ; if_break_bb66 mov a, [de+0x04] cmp0 a bz $.BB@LABEL@15_7 .BB@LABEL@15_6: ; if_break_bb66 cmp a, #0x08 bnz $.BB@LABEL@15_15 .BB@LABEL@15_7: ; if_break_bb66.bb112_crit_edge movw ax, #0x0005 movw bc, ax br $.BB@LABEL@15_10 .BB@LABEL@15_8: ; bb97 movw ax, de addw ax, bc movw hl, ax mov a, [hl] cmp a, #0x0A bnc $.BB@LABEL@15_15 .BB@LABEL@15_9: ; if_break_bb109 incw bc movw ax, bc .BB@LABEL@15_10: ; bb112 xor a, #0x80 cmpw ax, #0x800B bc $.BB@LABEL@15_8 .BB@LABEL@15_11: ; bb117 mov a, [de+0x0B] cmp a, #0x06 bnc $.BB@LABEL@15_15 .BB@LABEL@15_12: ; if_break_bb127 mov a, [de+0x0C] cmp0 a bz $.BB@LABEL@15_14 .BB@LABEL@15_13: ; if_break_bb127 cmp a, #0x08 bnz $.BB@LABEL@15_15 .BB@LABEL@15_14: ; if_break_bb157 oneb a ret .BB@LABEL@15_15: ; bb159 clrb a ret .LFE15: .TYPE _gauge_read_aligned_frame@1,function,.LFE16-_gauge_read_aligned_frame@1 _gauge_read_aligned_frame@1: .STACK _gauge_read_aligned_frame@1 = 10 push bc push ax push hl or a, x bz $.BB@LABEL@16_2 .BB@LABEL@16_1: ; entry movw ax, [sp+0x04] or a, x bnz $.BB@LABEL@16_3 .BB@LABEL@16_2: ; entry.bb105_crit_edge clrb a br $.BB@LABEL@16_16 .BB@LABEL@16_3: ; if_break_bb movw ax, [sp+0x02] call $!_gauge_req_stop@1 movw ax, #0x000A call !!_delay_ms movw ax, [sp+0x02] call $!_gauge_req_start@1 movw ax, #0x0014 call !!_delay_ms clrw ax br $.BB@LABEL@16_7 .BB@LABEL@16_4: ; bb28 movw ax, [sp+0x04] movw hl, sp addw ax, [hl+0x00] movw bc, ax movw ax, [sp+0x02] call $!_gauge_read_nibble@1 cmp0 a bnz $.BB@LABEL@16_6 .BB@LABEL@16_5: ; if_then_bb47 movw ax, [sp+0x02] call $!_gauge_req_stop@1 br $.BB@LABEL@16_2 .BB@LABEL@16_6: ; if_break_bb50 movw ax, [sp+0x00] incw ax .BB@LABEL@16_7: ; if_break_bb50 movw [sp+0x00], ax xor a, #0x80 cmpw ax, #0x8018 bc $.BB@LABEL@16_4 .BB@LABEL@16_8: ; bb58 movw ax, [sp+0x02] call $!_gauge_req_stop@1 clrw ax br $.BB@LABEL@16_13 .BB@LABEL@16_9: ; bb61 movw bc, ax movw ax, [sp+0x00] movw de, ax addw ax, bc addw ax, #0x0018 movw hl, ax movw ax, [sp+0x02] addw ax, de addw ax, bc movw de, ax mov a, [de] mov [hl], a movw ax, [sp+0x00] incw ax .BB@LABEL@16_10: ; bb61 movw [sp+0x00], ax xor a, #0x80 cmpw ax, #0x800D movw ax, [sp+0x04] bc $.BB@LABEL@16_9 .BB@LABEL@16_11: ; bb84 addw ax, #0x0018 call $!_gauge_is_valid_frame@1 cmp0 a bnz $.BB@LABEL@16_15 .BB@LABEL@16_12: ; if_break_bb95 movw ax, [sp+0x02] incw ax .BB@LABEL@16_13: ; if_break_bb95 movw [sp+0x02], ax xor a, #0x80 cmpw ax, #0x800C bnc $.BB@LABEL@16_2 .BB@LABEL@16_14: ; bb98.bb79_crit_edge clrw ax br $.BB@LABEL@16_10 .BB@LABEL@16_15: ; bb84.bb105_crit_edge oneb a .BB@LABEL@16_16: ; bb105 addw sp, #0x06 ret .LFE16: .TYPE _gauge_decode_value@1,function,.LFE17-_gauge_decode_value@1 _gauge_decode_value@1: .STACK _gauge_decode_value@1 = 24 push de push bc subw sp, #0x08 push ax or a, x bz $.BB@LABEL@17_3 .BB@LABEL@17_1: ; entry movw ax, [sp+0x0A] or a, x bz $.BB@LABEL@17_3 .BB@LABEL@17_2: ; entry movw ax, [sp+0x0C] or a, x bnz $.BB@LABEL@17_4 .BB@LABEL@17_3: ; entry.bb124_crit_edge clrb a br $!.BB@LABEL@17_22 .BB@LABEL@17_4: ; if_break_bb pop de push de mov a, [de+0x05] mov [sp+0x00], a mov a, [de+0x06] mov b, a mov a, [de+0x07] mov [sp+0x06], a mov a, [de+0x08] mov [sp+0x07], a mov a, [de+0x09] mov [sp+0x08], a mov a, [de+0x0A] mov [sp+0x09], a movw ax, [sp+0x0C] movw hl, ax mov a, [de+0x0B] shrw ax, 8+0x00000 movw [hl], ax mov a, b shrw ax, 8+0x00000 movw bc, #0x2710 mulhu movw hl, ax movw ax, bc movw [sp+0x04], ax mov a, [sp+0x00] shrw ax, 8+0x00000 movw [sp+0x02], ax movw bc, #0x86A0 mulhu movw [sp+0x00], ax movw ax, [sp+0x02] addw ax, bc movw bc, ax movw ax, [sp+0x00] addw ax, hl movw [sp+0x00], ax movw hl, sp movw ax, bc sknc .BB@LABEL@17_5: ; if_break_bb incw ax .BB@LABEL@17_6: ; if_break_bb addw ax, [hl+0x04] movw [sp+0x02], ax mov a, [sp+0x06] shrw ax, 8+0x00000 movw bc, #0x03E8 mulhu movw hl, ax movw ax, [sp+0x00] addw ax, hl movw [sp+0x00], ax movw ax, [sp+0x02] sknc .BB@LABEL@17_7: ; if_break_bb incw ax .BB@LABEL@17_8: ; if_break_bb addw ax, bc movw [sp+0x02], ax mov a, [sp+0x07] shrw ax, 8+0x00000 movw bc, #0x0064 mulhu movw hl, ax movw ax, [sp+0x00] addw ax, hl movw [sp+0x00], ax movw ax, [sp+0x02] sknc .BB@LABEL@17_9: ; if_break_bb incw ax .BB@LABEL@17_10: ; if_break_bb addw ax, bc movw [sp+0x02], ax mov a, [sp+0x08] shrw ax, 8+0x00000 movw bc, #0x000A mulhu movw hl, ax movw ax, [sp+0x00] addw ax, hl movw hl, ax movw ax, [sp+0x02] sknc .BB@LABEL@17_11: ; if_break_bb incw ax .BB@LABEL@17_12: ; if_break_bb addw ax, bc movw bc, ax mov a, [sp+0x09] shrw ax, 8+0x00000 addw ax, hl movw hl, ax sknc .BB@LABEL@17_13: ; if_break_bb incw bc .BB@LABEL@17_14: ; if_break_bb mov a, [de+0x04] cmp a, #0x08 bnz $.BB@LABEL@17_16 .BB@LABEL@17_15: ; if_break_bb.bb91_crit_edge oneb a br $.BB@LABEL@17_17 .BB@LABEL@17_16: ; bb89 clrb a .BB@LABEL@17_17: ; bb89 mov [sp+0x02], a movw ax, hl call !!__COM_sltof movw [sp+0x00], ax movw ax, [sp+0x0A] movw de, ax movw ax, [sp+0x00] movw [de], ax movw ax, bc movw hl, ax movw [de+0x02], ax clrw bc movw ax, bc br $.BB@LABEL@17_19 .BB@LABEL@17_18: ; bb98 movw ax, #0x4120 push ax clrw ax push ax push hl pop bc movw ax, [sp+0x04] call !!__COM_fdiv movw [sp+0x04], ax movw ax, [sp+0x0E] movw de, ax movw ax, [sp+0x04] movw [de], ax movw ax, bc movw hl, ax movw [de+0x02], ax addw sp, #0x04 movw ax, [sp+0x04] incw ax movw bc, ax .BB@LABEL@17_19: ; bb98 movw [sp+0x04], ax movw ax, [sp+0x0C] movw de, ax movw ax, [de] xor a, #0x80 movw de, ax movw ax, bc xor a, #0x80 cmpw ax, de bc $.BB@LABEL@17_18 .BB@LABEL@17_20: ; bb111 mov a, [sp+0x02] cmp0 a bnz $.BB@LABEL@17_23 .BB@LABEL@17_21: ; bb111.bb124_crit_edge oneb a .BB@LABEL@17_22: ; bb124 addw sp, #0x0E ret .BB@LABEL@17_23: ; if_then_bb117 movw ax, [sp+0x0A] movw de, ax movw ax, hl xor a, #0x80 movw [de+0x02], ax movw ax, [sp+0x00] movw [de], ax br $.BB@LABEL@17_21 .LFE17: .TYPE _gauge_reset_state@1,function,.LFE18-_gauge_reset_state@1 _gauge_reset_state@1: .STACK _gauge_reset_state@1 = 6 push ax cmpw ax, #0x0000 bz $.BB@LABEL@18_2 .BB@LABEL@18_1: ; if_break_bb movw de, #0x0018 clrw bc call !!_memset movw ax, [sp+0x00] addw ax, #0x0018 movw de, #0x000D clrw bc call !!_memset pop de push de mov [de+0x2C], #0x00 clrw ax movw [de+0x28], ax movw [de+0x26], ax movw ax, #0x0003 movw [de+0x2A], ax .BB@LABEL@18_2: ; return pop ax ret .LFE18: .TYPE _gauge_align_captured_frame@1,function,.LFE19-_gauge_align_captured_frame@1 _gauge_align_captured_frame@1: .STACK _gauge_align_captured_frame@1 = 10 push ax subw sp, #0x04 or a, x bz $.BB@LABEL@19_2 .BB@LABEL@19_1: ; entry.bb47_crit_edge clrw ax br $.BB@LABEL@19_7 .BB@LABEL@19_2: ; entry.bb54_crit_edge clrb a br $.BB@LABEL@19_10 .BB@LABEL@19_3: ; bb10 movw bc, ax movw ax, [sp+0x00] movw de, ax addw ax, bc addw ax, #0x0018 movw hl, ax movw ax, [sp+0x02] addw ax, de addw ax, bc movw de, ax mov a, [de] mov [hl], a movw ax, [sp+0x00] incw ax .BB@LABEL@19_4: ; bb10 movw [sp+0x00], ax xor a, #0x80 cmpw ax, #0x800D movw ax, [sp+0x04] bc $.BB@LABEL@19_3 .BB@LABEL@19_5: ; bb33 addw ax, #0x0018 call $!_gauge_is_valid_frame@1 cmp0 a bnz $.BB@LABEL@19_9 .BB@LABEL@19_6: ; if_break_bb44 movw ax, [sp+0x02] incw ax .BB@LABEL@19_7: ; if_break_bb44 movw [sp+0x02], ax xor a, #0x80 cmpw ax, #0x800C bnc $.BB@LABEL@19_2 .BB@LABEL@19_8: ; bb47.bb28_crit_edge clrw ax br $.BB@LABEL@19_4 .BB@LABEL@19_9: ; bb33.bb54_crit_edge oneb a .BB@LABEL@19_10: ; bb54 addw sp, #0x06 ret .LFE19: .TYPE _gauge_capture_init@1,function,.LFE20-_gauge_capture_init@1 _gauge_capture_init@1: .STACK _gauge_capture_init@1 = 8 push ax or a, x push de pop hl bz $.BB@LABEL@20_6 .BB@LABEL@20_1: ; if_break_bb pop de push de movw ax, bc movw [de], ax movw ax, hl movw [de+0x02], ax movw ax, bc or a, x bz $.BB@LABEL@20_4 .BB@LABEL@20_2: ; if_break_bb movw ax, hl or a, x bz $.BB@LABEL@20_4 .BB@LABEL@20_3: ; if_break_bb.bb33_crit_edge oneb a br $.BB@LABEL@20_5 .BB@LABEL@20_4: ; bb31 clrb a .BB@LABEL@20_5: ; bb33 mov [de+0x04], a mov [de+0x05], #0x00 mov [de+0x06], #0x01 mov [de+0x07], #0x00 mov [de+0x08], #0x00 mov [de+0x09], #0x00 clrw ax movw [de+0x0C], ax movw ax, #0x7530 movw [de+0x0A], ax .BB@LABEL@20_6: ; return pop ax ret .LFE20: .TYPE _gauge_capture_step@1,function,.LFE21-_gauge_capture_step@1 _gauge_capture_step@1: .STACK _gauge_capture_step@1 = 8 push ax push hl or a, x .bz $!.BB@LABEL@21_20 .BB@LABEL@21_1: ; bb6 movw ax, [sp+0x02] movw de, ax mov a, [de+0x04] cmp0 a .bz $!.BB@LABEL@21_20 .BB@LABEL@21_2: ; if_break_bb movw ax, [de] movw de, ax mov a, [de+0x0E] mov c, a movw ax, [de+0x08] call $!_gauge_read_pin@1 movw hl, ax movw ax, [sp+0x02] movw de, ax mov a, [de+0x06] mov [sp+0x00], a shrw ax, 8+0x00000 movw bc, ax movw ax, hl cmpw ax, bc .bnz $!.BB@LABEL@21_14 .BB@LABEL@21_3: ; if_then_bb46 mov a, [sp+0x00] cmp0 a bz $.BB@LABEL@21_5 .BB@LABEL@21_4: ; if_then_bb54 mov [de+0x06], #0x00 clrw ax movw [de+0x0C], ax movw ax, #0x7530 movw [de+0x0A], ax br $!.BB@LABEL@21_20 .BB@LABEL@21_5: ; if_break_bb60 clrw bc movw ax, #0x000A call !!_delay_us movw ax, [sp+0x02] movw de, ax movw ax, [de] movw hl, ax movw ax, [hl+0x10] movw hl, ax movw ax, [de] movw [sp+0x00], ax mov a, [hl] mov b, a pop hl push hl mov a, b and a, [hl+0x16] cmp0 a bz $.BB@LABEL@21_10 .BB@LABEL@21_6: ; if_then_bb78 mov a, [de+0x07] mov b, a movw ax, [sp+0x02] movw hl, ax onew ax cmp0 b br $.BB@LABEL@21_8 .BB@LABEL@21_7: ; if_then_bb78 addw ax, ax dec b .BB@LABEL@21_8: ; if_then_bb78 bnz $.BB@LABEL@21_7 .BB@LABEL@21_9: ; if_then_bb78 mov a, x or a, [hl+0x09] mov b, a movw ax, [sp+0x02] movw de, ax mov a, b mov [de+0x09], a .BB@LABEL@21_10: ; if_break_bb94 mov a, [de+0x07] inc a mov b, a movw ax, [sp+0x02] movw hl, ax mov a, b mov [hl+0x07], a cmp a, #0x04 bc $.BB@LABEL@21_13 .BB@LABEL@21_11: ; if_then_bb106 mov a, [hl+0x08] mov b, a movw ax, [hl+0x02] movw [sp+0x00], ax mov a, [hl+0x09] mov c, a pop hl push hl mov a, c mov [hl+b], a movw ax, [sp+0x02] movw hl, ax inc [hl+0x08] mov [hl+0x09], #0x00 mov [hl+0x07], #0x00 mov a, [hl+0x08] cmp a, #0x18 bc $.BB@LABEL@21_13 .BB@LABEL@21_12: ; if_then_bb135 mov [hl+0x04], #0x00 mov [hl+0x05], #0x01 br $.BB@LABEL@21_20 .BB@LABEL@21_13: ; if_break_bb142 mov [hl+0x06], #0x01 clrw ax movw [hl+0x0C], ax movw ax, #0x7530 movw [hl+0x0A], ax br $.BB@LABEL@21_20 .BB@LABEL@21_14: ; if_break_bb148 movw ax, [de+0x0C] movw bc, ax movw ax, [de+0x0A] movw hl, ax addw ax, bc bnz $.BB@LABEL@21_17 .BB@LABEL@21_15: ; if_break_bb148 bc $.BB@LABEL@21_17 .BB@LABEL@21_16: ; if_then_bb155 mov [de+0x04], #0x00 mov [de+0x05], #0x00 br $.BB@LABEL@21_20 .BB@LABEL@21_17: ; if_break_bb161 movw ax, hl addw ax, #0xFFFF movw [de+0x0A], ax skc .BB@LABEL@21_18: ; if_break_bb161 decw bc .BB@LABEL@21_19: ; if_break_bb161 movw ax, bc movw [de+0x0C], ax .BB@LABEL@21_20: ; return addw sp, #0x04 ret .LFE21: .TYPE _gauge_finish_captured_frame@1,function,.LFE22-_gauge_finish_captured_frame@1 _gauge_finish_captured_frame@1: .STACK _gauge_finish_captured_frame@1 = 6 push hl cmpw ax, #0x0000 bz $.BB@LABEL@22_6 .BB@LABEL@22_1: ; bb7 movw de, ax movw ax, [de+0x02] or a, x bz $.BB@LABEL@22_6 .BB@LABEL@22_2: ; bb26 mov a, [de+0x05] cmp0 a bz $.BB@LABEL@22_6 .BB@LABEL@22_3: ; if_break_bb movw ax, [de+0x02] movw [sp+0x00], ax movw de, ax mov [de+0x2C], #0x00 movw ax, de call $!_gauge_align_captured_frame@1 cmp0 a bz $.BB@LABEL@22_6 .BB@LABEL@22_4: ; if_break_bb67 movw ax, [sp+0x00] movw bc, ax addw ax, #0x002A movw de, ax movw ax, bc addw ax, #0x0026 movw bc, ax movw ax, [sp+0x00] addw ax, #0x0018 call $!_gauge_decode_value@1 cmp0 a bz $.BB@LABEL@22_6 .BB@LABEL@22_5: ; if_break_bb88 pop de push de mov [de+0x2C], #0x01 oneb a pop bc ret .BB@LABEL@22_6: ; bb92 clrb a pop bc ret .LFE22: .TYPE _gauge_read_pair@1,function,.LFE23-_gauge_read_pair@1 _gauge_read_pair@1: .STACK _gauge_read_pair@1 = 38 push de push ax subw sp, #0x1C push bc or a, x .bz $!.BB@LABEL@23_13 .BB@LABEL@23_1: ; entry movw ax, [sp+0x00] or a, x .bz $!.BB@LABEL@23_13 .BB@LABEL@23_2: ; entry movw ax, [sp+0x20] or a, x .bz $!.BB@LABEL@23_13 .BB@LABEL@23_3: ; entry movw ax, [sp+0x26] or a, x .bz $!.BB@LABEL@23_13 .BB@LABEL@23_4: ; if_break_bb movw ax, [sp+0x00] call $!_gauge_reset_state@1 movw ax, [sp+0x26] call $!_gauge_reset_state@1 movw ax, [sp+0x1E] call $!_gauge_req_stop@1 movw ax, [sp+0x20] call $!_gauge_req_stop@1 movw ax, #0x000A call !!_delay_ms movw ax, [sp+0x1E] call $!_gauge_req_start@1 movw ax, [sp+0x20] call $!_gauge_req_start@1 movw ax, #0x0014 call !!_delay_ms pop de push de movw ax, [sp+0x1E] movw bc, ax movw ax, sp addw ax, #0x0002 call $!_gauge_capture_init@1 movw ax, [sp+0x26] movw de, ax movw ax, [sp+0x20] movw bc, ax movw ax, sp addw ax, #0x0010 call $!_gauge_capture_init@1 br $.BB@LABEL@23_8 .BB@LABEL@23_5: ; bb70 movw ax, sp addw ax, #0x0002 call $!_gauge_capture_step@1 movw ax, sp addw ax, #0x0010 call $!_gauge_capture_step@1 mov a, [sp+0x06] cmp0 a bnz $.BB@LABEL@23_7 .BB@LABEL@23_6: ; bb76 mov a, [sp+0x14] cmp0 a bz $.BB@LABEL@23_8 .BB@LABEL@23_7: ; if_then_bb90 clrw bc onew ax call !!_delay_us .BB@LABEL@23_8: ; bb92 mov a, [sp+0x06] cmp0 a bnz $.BB@LABEL@23_5 .BB@LABEL@23_9: ; bb98 mov a, [sp+0x14] cmp0 a bnz $.BB@LABEL@23_5 .BB@LABEL@23_10: ; bb112 movw ax, [sp+0x1E] call $!_gauge_req_stop@1 movw ax, [sp+0x20] call $!_gauge_req_stop@1 movw ax, sp addw ax, #0x0002 call $!_gauge_finish_captured_frame@1 mov [sp+0x00], a movw ax, sp addw ax, #0x0010 call $!_gauge_finish_captured_frame@1 mov x, a mov a, [sp+0x00] cmp0 a bz $.BB@LABEL@23_13 .BB@LABEL@23_11: ; bb112 cmp0 x bz $.BB@LABEL@23_13 .BB@LABEL@23_12: ; bb112.bb135_crit_edge oneb a br $.BB@LABEL@23_14 .BB@LABEL@23_13: ; bb128 clrb a .BB@LABEL@23_14: ; bb135 addw sp, #0x22 ret .LFE23: .TYPE _gauge_read@1,function,.LFE24-_gauge_read@1 _gauge_read@1: .STACK _gauge_read@1 = 10 push bc subw sp, #0x04 movw hl, ax or a, x bz $.BB@LABEL@24_5 .BB@LABEL@24_1: ; entry movw ax, [sp+0x04] or a, x bz $.BB@LABEL@24_5 .BB@LABEL@24_2: ; if_break_bb movw ax, [sp+0x04] movw de, ax mov [de+0x2C], #0x00 movw ax, de addw ax, #0x0026 movw [sp+0x02], ax movw de, ax clrw ax movw [de+0x02], ax movw [de], ax movw ax, [sp+0x04] movw bc, ax addw ax, #0x002A movw [sp+0x00], ax movw de, ax movw ax, #0x0003 movw [de], ax movw ax, hl call $!_gauge_read_aligned_frame@1 cmp0 a bz $.BB@LABEL@24_5 .BB@LABEL@24_3: ; if_break_bb47 pop de push de movw ax, [sp+0x02] movw bc, ax movw ax, [sp+0x04] addw ax, #0x0018 call $!_gauge_decode_value@1 cmp0 a bz $.BB@LABEL@24_5 .BB@LABEL@24_4: ; if_break_bb68 movw ax, [sp+0x04] movw de, ax mov [de+0x2C], #0x01 oneb a br $.BB@LABEL@24_6 .BB@LABEL@24_5: ; bb72 clrb a .BB@LABEL@24_6: ; bb72 addw sp, #0x06 ret .LFE24: .TYPE _gauge_format_value@1,function,.LFE25-_gauge_format_value@1 _gauge_format_value@1: .STACK _gauge_format_value@1 = 38 push de push ax subw sp, #0x14 or a, x movw ax, [sp+0x1C] movw de, ax .bz $!.BB@LABEL@25_18 .BB@LABEL@25_1: ; entry movw ax, [sp+0x16] or a, x .bz $!.BB@LABEL@25_18 .BB@LABEL@25_2: ; entry movw ax, de or a, x .bz $!.BB@LABEL@25_18 .BB@LABEL@25_3: ; if_break_bb mov a, [de+0x2C] cmp0 a movw ax, [sp+0x14] bz $.BB@LABEL@25_11 .BB@LABEL@25_4: ; if_then_bb50 or a, x bz $.BB@LABEL@25_6 .BB@LABEL@25_5: ; if_then_bb50.bb55_crit_edge mov b, #0x0F br $.BB@LABEL@25_7 .BB@LABEL@25_6: ; bb54 clrb b .BB@LABEL@25_7: ; bb55 movw ax, [sp+0x16] or a, x bz $.BB@LABEL@25_9 .BB@LABEL@25_8: ; bb55.bb64_crit_edge mov [sp+0x02], #0x0F br $.BB@LABEL@25_10 .BB@LABEL@25_9: ; bb63 clrb a mov [sp+0x02], a .BB@LABEL@25_10: ; bb64 movw ax, [de+0x28] movw hl, ax movw ax, [de+0x26] movw [sp+0x00], ax movw ax, [de+0x2A] movw de, ax movw ax, [sp+0x14] movw [sp+0x04], ax mov a, b mov [sp+0x06], a movw ax, #SMRLW(.STR@173) movw [sp+0x10], ax mov [sp+0x12], #0x0F push hl movw ax, [sp+0x02] push ax push de mov a, [sp+0x08] mov x, a push ax movw ax, [sp+0x1E] push ax movw ax, [sp+0x1A] movw bc, ax movw ax, [sp+0x0E] movw de, ax mov a, [sp+0x1C] mov x, a mov a, [sp+0x10] call !!_sprintf addw sp, #0x0A br $.BB@LABEL@25_18 .BB@LABEL@25_11: ; if_else_bb or a, x bz $.BB@LABEL@25_13 .BB@LABEL@25_12: ; if_else_bb.bb89_crit_edge mov b, #0x0F br $.BB@LABEL@25_14 .BB@LABEL@25_13: ; bb88 clrb b .BB@LABEL@25_14: ; bb89 movw ax, [sp+0x16] or a, x bz $.BB@LABEL@25_16 .BB@LABEL@25_15: ; bb89.bb99_crit_edge mov [sp+0x00], #0x0F br $.BB@LABEL@25_17 .BB@LABEL@25_16: ; bb98 clrb a mov [sp+0x00], a .BB@LABEL@25_17: ; bb99 movw ax, [sp+0x14] movw [sp+0x0C], ax mov a, b mov [sp+0x0E], a movw ax, #SMRLW(.STR@174) movw [sp+0x08], ax mov [sp+0x0A], #0x0F pop ax push ax push ax movw ax, [sp+0x18] push ax movw ax, [sp+0x0C] movw bc, ax movw ax, [sp+0x10] movw de, ax mov a, [sp+0x0E] mov x, a mov a, [sp+0x12] call !!_sprintf addw sp, #0x04 .BB@LABEL@25_18: ; return addw sp, #0x18 ret .LFE25: .TYPE _gauge_setup_pins@1,function,.LFE26-_gauge_setup_pins@1 _gauge_setup_pins@1: .STACK _gauge_setup_pins@1 = 4 cmpw ax, #0x0000 bz $.BB@LABEL@26_2 .BB@LABEL@26_1: ; if_break_bb movw de, ax movw ax, [de+0x02] movw hl, ax mov a, [de+0x06] xor a, #0xFF and a, [hl] mov [hl], a movw ax, [de] movw hl, ax mov a, [de+0x06] xor a, #0xFF and a, [hl] mov [hl], a movw ax, [de+0x04] movw hl, ax mov a, [de+0x06] xor a, #0xFF and a, [hl] mov [hl], a movw ax, [de+0x0A] movw hl, ax mov a, [de+0x0E] or a, [hl] mov [hl], a movw ax, [de+0x12] movw hl, ax mov a, [de+0x16] or a, [hl] mov [hl], a movw ax, [de+0x0C] movw hl, ax mov a, [de+0x0E] or a, [hl] mov [hl], a movw ax, [de+0x14] movw hl, ax mov a, [de+0x16] or a, [hl] mov [hl], a .BB@LABEL@26_2: ; return ret .LFE26: .TYPE _build_line_from_rx@1,function,.LFE27-_build_line_from_rx@1 _build_line_from_rx@1: .STACK _build_line_from_rx@1 = 14 push de push bc push ax push hl or a, x bz $.BB@LABEL@27_12 .BB@LABEL@27_1: ; entry movw ax, [sp+0x06] or a, x bz $.BB@LABEL@27_12 .BB@LABEL@27_2: ; entry movw ax, [sp+0x0C] xor a, #0x80 cmpw ax, #0x8002 bc $.BB@LABEL@27_12 .BB@LABEL@27_3: ; entry.bb93_crit_edge clrw bc push bc pop de br $.BB@LABEL@27_10 .BB@LABEL@27_4: ; bb37 movw ax, [sp+0x02] addw ax, de movw hl, ax mov a, [hl] mov [sp+0x00], a cmp a, #0x0D bz $.BB@LABEL@27_9 .BB@LABEL@27_5: ; bb37 cmp a, #0x0A bz $.BB@LABEL@27_9 .BB@LABEL@27_6: ; bb37 cmp0 a bz $.BB@LABEL@27_9 .BB@LABEL@27_7: ; if_break_bb74 movw ax, [sp+0x0C] decw ax xor a, #0x80 movw hl, ax movw ax, bc xor a, #0x80 cmpw ax, hl bnc $.BB@LABEL@27_9 .BB@LABEL@27_8: ; if_then_bb81 movw ax, [sp+0x06] addw ax, bc movw hl, ax mov a, [sp+0x00] mov [hl], a incw bc .BB@LABEL@27_9: ; bb90 incw de .BB@LABEL@27_10: ; bb93 movw ax, [sp+0x04] xor a, #0x80 movw hl, ax movw ax, de xor a, #0x80 cmpw ax, hl bc $.BB@LABEL@27_4 .BB@LABEL@27_11: ; bb99 movw ax, [sp+0x06] addw ax, bc movw de, ax mov [de+0x00], #0x00 movw ax, bc br $.BB@LABEL@27_13 .BB@LABEL@27_12: ; bb106 clrw ax .BB@LABEL@27_13: ; bb106 addw sp, #0x08 ret .LFE27: .TYPE _print_owi_write_result@1,function,.LFE28-_print_owi_write_result@1 _print_owi_write_result@1: .STACK _print_owi_write_result@1 = 62 subw sp, #0x3A cmpw ax, #0x0000 bnz $.BB@LABEL@28_2 .BB@LABEL@28_1: ; if_then_bb movw ax, #SMRLW(.STR@184) br $.BB@LABEL@28_5 .BB@LABEL@28_2: ; if_break_bb movw de, ax mov a, [de] cmp0 a bz $.BB@LABEL@28_6 .BB@LABEL@28_3: ; bb14 mov a, [de+0x01] cmp0 a bnz $.BB@LABEL@28_6 .BB@LABEL@28_4: ; if_then_bb35 movw ax, #SMRLW(.STR@185) .BB@LABEL@28_5: ; if_then_bb35 call $!_out_print@1 addw sp, #0x3A ret .BB@LABEL@28_6: ; if_else_bb movw ax, sp addw ax, #0x000A movw [sp+0x00], ax movw [sp+0x02], ax mov [sp+0x04], #0x0F movw ax, #SMRLW(.STR@186) movw [sp+0x06], ax mov [sp+0x08], #0x0F movw ax, [sp+0x06] movw bc, ax movw ax, [sp+0x02] movw de, ax mov a, [sp+0x04] mov x, #0x0F call !!_sprintf movw ax, [sp+0x00] br $.BB@LABEL@28_5 .LFE28: .TYPE _reset_channel_gate_defaults@1,function,.LFE29-_reset_channel_gate_defaults@1 _reset_channel_gate_defaults@1: .STACK _reset_channel_gate_defaults@1 = 4 cmp a, #0x15 bnc $.BB@LABEL@29_3 .BB@LABEL@29_1: ; entry cmp0 a bz $.BB@LABEL@29_3 .BB@LABEL@29_2: ; if_then_bb movw bc, #0x0100 clrb x call !!_Gate_SetByNum .BB@LABEL@29_3: ; return ret .LFE29: .TYPE _print_owi_read_result@1,function,.LFE30-_print_owi_read_result@1 _print_owi_read_result@1: .STACK _print_owi_read_result@1 = 710 subw sp, #0xFE subw sp, #0xFE subw sp, #0xC2 movw hl, sp movw [sp+0x0A], ax or a, x mov a, c mov [sp+0x0C], a bz $.BB@LABEL@30_3 .BB@LABEL@30_1: ; bb6 movw ax, [sp+0x0A] movw de, ax mov a, [de] cmp0 a bz $.BB@LABEL@30_3 .BB@LABEL@30_2: ; bb26 movw ax, [de+0x02] or a, x bnz $.BB@LABEL@30_5 .BB@LABEL@30_3: ; if_then_bb movw ax, #SMRLW(.STR@193) .BB@LABEL@30_4: ; if_then_bb call $!_out_print@1 mov a, [sp+0x0C] call $!_reset_channel_gate_defaults@1 addw sp, #0xFE addw sp, #0xFE addw sp, #0xC2 ret .BB@LABEL@30_5: ; if_break_bb movw ax, [de+0x02] movw [sp+0x06], ax cmpw ax, #0x007F bz $.BB@LABEL@30_7 .BB@LABEL@30_6: ; if_break_bb.if_break_bb64_crit_edge clrw ax movw [sp+0x08], ax br $.BB@LABEL@30_8 .BB@LABEL@30_7: ; if_then_bb58 addw ax, #0xFFF8 movw [sp+0x08], ax movw ax, #0x0008 movw [sp+0x06], ax .BB@LABEL@30_8: ; if_break_bb64 movw ax, [sp+0x08] addw ax, [hl+0x06] movw bc, ax clrw ax sknc .BB@LABEL@30_9: ; if_break_bb64 incw ax .BB@LABEL@30_10: ; if_break_bb64 cmpw ax, #0x0000 movw ax, bc sknz .BB@LABEL@30_11: ; if_break_bb64 cmpw ax, #0x0141 .BB@LABEL@30_12: ; if_break_bb64 bnc $.BB@LABEL@30_15 .BB@LABEL@30_13: ; if_break_bb64.bb119_crit_edge clrw ax .BB@LABEL@30_14: ; if_break_bb64.bb119_crit_edge movw [sp+0x04], ax movw [hl], ax br $.BB@LABEL@30_19 .BB@LABEL@30_15: ; if_then_bb73 movw ax, [sp+0x08] cmpw ax, #0x0140 bc $.BB@LABEL@30_17 .BB@LABEL@30_16: ; if_then_bb73.bb119_crit_edge clrw ax movw [sp+0x06], ax br $.BB@LABEL@30_14 .BB@LABEL@30_17: ; if_else_bb movw ax, #0x0140 subw ax, [hl+0x08] movw [sp+0x06], ax br $.BB@LABEL@30_13 .BB@LABEL@30_18: ; bb83 movw ax, hl addw ax, #0x0016 addw ax, [hl+0x04] movw [sp+0x02], ax movw ax, [sp+0x0A] movw bc, ax pop hl push hl movw ax, [sp+0x08] addw ax, hl addw ax, bc addw ax, #0x0004 movw de, ax mov a, [de] mov [sp+0x00], a shrw ax, 8+0x00004 movw bc, ax movw ax, [sp+0x02] movw de, ax mov a, SMRLW(.STR@194)[bc] mov [de], a incw de mov a, [sp+0x00] shrw ax, 8+0x00000 shlw ax, 0x0C shrw ax, 0x0C movw bc, ax mov a, SMRLW(.STR@195)[bc] mov [de], a movw ax, [sp+0x04] addw ax, #0x0002 movw [sp+0x04], ax incw hl pop ax push hl movw hl, sp movw ax, [hl] .BB@LABEL@30_19: ; bb119 cmpw ax, [hl+0x06] bc $.BB@LABEL@30_18 .BB@LABEL@30_20: ; bb125 movw ax, [sp+0x0A] movw de, ax mov a, [de+0x01] cmp0 a bz $.BB@LABEL@30_22 .BB@LABEL@30_21: ; if_then_bb133 movw ax, [sp+0x0A] movw bc, ax movw ax, 0x0144[bc] movw de, ax movw ax, hl addw ax, #0x0016 addw ax, [hl+0x04] movw [sp+0x0E], ax mov [sp+0x10], #0x0F movw ax, #SMRLW(.STR@196) movw [sp+0x12], ax mov [sp+0x14], #0x0F mov a, 0x0146[bc] shrw ax, 8+0x00000 push ax push de movw ax, [sp+0x16] movw bc, ax movw ax, [sp+0x12] movw de, ax mov a, [sp+0x14] mov x, #0x0F call !!_sprintf movw bc, ax addw sp, #0x04 movw hl, sp movw ax, [sp+0x04] addw ax, bc movw [sp+0x04], ax .BB@LABEL@30_22: ; if_break_bb154 movw ax, hl addw ax, #0x0016 movw bc, ax addw ax, [hl+0x04] movw de, ax mov [de+0x00], #0x0D incw de mov [de+0x00], #0x0A incw de mov [de+0x00], #0x00 movw ax, bc br $!.BB@LABEL@30_4 .LFE30: .TYPE _runtime_reset@1,function,.LFE31-_runtime_reset@1 _runtime_reset@1: .STACK _runtime_reset@1 = 4 movw de, #0x028E clrw bc movw ax, #LOWW(_g_runtime@5) call !!_memset ret .LFE31: .TYPE _is_x_off_cmd@1,function,.LFE32-_is_x_off_cmd@1 _is_x_off_cmd@1: .STACK _is_x_off_cmd@1 = 6 push ax or a, x bz $.BB@LABEL@32_9 .BB@LABEL@32_1: ; if_break_bb pop de push de mov a, [de] cmp a, #0x78 bz $.BB@LABEL@32_3 .BB@LABEL@32_2: ; if_break_bb cmp a, #0x58 bnz $.BB@LABEL@32_9 .BB@LABEL@32_3: ; bb29 mov a, [de+0x01] shrw ax, 8+0x00000 call !!_isdigit or a, x bz $.BB@LABEL@32_9 .BB@LABEL@32_4: ; bb44 pop de push de mov a, [de+0x02] shrw ax, 8+0x00000 call !!_isdigit or a, x bz $.BB@LABEL@32_9 .BB@LABEL@32_5: ; bb59 pop de push de mov a, [de+0x03] cmp a, #0x6F bz $.BB@LABEL@32_7 .BB@LABEL@32_6: ; bb59 cmp a, #0x4F bnz $.BB@LABEL@32_9 .BB@LABEL@32_7: ; bb87 mov a, [de+0x04] cmp0 a bnz $.BB@LABEL@32_9 .BB@LABEL@32_8: ; bb87.bb103_crit_edge oneb a br $.BB@LABEL@32_10 .BB@LABEL@32_9: ; bb96 clrb a .BB@LABEL@32_10: ; bb103 pop bc ret .LFE32: .TYPE _is_start_cmd@1,function,.LFE33-_is_start_cmd@1 _is_start_cmd@1: .STACK _is_start_cmd@1 = 4 cmpw ax, #0x0000 bz $.BB@LABEL@33_13 .BB@LABEL@33_1: ; if_break_bb movw de, ax mov a, [de] cmp a, #0x73 bz $.BB@LABEL@33_3 .BB@LABEL@33_2: ; if_break_bb cmp a, #0x53 bnz $.BB@LABEL@33_13 .BB@LABEL@33_3: ; bb29 mov a, [de+0x01] cmp a, #0x74 bz $.BB@LABEL@33_5 .BB@LABEL@33_4: ; bb29 cmp a, #0x54 bnz $.BB@LABEL@33_13 .BB@LABEL@33_5: ; bb57 mov a, [de+0x02] cmp a, #0x61 bz $.BB@LABEL@33_7 .BB@LABEL@33_6: ; bb57 cmp a, #0x41 bnz $.BB@LABEL@33_13 .BB@LABEL@33_7: ; bb85 mov a, [de+0x03] cmp a, #0x72 bz $.BB@LABEL@33_9 .BB@LABEL@33_8: ; bb85 cmp a, #0x52 bnz $.BB@LABEL@33_13 .BB@LABEL@33_9: ; bb113 mov a, [de+0x04] cmp a, #0x74 bz $.BB@LABEL@33_11 .BB@LABEL@33_10: ; bb113 cmp a, #0x54 bnz $.BB@LABEL@33_13 .BB@LABEL@33_11: ; bb141 mov a, [de+0x05] cmp0 a bnz $.BB@LABEL@33_13 .BB@LABEL@33_12: ; bb141.bb157_crit_edge oneb a ret .BB@LABEL@33_13: ; bb150 clrb a ret .LFE33: .TYPE _is_stop_cmd@1,function,.LFE34-_is_stop_cmd@1 _is_stop_cmd@1: .STACK _is_stop_cmd@1 = 4 cmpw ax, #0x0000 bz $.BB@LABEL@34_11 .BB@LABEL@34_1: ; if_break_bb movw de, ax mov a, [de] cmp a, #0x73 bz $.BB@LABEL@34_3 .BB@LABEL@34_2: ; if_break_bb cmp a, #0x53 bnz $.BB@LABEL@34_11 .BB@LABEL@34_3: ; bb29 mov a, [de+0x01] cmp a, #0x74 bz $.BB@LABEL@34_5 .BB@LABEL@34_4: ; bb29 cmp a, #0x54 bnz $.BB@LABEL@34_11 .BB@LABEL@34_5: ; bb57 mov a, [de+0x02] cmp a, #0x6F bz $.BB@LABEL@34_7 .BB@LABEL@34_6: ; bb57 cmp a, #0x4F bnz $.BB@LABEL@34_11 .BB@LABEL@34_7: ; bb85 mov a, [de+0x03] cmp a, #0x70 bz $.BB@LABEL@34_9 .BB@LABEL@34_8: ; bb85 cmp a, #0x50 bnz $.BB@LABEL@34_11 .BB@LABEL@34_9: ; bb113 mov a, [de+0x04] cmp0 a bnz $.BB@LABEL@34_11 .BB@LABEL@34_10: ; bb113.bb129_crit_edge oneb a ret .BB@LABEL@34_11: ; bb122 clrb a ret .LFE34: .TYPE _is_long_owi_read_len@1,function,.LFE35-_is_long_owi_read_len@1 _is_long_owi_read_len@1: .STACK _is_long_owi_read_len@1 = 4 cmpw ax, #0x007F bz $.BB@LABEL@35_2 .BB@LABEL@35_1: ; entry clrb b br $.BB@LABEL@35_3 .BB@LABEL@35_2: ; entry oneb b .BB@LABEL@35_3: ; entry cmpw ax, #0x0077 bz $.BB@LABEL@35_5 .BB@LABEL@35_4: ; entry clrb a br $.BB@LABEL@35_6 .BB@LABEL@35_5: ; entry oneb a .BB@LABEL@35_6: ; entry or a, b ret .LFE35: .TYPE _do_stable_owi_read@1,function,.LFE36-_do_stable_owi_read@1 _do_stable_owi_read@1: .STACK _do_stable_owi_read@1 = 668 subw sp, #0xFE subw sp, #0xFE subw sp, #0x9C movw [sp+0x06], ax mov a, c mov [sp+0x02], a movw ax, de movw [sp+0x04], ax call $!_is_long_owi_read_len@1 cmp0 a bz $.BB@LABEL@36_2 .BB@LABEL@36_1: ; if_then_bb clrw bc movw ax, #0x7530 call !!_delay_us call $!_app_kick_wdt@1 .BB@LABEL@36_2: ; if_break_bb movw ax, [sp+0x04] movw de, ax mov a, [sp+0x02] mov c, a movw ax, sp addw ax, #0x0150 movw [sp+0x00], ax call !!_app_owi_read_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x0008 call !!_memcpy call $!_app_kick_wdt@1 mov a, [sp+0x08] cmp0 a bz $.BB@LABEL@36_5 .BB@LABEL@36_3: ; bb20 mov a, [sp+0x09] cmp0 a bnz $.BB@LABEL@36_5 .BB@LABEL@36_4: ; bb33 movw ax, [sp+0x0A] movw bc, ax movw ax, [sp+0x04] cmpw ax, bc bnh $.BB@LABEL@36_7 .BB@LABEL@36_5: ; bb46 movw ax, [sp+0x04] call $!_is_long_owi_read_len@1 cmp0 a bz $.BB@LABEL@36_7 .BB@LABEL@36_6: ; if_then_bb60 clrw bc movw ax, #0x2710 call !!_delay_us call $!_app_kick_wdt@1 movw ax, [sp+0x04] movw de, ax mov a, [sp+0x02] mov c, a movw ax, sp addw ax, #0x0150 movw [sp+0x00], ax call !!_app_owi_read_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x0008 call !!_memcpy call $!_app_kick_wdt@1 .BB@LABEL@36_7: ; if_break_bb65 movw ax, sp addw ax, #0x0008 movw bc, ax movw ax, [sp+0x06] movw de, #0x0148 call !!_memcpy addw sp, #0xFE addw sp, #0xFE addw sp, #0x9C ret .LFE36: .TYPE _copy_nvm_tail8@1,function,.LFE37-_copy_nvm_tail8@1 _copy_nvm_tail8@1: .STACK _copy_nvm_tail8@1 = 10 push bc subw sp, #0x04 movw de, ax or a, x bz $.BB@LABEL@37_2 .BB@LABEL@37_1: ; entry movw ax, [sp+0x04] or a, x bnz $.BB@LABEL@37_3 .BB@LABEL@37_2: ; entry.bb96_crit_edge clrb a br $.BB@LABEL@37_10 .BB@LABEL@37_3: ; if_break_bb mov a, [de] cmp0 a bz $.BB@LABEL@37_2 .BB@LABEL@37_4: ; bb38 mov a, [de+0x01] cmp0 a bnz $.BB@LABEL@37_2 .BB@LABEL@37_5: ; bb52 movw ax, [de+0x02] cmpw ax, #0x007F bnz $.BB@LABEL@37_2 .BB@LABEL@37_6: ; if_break_bb68 movw ax, [de+0x02] addw ax, #0xFFF8 movw [sp+0x02], ax clrw bc br $.BB@LABEL@37_8 .BB@LABEL@37_7: ; bb73 movw ax, [sp+0x02] addw ax, bc addw ax, de addw ax, #0x0004 movw hl, ax movw ax, [sp+0x04] addw ax, bc movw [sp+0x00], ax mov a, [hl] mov h, a movw ax, [sp+0x00] xchw ax, hl mov [hl], a incw bc .BB@LABEL@37_8: ; bb89 movw ax, bc cmpw ax, #0x0008 bc $.BB@LABEL@37_7 .BB@LABEL@37_9: ; bb89.bb96_crit_edge oneb a .BB@LABEL@37_10: ; bb96 addw sp, #0x06 ret .LFE37: .TYPE _tail8_to_hex16@1,function,.LFE38-_tail8_to_hex16@1 _tail8_to_hex16@1: .STACK _tail8_to_hex16@1 = 10 push bc push ax push hl or a, x bz $.BB@LABEL@38_6 .BB@LABEL@38_1: ; entry movw ax, [sp+0x04] or a, x bz $.BB@LABEL@38_6 .BB@LABEL@38_2: ; entry.bb61_crit_edge clrb a br $.BB@LABEL@38_4 .BB@LABEL@38_3: ; bb25 shrw ax, 8+0x00000 addw ax, ax addw ax, [hl+0x04] movw de, ax movw ax, [sp+0x02] movw hl, ax mov a, [sp+0x00] mov b, a mov a, [hl+b] shrw ax, 8+0x00004 movw bc, ax mov a, SMRLW(.STR@1121)[bc] mov [de], a incw de mov a, [sp+0x00] mov b, a mov a, [hl+b] shrw ax, 8+0x00000 shlw ax, 0x0C shrw ax, 0x0C movw bc, ax mov a, SMRLW(.STR@1122)[bc] mov [de], a mov a, [sp+0x00] inc a .BB@LABEL@38_4: ; bb25 mov [sp+0x00], a movw hl, sp cmp a, #0x08 bc $.BB@LABEL@38_3 .BB@LABEL@38_5: ; bb67 movw ax, [sp+0x04] movw de, ax mov [de+0x10], #0x00 .BB@LABEL@38_6: ; return addw sp, #0x06 ret .LFE38: .TYPE _nvm_diag_result@1,function,.LFE39-_nvm_diag_result@1 _nvm_diag_result@1: .STACK _nvm_diag_result@1 = 8 push bc mov !LOWW(_g_nvm_stage@6), a push bc pop de movw ax, [de+0x02] movw !LOWW(_g_nvm_rx_len@7), ax pop bc push bc movw ax, 0x0144[bc] movw !LOWW(_g_nvm_fail_byte@8), ax mov a, 0x0146[bc] mov !LOWW(_g_nvm_fail_bit@9), a pop ax ret .LFE39: .TYPE _print_nvm_failure@1,function,.LFE40-_print_nvm_failure@1 _print_nvm_failure@1: .STACK _print_nvm_failure@1 = 146 subw sp, #0x82 movw ax, #SMRLW(.STR@1129) call $!_out_print@1 mov a, !LOWW(_g_nvm_fail_bit@9) mov [sp+0x01], a movw ax, !LOWW(_g_nvm_fail_byte@8) movw [sp+0x06], ax movw ax, !LOWW(_g_nvm_rx_len@7) movw [sp+0x04], ax mov a, !LOWW(_g_nvm_stage@6) mov [sp+0x02], a call !!_OWI_GetCaptureError mov [sp+0x00], a call !!_OWI_GetCaptureSync movw bc, ax movw ax, sp addw ax, #0x0012 movw [sp+0x08], ax movw [sp+0x0A], ax mov [sp+0x0C], #0x0F movw ax, #SMRLW(.STR@1130) movw [sp+0x0E], ax mov [sp+0x10], #0x0F push bc mov a, [sp+0x02] shrw ax, 8+0x00000 push ax mov a, [sp+0x05] shrw ax, 8+0x00000 push ax movw ax, [sp+0x0C] push ax movw ax, [sp+0x0C] push ax mov a, [sp+0x0C] shrw ax, 8+0x00000 push ax movw ax, [sp+0x1A] movw bc, ax movw ax, [sp+0x16] movw de, ax mov a, [sp+0x18] mov x, #0x0F call !!_sprintf addw sp, #0x0C movw ax, [sp+0x08] call $!_out_print@1 addw sp, #0x82 ret .LFE40: .TYPE _read_connected_nvm_tail8@1,function,.LFE41-_read_connected_nvm_tail8@1 _read_connected_nvm_tail8@1: .STACK _read_connected_nvm_tail8@1 = 664 subw sp, #0xFE subw sp, #0xFE subw sp, #0x98 movw [sp+0x02], ax or a, x .bz $!.BB@LABEL@41_6 .BB@LABEL@41_1: ; if_break_bb mov !LOWW(_g_trace_stage), #0x05 call !!_NVM_TraceStack movw ax, sp addw ax, #0x014C movw [sp+0x00], ax movw de, #SMRLW(_nvm_cmd@10@read_connected_nvm_tail8@1) movw bc, #0x0328 call !!_app_owi_write_basic pop bc push bc movw ax, sp addw ax, #0x0004 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy pop bc push bc mov a, #0x05 call $!_nvm_diag_result@1 mov a, [sp+0x04] cmp0 a bz $.BB@LABEL@41_6 .BB@LABEL@41_2: ; bb23 mov a, [sp+0x05] cmp0 a bnz $.BB@LABEL@41_6 .BB@LABEL@41_3: ; if_break_bb39 clrw bc movw ax, #0x07D0 call !!_delay_us mov !LOWW(_g_trace_stage), #0x06 call !!_NVM_TraceStack movw ax, sp addw ax, #0x014C movw [sp+0x00], ax movw de, #0x007F mov c, #0x28 call $!_do_stable_owi_read@1 pop bc push bc movw ax, sp addw ax, #0x0004 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy pop bc push bc mov a, #0x06 call $!_nvm_diag_result@1 movw ax, [sp+0x02] movw bc, ax movw ax, [sp+0x00] call $!_copy_nvm_tail8@1 cmp0 a bz $.BB@LABEL@41_6 .BB@LABEL@41_4: ; if_break_bb56 oneb a .BB@LABEL@41_5: ; if_break_bb56 addw sp, #0xFE addw sp, #0xFE addw sp, #0x98 ret .BB@LABEL@41_6: ; bb58 clrb a br $.BB@LABEL@41_5 .LFE41: .TYPE _read_connected_nvm_last16@1,function,.LFE42-_read_connected_nvm_last16@1 _read_connected_nvm_last16@1: .STACK _read_connected_nvm_last16@1 = 676 subw sp, #0xFE subw sp, #0xFE subw sp, #0xA4 mov [sp+0x00], a mov a, x mov [sp+0x03], a mov a, c mov [sp+0x02], a mov a, b mov [sp+0x01], a movw ax, de movw [sp+0x06], ax or a, x mov [sp+0x04], #0x7C clrb !LOWW(_g_nvm_stage@6) clrw ax movw !LOWW(_g_nvm_rx_len@7), ax movw ax, #0xFFFF movw !LOWW(_g_nvm_fail_byte@8), ax mov !LOWW(_g_nvm_fail_bit@9), #0xFF .bz $!.BB@LABEL@42_17 .BB@LABEL@42_1: ; if_break_bb mov a, [sp+0x00] cmp0 a .bz $!.BB@LABEL@42_17 .BB@LABEL@42_2: ; if_break_bb cmp a, #0x15 .bnc $!.BB@LABEL@42_17 .BB@LABEL@42_3: ; if_break_bb28 oneb !LOWW(_g_trace_stage) clrw ax movw !LOWW(_g_trace_byte), ax movw ax, #0xFFFF movw !LOWW(_g_trace_stack_low), ax call !!_NVM_TraceStack call !!_Cal_Init pop bc push bc mov a, [sp+0x02] mov c, a mov a, [sp+0x03] mov x, a mov a, [sp+0x00] call !!_Gate_SetByNum mov a, [sp+0x00] call !!_GateCtrl_SelectChannel oneb !LOWW(_g_trace_stage) call !!_NVM_TraceStack movw ax, sp addw ax, #0x0158 movw [sp+0x00], ax movw de, #SMRLW(_connect_cmd@11@read_connected_nvm_last16@1) movw bc, #0x0328 call !!_app_owi_write_t_basic pop bc push bc movw ax, sp addw ax, #0x0010 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy pop bc push bc oneb a call $!_nvm_diag_result@1 mov a, [sp+0x10] cmp0 a .bz $!.BB@LABEL@42_17 .BB@LABEL@42_4: ; bb48 mov a, [sp+0x11] cmp0 a .bnz $!.BB@LABEL@42_17 .BB@LABEL@42_5: ; if_break_bb64 clrw bc movw ax, #0x07D0 call !!_delay_us mov !LOWW(_g_trace_stage), #0x02 call !!_NVM_TraceStack movw ax, sp addw ax, #0x0158 movw [sp+0x00], ax movw de, #0x0002 mov c, #0x28 call !!_app_owi_read_basic pop bc push bc movw ax, sp addw ax, #0x0010 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy pop bc push bc mov a, #0x02 call $!_nvm_diag_result@1 mov a, [sp+0x10] cmp0 a .bz $!.BB@LABEL@42_17 .BB@LABEL@42_6: ; bb78 mov a, [sp+0x11] cmp0 a .bnz $!.BB@LABEL@42_17 .BB@LABEL@42_7: ; bb91 movw ax, [sp+0x12] cmpw ax, #0x0002 .bc $!.BB@LABEL@42_17 .BB@LABEL@42_8: ; if_break_bb106 movw de, #0x0002 movw bc, #SMRLW(_expect_7272@12@read_connected_nvm_last16@1) movw ax, sp addw ax, #0x0014 call !!_memcmp or a, x .bnz $!.BB@LABEL@42_17 .BB@LABEL@42_9: ; if_break_bb115 mov !LOWW(_g_trace_stage), #0x03 call !!_NVM_TraceStack movw ax, sp addw ax, #0x0004 movw de, ax addw ax, #0x0154 movw [sp+0x00], ax movw bc, #0x0128 call !!_app_owi_write_t_basic pop bc push bc movw ax, sp addw ax, #0x0010 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy pop bc push bc mov a, #0x03 call $!_nvm_diag_result@1 mov a, [sp+0x10] cmp0 a .bz $!.BB@LABEL@42_17 .BB@LABEL@42_10: ; bb129 mov a, [sp+0x11] cmp0 a bnz $.BB@LABEL@42_17 .BB@LABEL@42_11: ; if_break_bb145 clrw bc movw ax, #0x07D0 call !!_delay_us mov !LOWW(_g_trace_stage), #0x04 call !!_NVM_TraceStack movw ax, sp addw ax, #0x0158 movw [sp+0x00], ax movw de, #0x0003 mov c, #0x28 call !!_app_owi_read_basic pop bc push bc movw ax, sp addw ax, #0x0010 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy pop bc push bc mov a, #0x04 call $!_nvm_diag_result@1 mov a, [sp+0x10] cmp0 a bz $.BB@LABEL@42_17 .BB@LABEL@42_12: ; bb159 mov a, [sp+0x11] cmp0 a bnz $.BB@LABEL@42_17 .BB@LABEL@42_13: ; bb172 movw ax, [sp+0x12] cmpw ax, #0x0003 bc $.BB@LABEL@42_17 .BB@LABEL@42_14: ; if_break_bb187 movw de, #0x0003 movw bc, #SMRLW(_expect_7c@13@read_connected_nvm_last16@1) movw ax, sp addw ax, #0x0014 call !!_memcmp or a, x bnz $.BB@LABEL@42_17 .BB@LABEL@42_15: ; if_break_bb196 movw ax, sp addw ax, #0x0008 call $!_read_connected_nvm_tail8@1 cmp0 a bz $.BB@LABEL@42_17 .BB@LABEL@42_16: ; if_break_bb211 mov !LOWW(_g_trace_stage), #0x0A movw ax, [sp+0x06] movw bc, ax movw ax, sp addw ax, #0x0008 call $!_tail8_to_hex16@1 oneb a br $.BB@LABEL@42_18 .BB@LABEL@42_17: ; bb215 clrb a .BB@LABEL@42_18: ; bb215 addw sp, #0xFE addw sp, #0xFE addw sp, #0xA4 ret .LFE42: .TYPE _run_connect_verify_one_channel@1,function,.LFE43-_run_connect_verify_one_channel@1 _run_connect_verify_one_channel@1: .STACK _run_connect_verify_one_channel@1 = 1658 movw de, ax movw ax, sp addw ax, #0xF98A movw sp, ax movw ax, de movw [sp+0x04], ax or a, x mov a, c mov [sp+0x02], a mov [sp+0x06], #0x7C bnz $.BB@LABEL@43_2 .BB@LABEL@43_1: ; entry.bb388_crit_edge clrw ax br $!.BB@LABEL@43_36 .BB@LABEL@43_2: ; if_break_bb movw ax, [sp+0x04] movw de, ax movw ax, [de+0x0A] cmpw ax, #0x0006 bnz $.BB@LABEL@43_1 .BB@LABEL@43_3: ; if_break_bb17 cmp0 c bz $.BB@LABEL@43_1 .BB@LABEL@43_4: ; if_break_bb17 mov a, [sp+0x02] cmp a, #0x15 bnc $.BB@LABEL@43_1 .BB@LABEL@43_5: ; if_break_bb37 movw ax, de addw ax, #0x000C movw bc, ax movw de, #0x0003 movw ax, sp addw ax, #0x000A call !!_memcpy movw ax, [sp+0x04] addw ax, #0x000F movw bc, ax movw de, #0x0003 movw ax, sp addw ax, #0x0007 call !!_memcpy clrb a br $!.BB@LABEL@43_34 .BB@LABEL@43_6: ; bb50 cmp0 a bz $.BB@LABEL@43_8 .BB@LABEL@43_7: ; if_then_bb56 call !!_Cal_Init call $!_app_kick_wdt@1 .BB@LABEL@43_8: ; if_break_bb57 call !!_Cal_Init movw ax, [sp+0x04] movw de, ax mov a, [de+0x07] mov b, a mov a, [de+0x06] mov c, a mov a, [de+0x05] mov x, a mov a, [sp+0x02] call !!_Gate_SetByNum mov a, [sp+0x02] call !!_GateCtrl_SelectChannel movw ax, sp addw ax, #0x000A movw de, ax addw ax, #0x014C movw [sp+0x00], ax movw bc, #0x0328 call !!_app_owi_write_t_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x029E call !!_memcpy movw bc, sp mov a, 0x029E[bc] cmp0 a .bz $!.BB@LABEL@43_31 .BB@LABEL@43_9: ; bb84 movw bc, sp mov a, 0x029F[bc] cmp0 a .bnz $!.BB@LABEL@43_31 .BB@LABEL@43_10: ; if_break_bb100 clrw bc movw ax, #0x07D0 call !!_delay_us call $!_app_kick_wdt@1 movw ax, sp addw ax, #0x0156 movw [sp+0x00], ax movw de, #0x0002 mov c, #0x28 call !!_app_owi_read_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x000E call !!_memcpy mov a, [sp+0x0E] cmp0 a bz $.BB@LABEL@43_15 .BB@LABEL@43_11: ; bb114 mov a, [sp+0x0F] cmp0 a bnz $.BB@LABEL@43_15 .BB@LABEL@43_12: ; bb127 movw ax, [sp+0x10] cmpw ax, #0x0002 bc $.BB@LABEL@43_15 .BB@LABEL@43_13: ; bb139 mov a, [sp+0x12] cmp a, #0x72 bnz $.BB@LABEL@43_15 .BB@LABEL@43_14: ; bb154 mov a, [sp+0x13] cmp a, #0x72 bz $.BB@LABEL@43_16 .BB@LABEL@43_15: ; if_then_bb170 clrw bc movw ax, #0x07D0 call !!_delay_us call $!_app_kick_wdt@1 movw ax, sp addw ax, #0x0156 movw [sp+0x00], ax movw de, #0x0002 mov c, #0x28 call !!_app_owi_read_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x000E call !!_memcpy .BB@LABEL@43_16: ; if_break_bb173 mov a, [sp+0x0E] cmp0 a .bz $!.BB@LABEL@43_31 .BB@LABEL@43_17: ; bb185 mov a, [sp+0x0F] cmp0 a .bnz $!.BB@LABEL@43_31 .BB@LABEL@43_18: ; bb198 movw ax, [sp+0x10] cmpw ax, #0x0002 .bc $!.BB@LABEL@43_31 .BB@LABEL@43_19: ; if_break_bb213 mov a, [sp+0x12] cmp a, #0x72 .bnz $!.BB@LABEL@43_31 .BB@LABEL@43_20: ; bb221 mov a, [sp+0x13] cmp a, #0x72 .bnz $!.BB@LABEL@43_31 .BB@LABEL@43_21: ; if_break_bb239 movw ax, sp addw ax, #0x0006 movw de, ax addw ax, #0x0150 movw [sp+0x00], ax movw bc, #0x0128 call !!_app_owi_write_t_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x03E6 call !!_memcpy movw bc, sp mov a, 0x03E6[bc] cmp0 a .bz $!.BB@LABEL@43_31 .BB@LABEL@43_22: ; bb253 movw bc, sp mov a, 0x03E7[bc] cmp0 a .bnz $!.BB@LABEL@43_31 .BB@LABEL@43_23: ; if_break_bb269 clrw bc movw ax, #0x07D0 call !!_delay_us call $!_app_kick_wdt@1 movw ax, sp addw ax, #0x0156 movw [sp+0x00], ax movw de, #0x0003 mov c, #0x28 call !!_app_owi_read_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x052E call !!_memcpy movw bc, sp mov a, 0x052E[bc] cmp0 a bz $.BB@LABEL@43_27 .BB@LABEL@43_24: ; bb283 movw bc, sp mov a, 0x052F[bc] cmp0 a bnz $.BB@LABEL@43_27 .BB@LABEL@43_25: ; bb296 movw bc, sp movw ax, 0x0530[bc] cmpw ax, #0x0003 bc $.BB@LABEL@43_27 .BB@LABEL@43_26: ; bb308 movw ax, sp addw ax, #0x0007 movw bc, ax movw de, #0x0003 addw ax, #0x052B call !!_memcmp or a, x bz $.BB@LABEL@43_28 .BB@LABEL@43_27: ; if_then_bb323 clrw bc movw ax, #0x07D0 call !!_delay_us call $!_app_kick_wdt@1 movw ax, sp addw ax, #0x0156 movw [sp+0x00], ax movw de, #0x0003 mov c, #0x28 call !!_app_owi_read_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x052E call !!_memcpy .BB@LABEL@43_28: ; if_break_bb326 movw bc, sp mov a, 0x052E[bc] cmp0 a bz $.BB@LABEL@43_31 .BB@LABEL@43_29: ; bb338 movw bc, sp mov a, 0x052F[bc] cmp0 a bnz $.BB@LABEL@43_31 .BB@LABEL@43_30: ; bb351 movw bc, sp movw ax, 0x0530[bc] cmpw ax, #0x0003 bnc $.BB@LABEL@43_32 .BB@LABEL@43_31: ; if_then_bb364 call $!_app_kick_wdt@1 br $.BB@LABEL@43_33 .BB@LABEL@43_32: ; if_break_bb366 movw ax, sp addw ax, #0x0007 movw bc, ax movw de, #0x0003 addw ax, #0x052B call !!_memcmp or a, x bz $.BB@LABEL@43_35 .BB@LABEL@43_33: ; bb377 mov a, [sp+0x03] inc a .BB@LABEL@43_34: ; bb377 mov [sp+0x03], a cmp a, #0x02 .bc $!.BB@LABEL@43_6, $!.BB@LABEL@43_1 .BB@LABEL@43_35: ; if_break_bb366.bb388_crit_edge onew ax .BB@LABEL@43_36: ; bb388 movw bc, ax movw ax, sp addw ax, #0x0676 movw sp, ax movw ax, bc ret .LFE43: .TYPE _execute_connect_verify_sequence@1,function,.LFE44-_execute_connect_verify_sequence@1 _execute_connect_verify_sequence@1: .STACK _execute_connect_verify_sequence@1 = 8 push ax push hl or a, x bz $.BB@LABEL@44_20 .BB@LABEL@44_1: ; if_break_bb movw ax, [sp+0x02] movw de, ax mov a, [de] dec a bnz $.BB@LABEL@44_20 .BB@LABEL@44_2: ; if_break_bb18 mov a, [de+0x08] cmp a, #0x02 bnz $.BB@LABEL@44_20 .BB@LABEL@44_3: ; if_break_bb28 mov a, [de+0x09] cmp a, #0x28 bnz $.BB@LABEL@44_20 .BB@LABEL@44_4: ; if_break_bb38 movw ax, [de+0x0A] cmpw ax, #0x0006 bnz $.BB@LABEL@44_20 .BB@LABEL@44_5: ; if_break_bb47 mov a, [de+0x03] cmp0 a bnz $.BB@LABEL@44_13 .BB@LABEL@44_6: ; if_break_bb47.bb72_crit_edge clrb a mov [sp+0x00], a oneb a br $.BB@LABEL@44_10 .BB@LABEL@44_7: ; bb56 mov c, a movw ax, [sp+0x02] call $!_run_connect_verify_one_channel@1 movw hl, sp mov a, x cmp0 a skz .BB@LABEL@44_8: ; if_then_bb66 inc [hl+0x00] .BB@LABEL@44_9: ; if_break_bb69 mov a, [sp+0x01] inc a .BB@LABEL@44_10: ; if_break_bb69 mov [sp+0x01], a cmp a, #0x15 bc $.BB@LABEL@44_7 .BB@LABEL@44_11: ; bb78 mov a, [sp+0x00] cmp0 a bnz $.BB@LABEL@44_19 .BB@LABEL@44_12: ; if_then_bb84 movw ax, #SMRLW(.STR@1143) br $.BB@LABEL@44_18 .BB@LABEL@44_13: ; bb94 cmp a, #0x15 bc $.BB@LABEL@44_15 .BB@LABEL@44_14: ; if_then_bb109 movw ax, #SMRLW(.STR@1144) br $.BB@LABEL@44_18 .BB@LABEL@44_15: ; if_break_bb111 mov a, [de+0x03] mov c, a movw ax, de call $!_run_connect_verify_one_channel@1 or a, x bz $.BB@LABEL@44_17 .BB@LABEL@44_16: ; if_then_bb120 movw ax, #SMRLW(.STR@1145) br $.BB@LABEL@44_18 .BB@LABEL@44_17: ; if_else_bb movw ax, #SMRLW(.STR@1146) .BB@LABEL@44_18: ; if_else_bb call $!_out_print@1 .BB@LABEL@44_19: ; if_break_bb121 call $!_send_end_response@1 onew ax br $.BB@LABEL@44_21 .BB@LABEL@44_20: ; bb123 clrw ax .BB@LABEL@44_21: ; bb123 addw sp, #0x04 ret .LFE44: .TYPE _execute_direct_read_sequence@1,function,.LFE45-_execute_direct_read_sequence@1 _execute_direct_read_sequence@1: .STACK _execute_direct_read_sequence@1 = 1056 movw bc, ax movw ax, sp addw ax, #0xFBE8 movw sp, ax movw ax, bc movw [sp+0x04], ax or a, x .bz $!.BB@LABEL@45_33 .BB@LABEL@45_1: ; if_break_bb movw ax, [sp+0x04] movw de, ax mov a, [de] dec a .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_2: ; if_break_bb18 mov a, [de+0x08] dec a .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_3: ; if_break_bb28 mov a, [de+0x09] cmp a, #0x28 .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_4: ; if_break_bb38 movw ax, [de+0x0A] cmpw ax, #0x0003 .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_5: ; if_break_bb47 mov a, [de+0x03] cmp0 a bz $.BB@LABEL@45_7 .BB@LABEL@45_6: ; if_break_bb47 cmp a, #0x15 bc $.BB@LABEL@45_8 .BB@LABEL@45_7: ; if_then_bb69 movw ax, #SMRLW(.STR@1150) call $!_out_print@1 br $!.BB@LABEL@45_27 .BB@LABEL@45_8: ; if_break_bb71 call !!_Cal_Init movw ax, [sp+0x04] movw de, ax mov a, [de+0x03] mov h, a mov a, [de+0x07] mov b, a mov a, [de+0x06] mov c, a mov a, [de+0x05] mov x, a mov a, h call !!_Gate_SetByNum movw ax, [sp+0x04] movw de, ax mov a, [de+0x03] call !!_GateCtrl_SelectChannel movw ax, [sp+0x04] movw de, ax mov a, [de+0x0C] cmp a, #0x2E bnz $.BB@LABEL@45_12 .BB@LABEL@45_9: ; bb95 mov a, [de+0x0D] cmp0 a bnz $.BB@LABEL@45_12 .BB@LABEL@45_10: ; bb111 mov a, [de+0x0E] cmp a, #0x1F bnz $.BB@LABEL@45_12 .BB@LABEL@45_11: ; bb111.if_break_bb257_crit_edge movw ax, #0x0041 br $.BB@LABEL@45_16 .BB@LABEL@45_12: ; if_else_bb mov a, [de+0x0C] cmp a, #0x22 bnz $.BB@LABEL@45_20 .BB@LABEL@45_13: ; bb137 mov a, [de+0x0D] cmp0 a bnz $.BB@LABEL@45_20 .BB@LABEL@45_14: ; bb153 mov a, [de+0x0E] cmp a, #0x3A bnz $.BB@LABEL@45_20 .BB@LABEL@45_15: ; bb153.if_break_bb257_crit_edge movw ax, #0x0077 .BB@LABEL@45_16: ; bb153.if_break_bb257_crit_edge movw [sp+0x02], ax movw ax, de addw ax, #0x000C movw de, ax movw ax, sp addw ax, #0x0188 movw [sp+0x00], ax movw bc, #0x0328 call !!_app_owi_write_basic pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x02D0 call !!_memcpy movw bc, sp mov a, 0x02D0[bc] cmp0 a bz $.BB@LABEL@45_18 .BB@LABEL@45_17: ; bb277 movw bc, sp mov a, 0x02D1[bc] cmp0 a .bz $!.BB@LABEL@45_28 .BB@LABEL@45_18: ; if_then_bb292 movw ax, #SMRLW(.STR@1152) .BB@LABEL@45_19: ; if_then_bb292 call $!_out_print@1 br $.BB@LABEL@45_26 .BB@LABEL@45_20: ; if_else_bb171 mov a, [de+0x0C] cmp a, #0x26 .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_21: ; bb180 mov a, [de+0x0D] cmp0 a .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_22: ; bb196 mov a, [de+0x0E] cmp a, #0x3E .bnz $!.BB@LABEL@45_33 .BB@LABEL@45_23: ; if_then_bb213 mov a, [de+0x03] mov [sp+0x00], a movw ax, sp addw ax, #0x000E movw de, ax movw ax, [sp+0x04] movw hl, ax mov a, [hl+0x07] mov b, a mov a, [hl+0x06] mov c, a mov a, [hl+0x05] mov x, a mov a, [sp+0x00] call $!_read_connected_nvm_last16@1 cmp0 a bz $.BB@LABEL@45_25 .BB@LABEL@45_24: ; if_then_bb232 movw ax, sp addw ax, #0x001F movw [sp+0x00], ax movw [sp+0x06], ax mov [sp+0x08], #0x0F movw ax, #SMRLW(.STR@1151) movw [sp+0x0A], ax mov [sp+0x0C], #0x0F movw ax, sp addw ax, #0x000E movw bc, ax mov x, #0x0F push ax push bc movw ax, [sp+0x0E] movw bc, ax movw ax, [sp+0x0A] movw de, ax mov a, [sp+0x10] mov x, a mov a, [sp+0x0C] call !!_sprintf addw sp, #0x04 movw ax, [sp+0x00] br $.BB@LABEL@45_19 .BB@LABEL@45_25: ; if_else_bb247 call $!_print_nvm_failure@1 .BB@LABEL@45_26: ; if_break_bb248 movw ax, [sp+0x04] movw de, ax mov a, [de+0x03] call $!_reset_channel_gate_defaults@1 .BB@LABEL@45_27: ; if_break_bb248 call $!_send_end_response@1 onew ax br $.BB@LABEL@45_34 .BB@LABEL@45_28: ; if_break_bb297 movw ax, [sp+0x02] movw de, ax movw ax, sp addw ax, #0x0188 movw [sp+0x00], ax mov c, #0x28 call $!_do_stable_owi_read@1 pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x0040 call !!_memcpy mov a, [sp+0x40] cmp0 a bz $.BB@LABEL@45_31 .BB@LABEL@45_29: ; bb313 mov a, [sp+0x41] cmp0 a bnz $.BB@LABEL@45_31 .BB@LABEL@45_30: ; bb327 movw ax, [sp+0x42] movw bc, ax movw ax, [sp+0x02] cmpw ax, bc bnh $.BB@LABEL@45_32 .BB@LABEL@45_31: ; if_then_bb342 movw ax, #SMRLW(.STR@1153) br $!.BB@LABEL@45_19 .BB@LABEL@45_32: ; if_break_bb347 movw ax, [sp+0x04] movw de, ax mov a, [de+0x03] mov c, a movw ax, sp addw ax, #0x0040 call $!_print_owi_read_result@1 br $.BB@LABEL@45_27 .BB@LABEL@45_33: ; bb352 clrw ax .BB@LABEL@45_34: ; bb352 movw bc, ax movw ax, sp addw ax, #0x0418 movw sp, ax movw ax, bc ret .LFE45: .TYPE _do_nvm_read_after_gauge@1,function,.LFE46-_do_nvm_read_after_gauge@1 _do_nvm_read_after_gauge@1: .STACK _do_nvm_read_after_gauge@1 = 22 subw sp, #0x12 movw ax, sp movw de, ax movw bc, #0x0100 movw ax, #0x0101 call $!_read_connected_nvm_last16@1 cmp0 a bz $.BB@LABEL@46_2 .BB@LABEL@46_1: ; if_then_bb movw ax, sp call $!_out_print@1 movw ax, #SMRLW(.STR@1157) call $!_out_print@1 br $.BB@LABEL@46_3 .BB@LABEL@46_2: ; if_else_bb call $!_print_nvm_failure@1 .BB@LABEL@46_3: ; if_else_bb addw sp, #0x12 ret .LFE46: .TYPE _execute_owi_service_from_job@1,function,.LFE47-_execute_owi_service_from_job@1 _execute_owi_service_from_job@1: .STACK _execute_owi_service_from_job@1 = 666 subw sp, #0xFE subw sp, #0xFE subw sp, #0x98 movw [sp+0x02], ax cmpw ax, #0x0000 bnz $.BB@LABEL@47_2 .BB@LABEL@47_1: ; entry.bb130_crit_edge clrw ax br $.BB@LABEL@47_4 .BB@LABEL@47_2: ; if_break_bb call $!_execute_connect_verify_sequence@1 or a, x bz $.BB@LABEL@47_5 .BB@LABEL@47_3: ; if_break_bb.bb130_crit_edge onew ax .BB@LABEL@47_4: ; bb130 addw sp, #0xFE addw sp, #0xFE addw sp, #0x98 ret .BB@LABEL@47_5: ; if_break_bb16 movw ax, [sp+0x02] call $!_execute_direct_read_sequence@1 or a, x bnz $.BB@LABEL@47_3 .BB@LABEL@47_6: ; if_break_bb24 movw ax, [sp+0x02] movw de, ax mov a, [de+0x03] cmp0 a bz $.BB@LABEL@47_8 .BB@LABEL@47_7: ; if_break_bb24 cmp a, #0x15 bc $.BB@LABEL@47_10 .BB@LABEL@47_8: ; if_then_bb46 movw ax, #SMRLW(.STR@1161) .BB@LABEL@47_9: ; if_then_bb46 call $!_out_print@1 br $.BB@LABEL@47_15 .BB@LABEL@47_10: ; if_break_bb48 call !!_Cal_Init movw ax, [sp+0x02] movw de, ax mov a, [de+0x03] mov h, a mov a, [de+0x07] mov b, a mov a, [de+0x06] mov c, a mov a, [de+0x05] mov x, a mov a, h call !!_Gate_SetByNum movw ax, [sp+0x02] movw de, ax mov a, [de+0x03] call !!_GateCtrl_SelectChannel movw ax, [sp+0x02] movw de, ax mov a, [de] cmp a, #0x01 bnz $.BB@LABEL@47_16 .BB@LABEL@47_11: ; if_then_bb71 mov a, [de+0x09] mov c, a mov a, [de+0x0A] mov b, a movw ax, de addw ax, #0x000C movw hl, ax mov a, [de+0x08] push hl pop de cmp a, #0x02 movw ax, sp bnz $.BB@LABEL@47_13 .BB@LABEL@47_12: ; if_then_bb79 addw ax, #0x014C movw [sp+0x00], ax call !!_app_owi_write_t_basic br $.BB@LABEL@47_14 .BB@LABEL@47_13: ; if_else_bb addw ax, #0x014C movw [sp+0x00], ax call !!_app_owi_write_basic .BB@LABEL@47_14: ; if_else_bb pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x0004 call !!_memcpy movw ax, sp addw ax, #0x0004 call $!_print_owi_write_result@1 .BB@LABEL@47_15: ; if_break_bb105 call $!_send_end_response@1 br $!.BB@LABEL@47_3 .BB@LABEL@47_16: ; if_break_bb107 cmp a, #0x02 bnz $.BB@LABEL@47_18 .BB@LABEL@47_17: ; if_then_bb115 movw ax, [de+0x0A] movw de, ax movw ax, [sp+0x02] movw hl, ax mov a, [hl+0x09] mov c, a movw ax, sp addw ax, #0x014C movw [sp+0x00], ax call !!_app_owi_read_basic pop bc push bc movw ax, sp addw ax, #0x0004 movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy movw ax, [sp+0x02] movw de, ax mov a, [de+0x03] mov c, a movw ax, [sp+0x00] call $!_print_owi_read_result@1 br $.BB@LABEL@47_15 .BB@LABEL@47_18: ; if_break_bb128 movw ax, #SMRLW(.STR@1162) br $!.BB@LABEL@47_9 .LFE47: .TYPE _process_local_legacy_line@1,function,.LFE48-_process_local_legacy_line@1 _process_local_legacy_line@1: .STACK _process_local_legacy_line@1 = 2226 movw bc, ax movw ax, sp addw ax, #0xF752 movw sp, ax movw ax, bc cmpw ax, #0x0000 .bz $!.BB@LABEL@48_44 .BB@LABEL@48_1: ; if_break_bb movw bc, ax movw ax, sp addw ax, #0x04AD movw [sp+0x00], ax movw de, #0x03FF call !!_strncpy movw bc, sp mov 0x08AC[bc], #0x00 movw ax, [sp+0x00] call !!_strlen movw [sp+0x0A], ax xor a, #0x80 cmpw ax, #0x8007 bnc $.BB@LABEL@48_3 .BB@LABEL@48_2: ; if_then_bb19 movw ax, #SMRLW(.STR@1166) br $!.BB@LABEL@48_36 .BB@LABEL@48_3: ; if_break_bb21 movw bc, sp mov a, 0x04AD[bc] cmp a, #0x6F bz $.BB@LABEL@48_5 .BB@LABEL@48_4: ; bb28 movw bc, sp mov a, 0x04AD[bc] cmp a, #0x4F bnz $.BB@LABEL@48_9 .BB@LABEL@48_5: ; bb42 movw bc, sp mov a, 0x04AE[bc] cmp a, #0x77 bz $.BB@LABEL@48_10 .BB@LABEL@48_6: ; bb49 movw bc, sp mov a, 0x04AE[bc] cmp a, #0x57 bz $.BB@LABEL@48_10 .BB@LABEL@48_7: ; bb63 movw bc, sp mov a, 0x04AE[bc] cmp a, #0x72 bz $.BB@LABEL@48_10 .BB@LABEL@48_8: ; bb70 movw bc, sp mov a, 0x04AE[bc] cmp a, #0x52 bz $.BB@LABEL@48_10 .BB@LABEL@48_9: ; if_then_bb105 movw ax, #SMRLW(.STR@1167) br $!.BB@LABEL@48_36 .BB@LABEL@48_10: ; if_break_bb107 movw bc, sp mov a, 0x04AE[bc] cmp a, #0x72 bz $.BB@LABEL@48_13 .BB@LABEL@48_11: ; bb114 movw bc, sp mov a, 0x04AE[bc] cmp a, #0x52 bz $.BB@LABEL@48_13 .BB@LABEL@48_12: ; bb114.if_break_bb130_crit_edge clrb a br $.BB@LABEL@48_14 .BB@LABEL@48_13: ; if_then_bb129 oneb a .BB@LABEL@48_14: ; if_then_bb129 mov [sp+0x07], a cmp0 a bz $.BB@LABEL@48_16 .BB@LABEL@48_15: ; if_break_bb130.if_break_bb161_crit_edge movw bc, #0x0002 movw ax, bc movw [sp+0x04], ax clrb a br $.BB@LABEL@48_18 .BB@LABEL@48_16: ; bb141 movw bc, sp mov a, 0x04AF[bc] cmp a, #0x74 bnz $.BB@LABEL@48_15 .BB@LABEL@48_17: ; if_then_bb158 movw bc, #0x0003 movw ax, bc movw [sp+0x04], ax oneb a .BB@LABEL@48_18: ; if_then_bb158 mov [sp+0x08], a movw ax, sp addw ax, #0x04AD addw ax, bc movw de, ax mov a, [de] cmp a, #0x5F bz $.BB@LABEL@48_20 .BB@LABEL@48_19: ; bb170 mov a, [de] cmp a, #0x3A bnz $.BB@LABEL@48_21 .BB@LABEL@48_20: ; if_then_bb187 incw bc movw ax, bc movw [sp+0x04], ax .BB@LABEL@48_21: ; if_break_bb190 movw ax, [sp+0x0A] xor a, #0x80 movw de, ax movw ax, bc incw ax xor a, #0x80 cmpw ax, de bc $.BB@LABEL@48_23 .BB@LABEL@48_22: ; if_then_bb197 movw ax, #SMRLW(.STR@1168) br $!.BB@LABEL@48_36 .BB@LABEL@48_23: ; if_break_bb199 movw ax, sp addw ax, #0x04AD addw ax, bc movw [sp+0x02], ax movw de, ax mov a, [de] mov b, a movw ax, de incw ax movw [sp+0x00], ax movw de, ax mov a, [de] mov x, a mov a, b call $!_hex2byte@1 mov [sp+0x06], a movw ax, [sp+0x0A] xor a, #0x80 movw bc, ax movw ax, [sp+0x04] addw ax, #0x0004 xor a, #0x80 cmpw ax, bc bnc $.BB@LABEL@48_27 .BB@LABEL@48_24: ; bb219 pop de push de incw de mov a, [de] shrw ax, 8+0x00000 call !!_isdigit or a, x bz $.BB@LABEL@48_27 .BB@LABEL@48_25: ; bb242 movw ax, [sp+0x02] addw ax, #0x0003 movw de, ax mov a, [de] shrw ax, 8+0x00000 call !!_isdigit or a, x bz $.BB@LABEL@48_27 .BB@LABEL@48_26: ; bb266 movw ax, [sp+0x02] addw ax, #0x0004 movw de, ax mov a, [de] shrw ax, 8+0x00000 call !!_isdigit or a, x bnz $.BB@LABEL@48_28 .BB@LABEL@48_27: ; if_then_bb291 movw ax, #SMRLW(.STR@1169) br $.BB@LABEL@48_36 .BB@LABEL@48_28: ; if_break_bb293 movw ax, [sp+0x02] movw bc, ax addw ax, #0x0003 movw de, ax mov a, [de] mov x, #0x0A mulu x movw de, ax movw ax, bc addw ax, #0x0002 movw hl, ax mov a, [hl] mov x, #0x64 mulu x movw [sp+0x00], ax movw ax, [sp+0x02] addw ax, #0x0004 movw hl, ax mov a, [hl] movw hl, sp shrw ax, 8+0x00000 movw bc, ax movw ax, [sp+0x04] addw ax, #0x0005 movw [sp+0x04], ax movw ax, [hl] addw ax, de addw ax, bc addw ax, #0xEB30 movw [sp+0x02], ax cmpw ax, #0x0212 bc $.BB@LABEL@48_30 .BB@LABEL@48_29: ; if_then_bb327 movw ax, #SMRLW(.STR@1170) br $.BB@LABEL@48_36 .BB@LABEL@48_30: ; if_break_bb329 mov a, [sp+0x07] cmp0 a movw ax, [sp+0x02] .bnz $!.BB@LABEL@48_45 .BB@LABEL@48_31: ; if_then_bb341 cmpw ax, #0x0000 bnz $.BB@LABEL@48_33 .BB@LABEL@48_32: ; if_then_bb346 movw ax, #SMRLW(.STR@1171) br $.BB@LABEL@48_36 .BB@LABEL@48_33: ; if_break_bb348 addw ax, ax addw ax, [hl+0x04] cmpw ax, [hl+0x0A] bnz $.BB@LABEL@48_35 .BB@LABEL@48_34: ; if_break_bb348.bb385_crit_edge clrw ax br $.BB@LABEL@48_38 .BB@LABEL@48_35: ; if_then_bb357 movw ax, #SMRLW(.STR@1172) .BB@LABEL@48_36: ; if_then_bb357 call $!_out_print@1 br $!.BB@LABEL@48_44 .BB@LABEL@48_37: ; bb360 movw ax, hl addw ax, #0x04AD movw bc, ax movw ax, [hl] addw ax, ax addw ax, [hl+0x04] addw ax, bc movw de, ax mov a, [de] mov b, a incw de mov a, [de] mov x, a mov a, b call $!_hex2byte@1 mov h, a pop bc push bc movw ax, sp addw ax, #0x029C addw ax, bc movw de, ax mov a, h movw hl, sp mov [de], a incw bc movw ax, bc .BB@LABEL@48_38: ; bb360 movw [hl], ax movw ax, [hl] cmpw ax, [hl+0x02] bc $.BB@LABEL@48_37 .BB@LABEL@48_39: ; bb391 call !!_Cal_Init oneb a call !!_GateCtrl_SelectChannel mov a, [sp+0x08] cmp0 a mov a, [sp+0x02] mov b, a movw ax, sp bz $.BB@LABEL@48_41 .BB@LABEL@48_40: ; if_then_bb397 addw ax, #0x029C movw de, ax mov a, [sp+0x06] mov c, a movw ax, sp addw ax, #0x0154 movw [sp+0x00], ax call !!_app_owi_write_t_basic br $.BB@LABEL@48_42 .BB@LABEL@48_41: ; if_else_bb addw ax, #0x029C movw de, ax mov a, [sp+0x06] mov c, a movw ax, sp addw ax, #0x0154 movw [sp+0x00], ax call !!_app_owi_write_basic .BB@LABEL@48_42: ; if_else_bb pop bc push bc movw de, #0x0148 movw ax, sp addw ax, #0x000C call !!_memcpy movw ax, sp addw ax, #0x000C call $!_print_owi_write_result@1 .BB@LABEL@48_43: ; if_break_bb411 call $!_send_end_response@1 .BB@LABEL@48_44: ; return movw ax, sp addw ax, #0x08AE movw sp, ax ret .BB@LABEL@48_45: ; if_break_bb413 or a, x bz $.BB@LABEL@48_47 .BB@LABEL@48_46: ; if_break_bb413 movw ax, [sp+0x04] cmpw ax, [hl+0x0A] bz $.BB@LABEL@48_48 .BB@LABEL@48_47: ; if_then_bb430 movw ax, #SMRLW(.STR@1173) br $!.BB@LABEL@48_36 .BB@LABEL@48_48: ; if_break_bb432 call !!_Cal_Init oneb a call !!_GateCtrl_SelectChannel movw ax, [sp+0x02] movw de, ax mov a, [sp+0x06] mov c, a movw ax, sp addw ax, #0x0154 movw [sp+0x00], ax call !!_app_owi_read_basic pop bc push bc movw ax, sp addw ax, #0x000C movw [sp+0x00], ax movw de, #0x0148 call !!_memcpy movw ax, [sp+0x00] oneb c call $!_print_owi_read_result@1 br $.BB@LABEL@48_43 .LFE48: .TYPE _process_one_line@1,function,.LFE49-_process_one_line@1 _process_one_line@1: .STACK _process_one_line@1 = 1846 movw ax, sp addw ax, #0xF8D6 movw sp, ax push bc pop hl push de pop bc movw ax, #0x0400 push ax movw ax, sp addw ax, #0x00A0 movw de, ax movw ax, hl call $!_build_line_from_rx@1 pop bc addw ax, ax .bnh $!.BB@LABEL@49_17 .BB@LABEL@49_1: ; if_break_bb movw ax, sp addw ax, #0x009E call $!_is_x_off_cmd@1 cmp0 a bz $.BB@LABEL@49_5 .BB@LABEL@49_2: ; if_then_bb14 call !!_Cal_Init movw ax, #SMRLW(.STR@1177) .BB@LABEL@49_3: ; if_then_bb14 call $!_out_print@1 .BB@LABEL@49_4: ; if_then_bb14 call $!_send_end_response@1 br $!.BB@LABEL@49_17 .BB@LABEL@49_5: ; if_break_bb16 movw ax, sp addw ax, #0x009E call $!_is_start_cmd@1 cmp0 a .bz $!.BB@LABEL@49_12 .BB@LABEL@49_6: ; if_then_bb23 call $!_relay_on@1 movw ax, #0x3A98 call $!_delay_ms_wdt@1 movw ax, #LOWW(_rightGauge@4) push ax movw de, #LOWW(_RIGHT_GAUGE@2) movw bc, #LOWW(_leftGauge@3) movw ax, #LOWW(_LEFT_GAUGE@1) call $!_gauge_read_pair@1 pop bc cmp0 a bnz $.BB@LABEL@49_11 .BB@LABEL@49_7: ; if_then_bb34 cmp0 !LOWW(_leftGauge@3+0x0002C) bnz $.BB@LABEL@49_9 .BB@LABEL@49_8: ; if_then_bb46 movw bc, #LOWW(_leftGauge@3) movw ax, #LOWW(_LEFT_GAUGE@1) call $!_gauge_read@1 .BB@LABEL@49_9: ; if_break_bb48 cmp0 !LOWW(_rightGauge@4+0x0002C) bnz $.BB@LABEL@49_11 .BB@LABEL@49_10: ; if_then_bb60 movw bc, #LOWW(_rightGauge@4) movw ax, #LOWW(_RIGHT_GAUGE@2) call $!_gauge_read@1 .BB@LABEL@49_11: ; if_break_bb63 movw ax, #LOWW(_leftGauge@3) push ax movw ax, sp addw ax, #0x0030 movw [sp+0x06], ax movw de, #SMRLW(.STR@1178) movw bc, #0x0020 call $!_gauge_format_value@1 pop ax movw ax, #LOWW(_rightGauge@4) push ax movw ax, sp addw ax, #0x0010 movw [sp+0x02], ax movw de, #SMRLW(.STR@1179) movw bc, #0x0020 call $!_gauge_format_value@1 pop ax movw ax, sp addw ax, #0x004E movw [sp+0x02], ax movw [sp+0x06], ax mov [sp+0x08], #0x0F movw ax, #SMRLW(.STR@1180) movw [sp+0x0A], ax mov [sp+0x0C], #0x0F mov x, #0x0F movw bc, ax push ax movw ax, [sp+0x02] push ax push bc movw ax, [sp+0x0A] push ax movw ax, [sp+0x12] movw bc, ax movw ax, [sp+0x0E] movw de, ax mov a, [sp+0x14] mov x, a mov a, [sp+0x10] call !!_sprintf addw sp, #0x08 movw ax, [sp+0x02] call $!_out_print@1 movw ax, #0x03E8 call $!_delay_ms_wdt@1 call $!_do_nvm_read_after_gauge@1 movw ax, #0x0064 call $!_delay_ms_wdt@1 br $!.BB@LABEL@49_4 .BB@LABEL@49_12: ; if_break_bb86 movw ax, sp addw ax, #0x009E call $!_is_stop_cmd@1 cmp0 a bz $.BB@LABEL@49_14 .BB@LABEL@49_13: ; if_then_bb93 call $!_relay_off@1 movw ax, #SMRLW(.STR@1181) br $!.BB@LABEL@49_3 .BB@LABEL@49_14: ; if_break_bb95 movw ax, sp addw ax, #0x049E movw de, ax add a, #0xFC movw bc, ax clrb a call !!_app_cmd_parse_line or a, x bnz $.BB@LABEL@49_18 .BB@LABEL@49_15: ; if_then_bb108 movw ax, #SMRLW(.STR@1182) .BB@LABEL@49_16: ; if_then_bb108 call $!_out_print@1 .BB@LABEL@49_17: ; return movw ax, sp addw ax, #0x072A movw sp, ax ret .BB@LABEL@49_18: ; if_break_bb110 movw ax, sp addw ax, #0x049E call !!_app_scheduler_push or a, x bnz $.BB@LABEL@49_17 .BB@LABEL@49_19: ; if_then_bb122 movw ax, #SMRLW(.STR@1183) br $.BB@LABEL@49_16 .LFE49: .TYPE _app_runtime_try_start@1,function,.LFE50-_app_runtime_try_start@1 _app_runtime_try_start@1: .STACK _app_runtime_try_start@1 = 4 cmp0 !LOWW(_g_runtime@5) bnz $.BB@LABEL@50_3 .BB@LABEL@50_1: ; if_break_bb movw ax, #LOWW(_g_runtime@5+0x00002) call !!_app_scheduler_pop or a, x skz .BB@LABEL@50_2: ; if_then_bb8 oneb !LOWW(_g_runtime@5) .BB@LABEL@50_3: ; return ret .LFE50: .TYPE _app_job_tick@1,function,.LFE51-_app_job_tick@1 _app_job_tick@1: .STACK _app_job_tick@1 = 4 call $!_app_runtime_try_start@1 cmp0 !LOWW(_g_runtime@5) bz $.BB@LABEL@51_10 .BB@LABEL@51_1: ; if_break_bb mov a, !LOWW(_g_runtime@5+0x00002) dec a cmp a, #0x02 bc $.BB@LABEL@51_5 .BB@LABEL@51_2: ; if_break_bb add a, #0xFE cmp0 a bz $.BB@LABEL@51_8 .BB@LABEL@51_3: ; if_break_bb dec a bnz $.BB@LABEL@51_9 .BB@LABEL@51_4: ; switch_clause_bb26 movw ax, #LOWW(_g_runtime@5+0x0014E) call $!_process_local_legacy_line@1 br $.BB@LABEL@51_9 .BB@LABEL@51_5: ; switch_clause_bb movw ax, #LOWW(_g_runtime@5+0x00002) call $!_execute_owi_service_from_job@1 or a, x bnz $.BB@LABEL@51_7 .BB@LABEL@51_6: ; if_then_bb21 movw ax, #SMRLW(.STR@1190) call $!_out_print@1 .BB@LABEL@51_7: ; if_break_bb22 clrb !LOWW(_g_trace_stage) br $.BB@LABEL@51_9 .BB@LABEL@51_8: ; switch_clause_bb24 movw ax, #SMRLW(.STR@1191) call $!_out_print@1 .BB@LABEL@51_9: ; switch_clause_bb28 call $!_runtime_reset@1 .BB@LABEL@51_10: ; return ret .LFE51: .TYPE _main,function,.LFE52-_main _main: .STACK _main = 150 subw sp, #0x8A call $!_R_MAIN_UserInit call !!_R_WDT_Create call !!_R_WDT_Restart movw ax, #0x01F4 call $!_delay_ms_wdt@1 call $!_relay_init@1 movw ax, #LOWW(_LEFT_GAUGE@1) call $!_gauge_setup_pins@1 movw ax, #LOWW(_RIGHT_GAUGE@2) call $!_gauge_setup_pins@1 call !!_R_UART1_Create call !!_R_IICA0_Create call !!_R_UART1_Start call !!_app_scheduler_init call $!_runtime_reset@1 call !!_Cal_Init movw ax, #SMRLW(.STR@1195) call $!_uart1_send_string_safe@1 movw ax, sp addw ax, #0x0012 movw [sp+0x00], ax movw [sp+0x06], ax mov [sp+0x08], #0x0F movw ax, #SMRLW(.STR@1196) movw [sp+0x0E], ax mov [sp+0x10], #0x0F mov a, !LOWW(_g_boot_reset_flags) shrw ax, 8+0x00000 push ax movw ax, [sp+0x10] movw bc, ax movw ax, [sp+0x08] movw de, ax mov a, [sp+0x0A] mov x, #0x0F call !!_sprintf pop ax movw ax, [sp+0x00] call $!_uart1_send_string_safe@1 movw ax, !LOWW(_g_trace_magic) cmpw ax, #0x4352 bnz $.BB@LABEL@52_2 .BB@LABEL@52_1: ; if_then_bb mov a, !LOWW(_g_trace_stage) mov h, a movw bc, !LOWW(_g_trace_byte) movw de, !LOWW(_g_trace_stack_low) movw ax, sp addw ax, #0x003A movw [sp+0x00], ax movw [sp+0x02], ax mov [sp+0x04], #0x0F movw ax, #SMRLW(.STR@1197) movw [sp+0x0A], ax mov [sp+0x0C], #0x0F mov a, !LOWW(_g_trace_isr) shrw ax, 8+0x00000 push ax push de push bc mov a, h shrw ax, 8+0x00000 push ax movw ax, [sp+0x12] movw bc, ax movw ax, [sp+0x0A] movw de, ax mov a, [sp+0x0C] mov x, #0x0F call !!_sprintf addw sp, #0x08 movw ax, [sp+0x00] call $!_uart1_send_string_safe@1 .BB@LABEL@52_2: ; if_break_bb movw ax, #0x4352 movw !LOWW(_g_trace_magic), ax clrb !LOWW(_g_trace_stage) clrw ax movw !LOWW(_g_trace_byte), ax movw ax, #0xFFFF movw !LOWW(_g_trace_stack_low), ax clrb !LOWW(_g_trace_isr) clrb !LOWW(_uart_rx_done) clrw ax movw !LOWW(_uart_rx_index), ax movw !LOWW(_uart_rx_length), ax onew bc movw ax, #LOWW(_uart_rx_buffer) call !!_R_UART1_Receive br $.BB@LABEL@52_5 .BB@LABEL@52_3: ; if_then_bb36 movw de, !LOWW(_uart_rx_length) movw bc, #LOWW(_uart_rx_buffer) clrb a call $!_process_one_line@1 clrb !LOWW(_uart_rx_done) clrw ax movw !LOWW(_uart_rx_index), ax movw !LOWW(_uart_rx_length), ax onew bc movw ax, #LOWW(_uart_rx_buffer) call !!_R_UART1_Receive .BB@LABEL@52_4: ; if_break_bb39 call $!_app_job_tick@1 call $!_app_kick_wdt@1 .BB@LABEL@52_5: ; bb40 call $!_app_kick_wdt@1 cmp0 !LOWW(_uart_rx_done) bnz $.BB@LABEL@52_3 br $.BB@LABEL@52_4 .LFE52: .TYPE _R_MAIN_UserInit,function,.LFE53-_R_MAIN_UserInit _R_MAIN_UserInit: .STACK _R_MAIN_UserInit = 4 ei call !!_R_PORT_Create ret .LFE53: .SECTION .data,DATA .TYPE _uart_rx_done,object,1 _uart_rx_done: .DS (1) .ALIGN 2 .TYPE _uart_rx_index,object,2 _uart_rx_index: .DS (2) .TYPE _uart_rx_buffer,object,1024 _uart_rx_buffer: .DS (1024) .ALIGN 2 .TYPE _uart_rx_length,object,2 _uart_rx_length: .DS (2) .TYPE _g_fixed_addr,object,1 _g_fixed_addr: .DS (1) .ALIGN 2 .TYPE _LEFT_GAUGE@1,object,24 _LEFT_GAUGE@1: .DB2 0xFF0F .DB2 0xFF2F .DB2 0x003F .DB 0x02 .DS (1) .DB2 0xFF06 .DB2 0xFF26 .DB2 0x0036 .DB 0x40 .DS (1) .DB2 0xFF00 .DB2 0xFF20 .DB2 0x0030 .DB 0x01 .DS (1) .ALIGN 2 .TYPE _RIGHT_GAUGE@2,object,24 _RIGHT_GAUGE@2: .DB2 0xFF0F .DB2 0xFF2F .DB2 0x003F .DB 0x01 .DS (1) .DB2 0xFF06 .DB2 0xFF26 .DB2 0x0036 .DB 0x80 .DS (1) .DB2 0xFF0F .DB2 0xFF2F .DB2 0x003F .DB 0x40 .DS (1) .SECTION .bss,BSS .ALIGN 2 .TYPE _leftGauge@3,object,46 _leftGauge@3: .DS (46) .ALIGN 2 .TYPE _rightGauge@4,object,46 _rightGauge@4: .DS (46) .ALIGN 2 .TYPE _g_runtime@5,object,654 _g_runtime@5: .DS (654) .TYPE _g_nvm_stage@6,object,1 _g_nvm_stage@6: .DS (1) .ALIGN 2 .TYPE _g_nvm_rx_len@7,object,2 _g_nvm_rx_len@7: .DS (2) .ALIGN 2 .TYPE _g_nvm_fail_byte@8,object,2 _g_nvm_fail_byte@8: .DS (2) .TYPE _g_nvm_fail_bit@9,object,1 _g_nvm_fail_bit@9: .DS (1) .SECTION .const,CONST .STR@1: .DB 0x3C,0x65,0x6E,0x64,0x3E,0x0D,0x0A .DS (1) .STR@173: .DB 0x25,0x73,0x25,0x2E,0x2A,0x66 .DS (1) .STR@174: .DB 0x25,0x73,0x45,0x52,0x52 .DS (1) .STR@184: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@185: .DB 0x35,0x31,0x0D,0x0A .DS (1) .STR@186: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@193: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@194: .DB 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 .DS (1) .STR@195: .DB 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 .DS (1) .STR@196: .DB 0x20,0x21,0x54,0x4F,0x28,0x42,0x25,0x75,0x20,0x62,0x25,0x75,0x29 .DS (1) .STR@1121: .DB 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 .DS (1) .STR@1122: .DB 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46 .DS (1) .STR@1129: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@1130: .DB 0x4E,0x56,0x4D,0x20,0x53,0x3D,0x25,0x75,0x20,0x52,0x58,0x3D,0x25,0x75,0x20,0x42 .DB 0x3D,0x25,0x75,0x20,0x62,0x3D,0x25,0x75,0x20,0x43,0x41,0x50,0x3D,0x25,0x75,0x20 .DB 0x53,0x59,0x4E,0x43,0x3D,0x25,0x30,0x34,0x58,0x0D,0x0A .DS (1) .STR@1143: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@1144: .DB 0x45,0x72,0x72,0x3A,0x63,0x68,0x5F,0x72,0x61,0x6E,0x67,0x65,0x0D,0x0A .DS (1) .STR@1145: .DB 0x53,0x75,0x63,0x63,0x65,0x73,0x73,0x0D,0x0A .DS (1) .STR@1146: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@1150: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@1151: .DB 0x25,0x73,0x0D,0x0A .DS (1) .STR@1152: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@1153: .DB 0x46,0x61,0x69,0x6C,0x0D,0x0A .DS (1) .STR@1157: .DB 0x0D,0x0A .DS (1) .STR@1161: .DB 0x45,0x72,0x72,0x3A,0x63,0x68,0x5F,0x72,0x61,0x6E,0x67,0x65,0x0D,0x0A .DS (1) .STR@1162: .DB 0x45,0x72,0x72,0x3A,0x6A,0x6F,0x62,0x5F,0x65,0x78,0x65,0x63,0x0D,0x0A .DS (1) .STR@1166: .DB 0x45,0x72,0x72,0x3A,0x73,0x68,0x6F,0x72,0x74,0x0D,0x0A .DS (1) .STR@1167: .DB 0x45,0x72,0x72,0x3A,0x75,0x6E,0x73,0x75,0x70,0x70,0x6F,0x72,0x74,0x65,0x64,0x0D .DB 0x0A .DS (1) .STR@1168: .DB 0x45,0x72,0x72,0x3A,0x69,0x64,0x5F,0x73,0x68,0x6F,0x72,0x74,0x0D,0x0A .DS (1) .STR@1169: .DB 0x45,0x72,0x72,0x3A,0x6C,0x65,0x6E,0x5F,0x64,0x65,0x63,0x0D,0x0A .DS (1) .STR@1170: .DB 0x45,0x72,0x72,0x3A,0x6C,0x65,0x6E,0x5F,0x72,0x61,0x6E,0x67,0x65,0x0D,0x0A .DS (1) .STR@1171: .DB 0x45,0x72,0x72,0x3A,0x70,0x61,0x79,0x6C,0x6F,0x61,0x64,0x30,0x0D,0x0A .DS (1) .STR@1172: .DB 0x45,0x72,0x72,0x3A,0x6C,0x65,0x6E,0x5F,0x6D,0x69,0x73,0x6D,0x61,0x74,0x63,0x68 .DB 0x0D,0x0A .DS (1) .STR@1173: .DB 0x45,0x72,0x72,0x3A,0x72,0x65,0x61,0x64,0x5F,0x6E,0x6F,0x5F,0x70,0x61,0x79,0x6C .DB 0x6F,0x61,0x64,0x0D,0x0A .DS (1) .STR@1177: .DB 0x3C,0x41,0x43,0x4B,0x3E,0x4F,0x46,0x46,0x0D,0x0A .DS (1) .STR@1178: .DB 0x4C,0x3A .DS (1) .STR@1179: .DB 0x52,0x3A .DS (1) .STR@1180: .DB 0x25,0x73,0x2C,0x25,0x73,0x0D,0x0A .DS (1) .STR@1181: .DB 0x52,0x45,0x4C,0x41,0x59,0x20,0x4F,0x46,0x46,0x0D,0x0A .DS (1) .STR@1182: .DB 0x45,0x72,0x72,0x3A,0x70,0x61,0x72,0x73,0x65,0x0D,0x0A .DS (1) .STR@1183: .DB 0x45,0x72,0x72,0x3A,0x71,0x75,0x65,0x75,0x65,0x5F,0x66,0x75,0x6C,0x6C,0x0D,0x0A .DS (1) .STR@1190: .DB 0x45,0x72,0x72,0x3A,0x6A,0x6F,0x62,0x5F,0x65,0x78,0x65,0x63,0x0D,0x0A .DS (1) .STR@1191: .DB 0x45,0x72,0x72,0x3A,0x75,0x6E,0x73,0x75,0x70,0x70,0x6F,0x72,0x74,0x65,0x64,0x0D .DB 0x0A .DS (1) .STR@1195: .DB 0x42,0x4F,0x4F,0x54,0x20,0x73,0x69,0x6E,0x67,0x6C,0x65,0x2D,0x6D,0x6F,0x64,0x65 .DB 0x0D,0x0A .DS (1) .STR@1196: .DB 0x42,0x4F,0x4F,0x54,0x20,0x63,0x61,0x70,0x74,0x75,0x72,0x65,0x2D,0x72,0x35,0x20 .DB 0x52,0x45,0x53,0x46,0x3D,0x25,0x30,0x32,0x58,0x0D,0x0A .DS (1) .STR@1197: .DB 0x50,0x52,0x45,0x56,0x20,0x53,0x3D,0x25,0x75,0x20,0x42,0x3D,0x25,0x75,0x20,0x53 .DB 0x54,0x41,0x43,0x4B,0x3D,0x25,0x30,0x34,0x58,0x20,0x49,0x53,0x52,0x3D,0x25,0x75 .DB 0x0D,0x0A .DS (1) .TYPE _nvm_cmd@10@read_connected_nvm_tail8@1,object,3 _nvm_cmd@10@read_connected_nvm_tail8@1: .DB 0x26 .DS (1) .DB 0x3E .TYPE _expect_7c@13@read_connected_nvm_last16@1,object,3 _expect_7c@13@read_connected_nvm_last16@1: .DB 0x7C,0x78,0x01 .TYPE _expect_7272@12@read_connected_nvm_last16@1,object,2 _expect_7272@12@read_connected_nvm_last16@1: .DB 0x72,0x72 .TYPE _connect_cmd@11@read_connected_nvm_last16@1,object,3 _connect_cmd@11@read_connected_nvm_last16@1: .DB 0x72,0x7E,0xA9