File THESIS

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
NWORDS,	0
ADCH,	0
HALF,	0
M43,	-43
WIDTH,	11		/CHAR SPACING
M6,	-6
M4,	-4
C24,	24
NUMSNT,	0
NFRAME,	0
SCOUNT,	0
COUNT,	0
C377,	377
SENTNO,	0
VERCO,	340
X0,	0
ADBLNK,	PATRN+76	/AD BLANK PWS
MADBLK,	-PATRN-76	/-ADBLNK
SHOW,	DISPLA
GTCHAR,	NEXTCH
DBUFM1,	SBUFFR+600
SBUFM1,	SBUFFR-1
/PRMASK AND AFMASK ARE TWO DISPLAY TYPE
/PARAMETERS, CONTROLLING WHAT HAPPENS
/BEFORE/AFTER WORD IS SHOWN: -1=MASK,
/0=BLANK, +1=DISPLAY WORD
PRMASK,	-1
AFMASK,	1
WHWDTM,	12		/FR/WD SIMULT.
WDONTM,	12		/FR/WD ON SINGLE
WDOFTM,	0		/"   " OFF  "
/SUBR RETURNS NORMALLY IF SW N OFF,
/RETURNS NORMAL+1 IF ON; N FROM AC
SWITCH,	0
	TAD SNSN
	DCA .+2
	LINC
	LMODE
	0		/SNS N
	JMP .+4
	PDP
	PMODE
	ISZ SWITCH
	JMP I SWITCH
	LMODE
	PDP
	PMODE
	JMP I SWITCH
SNSN,	440
/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
/4 MSEC=400 TICKS OF 100KHZ CLOCK
DELAY,	0
	CLCA
	TAD WAIT
	SPA CLA
	JMP .-3
	CLLR
	JMP I DELAY
WAIT,	-1440		/8 MSEC REFRESH
/SUBR PUTS FIXATION DOTS AT CENTER=377
/ABOVE AND BELOW LINE TO BE READ
FIXATE,	0
	TAD C377
	DCA 1
	LINC
	LMODE
	ESF
	ADD VERCO
	ADD M4
	DIS 1
	CLR
	ADD VERCO
	ADD C24
	DIS 1
	PDP
	PMODE
	CLA
	JMP I FIXATE
	PAGE
/READ IN DIAL SOURCE FILE INTO FIELD 1
/TBLK FROM L SWS, NO. BLKS FROM R SWS.
INFILE,	0
	HLT
	LAS
	CIA
	DCA 7
	TAD LDF4	/SETUP LDF N
	DCA SETLDF
	STL RAR
	DCA MBLK
	LINC
	LMODE
	LSW
	STC TBLK
SETLDF,	0		/FILLED ABOVE
	ADD TBLK
	ADD MBLK
	STC .+2
	RDC U
	0
	PDP
	PMODE
	CLA
	ISZ 7
	SKP
	JMP SORT
	ISZ TBLK
	TAD C1000
	TAD MBLK
	SNA
	JMP .+4
	DCA MBLK
	LINC 
	LMODE
	JMP SETLDF
	PMODE
	STL RAR
	DCA MBLK
	ISZ SETLDF
	JMP .-5
/COUNT NO. OF SENTENCES;SHUFFLE SENTENCE
/ORDER FOR DISPLAY
SORT,	DCA NUMSNT
	STA
	DCA HALF
	STL IAC RAL
	DCA ADCH
	JMS NEXTCH
	TAD M43
	SZA CLA
	JMP .-3
	ISZ NUMSNT
	JMS NEXTCH
	SZA
	JMP .-6
	TAD NUMSNT
	CIA
	DCA 7
	DCA 6
	TAD SENTOR	/AD-1 SENT ORDER
	DCA 10
	ISZ 6
	TAD 6
	DCA I 10
	ISZ 7
	JMP .-4
	TAD M6
	DCA 7
	TAD SENTOR
	DCA SH1
	TAD NUMSNT
	DCA SH2
	STA
	DCA SH3
	JMS I SHUFEL
	ISZ 7
	JMP .-10
	TAD NUMSNT
	CIA
	DCA NUMSNT
	TAD SENTOR
	DCA SCOUNT
	JMP I INFILE
LDF4,	644		/LDF 4
TBLK,	0
MBLK,	0
C1000,	1000
SENTOR,	SBUFFR+214
/SUBR MOVES IN TEXT FILE TO AD-1 OF THE
/JTH SENTENCE, WHERE J=SENTNO
NOSENT,	0
	TAD SENTNO
	CIA
	DCA 6
	STA
	DCA HALF
	STL IAC RAL
	DCA ADCH
GTSENT,	ISZ 6
	SKP
	JMP I NOSENT
	JMS NEXTCH
	TAD M43
	SZA CLA
	JMP GTSENT+3
	JMP GTSENT
/SUBR UNPACKS NEXT 6-BIT ASCII CHAR FROM
/PACKED ASCII TEXT BUFFER: TEXT POINTER
/IS ADCH=X AND HALF=Y: Y=-1 - LEFT HALF
/OF WORD X IN FIELD 1; Y=0, RIGHT HALF
/CHAR CODE RETURNED IN AC
NEXTCH,	0
	CDF 10
	TAD I ADCH
	ISZ HALF
	JMP RIGHT
	RTR
	RTR
	RTR
	AND C77
	CDF 0
	JMP I NEXTCH
RIGHT,	DCA 7
	STA
	DCA HALF
	ISZ ADCH
	SKP
	HLT
	TAD 7
	JMP RIGHT-3
C77,	77
	PAGE
/SUBR ENCODES THE SENTENCE AT THE TEXT
/POINTER INTO THE DISPLAY BUFFER, WHICH
/BEGINS AT SBUFM1+1. EACH CHARACTER TO
/BE DISPLAYED IS CONVERTED TO ITS PW
/ADDRESS. EACH SEPARATE WORD IS
/DELIMITED BY A BLANK (40), AND THE
/SENTENCE IS TERMINATED BY A (43).
/"INSERT" EXTRA BLANKS ARE PUT IN
/BETWEEN WORDS. THE SENTENCE IS CENTERED
/AT X=377
PRSENT,	0
	DCA NWORDS
	TAD SBUFM1	/AD-1 SENT. BUFF
	DCA 10
CHNEXT,	JMS I GTCHAR	/JMS NEXTCH
	DCA CHAR
	TAD CHAR
	TAD M57		/SKIP "/"
	SNA CLA
	JMP CHNEXT
	TAD CHAR
	TAD M47
	SNA CLA		/SKIP CONT MARK
	JMP CHNEXT
	TAD CHAR
	TAD M43
	SNA CLA
	JMP DONE
	TAD CHAR
	CLL RAL
	TAD PWTABL
	DCA I 10
	TAD CHAR
	TAD M40
	SZA CLA
	JMP CHNEXT
	ISZ NWORDS
	TAD INSERT	/NO. EXTRA BLNKS
	CMA
	DCA 6
	ISZ 6
	SKP
	JMP CHNEXT
	TAD ADBLNK	/AD BLNK PW
	DCA I 10
	JMP .-5
DONE,	TAD ADBLNK
	DCA I 10
	ISZ NWORDS
	TAD 10
	CIA
	TAD SBUFM1
	DCA 6
	TAD WIDTH
	ISZ 6
	JMP .-2
	CLL RAR
	CIA
	TAD C377	/CENTER DISPLAY
	DCA X0
	JMP I PRSENT
CHAR,	0
M40,	-40
M57,	-57
M47,	-47
PWTABL,	PATRN-2
INSERT,	0		/NO EXTRA BLANKS
/SUBROUTINE "DEVELOPS" DISPLAY OF
/SENTENCE BUFFER, ONE "FRAME" AT A TIME.
/EACH FRAME IS OF 4 MSEC DURATION WITH
/CONSTANT REFRESH RATE (I.E.,ONE DISPLAY
/LOOP/FRAME. DBUFM1+1 ON UP IS THE FRAME
/BUFFER: NWORDS WORDS/FRAME; 0=NOT SHOWN
/THIS FRAME, 1=SHOWN THIS FRAME, -1=
/MASKED OUT THIS FRAME
	PAGE
DISPLA,	0
	TAD NFRAME
	CIA
	DCA COUNT
	TAD DBUFM1
	DCA 11
FRAME,	TAD SBUFM1
	DCA 10
	TAD NWORDS
	CIA
	DCA 7
	TAD X0
	DCA 1
	JMS CLOCK
	TAD I 11
	SNA
	JMP NOSHOW	/0=NOT SHOWN
	SMA CLA
	JMP SHOWIT	/1=SHOWN
MASK,	TAD I 10	/-1=MASKED
	TAD MADBLK	/CHAR=BLANK?
	SNA CLA
	JMP WDNEXT	/END MASKED WORD
	TAD VERCO
	LINC
	LMODE
	DSC I
	7777
	DSC I
	7777
	PDP
	PMODE
	CLA
	ISZ 1
	JMP MASK
SHOWIT,	TAD I 10
	TAD MADBLK
	SNA
	JMP WDNEXT	/END SHOWN WORD
	TAD ADBLNK	/RESTORE
	DCA 2
	TAD VERCO
	LINC
	LMODE
	DSC 2
	DSC I 2
	PDP
	PMODE
	CLA
	ISZ 1
	JMP SHOWIT
NOSHOW,	TAD I 10
	TAD MADBLK	/BLANK CHARS
	SNA CLA
	JMP WDNEXT
	TAD 1
	TAD WIDTH
	DCA 1
	JMP NOSHOW
WDNEXT,	ISZ 7		/ANOTHER WORD?
	JMP .+5
	JMS DELAY	/CONST. REFRESH
	ISZ COUNT	/ANOTHER FRAME?
	JMP FRAME	/NEXT FRAME
	JMP FINISH	/DONE W/DISPLAY
	TAD 1
	TAD WIDTH
	DCA 1		/SKIP BLANKS
	TAD I 10
	TAD MADBLK	/SKIP EXTRA BLKS
	SNA CLA
	JMP .-6
	STA
	TAD 10
	DCA 10		/RESET POINTER
	JMP FRAME+10	/NEXT WORD
/MASK ENTIRE DISPLAY UNTIL S HITS 4-KEY
FINISH,	CLLR
	6304
	TAD VERCO
	LINC
	LMODE
	DSC I
	7777
	PDP
	PMODE
	CLA
	6302
	SNA CLA
	JMP FINISH+2
	JMP I DISPLAY
/SUBR SETS UP TIME-DEVELOPING BUFFER FOR
/ENSUING DISPLAY.  FOR EACH 4-MSEC FRAME
/OF THE DISPLAY, 1 WORD IS USED IN THIS
/DEVELOPER ARRAY FOR EACH WORD OF THE
/SENTENCE. IN EACH FRAME, A WORD WITH A
/0 VALUE IS NOT SHOWN DURING THAT FRAME,
/A 1 VALUE MEANS IT IS SHOWN, AND A -1
/VALUE MEANS IT IS MASKED OUT. SW 0 ON
/SETS UP A DISPLAY OF ALL WORDS SIMULT.,
/FOR WHWDTM*NWORDS FRAMES. SW 0 OFF
/SETS UP A WORD-BY-WORD DISPLAY OF THE
/SENTENCE: SW 1 ON SETS UP A RANDOM
/ORDER OF WORDS DISPLAYED, SW 1 OFF SETS
/UP A LEFT-TO-RIGHT ORDER. EACH WORD IS
/DISPLAYED FOR WDONTM FRAMES, WITH
/WDOFTM FRAMES BETWEEN WORDS; AFTER EACH
/WORD HAS BEEN SHOWN, IT WILL EITHER BE
/BLANKED IN LATER FRAMES (AFMASK=0) OR
/MASKED OUT (AFMASK=-1).
	PAGE
MAKEIT,	0
	TAD DBUFM1
	DCA 11		/AD-1 DEV. BUFFR
	TAD NWORDS
	CIA
	DCA 6
	JMS SWITCH	/SW 0
	JMP SINGLE	/OFF=WORD-BY-WOR
	TAD WHWDTM	/ON=SIMULT.
	ISZ 6
	JMP .-2
	DCA NFRAME
	TAD NFRAME
	CIA
	DCA 6
	TAD NWORDS
	CIA
	DCA 7
	IAC
	DCA I 11	/SHOW WORD
	ISZ 7		/END FRAME?
	JMP .-3
	ISZ 6		/ANOTHER FRAME?
	JMP .-10
	JMP I MAKEIT
SINGLE,	TAD WDORDR	/AD-1 TEMP ORDER
	DCA 12
	TAD WDPAST	/AD-1 YET SHOWN
	DCA 13
	DCA 7
	ISZ 7
	TAD 7
	DCA I 12	/WORD NO.
	DCA I 13	/0=NOT YET SHOWN
	ISZ 6
	JMP .-5
	IAC
	JMS SWITCH	/SW 1:
	JMP NOSCRM
	TAD M6		/ON=SCRAMBLE
	DCA 6
WSHUF,	TAD WDORDR
	DCA SH1
	TAD NWORDS
	DCA SH2
	STA
	DCA SH3
	JMS I SHUFEL
	ISZ 6
	JMP WSHUF
NOSCRM,	TAD NWORDS
	CIA
	DCA NGROUP	/1 GROUP FRMS/WD
	TAD NGROUP
	DCA 7
	TAD WDONTM
	TAD WDOFTM
	ISZ 7
	JMP .-3
	DCA NFRAME
	TAD WDORDR
	DCA 12
GROUP,	TAD I 12	/WD NO. IN FRAME
	CIA
	DCA WORDNO
	TAD WDONTM
	CIA
	DCA 5
GFRAME,	TAD NWORDS
	CIA
	DCA 7
	TAD WDPAST
	DCA 13
	TAD WORDNO
	DCA 6		/KEY WD FOR FRAM
FENTRY,	ISZ 6		/AT KEY WD YET?
	JMP .+4
	ISZ I 13	/SET YET SHOWN
	IAC		/DISPLAY KEY WD
	JMP CHENFR
	TAD I 13	/NON-KEY WD
	SNA CLA		/ALREADY SHOWN?
	JMP .+3
	TAD AFMASK
	SKP
	TAD PRMASK
CHENFR,	DCA I 11	/STORE -1,0,+1
	ISZ 7		/END OF FRAME?
	JMP FENTRY
	ISZ 5		/END OF GROUP?
	JMP GFRAME
	TAD WDOFTM	/NOW DO THIS NO.
	CMA		/OF MASK/BLANK
	DCA 7		/FRAMES
OFFRAM,	ISZ 7
	JMP .+4
	ISZ NGROUP	/ANOTHER GROUP?
	JMP GROUP
	JMP I MAKEIT
	TAD NWORDS
	CIA
	DCA 6
	TAD WDPAST
	DCA 13
	TAD I 13	/ALREADY SHOWN?
	SZA CLA
	TAD AFMASK	/MASK/BLANK
	DCA I 11
	ISZ 6
	JMP .-5		/FINISH FRAME
	JMP OFFRAM	/ANOTHER OFF "
NGROUP,	0
WORDNO,	0
WDPAST,	SBUFFR+170	/AD-1 YET SHOWN
WDORDR,	SBUFFR+144	/AD-1 SHOW ORDER
/PROGRAM STARTS HERE. INITIALIZE RN BY
/CLEARING R SWS
	PAGE
START,	ISZ COUNT
	NOP
	LAS
	SZA CLA
	JMP START
	JMS I IRX
	JMS I RNX
	ISZ COUNT
	JMP .-2
	CLA
/READ IN TEXT FILE: SET R SWS=NO BLOCKS
/AND L SWS=STARTING BLOCK NO.
	JMS I ENTER	/JMS INFILE
TRIAL,	ISZ SCOUNT
	TAD I SCOUNT
	DCA SENTNO
	JMS I GETSNT	/JMS NOSENT
	JMS I ENCODE	/JMS PRSENT
	JMS I SETUP	/JMS MAKEIT
	6314
	JMS CLOCK	/FIXATION DOTS
	JMS FIXATE	/UNTIL S STARTS
	JMS DELAY
/SW 4 ON STOPS PROG W/O SCREWING CLOCK
	CLL IAC RTL
	JMS SWITCH
	SKP
	HLT
	6312
	SNA CLA
	JMP .-11
	TAD PAUSET
	DCA 7
	JMS CLOCK
	JMS DELAY
	ISZ 7
	JMP .-3
	JMS I SHOW	/JMS DISPLA
	ISZ NUMSNT
	JMP TRIAL
	HLT
	JMP .-1
ENTER,	INFILE
GETSNT,	NOSENT
ENCODE,	PRSENT
SETUP,	MAKEIT
PAUSET,	-100		/FRAMES DELAYED
/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		/?
/WORKING&STORAGE AREAS FOLLOW
SBUFFR,	0



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