IDT 'CW400' TITL 'Mother of All CW Filters, 400 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 = 400 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) = .37162640E-04 = H( 82) * H( 2) = .25900430E-02 = H( 81) * H( 3) = .24461660E-02 = H( 80) * H( 4) = .99753610E-03 = H( 79) * H( 5) = -.19845970E-02 = H( 78) * H( 6) = -.44245310E-02 = H( 77) * H( 7) = -.41751700E-02 = H( 76) * H( 8) = -.10804180E-02 = H( 75) * H( 9) = .25345200E-02 = H( 74) * H(10) = .38176570E-02 = H( 73) * H(11) = .21891970E-02 = H( 72) * H(12) = .10723280E-03 = H( 71) * H(13) = .57555260E-03 = H( 70) * H(14) = .35380560E-02 = H( 69) * H(15) = .50459860E-02 = H( 68) * H(16) = .86920080E-03 = H( 67) * H(17) = -.83625870E-02 = H( 66) * H(18) = -.15834480E-01 = H( 65) * H(19) = -.13593070E-01 = H( 64) * H(20) = -.26289370E-03 = H( 63) * H(21) = .15915450E-01 = H( 62) * H(22) = .22826200E-01 = H( 61) * H(23) = .14911390E-01 = H( 60) * H(24) = -.12416370E-02 = H( 59) * H(25) = -.12328160E-01 = H( 58) * H(26) = -.10754970E-01 = H( 57) * H(27) = -.23483190E-02 = H( 56) * H(28) = -.72955810E-03 = H( 55) * H(29) = -.12292400E-01 = H( 54) * H(30) = -.26270940E-01 = H( 53) * H(31) = -.21828100E-01 = H( 52) * H(32) = .11256600E-01 = H( 51) * H(33) = .56592060E-01 = H( 50) * H(34) = .77628080E-01 = H( 49) * H(35) = .45959540E-01 = H( 48) * H(36) = -.30234670E-01 = H( 47) * H(37) = -.10381250E+00 = H( 46) * H(38) = -.11950950E+00 = H( 45) * H(39) = -.56814100E-01 = H( 44) * H(40) = .49413560E-01 = H( 43) * H(41) = .12988000E+00 = H( 42) * * BAND 1 BAND 2 BAND 3 * LOWER BAND EDGE .0000000 .1040000 .1792000 * UPPER BAND EDGE .0768000 .1520000 .5000000 * DESIRED VALUE .0000000 1.0000000 .0000000 * WEIGHTING 10.0000000 1.0000000 10.0000000 * DEVIATION .0024971 .0249706 .0024971 * DEVIATION IN DB -52.0514100 .2142284 -52.0514100 * * EXTREMAL FREQUENCIES--MAXIMA OF THE ERROR CURVE * .0000000 .0114329 .0236280 .0350610 .0464939 * .0571646 .0663109 .0739329 .0768000 .1040000 * .1093354 .1306768 .1466829 .1520000 .1792000 * .1822488 .1891085 .1990170 .2096878 .2211207 * .2333158 .2447487 .2569438 .2691389 .2813340 * .2942913 .3064865 .3186816 .3308767 .3438340 * .3560291 .3682242 .3811815 .3933766 .4063339 * .4185290 .4307241 .4436814 .4558766 .4688339 * .4810290 .4939863 * * ********************************************************************** * 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 0 LTD BPF+80 MPYK 11 LTD BPF+79 MPYK 10 LTD BPF+78 MPYK 4 LTD BPF+77 MPYK -8 * 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 -19 LTD BPF+75 MPYK -18 LTD BPF+74 MPYK -5 LTD BPF+73 MPYK 11 LTD BPF+72 MPYK 16 LTD BPF+71 MPYK 9 LTD BPF+70 MPYK 0 LTD BPF+69 MPYK 2 LTD BPF+68 MPYK 15 LTD BPF+67 MPYK 21 LTD BPF+66 MPYK 4 LTD BPF+65 MPYK -35 LTD BPF+64 MPYK -66 LTD BPF+63 MPYK -57 LTD BPF+62 MPYK -1 LTD BPF+61 MPYK 67 LTD BPF+60 MPYK 96 LTD BPF+59 MPYK 63 LTD BPF+58 MPYK -5 LTD BPF+57 MPYK -52 LTD BPF+56 MPYK -45 LTD BPF+55 MPYK -10 LTD BPF+54 MPYK -3 LTD BPF+53 MPYK -52 LTD BPF+52 MPYK -110 LTD BPF+51 MPYK -92 LTD BPF+50 MPYK 47 LTD BPF+49 MPYK 238 LTD BPF+48 MPYK 326 LTD BPF+47 MPYK 193 LTD BPF+46 MPYK -127 LTD BPF+45 MPYK -436 LTD BPF+44 MPYK -502 LTD BPF+43 MPYK -239 LTD BPF+42 MPYK 207 LTD BPF+41 MPYK 545 LTD BPF+40 MPYK 545 LTD BPF+39 MPYK 207 LTD BPF+38 MPYK -239 LTD BPF+37 MPYK -502 LTD BPF+36 MPYK -436 LTD BPF+35 MPYK -127 LTD BPF+34 MPYK 193 LTD BPF+33 MPYK 326 LTD BPF+32 MPYK 238 LTD BPF+31 MPYK 47 LTD BPF+30 MPYK -92 LTD BPF+29 MPYK -110 LTD BPF+28 MPYK -52 LTD BPF+27 MPYK -3 LTD BPF+26 MPYK -10 LTD BPF+25 MPYK -45 LTD BPF+24 MPYK -52 LTD BPF+23 MPYK -5 LTD BPF+22 MPYK 63 LTD BPF+21 MPYK 96 LTD BPF+20 MPYK 67 LTD BPF+19 MPYK -1 LTD BPF+18 MPYK -57 LTD BPF+17 MPYK -66 LTD BPF+16 MPYK -35 LTD BPF+15 MPYK 4 LTD BPF+14 MPYK 21 LTD BPF+13 MPYK 15 LTD BPF+12 MPYK 2 LTD BPF+11 MPYK 0 LTD BPF+10 MPYK 9 LTD BPF+9 MPYK 16 LTD BPF+8 MPYK 11 LTD BPF+7 MPYK -5 LTD BPF+6 MPYK -18 LTD BPF+5 MPYK -19 LTD BPF+4 MPYK -8 LTD BPF+3 MPYK 4 LTD BPF+2 MPYK 10 LTD BPF+1 MPYK 11 LTD BPF MPYK 0 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