Directory of image this file is from
This file as a plain text file
*20
LMODE
/X-WORD4 - 9 BIT PRECISION
/NO QUESTION-ASKING
/LIKE X-READ4, EXCEPT THAT WINDOW
/WIDTH IN WORDS, NOT CHARS.
DATA=LDF 1
DTEXT=LDF 2
TABLES=LDF 3
PROG0=LIF 0
PROG1=LIF 1
XSAMP=SAM 15
/
/********* MEANS CHANGE THIS TO ALTER
/PRECISION
/
SEGMNT 0
*20
PGCODE, 460
SUBSES, 0
TEXTAP, 0
TEXBLK, 0
DATBLK, 0
QBLK, -1
TOPLIN, 8
LINES, 4
SPACIN, 6
XCRIT, 3
PMODE
MDT, -1501 /120 CPS SAMPLES
C2000, 2000 /100 KHZ CLOCK
LMODE
/THIS SECTION HANDLES INTERRUPTS.
/TWO POSSIBLE INTERRUPTS: RESP PANEL=END
/PAGE,UP A LINE, OR END "VERIFY"
/CLOCK INTERRUPT=RESAMPLE EYE-POSN
*40
0 /INTERRUPT PC
STC ACSAVE
/SAVE AC AND 0000 BUT NOT L OR MQ.
ADD
STC SAVE0
IOB
6135 /CLSA
APO I
JMP PANEL /PANEL INT?
/SAMPLE X SIGNAL (A-D 15)
/COMPUTE TABLE LOOKUP FOR X, GIVEN YFIX
LDA I
YFIX, 0 /FIXATION LINE
SNS I 2 /SW 2 ON: USE
SCR 1 /1 CAL/2 LINES
ROR 3 /***************
STC /AD CDF 10 X-TAB
XSAMP
ADD C1000
SCR 1 /***************
ADD /12-BIT AD X-POS
C4000, STC
PDP
PMODE
CDF 10 /IN PDP DF 1
TAD I
CDF
LINC
LMODE
STC 17 /17 HOLDS X-POS
/"FIXING"=0: FIXATION; ELSE, MOVING
SAE I
FIXING, 0
JMP MOVING
/CURRENTLY FIXATING: X CHANGE>=XCRIT CHS
/LEADS TO POSSIBLE SACCADE
ADD XFIX
COM
ADD 17
APO I
COM
ADD XCRIT /XCRIT-/X-X0/
APO
JMP SACCAD /POSIBL SACCADE
/NO X-CHANGE: INCREMENT FIXATION TIMER
/& RETURN TO DISPLAY IN PROGRESS
PERSIS, LDA
14
SAE I
776
XSK I 14
RESTOR, LDA
C40, 40
BSE I
6000 /FORM RETURN JMP
STC RETURN
SET I 0
SAVE0, 0 /RESTORE SUBR PC
DJR
LDA I
ACSAVE, 0 /RESTORE AC
IOB
6244 /RMF
IOB
C6001, 6001 /ION
RETURN, HLT /RETURN JUMP
/
/CONTROL HERE WHENEVER FIXATION ENDS:
/SET STATE=MOVING, TIME POSSIBLE SACCADE
/AND WAIT FOR VERIFICATION OF NEW FIXATN
/
SACCAD, ADD C2000
STC FIXING /NON-0
ADD 17
STC XMOVE
SET I 15
1 /INIT SAC TIME
JMP RESTOR /SAME DISPLAY
/
/ARRIVES HERE DURING (POSSIBLE) SACCADE
/LOOKING FOR NO FURTHER X-CHANGE. IF
/FOUND, VERIFIES ONSET OF NEW FIXATION.
/
MOVING, LDA I
XMOVE, 0 /LAST X
COM
ADD 17
APO I
COM
ADD XCRIT
APO
JMP MORMOV /STILL MOVING
/MOVEMENT OVER: NEW FIXATION ONLY IF
/>=XCRIT AWAY FROM LAST XFIX
LDA I
XFIX, 0
COM
ADD 17
STA I
D, 0
APO I
COM
ADD XCRIT
APO I
JMP SAMFIX /SAME FIXATION!!
/BONAFIDE ONSET OF NEW FIXATION: SAVE
/X,Y,D,S DATA FROM LAST ONE & SETUP DISP
/FOR NEW FIXATION
LDA
XFIX
ROL 6
ADD YFIX
JMP STORE /(X,Y)
LDA
15
C303, ROR 3
ADD 14
JMP STORE /(S,D)
SET I 14
1 /NEW FIX TIMER
CLR
STC 15 /NEW SAC TIMER
STC FIXING /FIX MODE
ADD 17
STC XFIX /NEW FIX
/CHECK FOR RETURN SWEEP=REGRESSION<=1/2
/CHARS/LINE. DONT"T CHECK UNLESS 3 FIXES
/MADE ON LINE
ADD ONE
ADM I
NFIXLN, 0 /INCR FIXES/LN
APO
JMP RESET /TOO SOON FOR RS
LDA I
CH2, 0 /=NO CHARS/2
ADD D /=X-X0
APO I
JMP RESET
/RETURN SWEEP DETECTED: GO TO
/NEXT LINE: YFIX=MIN (YFIX+1,-MLINES)
LDA
YFIX
ADD MLINES
SAE I
-1
SKP
JMP RESET /LAST LN: SKIP
LDA I
1
ADM
YFIX
JMP SETXR /SET NEXT LN
JMP RESET /SETUP NEW DISP
/
/ARRIVES HERE FROM "MOVING" IF MOVEMENT
/PERISTS: INCREMENT SACCADE TIMER
/
MORMOV, LDA
15
SAE I
7
XSK I 15 /TO MAX=7
LDA
17
STC XMOVE /CURRENT POSN
JMP RESTOR /CONT DISP
/
/ARRIVES HERE IF POSSIBLE SACCADE WASNT
/ONE: ADD SAC TIME TO FIX TIME AND
/RESUME CURRENT FIXATION
/
SAMFIX, CLR
STC FIXING /RESET FIX
ADD 15
ADM
14
COM
ADD C776 /MAX=776
APO I
JMP .+3
SET I 14
776
SET I 15
0
JMP PERSIS
/
/RESET LINE CONTROL WORD ARRAY SO THAT
/WINDOW WIDTH=-MWDL-MWDR WORDS AROUND
/FIXATION POINT. OFFSET=-MWDL WORDS,
/UNLESS YOKE NON-0: THEN ADD IT TO OFSET
/
RESET, DTEXT
SET I 4
LINCON+1777
SET 6
MLINES
CLR /EACH LINE SET
STA I 4 /TO ALL PERIPH.
XSK I 6
JMP .-2
ADD YFIX
ADD ADLIN2 /=AD-1 WINDOW
STC 1 /LINE CONTR WD
ADD YFIX
ADD ADLIN1
STC 2
LDA I 2 /AD-1/2 TEXT LN
STC 2
/FIXATED CHAR=XFIX-TH OR LAST IF XFIX
/BEYOND END OF LINE.
ADD XFIX
ADD MNCH
APO I
JMP .+4
LDA
XFIX
JMP .+4
LDA I
MNCH, 0
COM
ROR 1
ADD 2 /=AD-1/2 FIX CHR
STA
5
ADD ONE
STC 3
SET I 4
MWDR, -2 /WDS RIGHT FIX
JMP LETFOR
SKP
JMP .-2 /WAIT FOR LETTER
JMP LETFOR
JMP .-1 /WD=LETTER,NON-L
XSK I 4 /ANOTHER WORD R?
JMP MWDR+1
SET I 4
MWDL, -1 /WDS LEFT FIX
JMP LETBAK
SKP
JMP .-2 /WAIT FOR LETTER
JMP LETBAK
JMP .-1 /GOING LEFT
XSK I 4 /ANOTHER WORD L?
JMP MWDL+1
ENDL, LDA
3
C17, COM
ADD 5
ROL 1
ADD M1 /CHARS IN CENTER
COM
STC MWIDTH
ADD 2
COM
ADD 3
ROL 1 /CHARS IN "LEFT"
ADA I
YOKE, 0 /WORD-NON-W PARA
APO
CLR
COM
STA I 1 /=LINE CONTROL
/YOKE=-YOKE FOR RANDOMLY VARYING
LDA
YOKE
COM
STC YOKE
JMP DISPLA
/
/SUBR RETURNS .+1 IF NEXT TEXT CHAR IS
/LETTER, .+2 IF NON-LETTER, AND TO
/"MWDL"-1 IF END OF LINE (43)
/
LETFOR, LDH I 5
SHD I
4300
JMP MWDL-1
ADD M32
APO I
XSK I
JMP
/
/SUBR DOES REVERSE OF "LETFOR", GOING
/BACKWARD THRU TEXT. GOES TO ENDL IF AT
/LINE START (57)
/
LETBAK, LDA I
-4000
ADM
3
LDH 3
SHD I
5700
JMP ENDL
ADD M32
APO I
XSK I
JMP
/
/SUBR SETS UP RETURN SWEEP DETECTOR=NO.
/CHARS/LINE/2
/
SETXR, LDA
0
STC SETXRJ
ADD YFIX
ADD ADLIN1
STC 1 /AD-1 Y LINE PTR
DTEXT
LDA I 1
STC XRJ /AD-1/2 TEXT LN
ADD YFIX
ADD MLINES
SAE I
-1 /BOTTOM LINE?
JMP XRJ-1
LDA
XRJ
COM
ADD ENDPAG
JMP .+5
LDA I
XRJ, 0
COM
ADA I 1
ROL 1
ADD M1 /IGNORE 43 & 57
COM
STA
MNCH
COM
SCR 1
STC CH2
LDA I
-2
STC NFIXLN /INIT LINE TRIGR
SETXRJ, HLT /RJ
/
/CONTROL REACHES HERE WHENEVER INTERRUPT
/OCCURS FROM RESPONSE PANEL. IF TBLK=
/CALBLK, MEANS END "VERIFY"-GO TO "READ
/ELSE, ALREADY IN "READ": END OF PAGE IF
/LEFT BUTTON, SHIFT UP LINE IF RIGHT
/
PANEL, IOB
6311 /PANEL FLAG?
JMP ERROR /NO:SPURIOUS
CLR
IOB
6316 /READ&CLR PANEL
SHD I
0 /LEFT KEY?
JMP NUPAGE
/SHIFT UP LINE: Y=MAX(0,Y-1)
LDA
YFIX
AZE I
JMP RESET /NO CHANGE
ADD M1
APO
CLR
STC YFIX /-0=0
JMP SETXR /NEW LINE
JMP RESET
/HERE IF LEFT KEY: UNLESS TBLK=CALBLK,
/SIGNALS END-PAGE
NUPAGE, LDA
TBLK
SAE
CALBLK
C456, SKP
JMP READ /END "VERIFY"
LDA I
7777
JMP STORE /PAGE END-MARKER
/NOW CHECK IF THERE"S MORE OF TEXT.
LDA I
DLINES, 0
ADD MLINES /LAST PAGE DONE
AZE /IF MLINES<LINES
JMP QUESTN /DO QUESTIONS
/STILL LAST PAGE? FETCH NEXT PAGE TO SEE
LDA I
ENDPAG, 0 /PTR END CURR PG
STC PAGEPT
JMP SETPAG /GET NEXT PAGE
ADD MLINES /0 LINES:DONE
AZE
JMP RUNPAG /DO NEXT PAGE
JMP QUESTN /DO QUESTIONS
/
/SUBR STORES AC VIA 13 INTO DATA BUFFER;
/WHENEVER END OF MBLK REACHED, ITS
/WRITTEN OUT VIA THE "NO PAUSE" AXO OPT.
/
STORE, DATA /DATA FILE LDF
STA I 13 /=JMP IF INHIBIT
LDA
13
BSE I
7400 /WILL BE 7777
AZE /IFF END MBLK
JMP /NOT END:RETURN
/END MBLK: WRITE IT UNIT 1 & INCR DATBLK
STD /HAVE TIMING ERR
JMP ERROR /IF IN PROGRESS
WRITE, ADD 13 /CONVERT TO ABS.
BCL I /ADDR.BEGIN.MBLK
377 /=3000 OR 3400
TMA
LDA I
30 /ENABLE EX AD &
AXO /NO PAUSE OPTION
LDA
DATBLK
STC .+2
WRC U
0
ADD /SAVE RET JMP
STC STORET
XSK 13 /IF LAST MBLK OF
JMP .+3 /BUFFER, RESET
SET I 13 /13 TO AD-1 1ST
2777 /BUFFER MBLK
ADD ONE
ADM
DATBLK /INCR.FOR NEXT
SAE I
1000
STORET, HLT /RJ
JMP ERROR /NO WRITE-AROUND
/
/SUBROUTINE DISPLAYS PAGE OF TEXT =
/"MLINES" OF TEXT, USING THE ARRAY OF
/TEXT-LINE POINTERS AND LINE CONTROL
/WORD ARRAYS.CONTROL<+0 MEANS THAT
/(UP TO) -CONTROL CHARS SHOWN LEFT OF
/WINDOW (IF ANY), FOLLOWED BY WINDOW
/AND THEN (IF ANY) REMAINING CHARS IN
/PERIPHERAL DISPLAY CONDITION. CONTROL=
/+0 MEANS SHOW ENTIRE (NON-FIXATED) LINE
/IN A SPECIAL PERIPHERAL STATUS.
/
SHPAGE, LDA
0
STC PGEXIT
DTEXT /TEXT,PWS,CONTRL
SET I 6
MLINES, -10 /-LINES TO SHOW
ADD YFIX /STARTING LINE
ADD ADLIN1
STC 3 /AD-1 ST. LIN AD
ADD YFIX
ADD ADLIN2
STC 4 /AD-1 ST.LIN.CON
ADD YFIX
MUL
DY
ADD YTOP
STC Y /INITIAL V.C.
NXLINE, SET I 1
C776, 776 /=-2 HC CHAN 1
LDA I 3
AZE I /LINAD=0:CONT ON
JMP WRAPUP /TOP OF DISPLAY
STC 7 /AD-1/2 LINE TXT
LDA I 4 /LINE C-WORD
APO
JMP FIXLIN /<+0: FIX. LINE
/NON-FIXATED LINE: USE STANDARD PERIPH:
/(STPERD,STBLNK,STMASK)
STC 5 /XSK TO END LINE
LDA I
STPERD, -32
STC PERDEF
LDA I
STBLNK, 4000
STC BLKDEF
LDA I
STMASK, 7777
/
/SECTION TAKES AC & DEFINES IT AS MASK.
/SHOWS CHARS UNTIL EITHER END OF LINE
/(43) OR XSK ENDS, AT WHICH TIME RETURNS
/WITH JMP AT NEXTAD.
/
SHOSEG, STA
PATRN+2076 /BLANK PW=MASK
STC MASKPW
NXCHD, LDH I 7 /NEXT CHAR
SHD I /IF BLANK, SHOW
BLKDEF, 4000 /IF BLKDEF=4000
JMP BLANK
SHD I
4300 /43=END LINE
JMP CHNXLN
/PERDEF=JMP ONPER (SHOW ALL) OR JMP
/MASKCH (MASK ALL) OR ADD M32 (MASK
/ONLY LETTERS & DIGITS).
/
PERDEF, HLT
APO
JMP MASKCH
LDH 7
ADA I /CHECK FOR DIGIT
-57
APO
JMPPER, JMP ONPER /SHOW NON-DIGIT
ADA I
-12
APO
JMPMSK, JMP MASKCH /MASK DIGIT
ONPER, LDH 7
ROL 1
ADA I
PATRN+1776 /FORM PW ADR
STC 2
ADD Y
DSC 2
DSC I 2
XSK I 1 /ADVANCE HC
XSK I 5 /ANOTHER?
JMP NXCHD /REPEAT
NEXTAD, HLT /JMP EXIT
/SECTION CHECKS FOR END OF LOOP
/
CHNXLN, LDA I
DY, -40 /LINE SPACING
ADM
Y /Y FOR NEXT LINE
XSK I 6 /ANOTHER LINE?
JMP NXLINE
PGEXIT, HLT /RETURN
/
/FIXATED LINE: FIRST SET OF CHARS ARE
/SHOWN IN LEFT STATUS (LETTERS,AND/OR
/PUNCTUATION, AND/OR BLANKS MASKED AND
/ /OR ARE BLANKED), NEXT MWIDTH IN
/CENTER STATUS, REMAINDER IN RIGHT.
/PERIPHERAL SPACES ARE SHOWN IF BLKDEF=
/4000; WONT BE MASKED VIA (0 OR 7777)
/MASK IF=0.
/
FIXLIN, AZE I
JMP WINDOW /-0:NO LEFT PER.
STC 5
LDA I
LPERD, 0
STC PERDEF /LEFT SEG PERDEF
LDA I
LBLANK, 0
STC BLKDEF /BLANKS LEFT?
ADD FIXLIN+1 /NEXT SEG=CENTER
STC NEXTAD
LDA I
LMASK, 0 /LEFT MASKPW
JMP SHOSEG /GO!
/SECTION SKIPS BLANK DISPLAY
BLANK, LDA I
11
ADM
1 /SKIP BLANK CHAR
XSK I 5 /ANOTHER CH?
JMP NXCHD
JMP NEXTAD /TO NEXT SECTION
/SECTION SUBSTITUTES (MASPW,0000) FOR CH
MASKCH, LDA I
Y, 0
DSC I
MASKPW, 7777
LDA I
5
ADM
ONE, 1 /SKIP 2ND PW
XSK I 5 /ANOTHER CH?
JMP NXCHD
JMP NEXTAD /TO NEXT SECTION
/2ND SEGMENT FIX LINE: CENTER ("WINDOW")
/FIRST DISPLAY FIX MARKER CHAN 2 ONLY
/
WINDOW, SET I 5
MWIDTH, -0 /PRESET WIDTH
SET 2 /HOLD HC
1
LDA
XFIX
MUL I
11
ADD C4000 /CHAN 2
STC 1
ADD Y
ADA I
C20, 20
DSC I
77
SET 1
2 /RESTORE HC
LDA I
WBLANK, 0
STC BLKDEF /BLANKS?
LDA I
WPERD, 0
STC PERDEF
LDA I
JMP SRIGHT
STC NEXTAD /LAST SECTION
LDA I
WMASK, 0
JMP SHOSEG /GO!
/
/DONE WITH WINDOW: FINISH LINE IN
/PERIPHERAL MODE; 5 IS AT -0 AND HENCE
/WILL XSK UNTIL END OF LINE DETECTED
/
SRIGHT, LDA I
RPERD, 0
STC PERDEF
LDA I
RBLANK, 0
STC BLKDEF
LDA I
RMASK, 0
JMP SHOSEG
/
/CONTROL PASSES HERE WHEN DISPLAY BEGAN
/AT NON-TOP LINE OF PAGE. NOW MUST RESET
/POINTERS 3 (LINADS) AND 4 (LINCONS)
/AND Y. CONTINUE DISPLAY AT TOP LINE
/
WRAPUP, SET I 3
ADLIN1, LINADS+1777
SET I 4
ADLIN2, LINCON+1777
LDA I
YTOP, 361 /TOP LINE Y
JMP NXLINE-1
/
/END OF PAGE DISPLAY SUBROUTINE.
/
/SUBROUTINE SETS UP PAGE DISPLAY.
/FILLS ARRAY "LINADS" WITH 1/2 WORD
/POINTERS-1/2 FOR EACH OF NEXT "LINES"
/OF TEXT, WITH EXTRA +0 AT END FOR WRAP-
/AROUND DISPLAY. SKIPS LEADING 57 ("/")
/AT BEGINNING OF EACH LINE.
/
/QUESTION MODE:
/WHEN DLINES INITIALIZED=-0 (THEN 6
/COUNTS LINES). END OF TEXT FOR EACH
/QUESTION SIGNALLED BY NON-"/" AT LINE
/START, FOLLOWED BY ANSWER, THEN CR.
/
SETPAG, LDA
0
STC SETRET
DTEXT
ADD DLINES /NO. TO DISPLAY
COM
STA
MLINES
STC 6
SET I 7
PAGEPT, 6001 /PTR START PAGE
SET I 3
LINADS+1777 /LINE POINTERS
SET I 4
LINCON+1777 /LINE CONTRL WDS
CODLIN, JMP NXTCH /SUBR GETS NX CH
JMP SETPAG+4 /RET.HERE BF FLO
AZE I /" " AC=NEXT CH.
JMP ENDFIL /END OF FILE
SHD I
5700 /START OF LINE?
JMP NEWLN
/LINE DOESN"T BEGIN WITH "/": SHOULD BE
/QUESTION MODE. IF SO (6>0),
/NEXT CHAR=DIAL-TAB (47),FOLLOWED BY
/ASCII ANSWER AND THEN CR. IF NOT:ERROR!
SAE I
47 /DIAL-TAB?
JMP ERROR
LDA
6
APO
JMP ERROR
AZE I /MUST HAVE>0 LNS
JMP ERROR
COM
STC MLINES /MLINES=-C(6)
JMP NXTCH
JMP SETPAG+4 /BUFFER END
JMP NXTCH /ANSWER IN BUFFR
JMP SETPAG+4 /CR NOT " "
SAE I
43 /CR?
JMP ERROR
JMP SETRET-4
/BEGINNING OF LINE OF TEXT
NEWLN, LDA
7
STA I 3 /NEXT LINE PTR
JMP NXTCH
JMP SETPAG+4 /RESET BUFFER
SAE I /SKIP TO END OF
43 /LINE=43
JMP .-4
CLR /EACH LINE CONT
STA I 4 /INIT=+0
XSK I 6 /ANOTHER LINE?
JMP CODLIN
LDA
7
STC ENDPAG /SAVE END PTR
STA I 3 /DUMMY LINAD=0
SETRET, HLT /RJ
/END OF FILE ENCOUNTERED: DECREASE NO.
/OF LINES TO BE DISPLAYED (NORMAL MODE)
/OR JMP "FINISH" (QUESTION-MODE).
/
ENDFIL, ADD 6
APO />-0:QUEST.-MODE
JMP .+4
AZE
JMP ERROR />0:QST W/O ANSW
JMP FINISH /NO MORE QUESTS.
COM
ADD MLINES
STC MLINES
JMP SETRET-4 /RETURN
/
/SUBR INPUTS NEXT CHAR FROM TEXT FILE BY
/LDH I 7. CHECKS FOR TEXT POINTER=END OF
/TEXT BUFFER. IF AT END, PUSHES ENTIRE
/BUFFER DOWN SO THAT "PAGEPT" IS IN 1ST
/BUFFER BLOCK; THEN RETURNS CALL+1 WITH
/AC=0. ELSE RETURNS CALL+2 WITH AC=CHAR.
/
NXTCH, SET 5
0 /SAVE RJ
LDA
7
SAE I
7377 /7377=END BUFFER
JMP NXTRET+1 /NOT END
LDA
PAGEPT
BCL I
6377 /BITS 2,3=BLOCK
SCR 10 /=NO. SHIFT DOWN
ADD TBLK /NEW LOW TBLK
JMP TEXTIN /SUBR READS TEXT
ADD PAGEPT
BCL I
1400 /RESET PAGEPT
STC PAGEPT /INTO 1ST BLOCK
NXTRET, JMP 5 /RETURN CALL+1
XSK I 5
LDH I 7 /WITH AC=CHAR,
JMP 5 /RETURN CALL+2
/
/SUBR TAKES AC=TBLK, STRIPS BITS 0-2,
/AND THEN READS IN 3 TBLKS (UNIT 0) INTO
/TEXT BUFFER (BLOCKS 0-2 LDF 2)
/
TEXTIN, BCL I
C7000, 7000
STC TBLK
ADD
STC TXIRET /RJ
STD
JMP .-1 /WAIT IF BUSY
AXO /NO EXT.TAPE OPS
DTEXT
ADD C4000
JMP TBLKIN /1ST BLOCK IN
LDA I
5001
JMP TBLKIN /2ND BLOCK
LDA I
6002
JMP TBLKIN /3RD BLOCK
TXIRET, HLT /RJ
/
/SUBR TAKES MBLK FROM AC, ADDS TBLK
/TO IT, AND THEN READS BLOCK (UNIT 0)
/
TBLKIN, ADA I
TBLK, 0
STC .+2
RDC
0
JMP
/
/END OF PAGE ENCODING ROUTINE
/
/SUBR INPUTS 1ST 3 BLOCKS OF TEXT FILE
/INTO BUFFER, TAKING TBLK FROM AC.
/SETS PAGEPT=6001 (SKIPS INITIAL "*20"
/LINE OF FILE) AND THEN CALLS "SETPAG".
/
NEWTEX, STC D /SAVE AC=TBLK
ADD
STC NEWRET
ADD C6001
STC PAGEPT
ADD D
JMP TEXTIN
JMP SETPAG
NEWRET, HLT /RJ
/
/SUBR POSITIONS TAPE UNIT 0 AT TBLK=AC
/WITH "NO PAUSE" OPTION
/
TAPPOS, STC TAPRET-1
ADD
STC TAPRET /RJ
STD
JMP .-1 /WAIT IF BUSY
LDA I
C10, 10
AXO /NO PAUSE
CHK
0
TAPRET, HLT /RJ
/
/WHEN FATAL ERROR OCCURS, TYPE "ERROR" &
/RESTART AT "MONIT" :JMP PC IN AC
/
ERROR, LDA
0
STC D
SET I 12
ERLABL-4000 /PTR TO "ERROR"
PROG1 /LIF 1
JMP MESSAG /CR,CR,"ERROR"
ADD D /JMP PC IN AC
JMP MONIT
/
/LOAD-TIME ONLY: SETUP 3000-377 REBUILD
/
LOAD, HLT
DATA
WRC
6274 /274:03000-3377
MONIT, HLT
CLR
AXO /NORM MODE
DATA
RDC
6274 /RESET 3000-377
LDA I
CALBLK, 270 /GET ADJ&CALIBR&
JMP TAPPOS /VFY TEXTS NO PS
/INITIALIZE "TYPE" FOR NO DISPLAY PAUSE
CLR
IOB
6046 /DUMMY TLS INIT.
ADD C456 /=SKP
STC HOLDIS
/START CLOCK FOR 120 CPS SAMPLING
LDA I
100
PDP
PMODE
CLEN
TAD C2000 /2100=100 KHZ
CLLR
CLA
TAD MDT
CLAB
LINC
LMODE
/TYPE-IN OF PARAMETERS
/CTRL/C DURING INPUT RESTARTS AT INPAR
INPAR, DATA
SET I 13
PGCODE /PGCODE FIXED
SET I 12 /AD-1/2 PARAM
LABEL1-4000 /LABELS (HF-WDS)
SET I 6
-11
PGET, XSK I 13
PROG1
JMP MESSAG /TYPE PARAM LABL
TYVAL, LDA 13
PROG1
JMP DECPUT /TYPE CUR VAL
PROG1
JMP GETDEC /I3 DEC INPUT
STC Y /SAVE INPUT
LDA /C(2003)=-4:
2003 /INITIAL CR:KEEP
ADD C4 /CURRENT VALUE
AZE I
JMP .+4
C1000, LDA
Y
STA 13
XSK I 6 /ANOTHER PARAM?
JMP PGET
/INPUT VECTOR LISTS FOR NO. WORDS LEFT
/RIGHT OF CENTER + CENTER&PER CONDS
/FOR EACH, TYPE 1-15 VALUES
/SEPARATED BY ",", WITH CR AFTER LAST.
LDA I
17 /AD-1 1ST VECTOR
STA
ADVEC+2000 /VECTORS IN LDF1
SET I 16
-5 /5 VECTORS
VECTOR, PROG1
JMP MESSAG /VECTOR LABEL
PROG1
JMP GETVEC /INPUT
XSK I 16
JMP VECTOR
/HAVE PARAMETERS
LDA
TOPLIN
APO
JMP ERROR /CANT BE <0
MUL I
M20, -20
ADA I
C361, 361
STC YTOP
ADD C40 /ENABLE 1/2-SIZE
C4, ESF /NO TTY INTERUPT
JMP ADJUST
/
/BEGIN NEXT PAGE "RUN"
/
RUNPAG, PROG1
JMP PAGPAR /FETCH VECTORS
JMP STORE /AC=INCR. NPAGE
LDA
MLINES
COM
JMP STORE
LDA
2 /MWDR W/YOKE
JMP STORE
LDA
MWDL
JMP STORE
LDA
1 /COMBINED PERIPH
JMP STORE
/INITIALIZE EYE-POSITION SAMPLERS SO
/THAT PROGRAM STARTS IN "MOVING" MODE
/WITH DUMMY FIXATION AT (77,0). ALLOWS
/WINDOW TO BE SET IMMEDIATELY AFTER
/CREATING DUMMY (77,0) (D,S) PAIR
/AT TOP OF PAGE-FILE.
/
INIT, LDA I
77
STC XFIX
ADD INIT+1
STC FIXING /"MOVING"
STC YFIX
STC 14
STC 15
JMP SETXR /INITIAL LINE
JMP CLRPAN
DISPLA, IOB
6001 /ION
JMP SHPAGE
JMP .-1 /KEEP DISPLAYING
M32, -32
/
/THIS SECTION DISPLAYS 3 X 3 "X" PATTERN
/OVER PARAMETER-SELECTED DISPLAY AREA,
/PROCEEDING TO CALIBRATE WHEN SW 5 DOWN.
/FIRST READS IN TBLKS=270-272:3 LINES
/ADJUST PATTERN+16 LINES CALIBR/VERIFY,
/
ADJUST, LDA I
3
STC DLINES
STC YFIX /SO SHPAGE WORKS
ADD CALBLK
JMP NEWTEX
ADD TEXBLK
JMP TAPPOS
LDA I
M1, -1
ADD LINES
MUL
SPACIN
SCR 1
MUL I
-20
STC DY
ADD JMPPER
STC STPERD
ADD C4000
STC STBLNK /ALL TEXT SHOWN
IOB
6314 /CLR PANEL
JMP SHPAGE /PATTERN ON
SNS 5
JMP CALIBR /UNTIL SW 5 OFF
IOB
6311 /OR PANEL HIT
JMP .-5
/
/CALIBRATION SECTION.
/THIS CALIBRATION IS 8 POINTS /LINE,
/WITH A SEPARATE X-CALIB. FOR EACH LINE,
/UNLESS SW 2 UP: THEN ONE CALIB/2 LINES
/
CALIBR, LDA
LINES
STC DLINES
ADD SPACIN
MUL I
-20
STC DY
ADD AM32
STC STPERD /SET STANDARD
ADD C4000 /PERIPHS
STC STBLNK
COM
STC STMASK
ADD ENDPAG
STC PAGEPT /SETUP CALBLK
JMP SETPAG /SETUP CALBLK
SNS 4
JMP VERIFY
/SET "TYPE" FOR DISPLAY THRU TTY OUTPUT
ADD JMPCAL /=JMP SHOCAL
STC HOLDIS
/S FIXATES EACH SQUARE SUPERIMPOSED ON
/CALIB. TEXT (ALL PERIPH.) AND WHILE
/FIXATING HITS PANEL KEY, THEN MOVES ON.
/
RECAL, ADD LINES /ERROR RESTART
SNS 2 /1/2 SW 2
JMP .+3
ADD ONE
SCR 1
COM
STC 14
SET I 17
2417 /AD-1 X-STORE
TABLES
ADD YTOP
CLINE, STC YCAL /V.C. CURRENT LN
ADD C776
STC XFIX /H.C. CALIB PT.
SET I 12
CELAB+4000
PROG1
JMP MESSAG /CR,LF
SET I 15
M10, -10
LDA I /=MAX VAL+MINDV
1037 /***************
STC LASTV
CSPOT, JMP CLRPAN /CLEAR PANEL
JMP SHPAGE
JMPCAL, JMP SHOCAL /AND CALIB. SQ.
IOB
6311
JMP .-4
JMP CLRPAN
/SYNCHRON SAMPLE ON CLOCK BEAT
IOB
6135 /CLSA
IOB
6131 /CLSK
JMP .-2
XSAMP /GET X-VOLTAGE
ADD C1000
SCR 2
STA
11 /TEMP X
/TYPE X FOR EACH POINT
/DISPLAY REMAINS ON THROUGH TYPE-OUT
PROG1
JMP DECPUT /TYPE X
SET I 12
CRLF+4000 /" "
PROG1
JMP MESSAG
ADD 11
AZE I
JMP CALERR /RIGHT EDGE!!
TABLES
STA I 17 /STORE X-VAL
ADA I /MIN GAIN X-X0
MINDV, 40 /***************
COM
ADD LASTV
APO
JMP CALERR /GAIN TOO SMALL
LDA 17
STA I
LASTV, 0
LDA I
110 /CAL PT SPACING
ADM
XFIX /H.C. NEXT PT.
XSK I 15 /ANOTHER PT/LINE
JMP CSPOT
LDA
DY
SNS I 2 /SKIP LINE SW 2
ADD DY
ADD YCAL
XSK I 14 /ANOTHER LINE?
JMP CLINE
/INTERPOLATE: LIF 3
LIF 3
JMP INTERP
/CALIB ERROR: TYPE "?" & RESTART
/
CALERR, SET I 12
CELAB-4000
PROG1
JMP MESSAG
EXIT1, JMP RECAL /RESTART CALIBR
/
SEGMNT 3
*20
/NOW FOR EACH L (L=0,LINES-1), SETUP A
/256-ELEMENT MATRIX FOR X-POSN AS
/FUNCTION OF X-VOLT.: FOR EACH VOLTAGE V
/(0,377 OCT) INTERPOLATE X-POS (0,70 O)
/AT 256*L+V IN PDP FIELD 1.
/2 LINES/INTERP SW 2 UP
INTERP, LDF
LDA
LINES+2000
SNS 2
JMP .+4
ADA I
1
SCR 1
COM
STC 11
SET I 15
417 /AD-1 X-VALUES
SET I 16
420 /AD X-VALS
LDA I
LDF 4 /INITIAL LDF=4
NEWLDF, STC TABLDF
LDA I
2000
INTERX, STC LOOKUP /BEGIN CUR LDF
ADD LOOKUP
ADA I
777 /***************
STC 17 /TOP OF TABLE
STC 6 /START X-POS=0
SET I 14
-7 /8-1 INTERVALS
INTX1, LDA I 16
COM /FORM VOLT. DIFF
ADA I 15 /NEXT INTERVAL
STC DV
SET I 10 /INTERP. 8 PTS
-10 /PER INTERVAL
SET I 2 /AT 1/16,3/16,
1 /...,15/16 *D
ADD 2
INTX2, MUL I /FORM NEXT POINT
DV, 0 /=N*DV/16
ROR 4
BCL I /LIKE SCR 4
7400 /IGNORING SIGN
COM /POSN REL.TO TOP
ADA 15 /(LEFT)OF INTER.
JMP TABFIL /AND FILL DOWN
XSK I 6 /NEXT X-POSN
LDA I
2
ADM
2 /NUMER. NEXT PT.
XSK I 10 /ANOTHER PT/INT?
JMP INTX2
XSK I 14 /ANOTHER INTERV?
JMP INTX1
CLR /FILL DOWN REST
JMP TABFIL /X=70 (RIGHTMOST
/END OF INTERPOLATION CURRENT TABLE.
/INCREMENT LOOKUP BY 400 (AND TABLDF IF
/NEEDED) AND DO NEXT TABLE.
XSK I 11 /ANOTHER TABLE?
SKP
JMP CALDON /CALIB DONE!
XSK I 15 /POINTERS TO
XSK I 16 /NEXT SET X-AVGS
LDA I
1000 /***************
ADD LOOKUP /AD NEXT TABLE
SAE I
4000 /END CUR LDF?
JMP INTERX /DO NEXT TABLE
ROL 1 /AC=1
ADD TABLDF
JMP NEWLDF /NEW LDF,LOOKUP
/
CALDON, PROG0
JMP VERIFY /CALIB DONE!!
/
/SUBROUTINE FILLS DOWN THRU ADR=AC
/(INCLUSIVE), SETTING EACH ELEMENT=C(6).
/STARTING FILL AD=C(17) IN LDF=TABLDF
/
TABFIL, ADA I
LOOKUP, 0 /PARAM=AD TABLE
STC FILEND /LOWEST FILL ADR
TABLDF, HLT /LDF OF TABLE
LDA
6 /X POSN
STA 17
LDA I
-1
ADM
17 /NEXT LOWER ADR
COM
ADA I
FILEND, 0 /DONE IF >-0
APO I
JMP /DONE:RETURN
DJR /PROTECT RJ
JMP TABFIL+4
/
/END INTERP. SEC.
/
SEGMNT 0
*EXIT1+1
/
/SUBR DISPLAYS "X"(XFIX,YCAL)
/
SHOCAL, SET 1
XFIX
LDA I
YCAL, 0
DSC I
1463
DSC I
6314
JMP
/
/"VERIFY" SECTION: ONLY FIXATED WORD
/SHOWN CLEARLY. USES CALIBR TEXT.
/INHIBITS DATA OUTPUT.
/PANEL KEY PROCEEDS TO "READ" TASK. SW
/3 DOWN AT START SKIPS DIRECTLY TO "READ
/
VERIFY, SNS 3
JMP READ /SKIP VERIFY
LDA I
JMP
STC STORE+1 /INHIBIT WRITING
ADD M1
STA
MWDR
STC MWDL /SINGLE-WORD WIN
STC YOKE
LDA I
AM32, ADD M32
STA
LPERD
STC RPERD
ADD JMPPER
STC WPERD
ADD C4000
STA
LBLANK
STA
WBLANK
STC RBLANK
COM
STA
LMASK
STC RMASK
JMP INIT /START DISPLAY
/
/EXECUTE "READ" TASK.
/
READ, LDA I
STA I 13 /DISINHIBIT
STC STORE+1 /DATA WRITING
STA I
NPAGE, 0 /INIT.PAGE=0
ADD C456 /RESET "TYPE" TO
STC HOLDIS /NO-DISPLAY MODE
/INITIALIZE PROG1 PTRS TO PARAM.-VECTORS
DATA
SET I 1
2012
SET I 2
-5
ADD C17
STA I 1
ADD C20
XSK I 2
JMP .-3
LDA
TEXBLK
JMP NEWTEX /FETCH TEXT
/POSITION DATA FILE (UNIT 1) AT DATBLK
ADD DATBLK
STC .+4
ADD C10
AXO /NO PAUSE
CHK U
0
/BEGIN DATA FILE W/ PARAMETER LIST
DATA
SET I 13
2777 /START AT 3000
SET I 12
PGCODE-1 /PARAMETER ARRAY
SET I 6
-12
LDA I 12
STA I 13
XSK I 6
JMP .-3
JMP RUNPAG /RUN 1ST PAGE
/
/DIVERSION FROM "TYPE" WHEN TTY NOT
/READY: DO NOTHING (HOLDIS=SKP) OR
/REFRESH PAGE & CALIB SQ (=JMP SHOCAL)
/
HOLDIS, HLT
JMP SHPAGE
PROG1
JMP TYPE+3
/
/FAIL-SAFE PANEL CLEAR
/
CLRPAN, IOB
6314
IOB
6311
JMP
DJR /ERROR:TRY AGAIN
JMP CLRPAN
/
/QUESTION-SECTION VOID RIGHT NOW!!!
/WRITE FINAL END-MARKER
/
QUESTN, LDA I
7777
JMP STORE
FINISH=QUESTN
/WRITE OUT LAST DATA-FILE BLOCK UNLESS
/LAST END-MARKER TRIGGERED IT
LDA
13
BSE I
7400 /WILL BE 7777
AZE I /IFF END MBLK
JMP WDONE /IN PROG:WAIT
/NOT YET OUTPUT: WRITE CURRENT MBLK
STD
JMP .-1
CLR
JMP WRITE
WDONE, STD
JMP .-1
ENDJOB, JMP MONIT /DONE!!
/
/END Q-CHAIN INSERT
/
/FOLLOWING SUBROUTINES AND OUTPUT LABELS
/FIT INTO PROG1 (LIF 1) BELOW THE 2-BLOK
/DATA OUTPUT BUFFER.20-137:VECTOR STORAG
/
SEGMNT 1
*140
/ARRIVES FROM "RUNPAG" BEFORE EACH NEW
/PAGE OF TEXT RUN: SETS EACH OF 4 VECTS
/TO NEXT ELEMENT (5000=RESET TO TOP)
/AT 20,40,60,100,120 VIA 13,14,15,16,17
/
PAGPAR, LDF
LDA I 13
SAE I
5000
JMP .+4
SET I 13
17
JMP .-6
/RWORDS/LWORDS: NO. R/L, EXCLUDES
/FIXATED WORD. RWORD<0 MEANS YOKE=+-2
/ELSE YOKE=0. YOKE="SLIDE" OF WINDOW
STA
2002
APO
COM
ADA I
C1, 1
COM
STA
MWDR+2000
LDA 13
APO I
JMP .+4
LDA I
2
SKP
CLR
STA
YOKE+2000
LDA I 14
SAE I
5000
JMP .+4
SET I 14
37
JMP .-6
ADD C1
COM
STA
MWDL+2000
LDA I 15
SAE I
5000
JMP .+4
SET I 15
57
JMP .-6
/CENTER,LEFT,RIGHT CONDS: BIT 8: 1=7777
/MASK, 0=0000 MASK. BIT 9: 1=MASK BLANK
/BITS 10-11: 00=SHOW ALL NON-BLANKS, 10=
/MASK LETTERS&DIGITS,11=MASK NON-BLANKS.
BCL I
7767
AZE I
JMP .+3
CLR
COM
STA
WMASK+2000
LDA 15
BCL I
7773
ROR 3
STA
WBLANK+2000
LDA 15
BCL I
7774
AZE I
JMP SC-2
SAE I
2
JMP .+4
LDA I
ADD M32
JMP SC
LDA I
JMP MASKCH
JMP SC
LDA I
JMP ONPER
SC, STA
WPERD+2000
LDA I 16
SAE I
5000
JMP .+4
SET I 16
77
JMP .-6
BCL I
7767
AZE I
JMP .+3
CLR
COM
STA
LMASK+2000
LDA 16
BCL I
7773
ROR 3
STA
LBLANK+2000
LDA 16
BCL I
7774
AZE I
JMP SL-1
SAE I
2
JMP .+4
LDA I
ADD M32
JMP SL
LDA I
JMP MASKCH
SKP
ADD SC-1
SL, STA
LPERD+2000
LDA I 17
SAE I
5000
JMP .+4
SET I 17
117
JMP .-6
BCL I
7767
AZE I
JMP .+3
CLR
COM
STA
RMASK+2000
LDA 17
BCL I
7773
ROR 3
STA
RBLANK+2000
LDA 17
BCL I
7774
AZE I
JMP SR-1
SAE I
2
JMP .+4
LDA I
ADD M32
JMP SR
LDA I
JMP MASKCH
SKP
ADD SC-1
SR, STA
RPERD+2000
LDA 15
ROL 4
ADA 16
ROL 4
ADA 17
STA
2001 /COMPOSITE CONDS
LDA I
1
ADM
NPAGE+2000 /INCR NPAGE
PROG0
JMP RUNPAG+2 /RJ,AC=NPAGE
/
/SUBR TYPES AC AS SIGNED DECIMAL INTEGER
/
DECPUT, STC 4 /SAVE ARG
ADD
STC DECRET /RET AD
ADD 4
APO I
JMP .+6 />0:NO "-"
COM
STC 4 /ABS(ARG)
ADD C255
JMP TYPE /"-"
ADD 4
SET I 2
260 /COUNT DIGIT
ADA I
-144 /HUNDREDS
APO
JMP .+3
XSK I 2 /INCR. DIGIT
JMP .-5
AZE I /-0?
JMP .-3 /KEEP GOING
ADA I
144 /RSETORE REM.
STC 4
ADD 2
JMP TYPE /HUNDREDS
SET I 2
C260, 260
ADD 4
ADD MD10
APO
JMP .+3
XSK I 2
JMP .-4
AZE I
JMP .-3
ADD D10
STC 4
ADD 2
JMP TYPE /TENS
ADD C260
ADD 4
JMP TYPE /UNITS
PROG0 /RETURN IN PROG0
DECRET, HLT /R.J.
/
/AFTER TYPING INITIAL SPACE,
/SUBR ACCEPTS SIGNED 3-DIGIT DECIMAL
/INTEGER FROM TTY. LEADING ZEROES NEEDNT
/BE ENTERED; AND A CR IS THE
/TERMINATOR. THE OBTAINED VALUE IS
/RETURNED VIA AC.
/AN INITIAL CR LEAVES AC=0&3=-4 (LIF 1)
/ILLEGAL CHARS/SIGN GENRATE JMP "ENTERR"
/
GETDEC, LDA
0
STC GETRET /R.J.
LDA I
240
JMP TYPE /SPACE
JMP INPUT
ADD ASCII
SAE I
215 /LAST CHAR=CR?
JMP ENTERR
LDA
4
PROG0 /RETURN PROG0
GETRET, HLT /WITH AC=VAL
/
/SUBR TAKES SIGNED DECIMAL INTEGER FROM
/TTY. LEAD BLANKS IGNORED, LEAD 0"S MAY
/BE SUPPRESSED. ECHOES ALL NON-CR CHARS.
/AND EXITS WHEN NON-DIGIT APPEARS (CHAR
/LEFT IN ASCII), WITH SIGNED VAL IN 4.
/
INPUT, LDA
0
STC INPRET
STC 4 /BUILDS VALUE
SET I 2
-2 /INDEXES SIGN
SET I 3
-4 /INDEXES DIGITS
JMP INCHAR /CH&ECHO NON-CR
SHD I
4000 /SKIP LEAD BLNK
JMP .-3
SAE I
215
SKP
JMP HAVEIT /INITIAL CR
SAE I
C255, 255 /"-"?
JMP NEXDIG+1 /SHOULD BE DIGIT
XSK I 2 /SIGN FLAG
NEXDIG, JMP INCHAR
ADA I /DIGIT?
-257
APO
JMP HAVEIT /NO:RETURN
ADA I
MD10, -12 /DIGIT?
APO I
JMP HAVEIT
ADD C11 /RESTORE DIGIT
AZE I
C11, CLR /-0 TO +0
STC 5
XSK I 3 />3 DIGITS?
SKP
JMP HAVEIT
ADD 4
MUL I
D10, 12 /DEC. SHIFT LEFT
ADD 5
STC 4
JMP NEXDIG
HAVEIT, LDA
4
XSK I 2 /SIGN?
SKP
COM
STC 4
INPRET, HLT /RJ
/
/SUBR ACCEPTS TTY CHAR AND ECHOES NON-CR
/LEAVES CHAR IN "ASCII" & AC. IF CTRL/C,
/RESTARTS AT INPAR.
/
INCHAR, LDA
0
STC INCRET
IOB
6031 /KSF
JMP .-2
IOB
6036 /KRB
STA I
ASCII, 0
SAE I
203 /CTRL/C?
JMP .+3
PROG0
JMP INPAR
SAE I
C215, 215
JMP TYPE /ECHO NON-CR
LDA
ASCII
INCRET, HLT /RJ
/
/CONTROL ARRIVES HERE ON ILLEGAL INPUT
/
ENTERR, LDA I
277
JMP TYPE /?
LDA I
C275, 275 /=
JMP TYPE
PROG0 /REDO ENTRY
JMP TYVAL
/
/INPUT FOR VECTOR-PARAMETERS: SAME INPUT
/BUT NULL ENTRIES AREN"T ALLOWED, ","
/SEPARATES MULTIPLE ENTRIES,AND ERRORS
/RESTART ENTIRE VECTOR INPUT. VECTOR AT
/C(ADVEC)+1 UP.
/
GETVEC, SET I 1
-17 /MAX 15/VECTOR
SET I 15
ADVEC, 0
JMP INPUT /GET & STORE
ADD 4
STA I 15 /VECTOR ENTRY
LDA I
4
ADD 3 /NULL ENTRY?
AZE I
JMP VECERR
LDA
ASCII /LAST INPUT CHAR
SHD I
5400 /","?
JMP NXITEM /YES:GET NEXT N
SAE I
215 /CR?
JMP VECERR
VECFIN, LDA I
5000 /END VECTOR=5000
STA I 15
LDA I
20
ADM
ADVEC /AD-1 NEXT VECT.
PROG0
JMP VECTOR+4 /RETURN
NXITEM, XSK I 1 /ROOM 4 1 MORE?
JMP ADVEC+1
JMP VECFIN /NO:CLOSE VEC.
/
/CONTROL HERE IF ERROR DURING VECTOR
/INPUT. TYPES ?,CR,= & RESTART " ".
/
VECERR, LDA I
277
JMP TYPE /?
JMP CRLF
ADD C275
JMP TYPE /=
PROG0
JMP VECTOR+2 /RESTART VECTOR
/
/SUBR TYPES OUT MESSAGE FROM PACKED
/ASCII CODE - 43 GENERATES CR&LF, AND 00
/TERMINATES OUTPUT. ADDRESS OF SOURCE
/POINTED (+1/2) BY 12 FROM PROG0
/
MESSAG, LDA
0
STC MESRET /R.J.
PDP
PMODE
TAD 12 /PASS PROG0(12)
LINC /W/O DIFF LDF
LMODE
STC 12
NXCHAR, LDH I 12
AZE I
JMP C100+1 /SETUP RETURN
SAE I
43 /CR?
JMP .+3
JMP CRLF /DO CR,LF
JMP NXCHAR
ADA I
-37 /ADD 100 OR 200
APO /FOR 8-BIT CODE
ADD C100
ADA I
237
JMP TYPE /TYPE 8-BIT CODE
JMP NXCHAR
C100, 100
ADD 12 /PASS PTR BACK
PDP /TO 1 IN PROG0
PMODE
DCA 12
LINC
LMODE
PROG0 /RETURN IN PROG0
MESRET, HLT /R.J.
/
/SUBR TYPES CR,LF
/
CRLF, LDA
4000 /REG 0
STC CARRET /R.J.
ADD C215
JMP TYPE /CR
LDA I
212
JMP TYPE /LF
CARRET, HLT /RETURN
/
/SUBR TYPES AC
/SPECIAL "DISPLAY" MODE (WHEN HOLDIS=
/JMP SHPAGE) IN WHICH CURRENT PAGE &
/CALIB. PT. DISPLAYED WHILE TSF-ING.
/
TYPE, STC SAVASC
ADD
STC TYPRET /RJ
IOB
6041 /TSF
JMP TYPRET+1 /WAIT
LDA I
SAVASC, 0
IOB
6046 /TLS
CLR
TYPRET, HLT /RJ
PROG0
JMP HOLDIS /REFRESH,WAIT
/
/MESSAGES&LABELS
/
CELAB, 7743 /"?"
4300
ERLABL, 4343
TEXT *ERROR*
LABEL1, 4343
TEXT *SUB-SESS ID=*
0043
TEXT *TEXT TAPE =*
0043
TEXT *TEXT BLOCK =*
0043
TEXT *DATA BLOCK =*
0043
TEXT *QUEST.BLOCK=*
0043
TEXT *TOP LINE NO=*
0043
TEXT *NO.OF LINES=*
0043
TEXT *LN SPACING =*
0043
TEXT *X-CRITERION=*
0043
TEXT *WORDS RIGHT *
4375
0043
TEXT *WORDS LEFT*
4375
0043
TEXT *WINDOW CONDS*
4375
0043
TEXT *LEFT-P CONDS*
4375
0043
TEXT *RITE-P CONDS*
4375
0000
/
/END OF PROG1 SECTION. 3000-4000 THIS
/SEGMENT USED FOR DATA OUTPUT BUFFERING.
/SEGMENT 2: 1ST 3 BLOCKS TEXT BUFFERING
/(4000-5377). THEN PATTERN WORDS (5400-
/5577). THEN LINE ADRESS AND LINE-CONTR
SEGMNT 2
*1400
/PATTERN WORDS FOR CHAR DISPLAY FOLLOWS
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
7000 /APOST.(TYPE ^)
0
3410 /BACK ARROW
1010
0 /BLANK
0
7500 /!
0
7000 /"
70
3614 /NO. SIGN
1436
7721 /$
4677
1446 /%
6130
5166 /&
0523
500 /APOSTROPHY
6
3600 /(
41
4100 /)
36
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 /<
42
1212 /=
1212
4200 />
1024
4020 /?
2055
/16 LINE ADDRESS POINTERS+1 WRAPUP
LINADS, 0
*.+20
LINCON, 0