📄 dss.asm
字号:
; 194 | DSS_rxPrime(((DSS_Obj *)device->object)->chan, 0);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(4),B4 ; |194|
MVKL .S2 RL44,B3 ; |194|
MVKH .S2 RL44,B3 ; |194|
NOP 2
LDW .D2T2 *+B4(32),B4 ; |194|
NOP 3
B .S1 _DSS_rxPrime ; |194|
LDW .D2T1 *+B4(8),A4 ;
ZERO .L2 B4 ; |194|
NOP 3
RL44: ; CALL OCCURS ; |194|
;** --------------------------------------------------------------------------*
L13:
.line 10
;----------------------------------------------------------------------
; 197 | return SYS_OK;
;----------------------------------------------------------------------
ZERO .L1 A4 ; |197|
.line 11
LDW .D2T2 *++SP(8),B3 ; |198|
NOP 4
B .S2 B3 ; |198|
NOP 5
; BRANCH OCCURS ; |198|
.endfunc 198,000080000h,8
.sect ".text"
.global _DSS_open
.sym _DSS_open,_DSS_open, 36, 2, 0
.func 203
;----------------------------------------------------------------------
; 203 | DSS_open(DEV_Handle device, String arg)
;----------------------------------------------------------------------
;******************************************************************************
;* FUNCTION NAME: _DSS_open *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,DP,SP *
;* Local Frame Size : 0 Args + 12 Auto + 8 Save = 20 byte *
;******************************************************************************
_DSS_open:
;** --------------------------------------------------------------------------*
.sym _device,4, 24, 17, 32, _DEV_Obj
.sym _arg,20, 18, 17, 32
.sym _device,4, 24, 1, 32, _DEV_Obj
.sym _arg,8, 18, 1, 32
.sym _objptr,12, 24, 1, 32, _DSS_obj
STW .D2T2 B3,*SP--(24) ; |203|
STW .D2T1 A10,*+SP(20) ; |203|
.line 2
;----------------------------------------------------------------------
; 205 | DSS_Handle objptr;
;----------------------------------------------------------------------
STW .D2T2 B4,*+SP(8) ; |204|
STW .D2T1 A4,*+SP(4) ; |204|
.line 5
;----------------------------------------------------------------------
; 207 | LOG_message("DSS_open called for chan %d", atoi(arg));
;----------------------------------------------------------------------
B .S1 _TRC_query ; |207|
MVKL .S2 RL48,B3 ; |207|
ZERO .L1 A0 ; |207|
SET .S1 A0,0xe,0xf,A4 ; |207|
MVKH .S2 RL48,B3 ; |207|
NOP 1
RL48: ; CALL OCCURS ; |207|
MV .L1 A4,A1 ; |207|
[ A1] B .S1 L14 ; |207|
NOP 5
; BRANCH OCCURS ; |207|
;** --------------------------------------------------------------------------*
B .S1 _atoi ; |207|
LDW .D2T1 *+SP(8),A4 ; |207|
MVKL .S2 RL52,B3 ; |207|
MVKH .S2 RL52,B3 ; |207|
NOP 2
RL52: ; CALL OCCURS ; |207|
B .S1 _LOG_event ; |207|
MV .L2X A4,B4 ;
|| LDW .D2T1 *+DP(_LOG_D_system),A4 ; |207|
MVK .S2 0x8,B6 ; |207|
MVKL .S2 RL54,B3 ; |207|
MVKL .S1 SL3+0,A6 ; |207|
MVKH .S2 RL54,B3 ; |207|
|| MVKH .S1 SL3+0,A6 ; |207|
RL54: ; CALL OCCURS ; |207|
;** --------------------------------------------------------------------------*
L14:
.line 6
;----------------------------------------------------------------------
; 208 | objptr = MEM_alloc(SDRAM, sizeof(DSS_Obj), 0);
;----------------------------------------------------------------------
B .S1 _MEM_alloc ; |208|
LDW .D2T1 *+DP(_SDRAM),A4 ; |208|
MVKL .S2 RL56,B3 ; |208|
MVK .S2 0x10,B4 ; |208|
MVKH .S2 RL56,B3 ; |208|
ZERO .L1 A6 ; |208|
RL56: ; CALL OCCURS ; |208|
STW .D2T1 A4,*+SP(12) ; |208|
.line 8
;----------------------------------------------------------------------
; 210 | if (objptr == NULL) {
;----------------------------------------------------------------------
MV .L1 A4,A1
.line 9
;----------------------------------------------------------------------
; 211 | return SYS_EALLOC;
;----------------------------------------------------------------------
[!A1] B .S1 L26 ; |211|
[!A1] MVK .S1 0x1,A10 ; |211|
NOP 4
; BRANCH OCCURS ; |211|
;** --------------------------------------------------------------------------*
.line 11
;----------------------------------------------------------------------
; 213 | objptr->chan = atoi(arg);
;----------------------------------------------------------------------
B .S1 _atoi ; |213|
LDW .D2T1 *+SP(8),A4 ; |213|
MVKL .S2 RL58,B3 ; |213|
MVKH .S2 RL58,B3 ; |213|
NOP 2
RL58: ; CALL OCCURS ; |213|
LDW .D2T1 *+SP(12),A0 ; |213|
NOP 4
STW .D1T1 A4,*+A0(8) ; |213|
.line 14
;----------------------------------------------------------------------
; 216 | if (device->mode == DEV_INPUT) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(4),B4 ; |216|
NOP 4
LDW .D2T2 *+B4(20),B0 ; |216|
NOP 4
[ B0] B .S1 L16 ; |216|
NOP 5
; BRANCH OCCURS ; |216|
;** --------------------------------------------------------------------------*
.line 15
;----------------------------------------------------------------------
; 217 | if (DSS_adcObj[objptr->chan] != NULL) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |217|
NOP 4
LDW .D2T2 *+B4(8),B5 ; |217|
MVK .S2 (_DSS_adcObj-$bss),B4 ; |217|
ADD .L2 DP,B4,B4 ; |217|
NOP 2
LDW .D2T2 *+B4[B5],B0 ; |217|
NOP 4
[!B0] B .S1 L15 ; |217|
NOP 5
; BRANCH OCCURS ; |217|
;** --------------------------------------------------------------------------*
.line 16
;----------------------------------------------------------------------
; 218 | return SYS_EBUSY;
;----------------------------------------------------------------------
B .S1 L26 ; |218|
MVK .S1 0x4,A10 ; |218|
NOP 4
; BRANCH OCCURS ; |218|
;** --------------------------------------------------------------------------*
.line 17
;----------------------------------------------------------------------
; 219 | } else {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L15:
.line 18
;----------------------------------------------------------------------
; 220 | DSS_adcObj[objptr->chan] = device;
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |220|
LDW .D2T2 *+SP(4),B5 ; |220|
NOP 3
LDW .D2T2 *+B4(8),B6 ; |220|
MVK .S2 (_DSS_adcObj-$bss),B4 ; |220|
ADD .L2 DP,B4,B4 ; |220|
NOP 2
STW .D2T2 B5,*+B4[B6] ; |220|
.line 20
;----------------------------------------------------------------------
; 222 | } else if (device->mode == DEV_OUTPUT) {
;----------------------------------------------------------------------
B .S1 L19 ; |222|
NOP 5
; BRANCH OCCURS ; |222|
;** --------------------------------------------------------------------------*
L16:
LDW .D2T2 *+SP(4),B4 ; |222|
NOP 4
LDW .D2T2 *+B4(20),B4 ; |222|
NOP 4
CMPEQ .L2 B4,1,B0 ; |222|
[!B0] B .S1 L18 ; |222|
NOP 5
; BRANCH OCCURS ; |222|
;** --------------------------------------------------------------------------*
.line 21
;----------------------------------------------------------------------
; 223 | if (DSS_dacObj[objptr->chan] != NULL) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |223|
NOP 4
LDW .D2T2 *+B4(8),B5 ; |223|
MVK .S2 (_DSS_dacObj-$bss),B4 ; |223|
ADD .L2 DP,B4,B4 ; |223|
NOP 2
LDW .D2T2 *+B4[B5],B0 ; |223|
NOP 4
[!B0] B .S1 L17 ; |223|
NOP 5
; BRANCH OCCURS ; |223|
;** --------------------------------------------------------------------------*
.line 22
;----------------------------------------------------------------------
; 224 | return SYS_EBUSY;
;----------------------------------------------------------------------
B .S1 L26 ; |224|
MVK .S1 0x4,A10 ; |224|
NOP 4
; BRANCH OCCURS ; |224|
;** --------------------------------------------------------------------------*
.line 23
;----------------------------------------------------------------------
; 225 | } else {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L17:
.line 24
;----------------------------------------------------------------------
; 226 | DSS_dacObj[objptr->chan] = device;
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |226|
LDW .D2T2 *+SP(4),B5 ; |226|
NOP 3
LDW .D2T2 *+B4(8),B6 ; |226|
MVK .S2 (_DSS_dacObj-$bss),B4 ; |226|
ADD .L2 DP,B4,B4 ; |226|
NOP 2
STW .D2T2 B5,*+B4[B6] ; |226|
.line 26
;----------------------------------------------------------------------
; 228 | } else {
;----------------------------------------------------------------------
B .S1 L19 ; |228|
NOP 5
; BRANCH OCCURS ; |228|
;** --------------------------------------------------------------------------*
L18:
.line 28
;----------------------------------------------------------------------
; 230 | return SYS_EMODE;
;----------------------------------------------------------------------
B .S1 L26 ; |230|
MVK .S1 0x7,A10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -