File CLTR

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

/
/COULTER S TEST PROGRAM
/
/W.S.STEWART, MERCK AND CO.INC. 8/13/70
/
/
/SOME MORE IOTS
/
	CLSF=6131	/CLOCK SKIP ON FLAG
	CLON=6132	/CLOCK ON
	FINT=6431	/FIRE ONE SHOT
	SFLG=6441	/SKIP ON COULTER FLAG
	SWRD=6446	/TAKE IN WORD AND CLEAR FLAG
/
/CHECK IF CLOCK INTERRUPT
/
	*1
	CLSF		/CHECK CLOCK FLAG
	JMP	PRINT	/NOT SET, CONTINUE CHAIN
	CLON		/SET, CLEAR INTERRUPT
	FINT		/AND FIRE ONE SHOT
	JMP 	RETURN	/THEN EXIT
/
/FLAG AND POINTER STORAGE LOCATIONS
/
	*10
WORD,	0		/LOCATION FOR NEXT WORD
CHAR,	0		/NEXT CHAR TO PRINT
	*20
PRFLG,	0		/PRINT FLAG - 7777 IF SET
COUNT,	0		/COUNT OF READINGS
BUFFI,	0		/BUFFER USED FOR INPUT
BUFFO,	0		/BUFFER USED FOR OUTPUT
BUFFDN,	0		/BUFFER DONE FLAG - 7777 IF SET
C800,	777		/CONSTANT
C200,	-200		/CONSTANT
INDEX,	0		/USED AS COUNT INDEX LOCATION
TEMP,	0		/TEMPORARY STORAGE
LINE,	0		/COUNTS LINES
	*100
/
/PROGRAM WAIT AREA
/
RETURN,	TAD	PRFLG	/GET PRINT FLAG
	CIA
	TAD	BUFFDN	/ADD TO BUFFER DONE FLAG
	SNA		/RESULT ZERO
	JMP	WAIT	/YES, NO PROBLEMS
	SMA CLA		/RESULT NEGATIVE
	JMP 	WAIT	/NO, NO PROBLEMS
	JMP	BDONE	/YES, WE MUST PRINT A BUFFER
WAIT,	ION
	CLA
	JMP	.
/
/CHECK KEYBOARD FLAG
/
KBD,	KSF		/IS KEYBOARD FLAG SET
	HLT		/NO, WE MUST HAVE ANOTHER DEVICE
	KRB		/GET CHAR
	TAD 	(-203
	SZA CLA		/IS IT CONTROL C
	JMP 	RETURN	/NO, IGNORE
	JMP I	.+1	/YES, GO TO MONITOR
	7600
/
/END OF PAGE ZERO

*200 / /INITIALIZE / CLON /TURN ON CLOCK CLA DCA PRFLG /CLEAR PRINT FLAG DCA BUFFDN /CLEAR BUFFER DONE FLAG DCA COUNT /CLEAR WORD COUNT IAC /ONE TO AC DCA LINE /INITIAL LINE COUNT TO ONE TAD (577 DCA BUFFI /SET INPUT BUFFER TAD (577 DCA WORD /SET WORD ADDRESS TAD C800 DCA BUFFO /SET OUTPUT BUFFER JMP NEWLN /STORE FIRST LINE NBR / /CHECK PRINTER FLAG / PRINT, TSF TCF /CHECK AND CLEAR PRINTER FLAG JMP CLTR /NOT SET, CHECK COULTER S / /PRINTER FLAG WAS SET / ISZ PRFLG /IS PRINT FLAG SET JMP BDONE /NO TAD I CHAR /GET A CHARACTER TPC /PRINT IT TAD (-212 /SUBTRACT LINE FEED SNA CLA /WAS IT JMP RETURN /YES, BUFFER IS DONE CONT, CMA CLA /7777 TO AC DCA PRFLG /SET PRINT FLAG JMP RETURN /EXIT / /END OF BUFFER / BDONE, ISZ BUFFDN /ANOTHER BUFFER READY JMP RETURN /NO, EXIT TAD BUFFO /GET BUFFER INDICATOR CIA /MAKE 2S COMPLEMENT TAD C800 /ADD 800 SNA /WAS BUFFER ON 800 TAD C200 /YES, SUBTRACT 200 TAD BUFFO /NO, ADD 200 DCA BUFFO /BUFFER NOW SET TAD BUFFO DCA CHAR /SET UP CHARACTER INDEX TAD I CHAR /GET CHAR TLS /PRINT IT JMP CONT /CONTINUE / /END OF PAGE ONE
*400 / /CHECK COULTER S / CLTR, SFLG /SKIP ON COULTER FLAG JMP KBD /NOT SET, CHECK KEYBOARD / /COULTER FLAG WAS SET / SWRD /TAKE IN WORD AND CLEAR FLAG BCD1, RAL /ROTATE IT ONE LEFT DCA TEMP /SAVE IT TAD (-3 DCA INDEX /SET INDEX TO -3 BCD, TAD TEMP /GET CHAR RTL /PUT NEXT DIGIT IN LOW ORDER RTL DCA TEMP /SAVE RESULT TAD TEMP AND (17 /LOOK AT FOUR LOW ORDER BITS TAD (260 /MAKE IT ASCII CHAR DCA I WORD /STORE IT IN BUFFER ISZ INDEX /THAT LAST CHAR JMP BCD /NO TAD COUNT /GET READING COUNT TAD (-7 SNA CLA /IS IT SEVENTH READING JMP LAST /YES TAD (240 DCA I WORD /STORE A SPACE TAD (240 DCA I WORD /ANOTHER TAD COUNT IAC DCA COUNT /INCREMENT WORD COUNT JMP RETURN / /7TH READING FOUND / LAST, DCA COUNT /CLEAR WORD COUNT TAD (215 /CARRIAGE RETURN DCA I WORD /PUT IN BUFFER TAD (212 /LINE FEED DCA I WORD /PUT IN BUFFER CMA /7777 TO AC DCA BUFFDN /SET BUFFER DONE FLAG TAD LINE IAC DCA LINE /INCREMENT LINE COUNT / /SWITCH TO NEW BUFFER / TAD BUFFI /GET BUFFER INDICATOR CIA /MAKE 2S COMPLEMENT TAD C800 /ADD 800 SNA /WAS BUFFER ON 800 TAD C200 /YES, SUBTRACT 200 TAD BUFFI /NO, ADD 200 DCA BUFFI /BUFFER NOW SET TAD BUFFI DCA WORD /RESET WORD POINTER / /SET UP NEW LINE / NEWLN, DCA INDEX /CLEAR COUNT TAD LINE /GET LINE COUNT LOOP1, TAD (-144 /SUBTRACT 100 SPA /RESULT POSITIVE JMP .+3 /NO ISZ INDEX /YES, DO AGAIN JMP LOOP1 TAD (144 /ADD 100 BACK DCA TEMP /SAVE TAD INDEX /ROTATE RESULT RTL CLL RTL CLL DCA INDEX /SAVE TAD TEMP /GET PARTIAL RESULT LOOP2, TAD (-12 /SUBTRACT 10 SPA /RESULT POSITIVE JMP .+3 /NO ISZ INDEX /YES, INCREMENT JMP LOOP2 /AND CONTINUE TAD (12 /ADD 10 BACK DCA TEMP /SAVE TAD INDEX /GET COUNT AND ROTATE RTL CLL RTL CLL TAD TEMP /ADD LAST DIGIT JMP BCD1 /PUT WORD IN STORAGE / /END OF PAGE 2 AND PROGRAM / $



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