📄 realtime.asm
字号:
;* B7,B8,B9,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24, *
;* A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;* B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31 *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,DP,SP,A16,A17,A18,A19,A20,A21,A22,A23, *
;* A24,A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19, *
;* B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31 *
;* Local Frame Size : 0 Args + 0 Auto + 4 Save = 4 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o1) may disable key optimizations! *
;* *
;******************************************************************************
_InputData:
;** --------------------------------------------------------------------------*
.line 2
STW .D2T2 B3,*SP--(8) ; |102|
.line 5
MVKL .S2 _PseudoRand16,B4 ; |105|
MVKH .S2 _PseudoRand16,B4 ; |105|
CALL .S2 B4 ; |105|
MVK .S1 (_Seed$2-$bss),A3 ; |105|
ADDKPC .S2 RL7,B3,2 ; |105|
ADD .D1X DP,A3,A4 ; |105|
RL7: ; CALL OCCURS ; |105|
.line 6
LDW .D2T2 *++SP(8),B3 ; |106|
NOP 4
RETNOP .S2 B3,5 ; |106|
; BRANCH OCCURS ; |106|
.endfunc 106,000080000h,8
.sect ".text"
.global _OutputData
.sym _OutputData,_OutputData, 32, 2, 0
.func 116
;******************************************************************************
;* FUNCTION NAME: _OutputData *
;* *
;* Regs Modified : B4 *
;* Regs Used : A4,B3,B4,DP *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o1) may disable key optimizations! *
;* *
;******************************************************************************
_OutputData:
;** --------------------------------------------------------------------------*
.line 2
.sym _Data,4, 3, 17, 16
.sym _Data,4, 3, 4, 16
.line 3
LDW .D2T2 *+DP(_OutputDataPtr),B4 ; |118|
NOP 4
STH .D2T1 A4,*B4 ; |118|
.line 4
RETNOP .S2 B3,5 ; |119|
; BRANCH OCCURS ; |119|
.endfunc 119,000000000h,0
.sect ".text"
.global _Fir32
.sym _Fir32,_Fir32, 36, 2, 0
.func 128
;******************************************************************************
;* FUNCTION NAME: _Fir32 *
;* *
;* Regs Modified : A0,A3,A4,A5,A6,A7,A8 *
;* Regs Used : A0,A3,A4,A5,A6,A7,A8,B3,B4 *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o1) may disable key optimizations! *
;* *
;******************************************************************************
_Fir32:
;** --------------------------------------------------------------------------*
.line 2
.sym _x,4, 19, 17, 32
.sym _coeff,20, 19, 17, 32
.sym _coeff,7, 19, 4, 32
.sym _x,3, 19, 4, 32
.sym _sum,4, 4, 4, 32
.sym _i,5, 4, 4, 32
MV .D1 A4,A3 ; |129|
|| MV .S1X B4,A7 ; |129|
.line 7
LDH .D1T1 *+A3(30),A5 ; |134|
LDH .D1T1 *+A7(30),A4 ; |134|
NOP 4
MPY .M1 A5,A4,A4 ; |134|
NOP 1
SHR .S1 A4,4,A4 ; |134|
.line 8
MVK .D1 0xe,A5 ; |135|
;*----------------------------------------------------------------------------*
;* SOFTWARE PIPELINE INFORMATION
;* Disqualified loop: Software pipelining disabled
;*----------------------------------------------------------------------------*
L4:
.line 10
LDH .D1T1 *+A7[A5],A8 ; |137|
LDH .D1T1 *+A3[A5],A6 ; |137|
NOP 4
MPY .M1 A6,A8,A8 ; |137|
NOP 1
SHR .S1 A8,4,A8 ; |137|
ADD .D1 A8,A4,A4 ; |137|
.line 11
ADDAH .D1 A3,A5,A8 ; |138|
STH .D1T1 A6,*+A8(2) ; |138|
.line 12
SUB .D1 A5,1,A5 ; |139|
CMPLT .L1 A5,0,A0 ; |139|
[!A0] BNOP .S1 L4,5 ; |139|
; BRANCH OCCURS ; |139|
;** --------------------------------------------------------------------------*
.line 13
.line 14
RETNOP .S2 B3,5 ; |141|
; BRANCH OCCURS ; |141|
.endfunc 141,000000000h,0
.sect ".text"
.global _PseudoRand16
.sym _PseudoRand16,_PseudoRand16, 35, 2, 0
.func 157
;******************************************************************************
;* FUNCTION NAME: _PseudoRand16 *
;* *
;* Regs Modified : A3,A4,A5 *
;* Regs Used : A3,A4,A5,B3 *
;* Local Frame Size : 0 Args + 0 Auto + 0 Save = 0 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o1) may disable key optimizations! *
;* *
;******************************************************************************
_PseudoRand16:
;** --------------------------------------------------------------------------*
.line 2
.sym _Seed,4, 19, 17, 32
.sym _Seed,4, 19, 4, 32
.line 3
LDH .D1T1 *A4,A3 ; |159|
NOP 3
MVK .S1 31821,A5 ; |159|
MPY .M1 A3,A5,A3 ; |159|
NOP 1
ADDK .S1 13849,A3 ; |159|
EXT .S1 A3,16,16,A4 ; |159|
|| STH .D1T1 A3,*A4 ; |159|
.line 4
.line 5
RETNOP .S2 B3,5 ; |161|
; BRANCH OCCURS ; |161|
.endfunc 161,000000000h,0
.sect ".text"
.global _PerformIsr1
.sym _PerformIsr1,_PerformIsr1, 32, 2, 0
.func 173
;******************************************************************************
;* FUNCTION NAME: _PerformIsr1 *
;* *
;* Regs Modified : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,SP,A16,A17,A18,A19,A20,A21,A22,A23,A24, *
;* A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19,B20, *
;* B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31 *
;* Regs Used : A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,B0,B1,B2,B3,B4,B5,B6, *
;* B7,B8,B9,DP,SP,A16,A17,A18,A19,A20,A21,A22,A23, *
;* A24,A25,A26,A27,A28,A29,A30,A31,B16,B17,B18,B19, *
;* B20,B21,B22,B23,B24,B25,B26,B27,B28,B29,B30,B31 *
;* Local Frame Size : 0 Args + 0 Auto + 212 Save = 212 byte *
;******************************************************************************
;******************************************************************************
;* *
;* Using -g (debug) with optimization (-o1) may disable key optimizations! *
;* *
;******************************************************************************
_PerformIsr1:
;** --------------------------------------------------------------------------*
.line 2
ADDK .S2 -216,SP ; |174|
STW .D2T2 B31,*+SP(216) ; |174|
STDW .D2T2 B29:B28,*+SP(208) ; |174|
STDW .D2T2 B27:B26,*+SP(200) ; |174|
STDW .D2T2 B25:B24,*+SP(192) ; |174|
STDW .D2T2 B23:B22,*+SP(184) ; |174|
STDW .D2T2 B21:B20,*+SP(176) ; |174|
STDW .D2T2 B19:B18,*+SP(168) ; |174|
STDW .D2T2 B17:B16,*+SP(160) ; |174|
STW .D2T2 B30,*+SP(156) ; |174|
STW .D2T1 A31,*+SP(152) ; |174|
STDW .D2T1 A29:A28,*+SP(144) ; |174|
STDW .D2T1 A27:A26,*+SP(136) ; |174|
STDW .D2T1 A25:A24,*+SP(128) ; |174|
STDW .D2T1 A23:A22,*+SP(120) ; |174|
STDW .D2T1 A21:A20,*+SP(112) ; |174|
STDW .D2T1 A19:A18,*+SP(104) ; |174|
STDW .D2T1 A17:A16,*+SP(96) ; |174|
STW .D2T1 A30,*+SP(92) ; |174|
STW .D2T2 B9,*+SP(88) ; |174|
STDW .D2T2 B7:B6,*+SP(80) ; |174|
STDW .D2T2 B5:B4,*+SP(72) ; |174|
STDW .D2T2 B3:B2,*+SP(64) ; |174|
STDW .D2T2 B1:B0,*+SP(56) ; |174|
STW .D2T2 B8,*+SP(52) ; |174|
STW .D2T1 A9,*+SP(48) ; |174|
STDW .D2T1 A7:A6,*+SP(40) ; |174|
STDW .D2T1 A5:A4,*+SP(32) ; |174|
STDW .D2T1 A3:A2,*+SP(24) ; |174|
STDW .D2T1 A1:A0,*+SP(16) ; |174|
STW .D2T1 A8,*+SP(12) ; |174|
.line 3
MVK .D2 1,B4 ; |175|
STW .D2T2 B4,*+DP(_WhatIsrActive) ; |175|
.line 4
LDW .D2T2 *+DP(_Isr0),B4 ; |176|
NOP 4
ADD .D2 1,B4,B4 ; |176|
STW .D2T2 B4,*+DP(_Isr0) ; |176|
.line 5
LDW .D2T2 *+DP(_Isr0),B4 ; |177|
NOP 4
AND .D2 7,B4,B0 ; |177|
[ B0] BNOP .S1 L5,5 ; |177|
; BRANCH OCCURS ; |177|
;** --------------------------------------------------------------------------*
.line 6
MVKL .S1 _TakeALongTime,A3 ; |178|
MVKH .S1 _TakeALongTime,A3 ; |178|
CALL .S2X A3 ; |178|
ADDKPC .S2 RL8,B3,4 ; |178|
RL8: ; CALL OCCURS ; |178|
;** --------------------------------------------------------------------------*
L5:
.line 7
ZERO .D2 B4 ; |179|
STW .D2T2 B4,*+DP(_WhatIsrActive) ; |179|
.line 8
LDW .D2T2 *+DP(_timer0value),B4 ; |180|
NOP 4
ADD .D2 1,B4,B4 ; |180|
STW .D2T2 B4,*+DP(_timer0value) ; |180|
.line 9
LDDW .D2T2 *+SP(200),B27:B26 ; |181|
LDDW .D2T2 *+SP(192),B25:B24 ; |181|
LDDW .D2T2 *+SP(184),B23:B22 ; |181|
LDDW .D2T2 *+SP(176),B21:B20 ; |181|
LDDW .D2T2 *+SP(168),B19:B18 ; |181|
LDDW .D2T2 *+SP(160),B17:B16 ; |181|
LDW .D2T2 *+SP(156),B30 ; |181|
LDW .D2T1 *+SP(152),A31 ; |181|
LDDW .D2T1 *+SP(144),A29:A28 ; |181|
LDDW .D2T1 *+SP(136),A27:A26 ; |181|
LDDW .D2T1 *+SP(128),A25:A24 ; |181|
LDDW .D2T1 *+SP(120),A23:A22 ; |181|
LDDW .D2T1 *+SP(112),A21:A20 ; |181|
LDDW .D2T1 *+SP(104),A19:A18 ; |181|
LDDW .D2T1 *+SP(96),A17:A16 ; |181|
LDW .D2T1 *+SP(92),A30 ; |181|
LDW .D2T2 *+SP(88),B9 ; |181|
LDDW .D2T2 *+SP(80),B7:B6 ; |181|
LDDW .D2T2 *+SP(64),B3:B2 ; |181|
LDDW .D2T2 *+SP(56),B1:B0 ; |181|
LDW .D2T2 *+SP(52),B8 ; |181|
LDW .D2T1 *+SP(48),A9 ; |181|
LDDW .D2T1 *+SP(40),A7:A6 ; |181|
LDDW .D2T1 *+SP(32),A5:A4 ; |181|
LDDW .D2T1 *+SP(24),A3:A2 ; |181|
LDDW .D2T1 *+SP(16),A1:A0 ; |181|
LDW .D2T1 *+SP(12),A8 ; |181|
LDW .D2T2 *+SP(216),B31 ; |181|
RET .S2 IRP ; |181|
|| LDDW .D2T2 *+SP(208),B29:B28 ; |181|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -