📄 tbtx.asm
字号:
ADRK 3
LAC *
ADDK 5
ANDK 0FFFFh
SBRK 3
SUBS *
ADRK 2
BGZ L47
L48:
.line 20
;>>>> i=TbSentTxCrc(nTbTxCh,Len+5);
LARK AR2,4
MAR *0+
LAC * ,AR1
ADDK 5
SACL *+
LALK _nTbTxCh+0
SACL *+
CALL _TbSentTxCrc
SBRK 2
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 22
;>>>> if(i==False)
LAC *
BNZ L49
.line 23
;>>>> {reg_p=(unsigned int *)reg_imr;
LACK 4
MAR *+
SACL *
.line 24
;>>>> if((*reg_p & 0x0010)==0)
LAR AR3,* ,AR3
BIT * ,11
BBNZ L51
.line 25
;>>>> {*reg_p |=0x00010;
LACK 16
OR *
SACL *
B L51
L49:
.line 28
;>>>> else nNewSysDataWrPreAdr+=4;
LAC _nNewSysDataWrPreAdr
ADDK 4
SACL _nNewSysDataWrPreAdr
L51:
.line 29
;>>>> return(i);
MAR * ,AR2
LARK AR2,1
MAR *0+
ZALS *
EPI0_9:
.line 30
MAR * ,AR1
SBRK 6
LAR AR0,*-
PSHD *
RET
.endfunc 278,000000000H,5
.sym _TbTranRxData,_TbTranRxData,32,2,0
.globl _TbTranRxData
.func 279
;>>>> void TbTranRxData(int *nTime)
******************************************************
* FUNCTION DEF : _TbTranRxData
******************************************************
_TbTranRxData:
LF10 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+
.sym _nTime,-3+LF10,20,9,16
.sym _i,1,14,1,16
.sym _pd,2,30,1,16
.sym _ps,3,30,1,16
.line 2
;>>>> unsigned int i;
;>>>> unsigned int *pd,*ps;
.line 5
;>>>> i=TbGetRxCrc(nTbRxCh);
LALK _nTbRxCh+0
SACL *+
CALL _TbGetRxCrc
MAR *-,AR2
LARK AR2,1
MAR *0+
SACL *
.line 6
;>>>> if(i==False) {return; }
LAC *
BZ EPI0_10
.line 7
;>>>> if(i==1)
LAC *
SUBK 1
BNZ L54
.line 9
;>>>> TbTranTxData(0x1515,1,nTbRxCh,nTbTxCh);/*err*/
LALK _nTbTxCh+0
MAR * ,AR1
SACL *+
LALK _nTbRxCh+0
SACL *+
LACK 1
SACL *+
LACK 5397
SACL *+
CALL _TbTranTxData
SBRK 4
.line 10
;>>>> return;
;>>>> switch(nTbRxCh[0])
;>>>> {case 0x1515 :
B EPI0_10
L55:
.line 15
;>>>> *nTime=0x5555;
;>>>> case 0x55aa :
MAR * ,AR2
LARK AR2,-3+LF10
MAR *0+
LAR AR3,* ,AR3
SPLK #21845,*
.line 30
;>>>> */ break;
;>>>> case 0x550a :
B EPI0_10
L58:
.line 34
;>>>> i=0;
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 35
;>>>> break;
;>>>> case 0x3355 :
B EPI0_10
L59:
.line 39
;>>>> *nTime=0;
MAR * ,AR2
LARK AR2,-3+LF10
MAR *0+
LAR AR3,* ,AR3
LACK 0
SACL * ,AR1
.line 40
;>>>> WrSysData();
CALL _WrSysData
.line 41
;>>>> break;
;>>>> case 0x2255 : /*Claim New data*/
B EPI0_10
L60:
.line 46
;>>>> bNewSysRdData=True;
LDPK _bNewSysRdData
SPLK #65535,_bNewSysRdData
.line 47
;>>>> nNewSysDataRdPreAdr=0;
LACK 0
SACL _nNewSysDataRdPreAdr
.line 48
;>>>> RdSysData();nNewSysDataRdPreAdr+=4;
CALL _RdSysData,AR1
LDPK _nNewSysDataRdPreAdr
LAC _nNewSysDataRdPreAdr
ADDK 4
SACL _nNewSysDataRdPreAdr
.line 49
;>>>> *nTime=0;
MAR * ,AR2
LARK AR2,-3+LF10
MAR *0+
LAR AR3,* ,AR3
LACK 0
SACL *
.line 51
;>>>> break;
;>>>> case 0x2200 : /**/
B EPI0_10
L61:
.line 55
;>>>> pd=(unsigned *)nTbTxCh[2];
MAR * ,AR2
LARK AR2,2
MAR *0+
BLKD #_nTbTxCh+2,*
.line 56
;>>>> if((unsigned)pd<0x100)return;
ZALS *
SUBK 256
BLZ EPI0_10
.line 57
;>>>> for(i=0,ps=nTbRxCh+4;i<nTbRxCh[3];i++)
LACK 0
MAR *-
SACL *
LALK _nTbRxCh+4
ADRK 2
SACL *
SBRK 2
ZALS *
LDPK _nTbRxCh+3
SUBS _nTbRxCh+3
BGEZ L64
ADRK 2
L63:
.line 58
;>>>> *pd++=*ps++;
LAR AR3,*-
LAR AR4,*+,AR3
LAC *+,AR2
SAR AR3,*-,AR4
SACL *+,AR2
SAR AR4,*-
.line 57
LAC *
ADDK 1
SACL *
ZALS *
LDPK _nTbRxCh+3
SUBS _nTbRxCh+3
ADRK 2
BLZ L63
L64:
.line 62
;>>>> RdSysData();nNewSysDataRdPreAdr+=4;
CALL _RdSysData,AR1
LDPK _nNewSysDataRdPreAdr
LAC _nNewSysDataRdPreAdr
ADDK 4
SACL _nNewSysDataRdPreAdr
.line 63
;>>>> *nTime=0;
MAR * ,AR2
LARK AR2,-3+LF10
MAR *0+
LAR AR3,* ,AR3
LACK 0
SACL *
.line 65
;>>>> break;
;>>>> case 0x4444 :
B EPI0_10
L65:
.line 68
;>>>> bRefurbish=False;
LACK 0
LDPK _bRefurbish
SACL _bRefurbish
.line 69
;>>>> bNewSysWrData=False;
SACL _bNewSysWrData
.line 70
;>>>> break;
;>>>> case 0x6666 :
B EPI0_10
L66:
.line 72
;>>>> KeyNode.nkey=nTbRxCh[2];
LDPK _nTbRxCh+2
BLDD _nTbRxCh+2,#_KeyNode
.line 73
;>>>> KeyNode.nPageType=nTbRxCh[3];
BLDD _nTbRxCh+3,#_KeyNode+1
.line 74
;>>>> KeyNode.nCs=nTbRxCh[4];
BLDD _nTbRxCh+4,#_KeyNode+2
.line 75
;>>>> KeyNode.nPage=nTbRxCh[5];
BLDD _nTbRxCh+5,#_KeyNode+3
.line 76
;>>>> KeyNode.nCursor=nTbRxCh[6];
BLDD _nTbRxCh+6,#_KeyNode+4
.line 77
;>>>> KeyNode.nCursorPreLine=nTbRxCh[7];
BLDD _nTbRxCh+7,#_KeyNode+5
.line 78
;>>>> KeyNode.nCursorOldLine=nTbRxCh[8];
BLDD _nTbRxCh+8,#_KeyNode+6
.line 79
;>>>> TbTranTxData(0x6666,1,nTbRxCh,nTbTxCh);
LALK _nTbTxCh+0
MAR * ,AR1
SACL *+
LALK _nTbRxCh+0
SACL *+
LACK 1
SACL *+
LACK 26214
SACL *+
CALL _TbTranTxData
SBRK 4
.line 80
;>>>> default :{;break;}
B EPI0_10
L54:
.line 12
LDPK _nTbRxCh
ZALS _nTbRxCh
SUBK 5397
BZ L55
SUBK 3307
BZ L61
SUBK 85
BZ L60
SUBK 4352
BZ L59
SUBK 4335
BZ L65
SUBK 4294
BZ L58
SUBK 160
BZ EPI0_10
SUBK 4284
BZ L66
EPI0_10:
.line 82
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 360,000000000H,4
.sym _SysTb,_SysTb,32,2,0
.globl _SysTb
.func 361
;>>>> void SysTb(int *nTime,unsigned nConstTime)
******************************************************
* FUNCTION DEF : _SysTb
******************************************************
_SysTb:
LF11 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _nTime,-3+LF11,20,9,16
.sym _nConstTime,-4+LF11,14,9,16
.line 2
;>>>> { TbTranRxData(nTime);
LARK AR2,-3+LF11
MAR *0+
LAC * ,AR1
SACL *+
CALL _TbTranRxData
MAR *-
.line 11
;>>>> */ if(bNewSysRdData && *nTime>300)
LDPK _bNewSysRdData
LAC _bNewSysRdData
BZ L68
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAR AR3,* ,AR3
SSXM
LAC *
SUBK 300
BLEZ L68
.line 13
;>>>> RdSysData();*nTime=0;
CALL _RdSysData,AR1
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAR AR3,* ,AR3
LACK 0
SACL *
L68:
.line 15
;>>>> if(bNewSysWrData && *nTime>400)
LDPK _bNewSysWrData
LAC _bNewSysWrData
BZ L69
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAR AR3,* ,AR3
SSXM
LAC *
SUBK 400
BLEZ L69
.line 17
;>>>> WrSysData();*nTime=0;
CALL _WrSysData,AR1
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAR AR3,* ,AR3
LACK 0
SACL *
L69:
.line 19
;>>>> if(*nTime>nConstTime)
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAR AR3,*-,AR3
ZALS * ,AR2
SUBS *
BLEZ L70
.line 21
;>>>> nNewSysDataWrPreAdr=0;*nTime=0;
LACK 0
LDPK _nNewSysDataWrPreAdr
SACL _nNewSysDataWrPreAdr
MAR * ,AR3
SACL * ,AR1
.line 22
;>>>> bNewSysWrData=True;
SPLK #65535,_bNewSysWrData
.line 23
;>>>> WrSysData();
CALL _WrSysData
L70:
.line 25
;>>>> if(bNewSysWrData==False && bRefurbish==True)
LDPK _bNewSysWrData
LAC _bNewSysWrData
BNZ L71
ZALS _bRefurbish
RSXM
SUBK -1
BNZ L71
.line 27
;>>>> nNewSysDataWrPreAdr=0;*nTime=0;bNewSysWrData=True;
LACK 0
SACL _nNewSysDataWrPreAdr
MAR * ,AR2
LARK AR2,-3+LF11
MAR *0+
LAR AR3,* ,AR3
SACL * ,AR1
SPLK #65535,_bNewSysWrData
.line 28
;>>>> WrSysData();
CALL _WrSysData
L71:
EPI0_11:
.line 30
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 390,000000000H,1
.sym _test,_test,32,2,0
.globl _test
.func 391
;>>>> void test()
;>>>> unsigned int a[30],i;
******************************************************
* FUNCTION DEF : _test
******************************************************
_test:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,32
LAR AR0,*0+,AR2
.sym _a,1,62,1,480,,30
.sym _i,31,14,1,16
.line 4
;>>>> for(i=0;i<20;i++)a[i]=i;
LACK 0
LARK AR2,31
MAR *0+
SACL *
ZALS *
SUBK 20
BGEZ L73
L72:
LAR AR3,* ,AR3
MAR *0+,AR2
LAC * ,AR3
MAR *+
SACL * ,AR2
ADDK 1
SACL *
ZALS *
SUBK 20
BLZ L72
L73:
.line 5
;>>>> TbTranTxData(0x55aa,10,a,nTbTxCh);
LALK _nTbTxCh+0
MAR * ,AR1
SACL *+,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 10
SACL *+
LACK 21930
SACL *+
CALL _TbTranTxData
SBRK 4
.line 6
;>>>> for(i=0;i<0x7ff;i++)
LACK 0
MAR * ,AR2
LARK AR2,31
MAR *0+
SACL *
ZALS *
SUBK 2047
BGEZ L75
L74:
.line 7
;>>>> a[0]=i;
LAC *
SBRK 30
SACL *
.line 6
ADDK 1
ADRK 30
SACL *
ZALS *
SUBK 2047
BLZ L74
L75:
.line 8
;>>>> for(i=0;i<0x7ff;i++)
LACK 0
SACL *
ZALS *
SUBK 2047
BGEZ L77
L76:
.line 9
;>>>> a[0]=i;
LAC *
SBRK 30
SACL *
.line 8
ADDK 1
ADRK 30
SACL *
ZALS *
SUBK 2047
BLZ L76
L77:
.line 10
;>>>> for(i=0;i<0x7ff;i++)
LACK 0
SACL *
ZALS *
SUBK 2047
BGEZ L79
L78:
.line 11
;>>>> a[0]=i;
LAC *
SBRK 30
SACL *
.line 10
ADDK 1
ADRK 30
SACL *
ZALS *
SUBK 2047
BLZ L78
L79:
EPI0_12:
.line 12
MAR * ,AR1
SBRK 33
LAR AR0,*-
PSHD *
RET
.endfunc 402,000000000H,32
.sym _nTbTxCh,_nTbTxCh,62,2,4096,,256
.globl _nTbTxCh
.sym _cc1,_cc1,14,2,16
.globl _cc1
.sym _len,_len,4,2,16
.globl _len
.sym _bRefurbish,_bRefurbish,14,2,16
.globl _bRefurbish
.sym _reg_point1,_reg_point1,30,2,16
.globl _reg_point1
.sym _reg_point2,_reg_point2,30,2,16
.globl _reg_point2
.sym _nTbRxChLen,_nTbRxChLen,14,2,16
.globl _nTbRxChLen
.sym _nTbRxBegin,_nTbRxBegin,14,2,16
.globl _nTbRxBegin
.sym _bTbTxSoh,_bTbTxSoh,14,2,16
.globl _bTbTxSoh
.sym _ccc,_ccc,62,2,320,,20
.globl _ccc
.sym _nNewSysDataRdPreAdr,_nNewSysDataRdPreAdr,4,2,16
.globl _nNewSysDataRdPreAdr
.sym _nTbRxCrc,_nTbRxCrc,14,2,16
.globl _nTbRxCrc
.sym _bNewSysRdData,_bNewSysRdData,14,2,16
.globl _bNewSysRdData
.sym _nTbTxChBuf,_nTbTxChBuf,62,2,4096,,256
.globl _nTbTxChBuf
.sym _nTbRxCh,_nTbRxCh,62,2,4096,,256
.globl _nTbRxCh
.sym _nTbRxEnd,_nTbRxEnd,14,2,16
.globl _nTbRxEnd
.sym _bNewSysWrData,_bNewSysWrData,14,2,16
.globl _bNewSysWrData
.sym _nTbRxChBuf,_nTbRxChBuf,62,2,4096,,256
.globl _nTbRxChBuf
.sym _nNewSysDataWrPreAdr,_nNewSysDataWrPreAdr,4,2,16
.globl _nNewSysDataWrPreAdr
.sym _bTbRxSoh,_bTbRxSoh,14,2,16
.globl _bTbRxSoh
.sym _nTbTxCrc,_nTbTxCrc,14,2,16
.globl _nTbTxCrc
.sym _nTbTxEnd,_nTbTxEnd,14,2,16
.globl _nTbTxEnd
.sym _nTbTxBegin,_nTbTxBegin,14,2,16
.globl _nTbTxBegin
.sym _KeyNode,_KeyNode,8,2,112,_StructKeyNode
.globl _KeyNode
*****************************************************
* UNDEFINED REFERENCES *
*****************************************************
.global I$$SAVE
.global I$$REST
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -