📄 echo.asm
字号:
;******************************************************************************
;* FUNCTION NAME: _initChannelData *
;* *
;* Regs Modified : A0,A3,B4,B5,SP *
;* Regs Used : A0,A3,B3,B4,B5,DP,SP *
;* Local Frame Size : 0 Args + 4 Auto + 0 Save = 4 byte *
;******************************************************************************
_initChannelData:
;** --------------------------------------------------------------------------*
.sym _pChannel,4, 24, 1, 32, _dataChannel
SUB .L2 SP,8,SP ; |91|
.line 6
;----------------------------------------------------------------------
; 96 | pChannel = &audioChannel[CHANNEL0];
;----------------------------------------------------------------------
MVK .S2 (_audioChannel-$bss),B4 ; |96|
ADD .L2 DP,B4,B4 ; |96|
STW .D2T2 B4,*+SP(4) ; |96|
.line 7
;----------------------------------------------------------------------
; 97 | pChannel->inStream = &inStream0;
;----------------------------------------------------------------------
MVKL .S2 _inStream0,B5 ; |97|
MV .L1X B4,A0 ; |97|
|| MVKH .S2 _inStream0,B5 ; |97|
STW .D1T2 B5,*A0 ; |97|
.line 8
;----------------------------------------------------------------------
; 98 | pChannel->outStream = &outStream0;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(4),A3 ; |98|
MVKL .S1 _outStream0,A0 ; |98|
MVKH .S1 _outStream0,A0 ; |98|
NOP 2
STW .D1T1 A0,*+A3(4) ; |98|
.line 9
;----------------------------------------------------------------------
; 99 | pChannel->bufSize = SAMPLE_BUF_SIZE;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(4),A3 ; |99|
MVK .S1 320,A0 ; |99|
NOP 3
STW .D1T1 A0,*+A3(20) ; |99|
.line 10
;----------------------------------------------------------------------
; 100 | pChannel->load = 0;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(4),A3 ; |100|
ZERO .L1 A0 ; |100|
NOP 3
STW .D1T1 A0,*+A3(24) ; |100|
.line 13
;----------------------------------------------------------------------
; 103 | pChannel = &audioChannel[CHANNEL1];
;----------------------------------------------------------------------
MVK .S2 (_audioChannel+28-$bss),B4 ; |103|
ADD .L2 DP,B4,B4 ; |103|
STW .D2T2 B4,*+SP(4) ; |103|
.line 14
;----------------------------------------------------------------------
; 104 | pChannel->inStream = &inStream1;
;----------------------------------------------------------------------
MVKL .S1 _inStream1,A0 ; |104|
MV .L1X B4,A3 ; |104|
|| MVKH .S1 _inStream1,A0 ; |104|
STW .D1T1 A0,*A3 ; |104|
.line 15
;----------------------------------------------------------------------
; 105 | pChannel->outStream = &outStream1;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(4),A0 ; |105|
MVKL .S2 _outStream1,B4 ; |105|
MVKH .S2 _outStream1,B4 ; |105|
NOP 2
STW .D1T2 B4,*+A0(4) ; |105|
.line 16
;----------------------------------------------------------------------
; 106 | pChannel->bufSize = SAMPLE_BUF_SIZE;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(4),A0 ; |106|
MVK .S1 320,A3 ; |106|
NOP 3
STW .D1T1 A3,*+A0(20) ; |106|
.line 17
;----------------------------------------------------------------------
; 107 | pChannel->load = 0;
;----------------------------------------------------------------------
LDW .D2T2 *+SP(4),B4 ; |107|
ZERO .L2 B5 ; |107|
NOP 3
STW .D2T2 B5,*+B4(24) ; |107|
.line 18
B .S2 B3 ; |108|
ADD .L2 8,SP,SP ; |108|
NOP 4
; BRANCH OCCURS ; |108|
.endfunc 108,000000000h,8
.sect ".text"
.global _processChannel
.sym _processChannel,_processChannel, 45, 2, 0
.func 110
;----------------------------------------------------------------------
; 110 | Bool processChannel(dataChannel *channel)
;----------------------------------------------------------------------
;******************************************************************************
;* FUNCTION NAME: _processChannel *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,SP *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,B0,B1,B2,B3,B4,B5, *
;* B6,B7,B8,B9,SP *
;* Local Frame Size : 8 Args + 8 Auto + 8 Save = 24 byte *
;******************************************************************************
_processChannel:
;** --------------------------------------------------------------------------*
.sym _channel,4, 24, 17, 32, _dataChannel
.sym _channel,12, 24, 1, 32, _dataChannel
.sym _arg,16, 4, 1, 32
STW .D2T2 B3,*SP--(24) ; |110|
STW .D2T1 A10,*+SP(20) ; |110|
.line 2
;----------------------------------------------------------------------
; 112 | Arg arg;
;----------------------------------------------------------------------
STW .D2T1 A4,*+SP(12) ; |111|
.line 5
;----------------------------------------------------------------------
; 114 | LOG_printf(&trace1, "sio_issue in uses buffer 0x%x", channel->buf);
;----------------------------------------------------------------------
MVKL .S2 SL1+0,B4 ; |114|
MVKH .S2 SL1+0,B4 ; |114|
STW .D2T2 B4,*+SP(4) ; |114|
B .S1 _LOG_printf ; |114|
|| LDW .D1T1 *+A4(8),A0 ; |114|
MVKL .S1 _trace1,A4 ; |114|
MVKL .S2 RL4,B3 ; |114|
MVKH .S1 _trace1,A4 ; |114|
MVKH .S2 RL4,B3 ; |114|
STW .D2T1 A0,*+SP(8) ; |114|
RL4: ; CALL OCCURS ; |114|
.line 7
;----------------------------------------------------------------------
; 116 | if (SIO_issue(channel->inStream,
; 117 | channel->buf,
; 118 | channel->bufSize,
; 119 | NULL) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |116|
MVKL .S2 RL6,B3 ; |116|
MVKH .S2 RL6,B3 ; |116|
ZERO .L2 B6 ; |116|
NOP 1
B .S1 _SIO_issue ; |116|
|| LDW .D2T1 *+B4(20),A6 ;
|| MV .L1X B4,A0 ; |116|
LDW .D2T1 *B4,A4 ;
|| LDW .D1T2 *+A0(8),B4 ;
NOP 4
RL6: ; CALL OCCURS ; |116|
CMPLT .L1 A4,0,A1 ;
.line 11
;----------------------------------------------------------------------
; 120 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L1 ; |120|
[ A1] ZERO .L1 A10 ; |120|
NOP 4
; BRANCH OCCURS ; |120|
;** --------------------------------------------------------------------------*
.line 14
;----------------------------------------------------------------------
; 123 | if (SIO_reclaim(channel->inStream,
; 124 | &channel->buf,
; 125 | &arg) < 0) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |123|
ADD .D2 SP,16,B5 ; |123|
MVKL .S2 RL8,B3 ; |123|
MV .L1X B5,A6 ; |123|
B .S1 _SIO_reclaim ; |123|
LDW .D2T1 *B4,A4 ;
ADD .L2 8,B4,B4 ;
MVKH .S2 RL8,B3 ; |123|
NOP 2
RL8: ; CALL OCCURS ; |123|
CMPLT .L1 A4,0,A1 ;
.line 17
;----------------------------------------------------------------------
; 126 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L1 ; |126|
[ A1] ZERO .L1 A10 ; |126|
NOP 4
; BRANCH OCCURS ; |126|
;** --------------------------------------------------------------------------*
.line 20
;----------------------------------------------------------------------
; 129 | LOG_printf(&trace1, "sio_reclaim in returns buffer 0x%x", channel->buf)
; | ;
;----------------------------------------------------------------------
LDW .D2T1 *+SP(12),A0 ; |129|
MVKL .S2 SL2+0,B4 ; |129|
MVKH .S2 SL2+0,B4 ; |129|
STW .D2T2 B4,*+SP(4) ; |129|
MVKL .S2 RL10,B3 ; |129|
B .S1 _LOG_printf ; |129|
|| LDW .D1T1 *+A0(8),A0 ; |129|
MVKL .S1 _trace1,A4 ; |129|
MVKH .S2 RL10,B3 ; |129|
MVKH .S1 _trace1,A4 ; |129|
NOP 1
STW .D2T1 A0,*+SP(8) ; |129|
RL10: ; CALL OCCURS ; |129|
.line 23
;----------------------------------------------------------------------
; 132 | doLoad(channel->load);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |132|
MVKL .S2 RL12,B3 ; |132|
MVKH .S2 RL12,B3 ; |132|
NOP 1
B .S1 _doLoad ; |132|
LDW .D2T1 *+B4(24),A4 ; |132|
NOP 4
RL12: ; CALL OCCURS ; |132|
.line 25
;----------------------------------------------------------------------
; 134 | LOG_printf(&trace1, "sio_issue out uses buffer 0x%x", channel->buf);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |134|
MVKL .S1 SL3+0,A0 ; |134|
MVKH .S1 SL3+0,A0 ; |134|
STW .D2T1 A0,*+SP(4) ; |134|
MVKL .S2 RL14,B3 ; |134|
B .S1 _LOG_printf ; |134|
|| LDW .D2T2 *+B4(8),B5 ; |134|
NOP 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -