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 + -
显示快捷键?