File DISPHALF

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

*20
	PMODE
	*20
SH1,	0
SH2,	0
SH3,	0
SHUFEL,	SHUFL
RNX,	RN
IRX,	IR
K7,	7
TEMP,	0
R1,	0
R2,	0
R3,	0
INDEX6,	0
RNDM3,	0
RNDM2,	0
RNDM1,	RNDM
RMNDR,	RMNDRX
IDISP1,	DSHALF
IBLANK,	BLANK
IDISP6,	DISP6
TIPE,	TYPE
MOVE,	1
MD60,	-74
BNTR,	0
M6,	-6
M4,	-4
IHORCO,	240
PAUSET,	-310
VERCO,	340
M7,	-7
C215,	215
C212,	212
IWHOLE,	WHOLE
C240,	240
C261,	261
C300,	300
D300,	454
LOCHAR,	0
K,	0
ILAB4,	LAB4
WSIZE,	0
TIMER,	0
TIME,	-14		/-NO. REFRESHES
PWTABL,	PATRN-2
ADTRL1,	TRIALS-1
/SUBR STARTS 100 KHZ CLOCK
CLOCK,	0
	CLA
	CLLR
	TAD FCLOCK
	CLLR
	CLA
	JMP I CLOCK
FCLOCK,	2100
/SUBR PAUSES UNTIL CLOCK TIMES OUT AT
DELAY,	0
	CLCA
	TAD RFRESH
	SPA CLA
	JMP .-3
	CLLR
	JMP I DELAY
RFRESH,	-413		/REFRESH RATE
/OUTPUT SUBR
TYPE,	0
	TLS
	TSF
	JMP .-1
	CLA
	JMP I TYPE
/SUBR DISPLAYS EITHER LEFT HALVES OF
/6 CHARS IN STRING (K=1) OR RIGHT
/HALVES (K=-1), MASKING OTHER HALVES
DSHALF,	0
	CLA
	TAD M6
	DCA 4
	TAD LOCHAR
	DCA 10
	TAD IHORCO
SETHC,	DCA 1
	TAD I 10
	CLL RAL
	TAD PWTABL
	DCA 2
	TAD K
	SMA CLA
	JMP LEFT
/DISPLAY RIGHT HALF AND MASK LEFT HALF
	TAD VERCO
	LINC
	LMODE
	DSC I 0
MASK,	7777
	DSC I 2
	JMP CHECK
/DISPLAY LEFT HALF AND MASK RIGHT HALF
	PMODE
LEFT,	TAD VERCO
	LINC
	LMODE
	DSC 2
	DSC I 0
	7777
CHECK,	PDP
	PMODE
	CLA
	ISZ 4
	SKP
	JMP I DSHALF
	TAD 1
	TAD MOVE
	JMP SETHC
/SUBR DISPLAYS ALL SIX LETTERS OF WORD
DISP6,	0
	CLA
	TAD LOCHAR
	DCA 10
	TAD M6
	DCA 4
	TAD IHORCO
NEXT,	DCA 1
	TAD I 10
	CLL RAL
	TAD PWTABL
	DCA 2
	TAD VERCO
	LINC
	LMODE
	DSC 2
	DSC I 2
	PDP
	PMODE
	CLA
	ISZ 4
	SKP
	JMP I DISP6
	TAD 1
	TAD MOVE
	JMP NEXT
/SUBR MASKS ALL SIX CHAR POSITIONS
BLANK,	0
	CLA
	TAD M6
	DCA 4
	TAD IHORCO
	DCA 1
	TAD VERCO
	LINC
	LMODE
	DSC I 0
	7777
	DSC I 0
	7777
	PDP
	PMODE
	CLA
	ISZ 4
	SKP
	JMP I BLANK
	TAD MOVE 
	TAD 1
	JMP BLANK+5
/PROGRAM STARTS HERE. INITIALIZE RN BY
/CLEARING R SWS
START,	ISZ 1
	NOP
	LAS
	SZA CLA
	JMP START
	JMS I IRX
	JMS I RNX
	ISZ 1
	JMP .-2
	CLA
/READ IN LIST OF 300 6-LETTER WORDS OFF
/TAPE UNIT 1. THEN SHUFFLE THE LIST 42
/TIMES. THEN HALT WHEN READY
	LINC
	LMODE
	ESF
	LDF 2
	RDC U
	4760
	RDC U
	5761
	RDC U
	6762
	RDC U
	7763
	LDF 3
	RDC U
	4764
	RDC U
	5765
	RDC U
	6766
	RDC U
	7767
	PDP
	PMODE
	CLA
	TAD MD60
	DCA 1
	TAD M6
	DCA SH3
	TAD D300
	DCA SH2
	STA CLL RAR	/3777=AD-1
	DCA SH1
	JMS I SHUFEL
	ISZ 1
	JMP .-10
	STA CLL RAR
	DCA LOCHAR	/AD-1 WORD LIST
	HLT
/EACH 60 TRIAL BLOCK STARTS HERE.
/SHUFFLE 60 TYPES AND GO TO IT!
BLOCK,	TAD MD60
	DCA BNTR
	TAD M6
	DCA 1
	STA
	DCA SH3
	TAD MD60
	CIA
	DCA SH2
	TAD ADTRL1
	DCA SH1
	JMS I SHUFEL
	ISZ 1
	JMP BLOCK+4
	TAD ADTRL1
	DCA 12
/EACH TRIAL STARTS HERE
/W=0: SHOW ENTIRE WORD AT ONCE
/W=1:SHOW LEFT HALVES OF LETTERS FIRST,
/THEN RIGHT HALVES. W=-1: VICE-VERSA
TRIAL,	TAD I 12	/NEXT WSIZE
	DCA WSIZE
/SHOW ALL MASKS UNTIL READY SIGNAL, THEN
/FOR ADDITIONAL -PAUSET FRAMES
	6314
	JMS CLOCK
	JMS I IBLANK	/JMS BLANK
	JMS DELAY
	6312
	SNA CLA
	JMP .-5
	TAD PAUSET
	DCA TIMER
	JMS CLOCK
	JMS I IBLANK
	JMS DELAY
	ISZ TIMER
	JMP .-4
	TAD WSIZE
	SNA
	JMP I IWHOLE	/JMP WHOLE=SIMUL
	DCA K		/CONTROLS HALF
	TAD TIME
	DCA TIMER	/NO. CYCLES/FRAM
	JMS CLOCK
	JMS I IDISP1	/JMS DSHALF
	JMS DELAY
	ISZ TIMER
	JMP .-4
	TAD K
	CIA
	DCA K		/DO OTHER HALF
	TAD TIME
	DCA TIMER
LAB4,	JMS CLOCK
	JMS I IDISP1
	JMS DELAY
	ISZ TIMER
	JMP I ILAB4	/JMP LAB4
	JMP DONE
/SIMULTANEOUSLY
WHOLE,	TAD TIME
	DCA TIMER
	JMS CLOCK
	JMS I IDISP6
	JMS DELAY
	ISZ TIMER
	JMP .-4
/DONE WITH DISPLAY: MASK DISPLAY FOR
/-2*PAUSET FRAMES
DONE,	TAD PAUSET
	TAD PAUSET
	DCA TIMER
	JMS CLOCK
	JMS I IBLANK
	JMS DELAY
	ISZ TIMER
	JMP .-4
/TYPE OUT COND: 0=RL, 1=WHOLE, 2=LR
/AND THEN SPACE, WORD
	TAD M6
	DCA 1
	TAD LOCHAR
	DCA 10
	TAD WSIZE
	TAD C261
	JMS I TIPE
	TAD C240
	JMS I TIPE
	TAD I 10
	TAD C300
	JMS I TIPE
	ISZ 1
	JMP .-4
	TAD 10
	DCA LOCHAR	/AD-1 NEXT WORD
	TAD C240
	JMS I TIPE
/ACCEPT SINGLE INPUT CHAR FROM TTY
	KCC
	KSF
	JMP .-1
	KRB
	JMS I TIPE
	TAD C212
	JMS I TIPE
	TAD C215
	JMS I TIPE
	ISZ BNTR
	JMP I ITRIAL	/JMP TRIAL
/BLOCK OVER: EXTRA CR,LF, THEN HALT
	TAD C215
	JMS I TIPE
	TAD C212
	JMS I TIPE
	HLT
	JMP I IBLOCK
ITRIAL,	TRIAL
IBLOCK,	BLOCK
/ARRAY OF 60 TRIAL TYPES/BLOCK FOLLOWS
TRIALS,	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
	-1
	0
	1
/RANDOM PACKAGE AND PW TABLE FOLLOW
	PAGE
RNDM,	0		/RN IN 0,RNDM3
	JMS I RNX	/36 BIT RN
	JMS I RMNDR	/REMAINDR RNDM3
	CLA
	JMP I RNDM	/DONE
M36,	-44		/
IDX1,	0		/
R1X,	0		/
R2X,	0		/
R3X,	0		/
RMNDRX,	0		/GET RMNDR
	CLA		/
	DCA RNDM2	/
	TAD R1		/
	DCA R1X		/
	TAD R2		/
	DCA R2X		/
	TAD R3		/
	DCA R3X		/
	TAD M36		/
	DCA IDX1	/FOR 36 BITS
RMN1,	CLA		/
	TAD RNDM2	/
	CLL		/
	RAL		/
	DCA RNDM2	/SHIFT LEFT 1
	TAD R1X		/
	CLL		/
	RAL		/
	DCA R1X		/SHIFT LEFT 1
	RAL		/GET LINK
	TAD RNDM2	/
	DCA RNDM2	/
	TAD R2X		/
	CLL		/
	RAL		/
	DCA R2X		/
	RAL		/GET LINK
	TAD R1X		/
	DCA R1X		/
	TAD R3X		/
	CLL		/
	RAL		/
	DCA R3X		/
	RAL		/GET LINK
	TAD R2X		/
	DCA R2X		/SHIFTS DONE
	TAD RNDM3	/NUMBER MOD
	CIA		/
	TAD RNDM2	/
	SPA		/
	JMP .+2		/
	DCA RNDM2	/SUB,REPLACE
	ISZ IDX1	/CHECK INDEX
	JMP RMN1	/CONTINUE
	JMP I RMNDRX	/RMNDR IN RNDM2
SHUFL,	0		/SHUFFLES
SHUFL1,	CLA		/
	TAD SH2		/LENGTH
	DCA RNDM3	/
	JMS I RNDM1	/GET RN
	CLA		/
	TAD SH3		/BLOCK SIZE
	DCA INDEX6	/
	TAD SH1		/ARRY-1
SHUF1,	TAD RNDM2	/ADD TO ARRY
	ISZ INDEX6	/N X M DONE?
	JMP SHUF1	/CONTINUE
	DCA TEMP	/DONE,IN TEMP
	TAD TEMP	/
	DCA 14		/
	TAD TEMP	/
	DCA 15		/
	TAD SH1		/
	DCA 16		/
	TAD SH1		/
	DCA 17		/
	TAD SH3		/
	DCA INDEX6	/-BLOCK SIZE
SHUF2,	TAD I 14	/
	DCA TEMP	/
	TAD I 16	/
	DCA I 15	/
	TAD TEMP	/
	DCA I 17	/
	ISZ INDEX6	/
	JMP SHUF2	/
	CLA CMA		/AC=-1
	TAD SH2		/LENGTH-1
	SZA		/
	JMP .+2		/
	JMP I SHUFL	/DONE
	DCA SH2		/NEW LENGTH
	TAD SH3		/BLOCK SIZE,-
	CIA		/+BLOCK SIZE
	TAD SH1		/ADD ARRAY
	DCA SH1		/NEW START
	JMP SHUFL1	/CONTINUE
	PAGE
IR,	0		/
	JMP IR1		/
RN,	0		/
	CLA		/
	TAD R3		/
	RAL		/
	AND K7400	/
	DCA T3		/
	TAD R2		/
	AND K177	/
	TAD T3		/
	RTL		/
	RTL		/
	RAL		/
	DCA T1		/
	TAD R3		/
	AND K177	/
	RTL		/
	RTL		/
	RAL		/
	TAD R2		/
	DCA T2		/
	SZL		/
	ISZ T1		/
	NOP		/
	TAD R3		/
	CLL RAL		/
	SZL		/
	ISZ T2		/
	SKP		/
	ISZ T1		/
	NOP		/
	CLL		/
	TAD R3		/
	DCA R3		/
	TAD R2		/
	RAL		/
	SZL		/
	ISZ T1		/
	NOP		/
	CLL		/
	TAD T2		/
	DCA R2		/
	TAD R1		/
	RAL		/
	TAD R1		/
	TAD T1		/
	DCA R1		/
	TAD R1		/
	JMP I RN	/
	HLT		/NOT USED
IR1,	CLA IAC		/
	DCA R3		/
	DCA R2		/
	DCA R1		/
	JMP I IR	/
K177,	177		/
K7400,	7400		/
T1,	0		/
T2,	0		/
T3,	0		/
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