📄 echo.asm
字号:
;----------------------------------------------------------------------
; 115 | LOG_printf(&trace1, "sio_get uses buffer 0x%x", channel->buf);
;----------------------------------------------------------------------
MVKL .S2 SL2+0,B4 ; |115|
MVKH .S2 SL2+0,B4 ; |115|
STW .D2T2 B4,*+SP(4) ; |115|
B .S1 _LOG_printf ; |115|
|| LDW .D1T1 *+A4(8),A0 ; |115|
MVKL .S1 _trace1,A4 ; |115|
MVKL .S2 RL8,B3 ; |115|
MVKH .S1 _trace1,A4 ; |115|
MVKH .S2 RL8,B3 ; |115|
STW .D2T1 A0,*+SP(8) ; |115|
RL8: ; CALL OCCURS ; |115|
.line 7
;----------------------------------------------------------------------
; 117 | nbytes = SIO_get(channel->inStream, &channel->buf);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |117|
MVKL .S2 RL10,B3 ; |117|
MVKH .S2 RL10,B3 ; |117|
NOP 1
B .S1 _SIO_get ; |117|
LDW .D2T1 *B4,A4 ;
ADD .L2 8,B4,B4 ;
NOP 3
RL10: ; CALL OCCURS ; |117|
STW .D2T1 A4,*+SP(16) ; |117|
.line 8
;----------------------------------------------------------------------
; 118 | if (nbytes < 0)
;----------------------------------------------------------------------
CMPLT .L1 A4,0,A1 ;
.line 9
;----------------------------------------------------------------------
; 119 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L3 ; |119|
[ A1] ZERO .L1 A10 ; |119|
NOP 4
; BRANCH OCCURS ; |119|
;** --------------------------------------------------------------------------*
.line 11
;----------------------------------------------------------------------
; 121 | LOG_printf(&trace1, "sio_get returns buffer 0x%x", channel->buf);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B5 ; |121|
MVKL .S2 SL3+0,B4 ; |121|
MVKH .S2 SL3+0,B4 ; |121|
STW .D2T2 B4,*+SP(4) ; |121|
MVKL .S2 RL12,B3 ; |121|
B .S1 _LOG_printf ; |121|
|| LDW .D2T2 *+B5(8),B4 ; |121|
MVKL .S1 _trace1,A4 ; |121|
MVKH .S2 RL12,B3 ; |121|
MVKH .S1 _trace1,A4 ; |121|
NOP 1
STW .D2T2 B4,*+SP(8) ; |121|
RL12: ; CALL OCCURS ; |121|
.line 14
;----------------------------------------------------------------------
; 124 | doLoad(channel->load);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |124|
MVKL .S2 RL14,B3 ; |124|
MVKH .S2 RL14,B3 ; |124|
NOP 1
B .S1 _doLoad ; |124|
LDW .D2T1 *+B4(12),A4 ; |124|
NOP 4
RL14: ; CALL OCCURS ; |124|
.line 16
;----------------------------------------------------------------------
; 126 | nbytes = SIO_put(channel->outStream, &channel->buf, nbytes);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |126|
LDW .D2T1 *+SP(16),A6 ;
MVKL .S2 RL16,B3 ; |126|
MVKH .S2 RL16,B3 ; |126|
B .S1 _SIO_put ; |126|
LDW .D2T1 *+B4(4),A4 ;
ADD .L2 8,B4,B4 ;
NOP 3
RL16: ; CALL OCCURS ; |126|
STW .D2T1 A4,*+SP(16) ; |126|
.line 17
;----------------------------------------------------------------------
; 127 | if (nbytes < 0)
;----------------------------------------------------------------------
CMPLT .L1 A4,0,A1 ;
.line 18
;----------------------------------------------------------------------
; 128 | return(FALSE);
;----------------------------------------------------------------------
[ A1] B .S1 L3 ; |128|
[ A1] ZERO .L1 A10 ; |128|
NOP 4
; BRANCH OCCURS ; |128|
;** --------------------------------------------------------------------------*
.line 20
;----------------------------------------------------------------------
; 130 | LOG_printf(&trace1, "sio_put returns buffer 0x%x", channel->buf);
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B5 ; |130|
MVKL .S2 SL4+0,B4 ; |130|
MVKH .S2 SL4+0,B4 ; |130|
STW .D2T2 B4,*+SP(4) ; |130|
MVKL .S2 RL18,B3 ; |130|
B .S1 _LOG_printf ; |130|
|| LDW .D2T2 *+B5(8),B4 ; |130|
MVKL .S1 _trace1,A4 ; |130|
MVKH .S2 RL18,B3 ; |130|
MVKH .S1 _trace1,A4 ; |130|
NOP 1
STW .D2T2 B4,*+SP(8) ; |130|
RL18: ; CALL OCCURS ; |130|
.line 21
;----------------------------------------------------------------------
; 131 | return(TRUE);
;----------------------------------------------------------------------
MVK .S1 0x1,A10 ; |131|
;** --------------------------------------------------------------------------*
L3:
.line 22
LDW .D2T1 *+SP(20),A10 ; |132|
|| MV .L1 A10,A4 ; |132|
LDW .D2T2 *++SP(24),B3 ; |132|
NOP 4
B .S2 B3 ; |132|
NOP 5
; BRANCH OCCURS ; |132|
.endfunc 132,000080400h,24
.sect ".text"
.global _echo
.sym _echo,_echo, 32, 2, 0
.func 134
;----------------------------------------------------------------------
; 134 | 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) ; |134|
.line 2
STW .D2T1 A4,*+SP(12) ; |135|
.line 3
;----------------------------------------------------------------------
; 136 | while (TRUE) {
;----------------------------------------------------------------------
;** --------------------------------------------------------------------------*
L4:
.line 4
;----------------------------------------------------------------------
; 137 | LOG_printf(&trace1, "channel %d", channelNum);
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |137|
|| LDW .D2T2 *+SP(12),B5 ; |137|
MVKL .S2 SL5+0,B4 ; |137|
MVKH .S2 SL5+0,B4 ; |137|
STW .D2T2 B4,*+SP(4) ; |137|
MVKL .S1 _trace1,A4 ; |137|
|| MVKL .S2 RL20,B3 ; |137|
STW .D2T2 B5,*+SP(8) ; |137|
|| MVKH .S2 RL20,B3 ; |137|
|| MVKH .S1 _trace1,A4 ; |137|
RL20: ; CALL OCCURS ; |137|
.line 6
;----------------------------------------------------------------------
; 139 | if (!processChannel(&audioChannel[channelNum])) {
;----------------------------------------------------------------------
LDW .D2T2 *+SP(12),B4 ; |139|
B .S1 _processChannel ; |139|
MVKL .S2 RL22,B3 ; |139|
MVK .S1 (_audioChannel-$bss),A0 ; |139|
ADD .L1X DP,A0,A0 ; |139|
SHL .S2 B4,4,B4 ; |139|
ADD .L1X A0,B4,A4 ; |139|
|| MVKH .S2 RL22,B3 ; |139|
RL22: ; CALL OCCURS ; |139|
MV .L1 A4,A1 ; |139|
[ A1] B .S1 L4 ; |139|
NOP 5
; BRANCH OCCURS ; |139|
;** --------------------------------------------------------------------------*
.line 7
;----------------------------------------------------------------------
; 140 | LOG_printf(&trace, "processing error on channel %d", channelNum);
;----------------------------------------------------------------------
B .S1 _LOG_printf ; |140|
|| LDW .D2T2 *+SP(12),B4 ; |140|
MVKL .S2 SL6+0,B5 ; |140|
MVKH .S2 SL6+0,B5 ; |140|
STW .D2T2 B5,*+SP(4) ; |140|
MVKL .S1 _trace,A4 ; |140|
|| MVKL .S2 RL24,B3 ; |140|
STW .D2T2 B4,*+SP(8) ; |140|
|| MVKH .S2 RL24,B3 ; |140|
|| MVKH .S1 _trace,A4 ; |140|
RL24: ; CALL OCCURS ; |140|
.line 10
B .S1 L4 ; |143|
NOP 5
; BRANCH OCCURS ; |143|
;** --------------------------------------------------------------------------*
.line 11
.endfunc 144,000080000h,16
.sect ".text"
.global _main
.sym _main,_main, 36, 2, 0
.func 146
;----------------------------------------------------------------------
; 146 | 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) ; |146|
.line 3
;----------------------------------------------------------------------
; 148 | initChannelData();
;----------------------------------------------------------------------
B .S1 _initChannelData ; |148|
MVKL .S2 RL26,B3 ; |148|
MVKH .S2 RL26,B3 ; |148|
NOP 3
RL26: ; CALL OCCURS ; |148|
ZERO .L1 A4 ; |148|
.line 4
LDW .D2T2 *++SP(8),B3 ; |149|
NOP 4
B .S2 B3 ; |149|
NOP 5
; BRANCH OCCURS ; |149|
.endfunc 149,000080000h,8
;******************************************************************************
;* STRINGS *
;******************************************************************************
.sect ".const"
SL1: .string "Cannot get static buffer",0
SL2: .string "sio_get uses buffer 0x%x",0
SL3: .string "sio_get returns buffer 0x%x",0
SL4: .string "sio_put returns buffer 0x%x",0
SL5: .string "channel %d",0
SL6: .string "processing error on channel %d",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 _inStream0
.global _trace
.global _trace1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -