📄 gw.ns
字号:
CALL _add16
CALL _memset
PUSHS #0
PUSH [DSP][-6]
PUSHD #%fblockData
PUSHS #7
CALL _push1
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
POP [0][1]
POP [0][0]
PUSH [DSP][-5]
PUSHD #%PersistentFblockStatus
POPD [3]
PUSH [3][TOS]
DROP TOS
AND #2
SBRNZ *+4
BRF %clearFblockStatus+52
PUSHD #%fblockData
PUSH [DSP][-7]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][2]
AND #0DF
OR #20
POP [2][2]
PUSH [DSP][-5]
PUSHD #%PersistentFblockStatus
POPD [3]
PUSH [3][TOS]
DROP TOS
AND #4
SBRNZ *+4
BRF %clearFblockStatus+71
PUSHD #%fblockData
PUSH [DSP][-7]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][4]
AND #0DF
OR #20
POP [2][4]
PUSH [DSP][-1]
AND #1
AND #1
PUSHD #%fblockData
PUSH [DSP][-8]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0FE
OR
POP [2][3]
PUSH [DSP][-1]
SHR
SHR
AND #1
AND #1
SHL
SHL
PUSHD #%fblockData
PUSH [DSP][-8]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0FB
OR
POP [2][3]
DEALLOC #7
NOP
SEG CODE
ORG
%initAllFblockData APEXP ; Function body
ALLOC #1
NOP
PUSHS #0
DROP NEXT
PUSHS #1
PUSH NEXT
CALL _less8
SBRNZ *+4
BRF %initAllFblockData+28
PUSH TOS
CALLF %clearFblockStatus
PUSHD #%fblockData
PUSH [DSP][-1]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0FE
OR #1
POP [2][3]
PUSH TOS
INC
DROP NEXT
BRF %initAllFblockData+4
DEALLOC #1
NOP
SEG CODE
ORG
%setPersistentFblockStatus APEXP ; Function body
PUSH [DSP][-1]
SBRNZ *+4
BRF %setPersistentFblockStatus+16
PUSH NEXT
PUSHD #%PersistentFblockStatus
PUSH [DSP][-2]
CALL _add_8_16f
POPD [2]
PUSH [2][0]
OR
PUSHD [2]
CALL _eeprom_far_write
BRF %setPersistentFblockStatus+25
PUSH NEXT
NOT
PUSHD #%PersistentFblockStatus
PUSH [DSP][-2]
CALL _add_8_16f
POPD [2]
PUSH [2][0]
AND
PUSHD [2]
CALL _eeprom_far_write
DEALLOC #3
NOP
SEG CODE
ORG
%updateNode_Status APEXP ; Function body
ALLOC #5
NOP
PUSHD #%fblockData+2
POP [DSP][-4]
POP [DSP][-4]
PUSHS #4
POP [DSP][-2]
PUSHS #0
POP [DSP][-1]
PUSH [DSP][-1]
PUSH [DSP][-1]
CALL _less8s
SBRNZ *+4
BRF %updateNode_Status+22
PUSHS #0
PUSH [DSP][-4]
PUSH [DSP][-4]
PUSH [DSP][-3]
CALL _adds_8_16
POPD [0]
POP [0][0]
PUSH NEXT
INC
POP [DSP][-1]
BRF %updateNode_Status+0B
PUSHS #1
DROP NEXT
PUSHS #1
PUSH NEXT
CALL _less8s
SBRNZ *+4
BRF %updateNode_Status+66
ALLOC #2
PUSHD #%fblockData
PUSH [DSP][-3]
PUSHS #6
CALL _mul8ls
CALL _add16
PUSHS #2
CALL _add_8_16f
POP [DSP][-1]
POP [DSP][-1]
PUSHS #0
POP [DSP][-3]
PUSH [DSP][-3]
PUSH [DSP][-3]
CALL _less8s
SBRNZ *+4
BRF %updateNode_Status+5E
PUSH NEXT
PUSH NEXT
PUSH [DSP][-4]
CALL _adds_8_16
POPD [0]
PUSH [0][0]
PUSH [DSP][-6]
PUSH [DSP][-6]
PUSH [DSP][-5]
CALL _adds_8_16
POPD [2]
PUSH [2][0]
OR
POP [2][0]
PUSH [DSP][-2]
INC
POP [DSP][-3]
BRF %updateNode_Status+3D
DROP TOS
DROP TOS
PUSH TOS
INC
DROP NEXT
BRF %updateNode_Status+24
DEALLOC #5
NOP
SEG CODE
ORG
%setFblockDisable APEXP ; Function body
PUSH NEXT
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][2]
CALL _r_shift8_5
AND #1
XOR
SBRNZ *+4
BRF %setFblockDisable+32
PUSH NEXT
AND #1
CALL _l_shift8_5
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][2]
AND #0DF
OR
POP [2][2]
PUSH NEXT
PUSHS #2
PUSH [DSP][-1]
CALLF %setPersistentFblockStatus
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%setFblockOverride APEXP ; Function body
PUSH NEXT
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][4]
CALL _r_shift8_5
AND #1
XOR
SBRNZ *+4
BRF %setFblockOverride+32
PUSH NEXT
AND #1
CALL _l_shift8_5
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][4]
AND #0DF
OR
POP [2][4]
PUSH NEXT
PUSHS #4
PUSH [DSP][-1]
CALLF %setPersistentFblockStatus
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%setFblockInAlarm APEXP ; Function body
PUSHD #%fblockData
PUSH [DSP][-1]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][4]
AND #0BF
OR #40
POP [2][4]
CALLF %updateNode_Status
DEALLOC #1
NOP
SEG CODE
ORG
%setFblockOutOfLimits APEXP ; Function body
PUSHD #%fblockData
PUSH [DSP][-1]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][2]
AND #0EF
OR #10
POP [2][2]
CALLF %updateNode_Status
DEALLOC #1
NOP
SEG CODE
ORG
%setFblockManualControlBit APEXP ; Function body
PUSH NEXT
CALL _l_shift8_7
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][4]
AND #7F
OR
POP [2][4]
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%getFblockManualControlBit APEXP ; Function body
PUSHD #%fblockData
PUSH [DSP][-1]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][4]
CALL _r_shift8_7
BRF %getFblockManualControlBit+11
DROP NEXT
RET
SEG CODE
ORG
%setCommFailedState APEXP ; Function body
PUSH NEXT
AND #1
CALL _l_shift8_3
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0F7
OR
POP [2][3]
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%setLockedOutBit APEXP ; Function body
PUSH NEXT
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][3]
AND #1
XOR
SBRNZ *+4
BRF %setLockedOutBit+2B
PUSH NEXT
AND #1
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0FE
OR
POP [2][3]
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%setFblockFailedSelfTest APEXP ; Function body
PUSH NEXT
AND #1
SHL
SHL
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0FB
OR
POP [2][3]
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%setFblockOverrange APEXP ; Function body
PUSH NEXT
CALL _l_shift8_7
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #7F
OR
POP [2][3]
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%setFblockUnderrange APEXP ; Function body
PUSH NEXT
AND #1
CALL _l_shift8_6
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [2]
PUSH [2][3]
AND #0BF
OR
POP [2][3]
CALLF %updateNode_Status
DEALLOC #2
NOP
SEG CODE
ORG
%fblockNormal APEXP ; Function body
PUSHS #0
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][2]
CALL _r_shift8_5
AND #1
SBRZ *+4
BRF %fblockNormal+27
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [3]
PUSH [3][3]
SHR
SHR
AND #1
SBRNZ %fblockNormal+27
INC
BRF %fblockNormal+2A
DROP NEXT
RET
SEG CODE
ORG
%fblockNormalNotLockedOut APEXP ; Function body
ALLOC #2
NOP
PUSHD #%fblockData
PUSH [DSP][-3]
PUSHS #6
CALL _mul8l
CALL _add16
POP [DSP][-1]
POP [DSP][-1]
PUSHS #0
PUSH [DSP][-1]
PUSH [DSP][-1]
POPD [0]
PUSH [0][2]
CALL _r_shift8_5
AND #1
SBRZ *+4
BRF %fblockNormalNotLockedOut+31
PUSH [DSP][-1]
PUSH [DSP][-1]
POPD [0]
PUSH [0][3]
SHR
SHR
AND #1
SBRZ *+4
BRF %fblockNormalNotLockedOut+31
PUSH [DSP][-1]
PUSH [DSP][-1]
POPD [0]
PUSH [0][3]
AND #1
SBRNZ %fblockNormalNotLockedOut+31
INC
BRF %fblockNormalNotLockedOut+34
POP [DSP][-2]
DEALLOC #2
SEG CODE
ORG
%fblockEnabled APEXP ; Function body
PUSHS #0
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][2]
CALL _r_shift8_5
AND #1
SBRZ *+4
BRF %fblockEnabled+27
PUSHD #%fblockData
PUSH [DSP][-2]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [3]
PUSH [3][4]
CALL _r_shift8_5
AND #1
SBRNZ %fblockEnabled+27
INC
BRF %fblockEnabled+2A
DROP NEXT
RET
SEG CODE
ORG
%fblockDisabled APEXP ; Function body
PUSHD #%fblockData
PUSH [DSP][-1]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][2]
CALL _r_shift8_5
AND #1
BRF %fblockDisabled+13
DROP NEXT
RET
SEG CODE
ORG
%fblockInOverride APEXP ; Function body
PUSHD #%fblockData
PUSH [DSP][-1]
PUSHS #6
CALL _mul8l
CALL _add16
POPD [0]
PUSH [0][4]
CALL _r_shift8_5
AND #1
BRF %fblockInOverride+13
DROP NEXT
RET
SEG CODE
ORG
fblockDirectors EXPORT
DATA.B PTR %NodeObjectDirector-1
SEG CODE
ORG
%fblock_index_map EXPORT
DATA.B 0
%%FBNVNodeObject%nviRequest ALTNM %nviRequest
DATA.B 0
%%FBNVNodeObject%nviImpTempF ALTNM %nviTemp
DATA.B 0
%%FBNVNodeObject%nviImpRegVal ALTNM %nviLevel
DATA.B 0
%%FBNVNodeObject%nviImpSwitch ALTNM %nviPumpSts
DATA.B 0
%%FBNVNodeObject%nviImpSwitch1 ALTNM %nviHeatSts
DATA.B 0
%%FBNVNodeObject%nvoStatus ALTNM %nvoStatus
DATA.B 0
%%FBNVNodeObject%nviImpSwitch2 ALTNM %nvoPumpCtl
DATA.B 0
%%FBNVNodeObject%nviImpSwitch3 ALTNM %nvoHeatCtl
SEG CODE
ORG
APINIT EXPORT ; Init start & special event code
PUSHD #26BE
CALL delay
APINITV EXPORT
BRF 0FD00
WINK EXPORT ; When-unit body
RET
NOP
RESET0 EXPORT ; Network debugger reset event
CALLF _larva_reset
RESET EXPORT ; When-unit body
CALLF %initAllFblockData
PUSH #22
CALLF %executeOnEachFblock
RET
NOP
OFFLINE EXPORT ; When-unit body
PUSH #20
CALLF %executeOnEachFblock
RET
NOP
ONLINE EXPORT ; When-unit body
PUSH #21
CALLF %executeOnEachFblock
RET
NOP
SEG CODE
ORG
DBGSIG EXPORT
DATA.B 0,0
TNVFIX ; NV Fixed table
DATA.B 23,PTR %nviRequest
DATA.B 4,PTR %nviTemp
DATA.B 6,PTR %nviLevel
DATA.B 2,PTR %nviPumpSts
DATA.B 2,PTR %nviHeatSts
DATA.B 86,PTR %nvoStatus
DATA.B 2,PTR %nvoPumpCtl
DATA.B 2,PTR %nvoHeatCtl
TEVT EXPORT ; Event table
DATA.B PTR APINIT-2
DATA.B WINK-APINIT+1,RESET0-APINIT+1
DATA.B OFFLINE-APINIT+1,ONLINE-APINIT+1
DATA.B 0,1
DATA.B 0C0,PTR WHEN1-1
SEG SIDATA
ORG
SIDATA EXPORT ; SI Data
DATA.B 000,057,8,0,0
DATA.B 8E,5C
DATA.B 8E,3F
DATA.B 8E,88
DATA.B 8E,5F
DATA.B 8E,5F
DATA.B 0CE,5D
DATA.B 8E,5F
DATA.B 8E,5F
DATA.B 26,33,2E,33,40,30,4E,6F
DATA.B 64,65,4F,62,6A,65,63,74
DATA.B 0
DATA.B 10
DATA.B 40,30,7C,31,0
DATA.B 10
DATA.B 40,30,23,31,0
DATA.B 10
DATA.B 40,30,23,32,0
DATA.B 10
DATA.B 40,30,23,33,0
DATA.B 10
DATA.B 40,30,23,34,0
DATA.B 10
DATA.B 40,30,7C,32,0
DATA.B 10
DATA.B 40,30,23,35,0
DATA.B 10
DATA.B 40,30,23,36,0
DATA.B _new_binding_constraints|_query_stats|NALIAS
; Resource usage information
RESOURCE NADDR 0F
RESOURCE NDOM 2
RESOURCE NRCVTX 7
RESOURCE NNIB 2
RESOURCE NAIB 3
RESOURCE SNIB 42
RESOURCE SNOB 2A
RESOURCE SAIB 16
RESOURCE SAOB 14
RESOURCE NNVS 8
RESOURCE ALIAS 0C
RESOURCE RAMT 1
RESOURCE MINIT 1
RESOURCE LARVA 1
; End of generated code
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -