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

📄 mcbsp_ad535.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           AND     .L1     -2,A10,A1         ; |311| 
   [ A1]   B       .S1     L12               ; |311| 
           NOP             5
           ; BRANCH OCCURS                   ; |311| 
;** --------------------------------------------------------------------------*
;** 312	-----------------------    disableIntr(chan);
	.line	6
           B       .S1     _disableIntr      ; |312| 
           MVKL    .S2     RL19,B3           ; |312| 
           MVKH    .S2     RL19,B3           ; |312| 
           NOP             3
RL19:      ; CALL OCCURS                     ; |312| 
;** --------------------------------------------------------------------------*
L12:    
;**	-----------------------g2:
;** 315	-----------------------    C$1 = &chans[chan];
;** 315	-----------------------    if ( !(retVal = C$1->fullBuffer) ) goto g4;
;** 318	-----------------------    *size = *dataSize = C$1->fullSize;
;**	-----------------------g4:
;** 321	-----------------------    (chan*44+&chans)->fullBuffer = NULL;
;** 323	-----------------------    if ( chan&0xfffffffeu ) goto g6;
	.line	9
           MVK     .S1     44,A0             ; |315| 
           MPYLHU  .M1     A0,A10,A3         ; |315| 
           MPYU    .M1     A0,A10,A0         ; |315| 

           SHL     .S1     A3,16,A3          ; |315| 
||         MVK     .S2     (_chans-$bss),B4  ; |315| 

           ADD     .L1     A0,A3,A0          ; |315| 
||         ADD     .L2     DP,B4,B4          ; |315| 

           ADD     .L2X    B4,A0,B4          ; |315| 
           LDW     .D2T1   *+B4(20),A11      ; 
           NOP             4
	.line	12
           MV      .L1     A11,A1
   [ A1]   LDW     .D2T2   *+B4(24),B4       ; |318| 
           NOP             4
   [ A1]   STW     .D2T2   B4,*B11           ; |318| 
   [ A1]   STW     .D2T2   B4,*B10           ; |318| 
	.line	15
           MVK     .S2     44,B5             ; |321| 
           MPYLHU  .M2X    B5,A10,B4         ; |321| 
           MPYU    .M2X    B5,A10,B5         ; |321| 

           SHL     .S2     B4,16,B4          ; |321| 
||         MVK     .S1     (_chans+20-$bss),A0 ; |321| 

           ADD     .L2     B5,B4,B4          ; |321| 
||         ADD     .L1X    DP,A0,A0          ; |321| 

           ZERO    .L1     A0                ; |321| 
||         ADD     .S1X    A0,B4,A3          ; |321| 

           STW     .D1T1   A0,*A3            ; |321| 
	.line	17
           AND     .L1     -2,A10,A1         ; |323| 
   [ A1]   B       .S1     L13               ; |323| 
           NOP             5
           ; BRANCH OCCURS                   ; |323| 
;** --------------------------------------------------------------------------*
;** 324	-----------------------    enableIntr(chan);
	.line	18
           B       .S1     _enableIntr       ; |324| 
           MVKL    .S2     RL21,B3           ; |324| 
           MVKH    .S2     RL21,B3           ; |324| 
           MV      .L1     A10,A4            ; |324| 
           NOP             2
RL21:      ; CALL OCCURS                     ; |324| 
;** --------------------------------------------------------------------------*
L13:    
;**	-----------------------g6:
;** 327	-----------------------    return retVal;
	.line	21
           MV      .L1     A11,A4
	.line	22
           LDW     .D2T2   *+SP(16),B3       ; |328| 
           LDW     .D2T2   *+SP(20),B10      ; |328| 
           LDW     .D2T1   *+SP(8),A10       ; |328| 
           LDW     .D2T1   *+SP(12),A11      ; |328| 
           LDW     .D2T2   *++SP(24),B11     ; |328| 
           B       .S2     B3                ; |328| 
           NOP             5
           ; BRANCH OCCURS                   ; |328| 
	.endfunc	328,00c080c00h,24


	.sect	".text"
	.sym	_init,_init, 36, 3, 0
	.func	331

;******************************************************************************
;* FUNCTION NAME: _init                                                       *
;*                                                                            *
;*   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 + 0 Auto + 8 Save = 8 byte                    *
;******************************************************************************
_init:
;** --------------------------------------------------------------------------*
	.sym	_chan,4, 14, 17, 32
	.sym	_args,20, 16, 17, 32
	.sym	_chan,10, 14, 4, 32
;** 333	-----------------------    if ( codecInited ) goto g2;
           STW     .D2T2   B3,*SP--(8)       ; |331| 
           STW     .D2T1   A10,*+SP(4)       ; |331| 
	.line	2
           MV      .L1     A4,A10            ; |332| 
	.line	3
           LDW     .D2T2   *+DP(_codecInited),B0 ; |333| 
           NOP             4
   [ B0]   B       .S1     L14               ; |333| 
           NOP             5
           ; BRANCH OCCURS                   ; |333| 
;** --------------------------------------------------------------------------*
;** 334	-----------------------    enableCodec();
;** 335	-----------------------    codecInited = 1;
;** 342	-----------------------    IRQ_Map(15u, 6);
;** 343	-----------------------    IRQ_Map(14u, 7);
	.line	4
           B       .S1     _enableCodec      ; |334| 
           MVKL    .S2     RL23,B3           ; |334| 
           MVKH    .S2     RL23,B3           ; |334| 
           NOP             3
RL23:      ; CALL OCCURS                     ; |334| 
	.line	5
           MVK     .S1     1,A0              ; |335| 
           STW     .D2T1   A0,*+DP(_codecInited) ; |335| 
	.line	12
           MVKL    .S2     _IRQ_Map,B5       ; |342| 
           MVKH    .S2     _IRQ_Map,B5       ; |342| 
           B       .S2     B5                ; |342| 
           MVK     .S2     0x6,B4            ; |342| 
           MVKL    .S2     RL25,B3           ; |342| 
           MVKH    .S2     RL25,B3           ; |342| 
           MVK     .S1     0xf,A4            ; |342| 
           NOP             1
RL25:      ; CALL OCCURS                     ; |342| 
	.line	13
           MVKL    .S1     _IRQ_Map,A0       ; |343| 
           MVKH    .S1     _IRQ_Map,A0       ; |343| 
           B       .S2X    A0                ; |343| 
           MVKL    .S2     RL26,B3           ; |343| 
           MVK     .S2     0x7,B4            ; |343| 
           MVKH    .S2     RL26,B3           ; |343| 
           MVK     .S1     0xe,A4            ; |343| 
           NOP             1
RL26:      ; CALL OCCURS                     ; |343| 
;** --------------------------------------------------------------------------*
L14:    
;**	-----------------------g2:
;** 347	-----------------------    if ( chan >= 4u ) goto g4;
	.line	17
           CMPLTU  .L1     A10,4,A1          ; |347| 
   [!A1]   B       .S1     L15               ; |347| 
           NOP             5
           ; BRANCH OCCURS                   ; |347| 
;** --------------------------------------------------------------------------*
;** 350	-----------------------    initDrvObj(chan*44+&chans);
;** 352	-----------------------    return 1;
	.line	20

           B       .S2     _initDrvObj       ; |350| 
||         MVK     .S1     44,A3             ; |350| 

           MPYLHU  .M1     A3,A10,A0         ; |350| 
           MPYU    .M1     A3,A10,A3         ; |350| 

           SHL     .S1     A0,16,A0          ; |350| 
||         MVK     .S2     (_chans-$bss),B4  ; |350| 

           ADD     .L1     A3,A0,A0          ; |350| 
||         ADD     .L2     DP,B4,B4          ; |350| 
||         MVKL    .S2     RL27,B3           ; |350| 

           ADD     .L1X    B4,A0,A4          ; |350| 
||         MVKH    .S2     RL27,B3           ; |350| 

RL27:      ; CALL OCCURS                     ; |350| 
	.line	22
           B       .S1     L16               ; |352| 
           MVK     .S1     0x1,A4            ; |352| 
           NOP             4
           ; BRANCH OCCURS                   ; |352| 
;** --------------------------------------------------------------------------*
L15:    
;**	-----------------------g4:
;** 356	-----------------------    return 0;
	.line	26
           ZERO    .L1     A4                ; |356| 
;** --------------------------------------------------------------------------*
L16:    
	.line	27
           LDW     .D2T1   *+SP(4),A10       ; |357| 
           LDW     .D2T2   *++SP(8),B3       ; |357| 
           NOP             4
           B       .S2     B3                ; |357| 
           NOP             5
           ; BRANCH OCCURS                   ; |357| 
	.endfunc	357,000080400h,8


	.sect	".text"
	.sym	_isEmpty,_isEmpty, 36, 3, 0
	.func	360

;******************************************************************************
;* FUNCTION NAME: _isEmpty                                                    *
;*                                                                            *
;*   Regs Modified     : A0,A3,A4,B0,B4                                       *
;*   Regs Used         : A0,A3,A4,B0,B3,B4,DP                                 *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_isEmpty:
;** --------------------------------------------------------------------------*
	.sym	_chan,4, 14, 17, 32
	.sym	_chan,4, 14, 4, 32
;** 362	-----------------------    return (chan*44+&chans)->currentBuffer == NULL;
	.line	2
	.line	3
           MVK     .S1     44,A3             ; |362| 
           MPYLHU  .M1     A3,A4,A0          ; |362| 
           MPYU    .M1     A3,A4,A3          ; |362| 

           SHL     .S1     A0,16,A0          ; |362| 
||         MVK     .S2     (_chans+4-$bss),B4 ; |362| 

           ADD     .L1     A3,A0,A0          ; |362| 
||         ADD     .L2     DP,B4,B4          ; |362| 

           ADD     .L2X    B4,A0,B4          ; |362| 
           LDW     .D2T2   *B4,B0            ; |362| 
           ZERO    .L1     A4                ; |362| 
           NOP             3
   [!B0]   MVK     .S1     0x1,A4            ; |362| 
	.line	4
           B       .S2     B3                ; |363| 
           NOP             5
           ; BRANCH OCCURS                   ; |363| 
	.endfunc	363,000000000h,0


	.sect	".text"
	.sym	_isFull,_isFull, 36, 3, 0
	.func	366

;******************************************************************************
;* FUNCTION NAME: _isFull                                                     *
;*                                                                            *
;*   Regs Modified     : A0,A3,A4,B0,B4                                       *
;*   Regs Used         : A0,A3,A4,B0,B3,B4,DP                                 *
;*   Local Frame Size  : 0 Args + 0 Auto + 0 Save = 0 byte                    *
;******************************************************************************
_isFull:
;** --------------------------------------------------------------------------*
	.sym	_chan,4, 14, 17, 32
	.sym	_chan,4, 14, 4, 32
;** 368	-----------------------    return (chan*44+&chans)->nextBuffer != NULL;
	.line	2
	.line	3
           MVK     .S1     44,A3             ; |368| 
           MPYLHU  .M1     A3,A4,A0          ; |368| 
           MPYU    .M1     A3,A4,A3          ; |368| 

           SHL     .S1     A0,16,A0          ; |368| 
||         MVK     .S2     (_chans+28-$bss),B4 ; |368| 

           ADD     .L1     A3,A0,A0          ; |368| 
||         ADD     .L2     DP,B4,B4          ; |368| 

           ADD     .L2X    B4,A0,B4          ; |368| 
           LDW     .D2T2   *B4,B0            ; |368| 
           ZERO    .L1     A4                ; |368| 
           NOP             3
   [ B0]   MVK     .S1     0x1,A4            ; |368| 
	.line	4
           B       .S2     B3                ; |369| 
           NOP             5
           ; BRANCH OCCURS                   ; |369| 
	.endfunc	369,000000000h,0


	.sect	".text"
	.sym	_setBuf,_setBuf, 36, 3, 0
	.func	373

;******************************************************************************
;* FUNCTION NAME: _setBuf                                                     *
;*                                                                            *
;*   R

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -