home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Boldly Go Collection
/
version40.iso
/
TS
/
05B
/
W9GR_DSP.ZIP
/
CW750C.TMS
< prev
next >
Wrap
Text File
|
1992-08-23
|
20KB
|
863 lines
IDT 'CW750'
TITL 'Mother of All CW Filters, 750 Hz version, 200 Hz BW'
* COPYRIGHT (c) 1992 BY DAVID L. HERSHBERGER, W9GR
* ALL RIGHTS RESERVED
* NONCOMMERCIAL USE BY RADIO AMATEURS AND ELECTRONIC HOBBYISTS IS PERMITTED.
* THIS IS NOT PUBLIC DOMAIN SOFTWARE.
* THIS SOFTWARE MAY NOT BE USED WITHOUT A LICENSE AS THE BASIS
* FOR MANUFACTURE OF COMMERCIAL PRODUCTS.
* COMMERCIAL USE OF THIS SOFTWARE REQUIRES A LICENSE.
* LICENSING INQUIRIES MAY BE DIRECTED TO:
* QUANTICS
* P. O. BOX 2163
* NEVADA CITY, CALIFORNIA 95959-2163
* THIS TMS320C10 ASSEMBLY LANGUAGE PROGRAM IS WRITTEN FOR THE
* W9GR QUANTICS DIGITAL SIGNAL PROCESSOR DESCRIBED ON PAGE 43 OF
* THE SEPTEMBER 1992 ISSUE OF QST MAGAZINE.
* ("LOW COST DIGITAL SIGNAL PROCESSING FOR THE RADIO AMATEUR"
* BY DAVE HERSHBERGER, W9GR)
* THE W9GR / QUANTICS DIGITAL SIGNAL PROCESSOR IS AVAILABLE IN KIT FORM
* (INCLUDING ALL PC BOARD MOUNTED COMPONENTS BUT NO ENCLOSURE OR POWER SUPPLY)
* FROM:
* QUANTICS
* P. O. BOX 2163
* NEVADA CITY, CALIFORNIA 95959
* WITH DITHER
* FS = 12500 HZ, 4X OVERSAMPLING AT INPUT AND OUTPUT
* 400 PROCESSOR CYCLES BETWEEN I/O
* 1600 PROCESSOR CYCLES PER FIR FILTER
* FIR SAMPLING FREQUENCY = 3125 HZ
* CENTER FREQUENCY = 750 HZ
* BANDWIDTH = 150 HZ (APPROXIMATELY 200 HZ @ -3 DB)
* BIO=1 > CW FILTER
* BIO=0 > BYPASS FILTER, INTERPOLATORS/DECIMATORS STILL IN LINE
* **********************************************************************
*
* FINITE IMPULSE RESPONSE (FIR)
* LINEAR PHASE DIGITAL FILTER DESIGN
* REMEZ EXCHANGE ALGORITHM
*
* BANDPASS FILTER
*
* FILTER LENGTH = 82
*
* ***** IMPULSE RESPONSE *****
*
* H( 1) = -.20554260E-03 = H( 82)
* H( 2) = -.26114940E-02 = H( 81)
* H( 3) = .24073570E-03 = H( 80)
* H( 4) = .33211040E-02 = H( 79)
* H( 5) = .22003460E-03 = H( 78)
* H( 6) = -.44110330E-02 = H( 77)
* H( 7) = -.85878440E-03 = H( 76)
* H( 8) = .46340050E-02 = H( 75)
* H( 9) = .13506290E-02 = H( 74)
* H(10) = -.35013340E-02 = H( 73)
* H(11) = -.10798060E-02 = H( 72)
* H(12) = .85803070E-03 = H( 71)
* H(13) = -.62097500E-03 = H( 70)
* H(14) = .29338370E-02 = H( 69)
* H(15) = .41545690E-02 = H( 68)
* H(16) = -.69864300E-02 = H( 67)
* H(17) = -.93156270E-02 = H( 66)
* H(18) = .10103050E-01 = H( 65)
* H(19) = .15070450E-01 = H( 64)
* H(20) = -.11180270E-01 = H( 63)
* H(21) = -.19569260E-01 = H( 62)
* H(22) = .97063550E-02 = H( 61)
* H(23) = .20488850E-01 = H( 60)
* H(24) = -.61370710E-02 = H( 59)
* H(25) = -.15637710E-01 = H( 58)
* H(26) = .20092530E-02 = H( 57)
* H(27) = .36965820E-02 = H( 56)
* H(28) = .32975050E-03 = H( 55)
* H(29) = .15167780E-01 = H( 54)
* H(30) = .16508360E-02 = H( 53)
* H(31) = -.39020260E-01 = H( 52)
* H(32) = -.98424540E-02 = H( 51)
* H(33) = .64370610E-01 = H( 50)
* H(34) = .24742820E-01 = H( 49)
* H(35) = -.86886470E-01 = H( 48)
* H(36) = -.45020620E-01 = H( 47)
* H(37) = .10241340E+00 = H( 46)
* H(38) = .67608250E-01 = H( 45)
* H(39) = -.10804510E+00 = H( 44)
* H(40) = -.88324480E-01 = H( 43)
* H(41) = .10289100E+00 = H( 42)
*
* BAND 1 BAND 2 BAND 3
* LOWER BAND EDGE .0000000 .2160000 .2912000
* UPPER BAND EDGE .1888000 .2640000 .5000000
* DESIRED VALUE .0000000 1.0000000 .0000000
* WEIGHTING 10.0000000 1.0000000 10.0000000
* DEVIATION .0025854 .0258543 .0025854
* DEVIATION IN DB -51.7493500 .2217136 -51.7493500
*
* EXTREMAL FREQUENCIES--MAXIMA OF THE ERROR CURVE
* .0000000 .0121951 .0243902 .0373475 .0495427
* .0617378 .0739329 .0861280 .0983231 .1105182
* .1227133 .1349084 .1463414 .1577743 .1684450
* .1783535 .1859755 .1888000 .2160000 .2213354
* .2411524 .2586829 .2640000 .2912000 .2942488
* .3018707 .3110171 .3224500 .3338829 .3453158
* .3575109 .3697060 .3819011 .3940963 .4062914
* .4192487 .4314438 .4436389 .4565962 .4687913
* .4809864 .4939437
*
* **********************************************************************
* FIRST INTERPOLATION/DECIMATION HALF BAND FILTER 12500 HZ <> 6250 HZ
**********************************************************************
*
* FINITE IMPULSE RESPONSE (FIR)
* LINEAR PHASE DIGITAL FILTER DESIGN
* REMEZ EXCHANGE ALGORITHM
*
* BANDPASS FILTER
*
* FILTER LENGTH = 9
*
* ***** IMPULSE RESPONSE *****
*
*
* H( 1) = -.17244020E-04 = H( 9)
* H( 2) = -.35323790E-01 = H( 8)
* H( 3) = .58424450E-04 = H( 7)
* H( 4) = .28500050E+00 = H( 6)
* H( 5) = .49991770E+00 = H( 5)
*
* BAND 1 BAND 2
* LOWER BAND EDGE .0000000 .4360000
* UPPER BAND EDGE .0640000 .5000000
* DESIRED VALUE 1.0000000 .0000000
* WEIGHTING 1.0000000 1.0000000
* DEVIATION .0006465 .0006465
* DEVIATION IN DB .0056136 -63.7885900
*
* EXTREMAL FREQUENCIES--MAXIMA OF THE ERROR CURVE
* .0000000 .0437500 .0640000 .4360000 .4547500
* .5000000
*
* **********************************************************************
* SECOND INTERPOLATOR/DECIMATOR HALF BAND FILTER 6250 HZ <> 3125 HZ
**********************************************************************
*
* FINITE IMPULSE RESPONSE (FIR)
* LINEAR PHASE DIGITAL FILTER DESIGN
* REMEZ EXCHANGE ALGORITHM
*
* BANDPASS FILTER
*
* FILTER LENGTH = 13
*
* ***** IMPULSE RESPONSE *****
*
*
* H( 1) = .66367920E-05 = H( 13)
* H( 2) = .13592210E-01 = H( 12)
* H( 3) = -.16377250E-04 = H( 11)
* H( 4) = -.64672420E-01 = H( 10)
* H( 5) = .25843950E-04 = H( 9)
* H( 6) = .30201130E+00 = H( 8)
* H( 7) = .49996780E+00 = H( 7)
*
* BAND 1 BAND 2
* LOWER BAND EDGE .0000000 .3720000
* UPPER BAND EDGE .1280000 .5000000
* DESIRED VALUE 1.0000000 .0000000
* WEIGHTING 1.0000000 1.0000000
* DEVIATION .0018621 .0018621
* DEVIATION IN DB .0161592 -54.5997800
*
* EXTREMAL FREQUENCIES--MAXIMA OF THE ERROR CURVE
* .0000000 .0625000 .1071428 .1280000 .3720000
* .3898572 .4389645 .5000000
*
* **********************************************************************
DSEG
DORG >00 PAGE 0
LSBMAX BSS 1 8 BIT MASK
MASK BSS 1 2'S COMPLEMENT CONVERSION MASK
ONES BSS 1 ALL ONES FOR EX-OR
* END OF TABLE PAGE 0 READ VARIABLES
SIGIN BSS 4 INPUT SAMPLES
SIGOUT BSS 4 OUTPUT SAMPLES
LPFI1 BSS 7 INPUT INTERPOLATOR 1
LPFI2 BSS 11 INPUT INTERPOLATOR 2
BPF BSS 82 BANDPASS FILTER DELAY
BPFOUT BSS 1 BANDPASS FILTER OUTPUT
ONE BSS 1 CONSTANT 1
SQUARE BSS 1 INPUT SQUARED
LED BSS 1 LED DISPLAY
TEMP BSS 1 TEMPORARY STORAGE
LPFO1 BSS 6 OUTPUT INTERPOLATOR 1
LPFO2 BSS 4 OUTPUT INTERPOLATOR 2
DITHER BSS 1 DITHER PSEUDORANDOM SEQUENCE
DORG >80 PAGE 1
HPF BSS 5 HPF COEFFICIENTS
* END OF PAGE 1 TABLE READ VARIABLES
INP BSS 3 INPUT DELAY, USED FOR HPF
DENOM BSS 2 INPUT HPF DENOMINATOR DELAY
ONE1 BSS 1 CONSTANT 1
TOP EQU >8F
DEND
PSEG
B START
INTRPT B START
START DINT
SOVM
LDPK 0
LARP AR0
* ZERO ALL DATA MEMORY LOCATIONS
ZAC
LARK AR0,TOP
CLEAR SACL *,0
BANZ CLEAR
* STORE AWAY "1" VALUE
LACK 1
SACL ONE
SACL DITHER ALSO INITIALIZE DITHER WORD
LDPK 1
SACL ONE1
LDPK 0
* GET READY FOR TABLE READ, PAGE 0
LARK AR0,ONES ONES: LAST TABLE ENTRY
LT ONE
MPYK TBLEND
PAC
LARP AR0
* MOVE CONSTANTS TO DATA MEMORY, PAGE 0
MOVTBL TBLR *
SUB ONE
BANZ MOVTBL
* GET READY FOR TABLE READ, PAGE 1
LARK AR1,HPF+4 HPF+4: LAST TABLE ENTRY
LARK AR0,TBLEND1-TABLE1
LT ONE
MPYK TBLEND1
PAC
* MOVE CONSTANTS TO DATA MEMORY, PAGE 1
LARP AR1
MOVTBL1 LDPK 1
LARP AR1
TBLR *-,AR0
LDPK 0
SUB ONE
BANZ MOVTBL1
LARP AR0
LDPK 0
* INPUT INTERPOLATOR 2
AGAIN ZAC
LT LPFI2+10
MPYK 56
DMOV LPFI2+9
LTD LPFI2+8
MPYK -265
DMOV LPFI2+7
LTD LPFI2+6
MPYK 1237
LTD LPFI2+5
MPYK 2048
LTD LPFI2+4
MPYK 1237
DMOV LPFI2+3
LTD LPFI2+2
MPYK -265
DMOV LPFI2+1
LTD LPFI2
MPYK 56
APAC
ADD ONE,11 ADD 0.5 TO ROUND
LDPK 1
SACH INP,4 SAVE TO HPF W/ SHIFT
LDPK 0
* INPUT INTERPOLATOR 1 PASS 1
ZAC
LT LPFI1+6
MPYK -145
DMOV LPFI1+5
LTD LPFI1+4
MPYK 1167
LTD LPFI1+3
MPYK 2048
LTD LPFI1+2
MPYK 1167
DMOV LPFI1+1
LTD LPFI1
MPYK -145
APAC
ADD ONE,11 ADD 0.5 TO ROUND
SACH LPFI2,4 SAVE TO 2ND INTERP W/ SHIFT
* PUT FIRST INPUT SAMPLE INTO FIRST INPUT INTERPOLATOR
ZALS SIGIN PUT SAMPLE INTO ACC-L
XOR MASK A/D OFFSET BINARY=>2'S COMP
AND LSBMAX CLEAR ALL LOW ORDER BITS (NOISE)
SACL LPFI1 PUT INTO FIRST INTERPOLATOR
* FIRST INTERPOLATOR DATA MOVE PASS 1
DMOV LPFI1+5
DMOV LPFI1+4
DMOV LPFI1+3
DMOV LPFI1+2
DMOV LPFI1+1
DMOV LPFI1
* PUT SECOND INPUT SAMPLE INTO FIRST INPUT INTERPOLATOR
ZALS SIGIN+1 PUT SAMPLE INTO ACC-L
XOR MASK A/D OFFSET BINARY=>2'S COMP
AND LSBMAX CLEAR ALL LOW ORDER BITS (NOISE)
SACL LPFI1 PUT INTO FIRST INTERPOLATOR
* SECOND INTERPOLATOR DATA MOVE
DMOV LPFI2+9
DMOV LPFI2+8
DMOV LPFI2+7
DMOV LPFI2+6
DMOV LPFI2+5
DMOV LPFI2+4
DMOV LPFI2+3
DMOV LPFI2+2
DMOV LPFI2+1
DMOV LPFI2
* INPUT INTERPOLATOR 1 PASS 2
ZAC
LT LPFI1+6
MPYK -145
DMOV LPFI1+5
LTD LPFI1+4
MPYK 1167
LTD LPFI1+3
MPYK 2048
LTD LPFI1+2
MPYK 1167
DMOV LPFI1+1
LTD LPFI1
MPYK -145
APAC
ADD ONE,11 ADD 0.5 TO ROUND
SACH LPFI2,4 SAVE TO 2ND INTERP W/ SHIFT
* PUT THIRD INPUT SAMPLE INTO FIRST INPUT INTERPOLATOR
ZALS SIGIN+2 PUT SAMPLE INTO ACC-L
XOR MASK A/D OFFSET BINARY=>2'S COMP
AND LSBMAX CLEAR ALL LOW ORDER BITS (NOISE)
SACL LPFI1 PUT INTO FIRST INTERPOLATOR
* FIRST INTERPOLATOR DATA MOVE PASS 2
DMOV LPFI1+5
DMOV LPFI1+4
DMOV LPFI1+3
DMOV LPFI1+2
DMOV LPFI1+1
DMOV LPFI1
* PUT FOURTH INPUT SAMPLE INTO FIRST INPUT INTERPOLATOR
ZALS SIGIN+3 PUT SAMPLE INTO ACC-L
XOR MASK A/D OFFSET BINARY=>2'S COMP
AND LSBMAX CLEAR ALL LOW ORDER BITS (NOISE)
SACL LPFI1 PUT INTO FIRST INTERPOLATOR
* FIRST OUTPUT SIGNAL TO DAC
OUT SIGOUT,PA1 TO D/A CONV
IN SIGIN,PA1 INPUT FIRST SAMPLE
OUT ONE,PA0 START CONVERSION
CALL WASTE
* SECOND OUTPUT SIGNAL TO DAC
OUT SIGOUT+1,PA1 TO D/A CONV
IN SIGIN+1,PA1 INPUT SECOND SAMPLE
OUT ONE,PA0 START CONVERSION
CALL WASTE
* THIRD OUTPUT SIGNAL TO DAC
OUT SIGOUT+2,PA1 TO D/A CONV
IN SIGIN+2,PA1 INPUT THIRD SAMPLE
OUT ONE,PA0 START CONVERSION
CALL WASTE2
* FORM DITHER WORD
* 15 BITS EXTENDED TO 16
* BIT0 = BIT13 XOR BIT14
LAC DITHER,2 SHIFT BIT14 TO MSB-HI
SACH TEMP STORE TEMPORARILY
LAC DITHER,3 SHIFT BIT13 TO MSB-HI
SACH LED STORE TEMPORARILY IN LED
LAC TEMP
XOR LED FORM XOR
AND ONE IGNORE ALL BUT LSB
ADD DITHER,1 SHIFT UP ONE BIT
SACL DITHER STORE NEW DITHER WORD
* CW BANDPASS FILTER
LAC DITHER,4 LOAD ACCUM WITH SHIFTED DITHER
LT BPF+81
MPYK -1
LTD BPF+80
MPYK -11
LTD BPF+79
MPYK 1
LTD BPF+78
MPYK 14
LTD BPF+77
MPYK 1
* FOURTH OUTPUT SIGNAL TO DAC
OUT SIGOUT+3,PA1 TO D/A CONV
IN SIGIN+3,PA1 INPUT FOURTH SAMPLE
OUT ONE,PA0 START CONVERSION
LTD BPF+76
MPYK -18
LTD BPF+75
MPYK -4
LTD BPF+74
MPYK 19
LTD BPF+73
MPYK 6
LTD BPF+72
MPYK -14
LTD BPF+71
MPYK -4
LTD BPF+70
MPYK 4
LTD BPF+69
MPYK -3
LTD BPF+68
MPYK 12
LTD BPF+67
MPYK 17
LTD BPF+66
MPYK -29
LTD BPF+65
MPYK -38
LTD BPF+64
MPYK 41
LTD BPF+63
MPYK 62
LTD BPF+62
MPYK -46
LTD BPF+61
MPYK -80
LTD BPF+60
MPYK 40
LTD BPF+59
MPYK 84
LTD BPF+58
MPYK -25
LTD BPF+57
MPYK -64
LTD BPF+56
MPYK 8
LTD BPF+55
MPYK 15
LTD BPF+54
MPYK 1
LTD BPF+53
MPYK 62
LTD BPF+52
MPYK 7
LTD BPF+51
MPYK -160
LTD BPF+50
MPYK -40
LTD BPF+49
MPYK 264
LTD BPF+48
MPYK 101
LTD BPF+47
MPYK -356
LTD BPF+46
MPYK -184
LTD BPF+45
MPYK 419
LTD BPF+44
MPYK 277
LTD BPF+43
MPYK -443
LTD BPF+42
MPYK -362
LTD BPF+41
MPYK 421
LTD BPF+40
MPYK 421
LTD BPF+39
MPYK -362
LTD BPF+38
MPYK -443
LTD BPF+37
MPYK 277
LTD BPF+36
MPYK 419
LTD BPF+35
MPYK -184
LTD BPF+34
MPYK -356
LTD BPF+33
MPYK 101
LTD BPF+32
MPYK 264
LTD BPF+31
MPYK -40
LTD BPF+30
MPYK -160
LTD BPF+29
MPYK 7
LTD BPF+28
MPYK 62
LTD BPF+27
MPYK 1
LTD BPF+26
MPYK 15
LTD BPF+25
MPYK 8
LTD BPF+24
MPYK -64
LTD BPF+23
MPYK -25
LTD BPF+22
MPYK 84
LTD BPF+21
MPYK 40
LTD BPF+20
MPYK -80
LTD BPF+19
MPYK -46
LTD BPF+18
MPYK 62
LTD BPF+17
MPYK 41
LTD BPF+16
MPYK -38
LTD BPF+15
MPYK -29
LTD BPF+14
MPYK 17
LTD BPF+13
MPYK 12
LTD BPF+12
MPYK -3
LTD BPF+11
MPYK 4
LTD BPF+10
MPYK -4
LTD BPF+9
MPYK -14
LTD BPF+8
MPYK 6
LTD BPF+7
MPYK 19
LTD BPF+6
MPYK -4
LTD BPF+5
MPYK -18
LTD BPF+4
MPYK 1
LTD BPF+3
MPYK 14
LTD BPF+2
MPYK 1
LTD BPF+1
MPYK -11
LTD BPF
MPYK -1
APAC
ADD ONE,11 ADD 0.5 TO ROUND
SACH BPFOUT,4 BPF OUTPUT
* INPUT HIGHPASS FILTER, FS=3125, PASS 300 REJ 20.5 0.5/50 DB N=2
* NUMERATOR:
LDPK 1
ZAC
LT INP+2
MPY HPF
LTD INP+1
MPY HPF+1
LTD INP
MPY HPF+2
* DENOMINATOR:
LTA DENOM+1
MPY HPF+4
LTD DENOM
MPY HPF+3
APAC
ADD ONE1,11 ADD 0.5 TO ROUND
SACH DENOM,4 SAVE WITH SHIFT
LDPK 0
SACH BPF,4 ALSO SAVE IN BPF INPUT
* SQUARE INPUT
SACH TEMP,4
LT TEMP
MPY TEMP
PAC
SACH TEMP
SUBH SQUARE
BGZ PEAK
ZALS SQUARE
SUB ONE,2
ABS
SACL SQUARE
B DISPLAY
PEAK ZALH TEMP
SACH SQUARE
NOP
NOP
NOP
NOP
* CONVERT TO DISPLAY
DISPLAY LAC SQUARE,12
SACH LED
LAC SQUARE,11
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,10
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,9
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,8
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,7
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,6
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,5
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,4
SACH TEMP
ZALS TEMP
OR LED
SACL LED
LAC SQUARE,3
SACH TEMP
ZALS TEMP
OR LED
XOR ONES
SACL LED
OUT LED,PA2
* OUTPUT INTERPOLATOR 4 PASS 1
ZAC
LT LPFO2+3
MPYK -289
LTD LPFO2+2
MPYK 2335
LTD LPFO2+1
MPYK 2335
LTD LPFO2
MPYK -289
APAC
ADD ONE,11 ADD 0.5 TO ROUND
SACH SIGOUT,4 SAVE 1ST OUTPUT SIGNAL
ZALS SIGOUT
XOR MASK 2'S COMP=>OFFSET BINARY
SACL SIGOUT SAVE 1ST OUTPUT SIGNAL
* SECOND OUTPUT SIGNAL
ZALS LPFO2+2
XOR MASK 2'S COMP=>OFFSET BINARY
SACL SIGOUT+1 SAVE 2ND OUTPUT SIGNAL
* OUTPUT INTERPOLATOR 3
ZAC
LT LPFO1+5
MPYK 111
LTD LPFO1+4
MPYK -530
LTD LPFO1+3
MPYK 2474
LTD LPFO1+2
MPYK 2474
LTD LPFO1+1
MPYK -530
LTD LPFO1
MPYK 111
APAC
ADD ONE,11 ADD 0.5 TO ROUND
SACH LPFO2,4 SAVE TO INTERP 4 W/SHIFT
* PUT BANDPASS FILTER OUTPUT INTO THIRD INTERPOLATOR IF BIOZ IS LOW
* OTHERWISE USE BPF INPUT (DELAYED HALFWAY)
BIOZ GETBPF
ZALH BPFOUT
B PUTOUT
GETBPF ZALH BPF+40
NOP
NOP
PUTOUT SACH LPFO1
* OUTPUT INTERPOLATOR 4 PASS 2
ZAC
LT LPFO2+3
MPYK -289
LTD LPFO2+2
MPYK 2335
LTD LPFO2+1
MPYK 2335
LTD LPFO2
MPYK -289
APAC
ADD ONE,11 ADD 0.5 TO ROUND
SACH SIGOUT+2,4 SAVE 3RD OUTPUT SIGNAL
ZALS SIGOUT+2
XOR MASK 2'S COMP=>OFFSET BINARY
SACL SIGOUT+2 SAVE 1ST OUTPUT SIGNAL
* FOURTH OUTPUT SIGNAL
ZALS LPFO2+2
XOR MASK 2'S COMP=>OFFSET BINARY
SACL SIGOUT+3 SAVE 4TH OUTPUT SIGNAL
* LOAD OUTPUT INTERPOLATOR
ZALH LPFO1+3
SACH LPFO2
B AGAIN
* TIME WASTING ROUTINE
* NUMBER OF CYCLES WASTED (INCLUDING "CALL WASTE")
* IS: 2 (CALL) + 3 (LARK+2 NOP)
* + 3*N (LOOP) + 2 (RET) = 7 + 3*(N+1)
* WASTE 394
WASTE LARK AR0,128
NOP
NOP
WASTEB LARP AR0
BANZ WASTEB
RET
* WASTE 394-20=374
* 5 + 3*(N+1)
WASTE2 LARK AR0,122
WASTE2B LARP AR0
BANZ WASTE2B
RET
TABLE DATA ?1111111100000000 A/D 8 BIT MASK
DATA ?1000000000000000 2'S COMPLEMENT MASK
TBLEND DATA ?1111111111111111 ONES
* ELLIPTIC IIR HPF DATA:
* N=2 PASS 300 HZ REJ 20 HZ 0.5 DB/50 DB
* FS = 3125 HZ
* HPF COEFFICIENTS:
TABLE1 DATA 2853,-5704,2853,5658
TBLEND1 DATA -2333
* Copyright notice
* ONLY ROOM FOR 9 BYTES!
* ASCII DATA STRING EMBEDDED IN THE FOLLOWING DATA STATEMENTS:
* (c)92W9GR
DATA >2828,>6363,>2929,>3939,>3232,>5757,>3939,>4747
DATA >5252
DEND
END