/

/COPYRIGHT (C) 1975

/DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

/

/THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY

/ON A SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH

/THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS

/SOFTWARE, OR ANY OTHER COPIES THEREOF, MAY NOT BE PRO-

/VIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

/EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO

/THESE LICENSE TERMS.  TITLE TO AND OWNERSHIP OF THE

/SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

/

/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE

/WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COM-

/MITMENT BY DIGITAL EQUIPMENT CORPORATION.

/

/DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY

/OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

	.EJECT

/	VTA.	VT15 DISPLAY DEVICE HANDLER

/	ROLF HUBERT X2067 DECEMBER 1969

/  EDIT#004  S. ROOT

/  EDIT#005	SCR	9/12/75	COPYRIGHT

/  EDIT#006	SCR	9/17/75 IOPS67 FOR XVM

/	DISPLAY IOTS

RS3=703142	/READ STATUS 3

RS1=703002	/READ STATUS 1

RS2=703022	/READ STATUS 2

RYP=703042	/READ Y REGISTER

RPC=703062	/READ PROGRAM COUNTER

RXP=703102	/READ X REGISTER

SPDI=703121	/SKIP ON ANY INTERRUPTING FLAG

SPSF=703001	/SKIP ON INTERNAL STOP

SPLP=703021	/SKIP ON LIGHT PEN

SPPB=703041	/SKIP ON PUSHBUTTON

SPEF=703061	/SKIP ON EDGE FLAG

SPES=703161	/SKIP ON EXTERNAL STOP

LSD=703004	/LOAD AND START DISPLAY

SIC=703024	/SET INITIAL CONIDIONS

STPD=703044	/EXTERNAL STOP DISPLAY

RESM=703064	/RESUME DISPLAY AFTER FLAG

.SCOM=100	/MONITOR COMMUNICATIONS

.MED=3		/(006) MONITOR ERROR ENTRY

	.GLOBL	VTA.

VTA.	DAC	VTCALP		/CAL POINTER

	DAC	VTARGP		/ARGUMENT POINTER

	ISZ	VTARGP		/TO FUNCTION CODE (LOC+1)

	LAC*	VTARGP		/GET FUNCTION CODE

	AND (177

	ISZ	VTARGP		/POINT TO NEXT ARG (LOC+2)

	TAD	(JMP VTDISP	/SET UP FUNCTION DISPATCH

	DAC	.+1

VTDISP	XX			/FUNCTION DISPATCH

	JMP	VTINIT		/1=.INIT

	JMP	VTFST		/2=.FSTAT

	JMP	VTIGNR		/3=.SEEK(IGNORED)

	JMP	VTIGNR		/4=.ENTER (IGNORED)

	JMP	VTRET		/5=.CLEAR (IGNORED)

	JMP	VTCLOS		/6=.CLOSE

	JMP	VTRET		/7=.MTAPE (IGNORED)

	JMP	VTREAD		/10=.READ

	JMP	VTWRIT		/11=.WRITE

	JMP	VTWAIT		/12=.WAIT,.WAITR

	ISZ	VTARGP		/13=.TRAN (IGNORED)

	ISZ	VTARGP

	JMP	VTIGNR

/

IOPS67	LAW	67		/(006)MEMORY VVIOLATION

	JMP*	(.MED+1		/(006)REPORT TO MONITOR

	.EJECT

	/DISPLAY INITIALIZATION SECTION

/SET INITIALIZING PARAMETERS

/

VTINIT	LAC*	VTCALP		/GET CAL

	AND	(3000		/LOOK AT F (BITS7-8)

	SZA			/USE STANDARD INIT PARAMETERS (F=0)

	JMP	VTIN70		/GO GET SPECIAL INIT PARAMETERS.

/CHECK TO SEE WHETHER THIS CALL IS TO CLEAR THE BUSY FLAG ONLY

	LAC*	VTARGP		/GET R

	SNA			/NON-0 MEANS YES

	JMP	VTIN10		/NO, ACTUAL INIT WANTED

	DZM	VTIOB		/CLEAR BUSY FLAG

	ISZ	VTARGP		/INCREMENT ARGUMENT POINTER

	JMP	VTIGNR		/RETURN TO CALLER

/PROCEDD WITH NORMAL .INIT

VTIN10	LAC	VTIC		/GET INITIAL CONDITIONS

	SIC

VTIN20	DZM	VTIOB		/RESET I/O BUSY FLAG

VTIN30	CAL+54			/.SETUP FOR PIC AND API CHANNEL 54

VTAC	16

VTPC	SPDI			/SKIP ON DISPLAY FLAGS

VTPIC	VTINT			/INTERRUPT HANDLER ADDRESS

	LAC	(JMP VTPIC+3		/SETUP FOR JUMP AROUND

	DAC	VTIN30

	ISZ	VTARGP		/INCREMENT ARGP

	JMP	VTIGNR		/RETURN TO USER

VTIN70	LAC*	VTARGP		/GET R FROM LOC+2

	DAC	VTR

	AND	(700000		/(006) HIGH CORE?

	SZA			/(006)SKIP IF NOT

	JMP	IOPS67		/(006)COMPLAIN

	LAC*	VTR		/GET R(1), INITIAL CONDITIONS

	SIC			/SET INITIAL CONDITIONS

	JMP	VTIN20

VTIGNR	ISZ	VTARGP		/POINT OF RETURN

VTRET	DBR			/DEBREAK AND RESTORE

	XCT	(JMP* VTARGP	/RETURN PAST CAL

VTBSY	DBR			/DEBREAK

	XCT	(JMP* VTCALP	/RETURN TO CAL

	.EJECT

/VT15 .READ

VTREAD	LAC	VTIOB		/GET .READ BUSY SWITCH

	SZA			/SKIP IF NOT BUSY

	JMP	VTBSY		/BUSY GO BACK

	LAC*	VTARGP		/GET BUFFER ADDRESS FROM LOC+2

	DAC	VTLPTR		/SAVE IT

	AND	(700000		/(006)HIGH CORE

	SZA			/(006)SKIP IF NOT

	JMP	IOPS67		/(006)COMPLAIN

	ISZ	VTARGP		/POINT TO LOC+3

	LAC*	VTARGP		/GET -W (INTERRUPT COUNT) LOC+3

	DAC	VTIOW		/SAVE IN INTERRUPT COUNT

	LAC*	VTCALP		/GET CAL

	AND	(7000		/SAVE M (BITS 6-8)

	SAD	(7000		/IF M=7

	JMP	VTRD30		/GO GET USER'S NSTD

	SZA			/IF M

	JMP	VTRD10		/NOT 0, GO PROCESS M=1-5

	LAC	VTSTD3		/=0, GET STANDARD NO-INTERRUPT WORD

	DAC	VTNSTD

	JMP	VTRD35		/GO READ REGISTERS

/SEQUENCE TO CONVERT M=1 THRU 5 TO A STANDARD FLAGS - REGISTERS WORD

VTRD10	SAD	(1000

	LAC VTNS-5		/INTERNAL STOP

	SAD	(2000

	LAC	VTNS-4		/PUSH BUTTON

	SAD	(3000

	LAC VTNS-3		/LIGHT PEN

	SAD	(4000

	LAC VTNS-2		/EDGE

	SAD	(5000

	LAC	VTNS-1		/EXTERNAL STOP

	AND	VTSTD		/AND OUT ALL BUT STANDARD REGISTERS

	DAC	VTNSTD		/AND THATS IT

/SEQUENCE TO SET UP DZM OR NOP IN THE INTERRUPT HANDLER TO SAVE OR

/IGNOR INTERRUPT FLAGS

VTRD21	LAW	-5		/SET UP COUNTER FOR 5 FLAGS

	DAC	VTCNT

	LAC	VTNSTD		/GET NSTD

VTRD22	RCL			/PUT A BIT INTO LINK

	DAC	VTAC2		/SAVE THE AC

	LAC	VTDZM		/ASSUME FLAG IS TO BE SAVED, GET DZM

	ISZ	VTDZM		/SET TO NEXT FLAG

	SNL			/SKIP IF FLAGS IS TO BE SAVED

	LAC	VTNOP		/GET A NOP IF IT IS TO BE IGNORED

VTRD24	DAC*	VTNTIX		/DAC THRU VTNTIX POINTER TABLE

	ISZ	VTRD24		/NEXT ENTRY IN TABLE

	LAC	VTAC2		/RESTORE AC

	ISZ	VTCNT		/INCREMENT COUNTER & CHECK IF DONE

	JMP	VTRD22		/REPEAT FOR NEXT BIT

	LAC	(DAC* VTNTIX	/RESTORE DAC TO POINTER TABLE

	DAC	VTRD24

	LAC	(DZM	VTISTP	/RESTORE DZM LIST

	DAC	VTDZM

	JMS	VTRD50		/SET UP READ-REGISTER IOTS

/CLEAR SOFTWARE INTERRUPT FLAGS

	LAW	-1

	DAC	VTLP		/LIGHT PEN

	DAC	VTPB		/PUSH BUTTON

	DAC	VTEDG		/EDGE VIOLATION

	DAC	VTISTP		/STOP

	DAC	VTESTP		/EXTERNAL STOP

	DAC	VTIOB

	JMP	VTIGNR		/RETURN

/SEQUENCE TO PROCESS USER'S NSTD

VTRD30	ISZ	VTARGP		/INCREMENT TO LOC+4

	LAC*	VTARGP		/GET NSTD

	DAC	VTNSTD		/SAVE IT

	AND	VTNS		/MASK OFF BITS 0-4

	SZA

	JMP	VTRD33		/REGISTER BITS ON, USE THEM

	LAC	VTSTD2		/REGISTER BITS OFF, USE STANDARD DEFAULT

	XOR	VTSTD		/INSERT USER FLAG BITS

	DAC	VTNSTD

	AND	VTNS		/MASK OFF 0-5

VTRD33	XOR	VTNSTD		/INVERT, NOW 6-17 ARE OFF, 0-5=FLAG BITS

	SZA

	JMP	VTRD21		/GO SET UP INTERRUPT HANDLER

/NOT WAITING FOR ANY INTERRUPTS, GO SERVICE READ AND EXIT

VTRD35	LAC	VTNSTD		/GET USER REQUEST BIT MAP

	RCL			/MOVE REGISTER BITS

	RTL

	RTL

	DAC	VTAC2		/SAVE IT

	JMS	VTRD50		/SET UP READ REGISTERS IOTS

	JMS	VTRR20		/READ THOSE REGISTERS

	JMS	VTNT60		/INSERT IN USER'S BUFFER

	DZM	VTIOB

	JMP	VTIGNR		/RETURN TO USER

/SEQUENCE TO SET UP READ IOT OR SKIP IN INTERRUPT HANDLER DEPENDING

/ON REGISTERS REQUESTED BY USER

VTRD50	0			/ENTRY POINT

	LAW	-7		/7 POSSIBLE REGISTERS

	DAC	VTCNT		/INTO COUNTER

	DAC	VTNSFL		/TO BE USED AS COUNT OF IOTS ISSUED

	LAC	VTAC2		/GET REGISTER BITS

VTRD52	RCL			/PUT ONE IN LINK

	DAC	VTAC2		/SAVE THE REST

VTRD54	LAC	VTREG		/GET AN IOT

	ISZ	VTRD54		/POINT TO NEXT IOT

	SZL			/USE THE IOT IF L=1

	JMP	VTRD56

	ISZ	VTNSFL		/REDUCE COUNT OF IOTS BY 1

	LAC	VTSKP		/USE SKIP IF L=0

VTRD56	DAC*	VTRR2X		/DAC THRU VTRR2X POINTER TABLE

	ISZ	VTRD56		/NEXT ENTRY IN POINTER TABLE

	LAC	VTAC2		/RESTORE BIT MAP

	ISZ	VTCNT		/BUMP COUNT & CHECK IF FINISHED

	JMP	VTRD52		/BACK FOR NEXT ROUND

	LAC	(LAC	VTREG	/ALL DONE, RESET POINTERS

	DAC	VTRD54

	LAC	(DAC*	VTRR2X

	DAC	VTRD56

	JMP*	VTRD50		/LEAVE

	.EJECT

/VT15 .WRITE

VTWRIT	LAC*	VTCALP		/GET CAL

	AND	(7000		/SAVE  M(BITS 6-8)

	SNA

	JMP	VTWR10		/0=RESUME DISPLAY AFTER EXT STOP

	SAD	(4000

	JMP	VTWR20		/4=START THE DISPLAY AT L

	SAD	(2000

	STPD			/2=STOP DISPLAY

	SAD	(1000

	RESM			/1=RESUME DISPLAY AFTER STOP

VTWRT	ISZ	VTARGP		/POINT TO LOC+3

	JMP	VTIGNR		/RETURN TO USER

VTWR10	LAC	VTL		/GET ADDRESS OF CURRENT DISPLAY FILE

	JMP	VTWR22		/GO RESTART DISPLAY

/START DISPLAY AT L

VTWR20	LAC	VTCFL		/CLEAR DISPLAY FLAGS

	SIC

	LAC*	VTARGP		/GET DISPLAY FILE POINTER

	DAC	VTL		/SAVE CURRENT DISPLAY FILE ADDRESS

VTWR22	LSD			/LOAD AND START DISPLAY

	JMP	VTWRT		/RETURN

	.EJECT

/VT15 .WAIT

VTWAIT	LAC*	VTCALP		/GET CAL

	AND	(1000		/CHECK BIT 8

	SZA

	JMP	VTWT10		/.WAITR

	LAC	VTIOB		/WAIT, GET BUSY SWITCH

	SZA

	JMP	VTBSY		/BUSY RETURN TO CAL

	JMP	VTRET		/NOT BUSY

/.WAITR

VTWT10	LAC	VTIOB		/GET BUSY SWITCH

	SNA

	JMP	VTIGNR		/NOT BUSY, RETURN

	LAC*	VTARGP		/(006) USER'S ADDRESS

	AND	(700000		/(006)HIGH CORE

	SZA			/(006)SKIP IF NOT

	JMP	IOPS67		/(006)COMPLAIN

	LAC	VTCALP		/(006)CONTROL BITS FROM CAL

	AND	(700000		/(006)

	TAD*	VTARGP		/(006)ADDR BITS FROM USER

	DAC	VTARGP		/SAVE IN RETURN POINTER

	JMP	VTRET		/AND GO THERE

	.EJECT

/VT15 .CLOSE

VTCLOS	LAC	VTCFL		/CLEAR FLAGS

	SIC

VTNOP	NOP

	STPD			/STOP DISPLAY

	JMP	VTRET		/RETURN TO USER

	.EJECT

/VT15 .FSTAT

VTFST	LAC*	VTCALP		/GET CAL

	AND	(3000		/CHECK BITS 7 & 8 TO SEE IF

	SAD	(3000		/THIS IS AN .FSTAT

	JMP	VTFT10		/YES

	JMP	VTIGNR		/NO, RETURN TO USER

VTFT10	LAC* VTARGP

	AND (77777

	DAC* VTARGP

	CLA

	JMP	VTIGNR

	.EJECT

/INTERRUPT HANDLER

VTINT	SKP			/PIC ENTRY

	JMP	VTAPI		/API ENTRY (PRIORITY 2)

	DAC	VTAC		/SAVE AC

	LAC	VTION		/ION INTO INTERRUPT RETURN SEQUENCE

	DAC	VTSW

	LAC*	(0		/PIC RETURN ADDR. IN LOC 0

	DAC	VTPC		/INTO RETURN PC

	JMP	VTNT10

VTAPI	DAC	VTAC		/API ENTRY - SAVE AC

	LAC	VTINT		/GET RETURN ADDRESS

	DAC	VTPC		/SAVE IT

	LAC	VTNOP

	DAC	VTSW

VTNT10	RS3+10		/*

	AND (760000

	DAC VTBP

	LAC	VTNSTD

	AND	(760000

	AND	VTBP

	SZA

	JMP	VTNT69

	LAC	(17400

	SIC

	LAC	VTSW

	SAD	VTNOP

	JMP	VTIRTA

	JMP	VTIRTB

VTNT69	LAC VTIOB

	SNA

	JMP VTNT11

	LAC VTBP

	DAC* VTBPTR

	JMS	VTRR20		/READ REQUESTED REGISTERS

VTNT11	LAC	(17400		/CLEAR FLAGS

	SIC			/SET INITIAL CONDITIONS

	CLA

/CHECK INTERRUPT BUSY

	SAD	VTIOB		/IF READ-BUSY FLAG IS OFF(=0)

	JMP	VTIRTB		/GO TO EXIT

	SAD	VTBUSY		/IF INTERRUPT BUSY FLAG IS ON (=0)

	JMP	VTIRTB		/GO TO EXIT

	DZM	VTBUSY		/TURN ON INTERRUPT BUSY

	LAC	VTSW		/GET ION OR NOP

	DAC	VTPIC		/PIC-API INDICATOR (NOP=API)

	SAD	VTNOP		/WHICH IS IT

	JMP VT69

	LAC*	(0		/SET UP PIC RETURN FROM 0

	DAC	VTINTP		/IN INTERRUPT PROCESSOR

	LAC	VTAC		/GET INTERRUPT AC

	JMP	VTINTP+1	/GO TO INTERRUPT PROCESSOR

/INTERRUPT HANDLER RETURN SEQUENCE

VTIRTA	NOP

VTIRTB	LAC	VTBP

	SAD	(100000

	JMS VTRES

VTIRT	LAC	VTSKP

	DAC	VTINT

	LAC	VTAC

VTSW	XX			/ION OR NOP IF PIC OR API

	DBR			/DEBREAK FROM LEVEL 2 (IF API)

	XCT	(JMP* VTPC	/RETURN

VT69	LAC VTINT

	DAC VTINTP

	LAC VTAC

	JMP VTINTP+1

/SEQUENCE TO READ AND SAVE HARDWARE REGISTERS REQUESTED BY USER

VTRR20	0			/ENTRY POINT

VTAUTO=11			/AUTO INDEX REGISTER USED

	LAC*	(VTAUTO		/SAVE CONTENTS

	DAC	VTINTT

	LAC	VTBPTR		/LOAD WITH BUFFER POINTER

	DAC*	(VTAUTO

VTRR21	RS2+10			/READ PB

	JMS	VTPBS

VTRR22	RXP+10			/READ X REGISTER

	DAC*	VTAUTO

VTRR23	RYP+10			/READ Y REGISTER

	DAC*	VTAUTO

VTRR24	RPC+10			/READ PC

	DAC*	VTAUTO

VTRR25	RS1+10			/READ STATUS ONE

	DAC*	VTAUTO

VTRR26	RS2+10			/READ STATUS 2

	DAC*	VTAUTO

VTRR27	RS2+10			/READ STATUS 2, RETURN NAME REGISTER

	JMS	VTNR

	LAC	VTINTT		/RESTORE AUTO-INDEX REGISTER

	DAC*	(VTAUTO

	JMP*	VTRR20

VTNR	0

	AND (177			/RETURN NAME REGISTER

	DAC* VTAUTO

	JMP* VTNR

VTPBS	0

	AND (770000			/RETURN PUSHBUTTONS

	DAC* VTAUTO

	JMP* VTPBS

/INTERRUPT PROCESSOR

VTINTP	XX			/RETURN ADDRESS HERE

	DAC	VTAC2		/SAVE AC

/SET UP PROTECTS AND UNPROTECTS DEPENDING ON PIC OR API

VTNT40	LAC	VTPIC		/GET API - PIC INDICATOR

	SAD	VTION

	JMP	VTNT44		/GO SET UP FOR PIC

	LAC	VTISA		/GET ISA (API)

	DAC	VTNT46		/INTO PROTECT FOR CHECKING INTR.

	LAC	(DBK		/GET DBK

	DAC	VTNT73		/AND INTO EXIT

	JMP	VTNT30		/GO CHECK ON FLAGS

VTNT44	DAC	VTNT73		/AND INTO EXIT

	LAC	(IOF		/GET IOF

	DAC	VTNT46		/INTO PROTECT

/SET UP REMAINING SOFTWARE INTR. FLAGS

VTNT30	LAC*	VTBPTR		/GET WORD CONTAINING FLAG BITS

	SPA!RAL			/CHECK INTERNAL STOP FLAG

VTNT15	DZM	VTISTP

	SPA!RAL			/CHECK PB FLAG

VTNT13	DZM	VTPB

	SPA!RAL			/CHECK LIGHT PEN FLAG

VTNT12	DZM	VTLP

	SPA!RAL			/CHECK EDGE FLAG

VTNT14	DZM	VTEDG

	SPA!RAL			/CHECK EXTERNAL STOP

VTNT16	DZM	VTESTP

/CYCLE THRU SOFTWARE FLAGS TO SEE WHICH ARE ON

	LAW	-5		/5 SOFTWARE FLAGS

	DAC	VTCNT		/INTO LOOP COUNTER

	LAC	(VTISTP		/STOP FLAG IS 1ST ONE

	DAC	VTFLGS		/INTO FLAGS POINTER

VTNT33	LAC*	VTFLGS		/GET A FLAG

	SZA			/IS IT ON (0=YES)

	JMP	VTNT37		/NO, LOOK AT NEXT

VTNT35	LAW	-1		/TURN OFF FLAG ABOUT TO BE

	DAC*	VTFLGS		/SERVICED

	JMS	VTNT60		/CALL READ-REGISTERS ROUTINE

	ISZ	VTIOW		/INCREMENT USERS INTR COUNT

	JMP	VTNT37		/REPEAT IF NOT FINISHED

VTNT36	LAC	(400100		/SET AC TO RAISE TO API LEVEL 1

VTNT46	XX			/IOF IF PIC, ISA IF API

	JMP	VTIRTC		/DONE, GO EXIT

VTNT37	ISZ	VTFLGS		/INCREMENT FLAG POINTER

	ISZ	VTCNT		/INCREMENT LOOP COUNTER

	JMP	VTNT33		/REPEAT IF NOT FINISHED

	JMP	VTNT36		/OTHERWISE GO CLOSE UP

/GET REGISTERS SPECIFIED BY .READ AND .WRITE TO USER'S BUFFER

VTNT60	0

	LAC	(VTNS		/POINTER TO END+1 OF FLAG INDICATOR LIST

	TAD	VTCNT		/SUB. LOOP COUNTER TO POINT TO RIGHT INDICATOR

	DAC	VTTEMP		/

	LAC*	VTTEMP		/GET WORD SHOWING WHICH FLAG THIS IS

	AND	VTNSTD		/MASK OUT ALL OTHERS IN USER REQUEST

	DAC*	VTLPTR		/WRITE BUFFER HEADER WORD

	ISZ	VTLPTR		/INCREMENT BUFFER POINTER

	LAC	VTNSFL		/GET INTR. BUFFER WORD COUNT

	SNA			/IF NO REGISTERS WERE READ

	JMP*	VTNT60		/RETURN TO CALLER

	DAC	VTCNT2		/INTO COUNTER

	LAC	VTBPTR		/GET BUFFER POINTER INTO

	DAC	VTTEMP		/MOVABLE REGISTER

VTNT62	ISZ	VTTEMP		/NEXT WORD IN INTR. BUFFER

	LAC*	VTTEMP		/GET THE WORD

	DAC*	VTLPTR		/GIVE IT TO USER'S BUFFER

	ISZ	VTLPTR		/NEXT WORD IN USER'S BUFFER

	ISZ	VTCNT2		/DECREMENT INTR. BUFFER WORD COUNT

	JMP	VTNT62		/GO GET NEXT WORD

	JMP*	VTNT60		/RETURN TO CALLER

VTIRTC	ISZ	VTBUSY		/TURN OFF INTR. PROCESSOR BUSY FLAG

	DZM	VTIOB

	LAC	VTBP

	SAD	(100000

	JMS VTRES

VTRT1	LAC	VTAC2		/RESOTORE AC

VTNT73	XX			/DBK TO LEVEL 4 IF API, ION IF PIC

	DBR

	XCT	(JMP* VTINTP	/RETURN

VTRES	0

	RESM

	JMP* VTRES

	.EJECT

VTCALP	0			/CAL POINTER

VTARGP	0			/ARGUMENT POINTER

VTIC	257740

VTIOB	0			/BUSY SWITCH

VTIOW	0			/INTR COUNT

VTR	0			/CONTENTS OF R

VTNSTD	0

VTSTD3	016600

VTSTD2	017000

VTSTD	777100

	417700			/STOP FLAG

	217700			/PUSH BUTTON FAG

	117700			/LIGHT PEN FLAG

	057700			/EDGE FLAG

	037700			/EXTERNAL STOP FLAG

VTNS	017777			/NO INTERRUPT, JUST READ

VTAC2	0

VTDZM	DZM	VTISTP		/DZM TO BE INSERTED IN INTERRUPT HANDLER

VTNSFL	0

VTCFL	017400			/CLEAR FLAGS

VTREG	RS2+10			/READ PB REGISTER

	RXP+10			/READ X POSITION

	RYP+10			/READ Y POSITION

	RPC+10			/READ DISPLAY PC

	RS1+10			/READ STATUS ONE

	RS2+10			/READ STATUS TWO

	RS2+10			/READ STATUS 2,RETURN NAME REGISTER

VTNTIX	VTNT15

	VTNT13

	VTNT12

	VTNT14

	VTNT16

VTBUF1	.BLOCK	10

VTBPTR	VTBUF1

VTRR2X	VTRR21

	VTRR22

	VTRR23

	VTRR24

	VTRR25

	VTRR26

	VTRR27

VTBUSY	1

VTINTT	0			/CONTENTS OF AUTO-INDEX REG.

VTFLGS	.DSA	VTISTP		/FLAGS POINTER

VTISTP	-1			/INTERNAL STOP FLAG

VTPB	-1			/PB "

VTLP	-1			/LIGHT PEN FLAG

VTEDG	-1			/EDGE FLAG

VTESTP	-1			/EXTERNAL STOP FLAG

VTTEMP	0

VTLPTR

VTCNT2

VTBP	0

VTCNT	0

VTSKP	SKP

VTISA	ISA

VTL	0

VTION	ION

	.END
