File CFFTMOD

Directory of image this file is from
This file as a plain text file

[CFFT
[SW1 PRINTS RARTIAL RESULTS
[SAVE RET
STA
2D
STC 2N
ADD 0
STC 7R+1
ZTA
STC 7R
JMP 5N
[FAST FOURIER TRANSFORM IN DOUBLE PRECISION FLOATING POINT+ 512 LOCATIONS
[BIT FLIP DATA SWITCH COMPLETE AT THIS POINT
#2A LDA i [CYCLE COUNTER SETUP
-400
STC 2I
LDA i [INITIAL MASK
777
STC 2M
#4I SET i 10 [POINTER TO LOWER RESULTS
2000
SET i 11 [POINTER TO UPPER HALF RESULTS
3000
LDA i  [POINTER TO COS|SIN TABLE
2000
STC 3I
SET i 14 [DATA ARRAY
2000
JMP p+2
LDA i 14 [INDEX DATA ARRAY AFTER E O C
SET i 15 [CYCLE COUNTER
#2I XXX
JMP p+2
#1T LDA i 14
UMB 12
LDA 14 [REAL EXP
STC 5R
UMB 13
LDA 14 [MSB REAL PART
STC 5R+1
UMB 14
LDA 14 [LSB
STC 5R+2
LDA i14 [LSB OF IMAG
STC 5J+2
UMB 13
LDA 14 [MSB
STC 5J+1
UMB 12
LDA 14 [EXP OF IMAG
STC 5J
LDA i 14 [EXP REAL DATA 2
STC 2R
UMB 13
LDA 14[MSB
STC 2R+1
UMB 14
LDA 14 [LSB
STC 2R+2
LDA i 14 [GET LSB OF IMAG DAT 2
STC 2J+2
UMB 13
LDA 14 [MSB
STC 2J+1
UMB 12
LDA 14 [EXP IMAG DAT 2
STC 2J
SET i 6 [COS|SIN
#3I XXX
[FETCH SIN | COS
CLR
ADD 6
STC 5
UMB 7 [COS EXP
LDA 5
STC 1C
UMB 10
LDA 5
STC 1C+1
UMB 11
LDA 5
STC 1C+2
XSK i 5
LDA 5 [SIN LSB
STC 2S+2
UMB 10
LDA 5
STC 2S+1
UMB 7
LDA 5
STC 2S
[DO MULT-ADD LOOP
JMP 1M [COS#D2 REAL
1C
2R
3R [TEMP STORAGE
JMP 1M [COS#D2 IMAG
1C
2J
3J
SRO i[DETERMINE DIRECTION OF XFORM
#2D XXX [0 FOR INV, 7777 FOR FWD
JMP p+2 [FWD
JMP p+5 [INVERSE
JMP 1S [FWD
1Z [MAKE SIN SIGN NEG
2S
2S
JMP 1M [SIN#D2 REAL
2S
2R
4J
JMP 1M [SIN#D2 IMAG
2S
2J
4R
[MAKE ANS NEG OF RESULT DUE TO  i **2
JMP 1S
1Z
4R
4R
[MULTIPLY COMPLETE
[SUM REAL PARTS
JMP 1A
4R
3R
4R
JMP 1A
4J
3J
4J
[PARTIAL SUM COMPLETE
[D1+W D2
JMP 1A
4R
5R
3R
JMP 1A
4J
5J
3J
[NOW DO SUBTRACT
JMP 1S
5R
4R
4R
JMP 1S
5J
4J
4J
[NOW STORE IN TABLE
UMB 15
LDA 
3R
STA 10
UMB 16
LDA
3R+1
STA 10
UMB 17
LDA 
3R+2
STA 10
LDA [STORE IMAG PART
3J+2
STA i 10
UMB 16
LDA 
3J+1
STA 10
UMB 15
LDA 
3J
STA 10
LDA [STORE REAL PART OF Au<N|2>
4R
STA 11
UMB 16
LDA 
4R+1
STA 11
UMB 17
LDA
4R+2
STA 11
LDA [IMAG PART
4J+2
STA i 11
UMB 16
LDA
4J+1
STA 11
UMB 15
LDA
4J
STA 11 [ALL DATA STORED
XSK i 10
XSK i 11
NOP
XSK i 15[INDEX CYCLE COUNTER|JMP 1S [NOT FINISHED
JMP 1T
LDA
10
BCL i
#2M 777
STC 3I
XSK 14 [IS COMPLETE ARRAY FINISHED
JMP 2I-2 [NO  INDEX DATA ARRAY AND RESET CYCLE COUNTER
LDA i [YES
-1000 [CORRECT REF OF SIN COS
ADD 3I
STC 3I
LDA [SCALE SIN COS MASK
2M
SCR 1
STC 2M
ADD 2I [FETCH CYCLE COUNT
SCR 1
STA 
2I
AZE [TEST END XFM
JMP 5K
[IF INVERSE MULTIPLY BY 1|512
SRO i
#2N XXX [O FOR INV, 7777 FOR FWD
JMP 7R [FWD
SET i17 [INVERSE
3777
UMB 15 [EXP
LDA i17
STC 5R
UMB 16 [MSB
LDA 17
STC 5R+1
UMB 17 [LSB
LDA 17
STC 5R+2
JMP 1M [R#1|512
5R
1Z+3
5R
[STORE ON TP
LDA
5R+2
STA 17
UMB 16
LDA
5R+1
STA 17
UMB 15
LDA
5R
STA 17
XSK 17
JMP 2N+4
#7R PAGE
ADR
#5K SET i 1 [RESTORE DATA
2000
JMP p+2
LDA i 1
UMB 15
LDA 1
UMB 12
STA 1
XSK 1
JMP p-6
SET i 1
2000
JMP p+2
LDA i 1
UMB 16
LDA 1
UMB 13
STA 1
XSK 1
JMP p-6
SET i 1
2000
JMP p+2
LDA i 1
UMB 17
LDA 1
UMB 14
STA 1
XSK 1
JMP p-6
[FOR CHECKOUT PRINT INTERMEDIATE RESULTS BUT NOT ANSWER
SNS 1
JMP 4I [NORMAL OPERATION
LMB 1[PRINT ARRAY
JMP 20
JMP 4I
#5R XXX [DATA 1 REAL
XXX
XXX
#5J XXX [DATA 1 IMAG
XXX
XXX
#2R XXX [DATA 1 REAL
XXX
XXX
#2J XXX [DATA 2 IMAG
XXX
XXX
#1C XXX [COSINE
XXX
XXX
#2S XXX [SINE
XXX
XXX
#3R XXX [TEMP AND Ru<N|2 RESULT
XXX
XXX
#3J XXX [IMAG
XXX
XXX
#4R XXX [Ru>N|2 RESULT
XXX
XXX
#4J XXX [IMAG
XXX
XXX
#1Z 0000
0000
0000 [ZERO
-10  [CONST 1|512
2000
0000
[ENTRY TO SHUFFLE
#5N SET i 1
2000
JMP p+3
1
#3L LDA i 1
CLR
ADD 1
BCL i [MASK ADDRESS BITS
6000
STC 2L+2
SET i 2
-13
#2L ROL 1
SRO i
XXX
ADD 3L-1
XSK i 2
JMP 2L
ADA i [ADD BACK REFR
2000
STC 2
UMB 15
LDA 1
UMB 12
STA 2
UMB 16
LDA 1
UMB 13
STA 2
UMB 17
LDA 1
UMB 14
STA 2
UMB 15
LDA i 1
UMB 12
STA i 2
UMB 16
LDA 1
UMB 13
STA 2
UMB 17
LDA 1
UMB 14
STA 2
XSK 1
JMP 3L
SNS 1
JMP 2A [NORMAL OPER
SET i 2
2000
UMB 12 [MAKE ARRAYS SAME
LDA 2
UMB 15
STA 2
UMB 13
LDA 2
UMB 16
STA 2
UMB 14
LDA 2
UMB 17
STA 2
XSK 2
JMP p+4
LMB 1 [PRINT THE SHUFFLED ARRAY
JMP 20
JMP 2A
LDA i 2 [INDEX
CLR
JMP p-23
[ARRAY SWITCHED
[FLOD-1R
[SUBTRACT, FLOAT, FIX
$1245
[ENTER SUBTRACT
#1S CLR
ADD 0
JMP 1X-2
LDA 2
STC 1M+112
LDA i2
COM
STC 1M+113
LDA i 2
COM
STC 1M+114
SET i2
1M+112
JMP 1A+3
[FLOAT INTEGER
#1I LDA i
26
APO
[FLOAT FRACTION
#1F CLR
STC 1M+112
STC 1N+15
ADD 0
JMP 1X-1
LDA 2
STC 1N+6
ADD 1M+112 [EXPONENT
STA 3
LDA i 2
ROL 1
STC 1N+1
ADD 1N+6
JMP 1A+73
[FIX INTEGER
#1J LDA i
-26
APO i
[FIX FRACTION
#1G CLR
STC 1M+60
STC 1N+15
ADD 0
JMP 1X-1
[CONTAINS ZERO ON RETURN
COM
ADD 1M+60
ADA 2
APO i
JMP 1H [OVERFLOW
XSK i 2
NOP
JMP 1A+111
STA 3
JMP 1R-7
[FLOD
[KERNEL
[PORTIONS FOLLOWING
[THIS POINT
[INTERACT STRONGLY
[WITH ONE ANOTHER
$1326
[ENTER MULTIPLY
#1M CLR
ADD 0
JMP 1X-2 [SET INDEX REGISTERS
LDA 2 [COMPUTE EXPONENT
ADA 1
JMP 1Q+3
STA 3
LDA i 2 [SET UP MULTIPLICANDS
STC 1M+113 [LEFT HALF
LDA i 2
STC 1M+112 [RIGHT HALF
LDA i 1
MUL [L1 X L2
4000+1M+113
AZE i
JMP 1H+1 [PRODUCT ZERO
LZE
COM
STC 1N+6
ZTA
STC 1N+1
LDA 1
MUL [L1 X R2
4000+1M+112
LZE
COM
ADM 
1N+1
ZTA
STC 1M+60
LZE
COM
STC 1N+15
LDA i 1
MUL [R1 X R2
4000+1M+112
LZE
COM
ADM 
1M+60
LDA 1
MUL [R1 X L2
4000+1M+113
LZE
COM
STC 0
ZTA
LAM i
0 [1M+60
BCL i 
3777
ROL i 2
LAM 
0
LAM
1N+1
BCL i
3777
ROL i 2
LAM 
1N+6
LDA
1M+60
ROL i 2
LDA 
1N+1
ROL i 1
STC 1N+1
[ CLEAR LINK
ROL i 1 [1M+104
JMP 1N [NORMALIZE
LDA i
-1
JMP 1Q+2 [DECREM EXPONENT
JMP p-4
[TEMPORARY
[STORAGE
0 [1M+112
0
0
[NORMALIZE STEP
#1N LDA i
0
LAM
p-2
SCR 14
LDA i
0
LAM
p-2
OVF
JMP 0
ROR i 1
BCO i
0
STA i 3
ROL i 1
ZTA
BCO
p-5
ROL 1
ROR i1
STA i 3
[NORMAL EXIT
#1R NOP      [*  #1R LDA i 4
JMP p    [*      JMP 4
[DIVIDE
#1D CLR
ADD 0
JMP 1X-2
[COMPUTE EXPONENT
LDA 2
COM
ADA 1
STA 3
JMP 1Q+3
JMP 1Q
[SET SIGN
LDA i 2
BCO i 1
SCR 14
STC 1N+15
[CLEAR QUOTIENT
STC 1N+1
STC 1N+6
LDA 2
AZE i
JMP 1H [DIVISOR ZERO
APO i
COM
BCL i 
4000 [1D+25
[LEFT DIVISOR
STC 1D+37
LDA i 2
APO i
COM
[CLEAR SIGN AND ADD +1
ADD 1D+25
ROL i 1
ROR 1
[RIGHT DIVISOR
STC 1M+112
LAM i
0 [1D+37
LDA 1
AZE i
JMP 1H+1
APO
COM
[LEFT DIVIDEND
STC 1D+100
LDA i 1
APO
COM
[RIGHT DIVIDEND
STC 1M+113
JMP 1D+105 [TRIAL SUB
APO
JMP p+10
LDA i
-1 [CONSTANT
JMP 1Q+2
JMP 1D+73 [DIVIDE LOOP
JMP 1D+105 [TRIAL SUB
APO i
JMP 1D+73
[SUBTRACTION SUCCEEDED
ROL i 1
STC 1D+100
ZTA
ROL 1
BCL i 
4000
JMP 1D+102
[SUBTRACTION FAILED
CLR [1D+73
ADD 1M+113
SCR 12
ADD p+2
ADM i
0 [1D+100
ZTA
STC 1M+113 [1D+102
JMP 1N
JMP 1D+61 [CLOSE LOOP
[TRIAL SUBTRACT SR
CLR [1D+105
ADD 1M+113
ADD 1M+112
ROR i 1
SCR i 12
ADD 1D+100
ADD 1D+37
JMP 0
[ENTER ADD
#1A CLR
ADD 0
JMP 1X-2
LDA 1
COM
ADA 2
OVF
JMP p+4
SCR 14 [1A+10
BCO i
-40
APO i
JMP 1A+101
STC 1M+60
STC 1N+15
[SET UP ADDITION
[REG1 POINTS TO
[ADDEND WITH LARGER
[EXPONENT
[
LDA 2
STC 1N+6 [SMALLER EXPONENT
LDA 1
STA 3 [LARGER EXPONENT
LDA i 2
LDA i1
AZE
JMP p+5
[ADDEND WITH LARGER
[EXPONENT IS ZERO
ADD 1N+6
STA 3
JMP 1A+101 [SWAP
[LOAD LEFT HALF
[OF LARGER
LDA 1
STC 1N+6
[LOAD RIGHT HALF OF LARGER
LDA i 1
ROL 1
STC 1N+1
[SCALE SMALLER
ADD 1M+60
JMP 1A+110
STC 1A+53
[CLEAR LINK
ROL i1
ZTA
ROL 1
ZZZ
ADD 1Q+1 [+1
[RIGHT + RIGHT
LAM 
1N+1
SCR 14
[LEFT + LEFT
LDA i
0    [1A+53
LAM
1N+6
OVF
JMP p+6
[OVERFLOW:INDEX EXP. AND SCALE RIGHT 1
JMP 1Q
LDA
1N+6
ROR i 1
JMP 1N+16 [EXIT
STC 0
LAM
1N+1
STC 0
LAM
1N+6
AZE    [1A+73
JMP 1M+104
SAE
1N+1
JMP 1M+104
JMP 1H+1 [ZER0 RESULT
[SWAP REG1 AND REG2
STC 1D+37 [1A+101
ADD 2
SET 2
1
STC 1
ADD 1D+37
JMP 0
[24-BIT SCALE
APO   [1A+110
COM   [1A+111
ADA i
-14
SCR i 1
ROL i 1
[IF SCALE>14, L=0
APO i
ADD p-4
APO i
CLR
ADD 1A+130
STC 1A+134
LDA 2
STC 1D+37
LDA i 2
ROL 1
SCR 14 [1A+130
ADD 1D+37
LZE i
SCR 14
SCR X  [1A+134
JMP 0
[SET INDEX REGISTERS
ADD 1Q+1 [+1
ADD 1Q+1
#1X ADD 1Q+1
STA
1R+1     [*    4
ADA i
-6003 [CONSTANT 1774
STC 3
LDA 3
STC 1
LDA i3
STC 2
LDA i3
STC 3
JMP 0
[ADJUST EXPONENT
#1Q LDA i
1
ADM 3
OVF
JMP 0
APO [SKIP IF UNDERFLOW
[ERROR STOP OR RETURN
#1H HLT      [*  #1H JMP 4
CLR
STA 3
STA i3
JMP 1R-1
[FLOD-1R
[5-8-69,21:00



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search