File TTYM

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

	*1400
/
/NON-RESIDENT TELETYPE HANDLER MODULE. HANDLES TTY
/INPUT AND OUTPUT, CONVERSION OF ASCII TO LINC CODE ON INPUT
/IF DESIRED, AND LINE PRINTER OUTPUT.
/
	-TIOM		/INDICATOR THAT THIS IS TTY MOD
	TAD	LINS	/LOAD OPERATE INSTR
	AND	(17)	/CLEAR ALL BUT LAST 4 BITS
	TAD	(-14)	/SUBTRACT 14
	SNA CLA		/IS RESULT 0?
	JMP	TYP	/YES - THIS IS TYPE
/
/A KBD OPERATE WAS GIVEN
/
KBD,	TAD	FFIM	/BIT 7 SET IF KST
	AND	C20
	SZA CLA		/SKIP IF NOT KST
	JMP	KBD1	/MUST HAVE BEEN
	TAD	LINS	/GET BACK INSTRUCTIONS
	AND	C20	/CLEAR ALL BUT I BIT
	SNA CLA		/WAS IT SET
	JMP	DOGOA	/YES
	JMS	IOWAIT	/WAIT FOR KBD TO BE STRUCK
	KW
KBD1,	TAD	IMOD
	SZA CLA
	JMP	KBD2
	JMS	ECHO	/NOP TO FLUSH ECHO
	TAD	ICHR
	JMP	KBD4
KBD2,	TAD	CASE
	SZA
	JMP	KBD4
	TAD	ICHR
	JMS	KTRNS
	JMS	ECHO	/NOP TO FLUSH ECHO
	TAD	CASE
	SZA CLA
	JMP	KBR2
	JMP	KBR1
KBD4,	DCA	LNCODE
	DCA	CASE
	JMP	KBR1
/
/A TYPE OPERATE WAS GIVEN
/
TYP,	TAD	LNCA
	JMS	TYPE
	JMP	DOGO
/
/LINE PRINTER SUBROUTINE
/
LTYPE,	AND	(377
	TAD	(-215
	SNA
	JMP	DOGO
	ISZ	LFLG
	JMP	LT3
	TAD	(3
	SNA
	JMP	LT1
	IAC	
	SNA CLA

JMP LT2 ISZ LCNT JMP .+5 SM1 TAD LNCP DCA LNCP JMP LT1 TAD TEMP LLB LSD JMP .-1 LCF CLC DCA LFLG TYPEX, CLA JMP I TYPE / /HANDLE SPACING ON LINE PRINTER / LT2, TAD C7 /FORM FEED LT1, TAD C10 /SINGLE SPACE LPR TAD (-204 DCA LCNT JMP TYPEX LT3, JMS IOWAIT LW / /GENERAL TYPE DISPATCHER / TYPE, 0 DCA TEMP TAD ODEV TAD (JMP I TYPJ+3 TYPJ, DCA .+2 TAD TEMP 0 TYPEX TYPE1 TYPE2 TYPEX TYPEX TYPEX LTYPE TYPEX / /ECHO INPUT CHAR ON INPUT DEVICE, NOT OUTPUT DEVICE / ECHO, 0 TAD ICHR DCA TEMP TAD ECHO DCA TYPE TAD IDEV JMP TYPJ-1 / /WAIT FOR AN I-O COMPLETION OF THE TYPE SPECIFIED. /ACCOMPLISHED BY BACKING UP THE LINC P, AND /REEXECUTING THE INSTRUCTION UPON OCCURANCE OF /THE I-O EVENT. / IOWAIT, 0 CLA TAD I .-2 DCA JOBS SM1 TAD LNCP DCA LNCP TAD (GO JMP WAITL / /END OF PAGE SIX OF NON-RESIDENT TTY MODULE /
*1600 / /TYPE THE CHARACTER IN THE AC / TYPE1, ISZ TFLG JMP TYP1W TLS JMP TYPEX TYP1W, JMS IOWAIT TW TYPE2, ISZ T2FLG JMP TYP2W T2LS JMP TYPEX TYP2W, JMS IOWAIT T2W KTRNS, 0 DCA KCHR DCA CASE TAD KCHR TAD (-333 SMA JMP KBDC TAD (333-301 SMA JMP KBDD /LETTER ADD 24. / /SPECIALS TEST / KBDC, CLA TAD (KTBL-1 DCA 10 TAD (-7 DCA TEMP TAD KCHR TAD I 10 SNA JMP KBDA ISZ TEMP JMP .-4 TAD (377-272 SMA JMP KBRET TAD (272-243 SPA JMP KBRET KBDA1, CLL RAR /SHIFT 1 RT & CLEAR LINK TAD (TTAB /ADD START ADDR OF TABLE DCA TEMP /PUT IN TEMP TAD I TEMP /GET CONT OF ADDR OF TBL SZL /RT OR LEFT HALF NEEDED? JMP .+4 /RIGHT HALF RTR /GET RTR / LEFT RTR / HALF AND (77 /CLEAR OTHER HALF SNA /ANYTHING THERE? JMP KBRET /NO!!!
TAD (-12-24 /A HELL OF A WAY TO SUBTRACT 36!! KBDD, TAD (24 /NOW ADD BACK 24 SMA /IS AC NEG? JMP KBDL /NOPE TAD (23 DCA CASE TAD (23 KBDL, DCA LNCODE /SAVE LINC CODE CHARACTER TAD (-215 /WAS IT RETURN? TAD KCHR SZA CLA JMP I KTRNS /NOPE TAD (212 /PUT 212 IN LF DCA LF JMP I KTRNS /EXIT KBDA, TAD 10 TAD (-KTBL+27 JMP KBDA1 KBRET, SM1 TAD LNCP /BACK UP THE LINC P REG. DCA LNCP KBR1, TAD FFIM /CLEAR KST AND (7757 IACF DCA FFIM KBR2, TAD LNCODE JMP DOGOA / /TRANSLATION TABLE. HOLDS CHARACTERS FOR ASCII CODES /243-271 PLUS CHARACTERS FROM SPECIALS TABLE. THE LATTER /ARE CODED BY ADDING 27 TO POSITION OF SPECIAL IN KTBL. FOR /NORMALS, POSITION IS TTAB + (C-243)/2. / TTAB, 3410 0527 3000 0 3206 3107 3312 1314 1516 1720 2122 2301 2426 0411 3525 KTBL, -212 /LINE FEED 212-215 /RETURN 215-240 /SPACE 240-275 /= 275-333 /[ 333-376 /ALTMODE 376-377 /RUBOUT KCHR, 0 / /END OF NON-RESIDENT TTY HANDLER MODULE. /



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