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.
4145 lines
79 KiB
4145 lines
79 KiB
#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
|
|
|