decus NO. 8-292 FFT - #1 SYMBOLIC 3/7/69 0-177  / TWO REAL SIGNALS FROM CHANNELS 0 AND 1 OF / THE A/D CONVERTER. A HARDWARE BIT INVERTER / IS EMPLOYED. / AUTO-RANGING IS USED TO DECREASE / ROUNDOFF ERROR / N=512 *0000 0000 JMP I SER SER,SER0 / POINTER TO INTERRUPT SERVICE NUM,1000 / NUMBER OF POINTS IN TRANSFORM ONE,4000 / (1+0) *0010 MULTR,0 / REAL MULT TERM STORAGE MULTI,0 / IMAG MULT TERM STORAGE INDX,0 / NODAL INDEX ARG1,0 CNTR,0 PNTR,0 SHIFT,6000 / 1+1/2 FLAG,0 / AUTO-RANGE FLAG RET,ECHK / POINTER TO END CHECKS RSA,2200 / INITIAL REAL ARRAY ADDRESS ISA,3200 / INITIAL IMAG ARRAY ADDRESS CSA,1600 / INITIAL COSINE ARRAY ADDRESS SSA,1200 / INITIAL SINE ARRAY ADDRESS RA,0 RA2,0 IA,0 / PRESENT ARRAY ADDRESSES IA2,0 SA,0 CA,0 MULT, 0 / SINGLE PRECISION MULTIPLY DCA ARG2 CLA MQA DCA ARG1 MUY / 1+(A+B+AB)/2 ARG2, 0000 SHL / 1+(A+B+AB) 0000 CIA / 1-(A+B+AB) TAD ARG2 / -(A+AB) TAD ARG1 / 1-AB CIA / 1+AB JMP I MULT / EXIT WITH RESULT IN AC CMULT, TAD I RA2 / REGULAR COMPLEX MLTIPLY JMS COSINE DCA MULTR / (1+A*COS) TAD I RA2 JMS SINE CIA DCA MULTI / (1-A*SIN) TAD I IA2 JMS SINE TAD MULTR TAD ONE DCA I RA2 / REAL=1+(A*COS+B*SIN) TAD I IA2 JMS COSINE TAD MULTI TAD ONE DCA I IA2 / IMAG=1+(B*COS-A*SIN) JMP I RET / RETURN C90, TAD I IA2 / 90 DEGREE ROUTINE MQL TAD I RA2 CIA DCA I IA2 CLA MQA DCA I RA2 JMP I RET / RETURN C45, CLA CLL CML RAR / 45 DEGREE ROUTINE TAD I RA2 TAD I IA2 / 1+(A+B) JMS SINE DCA MULTR CLA CLL CML RAR TAD I RA2 CIA / 1+(B-A) TAD I IA2 JMS SINE DCA I IA2 / IMAG=1+(B-A)*SIN TAD MULTR DCA I RA2 / REAL=+(A+B)*SIN JMP I RET / RETRN C135, CLA CLL CML RAR / 135 DEGREE ROUTINE TAD I RA2 TAD I IA2 / 1+(A+B) JMS COSINE DCA MULTI CLA CLL CML RAR TAD I RA2 CIA / 1+(B-A) TAD I IA2 JMS SINE DCA I RA2 / REAL=1+(B-A)*SIN TAD MULTI DCA I IA2 / IMAG=1-(A+B)*SIN JMP I RET / RETURN COSINE, 0 / MULTIPLY BY COSINE ROUTINE CLL RAL SNA / IF ZERO, NO MULT REQUIRED JMP SC0 RAR MQL TAD I CA JMS MULT / JUMP TO MULTIPLY SKP SC0, RAR JMP I COSINE / RETURN SINE, 0 / MULTIPLY BY SINE ROUTINE CLL RAL SNA / IF ZERO, NO MULT REQUIRED JMP SS0 RAR MQL TAD I SA JMS MULT / JUMP TO MULTIPLY SKP SS0, RAR JMP I SINE / RETURN CHK, 0 / OVERFLOW CHECK ROUTINE ADDI, NOP / FINISH ADD MQL / STORE SUM IN MQ CLA MQA TAD SHIFT / IF 1-1/2<1+A<1+1/2, DO NOT SPA SNA / SCALE NEXT PASS; IF NOT, DCA FLAG / SCALE NEXT PASS CLA MQA JMP I CHK / RETURN