File READER2

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

*20
	PMODE
	*20
MNPRE,	0
MNPOST,	0
MNSHOW,	0
IWINDO,	WINDOW
TIMER,	0
R,	0
L,	0
D,	0
N,	0
AFTER,	140		/POST REFRESHES
BEFORE,	40		/PRE REFRESHES
FRTIME,	5		/REFRESHES/FRAME
W,	3		/WINDOW WIDTH
S,	1		/NEW CHARS/FRAME
/SUBR STARTS 100 KHZ CLOCK
CLOCK,	0
	CLA
	CLLR
	TAD RCLOCK
	CLLR
	CLA
	JMP I CLOCK
RCLOCK,	2100
/SUBR WAITS UNTIL CLOCK TIMES OUT
DELAY,	0
	CLCA
	TAD RFRESH
	SPA CLA
	JMP .-3
	CLLR		/STOP CLOCK
	JMP I DELAY
RFRESH,	-1750		/10 MSEC REFRESH
/THIS SECTION ENCODES NEXT DIAL LINE
/FROM DIAL TEXT SOURCE, IGNORING LEADING
/"/" AND LINE-CONTINUATION MARKS
/TEXT SOURCE AUTOMATICALLY BUFFERED OF
/OFF TAPE UNIT 1 IN 17400-17777, WITH
/HALF-WORD POINTER=5
/AS LINE IS ENCODED, AN ARRAY OF THE PWS
/NEEDED FOR DISPLAY ARE STORED IN 14000
/AND UP (LDF 6), 2 PWS PER 1/2 WORD CHAR
	LMODE
/IF SW 5 UP, SAME LINE USED OVER AGAIN
/RATHER THAN ENCODING NEXT ONE
NEXSTR,	SNS I 5
	JMP TRIAL
	SET I 3
	3777		/AD-1 PW BUFFER
	CLR
	STC 2		/COUNTS NO.CHARS
	ESF		/HALF-SIZE   "
NEXCHR,	LDF 7
	LDA
	5		/LAST HALF WORD?
	AZE		/END INPUT BLOK?
	JMP INCHAR
	APO I
	JMP INCHAR	/N0: GET NEXT CH
	LDA I		/YES:GET NEXT
ONE,	1		/TBLK OFF UNIT 1
	ADM I
TBLK,	0
	BSE I		/MBLK=7,LDF=7
	7000
	STC .+2
	RDC U
	0		/FILLED ABOVE
	SET I 5		/RESET 1/2 POINT
	7377		/TO 17400-1/2
INCHAR,	LDH I 5		/NEXT 1/2 WORD
	AZE I		/0=FILE END
	JMP ENDFIL
	SHD I
	5700		/57(/)=DIAL LINE
	JMP NEXCHR	/IGNORED
	SHD I
	4300		/43=END DIAL LIN
	JMP ENDSTR
	SHD I		/54=DIAL LINE
	5400		/CONTINUE:SKIP
	JMP NEXCHR
	ROL 1
	ADA I
	PATRN-2		/ADDR PW PAIR
	STC 6		/IN LIF
	LDF 6		/STORE PWS IN
	LDA 6		/14000 ON UP
	STA I 3
	LDA I 6
	STA I 3		/SECOND PW
	XSK I 2		/INCR NO CHARS
	JMP NEXCHR	/GET NEXT CHAR
ENDSTR,	LDA I		/END OF LINE:
	10		/CHAR WIDTH
	ADD DX		/CHAR SPACING
	MUL
	2		/TIMES NO CHARS
	AZE I		/=LINE LENGTH
	JMP NEXSTR	/SKIP EMPTY LINE
	SCR 1		/CENTER LINE
	COM
	ADA I
X0,	374		/CENTER OF LINE
	STC IHORCO	/STARTING H.C.
	ADD 2
	STC N		/SAVE NO CHARS
/STRING ENCODED AS PW ARRAY. TRIAL
/BEGINS HERE
TRIAL,	PDP
	PMODE
	CLA IAC
	TAD N		/NO. CHARS
	CMA		/1"S COMP -1
	DCA MNPRE
	STA CLL RAL
	DCA MNSHOW
	STA CLL RAL
	DCA MNPOST
/DISPLAY UNTIL READY SIGNAL AND THEN FOR
/ANOTHER "BEFORE" REFRESHES
/READY SIGNAL IS EITHER BUTTON PRESS ON
/4-KEY BOX (SW 0 0FF) OR UP&DOWN ON SW 1
/(SW 0 ON).
	LINC
	LMODE
	SNS 0
	JMP KEYBRD
	SNS 1
	JMP .-1
WAIT1,	PDP
	PMODE
	JMS CLOCK
	JMS I IWINDO
	JMS DELAY
	LINC
	LMODE
	SNS I 1
	JMP WAIT1
/HAVE START SIGNAL: IF SW 2 ON, READ
/DISPLAY PARAMETERS FROM CONSOLE; IF OFF
/USE CURRENT VALUES
INPARS,	SNS 2
	JMP READY
	LSW
	STC FRTIME
	RSW
	BCL I
	7700		/RIGHT HALF
	STC S
	RSW
	BCL I
	77		/LEFT HALF
	ROR 6
	STC W
	JMP READY
KEYBRD,	PDP
	PMODE
	6304
	JMS CLOCK
	JMS I IWINDO
	JMS DELAY
	6302
	SNA CLA
	JMP .-5
	LINC
	LMODE
	JMP INPARS	/HAVE READY SIG
/NOW DISPLAY SAME PREMASK PATTERN FOR
/"BEFORE" REFRESHES AFTER READY SIGNAL
READY,	PDP
	PMODE
	TAD BEFORE
	CIA
	DCA TIMER
	JMS CLOCK
	JMS I IWINDO
	JMS DELAY
	ISZ TIMER
	JMP .-4
/FRAME SEQUENCE BEGINS. SEQUENCING
/CONTROLLED BY THREE PARAMETERS: L=NO.
/POSNS LEFT OF WINDOW (POSTMASKED).
/D=NO. POSNS IN WINDOW. R=NO. POSNS
/RIGHT OF WINDOW (PREMASKED).
	TAD N
	DCA R
	DCA D
	DCA L
/SECTION UPDATES (L,D,R) ACCORDING TO
/WINDOW WIDTH (W) AND SLIDE (S)
FRAME,	TAD L
	SNA CLA
	JMP GROW
	TAD R
	SNA CLA
	JMP SHRINK
USUAL,	TAD S
	CIA
	TAD R
	SPA
	JMP SHRINK-2
	DCA R
	TAD S
	TAD L
	DCA L
	JMP SHOW
GROW,	TAD W
	CIA
	TAD D
	TAD S
	SMA SZA
	JMP STUNT
	CLA
	TAD D
	TAD S
	DCA D
	TAD S
	CIA
	TAD R
	DCA R
	JMP SHOW
STUNT,	DCA L
	TAD W
	DCA D
	JMP STUNT-5
	CLA
	DCA R
SHRINK,	TAD S
	TAD L
	DCA L
	TAD L
	CIA
	TAD N
	SPA SNA
	JMP EXIT
	DCA D
/SECTION GENERATES LINKAGE FOR DISPLAY
/SUBROUTINE: MNPOST=-(L+1), MNSHOW=-(D+1
/AND MNPRE=-(R+1): -"S ARE 1"S COMPLS.
SHOW,	CLA IAC
	TAD L
	CMA
	DCA MNPOST
	IAC
	TAD D
	CMA
	DCA MNSHOW
	IAC
	TAD R
	CMA
	DCA MNPRE
/NOW DISPLAY FRAME FOR FRTIME REFRESHES
	TAD FRTIME
	CIA
	DCA TIMER
	JMS CLOCK
	JMS I IWINDO
	JMS DELAY
	ISZ TIMER
	JMP .-4
	JMP FRAME	/PREPARE NEW FRM
/DISPLAY OVER WHEN CONTROL PASSES HERE
/FROM FRAME-SEQUENCING ALGORITHM
/DISPLAY ALL POSTMASKS "AFTER" REFRESHES
EXIT,	CLA IAC
	TAD N
	CMA
	DCA MNPOST
	STA CLL RAL
	DCA MNSHOW
	STA CLL RAL
	DCA MNPRE
	TAD AFTER
	CIA
	DCA TIMER
	JMS CLOCK
	JMS I IWINDO
	JMS DELAY
	ISZ TIMER
	JMP .-4
	LINC
	LMODE
	JMP NEXSTR	/NEXT DISPLAY
	PMODE
/SUBR DISPLAYS ONE FRAME OF MOVING
/WINDOW DISPLAY. THERE ARE N DISPLAY
/POSITIONS, WITH DX BETWEEN POSNS AND
/THE LINE CENTERED AT X0
	PAGE
WINDOW,	0
	LINC
	LMODE
	SET I 1
IHORCO,	0		/1=H.C.
	SET 2
	MNPOST		/-NO POSTMASKED
	SET I 3
	3777		/AD-1 PW BUFFER
	LDF 6		/IN 14000 UP
POST,	XSK I 2		/DONE POSTING?
	SKP
	JMP DISPLA	/YES:DISPLAY
	LDA I
VERCO,	340		/VERT. COORD.
	DSC I
POSMSK,	7777		/POSTMASK PW
	XSK I 3		/SKIP MASKED PW
	DSC
	POSMSK
	XSK I 3
	LDA I
DX,	1		/CHAR SPACING
	ADM
	1
	JMP POST
DISPLA,	SET 2
	MNSHOW		/-NO. SHOWN
	XSK I 2		/DONE WITH THEM?
	SKP
	JMP PRE		/YES:PREMASK
	LDA
	VERCO
	DSC I 3		/SHOW 2 CHAR PWS
	DSC I 3
	LDA
	DX
	ADM
	1		/ADVANCE H.C.
	JMP DISPLA+2
PRE,	SET 2
	MNPRE		/-NO. PREMASKED
	XSK I 2		/DONE?
	SKP
	JMP RETURN
	LDA
	VERCO
	DSC I
PREMSK,	7777		/PREMASK PW
	DSC
	PREMSK
	LDA
	DX
	ADM
	1		/ADVANCE H.C.
	JMP PRE+2
RETURN,	PDP
	PMODE
	CLA
	JMP I WINDOW
/END OF WINDOW SUBR
/PROGRAM STARTS HERE. LOAD FIRST TBLK OF
/TEXT (DIAL) FILE FROM LSWS
START,	CLA HLT
	LAS
	DCA TBLK
/READ IN FIRST BLOCK OF TEXT FILE
/INTO 17400-17777 (LDF=7,MBLK=7)
	LINC
	LMODE
	LDF 7
	LDA
	TBLK
	BSE I
	7000
	STC .+2
	RDC U
	0
	SET I 5		/INITIALIZE HALF
	7401		/WORD CHAR POINT
	JMP NEXSTR+2	/ENCODE 1ST LINE
/CONTROL REACHES HERE ONLY WHEN END OF
/TEXT FILE ENCOUNTERED.CONTINUE RESTARTS
/PROGRAM
ENDFIL,	PDP
	PMODE
	JMP START
/DISPLAY PATTERN WORDS
PATRN,	4477		/A
	7744
	5177		/B
	2651
	4136		/C
	2241
	4177		/D
	3641
	4577		/E
	4145
	4477		/F
	4044
	4136		/G
	2645
	1077		/H
	7710
	7741		/I
	0041
	4142		/J
	4076
	1077		/K
	4324
	177		/L
	301
	3077		/M
	7730
	3077		/N
	7706
	4177		/O
	7741
	4477		/P
	3044
	4276		/Q
	376
	4477		/R
	3146
	5121		/S
	4651
	4040		/T
	4077
	177		/U
	7701
	176		/V
	7402
	677		/W
	7701
	1463		/X
	6314
	770		/Y
	7007
	4543		/Z
	6151
	4177		/[
	0000
	2040		/\
	0410
	0		/]
	7741
	2000		/^
	2077
	3410		/BACK ARROW
	1010
	0		/SPACE
	0
	7500		/!
	0
	6006		/"
	60
	3614		/NUMBER SIGN
	1436
	7721		/DOLLAR SIGN
	4677
	1446		/%
	6130
	5166		/&
	0523
	500		/APOSTROPHY
	
	6
	4163		/(
	0
	0		/)
	6341
	2050		/*
	50
	404		/+
	437
	605		/,
	0
	404		/-
	404
	1		/.
	0
	601		//
	4030
	4136		/0
	3641
	2101		/1
	177
	4523		/2
	2151
	4122		/3
	2651
	2414		/4
	477
	5172		/5
	651
	1506		/6
	4225
	4443		/7
	6050
	5126		/8
	2651
	5120		/9
	3651
	4200		/:
	0
	2601		/;
	0
	2410		/<
	0042
	1212		/=
	1212
	4200		/>
	1024
	4020		/?



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