📄 echo.asm
字号:
.line 7
;----------------------------------------------------------------------
; 115 | if (SIO_issue(channel->inStream,
; 116 | channel->buf,
; 117 | channel->bufSize,
; 118 | NULL) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |115|
MVKL .S2 RL2,B3 ; |115|
MVKH .S2 RL2,B3 ; |115|
ZERO .L2 B6 ; |115|
NOP 1
B .S1 _SIO_issue ; |115|
|| LDW .D2T1 *+B4(20),A6 ;
|| MV .L1X B4,A0 ; |115|
LDW .D2T1 *B4,A4 ;
|| LDW .D1T2 *+A0(8),B4 ;
NOP 4
RL2: ; CALL OCCURS ; |115|
CMPLT .L1 A4,0,A1 ;
.line 11
;----------------------------------------------------------------------
; 119 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L1 ; |119|
[ A1] ZERO .L1 A10 ; |119|
NOP 4
; BRANCH OCCURS ; |119|
;** --------------------------------------------------------------------------*
.line 14
;----------------------------------------------------------------------
; 122 | if (SIO_reclaim(channel->inStream,
; 123 | &channel->buf,
; 124 | &arg) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |122|
ADD .D2 SP,16,B5 ; |122|
MVKL .S2 RL4,B3 ; |122|
MV .L1X B5,A6 ; |122|
B .S1 _SIO_reclaim ; |122|
LDW .D2T1 *B4,A4 ;
ADD .L2 8,B4,B4 ;
MVKH .S2 RL4,B3 ; |122|
NOP 2
RL4: ; CALL OCCURS ; |122|
CMPLT .L1 A4,0,A1 ;
.line 17
;----------------------------------------------------------------------
; 125 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L1 ; |125|
[ A1] ZERO .L1 A10 ; |125|
NOP 4
; BRANCH OCCURS ; |125|
;** --------------------------------------------------------------------------*
.line 20
;----------------------------------------------------------------------
; 128 | LOG_printf(&trace1, "sio_reclaim in returns buffer 0x%x", channel->buf)
; | ;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(12),A0 ; |128|
MVKL .S2 SL2+0,B4 ; |128|
MVKH .S2 SL2+0,B4 ; |128|
STW .D2T2 B4,*+SP(4) ; |128|
MVKL .S2 RL6,B3 ; |128|
B .S1 _LOG_printf ; |128|
|| LDW .D1T1 *+A0(8),A0 ; |128|
MVKL .S1 _trace1,A4 ; |128|
MVKH .S2 RL6,B3 ; |128|
MVKH .S1 _trace1,A4 ; |128|
NOP 1
STW .D2T1 A0,*+SP(8) ; |128|
RL6: ; CALL OCCURS ; |128|
.line 23
;----------------------------------------------------------------------
; 131 | doLoad(channel->load);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |131|
MVKL .S2 RL8,B3 ; |131|
MVKH .S2 RL8,B3 ; |131|
NOP 1
B .S1 _doLoad ; |131|
LDW .D2T1 *+B4(24),A4 ; |131|
NOP 4
RL8: ; CALL OCCURS ; |131|
.line 25
;----------------------------------------------------------------------
; 133 | LOG_printf(&trace1, "sio_issue out uses buffer 0x%x", channel->buf);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |133|
MVKL .S1 SL3+0,A0 ; |133|
MVKH .S1 SL3+0,A0 ; |133|
STW .D2T1 A0,*+SP(4) ; |133|
MVKL .S2 RL10,B3 ; |133|
B .S1 _LOG_printf ; |133|
|| LDW .D2T2 *+B4(8),B5 ; |133|
NOP 1
MVKL .S2 _trace1,B4 ; |133|
MVKH .S2 _trace1,B4 ; |133|
MV .L1X B4,A4 ; |133|
STW .D2T2 B5,*+SP(8) ; |133|
|| MVKH .S2 RL10,B3 ; |133|
RL10: ; CALL OCCURS ; |133|
.line 27
;----------------------------------------------------------------------
; 135 | if (SIO_issue(channel->outStream,
; 136 | channel->buf,
; 137 | channel->bufSize,
; 138 | NULL) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B5 ; |135|
MVKL .S2 RL12,B3 ; |135|
ZERO .L2 B6 ; |135|
MVKH .S2 RL12,B3 ; |135|
NOP 1
LDW .D2T1 *+B5(4),A4 ;
B .S1 _SIO_issue ; |135|
|| MV .L2 B5,B4 ; |135|
|| LDW .D2T1 *+B5(20),A6 ;
LDW .D2T2 *+B4(8),B4 ;
NOP 4
RL12: ; CALL OCCURS ; |135|
CMPLT .L1 A4,0,A1 ;
.line 31
;----------------------------------------------------------------------
; 139 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L1 ; |139|
[ A1] ZERO .L1 A10 ; |139|
NOP 4
; BRANCH OCCURS ; |139|
;** --------------------------------------------------------------------------*
.line 34
;----------------------------------------------------------------------
; 142 | if (SIO_reclaim(channel->outStream,
; 143 | &channel->buf,
; 144 | &arg) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |142|
ADD .D2 SP,16,B5 ; |142|
MVKL .S2 RL14,B3 ; |142|
MV .L1X B5,A6 ; |142|
B .S1 _SIO_reclaim ; |142|
LDW .D2T1 *+B4(4),A4 ;
ADD .L2 8,B4,B4 ;
MVKH .S2 RL14,B3 ; |142|
NOP 2
RL14: ; CALL OCCURS ; |142|
CMPLT .L1 A4,0,A1 ;
.line 37
;----------------------------------------------------------------------
; 145 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L1 ; |145|
[ A1] ZERO .L1 A10 ; |145|
NOP 4
; BRANCH OCCURS ; |145|
;** --------------------------------------------------------------------------*
.line 40
;----------------------------------------------------------------------
; 148 | LOG_printf(&trace1, "sio_reclaim out returns buffer 0x%x", channel->buf
; | );
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |148|
MVKL .S2 SL4+0,B5 ; |148|
MVKH .S2 SL4+0,B5 ; |148|
STW .D2T2 B5,*+SP(4) ; |148|
MVKL .S2 RL16,B3 ; |148|
B .S1 _LOG_printf ; |148|
|| LDW .D2T2 *+B4(8),B4 ; |148|
MVKL .S1 _trace1,A4 ; |148|
MVKH .S2 RL16,B3 ; |148|
MVKH .S1 _trace1,A4 ; |148|
NOP 1
STW .D2T2 B4,*+SP(8) ; |148|
RL16: ; CALL OCCURS ; |148|
.line 41
;----------------------------------------------------------------------
; 149 | return(TRUE);
;----------------------------------------------------------------------
MVK .S1 0x1,A10 ; |149|
;** --------------------------------------------------------------------------*
L1:
.line 42
LDW .D2T1 *+SP(20),A10 ; |150|
|| MV .L1 A10,A4 ; |150|
LDW .D2T2 *++SP(24),B3 ; |150|
NOP 4
B .S2 B3 ; |150|
NOP 5
; BRANCH OCCURS ; |150|
.endfunc 150,000080400h,24
.sect ".text"
.global _echo
.sym _echo,_echo, 32, 2, 0
.func 152
;----------------------------------------------------------------------
; 152 | void echo(Int channelNum)
;----------------------------------------------------------------------
;******************************************************************************
;* FUNCTION NAME: _echo *
;* *
;* 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,DP,SP *
;* Local Frame Size : 8 Args + 4 Auto + 4 Save = 16 byte *
;******************************************************************************
_echo:
;** --------------------------------------------------------------------------*
.sym _channelNum,4, 4, 17, 32
.sym _channelNum,12, 4, 1, 32
STW .D2T2 B3,*SP--(16) ; |152|
.line 2
STW .D2T1 A4,*+SP(12) ; |153|
.line 7
;----------------------------------------------------------------------
; 158 | if ((audioChannel[channelNum].buf = (Ptr)MEM_alloc(IDRAM,
; 159 |
; | SAMPLE_BUF_SIZE,
; 160 |
; | 0)) == NULL) {
;----------------------------------------------------------------------
B .S1 _MEM_alloc ; |158|
LDW .D2T1 *+DP(_IDRAM),A4 ; |158|
MVKL .S2 RL18,B3 ; |158|
MVK .S2 0x140,B4 ; |158|
MVKH .S2 RL18,B3 ; |158|
ZERO .L1 A6 ; |158|
RL18: ; CALL OCCURS ; |158|
LDW .D2T2 *+SP(12),B4 ; |158|
MV .L1 A4,A1 ;
MVK .S1 (_audioChannel+8-$bss),A0 ; |158|
[ A1] B .S1 L2 ; |158|
ADD .L1X DP,A0,A0 ; |158|
SHL .S2 B4,5,B5 ; |158|
SUBAW .D2 B5,B4,B4 ; |158|
ADD .L1X A0,B4,A0 ; |158|
STW .D1T1 A1,*A0 ; |158|
; BRANCH OCCURS ; |158|
;** --------------------------------------------------------------------------*
.line 10
;----------------------------------------------------------------------
; 161 | SYS_abort("MEM_alloc failed");
;----------------------------------------------------------------------
B .S1 _SYS_abort ; |161|
MVKL .S1 SL5+0,A0 ; |161|
MVKH .S1 SL5+0,A0 ; |161|
MVKL .S2 RL20,B3 ; |161|
STW .D2T1 A0,*+SP(4) ; |161|
MVKH .S2 RL20,B3 ; |161|
RL20: ; CALL OCCURS ; |161|
;** --------------------------------------------------------------------------*
L2:
.line 13
;----------------------------------------------------------------------
; 164 | if ((audioChannel[channelNum].buf1 = (Ptr)MEM_alloc(IDRAM,
; 165 |
; | SAMPLE_BUF_SIZE,
; 166 |
; | 0)) == NULL) {
;----------------------------------------------------------------------
B .S1 _MEM_alloc ; |164|
LDW .D2T1 *+DP(_IDRAM),A4 ; |164|
MVKL .S2 RL22,B3 ; |164|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -