📄 dss.asm
字号:
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L18:
.line 18
;----------------------------------------------------------------------
; 214 | chan = 0;
; 215 | break;
; 216 | case '1':
;----------------------------------------------------------------------
ZERO .L2 B4 ; |214|
STW .D2T2 B4,*+SP(16) ; |214|
B .S1 L22 ; |214|
NOP 5
; BRANCH OCCURS ; |214|
;** --------------------------------------------------------------------------*
L19:
.line 21
;----------------------------------------------------------------------
; 217 | chan = 1;
; 218 | break;
; 219 | default:
;----------------------------------------------------------------------
MVK .S2 1,B4 ; |217|
STW .D2T2 B4,*+SP(16) ; |217|
B .S1 L22 ; |217|
NOP 5
; BRANCH OCCURS ; |217|
;** --------------------------------------------------------------------------*
L20:
.line 24
;----------------------------------------------------------------------
; 220 | return SYS_ENODEV;
;----------------------------------------------------------------------
B .S1 L30 ; |220|
MVK .S1 0x3,A4 ; |220|
NOP 4
; BRANCH OCCURS ; |220|
;** --------------------------------------------------------------------------*
;** --------------------------------------------------------------------------*
L21:
LDW .D2T2 *+SP(8),B4 ; |220|
MVK .S1 48,A0 ; |220|
MVK .S2 49,B5 ; |220|
NOP 2
LDB .D2T2 *B4,B4 ; |220|
NOP 4
CMPEQ .L1X B4,A0,A1 ; |220|
[ A1] B .S1 L18 ; |220|
CMPEQ .L2 B4,B5,B0 ; |220|
NOP 4
; BRANCH OCCURS ; |220|
;** --------------------------------------------------------------------------*
[ B0] B .S1 L19 ; |220|
NOP 5
; BRANCH OCCURS ; |220|
;** --------------------------------------------------------------------------*
B .S1 L20 ; |220|
NOP 5
; BRANCH OCCURS ; |220|
;** --------------------------------------------------------------------------*
L22:
.line 28
;----------------------------------------------------------------------
; 224 | if (device->mode == DEV_INPUT) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(4),B4 ; |224|
NOP 4
LDW .D2T2 *+B4(20),B0 ; |224|
NOP 4
[ B0] B .S1 L24 ; |224|
NOP 5
; BRANCH OCCURS ; |224|
;** --------------------------------------------------------------------------*
.line 29
;----------------------------------------------------------------------
; 225 | if (DSS_adcObj[chan] != NULL) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(16),B5 ; |225|
MVK .S2 (_DSS_adcObj-$bss),B4 ; |225|
ADD .L2 DP,B4,B4 ; |225|
NOP 2
LDW .D2T2 *+B4[B5],B0 ; |225|
NOP 4
[!B0] B .S1 L23 ; |225|
NOP 5
; BRANCH OCCURS ; |225|
;** --------------------------------------------------------------------------*
.line 30
;----------------------------------------------------------------------
; 226 | return SYS_EBUSY;
;----------------------------------------------------------------------
B .S1 L30 ; |226|
MVK .S1 0x4,A4 ; |226|
NOP 4
; BRANCH OCCURS ; |226|
;** --------------------------------------------------------------------------*
.line 31
;----------------------------------------------------------------------
; 227 | } else {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L23:
.line 32
;----------------------------------------------------------------------
; 228 | DSS_adcObj[chan] = device;
;----------------------------------------------------------------------
LDW .D2T2 *+SP(16),B5 ; |228|
LDW .D2T2 *+SP(4),B6 ; |228|
MVK .S2 (_DSS_adcObj-$bss),B4 ; |228|
ADD .L2 DP,B4,B4 ; |228|
NOP 2
STW .D2T2 B6,*+B4[B5] ; |228|
.line 34
;----------------------------------------------------------------------
; 230 | } else if (device->mode == DEV_OUTPUT) {
;----------------------------------------------------------------------
B .S1 L27 ; |230|
NOP 5
; BRANCH OCCURS ; |230|
;** --------------------------------------------------------------------------*
L24:
LDW .D2T2 *+SP(4),B4 ; |230|
NOP 4
LDW .D2T2 *+B4(20),B4 ; |230|
NOP 4
CMPEQ .L2 B4,1,B0 ; |230|
[!B0] B .S1 L26 ; |230|
NOP 5
; BRANCH OCCURS ; |230|
;** --------------------------------------------------------------------------*
.line 35
;----------------------------------------------------------------------
; 231 | if (DSS_dacObj[chan] != NULL) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(16),B5 ; |231|
MVK .S2 (_DSS_dacObj-$bss),B4 ; |231|
ADD .L2 DP,B4,B4 ; |231|
NOP 2
LDW .D2T2 *+B4[B5],B0 ; |231|
NOP 4
[!B0] B .S1 L25 ; |231|
NOP 5
; BRANCH OCCURS ; |231|
;** --------------------------------------------------------------------------*
.line 36
;----------------------------------------------------------------------
; 232 | return SYS_EBUSY;
;----------------------------------------------------------------------
B .S1 L30 ; |232|
MVK .S1 0x4,A4 ; |232|
NOP 4
; BRANCH OCCURS ; |232|
;** --------------------------------------------------------------------------*
.line 37
;----------------------------------------------------------------------
; 233 | } else {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L25:
.line 38
;----------------------------------------------------------------------
; 234 | DSS_dacObj[chan] = device;
;----------------------------------------------------------------------
LDW .D2T2 *+SP(16),B5 ; |234|
LDW .D2T2 *+SP(4),B6 ; |234|
MVK .S2 (_DSS_dacObj-$bss),B4 ; |234|
ADD .L2 DP,B4,B4 ; |234|
NOP 2
STW .D2T2 B6,*+B4[B5] ; |234|
.line 40
;----------------------------------------------------------------------
; 236 | } else {
;----------------------------------------------------------------------
B .S1 L27 ; |236|
NOP 5
; BRANCH OCCURS ; |236|
;** --------------------------------------------------------------------------*
L26:
.line 42
;----------------------------------------------------------------------
; 238 | return SYS_EMODE;
;----------------------------------------------------------------------
B .S1 L30 ; |238|
MVK .S1 0x7,A4 ; |238|
NOP 4
; BRANCH OCCURS ; |238|
;** --------------------------------------------------------------------------*
L27:
.line 45
;----------------------------------------------------------------------
; 241 | objptr = MEM_alloc(IDRAM, sizeof(DSS_Obj), 0);
;----------------------------------------------------------------------
B .S1 _MEM_alloc ; |241|
LDW .D2T1 *+DP(_IDRAM),A4 ; |241|
MVKL .S2 RL44,B3 ; |241|
MVK .S2 0xc,B4 ; |241|
MVKH .S2 RL44,B3 ; |241|
ZERO .L1 A6 ; |241|
RL44: ; CALL OCCURS ; |241|
STW .D2T1 A4,*+SP(12) ; |241|
.line 47
;----------------------------------------------------------------------
; 243 | if (device->mode == DEV_INPUT) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(4),B4 ; |243|
NOP 4
LDW .D2T2 *+B4(20),B0 ; |243|
NOP 4
[ B0] B .S1 L28 ; |243|
NOP 5
; BRANCH OCCURS ; |243|
;** --------------------------------------------------------------------------*
.line 49
;----------------------------------------------------------------------
; 245 | objptr->sync = SEM_create(0, NULL);
;----------------------------------------------------------------------
B .S1 _SEM_create ; |245|
MVKL .S2 RL46,B3 ; |245|
MVKH .S2 RL46,B3 ; |245|
ZERO .L2 B4 ; |245|
ZERO .L1 A4 ; |245|
NOP 1
RL46: ; CALL OCCURS ; |245|
LDW .D2T2 *+SP(12),B4 ; |245|
NOP 4
STW .D2T1 A4,*B4 ; |245|
.line 50
;----------------------------------------------------------------------
; 246 | } else {
;----------------------------------------------------------------------
B .S1 L29 ; |246|
NOP 5
; BRANCH OCCURS ; |246|
;** --------------------------------------------------------------------------*
L28:
.line 51
;----------------------------------------------------------------------
; 247 | objptr->sync = SEM_create(0, NULL); /* used to be set to device->nbufs
; | */
;----------------------------------------------------------------------
B .S1 _SEM_create ; |247|
MVKL .S2 RL48,B3 ; |247|
MVKH .S2 RL48,B3 ; |247|
ZERO .L2 B4 ; |247|
ZERO .L1 A4 ; |247|
NOP 1
RL48: ; CALL OCCURS ; |247|
LDW .D2T2 *+SP(12),B4 ; |247|
NOP 4
STW .D2T1 A4,*B4 ; |247|
;** --------------------------------------------------------------------------*
L29:
.line 53
;----------------------------------------------------------------------
; 249 | objptr->ready = NULL;
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B5 ; |249|
ZERO .L2 B4 ; |249|
NOP 3
STW .D2T2 B4,*+B5(4) ; |249|
.line 54
;----------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -