File L8SIM

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

*20
/LINC-8 SIMULATOR TRAP PROCESSOR, DEC-12-SI1B.
/
/COPYRIGHT 1969, DIGITAL EQUIPMENT CORP.
/MAYNARD, MASS.
/
/D. LANGBEIN, 27 MAY 1969
/REVISED 21 JULY 1969
/REVISED 8 AUGUST 1969
/
/OPERATION DEFINITIONS FOR LINC MODE ASSEMBLY
/OF PDP-8 MODE IOT INSTRUCIONS
KCCA=6032
KRSA=6034
KRBA=6036
TSFA=6041
TLSA=6046
RMFA=6244
/
/SOME LINC-8 DEFINITIONS
OPR=500
KBD=515
/
*20
	JMP	ST20	/BECOMES JMP INIT
	LDF	3
	LIF	2
	DJR
	JMP	20	/GO TO 20 IN SEGMENT 2
			/(04020)
/
/400 RESTART
RST400,	JMP	ST400	/BECOMES JMP INIT
	LDF	3
	LIF	2
	DJR
	HLT
	JMP	400	/GO TO 400 IN SEGMENT 2
			/(04400)
/
/START GUIDE
GUIDE,	JMP	INIT
	LDF	2
	RDC		/READ GUIDE START BLOCK
	7400		/INTO QUARTER 3,SEGMENT 2
	LDF	3
	LIF	2
	JMP	1400	/START GUIDE
/
/ERROR STOP
*130
ERR,	HLT		/UNIDENTIFIED INSTRUCTION
	JMP	RET	/IN AC AT HLT. RETURNS TO
			/USER W AC CLEARED WHEN
			/CONTINUE PRESSED.
/
/MISC CONSTANTS
*134
PC,	0		/ADDRESS OF TRAPPED
			/INSTRUCTION
M70,	70
ONE,	1
/
/TRAP ENTRY AND MACHINE STATE SAVING
*141
	STC	AC	/SAVE AC
	ROL  I	1	/SAVE LINK
	STC	LC
	QAC		/GET H O 11 Q REG BITS
	ROL	1
	QLZ		/GET L O BIT
	ADD	ONE
	STC	Q	/SAVE IT
	ADD ONE
	FLO		/GET OVERFLOW BIT IF ON
	CLR
	STC	OVL	/SAVE IT.0=OFF. 1=ON
	SET	17	/SAVE LOCATION 0
	0
/
/INSTRUCTION IDENTIFICATION.
	PDP
	PMODE
FETCH,	RIB		/READ INTERRUPT BUFFER
	AND	M70	/GET INSTRUCTION FIELD
	TAD	CDFX	/MAKE IT INTO A CDF N
	DCA	.+1
	7402		/BECOMES CDF N
	STA		/SET AC TO -1
	TAD	140	/COMPUTE ADDRESS OF
	DCA	PC	/TRAPPED INSTRUCTION
	TAD  I	PC	/OBTAIN INSTRUCTION
			/CAUSING TRAP
CDFX,	CDF		/SET DATA FIELD TO 0
	LINC
	LMODE
	SAE  I		/IS IT KBD?
	KBD
	SKP		/NO
	JMP	DOKBD	/YES.
	SAE  I		/IS IT KBD I?
	KBD  I
	SKP		/NO.
	JMP	DOKBD	/YES.
	SAE  I		/OPR I 14?
	OPR  I	14
	SKP		/NO
	JMP	OP14	/YES
	SAE  I		/OPR 14?
	OPR	14
OTHERS,	JMP	ERR	/PUT JMP TO
			/CHECKS FOR OTHER
			/INSTRUCTIONS HERE.
OP14,	LDA		/OUTPUT. GET CHARACTER
	AC
	IOB
	TLSA		/OUTPUT IT
	IOB
	TSFA		/CHECK IF DONE
	JMP	.-2
/
/RETURN TO USER PROGRAM
RET,	LDA  I		/EXIT TRAP PROCESSOR
OVL,	0
ADD	OVN	/3777 CAUSES OV
	LDA  I		/GET LINK
LC,	0
	ROR  I	1	/RESTORE LINK
	SET	0	/RESTORE LOCATION 0
	17
	LDA  I		/RESTORE Q REGISTER
Q,	0
	ROR	14	/LOADS Q REGISTER
			/FROM AC
	LDA		/OBTAIN ADDRESS FOR RETURN
	140		/TO USER PROGRAM
	BSE  I
	JMP
	STC	RTJ
	ADA  I		/RESTORE AC
AC,	0
	DJR		/INHIBIT ZERO CLOBBERING
	IOB		/IN USERS MEMORY SEGMENT
	RMFA		/RESTORE INTERRUPT BUFFER
RTJ,	HLT		/BECOMES JMP TO USER PROG.
OVN,	3777
/
/KBD PROCESSING
DOKBD,	ROR  I	5	/PUT TRAPPED INSTRUCTION
			/I BIT INTO COMPUTER
			/LINC BIT
	LDA  I		/GET LEFTOVER CHAR,
UPC,	0		/IF ANY
	AZE		/LEFTOVER CHARACTER?
	JMP	LOO	/YES. DELIVER IT TO USER
LP,	KST  I		/NO. FRESH CHARACTER?
	JMP	GRC	/YES.  GO READ IT
	LZE		/NO. PAUSE?
	JMP	LP	/YES. HANG IN THERE
			/TILL KEY STRUCK.
	JMP	LOO	/NO. RETURN TO USER W. AC
			/CLEARED
/
/READ AND TRANSLATE A KEYBOARD CHARACTER
GRC,	CLR
	IOB
	KRSA		/READ A CHARACTER
	ADA  I		/CALCULATE CHARACTER CON-
	-175		/VERSION TABLE INDEX IN 
	ROR	1	/HALF WORDS
	BCL  I
	3700
	ADA  I		/ADD BASE ADDRESS OF TABLE
	TAB
	STC	.+2	/HALF-WORD PICKUP ADDRESS
	LDH		/GET THE LINC CHARACTER.
	0
	SHD  I		/IS IT AN UNDEFINABLE?
	7600
	JMP	RETX	/YES. ECHO UPARROW
	ADA  I		/IS IT UPPER CASE?
	-55
	APO
	JMP	LOW	/NO.
/
/ITS AN UPPER CASE CHARACTER
	ADA  I		/MAKE IT LINC CODE
	11
	APO		/DELETE MINUS ZEROES
	CLR
	STC	UPC	/SAVE IT FOR USE AFTER
			/CASE CHARACTER IS OUTPUT
	LDA  I		/GET CASE CHARACTER
	23
	STC	AC	/STORE FOR TRANSFER
	JMP	RET	/EXIT
/
/LOWER CASE CHARACTERS
LOW,	ADA  I		/MAKE IT LINC CODE
	55
	APO
	CLR
LOO,	STC	AC	/STORE IT FOR TRANSFER
	STC	UPC	/CLEAR LEFT OVER BUFFER
	IOB
	KRBA		/READ CHAR AND
			/CLEAR KEYBOARD FLAG
LOO1,	JMP	PRINT	/ECHO
	SAE  I		/C. R.?
	215
	JMP	RET	/NO. EXIT
	LDA  I		/YES. THROW IN
	212		/A FREE LINE FEED
	JMP	PRINT
	JMP	RET
/
/ILLEGAL CHARACTER
RETX,	LDA  I	/PRINT UP ARROW
	336
	JMP	PRINT
	IOB		/ECHO OFFENDING
	KRBA		/CHARACTER.
	JMP	PRINT
	COM
	ROL  I	1	/SET LINK BIT
			/TO KEYBOARD "PAUSE" VALUE
	JMP	LP
/
/PRINT A CHARACTER
/ENTER W ASCII CHAR IN AC
PRINT,	PDP
	PMODE
	TLS
	TSF
	JMP	.-1
	LINC
	LMODE
	JMP	0
/INITIALIZE THE TRAP PROCESSOR
INIT,	CLR
	STC	UPC	/CLEAR LEFT OVER CHARACTER
	AXO		/BOILER PLATING FOR GUIDE
			/RESTART
	SFA		/GET SPEC. FNS. REG.
	BSE  I		/SET TRAP ENABLE BIT
	1000
	ESF		/READ IT BACK OUT
ENDX,	JMP	0	/RETURN
*400
	JMP	RST400	/GO TO START 400
			/CONTROL ROUTINE
/
/
TAB,	2323	/ALTMODE-CASE/ALTMODE-CASE
	1376	/RUBOUT-DEL/LEADER-NULL
	7676	/NOT USED
	7676	/N. U.
	7676	/N. U.
	7676	/BELL/N. U.
	7656	/TAB/L. F. -META
	7676	/N. U.
	1276	/CR-EOL/N. U.
	7676	/N. U.
	7676	/N. U.
	7676	/N. U.
	7676	/N. U.
	7676	/N. U.
	7676	/N. U.
	7676	/N. U.
	2376	/ALTMODE-CASE/N. U.
	7614	/N.U./SPACE-SPACE
	7676	/EXC.PT/DBL.QUOTES
	2265	/NUMBER SIGN/DOLLAR SIGN-
	6215	/PERCENT-P.C/AMPERSAMD-AMPERSAND
	1676	/APOSTROPHE-AP./OP PAREN
	7676	/CL PAREM/*
	2063	/PLUS-+/COMMA-,
	1764	/MINUS--/PERIOD-.
	2100	/SLASH-SLASH/ZERO-0
	0102	/1/2
	0304	/3/4
	0506	/5/6
	0710	/7/8
	1176	/9/N.U.
	7676	/SEMICOLON/<
	6176	/EQUAL SIGN-=/>
	7676	/?/AT SIGN
	2425	/A/B
	2627	/C/D
	3031	/E/F
	3233	/G/H
	3435	/I/J
	3637	/K/L
	4041	/M/N
	4243	/O/P
	4445	/Q/R
	4647	/S/T
	5051	/U/V
	5253	/W/X
	5455	/Y/Z
	6621	/LEFT.BRACK/BACK SLASH
	7676	/RT.BRACK/UP ARROW
TABE,	7676	/BACK ARROW/N.U.
/
/INITIAL START 20
ST20,	JMP	SETUP
	JMP	INIT
	JMP	GOMAN
/
/INITIAL START 400
ST400,	JMP	SETUP
	JMP	INIT	/INITIALIZE TRAP PROCESSOR
	LDF	3
	HLT
GOMAN,	LIF	0
	JMP	GUIDE	/THIS LANDS IN FIELD 0
/TRAP PROCESSOR RELOCATOR
SETUP,	SET	17
	0
	LDA  I	/SET UP RESTARTS
	JMP	INIT
	STA		/SET UP 20 RESTART
	20
	STC	RST400	/SET UP 400 RESTART
	LDF	0	/SET DATA FIELD TO 0
	SET  I	1	/SET UP MOVE COUNT
	-TABE+17
	SET  I	2	/SET TO-ADDRESS
	2017		/BIT 1 (2-010) SAYS USE DF
	SET  I	3	/SET FROM-ADDRESS
	17		/BIT 1 (0-000) SAYS USE IF
	LDA  I	3	/INCREM. 3.GET (3)
	STA  I	2	/INCREM.2.STORE (2)
	XSK  I	1	/INCREM. 1. SKIP IF 1=1777
	JMP	.-3	/1 NOT 1777. LOOP AGAIN
	SET  I	2	/SET UP FOR LEFT
	2677		/SWITCHES RESTART
	SET  I	1	/20 JMP GUIDE-S
	-20
	LDA  I
	JMP	GUIDE
	STA  I	2	/INC 2. STORE INTO (2)
	XSK  I	1	/END CHECK
	JMP	.-2
	JMP	17



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