📄 zero_con.asm
字号:
ZERO_DEBUG .SET 0
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
.IF ZERO_DEBUG
.version 50
.mmregs
;.OPTION X
;.GLOBAL A,Z,XY
;-------------
.BSS SIGNFLAG,1
.BSS ACCBUF,2
.sect "DRAM"
Z .INT 0bdddh,0bdddh,0d806h,0e3d0h,0ed50h,0cdah,033dbh,04655h,044c0h,04221h,03e4bh
.DATA
A .INT 0c792h,03088h,0c934h,027c9h,0f22dh,01486h,0f3b3h,0971h,0ead5h,0a38h
;Z .INT 0bdddh,0bdddh,0d806h,0e3d0h,0ed50h,0cdah,033dbh,04655h,044c0h,04221h,03e4bh
XY .INT 0fa3eh,0f6h,04fch,06bch,0fe5ah,0fdbfh,0fb9dh,0ffd8h,06h,036h
.INT 0fa63h,00h,07f8h,0feabh,0fea4h,0fff3h,0ff1bh,0fb65h,0ff22h,0182h
.INT 0211h,0409h,023h,0fff8h,042ch,0f780h,0fabbh,02b5h,0f44dh,0fc7fh
.INT 0adh,0267h,01b4h,0fc42h,0943h,0209h,0209h,022fh,0984h,0579h,0438h
.INT 0fe93h,0b1bh,057h,0fcafh,0fc1ah,02c9h,083h,0fc47h,0192h,00h,0fa17h
.INT 0fc10h,0589h,0fe09h,0fcf8h,07ceh,0379h,04b7h,030h
.TEXT
CALL C50_INIT
LDP #ACCBUF
LACC #A
SACL ZERO_A
LACC #Z
SACL ZERO_Z
LACC #XY
SACL ZERO_XY
CALL ZERO_CON
HERE: B HERE
.ENDIF
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;=================================
;-------------
.bss ZERO_A,1
.BSS ZERO_Z,1
.BSS ZERO_XY,1
;--------------
;===============================================
;.BSS ZERO_A[10], ZERO_Z[11], ZERO_XY[60]
;ACC ACCB PREG TREG0 INDX=2 BRCR
;AR0,AR1,AR7
;===============================================
ZERO_CON
LACC #2
SAMM INDX
;=================================
; for (t = 0; t < len; t++)
; { z[0] = xy[t]; acc = z[0]*0x2000l;
;=================================
LACC #59
SAMM AR7
LAR AR0,ZERO_XY
MAR *,AR0
LACC ZERO_A
SAMM BMAR ;MADS
LAR AR1,ZERO_Z ;AR1->Z[1]
;---ARP==0
LACC *,0,AR1
SACL *
;-----ARP==0
ZERO_FOR1
;LACC *,0,AR1
;SACL *
LACC *+,13
;=================================
; for (j = n; j > 0; j--)
; { p32 = 0x2000l*b[j]; p32 = p32*(long)z[j];
; acc+=p32; z[j] = z[j-1]; }
;=================================
ZPR
RPT #9
MADS *+ ;BMAR->A[0]
APAC
SBRK #2 ;AR1->Z[9]
RPT #8
DMOV *- ;->Z[0]
DMOV *,AR0
;=================================
; acc>>=13; //z[0]=acc; z[1]=acc;
;=================================
BSAR 13
;=================================
; xy[t]=acc;
;=================================
SACL *+,0,AR7
BANZD ZERO_FOR1,*-,AR0
LACC *,0,AR1
SACL *
;=================================
;---AR1->Z[0] ARP==1
MAR *+ ;Z[0]=Z[1]
RETD
LACC *-
SACL *
;=========================================
; for (t = 0; t < len; t++)
; { z[0] = xy[t]; acc = z[0]*0x2000l;
; for (j = n; j > 0; j--)
; { p32 = 0x2000l*b[j]; p32 = p32*(long)z[j];
; acc+=p32; z[j] = z[j-1]; }
; acc>>=13;
; xy[t] = acc;
; } //by wht
;=================================
.IF ZERO_DEBUG
.INCLUDE "C50_INIT.ASM"
.INCLUDE "MPY16_32.ASM"
.ENDIF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -