📄 node07.ns
字号:
; LONNCC32 - Echelon (R) Neuron (R) C Compiler
; Copyright (c) 1989 - 2003 Echelon Corp
; All Rights Reserved.
; Assembly code from LONNCC32 Version 4.01.64
; Code generated from 'NODE07.NC' on Thu Dec 13 13:34:38 2007
SUBHEAD Generated from the input file: D:\Source\mk\node07\node07.nc
RADIX HEX
SEG EECODE_SPCL_1
ORG 0F000
NBMTS EQU 000
NFBS EQU 000
NNVS EQU 029
NALIAS EQU 005
PROTECT EQU 00
RUNUNCNFGED EQU 00
NEURONID
RES 8
DIRECTORY EXPORT
DATA.B PTR TEVT-3*NNVS
PROTECTBIT EXPORT
DATA.B PROTECT+RUNUNCNFGED+NNVS,PTR SIDATA
PROGID EXPORT
DATA.B 090,000,000,000,000,000,000,003
MODETABLE EXPORT
DATA.B 043
DATA.B 0F0,02F
DATA.B 088,0AB
BUFCOUNTS EXPORT
DATA.B 033,033,033
EENEARBYTES EXPORT
DATA.B 000
DATA.B 000,000
DATA.B 0BF,019,0BF
DATA.B 004 | _tx_by_addr
TX_CTRL EQU *-1
EXPORT TX_CTRL
SEG EECODE_SPCL_2
ORG
RODS2
DATA.B PROTECT+00+NALIAS,000
DATA.B 7F,000,000
SEG EECODE_SPCL_3
ORG
LOCATION
RES 8
COMM
RES 10
MSG
RES 1
DOMAIN EXPORT
RES 01E
ADDR
RES 04B
TNVCNFG
RES 3*NNVS
TNVALIASES
RES 4*NALIAS
CONFIGCHECKSUM
RES 1
PAGE
; Boilerplate file for compiler-generated assembly output
; Copyright (c) 1990 - 2003 Echelon Corporation.
; All Rights Reserved.
; Date last modified: 18-Mar-2003
; List of imported symbols - Library functions
IMPORT delay,msec_delay,random,reverse,scaled_delay
; List of imported symbols - Misc builtin function support
IMPORT _bcd2bin,_bin2bcd,_fblock_director,_sleep
; List of imported symbols - Compiler helper functions
IMPORT _abs8,_abs16,_add16,_add_8_16f,_adds_8_16,_and16,_alloc
IMPORT _bitf_sign_ext,_dealloc,_dec16,_div8,_div8s,_div16,_div16s
IMPORT _drop_n,_drop_n_preserve_1,_drop_n_preserve_2,_drop_n_return_1
IMPORT _drop_n_return_2,_eeprom_write,_eeprom_write_long
IMPORT _eeprom_far_write,_eeprom_far_write_long,_equal8,_equal16
IMPORT _gequ8,_gequ8s,_gequ16,_gequ16s,_get_sp,_inc16,_ldP0_fetchl
IMPORT _less8,_less8s,_less16,_less16s,_log8,_log16,_lognot8,_lognot16
IMPORT _l_shift8,_l_shift8s,_l_shift16,_l_shift16s,_l_shift8_3
IMPORT _l_shift8_4,_l_shift8_5,_l_shift8_6,_l_shift8_7,_lshift8_add16
IMPORT _lshift16_add16,_lshift8by1_add16,_lshift8by2_add16
IMPORT _max8,_max8s,_max16,_max16s,_min8,_min8s,_min16,_min16s
IMPORT _memcpy,_memcpy8,_memcpy16,_memset,_memset8,_memset16
IMPORT _minus16s,_mod8,_mod8s,_mod16,_mod16s,_mul8,_mul16,_mul_8_16
IMPORT _muls_8_16,_mul8l,_mul8ls,_not16,_or16
IMPORT _pop,_pop1,_popd,_popd1,_push,_push1,_pushd,_pushd1
IMPORT _r_shift8,_r_shift8s,_r_shift16,_r_shift16s
IMPORT _r_shift8_3,_r_shift8_4,_r_shift8_5,_r_shift8_6,_r_shift8_7
IMPORT _register_call,_sign_extend16,_sub16,_xor16
PAGE
; List of imported symbols - I/O functions
IMPORT _bit_input,_bit_output_lo1,_bit_output_lo2,_bit_output_hi
IMPORT _bit_input_ext,_bit_output_ext,_bitshift_input
IMPORT _bitshift_output,burst_sequence_output,_byte_input,_byte_output
IMPORT _dualslope_input,_dualslope_start
IMPORT _edgelog_input,edgelog_input_single,edgelog_setup_single
IMPORT _frequency_output,_ir_input,_i2c_read,_i2c_write
IMPORT _i2c_read0,_i2c_write0,_i2c_read_opt0,_i2c_write_opt0
IMPORT _i2c_read8,_i2c_write8,_i2c_read_opt8,_i2c_write_opt8
IMPORT _leveldetect_input
IMPORT _magcard_input,_magt1_input,_magt2_input,magx_input
IMPORT _muxbus_read,_muxbus_reread,_muxbus_write,_muxbus_rewrite
IMPORT _neurowire_master,_neurowire_slave,_neurowire_inv_master
IMPORT _neurowire_inv_slave,_nibble_input,_nibble_output
IMPORT _oneshot_output,_parallel_input,_parallel_input_ready
IMPORT _parallel_output,_parallel_output_ready,_parallel_output_request
IMPORT _period_input,_pulsecount_output,_pulsewidth_output
IMPORT _quadrature_input,_io_sci_baud,_io_sci_init,_io_sci_init2
IMPORT _io_sci_get_error,_io_sci_set_buffer_in,_io_sci_set_buffer_out
IMPORT _io_scispi_abort,_io_scispi_input_ready,_io_scispi_output_ready
IMPORT _io_spi_clock,_io_spi_init,_io_spi_init2,_io_spi_set_buffer
IMPORT _serial_input,_serial_output,_totalize_input
IMPORT _touch_bit,_touch_byte,_touch_first,_touch_next,_touch_read
IMPORT _touch_reset,_touch_write,ext_touch_bit,ext_touch_byte
IMPORT ext_touch_first,ext_touch_next,ext_touch_read,ext_touch_reset
IMPORT ext_touch_write,_triac_level_output,_triac_pulse_output
IMPORT _wiegand_input
; List of imported symbols - I/O control functions
IMPORT io_edgelog_preload
IMPORT _init_baud,_init_timer_counter1,_init_timer_counter2
IMPORT _io_abort_clear,_io_change_init,_io_direction_lo
IMPORT _io_direction_hi,io_idis,io_iena,_io_input_value
IMPORT _io_set_clock,_io_set_clock_x2,_select_input_fn
; List of imported symbols - Messaging support
IMPORT _bound_mt,_msg_alloc,_msg_alloc_priority,_msg_cancel,_msg_free
IMPORT _msg_receive,_msg_send,_msg_auth_get,_msg_code_get
IMPORT _msg_duplicate_get,_msg_rcvtx_get
IMPORT _msg_data_blockget,_msg_data_get,_msg_len_get,_msg_service_get
IMPORT _msg_auth_set,_msg_code_set,_msg_data_blockset,_msg_data_set
IMPORT _msg_priority_set,_msg_service_set,_msg_tag_set,msg_tag_index
IMPORT _resp_alloc,_resp_cancel,_resp_free,_resp_receive,_resp_send
IMPORT _resp_code_set,_resp_data_blockset,_resp_data_set
; List of imported symbols - Network Variable support
IMPORT _bound_nv,_nv_array_poll,_nv_array_index
IMPORT _nv_array_update_request,nv_in_addr,nv_in_index,_nv_poll
IMPORT _nv_poll_all,_nv_update,_nv_update_int,_nv_update_int_offset
IMPORT _nv_update_long,_nv_update_long_offset
IMPORT _nv_update_request,_nv_update_request_all
PAGE
; List of imported symbols - Timer support
IMPORT _timer_get,_timer_off
IMPORT _timer_mset,_timer_mset_repeat,_timer_sset,_timer_sset_repeat
; List of imported symbols - Event support
IMPORT _io_changes,_io_changes_to,_io_changes_by,_io_update_occurs
IMPORT _flush_completes,_msg_arrives,_msg_code_arrives,_msg_completes
IMPORT _msg_fails,_msg_succeeds,_nv_array_update_completes
IMPORT _nv_array_update_fails,_nv_array_update_occurs
IMPORT _nv_array_update_succeeds,_nv_update_completes,_nv_update_fails
IMPORT _nv_update_succeeds,_nv_update_occurs,_offline,_online
IMPORT _resp_arrives,_timer_expires,_timer_expires_any,_wink
; List of imported symbols - Special symbols support
IMPORT _arb_presf,_idem_dup,_new_binding_constraints,_query_stats
IMPORT _tx_by_addr,init_phase_detection,get_current_nv_length
; List of imported symbols - Debug kernel entries
IMPORT _larva_entry,_larva_entry_exec,_larva_entry_notify
IMPORT _larva_entry_min,_larva_reset
; End of boilerplate file
PAGE
IMPORT %cp_template_file
IMPORT %cp_modifiable_value_file
IMPORT %cp_readonly_value_file
IMPORT %cp_template_file_len_fake
IMPORT %cp_modifiable_value_file_len_fake
IMPORT %cp_readonly_value_file_len_fake
IMPORT %fblock_index_map
IMPORT set_nv_length
IMPORT get_nv_length
IMPORT get_nv_type
IMPORT %get_nv_length_override
IMPORT activate_service_led
IMPORT application_restart
IMPORT error_log
IMPORT flush
IMPORT flush_cancel
IMPORT flush_wait
IMPORT go_offline
IMPORT go_unconfigured
IMPORT go_configured
IMPORT node_reset
IMPORT offline_confirm
IMPORT post_events
IMPORT refresh_memory
IMPORT service_pin_msg_send
IMPORT service_pin_state
IMPORT set_eeprom_lock
IMPORT timers_off
IMPORT watchdog_update
IMPORT watchdog_update_old
IMPORT _msg_out_addr_ptr
IMPORT _msg_in_addr_ptr
IMPORT _resp_in_addr_ptr
IMPORT config_data
IMPORT read_only_data
IMPORT read_only_data_2
IMPORT access_address
IMPORT access_domain
IMPORT access_nv
IMPORT access_alias
IMPORT update_address
IMPORT update_domain
IMPORT update_clone_domain
IMPORT update_nv
IMPORT update_alias
IMPORT update_config_data
IMPORT update_program_id
SEG RAMNEAR
ORG
%SDI APEXP
RES 1
SEG RAMNEAR
ORG
%dq APEXP
RES 6
SEG RAMNEAR
ORG
%nviTime APEXP
RES 6
SEG RAMNEAR
ORG
%TEMP1 APEXP
RES 1
SEG CODE
ORG
%START APEXP ; Function body
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #0
PUSHS #2
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%SDI)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
RET
SEG CODE
ORG
%WACK APEXP ; Function body
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #0
POP [1][@NEAR(%SDI)]
PUSH [1][@NEAR(%SDI)]
ADD #0CE
DROP TOS
BRC %WACK+1F
PUSHS #4
CALL _bit_input
SBRZ %WACK+1F
CALL watchdog_update
PUSH [1][@NEAR(%SDI)]
INC
POP [1][@NEAR(%SDI)]
BR %WACK+0B
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
RET
SEG CODE
ORG
%ACK APEXP ; Function body
PUSHS #0
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
RET
SEG CODE
ORG
%NACK APEXP ; Function body
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
RET
SEG CODE
ORG
%STOP APEXP ; Function body
PUSHS #0
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
RET
SEG CODE
ORG
%x12init APEXP ; Function body
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
RET
SEG CODE
ORG
%OUTBYT_ APEXP ; Function body
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
AND #80
PUSHS #2
CALL _bit_output_lo2
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
CALL watchdog_update
RET
SEG RAMNEAR
ORG
%rDA APEXP
RES 1
SEG CODE
ORG
%INBYT APEXP ; Function body
PUSHS #1
PUSHS #2
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+1B
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+36
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+51
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+6C
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+87
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+0A2
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+0BD
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
PUSH [1][@NEAR(%TEMP1)]
SHL
POP [1][@NEAR(%TEMP1)]
PUSHS #1
PUSHS #4
CALL _bit_output_lo2
PUSHS #4
CALL _bit_input
POP [1][@NEAR(%rDA)]
PUSH [1][@NEAR(%rDA)]
DEC
SBRNZ %INBYT+0D8
PUSH [1][@NEAR(%TEMP1)]
INC
POP [1][@NEAR(%TEMP1)]
PUSHS #0
PUSHS #4
CALL _bit_output_lo2
CALL watchdog_update
RET
SEG CODE
ORG
%gettime APEXP ; Function body
CALLF %START
PUSH #0A2
POP [1][@NEAR(%TEMP1)]
CALLF %OUTBYT_
CALLF %WACK
PUSHS #2
POP [1][@NEAR(%TEMP1)]
CALLF %OUTBYT_
CALLF %WACK
CALLF %START
PUSH #0A3
POP [1][@NEAR(%TEMP1)]
CALLF %OUTBYT_
CALLF %WACK
CALLF %INBYT
PUSH [1][@NEAR(%TEMP1)]
AND #7F
POP [1][@NEAR(%dq)+5]
CALLF %ACK
CALLF %INBYT
PUSH [1][@NEAR(%TEMP1)]
AND #7F
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -