📄 echo.asm
字号:
; 109 | return(TRUE);
;----------------------------------------------------------------------
MVK .S1 0x1,A10 ; |109|
;** --------------------------------------------------------------------------*
L1:
.line 20
LDW .D2T1 *+SP(28),A10 ; |110|
|| MV .L1 A10,A4 ; |110|
LDW .D2T2 *++SP(32),B3 ; |110|
NOP 4
B .S2 B3 ; |110|
NOP 5
; BRANCH OCCURS ; |110|
.endfunc 110,000080400h,32
.sect ".text"
.global _echo
.sym _echo,_echo, 32, 2, 0
.func 117
;----------------------------------------------------------------------
; 117 | void echo(void)
; 119 | Ptr buf;
;----------------------------------------------------------------------
;******************************************************************************
;* 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 _buf,12, 16, 1, 32
STW .D2T2 B3,*SP--(16) ; |117|
.line 6
;----------------------------------------------------------------------
; 122 | audioChannel[CHANNEL0].inStream = &inStream0;
;----------------------------------------------------------------------
MVKL .S1 _inStream0,A4 ; |122|
MVKH .S1 _inStream0,A4 ; |122|
STW .D2T1 A4,*+DP(_audioChannel) ; |122|
.line 7
;----------------------------------------------------------------------
; 123 | audioChannel[CHANNEL0].outStream = &outStream0;
;----------------------------------------------------------------------
MVKL .S2 _outStream0,B4 ; |123|
MVKH .S2 _outStream0,B4 ; |123|
STW .D2T2 B4,*+DP(_audioChannel+4) ; |123|
.line 8
;----------------------------------------------------------------------
; 124 | audioChannel[CHANNEL0].load = 0;
;----------------------------------------------------------------------
ZERO .L1 A0 ; |124|
STW .D2T1 A0,*+DP(_audioChannel+8) ; |124|
.line 10
;----------------------------------------------------------------------
; 126 | audioChannel[CHANNEL1].inStream = &inStream1;
;----------------------------------------------------------------------
MVKL .S1 _inStream1,A0 ; |126|
MVKH .S1 _inStream1,A0 ; |126|
STW .D2T1 A0,*+DP(_audioChannel+12) ; |126|
.line 11
;----------------------------------------------------------------------
; 127 | audioChannel[CHANNEL1].outStream = &outStream1;
;----------------------------------------------------------------------
MVKL .S2 _outStream1,B4 ; |127|
MVKH .S2 _outStream1,B4 ; |127|
STW .D2T2 B4,*+DP(_audioChannel+16) ; |127|
.line 12
;----------------------------------------------------------------------
; 128 | audioChannel[CHANNEL1].load = 0;
;----------------------------------------------------------------------
ZERO .L2 B4 ; |128|
STW .D2T2 B4,*+DP(_audioChannel+20) ; |128|
.line 15
;----------------------------------------------------------------------
; 131 | if (SIO_staticbuf(audioChannel[CHANNEL0].inStream, &buf) == 0) {
;----------------------------------------------------------------------
B .S1 _SIO_staticbuf ; |131|
MVKL .S2 RL12,B3 ; |131|
ADD .L2 12,SP,B4 ; |131|
MVKH .S2 RL12,B3 ; |131|
NOP 2
RL12: ; CALL OCCURS ; |131|
MV .L1 A4,A1 ; |131|
[ A1] B .S1 L2 ; |131|
NOP 5
; BRANCH OCCURS ; |131|
;** --------------------------------------------------------------------------*
.line 16
;----------------------------------------------------------------------
; 132 | SYS_abort("Cannot get static buffer");
;----------------------------------------------------------------------
B .S1 _SYS_abort ; |132|
MVKL .S1 SL4+0,A0 ; |132|
MVKH .S1 SL4+0,A0 ; |132|
MVKL .S2 RL14,B3 ; |132|
STW .D2T1 A0,*+SP(4) ; |132|
MVKH .S2 RL14,B3 ; |132|
RL14: ; CALL OCCURS ; |132|
;** --------------------------------------------------------------------------*
L2:
.line 20
;----------------------------------------------------------------------
; 136 | while (TRUE) {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L3:
.line 21
;----------------------------------------------------------------------
; 137 | LOG_printf(&trace1, "channel 0");
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |137|
MVKL .S2 SL5+0,B4 ; |137|
MVKL .S2 RL16,B3 ; |137|
MVKH .S2 SL5+0,B4 ; |137|
MVKL .S1 _trace1,A4 ; |137|
STW .D2T2 B4,*+SP(4) ; |137|
|| MVKH .S2 RL16,B3 ; |137|
|| MVKH .S1 _trace1,A4 ; |137|
RL16: ; CALL OCCURS ; |137|
.line 23
;----------------------------------------------------------------------
; 139 | if (!processChannel(&audioChannel[0], &buf)) {
;----------------------------------------------------------------------
B .S1 _processChannel ; |139|
MVKL .S2 RL18,B3 ; |139|
MVK .S1 (_audioChannel-$bss),A0 ; |139|
ADD .L1X DP,A0,A4 ;
ADD .L2 12,SP,B4 ; |139|
MVKH .S2 RL18,B3 ; |139|
RL18: ; CALL OCCURS ; |139|
MV .L1 A4,A1 ; |139|
[ A1] B .S1 L4 ; |139|
NOP 5
; BRANCH OCCURS ; |139|
;** --------------------------------------------------------------------------*
.line 24
;----------------------------------------------------------------------
; 140 | LOG_printf(&trace, "processing error on channel 0");
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |140|
MVKL .S2 SL6+0,B4 ; |140|
MVKL .S2 RL20,B3 ; |140|
MVKH .S2 SL6+0,B4 ; |140|
MVKL .S1 _trace,A4 ; |140|
STW .D2T2 B4,*+SP(4) ; |140|
|| MVKH .S2 RL20,B3 ; |140|
|| MVKH .S1 _trace,A4 ; |140|
RL20: ; CALL OCCURS ; |140|
;** --------------------------------------------------------------------------*
L4:
.line 27
;----------------------------------------------------------------------
; 143 | LOG_printf(&trace1, "channel 1");
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |143|
MVKL .S2 SL7+0,B4 ; |143|
MVKL .S2 RL22,B3 ; |143|
MVKH .S2 SL7+0,B4 ; |143|
MVKL .S1 _trace1,A4 ; |143|
STW .D2T2 B4,*+SP(4) ; |143|
|| MVKH .S2 RL22,B3 ; |143|
|| MVKH .S1 _trace1,A4 ; |143|
RL22: ; CALL OCCURS ; |143|
.line 29
;----------------------------------------------------------------------
; 145 | if (!processChannel(&audioChannel[1], &buf)) {
;----------------------------------------------------------------------
B .S1 _processChannel ; |145|
MVKL .S2 RL24,B3 ; |145|
MVK .S1 (_audioChannel+12-$bss),A0 ; |145|
ADD .L1X DP,A0,A4 ;
ADD .L2 12,SP,B4 ; |145|
MVKH .S2 RL24,B3 ; |145|
RL24: ; CALL OCCURS ; |145|
MV .L1 A4,A1 ; |145|
[ A1] B .S1 L3 ; |145|
NOP 5
; BRANCH OCCURS ; |145|
;** --------------------------------------------------------------------------*
.line 30
;----------------------------------------------------------------------
; 146 | LOG_printf(&trace, "processing error on channel 1");
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |146|
MVKL .S2 SL8+0,B4 ; |146|
MVKL .S2 RL26,B3 ; |146|
MVKH .S2 SL8+0,B4 ; |146|
MVKL .S1 _trace,A4 ; |146|
STW .D2T2 B4,*+SP(4) ; |146|
|| MVKH .S2 RL26,B3 ; |146|
|| MVKH .S1 _trace,A4 ; |146|
RL26: ; CALL OCCURS ; |146|
.line 32
B .S1 L3 ; |148|
NOP 5
; BRANCH OCCURS ; |148|
;** --------------------------------------------------------------------------*
.line 33
.endfunc 149,000080000h,16
.sect ".text"
.global _main
.sym _main,_main, 36, 2, 0
.func 151
;----------------------------------------------------------------------
; 151 | main()
;----------------------------------------------------------------------
;******************************************************************************
;* FUNCTION NAME: _main *
;* *
;* Regs Modified : A4 *
;* Regs Used : A4,B3 *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
_main:
;** --------------------------------------------------------------------------*
.line 2
ZERO .L1 A4 ; |152|
.line 3
B .S2 B3 ; |153|
NOP 5
; BRANCH OCCURS ; |153|
.endfunc 153,000000000h,0
;******************************************************************************
;* STRINGS *
;******************************************************************************
.sect ".const"
SL1: .string "sio_get uses buffer 0x%x",0
SL2: .string "sio_get returns buffer 0x%x",0
SL3: .string "sio_put returns buffer 0x%x",0
SL4: .string "Cannot get static buffer",0
SL5: .string "channel 0",0
SL6: .string "processing error on channel 0",0
SL7: .string "channel 1",0
SL8: .string "processing error on channel 1",0
;******************************************************************************
;* UNDEFINED EXTERNAL REFERENCES *
;******************************************************************************
.global _LOG_printf
.global _SYS_abort
.global _SIO_get
.global _SIO_staticbuf
.global _SIO_put
.global _doLoad
.global _outStream1
.global _inStream1
.global _outStream0
.global _trace
.global _trace1
.global _inStream0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -