📄 tbtx.asm
字号:
BLDD * ,#_nTbTxEnd
LACK 0
B EPI0_4
L24:
.line 34
;>>>> nTbTxChBuf[nTbTxEnd]=SOH_REAPT;
LAC _nTbTxEnd
ADLK _nTbTxChBuf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
SPLK #33153,*
.line 35
;>>>> nTbTxEnd++;nTbTxEnd &=0x00ff;
LAC _nTbTxEnd
ADDK 1
SACL _nTbTxEnd
ANDK 255
SACL _nTbTxEnd
L23:
.line 38
;>>>> for(k=0;k<3;k++)
LACK 0
MAR * ,AR2
MAR *-
SACL *
ZALS *
SUBK 3
BGEZ L26
L25:
.line 40
;>>>> if(nTbTxEnd==nTbTxBegin)
LDPK _nTbTxEnd
LAC _nTbTxEnd
SUB _nTbTxBegin
BNZ L27
.line 41
;>>>> {nTbTxEnd=nSaveTxEnd;return(False);}
MAR * ,AR2
LARK AR2,4
MAR *0+
BLDD * ,#_nTbTxEnd
LACK 0
B EPI0_4
L27:
.line 42
;>>>> nTbTxChBuf[nTbTxEnd]=SOH;
LAC _nTbTxEnd
ADLK _nTbTxChBuf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
SPLK #32382,* ,AR2
.line 43
;>>>> nTbTxEnd++;nTbTxEnd &=0x00ff;
LAC _nTbTxEnd
ADDK 1
SACL _nTbTxEnd
ANDK 255
SACL _nTbTxEnd
.line 38
LARK AR2,2
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SUBK 3
BLZ L25
L26:
.line 46
;>>>> reg_p=(unsigned int *)reg_imr;
LACK 4
ADRK 3
SACL *
.line 47
;>>>> if((*reg_p & 0x0010)==0)
LAR AR3,* ,AR3
BIT * ,11
BBNZ L28
.line 48
;>>>> {*reg_p |=0x00010;}
LACK 16
OR *
SACL *
L28:
.line 50
;>>>> return(True);
RSXM
LACK 65535
EPI0_4:
.line 51
MAR * ,AR1
SBRK 7
LAR AR0,*-
PSHD *
RET
.endfunc 174,000000000H,6
.sym _TbTranTxData,_TbTranTxData,46,2,0
.globl _TbTranTxData
.func 175
;>>>> Boolean TbTranTxData(unsigned int command,unsigned int Len,unsigned int *info,unsigned int *nTxBuf)
******************************************************
* FUNCTION DEF : _TbTranTxData
******************************************************
_TbTranTxData:
LF5 .set 0
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR2
.sym _command,-3+LF5,14,9,16
.sym _Len,-4+LF5,14,9,16
.sym _info,-5+LF5,30,9,16
.sym _nTxBuf,-6+LF5,30,9,16
.sym _i,1,14,1,16
.sym _k,2,14,1,16
.sym _reg_p,3,30,1,16
.line 2
;>>>> unsigned int i,k,*reg_p;
.line 5
;>>>> if(Len>256-1) return(False);
LARK AR2,-4+LF5
MAR *0+
ZALS *
SUBK 255
BLEZ L29
LACK 0
B EPI0_5
L29:
.line 6
;>>>> *nTxBuf++=command;
SBRK 2
LAR AR3,*
ADRK 3
LAC * ,AR3
SACL *+,AR2
SBRK 3
SAR AR3,*
.line 7
;>>>> *nTxBuf++=Len;
LAR AR3,*
ADRK 2
LAC * ,AR3
SACL *+,AR2
SBRK 2
SAR AR3,*
.line 8
;>>>> for(i=2;i<Len+2;i++) { *nTxBuf++=*info++;}
LACK 2
ADRK 7-LF5
SACL *
SBRK 5-LF5
ZALS *
ADDK 2
ANDK 0FFFFh
ADRK 5-LF5
SUBS *
BLEZ L31
SBRK 6-LF5
L30:
LAR AR3,*-
LAR AR4,*+,AR3
LAC *+,AR2
SAR AR3,*-,AR4
SACL *+,AR2
SAR AR4,*
ADRK 7-LF5
LAC *
ADDK 1
SACL *
SBRK 5-LF5
ZALS *
ADDK 2
ANDK 0FFFFh
ADRK 5-LF5
SUBS *
SBRK 6-LF5
BGZ L30
L31:
.line 9
;>>>> nTxBuf=nTxBuf-Len-2;
LARK AR2,-6+LF5
MAR *0+
LAC *
SUBK 2
ADRK 2
SUB *
SBRK 2
SACL *
.line 10
;>>>> i=TbSentTxCrc(nTxBuf,Len+2);
ADRK 2
LAC * ,AR1
ADDK 2
SACL *+,AR2
SBRK 2
LAC * ,AR1
SACL *+
CALL _TbSentTxCrc
SBRK 2
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
.line 12
;>>>> if(i==False)
LAC *
BNZ L32
.line 13
;>>>> {reg_p=(unsigned int *)reg_imr;
LACK 4
ADRK 2
SACL *
.line 14
;>>>> if((*reg_p & 0x0010)==0)
LAR AR3,* ,AR3
BIT * ,11
BBNZ L32
.line 15
;>>>> {*reg_p |=0x00010;}
LACK 16
OR *
SACL *
L32:
.line 17
;>>>> return(i);
MAR * ,AR2
LARK AR2,1
MAR *0+
ZALS *
EPI0_5:
.line 18
MAR * ,AR1
SBRK 5
LAR AR0,*-
PSHD *
RET
.endfunc 192,000000000H,4
.sym _TbTxInt,_TbTxInt,32,2,0
.globl _TbTxInt
.func 193
;>>>> interrupt void TbTxInt()
;>>>> unsigned int i,flag_sspcr,*reg_p;
******************************************************
* FUNCTION DEF : _TbTxInt
******************************************************
_TbTxInt:
CALL I$$SAVE
SAR AR1,*
LARK AR0,4
LAR AR0,*0+,AR2
.sym _i,1,14,1,16
.sym _flag_sspcr,2,14,1,16
.sym _reg_p,3,30,1,16
.line 4
;>>>> reg_p=(unsigned int *)reg_ifr;
LACK 6
LARK AR2,3
MAR *0+
SACL *
.line 6
;>>>> if(nTbTxBegin==nTbTxEnd)
LDPK _nTbTxBegin
LAC _nTbTxBegin
SUB _nTbTxEnd
BNZ L34
.line 8
;>>>> *reg_p |=0x0010;
LAR AR3,* ,AR3
LACK 16
OR *
SACL * ,AR2
.line 9
;>>>> reg_p=(unsigned int *)reg_imr;
LACK 4
SACL *
.line 10
;>>>> *reg_p &=0xffef;
LAR AR3,* ,AR3
LACK 65519
AND *
SACL *
.line 11
;>>>> return;
B EPI0_6
L34:
.line 13
;>>>> if((reg_sspcr & 0x2000)==0)
MAR * ,AR0
IN * ,0fff1h
ZALS *
ANDK 8192
BNZ L35
.line 15
;>>>> for(i=0;i<4;i++)
LACK 0
MAR * ,AR2
SBRK 2
SACL *
ZALS *
SUBK 4
BGEZ L35
L36:
.line 17
;>>>> if(nTbTxBegin==nTbTxEnd)
LDPK _nTbTxBegin
LAC _nTbTxBegin
SUB _nTbTxEnd
BNZ L38
.line 18
;>>>> { reg_sdtr=SOH;
;>>>> else
LACK 32382
MAR * ,AR0
SACL *
OUT * ,0fff0h
B L39
L38:
.line 23
;>>>> reg_sdtr=nTbTxChBuf[nTbTxBegin++];
LAC _nTbTxBegin
ADDK 1
SACL _nTbTxBegin
SUBK 1
ADLK _nTbTxChBuf+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR3
OUT * ,0fff0h
.line 24
;>>>> nTbTxBegin &=0x00ff;
LACK 255
AND _nTbTxBegin
SACL _nTbTxBegin
L39:
.line 15
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
ADDK 1
SACL *
ZALS *
SUBK 4
BLZ L36
L35:
.line 28
;>>>> *reg_p |=0x0010;
MAR * ,AR2
LARK AR2,3
MAR *0+
LAR AR3,* ,AR3
LACK 16
OR *
SACL *
EPI0_6:
.line 29
MAR * ,AR1
SBRK 4
B I$$REST,AR1 ;and return
.endfunc 221,000000000H,4
.sym _TbRxInt,_TbRxInt,32,2,0
.globl _TbRxInt
.func 222
;>>>> interrupt void TbRxInt()
;>>>> unsigned int iii,*reg_p;
******************************************************
* FUNCTION DEF : _TbRxInt
******************************************************
_TbRxInt:
CALL I$$SAVE
SAR AR1,*
LARK AR0,3
LAR AR0,*0+,AR2
.sym _iii,1,14,1,16
.sym _reg_p,2,30,1,16
.line 5
;>>>> reg_p=(unsigned int *)reg_ifr;
LACK 6
LARK AR2,2
MAR *0+
SACL * ,AR0
.line 6
;>>>> if((reg_sspcr & 0x0080)!=0)
IN * ,0fff1h
ZALS *
ANDK 128
BZ L40
.line 7
;>>>> iii=0;
LACK 0
MAR * ,AR2
MAR *-
SACL *
L40:
.line 8
;>>>> cc1++;
LDPK _cc1
LAC _cc1
ADDK 1
SACL _cc1
.line 9
;>>>> cc1 &=0xf;
ANDK 15
SACL _cc1
.line 10
;>>>> iii=0; iii=0;
LACK 0
MAR * ,AR2
LARK AR2,1
MAR *0+
SACL *
SACL * ,AR0
.line 11
;>>>> while((reg_sspcr & 0x1000)!=0)
IN * ,0fff1h
ZALS *
ANDK 4096
BZ L42
MAR * ,AR2
L41:
.line 13
;>>>> iii++;
LAC *
ADDK 1
SACL * ,AR0
.line 14
;>>>> nTbRxChBuf[nTbRxEnd++]=reg_sdtr;
LDPK _nTbRxEnd
LAC _nTbRxEnd
ADDK 1
SACL _nTbRxEnd
SUBK 1
ADLK _nTbRxChBuf+0,0
SACL *
LAR AR3,* ,AR3
IN * ,0fff0h,AR0
.line 15
;>>>> nTbRxEnd &=0x00ff;
LACK 255
AND _nTbRxEnd
SACL _nTbRxEnd
.line 11
IN * ,0fff1h
ZALS * ,AR2
ANDK 4096
BNZ L41
L42:
.line 17
;>>>> ccc[cc1]=iii;
LAC _cc1
ADLK _ccc+0,0
MAR * ,AR0
SACL *
LAR AR3,* ,AR2
LAC *+,AR3
SACL * ,AR2
.line 18
;>>>> *reg_p =0x0008;
LAR AR3,* ,AR3
LACK 8
SACL * ,AR1
EPI0_7:
.line 20
SBRK 3
B I$$REST,AR1 ;and return
.endfunc 241,000000000H,3
.sym _RdSysData,_RdSysData,32,2,0
.globl _RdSysData
.func 242
;>>>> void RdSysData()
;>>>> {unsigned nTab[5];
******************************************************
* FUNCTION DEF : _RdSysData
******************************************************
_RdSysData:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,6
LAR AR0,*0+
.sym _nTab,1,62,1,80,,5
.line 3
;>>>> ReadRom((unsigned *)((&TbRdSysTab)+nNewSysDataRdPreAdr),nTab,4);
LACK 4
SACL *+,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LDPK _nNewSysDataRdPreAdr
LAC _nNewSysDataRdPreAdr
ADLK _TbRdSysTab+0,0
SACL *+
CALL _ReadRom
SBRK 3
.line 4
;>>>> if(nTab[0]==0 )
MAR * ,AR2
LARK AR2,1
MAR *0+
LAC *
BNZ L43
.line 5
;>>>> {nNewSysDataRdPreAdr=0;bNewSysRdData=False;return;}
LACK 0
SACL _nNewSysDataRdPreAdr
SACL _bNewSysRdData
B EPI0_8
L43:
.line 6
;>>>> TbTranTxData(0x2200,4,nTab,nTbTxCh);
LALK _nTbTxCh+0
MAR * ,AR1
SACL *+,AR3
LARK AR3,1
MAR *0+,AR1
SAR AR3,*+
LACK 4
SACL *+
LACK 8704
SACL *+
CALL _TbTranTxData
SBRK 4
EPI0_8:
.line 7
MAR * ,AR1
SBRK 7
LAR AR0,*-
PSHD *
RET
.endfunc 248,000000000H,6
.sym _WrSysData,_WrSysData,46,2,0
.globl _WrSysData
.func 249
;>>>> Boolean WrSysData()
;>>>> unsigned int i,*reg_p,*info;
;>>>> int Len;
******************************************************
* FUNCTION DEF : _WrSysData
******************************************************
_WrSysData:
POPD *+
SAR AR0,*+
SAR AR1,*
LARK AR0,5
LAR AR0,*0+
.sym _i,1,14,1,16
.sym _reg_p,2,30,1,16
.sym _info,3,30,1,16
.sym _Len,4,4,1,16
.line 5
;>>>> ReadRom((unsigned *)((&TbWrSysTab)+nNewSysDataWrPreAdr),nTbTxCh+1,4);
LACK 4
SACL *+
LALK _nTbTxCh+1
SACL *+
LDPK _nNewSysDataWrPreAdr
LAC _nNewSysDataWrPreAdr
ADLK _TbWrSysTab+0,0
SACL *+
CALL _ReadRom
SBRK 3
.line 6
;>>>> if(nTbTxCh[1]==0)
LDPK _nTbTxCh+1
LAC _nTbTxCh+1
BNZ L44
.line 7
;>>>> {nNewSysDataWrPreAdr=0;
LACK 0
LDPK _nNewSysDataWrPreAdr
SACL _nNewSysDataWrPreAdr
.line 8
;>>>> if(bRefurbish==True)
ZALS _bRefurbish
RSXM
SUBK -1
BNZ EPI0_9
.line 9
;>>>> TbTranTxData(0x4444,1,nTbRxCh,nTbTxCh);
LALK _nTbTxCh+0
SACL *+
LALK _nTbRxCh+0
SACL *+
LACK 1
SACL *+
LACK 17476
SACL *+
CALL _TbTranTxData
SBRK 4
.line 10
;>>>> return;}
B EPI0_9
L44:
.line 11
;>>>> Len=nTbTxCh[2];
MAR * ,AR2
LARK AR2,4
MAR *0+
BLKD #_nTbTxCh+2,*-
.line 12
;>>>> info=(unsigned *)nTbTxCh[1];
BLKD #_nTbTxCh+1,*-
.line 13
;>>>> reg_p=nTbTxCh;
LALK _nTbTxCh+0
SACL *
.line 14
;>>>> if(Len>256-1) return(False);
SSXM
ADRK 2
LAC *
SUBK 255
BLEZ L46
LACK 0
B EPI0_9
L46:
.line 15
;>>>> *reg_p++=0x3355;
SBRK 2
LAR AR3,* ,AR3
SPLK #13141,*+,AR2
SAR AR3,*
.line 16
;>>>> *reg_p++=Len+3;
ADDK 258
LAR AR3,* ,AR3
SACL *+,AR2
SAR AR3,*
.line 17
;>>>> reg_p+=3;
LAC *
ADDK 3
SACL *-
.line 18
;>>>> for(i=5;i<Len+5;i++) { *reg_p++=*info++;}
LACK 5
SACL *
ADRK 3
LAC *
ADDK 5
ANDK 0FFFFh
SBRK 3
SUBS *
BLEZ L48
ADRK 2
L47:
LAR AR3,*-
LAR AR4,*+,AR3
LAC *+,AR2
SAR AR3,*-,AR4
SACL *+,AR2
SAR AR4,*-
LAC *
ADDK 1
SACL *
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -