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

📄 echo.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 3 页
字号:
           ; BRANCH OCCURS                   ; |137| 
;** --------------------------------------------------------------------------*
	.line	18
;----------------------------------------------------------------------
; 138 | SYS_abort("Cannot get static buffer");                                 
;----------------------------------------------------------------------
           B       .S1     _SYS_abort        ; |138| 
           MVKL    .S1     SL4+0,A0          ; |138| 
           MVKH    .S1     SL4+0,A0          ; |138| 
           MVKL    .S2     RL18,B3           ; |138| 
           STW     .D2T1   A0,*+SP(4)        ; |138| 
           MVKH    .S2     RL18,B3           ; |138| 
RL18:      ; CALL OCCURS                     ; |138| 
;** --------------------------------------------------------------------------*
L2:    
	.line	23
;----------------------------------------------------------------------
; 143 | inStreams[0] = &inStream0;                                             
;----------------------------------------------------------------------
           MVKL    .S2     _inStream0,B4     ; |143| 
           MVKH    .S2     _inStream0,B4     ; |143| 
           STW     .D2T2   B4,*+SP(20)       ; |143| 
	.line	24
;----------------------------------------------------------------------
; 144 | inStreams[1] = &inStream1;                                             
;----------------------------------------------------------------------
           MVKL    .S1     _inStream1,A0     ; |144| 
           MVKH    .S1     _inStream1,A0     ; |144| 
           STW     .D2T1   A0,*+SP(24)       ; |144| 
	.line	28
;----------------------------------------------------------------------
; 148 | while (TRUE) {                                                         
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L3:    
	.line	29
;----------------------------------------------------------------------
; 149 | mask = SIO_select(inStreams, 2, SYS_FOREVER);                          
;----------------------------------------------------------------------
           B       .S1     _SIO_select       ; |149| 
           MVKL    .S2     RL20,B3           ; |149| 
           MVK     .S2     0x2,B4            ; |149| 
           ADD     .D2     SP,20,B5          ; |149| 
           MVKH    .S2     RL20,B3           ; |149| 

           MV      .L1X    B5,A4             ; |149| 
||         MVK     .S1     0xffffffff,A6     ; |149| 

RL20:      ; CALL OCCURS                     ; |149| 
           STW     .D2T1   A4,*+SP(16)       ; |149| 
	.line	31
;----------------------------------------------------------------------
; 151 | if (mask & CHAN_0_READY) {                                             
;----------------------------------------------------------------------
           AND     .L1     1,A4,A1           ; |151| 
   [!A1]   B       .S1     L4                ; |151| 
           NOP             5
           ; BRANCH OCCURS                   ; |151| 
;** --------------------------------------------------------------------------*
	.line	32
;----------------------------------------------------------------------
; 152 | LOG_printf(&trace1, "channel 0");                                      
;----------------------------------------------------------------------
           B       .S1     _LOG_printf       ; |152| 
           MVKL    .S2     SL5+0,B4          ; |152| 
           MVKL    .S2     RL22,B3           ; |152| 
           MVKH    .S2     SL5+0,B4          ; |152| 
           MVKL    .S1     _trace1,A4        ; |152| 

           STW     .D2T2   B4,*+SP(4)        ; |152| 
||         MVKH    .S2     RL22,B3           ; |152| 
||         MVKH    .S1     _trace1,A4        ; |152| 

RL22:      ; CALL OCCURS                     ; |152| 
	.line	34
;----------------------------------------------------------------------
; 154 | if (!processChannel(&audioChannel[0], &buf)) {                         
;----------------------------------------------------------------------
           B       .S1     _processChannel   ; |154| 
           MVKL    .S2     RL24,B3           ; |154| 
           MVK     .S1     (_audioChannel-$bss),A0 ; |154| 
           ADD     .L1X    DP,A0,A4          ; 
           ADD     .L2     12,SP,B4          ; |154| 
           MVKH    .S2     RL24,B3           ; |154| 
RL24:      ; CALL OCCURS                     ; |154| 
           MV      .L1     A4,A1             ; |154| 
   [ A1]   B       .S1     L4                ; |154| 
           NOP             5
           ; BRANCH OCCURS                   ; |154| 
;** --------------------------------------------------------------------------*
	.line	35
;----------------------------------------------------------------------
; 155 | LOG_printf(&trace, "processing error on channel 0");                   
;----------------------------------------------------------------------
           B       .S1     _LOG_printf       ; |155| 
           MVKL    .S2     SL6+0,B4          ; |155| 
           MVKL    .S2     RL26,B3           ; |155| 
           MVKH    .S2     SL6+0,B4          ; |155| 
           MVKL    .S1     _trace,A4         ; |155| 

           STW     .D2T2   B4,*+SP(4)        ; |155| 
||         MVKH    .S2     RL26,B3           ; |155| 
||         MVKH    .S1     _trace,A4         ; |155| 

RL26:      ; CALL OCCURS                     ; |155| 
;** --------------------------------------------------------------------------*
L4:    
	.line	39
;----------------------------------------------------------------------
; 159 | if (mask & CHAN_1_READY) {                                             
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(16),B4       ; |159| 
           NOP             4
           AND     .L2     2,B4,B0           ; |159| 
   [!B0]   B       .S1     L3                ; |159| 
           NOP             5
           ; BRANCH OCCURS                   ; |159| 
;** --------------------------------------------------------------------------*
	.line	40
;----------------------------------------------------------------------
; 160 | LOG_printf(&trace1, "channel 1");                                      
;----------------------------------------------------------------------
           B       .S1     _LOG_printf       ; |160| 
           MVKL    .S2     SL7+0,B4          ; |160| 
           MVKL    .S2     RL28,B3           ; |160| 
           MVKH    .S2     SL7+0,B4          ; |160| 
           MVKL    .S1     _trace1,A4        ; |160| 

           STW     .D2T2   B4,*+SP(4)        ; |160| 
||         MVKH    .S2     RL28,B3           ; |160| 
||         MVKH    .S1     _trace1,A4        ; |160| 

RL28:      ; CALL OCCURS                     ; |160| 
	.line	42
;----------------------------------------------------------------------
; 162 | if (!processChannel(&audioChannel[1], &buf)) {                         
;----------------------------------------------------------------------
           B       .S1     _processChannel   ; |162| 
           MVKL    .S2     RL30,B3           ; |162| 
           MVK     .S1     (_audioChannel+12-$bss),A0 ; |162| 
           ADD     .L1X    DP,A0,A4          ; 
           ADD     .L2     12,SP,B4          ; |162| 
           MVKH    .S2     RL30,B3           ; |162| 
RL30:      ; CALL OCCURS                     ; |162| 
           MV      .L1     A4,A1             ; |162| 
   [ A1]   B       .S1     L3                ; |162| 
           NOP             5
           ; BRANCH OCCURS                   ; |162| 
;** --------------------------------------------------------------------------*
	.line	43
;----------------------------------------------------------------------
; 163 | LOG_printf(&trace, "processing error on channel 1");                   
;----------------------------------------------------------------------
           B       .S1     _LOG_printf       ; |163| 
           MVKL    .S2     SL8+0,B4          ; |163| 
           MVKL    .S2     RL32,B3           ; |163| 
           MVKH    .S2     SL8+0,B4          ; |163| 
           MVKL    .S1     _trace,A4         ; |163| 

           STW     .D2T2   B4,*+SP(4)        ; |163| 
||         MVKH    .S2     RL32,B3           ; |163| 
||         MVKH    .S1     _trace,A4         ; |163| 

RL32:      ; CALL OCCURS                     ; |163| 
	.line	48
           B       .S1     L3                ; |168| 
           NOP             5
           ; BRANCH OCCURS                   ; |168| 
;** --------------------------------------------------------------------------*
	.line	49
	.endfunc	169,000080000h,32


	.sect	".text"
	.global	_main
	.sym	_main,_main, 36, 2, 0
	.func	171
;----------------------------------------------------------------------
; 171 | main()                                                                 
;----------------------------------------------------------------------

;******************************************************************************
;* FUNCTION NAME: _main                                                       *
;*                                                                            *
;*   Regs Modified     : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Regs Used         : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6,  *
;*                           B7,B8,B9,SP                                      *
;*   Local Frame Size  : 0 Args + 0 Auto + 4 Save = 4 byte                    *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
           STW     .D2T2   B3,*SP--(8)       ; |171| 
	.line	3
;----------------------------------------------------------------------
; 173 | CSL_Init();                                                            
;----------------------------------------------------------------------
           B       .S1     _CSL_Init         ; |173| 
           MVKL    .S2     RL34,B3           ; |173| 
           MVKH    .S2     RL34,B3           ; |173| 
           NOP             3
RL34:      ; CALL OCCURS                     ; |173| 
           ZERO    .L1     A4                ; |173| 
	.line	4
           LDW     .D2T2   *++SP(8),B3       ; |174| 
           NOP             4
           B       .S2     B3                ; |174| 
           NOP             5
           ; BRANCH OCCURS                   ; |174| 
	.endfunc	174,000080000h,8


;******************************************************************************
;* STRINGS                                                                    *
;******************************************************************************
	.sect	".const"
SL1:	.string	"sio_get uses buffer 0x%x",0
SL2:	.string	"sio_get returns buffer 0x%x",0
SL3:	.string	"sio_put returns buffer 0x%x",0
SL4:	.string	"Cannot get static buffer",0
SL5:	.string	"channel 0",0
SL6:	.string	"processing error on channel 0",0
SL7:	.string	"channel 1",0
SL8:	.string	"processing error on channel 1",0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES                                              *
;******************************************************************************
	.global	_LOG_printf
	.global	_SYS_abort
	.global	_SIO_get
	.global	_SIO_staticbuf
	.global	_SIO_put
	.global	_SIO_select
	.global	_CSL6211_LIB_
	.global	_CSLINIT_Init
	.global	_doLoad
	.global	_outStream1
	.global	_inStream1
	.global	_outStream0
	.global	_trace
	.global	_trace1
	.global	_inStream0

⌨️ 快捷键说明

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