📄 tbtx.asm
字号:
*******************************************************
* TMS320C2x/C2xx/C5x ANSI C Codegen Version 7.00
*******************************************************
; C:\TDS-EMU2XX\C2000\CGTOOLS\BIN\DSPAC.EXE -v2xx -x0 TbTX.C C:\WINDOWS\TEMP\TbTX.if
; dspopt NOT RUN
; C:\TDS-EMU2XX\C2000\CGTOOLS\BIN\DSPCG.EXE -o -v2xx -o C:\WINDOWS\TEMP\TbTX.if C:\WINDOWS\TEMP\TbTX.asm C:\WINDOWS\TEMP\TbTX.tmp
.port
.bss _len,1,1
.bss _reg_point2,1
.bss _reg_point1,1
.bss _bTbRxSoh,1
.bss _nTbRxChLen,1
.bss _nTbRxBegin,1
.bss _nTbRxEnd,1
.bss _bTbTxSoh,1
.bss _nTbTxBegin,1
.bss _nTbTxEnd,1
.bss _bNewSysRdData,1
.bss _bNewSysWrData,1
.bss _nNewSysDataRdPreAdr,1
.bss _nNewSysDataWrPreAdr,1
.bss _nTbRxCrc,1
.bss _nTbTxCrc,1
.bss _cc1,1
.bss _bRefurbish,1
.bss _KeyNode,7
.bss _ccc,20
.bss _nTbRxChBuf,256
.bss _nTbTxChBuf,256
.bss _nTbTxCh,256
.bss _nTbRxCh,256
.file "TbTX.C"
.file "C:\TDS-EMU2XX\tycl\tyclh.h"
.sym _Boolean,0,14,13,16
.stag _StructKeyNode,112
.member _nkey,0,14,8,16
.member _nPageType,16,14,8,16
.member _nCs,32,14,8,16
.member _nPage,48,14,8,16
.member _nCursor,64,14,8,16
.member _nCursorPreLine,80,4,8,16
.member _nCursorOldLine,96,4,8,16
.eos
.globl _portffe4
.globl _portffe8
.globl _portffec
.globl _portfff0
.globl _portfff1
.globl _portfff4
.globl _portfff5
.globl _portfff6
.globl _portfff7
.globl _portfff8
.globl _portfff9
.globl _portfffa
.globl _portfffc
.globl _port4000
.file "TbTX.C"
.globl _reg_point1
.globl _reg_point2
.globl _len
.globl _cc1
.globl _ccc
.globl _KeyNode
.globl _bNewSysRdData
.globl _nNewSysDataRdPreAdr
.globl _bNewSysWrData
.globl _bRefurbish
.globl _nNewSysDataWrPreAdr
.globl _TbWrSysTab
.globl _TbRdSysTab
.globl _nTbRxCrc
.globl _bTbRxSoh
.globl _nTbRxBegin
.globl _nTbRxEnd
.globl _nTbRxChBuf
.globl _nTbRxChLen
.globl _nTbRxCh
.globl _bTbTxSoh
.globl _nTbTxBegin
.globl _nTbTxEnd
.globl _nTbTxChBuf
.globl _nTbTxCh
.globl _nTbTxCrc
.globl _TbTranRxData
.globl _TbTx_Data
.text
.sym _ReadRom,_ReadRom,32,2,0
.globl _ReadRom
.func 31
;>>>> void ReadRom(rom_area,ram_area,length)
;>>>> unsigned int rom_area[],ram_area[],length;
******************************************************
* FUNCTION DEF : _ReadRom
******************************************************
_ReadRom:
LF1 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,1
LAR AR0,*0+,AR2
.sym _rom_area,-3+LF1,30,9,16
.sym _ram_area,-4+LF1,30,9,16
.sym _length,-5+LF1,14,9,16
.line 3
;>>>> { len=length;
LARK AR2,-5+LF1
MAR *0+
BLDD *+,#_len
.line 4
;>>>> reg_point2=ram_area;
BLDD *+,#_reg_point2
.line 5
;>>>> reg_point1=rom_area;
BLDD * ,#_reg_point1
.line 7
;>>>> asm(" MAR *,AR4 ");
MAR *,AR4
.line 8
;>>>> asm(" ldpk _reg_point2 ");
ldpk _reg_point2
.line 9
;>>>> asm(" LAR AR4,_reg_point2");
LAR AR4,_reg_point2
.line 10
;>>>> asm(" ldpk _reg_point1 ");
ldpk _reg_point1
.line 11
;>>>> asm(" lacc _reg_point1 ");
lacc _reg_point1
.line 12
;>>>> asm(" RPT _len ");
RPT _len
.line 13
;>>>> asm(" TBLR *+,AR4 ");
TBLR *+,AR4
EPI0_1:
.line 15
MAR * ,AR1
SBRK 2
LAR AR0,*-
PSHD *
RET
.endfunc 45,000000000H,1
.sym _TbTxInit,_TbTxInit,32,2,0
.globl _TbTxInit
.func 47
;>>>> void TbTxInit()
;>>>> {long i;
******************************************************
* FUNCTION DEF : _TbTxInit
******************************************************
_TbTxInit:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR0
.sym _i,1,5,1,32
.line 4
;>>>> bTbRxSoh=0;
LACK 0
LDPK _bTbRxSoh
SACL _bTbRxSoh
.line 5
;>>>> nTbRxChLen=0;
SACL _nTbRxChLen
.line 6
;>>>> nTbRxBegin=0;
SACL _nTbRxBegin
.line 7
;>>>> nTbRxEnd=0;
SACL _nTbRxEnd
.line 8
;>>>> bTbTxSoh=0;
SACL _bTbTxSoh
.line 9
;>>>> nTbTxBegin=0;
SACL _nTbTxBegin
.line 10
;>>>> nTbTxEnd=0;
SACL _nTbTxEnd
.line 11
;>>>> reg_sspcr=0xcc0a;
LACK 52234
SACL *
OUT * ,0fff1h
.line 12
;>>>> reg_sspcr=0xcc3a;
LACK 52282
SACL *
OUT * ,0fff1h,AR1
.line 13
;>>>> bNewSysRdData=True;
SPLK #65535,_bNewSysRdData
.line 14
;>>>> bNewSysWrData=False;
LACK 0
SACL _bNewSysWrData
.line 15
;>>>> nNewSysDataRdPreAdr=0;
SACL _nNewSysDataRdPreAdr
.line 16
;>>>> nNewSysDataWrPreAdr=0;
SACL _nNewSysDataWrPreAdr
EPI0_2:
.line 18
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 64,000000000H,3
.sym _TbGetRxCrc,_TbGetRxCrc,46,2,0
.globl _TbGetRxCrc
.func 65
;>>>> Boolean TbGetRxCrc(unsigned int nTbRxChar[])
******************************************************
* FUNCTION DEF : _TbGetRxCrc
******************************************************
_TbGetRxCrc:
LF3 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,3
LAR AR0,*0+
.sym _nTbRxChar,-3+LF3,30,9,16
.sym _k,1,14,1,16
.sym _nTbRxChPre,2,14,1,16
.line 3
;>>>> unsigned int k;
;>>>> unsigned int nTbRxChPre;
.line 6
;>>>> if(nTbRxBegin==nTbRxEnd) return(False);
LDPK _nTbRxBegin
LAC _nTbRxBegin
SUB _nTbRxEnd
BNZ L1
LACK 0
B EPI0_3
L1:
.line 7
;>>>> for(;nTbRxBegin!=nTbRxEnd;nTbRxBegin++,nTbRxBegin &=0x00ff)
LAC _nTbRxBegin
SUB _nTbRxEnd
BZ L3
L2:
.line 8
;>>>> { if(nTbRxChLen>256-1)
LDPK _nTbRxChLen
ZALS _nTbRxChLen
SUBK 255
BLEZ L4
.line 9
;>>>> { nTbRxChLen=0;
LACK 0
SACL _nTbRxChLen
.line 10
;>>>> nTbRxCrc=0;
SACL _nTbRxCrc
.line 11
;>>>> bTbRxSoh=False;
SACL _bTbRxSoh
L4:
.line 13
;>>>> nTbRxChPre=nTbRxChBuf[nTbRxBegin];
LAC _nTbRxBegin
ADLK _nTbRxChBuf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
LAC * ,AR2
LARK AR2,2
MAR *0+
SACL *
.line 14
;>>>> if(bTbRxSoh==True)
ZALS _bTbRxSoh
RSXM
SUBK -1
BNZ L5
.line 16
;>>>> if (nTbRxChPre==SOH)
LAC *
SUBK 32382
BNZ L6
.line 18
;>>>> if(nTbRxChLen > 2)
ZALS _nTbRxChLen
SUBK 2
BLEZ L7
.line 20
;>>>> nTbRxChLen=0;
LACK 0
SACL _nTbRxChLen
.line 21
;>>>> bTbRxSoh = False;
SACL _bTbRxSoh
.line 22
;>>>> if(nTbRxCrc==0)
LAC _nTbRxCrc
BNZ L8
.line 23
;>>>> {return(True);}
LACK 65535
B EPI0_3
L8:
.line 24
;>>>> nTbRxCrc = 0;
LACK 0
SACL _nTbRxCrc
.line 25
;>>>> return(1); /*break for, just finshed*/
;>>>> else
LACK 1
B EPI0_3
L7:
.line 28
;>>>> { nTbRxChLen=0;
LACK 0
SACL _nTbRxChLen
.line 29
;>>>> nTbRxCrc=0;
SACL _nTbRxCrc
.line 30
;>>>> bTbRxSoh=True;
SPLK #65535,_bTbRxSoh
B L11
L6:
.line 33
;>>>> else if(nTbRxChLen>0 && nTbRxChPre==SOH_REAPT)
LAC _nTbRxChLen
BZ L10
ZALS *
SUBK -32383
BNZ L10
.line 34
;>>>> { bTbRxSoh=False ; /*input SOH_REAPT*/
LACK 0
SACL _bTbRxSoh
.line 35
;>>>> Make_RxCrc SOH;
LACK 32382
XOR _nTbRxCrc
SACL _nTbRxCrc
.line 36
;>>>> nTbRxChar[nTbRxChLen]=SOH;/*in "7E"*/
LAC _nTbRxChLen
SBRK 5-LF3
ADD * ,AR0
SACL *
LAR AR3,* ,AR3
SPLK #32382,*
.line 37
;>>>> nTbRxChLen++;
;>>>> else/* 'bsoh=True*/
LAC _nTbRxChLen
ADDK 1
SACL _nTbRxChLen
B L11
L10:
.line 41
;>>>> { nTbRxCrc=0;
LACK 0
SACL _nTbRxCrc
.line 42
;>>>> nTbRxChar[0]=nTbRxChPre; /*in first data*/
SBRK 5-LF3
LAR AR3,*
ADRK 5-LF3
LAC * ,AR3
SACL * ,AR2
.line 43
;>>>> nTbRxChLen=1;
LACK 1
SACL _nTbRxChLen
.line 44
;>>>> bTbRxSoh=False;
LACK 0
SACL _bTbRxSoh
.line 45
;>>>> Make_RxCrc nTbRxChPre;
LAC _nTbRxCrc
XOR *
SACL _nTbRxCrc
B L11
L5:
.line 49
;>>>> else if(nTbRxChPre==SOH)/*in first SOH*/
LAC *
SUBK 32382
BNZ L12
.line 50
;>>>> { bTbRxSoh=True;}
SPLK #65535,_bTbRxSoh
B L11
L12:
.line 51
;>>>> else if(nTbRxChLen>0)
LAC _nTbRxChLen
BZ L11
.line 52
;>>>> { bTbRxSoh=False;
LACK 0
SACL _bTbRxSoh
.line 53
;>>>> nTbRxChar[nTbRxChLen]=nTbRxChPre; /*input a byte*/
LAC _nTbRxChLen
SBRK 5-LF3
ADD * ,AR0
SACL *
LAR AR3,* ,AR2
ADRK 5-LF3
LAC * ,AR3
SACL * ,AR2
.line 54
;>>>> nTbRxChLen++;
LAC _nTbRxChLen
ADDK 1
SACL _nTbRxChLen
.line 55
;>>>> Make_RxCrc nTbRxChPre;
LAC _nTbRxCrc
XOR *
SACL _nTbRxCrc
L11:
.line 7
LAC _nTbRxBegin
ADDK 1
SACL _nTbRxBegin
ANDK 255
SACL _nTbRxBegin
LAC _nTbRxBegin
SUB _nTbRxEnd
BNZ L2
L3:
.line 58
;>>>> return(False);
LACK 0
EPI0_3:
.line 59
MAR * ,AR1
SBRK 4
LAR AR0,*-
PSHD *
RET
.endfunc 123,000000000H,3
.sym _TbSentTxCrc,_TbSentTxCrc,46,2,0
.globl _TbSentTxCrc
.func 124
;>>>> Boolean TbSentTxCrc(unsigned int *Txdata,unsigned int Len)
******************************************************
* FUNCTION DEF : _TbSentTxCrc
******************************************************
_TbSentTxCrc:
LF4 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,6
LAR AR0,*0+,AR2
.sym _Txdata,-3+LF4,30,9,16
.sym _Len,-4+LF4,14,9,16
.sym _n,1,14,1,16
.sym _k,2,14,1,16
.sym _nTbTxChPre,3,14,1,16
.sym _nSaveTxEnd,4,14,1,16
.sym _reg_p,5,30,1,16
.line 3
;>>>> unsigned int n,k,nTbTxChPre,nSaveTxEnd,*reg_p;
.line 5
;>>>> nSaveTxEnd=nTbTxEnd;
LARK AR2,4
MAR *0+
BLKD #_nTbTxEnd,*
.line 6
;>>>> if(nTbTxBegin>nTbTxEnd){n=nTbTxBegin-nTbTxEnd;}
LDPK _nTbTxBegin
ZALS _nTbTxBegin
SUBS _nTbTxEnd
BLEZ L14
LAC _nTbTxBegin
SUB _nTbTxEnd
SBRK 3
SACL *
B L15
L14:
.line 7
;>>>> else {n=256-nTbTxBegin+nTbTxEnd;}
LACK 256
SUB _nTbTxBegin
ADD _nTbTxEnd
SBRK 3
SACL *
L15:
.line 8
;>>>> if(n<Len+6){return(False);}
;>>>> else
SBRK 5-LF4
ZALS *
ADDK 6
ANDK 0FFFFh
ADRK 5-LF4
SUBS *
BLEZ L16
LACK 0
B EPI0_4
L16:
.line 12
;>>>> nTbTxChBuf[nTbTxEnd]=SOH;
LAC _nTbTxEnd
ADLK _nTbTxChBuf+0,0
MAR *+,AR0
SACL *
LAR AR3,* ,AR3
SPLK #32382,* ,AR2
.line 13
;>>>> nTbTxEnd++;nTbTxEnd &=0x00ff;
LAC _nTbTxEnd
ADDK 1
SACL _nTbTxEnd
ANDK 255
SACL _nTbTxEnd
.line 14
;>>>> nTbTxCrc=0;
LACK 0
SACL _nTbTxCrc
.line 15
;>>>> for(k=0;k<Len;k++)
SACL *
ZALS *
SBRK 6-LF4
SUBS *
BGEZ L18
MAR *+
L17:
.line 16
;>>>> { nTbTxChPre=*Txdata++;
LAR AR3,* ,AR3
LAC *+,AR2
SAR AR3,*
ADRK 6-LF4
SACL *
.line 17
;>>>> if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
LDPK _nTbTxEnd
LAC _nTbTxEnd
SUB _nTbTxBegin
BNZ L19
MAR *+
BLDD * ,#_nTbTxEnd
LACK 0
B EPI0_4
L19:
.line 18
;>>>> Make_TxCrc nTbTxChPre;
LAC * ,AR0
XOR _nTbTxCrc
SACL _nTbTxCrc
.line 19
;>>>> nTbTxChBuf[nTbTxEnd]=nTbTxChPre;
LAC _nTbTxEnd
ADLK _nTbTxChBuf+0,0
SACL *
LAR AR3,* ,AR2
LAC * ,AR3
SACL * ,AR2
.line 20
;>>>> nTbTxEnd++;nTbTxEnd &=0x00ff;
LAC _nTbTxEnd
ADDK 1
SACL _nTbTxEnd
ANDK 255
SACL _nTbTxEnd
.line 21
;>>>> if(nTbTxChPre ==SOH)
LAC *
SUBK 32382
BNZ L20
.line 22
;>>>> { if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
LAC _nTbTxEnd
SUB _nTbTxBegin
BNZ L21
MAR *+
BLDD * ,#_nTbTxEnd
LACK 0
B EPI0_4
L21:
.line 23
;>>>> nTbTxChBuf[nTbTxEnd]=SOH_REAPT;
LAC _nTbTxEnd
ADLK _nTbTxChBuf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
SPLK #33153,*
.line 24
;>>>> nTbTxEnd++;nTbTxEnd &=0x00ff;
LAC _nTbTxEnd
ADDK 1
SACL _nTbTxEnd
ANDK 255
SACL _nTbTxEnd
L20:
.line 15
MAR * ,AR2
MAR *-
LAC *
ADDK 1
SACL *
ZALS *
SBRK 6-LF4
SUBS *+
BLZ L17
L18:
.line 28
;>>>> Make_TxCrc 0;
.line 29
;>>>> if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
LAC _nTbTxEnd
SUB _nTbTxBegin
BNZ L22
LARK AR2,4
MAR *0+
BLDD * ,#_nTbTxEnd
LACK 0
B EPI0_4
L22:
.line 30
;>>>> nTbTxChBuf[nTbTxEnd]=nTbTxCrc;
LAC _nTbTxEnd
ADLK _nTbTxChBuf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
BLKD #_nTbTxCrc,* ,AR2
.line 31
;>>>> nTbTxEnd++;nTbTxEnd &=0x00ff;
LAC _nTbTxEnd
ADDK 1
SACL _nTbTxEnd
ANDK 255
SACL _nTbTxEnd
.line 32
;>>>> if(nTbTxChPre==SOH)
LARK AR2,3
MAR *0+
LAC *
SUBK 32382
BNZ L23
.line 33
;>>>> { if(nTbTxEnd==nTbTxBegin){nTbTxEnd=nSaveTxEnd;return(False);}
LAC _nTbTxEnd
SUB _nTbTxBegin
BNZ L24
MAR *+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -