You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4146 lines
79 KiB

2 months ago
#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