echo.asm
来自「Using DSP/BIOS I/O in Multichannel Syste」· 汇编 代码 · 共 1,261 行 · 第 1/5 页
ASM
1,261 行
ZERO .L2 B6 ; |207|
MVKH .S2 RL52,B3 ; |207|
NOP 1
RL52: ; CALL OCCURS ; |207|
CMPLT .L1 A4,0,A1 ;
[!A1] B .S1 L9 ; |207|
NOP 5
; BRANCH OCCURS ; |207|
;** --------------------------------------------------------------------------*
.line 59
;----------------------------------------------------------------------
; 211 | SYS_abort("error on issue for chan %d", channelNum);
;----------------------------------------------------------------------
B .S1 _SYS_abort ; |211|
|| LDW .D2T2 *+SP(12),B4 ; |211|
MVKL .S1 SL6+0,A0 ; |211|
MVKH .S1 SL6+0,A0 ; |211|
STW .D2T1 A0,*+SP(4) ; |211|
MVKL .S2 RL54,B3 ; |211|
STW .D2T2 B4,*+SP(8) ; |211|
|| MVKH .S2 RL54,B3 ; |211|
RL54: ; CALL OCCURS ; |211|
;** --------------------------------------------------------------------------*
L9:
.line 61
;----------------------------------------------------------------------
; 213 | if (SIO_issue(audioChannel[channelNum].inStream,
; 214 | audioChannel[channelNum].buf1,
; 215 | audioChannel[channelNum].bufSize,
; 216 | NULL) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B7 ; |213|
MVK .S2 (_audioChannel+20-$bss),B5 ; |213|
MVK .S1 (_audioChannel+12-$bss),A3 ; |213|
ADD .L2 DP,B5,B5 ; |213|
MVK .S2 (_audioChannel-$bss),B8 ; |213|
SHL .S2 B7,5,B4 ; |213|
SUBAW .D2 B4,B7,B6 ; |213|
|| MV .L1X B7,A4 ; |213|
|| SHL .S2 B7,5,B4 ; |213|
SUBAW .D2 B4,B7,B4 ; |213|
|| SHL .S1 A4,5,A0 ; |213|
ADD .L2 B5,B4,B4 ; |213|
|| SUBAW .D1 A0,A4,A0 ; |213|
|| ADD .S2 DP,B8,B8 ; |213|
|| ADD .L1X DP,A3,A3 ; |213|
B .S1 _SIO_issue ; |213|
|| LDW .D2T1 *B4,A6 ;
|| ADD .L1 A3,A0,A0 ; |213|
|| ADD .L2 B8,B6,B6 ; |213|
LDW .D1T2 *A0,B4 ;
|| LDW .D2T1 *B6,A4 ;
MVKL .S2 RL56,B3 ; |213|
ZERO .L2 B6 ; |213|
MVKH .S2 RL56,B3 ; |213|
NOP 1
RL56: ; CALL OCCURS ; |213|
CMPLT .L1 A4,0,A1 ;
[!A1] B .S1 L10 ; |213|
NOP 5
; BRANCH OCCURS ; |213|
;** --------------------------------------------------------------------------*
.line 65
;----------------------------------------------------------------------
; 217 | SYS_abort("error on issue for chan %d", channelNum);
;----------------------------------------------------------------------
B .S1 _SYS_abort ; |217|
|| LDW .D2T2 *+SP(12),B4 ; |217|
MVKL .S1 SL6+0,A0 ; |217|
MVKH .S1 SL6+0,A0 ; |217|
STW .D2T1 A0,*+SP(4) ; |217|
MVKL .S2 RL58,B3 ; |217|
STW .D2T2 B4,*+SP(8) ; |217|
|| MVKH .S2 RL58,B3 ; |217|
RL58: ; CALL OCCURS ; |217|
;** --------------------------------------------------------------------------*
L10:
.line 68
;----------------------------------------------------------------------
; 220 | while (TRUE) {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L11:
.line 69
;----------------------------------------------------------------------
; 221 | LOG_printf(&trace1, "channel %d", channelNum);
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |221|
|| LDW .D2T2 *+SP(12),B5 ; |221|
MVKL .S2 SL9+0,B4 ; |221|
MVKH .S2 SL9+0,B4 ; |221|
STW .D2T2 B4,*+SP(4) ; |221|
MVKL .S1 _trace1,A4 ; |221|
|| MVKL .S2 RL60,B3 ; |221|
STW .D2T2 B5,*+SP(8) ; |221|
|| MVKH .S2 RL60,B3 ; |221|
|| MVKH .S1 _trace1,A4 ; |221|
RL60: ; CALL OCCURS ; |221|
.line 71
;----------------------------------------------------------------------
; 223 | if (!processChannel(&audioChannel[channelNum])) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B5 ; |223|
MVK .S1 (_audioChannel-$bss),A0 ; |223|
B .S1 _processChannel ; |223|
MVKL .S2 RL62,B3 ; |223|
ADD .L1X DP,A0,A0 ; |223|
SHL .S2 B5,5,B4 ; |223|
SUBAW .D2 B4,B5,B4 ; |223|
ADD .L1X A0,B4,A4 ; |223|
|| MVKH .S2 RL62,B3 ; |223|
RL62: ; CALL OCCURS ; |223|
MV .L1 A4,A1 ; |223|
[ A1] B .S1 L11 ; |223|
NOP 5
; BRANCH OCCURS ; |223|
;** --------------------------------------------------------------------------*
.line 72
;----------------------------------------------------------------------
; 224 | LOG_printf(&trace, "processing error on channel %d", channelNum);
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |224|
|| LDW .D2T2 *+SP(12),B5 ; |224|
MVKL .S2 SL10+0,B4 ; |224|
MVKH .S2 SL10+0,B4 ; |224|
STW .D2T2 B4,*+SP(4) ; |224|
MVKL .S1 _trace,A4 ; |224|
|| MVKL .S2 RL64,B3 ; |224|
STW .D2T2 B5,*+SP(8) ; |224|
|| MVKH .S2 RL64,B3 ; |224|
|| MVKH .S1 _trace,A4 ; |224|
RL64: ; CALL OCCURS ; |224|
.line 75
B .S1 L11 ; |227|
NOP 5
; BRANCH OCCURS ; |227|
;** --------------------------------------------------------------------------*
.line 76
.endfunc 228,000080000h,16
.sect ".text"
.global _main
.sym _main,_main, 36, 2, 0
.func 230
;----------------------------------------------------------------------
; 230 | 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) ; |230|
.line 3
;----------------------------------------------------------------------
; 232 | CSL_Init();
;----------------------------------------------------------------------
B .S1 _CSL_Init ; |232|
MVKL .S2 RL66,B3 ; |232|
MVKH .S2 RL66,B3 ; |232|
NOP 3
RL66: ; CALL OCCURS ; |232|
.line 4
;----------------------------------------------------------------------
; 233 | initChannelData();
;----------------------------------------------------------------------
B .S1 _initChannelData ; |233|
MVKL .S2 RL68,B3 ; |233|
MVKH .S2 RL68,B3 ; |233|
NOP 3
RL68: ; CALL OCCURS ; |233|
ZERO .L1 A4 ; |233|
.line 5
LDW .D2T2 *++SP(8),B3 ; |234|
NOP 4
B .S2 B3 ; |234|
NOP 5
; BRANCH OCCURS ; |234|
.endfunc 234,000080000h,8
;******************************************************************************
;* STRINGS *
;******************************************************************************
.sect ".const"
SL1: .string "sio_issue in uses buffer 0x%x",0
SL2: .string "sio_reclaim in returns buffer 0x%x",0
SL3: .string "sio_issue out uses buffer 0x%x",0
SL4: .string "sio_reclaim out returns buffer 0x%x",0
SL5: .string "MEM_alloc failed",0
SL6: .string "error on issue for chan %d",0
SL7: .string "sio_issue uses buffer 0x%x",0
SL8: .string "Cannot get static buffer",0
SL9: .string "channel %d",0
SL10: .string "processing error on channel %d",0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _MEM_alloc
.global _LOG_printf
.global _SYS_abort
.global _SIO_staticbuf
.global _SIO_issue
.global _SIO_reclaim
.global _CSL6211_LIB_
.global _CSLINIT_Init
.global _doLoad
.global _SDRAM
.global _outStream1
.global _inStream1
.global _outStream0
.global _trace
.global _trace1
.global _inStream0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?