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

📄 echo.asm

📁 Using DSP/BIOS I/O in Multichannel Systems
💻 ASM
📖 第 1 页 / 共 4 页
字号:
           MVK     .S2     0x140,B4          ; |164| 
           MVKH    .S2     RL22,B3           ; |164| 
           ZERO    .L1     A6                ; |164| 
RL22:      ; CALL OCCURS                     ; |164| 
           LDW     .D2T2   *+SP(12),B4       ; |164| 
           MV      .L1     A4,A1             ; 
           MVK     .S1     (_audioChannel+12-$bss),A0 ; |164| 
   [ A1]   B       .S1     L3                ; |164| 
           ADD     .L1X    DP,A0,A0          ; |164| 
           SHL     .S2     B4,5,B5           ; |164| 
           SUBAW   .D2     B5,B4,B4          ; |164| 
           ADD     .L1X    A0,B4,A0          ; |164| 
           STW     .D1T1   A1,*A0            ; |164| 
           ; BRANCH OCCURS                   ; |164| 
;** --------------------------------------------------------------------------*
	.line	16
;----------------------------------------------------------------------
; 167 | SYS_abort("MEM_alloc failed");                                         
;----------------------------------------------------------------------
           B       .S1     _SYS_abort        ; |167| 
           MVKL    .S1     SL5+0,A0          ; |167| 
           MVKH    .S1     SL5+0,A0          ; |167| 
           MVKL    .S2     RL24,B3           ; |167| 
           STW     .D2T1   A0,*+SP(4)        ; |167| 
           MVKH    .S2     RL24,B3           ; |167| 
RL24:      ; CALL OCCURS                     ; |167| 
;** --------------------------------------------------------------------------*
L3:    
	.line	20
;----------------------------------------------------------------------
; 171 | if (SIO_issue(audioChannel[channelNum].outStream,                      
; 172 |                           audioChannel[channelNum].buf,                
; 173 |                           0,                                           
; 174 |                           NULL) < 0) {                                 
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |171| 
           MVK     .S2     (_audioChannel+8-$bss),B5 ; |171| 
           MVK     .S1     (_audioChannel+4-$bss),A0 ; |171| 
           ADD     .L1X    DP,A0,A0          ; |171| 
           ADD     .L2     DP,B5,B5          ; |171| 
           SHL     .S2     B4,5,B6           ; |171| 

           SUBAW   .D2     B6,B4,B6          ; |171| 
||         SHL     .S2     B4,5,B7           ; |171| 

           SUBAW   .D2     B7,B4,B4          ; |171| 

           B       .S1     _SIO_issue        ; |171| 
||         ADD     .L2     B5,B4,B4          ; |171| 
||         ADD     .L1X    A0,B6,A0          ; |171| 

           LDW     .D2T2   *B4,B4            ; 
||         LDW     .D1T1   *A0,A4            ; 

           MVKL    .S2     RL26,B3           ; |171| 
           ZERO    .L2     B6                ; |171| 
           MVKH    .S2     RL26,B3           ; |171| 
           ZERO    .L1     A6                ; |171| 
RL26:      ; CALL OCCURS                     ; |171| 
           CMPLT   .L1     A4,0,A1           ; 
   [!A1]   B       .S1     L4                ; |171| 
           NOP             5
           ; BRANCH OCCURS                   ; |171| 
;** --------------------------------------------------------------------------*
	.line	24
;----------------------------------------------------------------------
; 175 | SYS_abort("error on issue for chan %d", channelNum);                   
;----------------------------------------------------------------------

           B       .S1     _SYS_abort        ; |175| 
||         LDW     .D2T2   *+SP(12),B4       ; |175| 

           MVKL    .S1     SL6+0,A0          ; |175| 
           MVKH    .S1     SL6+0,A0          ; |175| 
           STW     .D2T1   A0,*+SP(4)        ; |175| 
           MVKL    .S2     RL28,B3           ; |175| 

           STW     .D2T2   B4,*+SP(8)        ; |175| 
||         MVKH    .S2     RL28,B3           ; |175| 

RL28:      ; CALL OCCURS                     ; |175| 
;** --------------------------------------------------------------------------*
L4:    
	.line	26
;----------------------------------------------------------------------
; 177 | if (SIO_issue(audioChannel[channelNum].outStream,                      
; 178 |                           audioChannel[channelNum].buf1,               
; 179 |                           0,                                           
; 180 |                           NULL) < 0) {                                 
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B5       ; |177| 
           MVK     .S2     (_audioChannel+12-$bss),B4 ; |177| 
           MVK     .S1     (_audioChannel+4-$bss),A0 ; |177| 
           ADD     .L1X    DP,A0,A0          ; |177| 
           ADD     .L2     DP,B4,B4          ; |177| 
           SHL     .S2     B5,5,B6           ; |177| 

           SUBAW   .D2     B6,B5,B6          ; |177| 
||         SHL     .S2     B5,5,B7           ; |177| 

           SUBAW   .D2     B7,B5,B5          ; |177| 

           B       .S1     _SIO_issue        ; |177| 
||         ADD     .L2     B4,B5,B4          ; |177| 
||         ADD     .L1X    A0,B6,A0          ; |177| 

           LDW     .D2T2   *B4,B4            ; 
||         LDW     .D1T1   *A0,A4            ; 

           MVKL    .S2     RL30,B3           ; |177| 
           ZERO    .L2     B6                ; |177| 
           MVKH    .S2     RL30,B3           ; |177| 
           ZERO    .L1     A6                ; |177| 
RL30:      ; CALL OCCURS                     ; |177| 
           CMPLT   .L1     A4,0,A1           ; 
   [!A1]   B       .S1     L5                ; |177| 
           NOP             5
           ; BRANCH OCCURS                   ; |177| 
;** --------------------------------------------------------------------------*
	.line	30
;----------------------------------------------------------------------
; 181 | SYS_abort("error on issue for chan %d", channelNum);                   
;----------------------------------------------------------------------

           B       .S1     _SYS_abort        ; |181| 
||         LDW     .D2T2   *+SP(12),B4       ; |181| 

           MVKL    .S1     SL6+0,A0          ; |181| 
           MVKH    .S1     SL6+0,A0          ; |181| 
           STW     .D2T1   A0,*+SP(4)        ; |181| 
           MVKL    .S2     RL32,B3           ; |181| 

           STW     .D2T2   B4,*+SP(8)        ; |181| 
||         MVKH    .S2     RL32,B3           ; |181| 

RL32:      ; CALL OCCURS                     ; |181| 
;** --------------------------------------------------------------------------*
L5:    
	.line	36
;----------------------------------------------------------------------
; 187 | LOG_printf(&trace1, "sio_issue uses buffer 0x%x", audioChannel[channelN
;     | um].buf1);                                                             
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B5       ; |187| 
           MVK     .S2     (_audioChannel+12-$bss),B4 ; |187| 
           MVKL    .S1     SL7+0,A0          ; |187| 
           MVKH    .S1     SL7+0,A0          ; |187| 
           ADD     .L2     DP,B4,B4          ; |187| 
           SHL     .S2     B5,5,B6           ; |187| 
           SUBAW   .D2     B6,B5,B5          ; |187| 

           ADD     .L2     B4,B5,B4          ; |187| 
||         STW     .D2T1   A0,*+SP(4)        ; |187| 

           B       .S1     _LOG_printf       ; |187| 
||         LDW     .D2T2   *B4,B4            ; |187| 

           MVKL    .S2     RL34,B3           ; |187| 
           MVKL    .S1     _trace1,A4        ; |187| 
           MVKH    .S2     RL34,B3           ; |187| 
           MVKH    .S1     _trace1,A4        ; |187| 
           STW     .D2T2   B4,*+SP(8)        ; |187| 
RL34:      ; CALL OCCURS                     ; |187| 
	.line	38
;----------------------------------------------------------------------
; 189 | if (SIO_staticbuf(audioChannel[channelNum].inStream,                   
; 190 |                               &audioChannel[channelNum].buf) == 0) {   
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |189| 
           MVK     .S2     (_audioChannel-$bss),B6 ; |189| 
           ADD     .L2     DP,B6,B6          ; |189| 
           MVK     .S2     (_audioChannel+8-$bss),B5 ; |189| 
           ADD     .L2     DP,B5,B5          ; |189| 
           SHL     .S2     B4,5,B7           ; |189| 

           SUBAW   .D2     B7,B4,B7          ; |189| 
||         SHL     .S2     B4,5,B8           ; |189| 

           B       .S1     _SIO_staticbuf    ; |189| 
||         ADD     .L2     B6,B7,B4          ; |189| 
||         SUBAW   .D2     B8,B4,B6          ; |189| 

           LDW     .D2T1   *B4,A4            ; 
           MVKL    .S2     RL36,B3           ; |189| 
           ADD     .L2     B5,B6,B4          ; 
           MVKH    .S2     RL36,B3           ; |189| 
           NOP             1
RL36:      ; CALL OCCURS                     ; |189| 
           MV      .L1     A4,A1             ; |189| 
   [ A1]   B       .S1     L6                ; |189| 
           NOP             5
           ; BRANCH OCCURS                   ; |189| 
;** --------------------------------------------------------------------------*
	.line	40
;----------------------------------------------------------------------
; 191 | SYS_abort("Cannot get static buffer");                                 
;----------------------------------------------------------------------
           B       .S1     _SYS_abort        ; |191| 
           MVKL    .S1     SL8+0,A0          ; |191| 
           MVKH    .S1     SL8+0,A0          ; |191| 
           MVKL    .S2     RL38,B3           ; |191| 
           STW     .D2T1   A0,*+SP(4)        ; |191| 
           MVKH    .S2     RL38,B3           ; |191| 
RL38:      ; CALL OCCURS                     ; |191| 
;** --------------------------------------------------------------------------*
L6:    
	.line	43
;----------------------------------------------------------------------
; 194 | if (SIO_staticbuf(audioChannel[channelNum].inStream,                   
; 195 |                               &audioChannel[channelNum].buf1) == 0) {  
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |194| 
           MVK     .S2     (_audioChannel-$bss),B5 ; |194| 
           ADD     .L2     DP,B5,B5          ; |194| 
           MVK     .S1     (_audioChannel+12-$bss),A0 ; |194| 
           ADD     .L1X    DP,A0,A0          ; |194| 
           SHL     .S2     B4,5,B6           ; |194| 

           SUBAW   .D2     B6,B4,B6          ; |194| 
||         SHL     .S2     B4,5,B7           ; |194| 

           B       .S1     _SIO_staticbuf    ; |194| 
||         ADD     .L2     B5,B6,B4          ; |194| 
||         SUBAW   .D2     B7,B4,B5          ; |194| 

           LDW     .D2T1   *B4,A4            ; 
           MVKL    .S2     RL40,B3           ; |194| 
           ADD     .L2X    A0,B5,B4          ; 
           MVKH    .S2     RL40,B3           ; |194| 
           NOP             1
RL40:      ; CALL OCCURS                     ; |194| 
           MV      .L1     A4,A1             ; |194| 
   [ A1]   B       .S1     L7                ; |194| 
           NOP             5
           ; BRANCH OCCURS                   ; |194| 
;** --------------------------------------------------------------------------*
	.line	45
;----------------------------------------------------------------------
; 196 | SYS_abort("Cannot get static buffer");                                 
;----------------------------------------------------------------------
           B       .S1     _SYS_abort        ; |196| 
           MVKL    .S1     SL8+0,A0          ; |196| 
           MVKH    .S1     SL8+0,A0          ; |196| 
           MVKL    .S2     RL42,B3           ; |196| 
           STW     .D2T1   A0,*+SP(4)        ; |196| 
           MVKH    .S2     RL42,B3           ; |196| 
RL42:      ; CALL OCCURS                     ; |196| 
;** --------------------------------------------------------------------------*
L7:    
	.line	48
;----------------------------------------------------------------------
; 199 | if (SIO_staticbuf(audioChannel[channelNum].inStream,                   
; 200 |                               &audioChannel[channelNum].buf2) == 0) {  
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |199| 
           MVK     .S2     (_audioChannel-$bss),B5 ; |199| 
           ADD     .L2     DP,B5,B5          ; |199| 
           MVK     .S1     (_audioChannel+16-$bss),A0 ; |199| 
           ADD     .L1X    DP,A0,A0          ; |199| 
           SHL     .S2     B4,5,B6           ; |199| 

           SUBAW   .D2     B6,B4,B6          ; |199| 
||         SHL     .S2     B4,5,B7           ; |199| 

           B       .S1     _SIO_staticbuf    ; |199| 
||         ADD     .L2     B5,B6,B4          ; |199| 
||         SUBAW   .D2     B7,B4,B5          ; |199| 

           LDW     .D2T1   *B4,A4            ; 
           MVKL    .S2     RL44,B3           ; |199| 
           ADD     .L2X    A0,B5,B4          ; 
           MVKH    .S2     RL44,B3           ; |199| 
           NOP             1
RL44:      ; CALL OCCURS                     ; |199| 
           MV      .L1     A4,A1             ; |199| 
   [ A1]   B       .S1     L8                ; |199| 
           NOP             5
           ; BRANCH OCCURS                   ; |199| 
;** --------------------------------------------------------------------------*
	.line	50
;----------------------------------------------------------------------
; 201 | SYS_abort("Cannot get static buffer");                                 
;----------------------------------------------------------------------

⌨️ 快捷键说明

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