📄 track.asm
字号:
.def _PixStat
* A1 ----- Heightn
* A4 ----- pAddr
* A5 ----- pHori
* B5 ----- pVert
_PixStat:
STW A0, *--B15
STW A1, *--B15
STW A4, *--B15
STW A5, *--B15
STW A6, *--B15
STW A7, *--B15
STW A8, *--B15
STW A9, *--B15
STW B1, *--B15
STW B5, *--B15
STW B6, *--B15
STW B8, *--B15
MV .L2 B6, B8
MVK .S1 0xFF, A0
ADD .L2 A8, B4, B5
MV .L1 A6, A1
SUB .D2 B5, 1, B5
LoopHi:
MV .L1X B8, A5
|| MVKL .S2 0x5a, B1
MVKH .S2 0X5a, B1
|| ADD .D2 B5, 1, B5
LoopVi:
LDW .D1 *A4++, A6
|| LDW .D2 *B5, B6
NOP 4
LDW .D1 *A5, A9
AND .L1 A6, A0, A7
ADD .S2X B6, A7, B6
NOP 2
ADD .D1 A9, A7, A9
STW .D1 A9, *A5++
LDW .D1 *A5, A9
SHR .S1 A6, 8, A7
AND .L1 A7, A0, A7
ADD .S2X B6, A7, B6
NOP
ADD .D1 A9, A7, A9
STW .D1 A9, *A5++
LDW .D1 *A5, A9
SHR .S1 A6, 16, A7
AND .L1 A7, A0, A7
ADD .S2X B6, A7, B6
NOP
ADD .D1 A9, A7, A9
STW .D1 A9, *A5++
LDW .D1 *A5, A9
SHR .S1 A6, 24, A6
AND .L1 A7, A0, A7
ADD .S2X B6, A7, B6
NOP
ADD .D1 A9, A7, A9
STW .D1 A9, *A5++
|| STW .D2 B6, *B5
|| SUB .L2 B1, 1, B1
[B1] B LoopVi
NOP 5
SUB .L1 A1, 1, A1
[A1] B LoopHi
NOP 5
LDW *B15++, B8
LDW *B15++, B6
LDW *B15++, B5
LDW *B15++, B1
LDW *B15++, A9
LDW *B15++, A8
LDW *B15++, A7
LDW *B15++, A6
LDW *B15++, A5
LDW *B15++, A4
LDW *B15++, A1
LDW *B15++, A0
B B3
NOP 5
;
; void EnergyAccum(int *pAddr, int nStartLine, int Height )
;{
; int *pHori, *pVert, i,j;
; int Data, d1;
; pVert = (int *)( VerticalEnery + nStartLine - 1 );
; for( i=0; i<Height; i++ )
; {
; pHori = (int *)( HorizontalEnery );
; pVert++;
; for( j=0; j<90; j++ )
; {
; Data = *pAddr++;
; d1 = Data & 0xff;
; *pVert = *pVert + d1;
; *pHori = *pHori + d1;
; pHori++;
;
; d1 = (Data>>8) & 0xff;
; *pVert = *pVert + d1;
; *pHori = *pHori + d1;
; pHori++;
;
; d1 = (Data>>16) & 0xff;
; *pVert = *pVert + d1;
; *pHori = *pHori + d1;
; pHori++;
;
; d1 = (Data>>24) & 0xff;
; *pVert = *pVert + d1;
; *pHori = *pHori + d1;
; pHori++;
; }
; }
;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -