/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