echo.asm

来自「Using DSP/BIOS I/O in Multichannel Syste」· 汇编 代码 · 共 1,261 行 · 第 1/5 页

ASM
1,261
字号
           STW     .D2T1   A0,*+SP(4)        ; |176| 
           MVKL    .S2     RL32,B3           ; |176| 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

           LDW     .D2T1   *B4,A4            ; 
           MVKL    .S2     RL48,B3           ; |200| 
           ADD     .L2X    A0,B5,B4          ; 
           MVKH    .S2     RL48,B3           ; |200| 
           NOP             1
RL48:      ; CALL OCCURS                     ; |200| 
           MV      .L1     A4,A1             ; |200| 
   [ A1]   B       .S1     L8                ; |200| 
           NOP             5
           ; BRANCH OCCURS                   ; |200| 
;** --------------------------------------------------------------------------*
	.line	50
;----------------------------------------------------------------------
; 202 | SYS_abort("Cannot get static buffer");                                 
;----------------------------------------------------------------------
           B       .S1     _SYS_abort        ; |202| 
           MVKL    .S1     SL8+0,A0          ; |202| 
           MVKH    .S1     SL8+0,A0          ; |202| 
           MVKL    .S2     RL50,B3           ; |202| 
           STW     .D2T1   A0,*+SP(4)        ; |202| 
           MVKH    .S2     RL50,B3           ; |202| 
RL50:      ; CALL OCCURS                     ; |202| 
;** --------------------------------------------------------------------------*
L8:    
	.line	55
;----------------------------------------------------------------------
; 207 | if (SIO_issue(audioChannel[channelNum].inStream,                       
; 208 |                           audioChannel[channelNum].buf2,               
; 209 |                           audioChannel[channelNum].bufSize,            
; 210 |                           NULL) < 0) {                                 
;----------------------------------------------------------------------
           LDW     .D2T2   *+SP(12),B4       ; |207| 
           MVK     .S2     (_audioChannel-$bss),B5 ; |207| 
           MVK     .S2     (_audioChannel+20-$bss),B6 ; |207| 
           MVK     .S1     (_audioChannel+16-$bss),A3 ; |207| 
           ADD     .L2     DP,B5,B5          ; |207| 

           SHL     .S2     B4,5,B7           ; |207| 
||         MV      .L1X    B4,A0             ; |207| 

           SUBAW   .D2     B7,B4,B7          ; |207| 
||         SHL     .S1     A0,5,A4           ; |207| 
||         SHL     .S2     B4,5,B8           ; |207| 

           ADD     .L2     B5,B7,B4          ; |207| 
||         SUBAW   .D2     B8,B4,B5          ; |207| 
||         SUBAW   .D1     A4,A0,A0          ; |207| 
||         ADD     .L1X    DP,A3,A3          ; |207| 
||         ADD     .S2     DP,B6,B6          ; |207| 

           B       .S1     _SIO_issue        ; |207| 
||         ADD     .L2     B6,B5,B4          ; |207| 
||         LDW     .D2T1   *B4,A4            ; 
||         ADD     .L1     A3,A0,A0          ; |207| 

           LDW     .D1T2   *A0,B4            ; 
||         LDW     .D2T1   *B4,A6            ; 

           MVKL    .S2     RL52,B3           ; |207| 

⌨️ 快捷键说明

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