📄 spbpfa.s54
字号:
*---------------------------------------------------------------------*
* *
* THIS IS AN UNPUBLISHED WORK CONTAINING CONFIDENTIAL AND PROPRIETARY *
* INFORMATION. IF PUBLICATION OCCURS, THE FOLLOWING NOTICE APPLIES: *
* "COPYRIGHT 2001 MICHAEL TSIROULNIKOV, ALL RIGHTS RESERVED" *
* *
*---------------------------------------------------------------------*/
.mmregs
.include "spdefs.inc"
_NEW_BP .set 1
.if _NEW_BP
SPBPF_SSZ .set (31)
SPBPF_FSZ .set (32)
.else
SPBPF_HSZ .set (10)
SPBPF_SSZ .set (18)
SPBPF_FSZ .set (19)
.endif
.sect ".bpfd"
_SPBPF_aFlt
.if _NEW_BP
.word 25404, -267, -12669, -363, -8752, -582, -5330, -768
.word -2592, -780, -661, -544, 462, -95, 922, 409
.word 1056, 1210, 893, 784, 571, 487, 346, 278
.word 196, 142, 100, 63, 43, 22, 12, 4
.else
.word 29527, -9592, -7602, -5666, -3858
.word -2204, -441, -147, -26, 5
.endif
.text
;-------------------------------------------------------------------------
.global _sp_bpf_init
.sym _sp_bpf_init, _sp_bpf_init, 32, 2, 0
;-------------------------------------------------------------------------
_sp_bpf_init
; pDb = a
stlm a, ar2
ld #0, a
rpt #(SPBPF_SSZ-1)
stl a, *ar2+
ret
;-------------------------------------------------------------------------
.global _sp_bpf
.sym _sp_bpf, _sp_bpf, 32, 2, 0
;-------------------------------------------------------------------------
_sp_bpf
; pDb = a
; pSc = sp(1)
; psData = sp(2)
;
stlm a, ar2
ssbx sxm
ssbx frct
mvdk *sp(1), ar3
;
; copy data from Db.Sav
rpt #(SPBPF_SSZ-1)
mvdd *ar2+, *ar3+
;
; append data from In
mvdk *sp(2), ar4
rpt #(SP_FR_SZ-1)
mvdd *ar4+, *ar3+ ; at the end,
;
; update Db.Sav
mar *ar2-
mar *ar4-
rpt #(SPBPF_SSZ-1)
mvdd *ar4-, *ar2- ;
;
; filter
mvdk *sp(1), ar3
mar *+ar3(#(SPBPF_FSZ-1))
mvdk *sp(2), ar4
.if _NEW_BP
stm #(SP_FR_SZ-1), brc
stm #_SPBPF_aFlt, ar5
rptb L03-1
rptz a, #(SPBPF_FSZ-2)
mac *ar3-, *ar5+, a
macr *ar3-, *ar5+, a
mar *+ar5(#-SPBPF_FSZ)
mar *+ar3(#(1+SPBPF_FSZ))
sth a, *ar4+
L03
.else
stm #-2, ar0
stm #(SP_FR_SZ-1), brc
stm #0, bk
stm #_SPBPF_aFlt, ar5
rptb L03-1
rptz a, #(SPBPF_HSZ-2)
mac *ar3+0%, *ar5+, a
macr *ar3+0%, *ar5+, a
mar *+ar5(#-SPBPF_HSZ)
mar *+ar2(#(1+SPBPF_HSZ*2))
sth a, *ar4+
L03
.endif
rsbx frct
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -