File DOUBLY

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
ICHARS,	CHARS
IBUFFR,	BUFFER-1
TIPE,	TYPE
MD60,	-74
BNTR,	0
M6,	-6
M14,	-14
C215,	215
C212,	212
C240,	240
C260,	260
C40,	40
C300,	300
D300,	454
LOCHAR,	0
K,	0
TRTYPE,	0
TRTYP2,	0
MD30,	-36
IELOOP,	ELOOP
ILAB5,	LAB5
ILOOP,	LOOP
TIMER,	0
TIMEON,	20		/FRAMES "ON"
TIMOFF,	4		/FRAMES "OFF"
BEFORE,	310
AFTER,	454
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,	-310		/FRAME=2 MSECS
/OUTPUT SUBR
TYPE,	0
	TLS
	TSF
	JMP .-1
	CLA
	JMP I TYPE
/SUBR DISPLAYS 6 CHAR POSNS, EACH OF
/WHICH IS EITHER A CHARACTER, A BLANK
/(ASCII CODE=40), OR A BRIGHT MASK
/SQUARE (ASCII CODE=0)
/TWO SETS OF CHAR POSNS ARE SO SHOWN
CHARS,	0
	LINC
	LMODE
	SET I 1
IHORCO,	240
	SET I 2
	BUFFER-1	/AD-1 DISP BUFFR
	LDA I 2		/NEXT CHAR CODE
	ROL 1
	ADA I
	PATRN-2
	STC 3		/FIRST PW
	LDA I
VERCO,	320
	DSC 3
	DSC I 3
	SRO I
	3737		/DO 6 POSNS
	SKP
	JMP WORD2	/DO SECOND WORD
	LDA I
DX,	1
	ADM
	1
	JMP IHORCO+3	/NEXT CHAR
/NOW DISPLAY SECOND WORD 2 LINES BELOW
/2ND WORD BUFFERED AT BUFFER+6 & UP
WORD2,	SET I 1
IHRCO2,	240
	LDA I 2
	ROL 1
	ADA I
	PATRN-2
	STC 3
	LDA I
VERCO2,	260
	DSC 3
	DSC I 3
	SRO I
	3737
	SKP
	JMP RETURN
	LDA
	DX
	ADM
	1
	JMP WORD2+2
RETURN,	PDP
	PMODE
	CLA
	JMP I CHARS
/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 MD30
	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 30-TRIAL BLOCK (2 WORDS/BLOCK)
/STARTS HERE.
/SHUFFLE 60 TYPES (2/TRIAL) AND DO IT!
BLOCK,	TAD MD30
	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
/1 TRIAL TYPE DRAWN FOR EACH OF 2 WORDS
/TRIAL TYPE (0,1,...) REFERS TO A
/PERMUTATION OF THE TEMPORAL ORDER IN
/WHICH THE (6) LETTERS ARE SHOWN
TRIAL,	TAD I 12	/NEXT TR TYPE
	DCA TRTYPE
	TAD I 12
	DCA TRTYP2
/SHOW ALL PREMASKS IN EACH WORD UNTIL
/S GIVES READY SIGNAL
/AND THEN FOR ANOTHER "BEFORE" FRAMES
/BUFFER,..BUFFER+5=WORD1 CODES
/BUFFER+6,BUFFER+11=WORD2 CODES
	TAD M14
	DCA 6
	TAD IBUFFR	/AD-1 CHAR BUFFR
	DCA 14
	TAD C40		/40=PREMASK CODE
	DCA I 14
	ISZ 6
	JMP .-3
	6314
	JMS CLOCK
	JMS I ICHARS	/JMS CHARS
	JMS DELAY
	6312
	SNA CLA
	JMP .-5
	TAD BEFORE
	CIA
	DCA TIMER
	JMS CLOCK
	JMS I ICHARS
	JMS DELAY
	ISZ TIMER
	JMP .-4
	TAD TRTYPE
	LINC
	LMODE
	MUL I
	6		/6 ITEMS/ORDER
	ADA I
	ORDER1-1	/POINT TO ORDER
	STC 15
	ADD TRTYP2
	MUL I
	6
	ADA I
	ORDER1-1
	STC 16
	PDP
	PMODE
	TAD M6
	DCA 7
LOOP,	TAD I 15	/GET POSN ORDER
	DCA K
	TAD K
	TAD IBUFFR	/AD IN CHAR BUFF
	DCA 5
	TAD LOCHAR
	TAD K
	DCA 4		/AD ASCII CODE
	TAD I 4
	DCA I 5		/FILL BUFFR POSN
/REPEAT FOR 2ND WORD
	STL IAC RTL
	TAD I 16
	DCA K
	TAD K
	TAD IBUFFR
	DCA 6
	TAD LOCHAR
	TAD K
	DCA 4
	TAD I 4
	DCA I 6
/SHOW "TIMEON" NO. FRAMES WITH KEY CHAR
/AND PRE/POSTMASKS IN NON-KEY POSNS
	TAD TIMEON
	CIA
	DCA TIMER
	JMS CLOCK
	JMS I ICHARS
	JMS DELAY
	ISZ TIMER
	JMP .-4
	DCA I 5		/SET POSTMASKS
	DCA I 6		/(CODE=0)
/NOW SHOW "TIMOFF" NO. FRAMES WITH KEY
/POSITION POSTMASKED
	TAD TIMOFF
	SNA		/SKIP IF=0
	JMP I IELOOP	/JMP ELOOP
	CIA
	DCA TIMER
LAB5,	JMS CLOCK
	JMS I ICHARS
	JMS DELAY
	ISZ TIMER
	JMP LAB5
ELOOP,	ISZ 7		/ANOTHER CHAR?
	JMP I ILOOP	/JMP LOOP
/NOW SHOW ALL POSTMASKS "AFTER" FRAMES
	TAD AFTER
	CIA
	DCA TIMER
	JMS CLOCK
	JMS I ICHARS
	JMS DELAY
	ISZ TIMER
	JMP .-4
/TYPE OUT TRTYPE,SPACE,WORD1
	TAD M6
	DCA 1
	TAD LOCHAR
	DCA 10
	TAD TRTYPE
	TAD C260
	JMS I TIPE
	TAD C240
	JMS I TIPE
	TAD I 10
	TAD C300
	JMS I TIPE
	ISZ 1
	JMP .-4
/TYPE SPACE,TRTYP2, WORD2
	TAD C240
	JMS I TIPE
	TAD TRTYP2
	TAD C260
	JMS I TIPE
	TAD C240
	JMS I TIPE
	TAD M6
	DCA 1
	TAD I 10
	TAD C300
	JMS I TIPE
	ISZ 1
	JMP .-4
	TAD 10
	DCA LOCHAR	/AD-1 NEXT PAIR
	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,	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
	2
	0
	1
/STORAGE BUFFER FOR CHARS FOLLOWS
BUFFER,	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
	0
/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		/
/PATTERN WORDS FOR CHAR DISPLAY FOLLOWS
/NOTE 0=CODE FOR POSTMASK
	7777
	7777
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
	7777		/POSTMASK PWS
	7777
	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		/?
/TRTYPE=0: LETTERS 1-6 OF WORD SHOWN IN
/THIS ORDER: LEFT TO RIGHT
ORDER1,	1
	2
	3
	4
	5
	6
/TRTYPE=1: RIGHT TO LEFT
	6
	5
	4
	3
	2
	1
/TRTYPE=2: ORDER IS 2,4,6,5,3,1
	2
	4
	6
	5
	3
	1



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