decus NO. 8-292 FFt - #3 Symbolic 3/7/69 200-377  FFT, CLA IAC / FAST FOURIER TRANSFORM DCA PASS TAD NEND / INITIALIZE PASS COUNTER DCA END IAC DCA FLAG / INITIALIZE AUTO-RANGING DCA SCALE NPASS, DCA INDX / NEW PASS START TAD NUM CLL RAR CIA / INITIALIZE POINTS COUNTER DCA PNTR TAD SSA DCA SA / INITIALIZE FUNCTION TAD CSA / ARRAY ADDRESSES DCA CA TAD FLAG / IF AUTO-RANGE FLAG IS SNA CLA / SET, SCALING IS REQUIRED JMP .+4 / FOR THIS PASS TAD SADD DCA ADDI / SET UP SCALED ADD JMP .+4 TAD UADD / SET UP UNSCALED ADD DCA ADDI ISZ SCALE / INCREMENT SCALE FACTOR DCA FLAG / CLEAR AUTO-RANGE FLAG TAD T0 DCA PUT / SET UP FOR FIRST BLOCK JMS BLOCK / 0 DEGREES TAD T90 DCA PUT / SET UP FOR SECOND BLOCK JMS BLOCK / 90 DEGREES TAD T45 DCA PUT / SET UP FOR THIRD BLOCK JMS BLOCK / 45 DEGREES TAD T135 DCA PUT / SET UP FOR FOURTH BLOCK JMS BLOCK / 135 DEGREES TAD TREG DCA PUT / ALL OTHER BLOCKS JMS BLOCK JMP .-1 / CONTINUE TO END OF PASS BLOCK, 0 / BLOCK PROCESSING TAD PASS CIA DCA CNTR / BLOCK END CHECK TAD RSA TAD INDX DCA RA TAD ISA TAD INDX DCA IA TAD RA / INITIALIZE DATA ARRAY TAD PASS / ADDRESSES DCA RA2 TAD IA TAD PASS DCA IA2 PAIR, TAD I RA / NODE PAIR PROCESSING CLL TAD I RA2 / REAL PART OF 1ST NODE JMS CHK / CHECK FOR OVERFLOW DCA MULTR / TEMPORARY STORE TAD I RA2 CIA CLL TAD I RA JMS CHK DCA I RA2 / REAL PART OF 2ND NODE TAD MULTR DCA I RA TAD I IA CLL TAD I IA2 / IMAG PART OF IST NODE JMS CHK DCA MULTI / TEMPORARY STORE TAD I IA2 CIA CLL TAD I IA JMS CHK DCA I IA2 / IMAG PART OF 2ND NODE TAD MULTI DCA I IA PUT, NOP / SPACE FOR JUMP TO MULTIPLY ECHK, ISZ PNTR / END OF PASS? SKP / NO JMP PASED / YES ISZ CNTR / END OF BLOCK? SKP / NO JMP BLKED / YES ISZ INDX / INCREMENT NODAL INDEX ISZ RA ISZ RA2 / INCREMENT DATA ARRAY ISZ IA / ADDRESSES ISZ IA2 JMP PAIR / PROCESS NEXT PAIR IN BLOCK BLKED, TAD INDX / NEXT BLOCK SETUP TAD PASS IAC / RESET NODAL INDEX DCA INDX ISZ SA / RESET SINE/COSINE ISZ CA / ARRAY ADDRESSES JMP I BLOCK / RETURN FOR NEXT BLOCK PASED, TAD PASS/IS TRANSFORM COMPLETE CLL RAL DCA PASS ISZ END / FINISHED? JMP NPASS / NO, PROCESS NEXT PASS JMP I STUFFI / GO TO EDS FORMATION T0,NOP / NO MULTIPLY FOR 1ST BLOCK T90,JMP C90 / TERM SHUFFLE FOR 2ND BLOCK T45,JMP C45 / 1/2 COMPLEX MULTIPLY FOR T135,JMP C135 / 3RD & 4TH BLOCKS TREG,JMP CMULT / COMPLEX MULTIPLY FOR OTHERS PASS,0 / HALF BLOCK LENGTH NEND,-11 / NUMBER OF PASSES END,0 SCALE,0 / SCALE FACTOR SADD,RAR / END OF SCALED ADD UADD,TAD ONE / END OF UNSCALED ADD STUFFI,STF / POINTER TO NEXT PAGE