File GERDY.PA (PAL assembler source file)

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

/PETER ROBERT GERDEMAN  562-80-2945
/EECS 415-001  PROF. J. T. CORDARO
/TERM PROJECT (PROB.#5) SPRING 1976
/PART I:  INITIALIZE & MAIN PROGRAM.
FIXMRI FJMP=0000
FIXMRI FADD=1000
FIXMRI FSUB=2000
FIXMRI FMPY=3000
FIXMRI FDIV=4000
FIXMRI FGET=5000
FIXMRI FPUT=6000
       FISZ=0000
       FEXT=0000
       FSQU=0001
       FFIX=0013
       FLOT=0014
       FCDF=7001
       FSMA=7710
       IR1=0016
       IR2=0017
*200
START,	CLA CLL
	TAD M3
	JMS I TIT	/TITLE OUTPUT.
WTF,	TAD M1
	JMS I TIT	/PRINT QUES: WHAT NOW ?
	CLA CLL
	KSF
	JMP .-1
	KRB
	TLS
	TAD M323	/SAMPLE ?
	SNA		/NO, THEN WHAT ?
	JMP SAM		/YES, THEN GO TO SAM.
	TAD K17		/DISPLAY ?
	SNA		/NO, THEN MUST BE DONE.
	JMP DIS
	JMS I SP	/LET'S SPACE IT OUT A BIT.
	CLA
	TAD KEY1
	DCA I QU	/ADDR. OF TEXT TO TP ROUT.
	TAD M1		/JUST ONE LINE OF TEXT.
	JMS I TIT
	HLT
SAM,	TAD CH		/ADDR. OF END-OF-IT.
	DCA I QU
	JMS I SP
	JMS I SR	/ADDR. OF SAMPLE ROUT.
	CLA
	TAD PI
	DCA I QU	/WHAT ELSE DOES HE WANT TO DO ?
	JMP WTF
DIS,	JMS I COR	/ADDR. OF COPY ROUT.
	JMS I SP
	TAD NN
	CDF 10
	DCA I X1
	TAD K12
	DCA I X2
	CDF 00
	CIF 10
	JMS I FR	/ADDR. OF FFT ROUT.
	CDF 00
	JMS I COER	/ADDR. OF COEFF. ROUT.
	JMS SYMTRY	/FILL REST OF COEFF. FLD.
	CLA CLL
	JMS I DR	/ADDR. OF DISP. ROUT.
	CLA
	TAD PI
	DCA I QU
	JMP WTF
SYMTRY,	0000		/SUBR. TO FILL COEFF FLD.
	CLA CLL
	TAD LL
	TAD NN
	TAD NN
	TAD M1
	DCA BCKW	/BACKWARDS STEP COUNTER.
	TAD LL
	TAD NN
	TAD M1
	DCA IR1		/FORWARD STEP COUNTER.
	TAD NN
	RAR		/FOR N DIV 2 SAMPLES.
	CIA
	DCA CNT		/N DIV 2 COUNTER.
	CDF 20		/GET-EM OUT OF FIELD TWO.
YESSIR,	TAD I IR1
	DCA I BCKW
	TAD BCKW
	TAD M1
	DCA BCKW
	ISZ CNT		/FINISHED WITH SYMMETRY ?
	JMP YESSIR	/NO-WAY....
	CDF 00		/YEP.
	JMP I SYMTRY
BCKW,	0000
CNT,	0000
X1,	0020
X2,	0021
TIT,	1000
M323,	7455
K17,	0017
KEY1,	1551
QU,	1060
CH,	1320
SR,	0600
PI,	1266
COR,	0400
K12,	0012
FR,	0150
COER,	0423
DR,	3400
SP,	1052		/LINK TO SUBR. CRLF.

/PART II: COPY & COEFF. ROUTINES. *400 COPY, 0000 /SUBR. TO SAVE ORIG. SAMPLES. CLA CLL TAD LL /START LOC. OF SAMP. STOW. DCA LOC TAD NN /NUMBER OF SAMPLES. CIA DCA CNTR /INITIALIZE COUNTER. L1, CDF 20 TAD I LOC CDF 10 DCA I LOC ISZ LOC ISZ CNTR /FINISHED COPYING ? JMP L1 ZERFLD, DCA I LOC /ZERO OUT REST OF FIELD. ISZ LOC JMP ZERFLD CDF 00 JMP I COPY COEFF, 0000 /SUBR. TO SOLVE FOR FFT COEFF. CLA CLL TAD K1575 /A NICE PLACE TO WORK ON FLOTS. DCA IR2 DCA GREAT DCA GREAT+1 DCA GREAT+2 TAD NN RAR CIA DCA CNTR TAD LL TAD M1 DCA IR1 L2, CDF 10 TAD I IR1 /GET AN INTEGER. DCA 44 CDF 00 JMS I 7 /NOW LET'S GET TO IT. FLOT /FLOAT IT. FSQU /SQUARE IT (RE OF SI). FPUT TEMP /SAVE TO ADD WITH IM**2. FEXT CDF 10 TAD I IR1 DCA 44 CDF 00 JMS I 7 FLOT /NOW GET IM OF SI. FSQU FADD TEMP FPUT TEMP FGET GREAT FSUB TEMP /GOT-TO KEEP THE BIGGIE. FSMA /AND WHO IS IT ? FJMP L3 FGET TEMP FPUT GREAT L3, FGET TEMP /STORE IN A CONVENIENT PLACE. FCDF 30 FPUT I IR2 FCDF 00 FEXT ISZ CNTR JMP L2 CLA TAD K1575 DCA IR1 TAD LL TAD NN TAD M1 DCA IR2 TAD NN RAR CIA DCA CNTR L4, JMS I 7 FCDF 30 FGET I IR1 /LET'S RETRIEVE THOSE FLOTS. FCDF 00 FDIV GREAT FMPY SCALE /MULT. BY 2047 BASE 10, FFIX /NOW READY TO INTO DISP. FLD. FEXT CLA TAD 44 CDF 20 DCA I IR2 CDF 00 ISZ CNTR JMP L4 JMP I COEFF LOC, 0000 CNTR, 0000 K1575, 1575 TEMP, 0000;0000;0000 SCALE, 0013;3777;0000 GREAT, 0000;0000;0000
/PART III: SAMP. & STOW. ROUTINES. *600 SAMPLE, 0000 /SUBR. ADC SAMPLER ROUT. TAD 777 /START ADDR. OF VAR. LOC. DCA IR2 /INDEX POINTER. TAD M6 DCA QCOUNT TAD M1 JMS I 776 JMS INPUT /SUBR. SAVE ANSWERS. DCA I IR2 /STORE VARIABLE. ISZ QCOUNT JMP .-5 TAD K /SET DATA FIELD. CLL RAL RTL TAD K6201 DCA FOX TAD L DCA LL TAD N DCA NN TAD N /SET SAMPLE NUMBER. CIA DCA N TAD T /SET TIME INTERVAL. CIA DCA T TAD P SPA JMP .+5 CLA TAD KCIA DCA POLAR JMP .+4 CLA TAD KNOP DCA POLAR 6500 /CLEAR ADC FLAG. 6506 /SET CHANNEL 0. NOP NOP NOP NOP INPUL, 6505 /START CONVERSION. 6501 /WAIT FOR DATA JMP .-1 / READY FLAG. POLAR, NOP TAD MONEV SPA /SAMPLE >= +1 VOLT ? JMP INPUL /NO, GET ANOTHER PULSE. CLA /YES. TAD M /SELECT CHANNEL M. 6506 NOP NOP NOP NOP INSAM, 6505 /START CONVERSION. 6501 /WAIT FOR DATA JMP .-1 / READY FLAG. JMP SHIFT /SHIFT OUT ZEROS SUBR. FOX, 6201 /SAMPLE FIELD STORAGE. DCA I L /STORE SAMPLE IN LOC. L. CDF 01 /REVERT TO NORMAL. ISZ L /INCREMENT LOC. POINTER. ISZ N /FINISHED WITH SAMPLES ? JMP TIMER /NO, GO TO TIMER SUBR. JMS I 775 /YES, THEN CRLF AND TAD M1 / PRINT ON TELEPRINTER JMS I 776 / ALL FINISHED. JMP I SAMPLE /RETURN TO MAIN. TIMER, CLA CLL /TIMER SUBR. TAD T /DESIRED MILLISEC. DCA COUNT2 TAD M190 DCA COUNT1 NOP ISZ COUNT1 JMP .-2 ISZ COUNT2 JMP .-6 JMP INSAM /FINISHED WITH TIMER. SHIFT, SMA /SHIFT OUT ZEROS SUBR. JMP .+5 CIA CLL RTR CIA JMP FOX /FINISHED SHIFTING. CLL RTR NOP NOP NOP JMP FOX /FINISHED SHIFTING. INPUT, 0000 /INPUT SUBR. CLA CLL DCA CONST KSF /WAIT FOR DATA JMP .-1 / READY FLAG. KRB TLS /ECHO CHAR. TO TP. TAD M215 SNA /IS CHAR. A CR.? JMP .+14 /YES, THEN DONE. TAD K215 /NO, THEN RESTORE. TAD M260 /IS CHAR. A NUMBER ? SPA JMP .+13 /NO, THEN MUST BE POLARITY. DCA TEMPO /YES, THEN SAVE IN TEMPO. TAD CONST CLL RAL /MAKE ROOM FOR NEW RTL / NUMBER. TAD TEMPO /NOW UPDATE NUMBER. DCA CONST JMP .-21 /GET REST OF NUMBER. JMS I 775 /SUBR. CRLF. TAD CONST JMP I INPUT /FINISHED WITH THIS INPUT. TAD K3 /SETS MY POLARITY FLAG. JMP I INPUT /FINISHED WITH THIS INPUT. K6201, 6201 KNOP, 7000 KCIA, 7041 COUNT1, 0000 COUNT2, 0000 TEMPO, 0000 CONST, 0000 1052 /LINK TO SUBR. CRLF. 1000 /ADDR. OF TITLE SUBR. 0164 /START LOC. OF VAR.
/PART IV: TITLE ROUTINE. *1000 TITLE, 0000 /TITLE AND QUESTIONS SUBR. DCA LCOUNT /# OF LINES OF TEXT TO PRINT. TLS TAD M2 DCA ORDER JMS CRLF TAD ADDP /ADDRESS POINTER OF TEXT. DCA IR1 /INDEXING REGISTER. REST, TAD I IR1 DCA WORK TAD WORK BSW INCODE, AND MASK SNA JMP ENDOLN TAD M40 SPA JMP CONT2 CONT1, TAD K240 PRINT, JMS TYPE TAD WORK ISZ ORDER JMP INCODE CLA TAD M2 DCA ORDER JMP REST CONT2, TAD K340 JMP PRINT ENDOLN, JMS CRLF ISZ LCOUNT JMP REST JMS CRLF TAD IR1 DCA ADDP JMP I TITLE /FINISHED WITH TITLE SUBR. TYPE, 0000 /SUBR. TYPE ON TP. TSF JMP .-1 TLS CLA CLL JMP I TYPE CRLF, 0000 /SUBR. CARRIAGE RETURN TAD K215 / AND LINE FEED. JMS TYPE TAD K212 JMS TYPE JMP I CRLF ADDP, 1177 /ADDR. OF POINTER LOC. LCOUNT, 0000 ORDER, 0000 WORK, 0000
/PART V: ACTUAL TEXT USED. *1200 TEXT / PETER R. GERDEMAN 562-80-2945 / TEXT / EECS 415-001 SPRING SEMESTER 1976 / TEXT / ADC SAMPLER AND STORAGE: PROB. #5 / TEXT / SAMPLE ADC (S) OR DISPLAY DATA (D) OR HALT (H) ? / TEXT / NUMBER OF SAMPLES TO BE STORED ? / TEXT / TIME INTERVAL (MILLISEC) IN SAMPLING ? / TEXT / CHANNEL NUMBER DESIRED FOR INPUT SAMPLES ? / TEXT / FIELD NUMBER DESIRED FOR SAMPLE STORAGE ? / TEXT / LOCATION NUMBER DESIRED FOR INPUT STORAGE ? / TEXT / DESIRED POLARITY (+ OR -) OF START PULSE ? / TEXT / FINISHED WITH SAMPLING AND STORAGE OF DATA. / TEXT / THAT'S ALL FOR NOW ..... /
/PART VI: PAGE ZERO VARIABLES. *145 M1, 7777 M2, 7776 M3, 7775 M6, 7772 M40, 7740 M190, 7502 M215, 7563 M260, 7520 MONEV, 7464 MASK, 0077 K1, 0001 K3, 0003 K212, 0212 K215, 0215 K240, 0240 K340, 0340 N, 0000 T, 0000 M, 0000 K, 0000 L, 0000 P, 0000 NN, 0000 LL, 0000 QCOUNT, 0000
/PART VII: LINKAGE FOR FFT ROUTINE. FIELD 1 *122 0000 /SUBR. FFT LINK-UP. CDF 10 JMS I 60 JMS I 54 CIF 00 JMP I 122



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