⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dss.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; 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 + -