DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    3500  PRIMARY COMMAND CHARACTER SWITCH

   (1)    4260  PRIMARY COMMAND SCANNER

   (1)    5680  ENDEXPR	- END EXPRESSION

   (1)    6260  SLASH - OPEN CELL

   (1)    6880  RETURN - CLOSE CURRENT OPEN CELL

   (1)    7220  ENDFIELD - TERMINATE CURRENT FIELD

   (1)    7640  FETCH - OBTAIN DATA SPECIFIED

   (1)    8360  NEXTDOT - INCREMENT CURRENT LOCATION

   (1)    8640  OUTPUT - DISPLAY CONTENT

   (1)    8760  LINE FEED - DISPLAY NEXT

   (1)    9300  OUTPUTA - OUTPUT ADDRESS

   (1)   11040  GETCHAR - GET INPUT CHARACTER ROUTINE

   (1)   12460  PLUS/MINUS OPERATORS

   (1)   12860  TAB - INDIRECT DISPLAY

   (1)   13280  EQUALS - DISPLAY VALUE

   (1)   13720  SEMI - SECONDARY COMMAND SET

   (1)   14340  LEFT BRACKET - MODE SELECTION

   (1)   14820  SINGLE STEP

   (1)   14980  BRKPOINT - SET/CLEAR BREAKPOINTS

   (1)   16260  GO - START EXECUTION AT SPECIFIED LOCATION

   (1)   16520  SEMI-I, PC VALUE

   (1)   17680  REGISTER SAVE AND RESTORE

   (1)   20400  BPT TRAP HANDLER

   (1)   21800  TBIT EXCEPTION HANDLER

   (1)   22460  UNBRK - RESTORE OPCODES FOR BREAKPOINTS

   (1)   22940  SETBRK - SET BREAK POINT INSTRUCTIONS

   (1)   23520  GETBPTX - GET INDEX FOR BREAKPOINT

   (1)   23740  QUOTE - INPUT CHARACTER STRING

   (1)   24020  DEPOSIT

   (1)   25260  EXECUTE - PERFORM COMMAND STRING

   (1)   25500  P - PROCESSOR REGISTER PREFIX

   (1)   25660  PROCESS DEBUGGER INITIALIZATION

   (1)   27180  HANDLER FOR DEBUG EXCEPTIONS

   (1)   28680  SETWRT - SET PAGES WRITABLE

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   1

                                                                                                                                 (1)



                           00000001  0000   100 SW_PROCESS=1				;

                                     0000    20 	.IF	DF,SW_PROCESS		;

                                     0000    40 	.TITLE	DELTA - MULTIMODE PROCESS DEBUGGER

                                     0000    60 	.IFF				;

                                     0000    80 	.TITLE	XDELTA - EXECUTIVE DEBUGGER

                                     0000   100 	.ENDC				;

                                     0000   120 	.LIST	MEB			;

                                     0000   140 ;

                                     0000   160 ;	DEFINITIONS

                                     0000   180 ;

                                     0000   200 	$CADEF				; DEFINE ASSEMBLY SWITCHES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   220 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   240 	$PRTDEF				; DEFINE PROTECTION VALUES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   260 	$PSLDEF				; DEFINE PSL FIELDS

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   280 	$SSDEF				; DEFINE SYSTEM SERVICE STATUS CODES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   300 

                                     0000   320 ;

                                     0000   340 ; EQUATES:

                                     0000   360 ;

                           00000008  0000   380 V_F1=8					; FIELD 1 PRESENT FLAG

                           00000009  0000   400 V_F2=9					; FIELD 2 PRESENT FLAG

                           0000000A  0000   420 V_F3=10					; FIELD 3 PRESENT FLAG

                           0000000B  0000   440 V_F4=11					; FIELD 4 PRESENT FLAG

                           0000000C  0000   460 V_F5=12					; FIELD 5 PRESENT FLAG

                                     0000   480 

                           00000000  0000   500 V_OPEN=0				; OPEN CELL FLAG

                           00000001  0000   520 V_ASCII=1				; ASCII

                           00000002  0000   540 V_INFIELD=2				; FIELD IN PROGRESS

                           00000003  0000   560 V_TBIT=3				; ENABLE TBIT

                           00000004  0000   580 V_ATBRK=4				; AT BREAKPOINT

                           00000005  0000   600 V_TBITOK=5				; TBIT EXPECTED

                           00000006  0000   620 V_RUB=6					; RUBOUT IN PROGRESS

                           00000007  0000   640 V_NEGATE=7				; NEGATE BIT

                           0000000F  0000   660 V_PRMODE=15				; PROCESSOR REGISTER MODE

                           0000001F  0000   680 V_PREG=31				; PROCESSOR REGISTER FLAG

                                     0000   700 

                           00000000  0000   720 RDCR=0					; READ CSR

                           00000002  0000   740 RDBUF=2					; READ BUFFER

                           00000004  0000   760 OUTCR=4					; OUTPUT CSR

                           00000006  0000   780 OUTB=6					; OUTPUT BUFFER

                                     0000   800 

                           0000005C  0000   820 BSLSH=92				; BACK SLASH CODE

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   2

                                                                                                                                 (1)



                           0000000D  0000   840 CR=13					; CARRIAGE RETURN

                           0000000A  0000   860 LF=10					; LINE FEED

                           00000027  0000   880 QUOT=39					; QUOTE

                           0000007F  0000   900 RUBOUT=127				; RUBOUT CODE

                           0000002F  0000   920 SLSH=47					; SLASH CODE

                                     0000   940 

                                     0000   960 

                                     0000   980 

                                     0000  1000 ;

                                     0000  1020 ;	DATA AREA

                                     0000  1040 ;

                                     0000  1042 	.IF	DF,SW_PROCESS

                                 00000000  1060 	.PSECT	_DELTA,LONG

                                     0000  1062 	.IFF

                                     0000  1064 	.PSECT	$$$030NP,LONG

                                     0000  1066 	.ENDC

                                     0000  1080 CONTEXT:				;

                           00000000  0000  1100 	.LONG	0			; BUFFER PADDING

                           00000034  0004  1120 INBUF:	.BLKB	48			; INPUT BUFFER

                           00000000  0034  1140 STATUS:	.LONG	0			; STATUS FLAGS

                           00000000  0038  1160 F1:	.LONG	0			; FIELDS

                           00000000  003C  1180 F2:	.LONG	0			; 0-7

                           00000000  0040  1200 F3:	.LONG	0			;

                           00000000  0044  1220 F4:	.LONG	0			;

                           00000000  0048  1240 F5:	.LONG	0			;

                                     004C  1260 

                           00000000  004C  1280 MASK:	.LONG	0			; SEARCH MASK

                                     0050  1300 

                                 00  0050  1320 FCTR:	.BYTE	0			; FIELD COUNTER

                                     0051  1340 

                                 02  0051  1360 DTYPE:	.BYTE	2			; DATA TYPE

                                 02  0052  1380 CURTYPE:.BYTE	2			; CURRENT TYPE

                                     0053  1400 

                                 00  0053  1420 OPER:	.BYTE	0			; OPERATOR

                                     0054  1440 B:					; BASE OF DATA AREA(CENTER)

                           00000000  0054  1460 CURDOT:	.LONG	0			; CURRENT LOCATION

                           00000000  0058  1480 QUAN:	.LONG	0			; QUANTITY (;Q)

                           0000006C  005C  1500 OUTBUF:	.BLKL	4			; OUTPUT BUFFER

                                     006C  1520 ;

                                     006C  1540 ;	REGISTER SAVE AREA

                                     006C  1560 ;

                                     006C  1580 SAVREG:					; REGISTER SAVE AREA

                           00000070  006C  1600 	.BLKL	1			; R0

                           00000074  0070  1620 	.BLKL	1			; R1

                           00000078  0074  1640 SAVR2:	.BLKL	1			; R2

                           0000007C  0078  1660 	.BLKL	1			; R3

                           00000080  007C  1680 	.BLKL	1			; R4

                           00000084  0080  1700 	.BLKL	1			; R5

                           00000088  0084  1720 	.BLKL	1			; R6

                           0000008C  0088  1740 	.BLKL	1			; R7

                           00000090  008C  1760 	.BLKL	1			; R8

                           00000094  0090  1780 	.BLKL	1			; R9

                           00000098  0094  1800 	.BLKL	1			; R10

                           0000009C  0098  1820 	.BLKL	1			; R11

                           000000A0  009C  1840 SAVAP:	.BLKL	1			; AP

                           000000A4  00A0  1860 	.BLKL	1			; (FP)

                           000000A8  00A4  1880 SAVSP:	.BLKL	1			; SP

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   3

                                                                                                                                 (1)



                           000000AC  00A8  1900 SAVPC:	.BLKL	1			; PC

                           000000B0  00AC  1920 SAVPSL:	.BLKL	1			; PSL

                           000000B2  00B0  1940 SAVOCR:	.BLKW	1			; OUTPUT CSR SAVE

                           000000B4  00B2  1960 SAVRCR:	.BLKW	1			; INPUT CSR SAVE

                                     00B4  1980 ASTEN:					; AST ENABLE SAVE LOCATION

                           000000B8  00B4  2000 SAVRXCS:.BLKL	1			; CONSOLE RECEIVER STATUS

                                     00B8  2020 

                           000000B8  00B8  2040 CONTEXTSZ=.-CONTEXT			; SIZE OF PER MODE CONTEXT AREA

                                     00B8  2060 ;

                                     00B8  2080 ;	RESERVE SPACE FOR MULTIPLE MODE CONTEXT AREA

                                     00B8  2100 ;

                                     00B8  2120 	.IF	DF,SW_PROCESS		;

                                     00B8  2140 	.REPT	3			;

                                     00B8  2160 	.BLKB	CONTEXTSZ		; FOR EXEC,SUPER AND USER

                                     00B8  2180 SAV...=	.

                                     00B8  2200 	.=.-CONTEXTSZ+<DTYPE-CONTEXT>	; POINT AT DTYPE,CURTYP

                                     00B8  2220 	.BYTE	2,2			; SET TYPE TO LONGWORD

                                     00B8  2240 	.=SAV...			; RESTORE LOCATION COUNTER

                                     00B8  2260 	.ENDR				;

                           00000170  00B8       	.BLKB	CONTEXTSZ		; FOR EXEC,SUPER AND USER

                           00000109  0170       	.=.-CONTEXTSZ+<DTYPE-CONTEXT>	; POINT AT DTYPE,CURTYP

                              02 02  0109       	.BYTE	2,2			; SET TYPE TO LONGWORD

                           00000170  010B       	.=SAV...			; RESTORE LOCATION COUNTER

                           00000228  0170       	.BLKB	CONTEXTSZ		; FOR EXEC,SUPER AND USER

                           000001C1  0228       	.=.-CONTEXTSZ+<DTYPE-CONTEXT>	; POINT AT DTYPE,CURTYP

                              02 02  01C1       	.BYTE	2,2			; SET TYPE TO LONGWORD

                           00000228  01C3       	.=SAV...			; RESTORE LOCATION COUNTER

                           000002E0  0228       	.BLKB	CONTEXTSZ		; FOR EXEC,SUPER AND USER

                           00000279  02E0       	.=.-CONTEXTSZ+<DTYPE-CONTEXT>	; POINT AT DTYPE,CURTYP

                              02 02  0279       	.BYTE	2,2			; SET TYPE TO LONGWORD

                           000002E0  027B       	.=SAV...			; RESTORE LOCATION COUNTER

                                     02E0  2280 	.ENDC				;

                                     02E0  2300 

                                     02E0  2320 

                                     02E0  2340 ;

                                     02E0  2360 ;	BREAK POINT DATA

                                     02E0  2380 ;

                           000002DC  02E0  2400 BRKADR=.-4	

                           00000B70' 02E0  2420 	.LONG	INI$BRK			; INITIAL BREAKPOINT

                           00000300  02E4  2440 	.BLKL	7			; OTHER BREAK POINT ADDRESSES

                           00000008  0300  2460 NBRK=<.-4-BRKADR>/4			; NUMBER OF BREAKPOINTS

                           000002FF  0300  2480 BRKOP=.-1				; SAVED OPCODE

                                 01  0300  2500 	NOP				; INITIAL OPCODE

                           00000308  0301  2520 	.BLKB	7			; REMAINING OPCODES

                                     0308  2540 

                                     0308  2560 

                           00000304  0308  2580 BRKDSP=.-4

                           00000328  0308  2600 	.BLKL	8			; DISPLAY LOCATION START

                           00000324  0328  2620 BRKCOM=.-4

                           00000348  0328  2640 	.BLKL	8			; COMMAND START

                                     0348  2660 

                           00000360  0348  2680 XREGV:	.BLKL	6			; X REGISTER VECTOR

                                     0360  2700 	.IF	NDF,SW_PROCESS		;

                                     0360  2720 	.LONG	PFN$AW_SWPVBN		; X6 = SWAP VBN

                                     0360  2740 	.LONG	PFN$AL_PTE		; X7 = PTE BACK POINTER

                                     0360  2760 	.LONG	PFN$AL_BAK		; X8 = BACKUP ADDRESS

                                     0360  2780 	.LONG	PFN$AW_REFCNT		; X9 = REFERENCE COUNT

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   4

                                                                                                                                 (1)



                                     0360  2800 	.LONG	PFN$AW_FLINK		; XA = FORWARD LINK

                                     0360  2820 	.LONG	PFN$AW_BLINK		; XB = BACK LINK

                                     0360  2840 	.LONG	PFN$AB_STATE		; XC = STATE

                                     0360  2860 	.LONG	PFN$AB_TYPE		; XD = TYPE

                                     0360  2880 	.LONG	XDS$INIT		; XE;E WITH X0 = PFN

                                     0360  2900 	.LONG	XDS$INIT		; XF;E WITH R0 = PFN

                                     0360  2920 MCHKSAV:.BLKL	1			; SAVED CONTENT OF MACHINE CHECK VECTOR

                                     0360  2940 	.IFF				; FOR PROCESS VERSION

                           00000388  0360  2960 	.BLKL	10			;

                           00000390  0388  2980 TTIOSB:	.BLKL	2			; IO STATUS BLOCK FOR TERMINAL READ

                           00000394  0390  3000 TTCHAN:	.BLKL	1			; CHANNEL NUMBER

                  0000039C'00000002  0394  3020 TTNAMD:	.LONG	2,TTSTR			;

                              54 54  039C  3040 TTSTR:	.ASCII	/TT/			;

                                     039E  3060 DBGACTIVE:				; ACTIVE FLAGS BY ACCESS MODE

                           00000000  039E  3080 	.LONG	0			;

                                     03A2  3100 EXITBLK:				; EXIT HANDLER BLOCK

                           00000000  03A2  3120 	.LONG	0			;

                           00000CAD' 03A6  3140 	.LONG	EXIHANDLE		; EXIT HANDLER

                           00000001  03AA  3160 	.LONG	1			; ARGUMENT COUNT

                           000003B2' 03AE  3180 	.LONG	EXITCODE		; ADDRESS TO STORE EXIT CODE

                                     03B2  3200 EXITCODE:				;

                           00000001  03B2  3220 	.LONG	1			; RECEIVER FOR EXIT CODE

                           00000000  03B6  3240 KCOND:	.LONG	0			; PREVIOUS KERNEL HANDLER

                           00000000  03BA  3260 ECOND:	.LONG	0			; PREVIOUS EXEC HANDLER

                           00000000  03BE  3280 SCOND:	.LONG	0			; PREVIOUS SUPER HANDLER

                                     03C2  3300 TERMASKD:				; TERMINATOR MASK DESCRIPTOR

                           00000010  03C2  3320 	.LONG	16			; MASK LENGTH

                           000003CA' 03C6  3340 	.LONG	TERMASK			; MASK ADDRESS

                           08002600  03CA  3360 TERMASK:.LONG	<1@9>!<1@10>!<1@13>!<1@27>	; TAB,LF,CR,ESC

                           20008004  03CE  3380 	.LONG	<1@2>!<1@15>!<1@29>	; DOUBLE QUOTE,SLASH,EQUALS

                           00080000  03D2  3400 	.LONG	<1@19>			; 'S'

                           00000000  03D6  3420 	.LONG	0			;

                                     03DA  3440 

                                     03DA  3460 	.ENDC				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   5

                PRIMARY COMMAND CHARACTER SWITCH                                                                                 (1)



                                     03DA  3500 	.SBTTL	PRIMARY COMMAND CHARACTER SWITCH

                                     03DA  3520 

                                     03DA  3540 ;

                                     03DA  3560 ;	PRIMARY CHARACTER LIST

                                     03DA  3580 ;

                                     03DA  3600 PRIMARY:				;

42 41 39 38 37 36 35 34 33 32 31 30  03DA  3620 	.ASCII	/0123456789ABCDEF/	; DECIMAL AND HEX CHARS

                        46 45 44 43  03E6       

                                 2E  03EA  3640 	.ASCII	/./			; DOT - CURRENT LOCATION

                                 2C  03EB  3660 	.ASCII	/,/			; COMMA - FIELD SEPARATOR

                           00000012  03EC  3680 OPERBAS=.-PRIMARY			; OPERATORS

                                 2B  03EC  3700 	.ASCII	/+/			; PLUS - ADD

                                 20  03ED  3720 	.ASCII	/ /			; BLANK - SAME AS PLUS

                                 40  03EE  3740 	.ASCII	/@/			; SHIFT OPERATOR

                                 2A  03EF  3760 	.ASCII	/*/			; MULTIPLY OPERATOR

                                 25  03F0  3780 	.ASCII	/%/			; DIVIDE OPERATOR

                                 2D  03F1  3800 	.ASCII	/-/			; MINUS - SUBTRACT OPERATOR

                                 5B  03F2  3820 	.ASCII	/[/			; LBRACKET - LEFT BRACKET

                                     03F3  3840 TERM:					; BASE OF TERMINATOR LIST

                                 09  03F3  3860 	.ASCII	<9>			; TAB - INDIRECT

                                 0A  03F4  3880 	.ASCII	<10>			; LINEFEED -

                                 0D  03F5  3900 	.ASCII	<CR>			; RETURN - 

                                 2F  03F6  3920 	.ASCII	'/'			; SLASH - OPEN FOR DISPLAY

                                 22  03F7  3940 	.ASCII	'"'			; DOUBLE QUOTE - OPEN FOR ASCII DISPLAY

                                 3D  03F8  3960 	.ASCII	/=/			; EQUALS - DISPLAY

                                 1B  03F9  3980 	.ASCII	<27>			; ESCAPE - PREVIOUS LOCATION

                                 53  03FA  4000 	.ASCII	/S/			; STEP

                           00000008  03FB  4020 NTERM=.-TERM				; NUMBER OF TERMINATORS

                                 3B  03FB  4040 	.ASCII	<59>			; SEMI - INITIATE SECONDARY

                                 50  03FC  4060 	.ASCII	/P/			; P - PROCESSOR REGISTER PREFIX

                                 51  03FD  4080 	.ASCII	/Q/			; Q - LAST QUANTITY

                                 27  03FE  4100 	.ASCII	/'/			; QUOTE - BEGIN CHAR STRING

                                 52  03FF  4120 	.ASCII	/R/			; REGISTER PREFIX

                                 47  0400  4140 	.ASCII	/G/			; G - GLOBAL PREFIX

                                 48  0401  4160 	.ASCII	/H/			; H - HIGH, P1 SPACE PREFIX

                                 58  0402  4180 	.ASCII	/X/			; X REGISTER PREFIX

                           00000029  0403  4200 NPRIM=.-PRIMARY				; NUMBER OF PRIMARY COMMANDS

                                     0403  4220 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   6

                PRIMARY COMMAND SCANNER                                                                                          (1)



                                     0403  4260 	.SBTTL	PRIMARY COMMAND SCANNER

                                     0403  4280 

                                     0403  4300 ;

                                     0403  4320 ;	PRIMARY COMMAND SCANNER

                                     0403  4340 ;

                                     0403  4360 

                                     0403  4380 

            00 0D 0A 3F 48 45 0D 0A  0403  4400 OUTER:	.ASCIZ	<LF><CR>/EH?/<LF><CR>

                                     040B  4420 

                               0000  040B  4440 DCOM:	.WORD				; CALL ENTRY POINT

                                     040D  4460 	.IF	DF,SW_PROCESS		; FOR PROCESS VERSION ONLY

            6D       0C52'CF     9E  040D  4480 	MOVAB	W^DBGEXCEP,(FP)		; SET CONDITION HANDLER ADDRESS

                                     0412  4500 	.ENDC				;

                          13     11  0412  4520 	BRB	SCANP			; ENTER SCANP

            54         EC AF     9E  0414  4540 ERROR:	MOVAB	OUTER,R4		; SET ADDR OF CONTROL STRING

                          01EF   30  0418  4560 	BSBW	OUTZSTRING		; OUTPUT ASCIZ STRING

            5E            5D     D0  041B  4580 SUPERST:MOVL	FP,SP			; RESET STACK

            59         B0 AB     9E  041E  4600 	MOVAB	INBUF-B(R11),R9		; RESET STRING ADDRESS

                          69     94  0422  4620 	CLRB	(R9)			; AND FORCE READ

                          0306   30  0424  4640 	BSBW	RESET			; RESET SCANNER

                          02     10  0427  4660 SCANP:	BSBB	NEXTP			; SCAN INPUT

                          FC     11  0429  4680 	BRB	SCANP			; SCAN IT ALL

                                     042B  4700 NEXTP:					; PROCESS NEXT PRIMARY CHAR

                          0225   30  042B  4720 	BSBW	GETCHAR			; GET CHARACTER

            29            58     3A  042E  4740 	LOCC	R8,#NPRIM,PRIMARY	; CHECK IT

                       A7 AF         0431       

                          DF     13  0433  4760 	BEQL	ERROR			; NOT FOUND, ERROR

            29            50     C3  0435  4780 	SUBL3	R0,#NPRIM,R0		; RATIONALIZE INDEX

                          50         0438       

                                     0439  4800 	CASE	R0,LIMIT=#16,<-		; 

                                     0439  4820 		DOT,-			; DOT - CURRENT LOCATION

                                     0439  4840 		COMMA,-			; COMMA - FIELD SEPARATOR

                                     0439  4860 		OPERATOR,-		; PLUS - ADD OPERATOR

                                     0439  4880 		OPERATOR,-		; BLANK - ADD OPERATOR

                                     0439  4900 		OPERATOR,-		; @ - SHIFT OPERATOR

                                     0439  4920 		OPERATOR,-		; * - MULTIPLY OPERATOR

                                     0439  4940 		OPERATOR,-		; % - DIVIDE OPERATOR

                                     0439  4960 		NEGATE,-		; MINUS - SUBTRACT/NEGATE

                                     0439  4980 		LBRACKET,-		; LEFT BRACKET - MODE SELECT

                                     0439  5000 		TAB,-			; TAB - INDIRECT

                                     0439  5020 		LINEFEED,-		; LINE FEED - NEXT LOCATION

                                     0439  5040 		RETURN,-		; RETURN - CLOSE OPEN CELL

                                     0439  5060 		SLASH,-			; SLASH - OPEN FOR DISPLAY

                                     0439  5080 		DQUOTE,-		; DOUBLE QUOTE - OPEN FOR ASCII DISPLAY

                                     0439  5100 		EQUALS,-		; EQUALS - DISPLAY VALUE

                                     0439  5120 		ESCAP,-			; ESCAPE - PREVIOUS LOCATION

                                     0439  5140 		STEP,-			; 'S' - SINGLE STEP

                                     0439  5160 		SEMI,-			; SEMI COLON - SECONDARY COMMAND

                                     0439  5180 		PREG,-			; 'P' - PROCESSOR REGISTER

                                     0439  5200 		QUANT,-			; 'Q' - LAST QUANTITY

                                     0439  5220 		QUOTE,-			; QUOTE - BEGIN ASCII STRING

                                     0439  5240 		REGISTER,-		;

                                     0439  5260 		GLOBL,-			; G - GLOBAL PREFIX

                                     0439  5280 		HIGH,-			; H - P1 SPACE PREFIX

                                     0439  5300 		XREG,-			; X REGISTER

                                     0439  5320 		>			;

            10            50     AF  0439       	CASEW	R0,#16,S^#<<30001$-30000$>/2>-1

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   7

                PRIMARY COMMAND SCANNER                                                                                          (1)



                          18'        043C       

                                     043D       30000$:

                               0415' 043D       	.WORD	DOT-30000$

                               00D3' 043F       	.WORD	COMMA-30000$

                               02AA' 0441       	.WORD	OPERATOR-30000$

                               02AA' 0443       	.WORD	OPERATOR-30000$

                               02AA' 0445       	.WORD	OPERATOR-30000$

                               02AA' 0447       	.WORD	OPERATOR-30000$

                               02AA' 0449       	.WORD	OPERATOR-30000$

                               02B3' 044B       	.WORD	NEGATE-30000$

                               032B' 044D       	.WORD	LBRACKET-30000$

                               02BF' 044F       	.WORD	TAB-30000$

                               0141' 0451       	.WORD	LINEFEED-30000$

                               00BC' 0453       	.WORD	RETURN-30000$

                               008A' 0455       	.WORD	SLASH-30000$

                               0085' 0457       	.WORD	DQUOTE-30000$

                               02E1' 0459       	.WORD	EQUALS-30000$

                               02CF' 045B       	.WORD	ESCAP-30000$

                               0346' 045D       	.WORD	STEP-30000$

                               0304' 045F       	.WORD	SEMI-30000$

                               06DD' 0461       	.WORD	PREG-30000$

                               0422' 0463       	.WORD	QUANT-30000$

                               064D' 0465       	.WORD	QUOTE-30000$

                               043A' 0467       	.WORD	REGISTER-30000$

                               0041' 0469       	.WORD	GLOBL-30000$

                               0047' 046B       	.WORD	HIGH-30000$

                               047B' 046D       	.WORD	XREG-30000$

                                     046F       30001$:

            10            50     B1  046F  5340 	CMPW	R0,#16			; IS NUMBER > RADIX

                          A0     18  0472  5360 	BGEQ	ERROR			; YES

            56            10     C4  0474  5380 	MULL	#16,R6			; SCALE BY RADIX

            56            50     C0  0477  5400 	ADDL	R0,R6			; AND ADD NEW DIGIT

            6A            04     C8  047A  5420 INFLD:	BISL	#<1@V_INFIELD>,(R10)	; NOTE FIELD INPUT

                                 05  047D  5440 	RSB				; NEXT PRIMARY CHARACTER

                                     047E  5460 

                                     047E  5480 

            01            1F     9C  047E  5500 GLOBL:	ROTL	#31,#1,R4		; GENERATE SYSTEM SPACE PREFIX

                          54         0481       

                          07     11  0482  5520 	BRB	PRE1			; MERGE WITH COMMON

            54   7FFE0000 8F     D0  0484  5540 HIGH:	MOVL	#^X7FFE0000,R4		; P1 SPACE BASE ADDRESS

                          06     10  048B  5560 PRE1:	BSBB	ENDEXPR			; END EXPRESSION

            56            54     D0  048D  5580 	MOVL	R4,R6			; SET INTO ACCUM

                       E7 AF     9F  0490  5600 	PUSHAB	INFLD			; RETURN THROUGH INFLD

                                     0493  5620 ;	BRB	ENDEXPR

                                     0493  5640 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   8

                ENDEXPR - END EXPRESSION                                                                                         (1)



                                     0493  5680 	.SBTTL	ENDEXPR	- END EXPRESSION

                                     0493  5700 

                                     0493  5720 ;

                                     0493  5740 ;

                                     0493  5760 ;

                                     0493  5780 ENDEXPR:				;

            6A            07     E5  0493  5800 	BBCC	#V_NEGATE,(R10),5$	; SKIP IF NOT NEGATE

                          03         0496       

            56            56     CE  0497  5820 	MNEGL	R6,R6			; NEGATE ACCUMULATOR

                          06     10  049A  5840 5$:	BSBB	10$			; PERFORM OPERATION

                          56     D4  049C  5860 	CLRL	R6			; CLEAR ACCUMULATOR

                       FF AB     94  049E  5880 	CLRB	OPER-B(R11)		; INIT OPERATOR

                                 05  04A1  5900 	RSB				; AND RETURN

                                     04A2  5920 10$:	CASE	OPER-B(R11),TYPE=B,<-	; DO OPERATION

                                     04A2  5940 		ADD,-			; ADD, PLUS

                                     04A2  5960 		ADD,-			; BLANK, PLUS

                                     04A2  5980 		SHFT,-			; SHIFT, @

                                     04A2  6000 		MUL,-			; MULTIPLY, *

                                     04A2  6020 		DIV,-			; DIVIDE, %

                                     04A2  6040 		>			; 

            00         FF AB     8F  04A2       	CASEB	OPER-B(R11),#0,S^#<<30003$-30002$>/2>-1

                          04'        04A6       

                                     04A7       30002$:

                               0017' 04A7       	.WORD	ADD-30002$

                               0017' 04A9       	.WORD	ADD-30002$

                               000A' 04AB       	.WORD	SHFT-30002$

                               000F' 04AD       	.WORD	MUL-30002$

                               0013' 04AF       	.WORD	DIV-30002$

                                     04B1       30003$:

            57            56     78  04B1  6060 SHFT:	ASHL	R6,R7,R7		; SHIFT

                          57         04B4       

                                 05  04B5  6080 	RSB				; AND EXIT

            57            56     C4  04B6  6100 MUL:	MULL	R6,R7	; MULTIPLY

                                 05  04B9  6120 	RSB				; AND EXIT

            57            56     C6  04BA  6140 DIV:	DIVL	R6,R7	; DIVIDE

                                 05  04BD  6160 	RSB				; AND EXIT

            57            56     C0  04BE  6180 ADD:	ADDL	R6,R7	; ADD

                                 05  04C1  6200 	RSB				; AND EXIT

                                     04C2  6220 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page   9

                SLASH - OPEN CELL                                                                                                (1)



                                     04C2  6260 	.SBTTL	SLASH - OPEN CELL

                                     04C2  6280 

                                     04C2  6300 ;

                                     04C2  6320 ;	OPEN SPECIFIED CELL

                                     04C2  6340 ;

                                     04C2  6360 DQUOTE:					; DISPLAY IN ASCII

            6A            02     88  04C2  6380 	BISB	#<1@V_ASCII>,(R10)	; SET ASCII FLAG

                          03     11  04C5  6400 	BRB	OPEN			; 

                                     04C7  6420 

                                     04C7  6440 SLASH:					;

            6A            02     8A  04C7  6460 	BICB	#<1@V_ASCII>,(R10)	; CLEAR ASCII DISPLAY MODE

                          47     10  04CA  6480 OPEN:	BSBB	ENDFIELD		; TERMINATE FIELD

            6A            08     E0  04CC  6500 	BBS	#V_F1,(R10),5$		; ADDR SPECIFIED?

                          06         04CF       

            6B         04 AB     D0  04D0  6520 	MOVL	QUAN-B(R11),CURDOT-B(R11)	; NO, GO INDIRECT

                          04     11  04D4  6540 	BRB	10$			; AND DISPLAY CONTENT

            6B         E4 AB     D0  04D6  6560 5$:	MOVL	F1-B(R11),CURDOT-B(R11)	; SET NEW DOT

            01            0F     EF  04DA  6580 10$:	EXTZV	#V_PRMODE,#1,(R10),R0	; GET PROCESSOR REGISTER MODE FLAG

            50            6A         04DD       

            1F            50     F0  04DF  6600 	INSV	R0,#V_PREG,#1,(R10)	; AND MOVE TO SEMI-PERMANENT COPY

            6A            01         04E2       

                          009E   30  04E4  6620 	BSBW	LOCOUT			; OUTPUT AND OPEN

            6A            09     E1  04E7  6640 	BBC	#V_F2,(R10),RSET	; RANGE SPECIFIED?

                          1B         04EA       

            6B         E8 AB     D1  04EB  6660 15$:	CMPL	F2-B(R11),CURDOT-B(R11)	; CHECK FOR END

                          15     15  04EF  6680 	BLEQ	RSET			; YES

                                     04F1  6700 	.IF	NDF,SW_PROCESS		;

                                     04F1  6720 	BSBB	NEXTLOC			; INCREMENT TO NEXT DOT

                                     04F1  6740 	.IFF				;

                          008D   30  04F1  6760 	BSBW	NEXTLOC			; INCREMENT TO NEXT DOT

                                     04F4  6780 	.ENDC				;

                          F5     11  04F4  6800 	BRB	15$			; AND CONTINUE

                          FF1B   31  04F6  6820 ERR4:	BRW	ERROR			; DECLARE ERROR

                                     04F9  6840 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  10

                RETURN - CLOSE CURRENT OPEN CELL                                                                                 (1)



                                     04F9  6880 	.SBTTL	RETURN - CLOSE CURRENT OPEN CELL

                                     04F9  6900 

                                     04F9  6920 ;

                                     04F9  6940 ;	RETURN - CLOSE CURRENT OPEN CELL

                                     04F9  6960 ;

                                     04F9  6980 

                                     04F9  7000 RETURN:					;

                          18     10  04F9  7020 	BSBB	ENDFIELD		; TERMINATE CURRENT FIELD

                                     04FB  7040 	.ENABL	LSB			;

            6A            00     E5  04FB  7060 	BBCC	#V_OPEN,(R10),10$	; SKIP IF NONE OPEN

                          0A         04FE       

            6A            08     E1  04FF  7080 	BBC	#V_F1,(R10),RSET	; SKIP IF NOTHING TO STORE

                          03         0502       

                          0598   30  0503  7100 	BSBW	DEPOSIT			; DEPOSIT

                          0224   31  0506  7120 RSET:	BRW	RESET			; RESET SCANNER

            6A            08     E1  0509  7140 10$:	BBC	#V_F1,(R10),RSET	; DONE IF NO INPUT

                          F9         050C       

                          0215   31  050D  7160 	BRW	EQL1			; OTHERWISE OUTPUT

                                     0510  7180 	.DSABL	LSB			;

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  11

                ENDFIELD - TERMINATE CURRENT FIELD                                                                               (1)



                                     0510  7220 	.SBTTL	ENDFIELD - TERMINATE CURRENT FIELD

                                     0510  7240 

                                     0510  7260 ;

                                     0510  7280 ;	COMMA TERMINATE CURRENT FIELD

                                     0510  7300 ;

                          FF67   30  0510  7320 COMMA:	BSBW	INFLD			; ZERO IF NULL FIELD

                                     0513  7340 

                                     0513  7360 ;

                                     0513  7380 ;	TERMINATE CURRENT FIELD

                                     0513  7400 ;

                                     0513  7420 ENDFIELD:				;

            6A            02     E5  0513  7440 	BBCC	#V_INFIELD,(R10),10$	; CLEAR PENDING FIELD

                          16         0516       

                          FF79   30  0517  7460 	BSBW	ENDEXPR			; END EXPRESSION

            50         FC AB     9A  051A  7480 	MOVZBL	FCTR-B(R11),R0		; GET FIELD POINTER

         01 AA            50     E2  051E  7500 	BBSS	R0,1(R10),ERR4		; ERROR IF TOO MANY FIELDS

                          D3         0522       

         E4 AB40          57     D0  0523  7520 	MOVL	R7,F1-B(R11)[R0]	; STORE FIELD VALUE

                       FC AB     96  0528  7540 	INCB	FCTR-B(R11)		; INCREMENT FIELD COUNTER

                          56     7C  052B  7560 	CLRQ	R6			; CLEAR ACCUMULATORS

                                 05  052D  7580 10$:	RSB				; RETURN

                                     052E  7600 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  12

                FETCH - OBTAIN DATA SPECIFIED                                                                                    (1)



                                     052E  7640 	.SBTTL	FETCH - OBTAIN DATA SPECIFIED

                                     052E  7660 

                                     052E  7680 ;

                                     052E  7700 ;	FETCH SPECIFIED DATA

                                     052E  7720 ;

                                     052E  7740 FETCH:					;

            6A            1F     E0  052E  7760 	BBS	#V_PREG,(R10),40$	; BR IF PROCESSOR REGISTER

                          1D         0531       

                                     0532  7780 	CASE	CURTYPE-B(R11),TYPE=B,<-	; OPERATE ON TYPE

                                     0532  7800 		10$,-			; BYTE

                                     0532  7820 		20$,-			; WORD

                                     0532  7840 		30$,-			; LONG

                                     0532  7860 		>			;

            00         FE AB     8F  0532       	CASEB	CURTYPE-B(R11),#0,S^#<<30005$-30004$>/2>-1

                          02'        0536       

                                     0537       30004$:

                               0006' 0537       	.WORD	10$-30004$

                               000C' 0539       	.WORD	20$-30004$

                               0012' 053B       	.WORD	30$-30004$

                                     053D       30005$:

         04 AB         00 BB     9A  053D  7880 10$:	MOVZBL	@CURDOT-B(R11),QUAN-B(R11)	; GET BYTE

                                 05  0542  7900 	RSB				; RETURN

         04 AB         00 BB     3C  0543  7920 20$:	MOVZWL	@CURDOT-B(R11),QUAN-B(R11)	; GET WORD

                                 05  0548  7940 	RSB				; RETURN

         04 AB         00 BB     D0  0549  7960 30$:	MOVL	@CURDOT-B(R11),QUAN-B(R11)	; GET LONGWORD

                                 05  054E  7980 	RSB				; RETURN

                                     054F  8000 	.IF	NDF,SW_PROCESS		;

                                     054F  8020 40$:	MFPR	CURDOT-B(R11),QUAN-B(R11)	; GET PROCESSOR REGISTER

                                     054F  8040 	.IFF				; FALSE IF PROCESS VERSION

                                     054F  8060 40$:					;

                                     054F  8080 	$CMKRNL_S	B^FTCHPREG,(AP)	; CALL IN KERNEL MODE TO FETCH

                          6C     DF  054F       		PUSHAL	(AP)

                       5C'AF     DF  0551       		PUSHAL	B^FTCHPREG

   00000000'9F            02     FB  0554       		CALLS	#2,@#SYS$CMKRNL

                                     055B  8100 	.ENDC

                                 05  055B  8120 	RSB				; RETURN

                                     055C  8140 

                                     055C  8160 	.IF	DF,SW_PROCESS		;

                                     055C  8180 FTCHPREG:				;

                               0000  055C  8200 	.WORD	0			; ENTRY MASK

            6D       0AF8'CF     9E  055E  8220 	MOVAB	W^PREXC,(FP)		; SET EXCEPTION HANDLER

         04 AB            6B     DB  0563  8240 	MFPR	CURDOT-B(R11),QUAN-B(R11)	; GET PROCESSOR REGISTER

            50            01     D0  0567  8260 	MOVL	#1,R0			; RETURN SUCCESS

                                 04  056A  8280 	RET				;

                                     056B  8300 

                                     056B  8320 	.ENDC				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  13

                NEXTDOT - INCREMENT CURRENT LOCATION                                                                             (1)



                                     056B  8360 	.SBTTL	NEXTDOT - INCREMENT CURRENT LOCATION

                                     056B  8380 

                                     056B  8400 ;

                                     056B  8420 ;	INCREMENT TO NEXT LOCATION

                                     056B  8440 ;

                                     056B  8460 NEXTDOT:				;

            51            01     D0  056B  8480 	MOVL	#1,R1			; ASSUME UNIT INCREMENT

                          6A     D5  056E  8500 	TSTL	(R10)			; CHECK FOR PREG

                          05     19  0570  8520 	BLSS	10$			; YES, USE UNIT INCREMENT

            51         FE AB     9C  0572  8540 	ROTL	CURTYPE-B(R11),R1,R1	; FORM INCREMENT

                          51         0576       

            6B            51     C0  0577  8560 10$:	ADDL	R1,CURDOT-B(R11)	; AND ADD TO DOT

                                 05  057A  8580 	RSB				; RETURN

                                     057B  8600 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  14

                OUTPUT - DISPLAY CONTENT                                                                                         (1)



                                     057B  8640 	.SBTTL	OUTPUT - DISPLAY CONTENT

                                     057B  8660 ;

                                     057B  8680 ;	OUTPUT CONTENT

                                     057B  8700 ;

                                     057B  8720 OUTBB:	

                           1C 0C 04  057B  8740 	.BYTE	4,12,28			; STARTING DIGIT LIST

                                     057E  8760 	.SBTTL	LINE FEED - DISPLAY NEXT

                                     057E  8780 ;

                                     057E  8800 ;

                                     057E  8820 ;

                                     057E  8840 LINEFEED:				;

                          FF78   30  057E  8860 	BSBW	RETURN			; CLOSE OPEN CELL

                                     0581  8880 NEXTLOC:				; PROMPT WITH NEXT LOCATION

                          E8     10  0581  8900 	BSBB	NEXTDOT			; INCREMENT LOCATION

                                     0583  8920 LOCPROMPT:				; DISPLAY ADDR/CONTENT

                          2B     10  0583  8940 	BSBB	OUTPUTA			; OUTPUT ADDRESS

                          A7     10  0585  8960 LOCOUT:	BSBB	FETCH			; FETCH CONTENT

            6A            01     C8  0587  8980 	BISL	#<1@V_OPEN>,(R10)	; INDICATE OPEN CELL

                                     058A  9000 

                                     058A  9020 OUTPUT:					;

            51         FE AB     9A  058A  9040 	MOVZBL	CURTYPE-B(R11),R1	; GET TYPE

            52         E9 AF41   9A  058E  9060 	MOVZBL	OUTBB[R1],R2		; INIT DIGIT SELECTOR

            53         04 AB     D0  0593  9080 	MOVL	QUAN-B(R11),R3		; GET QUANTITY TO DISPLAY

            6A            01     E0  0597  9100 	BBS	#V_ASCII,(R10),10$	; CHECK FOR ASCII OUT

                          04         059A       

                          53     10  059B  9120 	BSBB	OUTCOM			; OUTPUT NUMBER IN HEX

                          0E     11  059D  9140 	BRB	20$			; AND EXIT THROUGH OUTSPACE

         08 AB            53     D0  059F  9160 10$:	MOVL	R3,OUTBUF-B(R11)	; PUT STRING IN BUFFER

            01            51     78  05A3  9180 	ASHL	R1,#1,R2		; GET COUNT

                          52         05A6       

                       08 AB42   94  05A7  9200 	CLRB	OUTBUF-B(R11)[R2]	; MARK END OF STRING

                          59     10  05AB  9220 	BSBB	OUTZBUF			; OUTBUT ASCIIZ BUFFER

                          0094   31  05AD  9240 20$:	BRW	OUTSPACE		; FOLLOW WITH SPACE

                                     05B0  9260 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  15

                OUTPUTA - OUTPUT ADDRESS                                                                                         (1)



                                     05B0  9300 	.SBTTL	OUTPUTA - OUTPUT ADDRESS

                                     05B0  9320 ;

                                     05B0  9340 ;	OUTPUT ADDRESS

                                     05B0  9360 ;

                                     05B0  9380 OUTPUTA:				; OUTPUT ADDRESS

                          0096   30  05B0  9400 	BSBW	CRLF			; OUTPUT CR/LF

            53         18 AB     9E  05B3  9420 	MOVAB	SAVREG-B(R11),R3	; BASE OF REGISTER AREA

            6B            53     C3  05B7  9440 	SUBL3	R3,CURDOT-B(R11),R3	; COMPUTE OFFSET INTO REGISTER AREA

                          53         05BA       

                          12     19  05BB  9460 	BLSS	5$			; NOT GENERAL REGISTER

            53            04     C6  05BD  9480 	DIVL	#4,R3			; SCALE TO LONGWORD NUMBER

            0F            53     D1  05C0  9500 	CMPL	R3,#15			; CHECK FOR MAX REG NUMBER

                          0A     14  05C3  9520 	BGTR	5$			; GTR, NOT A REGISTER

            50         52 8F     9A  05C5  9540 	MOVZBL	#^A'R',R0		; OUTPUT PREFIX

                          52     10  05C9  9560 	BSBB	OUTCHAR			; OF 'R'

                          52     D4  05CB  9580 	CLRL	R2			; AND SET FOR ONE DIGIT OF OUTPUT

                          13     11  05CD  9600 	BRB	10$			;

            53            6B     D0  05CF  9620 5$:	MOVL	CURDOT-B(R11),R3	; GET ADDRESS

            52            1C     D0  05D2  9640 	MOVL	#28,R2			; ASSUME LONGWORD OUTPUT

                          6A     D5  05D5  9660 	TSTL	(R10)			; CHECK FOR PROCESSOR REGISTER

                          09     18  05D7  9680 	BGEQ	10$			; NO, JUST A LONGWORD

            50         50 8F     9A  05D9  9700 	MOVZBL	#^A'P',R0		; PRECEDE WITH A 'P'

                          3E     10  05DD  9720 	BSBB	OUTCHAR			; OUTPUT P

            52            04     D0  05DF  9740 	MOVL	#4,R2			; SET FIELD TO 2 DIGITS

                          0C     10  05E2  9760 10$:	BSBB	OUTCOM			; COMMON OUTPUT

            50            2F     9A  05E4  9780 	MOVZBL	#SLSH,R0		; OUTPUT SLASH

                          34     11  05E7  9800 	BRB	OUTCHAR			; RETURN THROUGH OUTCHAR

                                     05E9  9820 OUTDIGIT:				; OUTPUT ONE DIGIT

                          52     D4  05E9  9840 	CLRL	R2			; ZAP DIGIT SELECTOR

                          03     11  05EB  9860 	BRB	OUTCOM			; AND MERGE WITH COMMON

                                     05ED  9880 

                                     05ED  9900 OUTLONG:				; OUTPUT LONGWORD

            52            1C     D0  05ED  9920 	MOVL	#28,R2			; SET DIGIT SELECTOR

                                     05F0  9940 OUTCOM:					; FORMAT IT

            54         08 AB     9E  05F0  9960 	MOVAB	OUTBUF-B(R11),R4	; GET ADDRESS OF OUTPUT BUFFER

            04            52     EF  05F4  9980 10$:	EXTZV	R2,#4,R3,R1		; GET DIGIT

            51            53         05F7       

            84       FDDC CF41   90  05F9 10000 	MOVB	PRIMARY[R1],(R4)+	; BUFFER IT

            52            04     C2  05FF 10020 	SUBL	#4,R2			; NEXT DIGIT

                          F0     18  0602 10040 	BGEQ	10$			; DO ALL REQUESTED

                          64     94  0604 10060 	CLRB	(R4)			; MARK END OF BUFFER

            54         08 AB     9E  0606 10080 OUTZBUF:MOVAB	OUTBUF-B(R11),R4	; GET START OF BUFFER

                                     060A 10100 

                                     060A 10120 OUTZSTRING:				; OUTPUT ASCIZ STRING

            50            84     9A  060A 10140 	MOVZBL	(R4)+,R0		; GET A CHAR

                          04     13  060D 10160 	BEQL	10$			; BR IF DONE

                          0C     10  060F 10180 	BSBB	OUTCHAR			; OUTPUT CHAR

                          F7     11  0611 10200 	BRB	OUTZSTRING		; CONTINUE

                                 05  0613 10220 10$:	RSB				; RETURN IF DONE

                                     0614 10240 

                                     0614 10260 

                                     0614 10280 OUTBSLSH:				; OUTPUT BACK SLASH

            50         5C 8F     9A  0614 10300 	MOVZBL	#BSLSH,R0		; SET CHARACTER CODE

                          03     11  0618 10320 	BRB	OUTCHAR			; AND OUTPUT IT

            50            58     9A  061A 10340 OUTR8:	MOVZBL	R8,R0			; GET CHAR TO OUTPUT

                                     061D 10360 OUTCHAR:				; OUTPUT CHAR IN R0

                                     061D 10380 	.IF	NDF,SW_PROCESS		;

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  16

                OUTPUTA - OUTPUT ADDRESS                                                                                         (1)



                                     061D 10400 	TSTL	AP			; CHECK FOR CONSOLE

                                     061D 10420 	BNEQ	10$			; NO, USE DEVICE DIRECTLY

                                     061D 10440 	MFPR	#PR$_TXCS,R1		; GET CONSOLE TRANSMIT STATUS

                                     061D 10460 	BRB	20$			; MERGE WITH COMMON CODE

                                     061D 10480 10$:	MOVW	OUTCR(AP),R1		; GET STATUS

                                     061D 10500 20$:	BBC	#7,R1,OUTCHAR		; WAIT FOR READY

                                     061D 10520 	TSTL	AP			; CHECK FOR CONSOLE

                                     061D 10540 	BNEQ	30$			; YES

                                     061D 10560 	MTPR	R0,#PR$_TXDB		; SEND CHARACTER TO CONSOLE

                                     061D 10580 	RSB				; RETURN

                                     061D 10600 30$:	MOVB	R0,OUTB(AP)		; OUTPUT CHAR

                                     061D 10620 	.IFF				; FALSE FOR PROCESS VERSION

                          50     DD  061D 10640 	PUSHL	R0			; BUFFER CHARACTER ON STACK

            50            5E     D0  061F 10660 	MOVL	SP,R0			; SAVE POINTER TO IT

                                     0622 10680 	$QIO_S	EFN=#30,-		;

                                     0622 10700 		CHAN=TTCHAN,-		; 

                                     0622 10720 		FUNC=#IO$_WRITEVBLK,-	;

                                     0622 10740 		P1=(R0),-		; BUFFER ADDRESS

                                     0622 10760 		P2=#1			; ONE CHARACTER

                          7E     7C  0622       		CLRQ	-(SP)

                          7E     7C  0624       		CLRQ	-(SP)

                          01     DD  0626       		PUSHL	#1

                          60     DF  0628       		PUSHAL	(R0)

                          7E     7C  062A       		CLRQ	-(SP)

                          00     DD  062C       		PUSHL	#0

            7E       0000'8F     3C  062E       		MOVZWL	#IO$_WRITEVBLK,-(SP)

            7E       FD59 CF     3C  0633       		MOVZWL	TTCHAN,-(SP)

                          1E     DD  0638       		PUSHL	#30

   00000000'9F            0C     FB  063A       		CALLS	#12,@#SYS$QIO

                          01     BA  0641 10780 	POPR	#^M<R0>			; RESTORE CHARACTER

                                     0643 10800 	.ENDC				;

                                 05  0643 10820 	RSB				; AND RETURN

                                     0644 10840 OUTSPACE:				;

            50            20     9A  0644 10860 	MOVZBL	#32,R0			; SET CODE FOR SPACE

                          D4     11  0647 10880 	BRB	OUTCHAR			; AND SEND IT

            50            0D     9A  0649 10900 CRLF:	MOVZBL	#CR,R0			; RETURN

                          CF     10  064C 10920 	BSBB	OUTCHAR			; SEND IT

            50            0A     9A  064E 10940 	MOVZBL	#LF,R0			; LINE FEED

                          CA     11  0651 10960 	BRB	OUTCHAR			; SEND IT

                                     0653 10980 

                                     0653 11000 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  17

                GETCHAR - GET INPUT CHARACTER ROUTINE                                                                            (1)



                                     0653 11040 	.SBTTL	GETCHAR - GET INPUT CHARACTER ROUTINE

                                     0653 11060 

                                     0653 11080 ;

                                     0653 11100 ;	GETCHAR - GET INPUT CHARACTER

                                     0653 11120 ;

                                     0653 11140 ; OUTPUT:

                                     0653 11160 ;	R8 - INPUT CHARACTER

                                     0653 11180 ;	R9 - BUFFER POINTER UPDATED (BUFFER IN ASCIZ FORMAT)

                                     0653 11200 ;

                                     0653 11220 

                                     0653 11240 GETCHAR:				;

            58            89     9A  0653 11260 	MOVZBL	(R9)+,R8		; GET NEXT CHARACTER

                          01     13  0656 11280 	BEQL	10$			; READ IF NONE AVAIL

                                 05  0658 11300 	RSB

            59         B0 AB     9E  0659 11320 10$:	MOVAB	INBUF-B(R11),R9		; SET ADDRESS OF INPUT BUFFER

                                     065D 11340 	.IF	NDF,SW_PROCESS		;

                                     065D 11360 20$:	TSTL	AP			; CHECK FOR CONSOLE

                                     065D 11380 	BEQL	30$			; YES

                                     065D 11400 	MOVW	RDCR(AP),R0		; GET STATUS

                                     065D 11420 	BRB	40$			; CHECK STATUS

                                     065D 11440 30$:	MFPR	#PR$_RXCS,R0		; GET CONSOLE STATUS

                                     065D 11460 40$:	BBC	#7,R0,20$		; WAIT FOR READY

                                     065D 11480 	TSTL	AP			; CHECK FOR CONSOLE

                                     065D 11500 	BEQL	50$			; YES

                                     065D 11520 	MOVB	RDBUF(AP),R8		; GET CHARACTER

                                     065D 11540 	BRB	60$			; MERGE WITH COMMON

                                     065D 11560 50$:	MFPR	#PR$_RXDB,R8		; GET CONSOLE CHARACTER

                                     065D 11580 	.IFF				; FALSE IF PROCESS VERSION

                                     065D 11600 15$:	$QIOW_S	EFN=#31,-		; 

                                     065D 11620 		CHAN=TTCHAN,-		; INPUT DEVICE CHANNEL

                                     065D 11640 		IOSB=TTIOSB,-		; IO STATUS BLOCK

                                     065D 11660 		FUNC=#<IO$_READVBLK>,-	;

                                     065D 11680 		P1=(R9),-		; BUFFER ADDRESS

                                     065D 11700 		P2=#80,-		; READ SIZE

                                     065D 11720 	P4=#TERMASKD			;

                          7E     7C  065D       		CLRQ	-(SP)

                 000003C2'8F     DD  065F       		PUSHL	#TERMASKD

                          00     DD  0665       		PUSHL	#0

                 00000050 8F     DD  0667       		PUSHL	#80

                          69     DF  066D       		PUSHAL	(R9)

                          7E     7C  066F       		CLRQ	-(SP)

                     FD13 CF     7F  0671       		PUSHAQ	TTIOSB

            7E       0000'8F     3C  0675       		MOVZWL	#<IO$_READVBLK>,-(SP)

            7E       FD12 CF     3C  067A       		MOVZWL	TTCHAN,-(SP)

                          1F     DD  067F       		PUSHL	#31

   00000000'9F            0C     FB  0681       		CALLS	#12,@#SYS$QIOW

            50       FCFE CF     3C  0688 11740 	MOVZWL	TTIOSB+2,R0		; GET SIZE READ

            8049     FCFB CF     90  068D 11760 	MOVB	TTIOSB+4,(R0)+[R9]	; BUFFER TERMINATOR 

                          6940   94  0693 11780 	CLRB	(R9)[R0]		; MARK END OF BUFFER

            52            59     D0  0696 11800 	MOVL	R9,R2			; POINT TO START OF STRING

            58            82     9A  0699 11820 20$:	MOVZBL	(R2)+,R8		; GET A CHARACTER

                          BF     13  069C 11840 	BEQL	15$			; EMPTY, READ SOME MORE

                                     069E 11860 	.ENDC				;

            58         80 8F     8A  069E 11880 60$:	BICB	#^X80,R8		; STRIP PARITY

         7F 8F            58     91  06A2 11900 	CMPB	R8,#RUBOUT		; CHECK FOR RUBOUT

                          15     12  06A6 11920 	BNEQ	90$			; NO

            6A            06     E2  06A8 11940 	BBSS	#V_RUB,(R10),70$	; SET START OF RUBOUT SEQUENCE

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  18

                GETCHAR - GET INPUT CHARACTER ROUTINE                                                                            (1)



                          03         06AB       

                          FF65   30  06AC 11960 	BSBW	OUTBSLSH		; OUTPUT BACK SLASH

            58            79     9A  06AF 11980 70$:	MOVZBL	-(R9),R8		; GET RUBBED OUT CHAR

                          04     12  06B2 12000 	BNEQ	80$			; SKIP INC

                          59     D6  06B4 12020 	INCL	R9			; POINT AT START OF BUFFER

                          E1     11  06B6 12040 	BRB	20$			; AND GET ANOTHER

                          FF5F   30  06B8 12060 80$:	BSBW	OUTR8			; OUTPUT RUBBED OUT CHAR

                          DC     11  06BB 12080 	BRB	20$			; AND GET ANOTHER

            6A            06     E5  06BD 12100 90$:	BBCC	#V_RUB,(R10),100$	; TERMINATE RUBOUT SEQUENCE

                          03         06C0       

                          FF50   30  06C1 12120 	BSBW	OUTBSLSH		; OUTPUT BACK SLASH

            58            06     E1  06C4 12140 100$:	BBC	#6,R8,110$		; BR IF NOT ALPHA

                          03         06C7       

            58            20     8A  06C8 12160 	BICB	#32,R8			; SET TO UPPER CASE

                                     06CB 12180 110$:					;

                                     06CB 12200 	.IF	NDF,SW_PROCESS		;

                                     06CB 12220 	BSBW	OUTR8			; ECHO CHARACTER

                                     06CB 12240 	.ENDC				;

            89            58     90  06CB 12260 	MOVB	R8,(R9)+		; BUFFER NEW CHAR

            08            58     3A  06CE 12280 	LOCC	R8,#NTERM,TERM		; CHECK FOR TERMINATOR

                     FD1F CF         06D1       

                          C3     13  06D4 12300 	BEQL	20$			; NOT A TERMINATOR

            58            0D     91  06D6 12320 	CMPB	#CR,R8			; IS CHAR = RETURN

                          03     12  06D9 12340 	BNEQ	120$			; NO,

                          FF6B   30  06DB 12360 	BSBW	CRLF			; YES, SEND CR/LF

                          69     94  06DE 12380 120$:	CLRB	(R9)			; MARK END OF BUFFER

            59         B0 AB     9E  06E0 12400 	MOVAB	INBUF-B(R11),R9		; RESTORE BUFFER BASE

                          FF6C   31  06E4 12420 	BRW	GETCHAR			; AND TRY AGAIN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  19

                PLUS/MINUS OPERATORS                                                                                             (1)



                                     06E7 12460 	.SBTTL	PLUS/MINUS OPERATORS

                                     06E7 12480 ;

                                     06E7 12500 ;	PLUS/MINUS OPERATORS

                                     06E7 12520 ;

                                     06E7 12540 BLANK:					; SAME AS PLUS

                                     06E7 12560 OPERATOR:				; 

                          FDA9   30  06E7 12580 	BSBW	ENDEXPR			; END EXPR

            50            12     83  06EA 12600 	SUBB3	#OPERBAS,R0,OPER-B(R11)	; SET OPERATOR

                       FF AB         06ED       

                                 05  06EF 12620 	RSB				; RETURN

                                     06F0 12640 ;

                                     06F0 12660 ;	MONADIC MINUS - NEGATE

                                     06F0 12680 ;

                          56     D5  06F0 12700 NEGATE:	TSTL	R6			; TEST ACCUMULATOR

                          03     13  06F2 12720 	BEQL	5$			; EMPTY

                          FD9C   30  06F4 12740 	BSBW	ENDEXPR			; OTHERWISE PERFORM OPERATION

            6A         80 8F     8C  06F7 12760 5$:	XORB	#<1@V_NEGATE>,(R10)	; TOGGLE NEGATE FLAG

                                 05  06FB 12780 10$:	RSB				; AND RETURN

                                     06FC 12800 

                                     06FC 12820 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  20

                TAB - INDIRECT DISPLAY                                                                                           (1)



                                     06FC 12860 	.SBTTL	TAB - INDIRECT DISPLAY

                                     06FC 12880 ;

                                     06FC 12900 ;	TAB

                                     06FC 12920 ;

            6B         04 AB     D0  06FC 12940 TAB:	MOVL	QUAN-B(R11),CURDOT-B(R11)	; GO INDIRECT

            01            0F     EF  0700 12960 	EXTZV	#V_PRMODE,#1,(R10),R0	; GET PROCESSOR REGISTER MODE

            50            6A         0703       

            1F            50     F0  0705 12980 	INSV	R0,#V_PREG,#1,(R10)	; AND COPY TO SEMI-PERMANENT FLAG

            6A            01         0708       

                          0F     11  070A 13000 	BRB	LOCP			; AND DISPLAY IT

                                     070C 13020 

                                     070C 13040 ;

                                     070C 13060 ;	ESCAPE - DISPLAY PREVIOUS LOCATION

                                     070C 13080 ;

                                     070C 13100 

                                     070C 13120 ESCAP:					;

            51            01     D0  070C 13140 	MOVL	#1,R1			; ASSUME UNIT INCREMENT

                          6A     D5  070F 13160 	TSTL	(R10)			; CHECK FOR PROCESSOR REGISTER

                          05     19  0711 13180 	BLSS	10$			; YES, USE UNIT INCREMENT

            51         FE AB     9C  0713 13200 	ROTL	CURTYPE-B(R11),R1,R1	; FORM INCREMENT

                          51         0717       

            6B            51     C2  0718 13220 10$:	SUBL	R1,CURDOT-B(R11)	; AND SUBTRACT FROM DOT

                          FE65   31  071B 13240 LOCP:	BRW	LOCPROMPT		; PROMPT WITH CONTENT

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  21

                EQUALS - DISPLAY VALUE                                                                                           (1)



                                     071E 13280 	.SBTTL	EQUALS - DISPLAY VALUE

                                     071E 13300 ;

                                     071E 13320 ;	EQUALS - VALUE DISPLAY

                                     071E 13340 ;

                                     071E 13360 EQUALS:					;

                                     071E 13380 	.ENABL	LSB			;

                          FDF2   30  071E 13400 	BSBW	ENDFIELD		; TERMINATE FIELD

            6A            08     E1  0721 13420 	BBC	#V_F1,(R10),10$		; IGNORE IF FIELD BLANK

                          05         0724       

         04 AB         E4 AB     D0  0725 13440 EQL1:	MOVL	F1-B(R11),QUAN-B(R11)	; SET QUANTITY

                          FE5D   30  072A 13460 10$:	BSBW	OUTPUT			; OUTPUT IT

                                     072D 13480 ;	BRB	RESET			; RESET SCANNER

                                     072D 13500 	.DSABL	LSB			;

                                     072D 13520 

                                     072D 13540 ;

                                     072D 13560 ;	RESET

                                     072D 13580 ;

                                     072D 13600 

            6A   00FFFF80 8F     CA  072D 13620 RESET:	BICL	#^X0FFFF80,(R10)		; CLEAR FIELD AND NEGATE FLAGS

                       FC AB     94  0734 13640 	CLRB	FCTR-B(R11)		; CLEAR FIELD COUNTER

                          56     7C  0737 13660 	CLRQ	R6			; RESET ACCUMULATORS

                                 05  0739 13680 	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  22

                SEMI - SECONDARY COMMAND SET                                                                                     (1)



                                     073A 13720 	.SBTTL	SEMI - SECONDARY COMMAND SET

                                     073A 13740 ;

                                     073A 13760 ;	SEMI

                                     073A 13780 ;

                                     073A 13800 

                                     073A 13820 SECOND:					;

                                 58  073A 13840 	.ASCII	/X/			; X REGISTER SET/DISPLAY

                                 50  073B 13860 	.ASCII	/P/			; P - PROCEED

                                 4D  073C 13880 	.ASCII	/M/			; M - SET MASK

                                 49  073D 13900 	.ASCII	/I/			; I - PROGRAM COUNTER

                                 47  073E 13920 	.ASCII	/G/			; G - GO, START

                                 45  073F 13940 	.ASCII	/E/			; E - EXECUTE STRING

                                 42  0740 13960 	.ASCII	/B/			; B - SET/CLR BREAKPOINT

                           00000007  0741 13980 NSEC=.-SECOND				; NUMBER OF SECONDARY COMMANDS

                                     0741 14000 

                                     0741 14020 SEMI:					;

            6A            01     8A  0741 14040 	BICB	#<1@V_OPEN>,(R10)	; CLEAR OPEN FLAG

                          FDCC   30  0744 14060 	BSBW	ENDFIELD		; TERMINATE FIELD

                          FF09   30  0747 14080 	BSBW	GETCHAR			; GET SECONDARY COMMAND CHAR

            07            58     3A  074A 14100 	LOCC	R8,#NSEC,SECOND		; LOCATE SECONDARY COMMAND

                       EB AF         074D       

                                     074F 14120 10$:	CASE	R0,LIMIT=#1,<-		; SWITCH ON TYPE

                                     074F 14140 		BRKPOINT,-		; SET BREAKPOINT

                                     074F 14160 		EXECUTE,-		; EXECUTE STRING

                                     074F 14180 		GO,-			; SEMI-G, GO

                                     074F 14200 		PROGCTR,-		; SEMI-I, INSTRUCTION CONTER

                                     074F 14220 		MASKS,-			; SEMI-M, MASK

                                     074F 14240 		PROCED,-		; SEMI-P, PROCEED

                                     074F 14260 		XSET,-			; SET XREGISTER

                                     074F 14280 		>			;

            01            50     AF  074F       	CASEW	R0,#1,S^#<<30007$-30006$>/2>-1

                          06'        0752       

                                     0753       30006$:

                               003A' 0753       	.WORD	BRKPOINT-30006$

                               03B9' 0755       	.WORD	EXECUTE-30006$

                               00EF' 0757       	.WORD	GO-30006$

                               0112' 0759       	.WORD	PROGCTR-30006$

                               00F9' 075B       	.WORD	MASKS-30006$

                               00F8' 075D       	.WORD	PROCED-30006$

                               0153' 075F       	.WORD	XSET-30006$

                                     0761       30007$:

                          FCB0   31  0761 14300 ERR2:	BRW	ERROR			; ERROR

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  23

                LEFT BRACKET - MODE SELECTION                                                                                    (1)



                                     0764 14340 	.SBTTL	LEFT BRACKET - MODE SELECTION

                                     0764 14360 ;

                                     0764 14380 ;

                                     0764 14400 ;	LEFT BRACKET

                                     0764 14420 ;

                                     0764 14440 MODES:					; MODE CHARACTER LIST

                                 43  0764 14460 	.ASCII	/C/			; CHARACTER

                                 4C  0765 14480 	.ASCII	/L/			; LONG, HEX

                                 57  0766 14500 	.ASCII	/W/			; WORD, HEX

                                 42  0767 14520 	.ASCII	/B/			; BYTE, HEX

                           00000004  0768 14540 NMODES=.-MODES				; NUMBER OF MODE CHARACTERS

                                     0768 14560 

                                     0768 14580 

                                     0768 14600 LBRACKET:				; MODE SELECTION

                          FEE8   30  0768 14620 	BSBW	GETCHAR			; GET MODE CHAR

            04            58     3A  076B 14640 	LOCC	R8,#NMODES,MODES	; CONVERT TO INDEX

                       F4 AF         076E       

                          EF     13  0770 14660 	BEQL	ERR2			; NOT FOUND, ERROR

            50            02     E0  0772 14680 	BBS	#2,R0,10$		; CHECK FOR 'C'

                          09         0775       

            50            01     83  0776 14700 	SUBB3	#1,R0,CURTYPE-B(R11)	; SET MODE

                       FE AB         0779       

            6A            02     8A  077B 14720 	BICB	#<1@V_ASCII>,(R10)	; CLEAR CHAR MODE

                                 05  077E 14740 	RSB				; RETURN

            6A            02     88  077F 14760 10$:	BISB	#<1@V_ASCII>,(R10)	; SET CHARACTER MODE

                                 05  0782 14780 	RSB

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  24

                SINGLE STEP                                                                                                      (1)



                                     0783 14820 	.SBTTL	SINGLE STEP

                                     0783 14840 ;

                                     0783 14860 ;	STEP

                                     0783 14880 ;

            03            01     F0  0783 14900 STEP:	INSV	#1,#V_TBIT,#2,(R10)	; CLR V_ATBRK, SET V_TBIT

            6A            02         0786       

            6A            0F     E5  0788 14920 	BBCC	#V_PRMODE,(R10),20$	; CLEAR PROCESSOR REGISTER DISPLAY MODE

                          00         078B       

                                 04  078C 14940 20$:	RET				; AND RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  25

                BRKPOINT - SET/CLEAR BREAKPOINTS                                                                                 (1)



                                     078D 14980 	.SBTTL	BRKPOINT - SET/CLEAR BREAKPOINTS

                                     078D 15000 ;

                                     078D 15020 ;	BRKPOINT

                                     078D 15040 ;

                                     078D 15060 BRKPOINT:				; 

            6A            08     E1  078D 15080 	BBC	#V_F1,(R10),SHOBRK	; DISPLAY BREAKPOINTS

                          6F         0790       

            6A            09     E0  0791 15100 	BBS	#V_F2,(R10),20$		; YES, IT WAS SPECIFIED

                          12         0794       

            52            01     D0  0795 15120 	MOVL	#1,R2			; INIT INDEX

                     FB3F CF42   D5  0798 15140 10$:	TSTL	BRKADR[R2]		; FIND FREE SLOT

                          13     13  079D 15160 	BEQL	30$			; YES, GOT ONE

            01            08     F1  079F 15180 	ACBL	#NBRK,#1,R2,10$		; CHECK THEM ALL

            FFF3          52         07A2       

                          BA     11  07A5 15200 	BRB	ERR2			; ERROR

            52         E8 AB     D0  07A7 15220 20$:	MOVL	F2-B(R11),R2		; GET BRKPOINT NUMBER

                          EB     13  07AB 15240 	BEQL	10$			; NULL FIELD, SCAN FOR SLOT

            52            08     D1  07AD 15260 	CMPL	#NBRK,R2		; CHECK FOR LEGAL

                          AF     19  07B0 15280 	BLSS	ERR2			; OUT OF RANGE

                     FB4D CF42   D4  07B2 15300 30$:	CLRL	BRKDSP[R2]		; CLEAR DISPLAY

                     FB68 CF42   D4  07B7 15320 	CLRL	BRKCOM[R2]		; CLEAR COMMAND ADDRESS

            50         E4 AB     D0  07BC 15340 	MOVL	F1-B(R11),R0		; GET BREAKPOINT ADDRESS

                          1A     13  07C0 15360 	BEQL	35$			; ALLOW CLEAR OF BREAKPOINT

                                     07C2 15380 	.IF	DF,SW_PROCESS		;

                     007F 8F     BB  07C2 15400 	PUSHR	#^M<R0,R1,R2,R3,R4,R5,R6>	; SAVE REGISTERS FOR PROTECTION CHANGE

            55            50     D0  07C6 15420 	MOVL	R0,R5			; SET START ADDRESS

            56            50     D0  07C9 15440 	MOVL	R0,R6			; AND END ADDRESS

                          0585   30  07CC 15460 	BSBW	SETWRT			; SET PAGE WRITABLE

            50            6E     D0  07CF 15480 	MOVL	(SP),R0			; RESTORE BPT ADDRESS

                                     07D2 15500 	.ENDC				;

            60            60     90  07D2 15520 	MOVB	(R0),(R0)		; TEST WRITABILITY OF ADDRESS

                                     07D5 15540 	.IF	DF,SW_PROCESS		;

                          05B2   30  07D5 15560 	BSBW	REPROT			; RESTORE PROTECTION

                     007F 8F     BA  07D8 15580 	POPR	#^M<R0,R1,R2,R3,R4,R5,R6>	; AND REGISTERS

                                     07DC 15600 	.ENDC				;

            6A            0A     E1  07DC 15620 35$:	BBC	#V_F3,(R10),40$		; DISPLAY SPECIFIED?

                          0C         07DF       

       FB1D CF42       EC AB     D0  07E0 15640 	MOVL	F3-B(R11),BRKDSP[R2]	; SET DISPLAY START

                          03     13  07E7 15660 	BEQL	40$			; SKIP TEST IF NULL

                       EC BB     D5  07E9 15680 	TSTL	@F3-B(R11)		; CHECK READABILITY

            6A            0B     E1  07EC 15700 40$:	BBC	#V_F4,(R10),45$		; SKIP IF NO COMMAND ADDRESS

                          07         07EF       

       FB2D CF42       F0 AB     D0  07F0 15720 	MOVL	F4-B(R11),BRKCOM[R2]	; SET COMMAND STRING

       FADF CF42          50     D0  07F7 15740 45$:	MOVL	R0,BRKADR[R2]		; SAVE BREAKPOINT ADDRESS

                          FF2D   31  07FD 15760 	BRW	RESET			; RESET SCANNER AND RETURN

                                     0800 15780 ;

                                     0800 15800 ;	SHOBRK

                                     0800 15820 ;

                                     0800 15840 SHOBRK:					;

            55            01     D0  0800 15860 	MOVL	#1,R5			; INIT INDEX FOR LOOP

            58       FAD4 CF45   D0  0803 15880 10$:	MOVL	BRKADR[R5],R8		; GET BREAKPOINT ADDRESS

                          2E     13  0809 15900 	BEQL	20$			; SKIP IF NULL

            53            55     D0  080B 15920 	MOVL	R5,R3			; BREAKPOINT NUMBER

                          FE38   30  080E 15940 	BSBW	CRLF			; NEW LINE

                          FDD5   30  0811 15960 	BSBW	OUTDIGIT		; BPT NUMBER

                          FE2D   30  0814 15980 	BSBW	OUTSPACE		; SPACE

            53            58     D0  0817 16000 	MOVL	R8,R3			; ADDRESS OF BPT

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  26

                BRKPOINT - SET/CLEAR BREAKPOINTS                                                                                 (1)



                          FDD0   30  081A 16020 	BSBW	OUTLONG			; OUTPUT ADDRESS

                          FE24   30  081D 16040 	BSBW	OUTSPACE		; SPACE OVER

            53       FADF CF45   D0  0820 16060 	MOVL	BRKDSP[R5],R3		; GET DISPLAY START

                          03     13  0826 16080 	BEQL	15$			; NONE

                          FDC2   30  0828 16100 	BSBW	OUTLONG			; OUTPUT DISPLAY START

            53       FAF4 CF45   D0  082B 16120 15$:	MOVL	BRKCOM[R5],R3		; GET COMMAND STRING ADDRESS

                          06     13  0831 16140 	BEQL	20$			; NONE

                          FE0E   30  0833 16160 	BSBW	OUTSPACE		; SPACE ANOTHER

                          FDB4   30  0836 16180 	BSBW	OUTLONG			; AND OUTPUT A LONGWORD

            01            08     F1  0839 16200 20$:	ACBL	#NBRK,#1,R5,10$		; DO THEM ALL

            FFC4          55         083C       

                          FE07   31  083F 16220 	BRW	CRLF			; AND EXIT THROUGH CRLF

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  27

                GO - START EXECUTION AT SPECIFIED LOCATION                                                                       (1)



                                     0842 16260 	.SBTTL	GO - START EXECUTION AT SPECIFIED LOCATION

                                     0842 16280 ;

                                     0842 16300 ;	GO

                                     0842 16320 ;

            6A            08     E1  0842 16340 GO:	BBC	#V_F1,(R10),PROCED	; JUST PROCEED IF NO VALUE

                          05         0845       

         54 AB         E4 AB     D0  0846 16360 	MOVL	F1-B(R11),SAVPC-B(R11)	; SET NEW PC

                                     084B 16380 ;	BRW	PROCED			; FALL INTO PROCEED

                                     084B 16400 ;

                                     084B 16420 ;	PROCEED

                                     084B 16440 ;

                                     084B 16460 PROCED:					;

                                 04  084B 16480 	RET				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  28

                SEMI-I, PC VALUE                                                                                                 (1)



                                     084C 16520 	.SBTTL	SEMI-I, PC VALUE

                                     084C 16540 ;

                                     084C 16560 ;	SEMI-I

                                     084C 16580 ;

            51         F8 AB     DE  084C 16600 MASKS:	MOVAL	MASK-B(R11),R1		; SET MASK ADDRESS

                          17     11  0850 16620 	BRB	VALUE			; SET/GET VALUE

            51            6B     DE  0852 16640 DOT:	MOVAL	CURDOT-B(R11),R1	; SET ADDRESS OF DOT

            6A            1F     E1  0855 16660 	BBC	#V_PREG,(R10),VALR	; WAS IT PROCESSOR REGISTER?

                          18         0858       

            6A            0F     E2  0859 16680 	BBSS	#V_PRMODE,(R10),VALR	; YES, SET PROCESSOR REGISTER MODE

                          14         085C       

                          12     11  085D 16700 	BRB	VALR			; READ VALUE

            51         04 AB     DE  085F 16720 QUANT:	MOVAL	QUAN-B(R11),R1		; SET QUANTITY ADDRESS

                          0C     11  0863 16740 	BRB	VALR			; READ VALUE

                                     0865 16760 PROGCTR:				;

            51         54 AB     DE  0865 16780 	MOVAL	SAVPC-B(R11),R1		; SET PC ADDRESS

            6A            08     E1  0869 16800 VALUE:	BBC	#V_F1,(R10),VALR	; SKIP IF NO VALUE

                          04         086C       

            61         E4 AB     D0  086D 16820 	MOVL	F1-B(R11),(R1)		; SET NEW VALUE FOR PC

            56            61     D0  0871 16840 VALR:	MOVL	(R1),R6	; AND GET VALUE

                          FC03   31  0874 16860 VALI:	BRW	INFLD			; SET FIELD IN PROGRESS

                                     0877 16880 REGISTER:				;

            55         18 AB     DE  0877 16900 	MOVAL	SAVREG-B(R11),R5	; SET BASE OF REGISTER AREA

                          02     10  087B 16920 	BSBB	REGCOM			; FETCH ADDRESS

                          F5     11  087D 16940 	BRB	VALI			; AND USE IT

                          FDD1   30  087F 16960 REGCOM:	BSBW	GETCHAR			; GET SECOND CHAR

            10            58     3A  0882 16980 	LOCC	R8,#16,PRIMARY		; TRANSLATE TO HEX

                     FB52 CF         0885       

                                     0888 17000 	.IF	DF,SW_PROCESS		; FOR PROCESS VERSION

                          13     12  0888 17020 	BNEQ	10$			; LEGAL HEX DIGIT

         FE A9       4958 8F     B1  088A 17040 	CMPW	#^A/XI/,-2(R9)		; CHECK FOR EXIT COMMAND

                          32     12  0890 17060 	BNEQ	ERR3			; NO, ERROR

                                     0892 17080 	$EXIT_S	EXITCODE		; YES EXIT

                     FB1C CF     DD  0892       		PUSHL	EXITCODE

   00000000'9F            01     FB  0896       		CALLS	#1,@#SYS$EXIT

                                     089D 17100 	.IFF				;

                                     089D 17120 	BEQL	ERR3			; ERROR, NOT HEX

                                     089D 17140 	.ENDC				;

                                     089D 17160 10$:					;

            10            50     C3  089D 17180 	SUBL3	R0,#16,R0		; INVERT

                          50         08A0       

            56            6540   DE  08A1 17200 	MOVAL	(R5)[R0],R6		; ACCUMULATE

                                 05  08A5 17220 	RSB				; RETURN

                                     08A6 17240 

            6A            09     E1  08A6 17260 XSET:	BBC	#V_F2,(R10),ERR3	; ERROR IF NOT TWO FIELDS

                          1A         08A9       

            04            00     EF  08AA 17280 	EXTZV	#0,#4,F2-B(R11),R1	; GET REGISTER NUMBER

            51         E8 AB         08AD       

            51       FA93 CF41   DE  08B0 17300 	MOVAL	XREGV[R1],R1		; AND COMPUTE REGISTER ADDRESS

                          B1     11  08B6 17320 	BRB	VALUE			; PROCESS VALUE

                                     08B8 17340 XREG:					; X-REGISTER VALUE

            55       FA8C CF     DE  08B8 17360 	MOVAL	XREGV,R5		; SET ADDRESS OF REGISTER VECTOR

                          C0     10  08BD 17380 	BSBB	REGCOM			; ADDRESS TO R6

            56            66     D0  08BF 17400 	MOVL	(R6),R6			; GET VALUE

                          B0     11  08C2 17420 	BRB	VALI			; AND NOTE INPUT IN FIELD

                                     08C4 17440 	.ALIGN	LONG			; LONGWORD ALIGN EXCEPTION ROUTINES

                                     08C4 17460 XDELACV:				; ACCESS VIOLATION HANDLER

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  29

                SEMI-I, PC VALUE                                                                                                 (1)



                                     08C4 17480 MCHK:					; MACHINE CHECK

                                     08C4 17500 	.IF	NDF,SW_PROCESS		;

                                     08C4 17520 	TSTL	AP			; CHECK FOR SIMULATOR

                                     08C4 17540 	BNEQ	10$			; YES, SKIP RESET

                                     08C4 17560 	MTPR	#0,#PR$_SBIFS		; FOR STAR, RESET SBI FAULT STATUS

                                     08C4 17580 	.ENDC				;

                                     08C4 17600 10$:					;

                          FB4D   31  08C4 17620 ERR3:	BRW	ERROR			; AND DECLARE ERROR

                                     08C7 17640 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  30

                REGISTER SAVE AND RESTORE                                                                                        (1)



                                     08C7 17680 	.SBTTL	REGISTER SAVE AND RESTORE

                                     08C7 17700 

                                     08C7 17720 ;

                                     08C7 17740 ;	SAVE - SAVE TARGET REGISTERS, PC, PSL

                                     08C7 17760 ;

                                     08C7 17780 SAVE:					;

                                     08C7 17800 	.IF	NDF,SW_PROCESS		;

                                     08C7 17820 	SETIPL	#31			; DISABLE

                                     08C7 17840 	JSB	INI$WRITABLE		; MAKE THE SYSTEM WRITABLE

                                     08C7 17860 	MOVQ	R0,SAVREG		; SAVE R0,R1

                                     08C7 17880 	MOVAB	SAVR2,R1		; SETUP BASE FOR REMAINING REGS

                                     08C7 17900 	.IFF				; FALSE IF PROCESS VERSION

                                     08C7 17920 	$SETAST_S	#0		; DISABLE ASTS

                          00     DD  08C7       		PUSHL	#0

   00000000'9F            01     FB  08C9       		CALLS	#1,@#SYS$SETAST

                          70     9F  08D0 17940 	PUSHAB	-(R0)			; SAVE ENABLE VALUE-1

                          51     DC  08D2 17960 	MOVPSL	R1			; GET CURRENT PSL

            02            18     EF  08D4 17980 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,R1,R1	; ISOLATE CURRENT MODE

            51            51         08D7       

            51       00B8 8F     A4  08D9 18000 	MULW	#CONTEXTSZ,R1		; COMPUTE OFFSET TO PROPER CONTEXT AREA

            51       F789 CF41   9E  08DE 18020 	MOVAB	SAVREG[R1],R1		; FORM ADDRESS OF REGISTER SAVE

            50         08 AC     D0  08E4 18040 	MOVL	8(AP),R0		; GET POINTER TO MECHANISM

            81         0C A0     7D  08E8 18060 	MOVQ	12(R0),(R1)+		; SAVE R0,R1

                                     08EC 18080 	.ENDC				;

            81            52     7D  08EC 18100 	MOVQ	R2,(R1)+		; SAVE R2,R3

            81            54     7D  08EF 18120 	MOVQ	R4,(R1)+		; SAVE R4,R5

            81            56     7D  08F2 18140 	MOVQ	R6,(R1)+		; SAVE R6,R7

            81            58     7D  08F5 18160 	MOVQ	R8,(R1)+		; SAVE R8,R9

            81            5A     7D  08F8 18180 	MOVQ	R10,(R1)+		; SAVE R10,R11

                                     08FB 18200 	.IF	NDF,SW_PROCESS		;

                                     08FB 18220 	MOVQ	AP,(R1)+		; SAVE AP,FP

                                     08FB 18240 	MOVAB	12(SP),(R1)+		; ASSUME KERNEL STACK

                                     08FB 18260 	MOVQ	4(SP),(R1)+		; SAVE PC,PSL

                                     08FB 18280 	.IFF				;

            81         08 AD     7D  08FB 18300 	MOVQ	8(FP),(R1)+		; SAVE AP,FP

         04 BC            01     C3  08FF 18320 	SUBL3	#1,@4(AP),R0		; GET NUMBER OF ARGS IN SIGNAL

                          50         0903       

            50         04 BC40   DE  0904 18340 	MOVAL	@4(AP)[R0],R0		; POINT TO PC,PSL

            81         08 A0     DE  0909 18360 	MOVAL	8(R0),(R1)+		; COMPUTE SP

            81            60     7D  090D 18380 	MOVQ	(R0),(R1)+		; SAVE PC,PSL

                                     0910 18400 	.ENDC				;

                                     0910 18420 	.IF	NDF,SW_PROCESS		;

                                     0910 18440 	.IF	NE,CA$_SIMULATOR	; INCLUDE FOR SIMULATOR ONLY

                                     0910 18460 	BBS	S^#EXE$V_SIMULATOR,EXE$GL_FLAGS,10$	; BR IF SIMULATOR

                                     0910 18480 	.ENDC				;

                                     0910 18500 	MFPR	#PR$_TXCS,(R1)+		; SAVE CONSOLE TRANSMIT STATUS

                                     0910 18520 	MFPR	#PR$_RXCS,(R1)+		; SAVE CONSOLE RECVR STATUS

                                     0910 18540 	CLRL	AP			; ZAP DEVICE ADDRESS BASE

                                     0910 18560 	.ENDC				;

                                     0910 18580 	.IF	NDF,SW_PROCESS		;

                                     0910 18600 	MTPR	#0,#PR$_TXCS		; CLEAR INTERRUPT ENABLE

                                     0910 18620 	MTPR	#0,#PR$_RXCS		; FOR BOTH TRANSMIT AND RECEIVE

                                     0910 18640 	.IF	NE,CA$_SIMULATOR	; INCLUDE FOR SIMULATOR

                                     0910 18660 	BRB	20$			; MERGE WITH COMMON CODE

                                     0910 18680 10$:	MOVL	#<SYS$IOBASE+^X170>,AP	; SET CSR ADDRESS FOR TERMINAL

                                     0910 18700 	MOVW	OUTCR(AP),(R1)+	; SAVE OUTPUT CSR

                                     0910 18720 	MOVW	RDCR(AP),(R1)+		; AND INPUT CSR

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  31

                REGISTER SAVE AND RESTORE                                                                                        (1)



                                     0910 18740 	MOVZBL	#^X40,R0		; INTERRUPT ENABLE BIT

                                     0910 18760 	BICW	R0,OUTCR(AP)		; CLEAR INTERRUPT ENABLES

                                     0910 18780 	BICW	R0,RDCR(AP)		; BITS IN BOTH CSR

                                     0910 18800 	.ENDC				;

                                     0910 18820 	.ENDC				;

                                     0910 18840 	.IF	NDF,SW_PROCESS		;

                                     0910 18860 20$:	MOVAB	B,R11			; AND DATA BASE ADDRESS

                                     0910 18880 	.IFF				; FALSE FOR PROCESS VERSION

            5B       FFA4'C1     9E  0910 18900 	MOVAB	W^<B-<SAVPSL+4>>(R1),R11	; SET BASE OF CONTEXT AREA

         60 AB            8E     D0  0915 18920 	MOVL	(SP)+,ASTEN-B(R11)	; SAVE AST ENABLE

                                     0919 18940 	.ENDC				;

            5A         E0 AB     9E  0919 18960 	MOVAB	STATUS-B(R11),R10	; SET STATUS BASE

            59         B0 AB     9E  091D 18980 	MOVAB	INBUF-B(R11),R9		; POINT TO INPUT BUFFER

                          69     94  0921 19000 	CLRB	(R9)			; MAKE BUFFER EMPTY

                                     0923 19020 	.IF	NDF,SW_PROCESS		;

                                     0923 19040 	MOVAL	EXE$MCHKVEC-4,R0	; SET BASE OF SCB

                                     0923 19060 	MOVL	4(R0),MCHKSAV		; SAVE ORIGINAL MCHK VECTOR

                                     0923 19080 	MOVAB	MCHK,4(R0)		; SET TO XDELTA VECTOR

                                     0923 19100 	MOVAB	XDELACV,^X20(R0)	; SET ACCESS VIOLATION VECTOR

                                     0923 19120 	MOVAB	XDELACV,^X24(R0)	; SET PG FAULT VECTOR

                                     0923 19140 	MOVAB	XDELACV,^X18(R0)	; SET RESERVED OPERAND HANDLER

                                     0923 19160 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,8(SP),R0	; GET MODE

                                     0923 19180 	BEQL	30$			; CORRECT ALREADY IF KERNEL

                                     0923 19200 	ADDL	#PR$_KSP,R0		; COMPUTE PROCESSOR REGISTER

                                     0923 19220 	MFPR	R0,SAVSP-B(R11)		; AND SAVE CORRECT SP

                                     0923 19240 	.ENDC				;

                          FE07   31  0923 19260 30$:	BRW	RESET			; RESET SCANNER

                                     0926 19280 

                                     0926 19300 ;

                                     0926 19320 ;	RESTORE - RESTORE TARGET REGISTERS

                                     0926 19340 ;

                                     0926 19360 RESTORE:				; RESTORE EVERYTHING

                                     0926 19380 	.IF	NDF,SW_PROCESS		;

                                     0926 19400 	MOVQ	SAVPC-B(R11),4(SP)	; SET PC,PSL

                                     0926 19420 	.IFF				; FALSE IF PROCESS

         04 BC            01     C3  0926 19440 	SUBL3	#1,@4(AP),R0		; GET SIGNAL ARG COUNT

                          50         092A       

            50         04 BC40   DE  092B 19460 	MOVAL	@4(AP)[R0],R0		; COMPUTE ADDRESS OF PC,PSL

            60         54 AB     7D  0930 19480 	MOVQ	SAVPC-B(R11),(R0)	; STORE UPDATED PC,PSL

                                     0934 19500 	.ENDC				;

                                     0934 19520 RESTORR:				; RESTORE REGISTERS ONLY

                                     0934 19540 	.IF	NDF,SW_PROCESS		;

                                     0934 19560 	MOVAB	EXE$MCHKVEC-4,R0	; SET BASE OF SCB

                                     0934 19580 	MOVAB	EXE$ACVIOLAT,^X20(R0)	; RESTORE ACCESS VECTOR

                                     0934 19600 	MOVAB	MMG$PAGEFAULT,^X24(R0)	; AND PAGE FAULT VECTOR

                                     0934 19620 	MOVL	MCHKSAV,4(R0)		; RESTORE MACHINE CHECK VECTOR

                                     0934 19640 	MOVAB	EXE$ROPRAND,^X18(R0)	; RESTORE RESERVED OPERAND VECTOR

                                     0934 19660 	TSTW	AP			; CHECK FOR CONSOLE

                                     0934 19680 	BNEQ	10$			; NO, OTHER DEVICE

                                     0934 19700 	MTPR	SAVOCR-B(R11),#PR$_TXCS	; RESTORE INITIAL TX STATUS

                                     0934 19720 	MTPR	SAVRXCS-B(R11),#PR$_RXCS; AND INITIAL RECEIVER STATE

                                     0934 19740 	BRB	20$			; MERGE WITH COMMON CODE

                                     0934 19760 10$:	MOVW	SAVOCR-B(R11),OUTCR(AP)	; RESTORE OUTPUT CSR

                                     0934 19780 	MOVW	SAVRCR-B(R11),RDCR(AP)	; AND INPUT CSR CONTENT

                                     0934 19800 	.IFF				;

                       60 AB     DD  0934 19820 	PUSHL	ASTEN-B(R11)		; SAVE AST ENABLE

                                     0937 19840 	.ENDC				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  32

                REGISTER SAVE AND RESTORE                                                                                        (1)



            51         20 AB     9E  0937 19860 20$:	MOVAB	SAVR2-B(R11),R1		; SET BASE FOR RESTORE

            52            81     7D  093B 19880 	MOVQ	(R1)+,R2		; RESTORE R2,R3

            54            81     7D  093E 19900 	MOVQ	(R1)+,R4		; RESTORE R4,R5

            56            81     7D  0941 19920 	MOVQ	(R1)+,R6		; RESTORE R6,R7

            58            81     7D  0944 19940 	MOVQ	(R1)+,R8		; RESTORE R8,R9

            5A            81     7D  0947 19960 	MOVQ	(R1)+,R10		; RESTORE R10,R11

                                     094A 19980 	.IF	NDF,SW_PROCESS		;

                                     094A 20000 	MOVQ	(R1)+,AP		; RESTORE AP,FP

                                     094A 20020 	MOVQ	SAVREG,R0		; RESTORE R0,R1

                                     094A 20040 	.IFF				; FALSE IF PROCESS VERSION

         08 AD            81     7D  094A 20060 	MOVQ	(R1)+,8(FP)		; SET NEW VALUES FOR AP,FP

            50         08 AC     D0  094E 20080 	MOVL	8(AP),R0		; GET MECHANISM POINTER

         0C A0         C8 A1     7D  0952 20100 	MOVQ	<SAVREG-SAVSP>(R1),12(R0)	; STORE UPDATED R0,R1

                          51     DC  0957 20120 	MOVPSL	R1			; GET CURRENT PSL

            02            18     EF  0959 20140 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,R1,R1	; GET CURRENT MODE

            51            51         095C       

       FA3B CF            51     E5  095E 20160 	BBCC	R1,DBGACTIVE,30$	; CLEAR ACTIVE BIT FOR MODE

                          00         0963       

                                     0964 20180 30$:					;

                          8E     D5  0964 20200 	TSTL	(SP)+			; CHECK FOR AST ENABLE

                          09     13  0966 20220 	BEQL	35$			; NO

                                     0968 20240 	$SETAST_S	#1		; RE- ENABLE AST RECOGNITION

                          01     DD  0968       		PUSHL	#1

   00000000'9F            01     FB  096A       		CALLS	#1,@#SYS$SETAST

                                     0971 20260 35$:					;

                                     0971 20280 	.ENDC				;

                                     0971 20300 	.IF	NDF,SW_PROCESS		;

                                     0971 20320 	JSB	INI$RDONLY		; REPROTECT THE SYSTEM CODE

                                     0971 20340 	.ENDC				;

                                 05  0971 20360 	RSB				; AND RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  33

                BPT TRAP HANDLER                                                                                                 (1)



                                     0972 20400 	.SBTTL	BPT TRAP HANDLER

                                     0972 20420 ;

                                     0972 20440 ;	HANDLE BREAKPOINT TRAPS

                                     0972 20460 ;

         00 20 54 41 20 4B 52 42 20  0972 20480 BMSG:	.ASCIZ	/ BRK AT /		; BREAK POINT MESSAGE

                                     097B 20500 	.ALIGN	LONG			; LONGWORD ALIGNMENT

                                     097C 20520 	.IF	NDF,SW_PROCESS		; EXEC VERSION

                                     097C 20540 XDELBPT::				; XDELTA BPT ENTRY

                                     097C 20560 	.IFF				;

                                     097C 20580 XDELBPT:				; DELTA BPT ENTRY

                                     097C 20600 	.ENDC				;

                          FF48   30  097C 20620 	BSBW	SAVE			; SAVE REGS AND DISABLE

                          00F8   30  097F 20640 	BSBW	GETBPTX			; GET INDEX OF BPT

                          53     D5  0982 20660 	TSTL	R3			; CHECK FOR MATCH

                          05     12  0984 20680 	BNEQ	10$			; YES, FOUND IT

                          AC     10  0986 20700 	BSBB	RESTORR			; RESTORE REGISTERS ONLY

                                     0988 20720 	.IF	NDF,SW_PROCESS		;

                                     0988 20740 	MOVZBL	6(SP),-(SP)		; GET IPL

                                     0988 20760 	ENBINT				; ENABLE

                                     0988 20780 	JMP	EXE$BREAK		; AND HANDLE NORMALLY

                                     0988 20800 	.IFF				; FALSE IF PROCESS VERSION

                                     0988 20820 ;

                                     0988 20840 ;	***** UNEXPECTED BREAKPOINT *****

                          50     D4  0988 20860 	CLRL	R0			; RETURN FALSE

                                 04  098A 20880 	RET				;

                                     098B 20900 	.ENDC				;

            6A            18     88  098B 20920 10$:	BISB	#<<1@V_TBIT>!<1@V_ATBRK>>,(R10)	; SET STATUS

                                     098E 20940 30$:					;

                          008B   30  098E 20960 	BSBW	UNBRK			; RESTORE OPCODES

         58 AB            04     E0  0991 20980 	BBS	#PSL$V_TBIT,SAVPSL-B(R11),PROCEED	; PROCEED IF BPT AND TBIT

                          38         0995       

            55            53     D0  0996 21000 	MOVL	R3,R5			; SAVE BPT NUMBER

                          FCAD   30  0999 21020 	BSBW	CRLF			; OUTPUT CR/LF PAIR

                          FC4A   30  099C 21040 	BSBW	OUTDIGIT		; OUTPUT BPT NUMBER

            54         D0 AF     9E  099F 21060 	MOVAB	BMSG,R4			; MSG ADDRESS

                          FC64   30  09A3 21080 	BSBW	OUTZSTRING		; OUTPUT ASCIIZ

            53         54 AB     D0  09A6 21100 	MOVL	SAVPC-B(R11),R3		; OUTPUT PC

                          FC40   30  09AA 21120 	BSBW	OUTLONG			; OUTPUT HEX LONGWORD

                          FC94   30  09AD 21140 	BSBW	OUTSPACE		; SEND SPACE

            51       F94F CF45   D0  09B0 21160 	MOVL	BRKDSP[R5],R1		; GET ADDRESS TO DISPLAY

                          06     13  09B6 21180 	BEQL	40$			; NONE

            6B            51     D0  09B8 21200 	MOVL	R1,CURDOT-B(R11)	; SET AS CURRENT DOT

                          FBC5   30  09BB 21220 	BSBW	LOCPROMPT		; AND DISPLAY

            51       F961 CF45   D0  09BE 21240 40$:	MOVL	BRKCOM[R5],R1		; GET COMMAND STRING ADDRESS

                          03     13  09C4 21260 	BEQL	GETCMD			; NONE GET COMMAND

            59            51     D0  09C6 21280 	MOVL	R1,R9			; SET TO SCAN STORED COMMAND

                                     09C9 21300 GETCMD:					; GET COMMANDS

                                     09C9 21320 

       FA3D CF            6C     FA  09C9 21340 	CALLG	(AP),DCOM		; PERFORM DEBUG COMMANDS

                                     09CE 21360 PROCEED:				; PROCEED

                          74     10  09CE 21380 	BSBB	SETBRK			; SET BREAKPOINTS

            6A            03     E5  09D0 21400 	BBCC	#V_TBIT,(R10),50$	; TEST AND CLR TRACE FLAG

                          1E         09D3       

         58 AB            04     E2  09D4 21420 30$:	BBSS	#PSL$V_TBIT,SAVPSL-B(R11),40$	; SET TBIT

                          00         09D8       

                                     09D9 21440 40$:					;

                                     09D9 21460 	.IF	DF,SW_PROCESS		; FOR PROCESS VERSION

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  34

                BPT TRAP HANDLER                                                                                                 (1)



         54 BB            02     91  09D9 21480 	CMPB	#2,@SAVPC-B(R11)	; CHECK FOR REI OPCODE

                          0F     12  09DD 21500 	BNEQ	45$			; NO, NOTHING SPECIAL

            02            18     EF  09DF 21520 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,SAVPSL-B(R11),R0	; GET NEW MODE

            50         58 AB         09E2       

            50       00B8 8F     A4  09E5 21540 	MULW	#CONTEXTSZ,R0		; SCALE BY PER MODE CONTEXT AREA SIZE

            5A         E0 A0     9E  09EA 21560 	MOVAB	STATUS-B(R0),R10	; POINT TO NEW FLAGS

                                     09EE 21580 	.ENDC				;

            6A            05     E2  09EE 21600 45$:	BBSS	#V_TBITOK,(R10),50$	; SET TBIT EXPECTED

                          00         09F1       

                          FF31   30  09F2 21620 50$:	BSBW	RESTORE			; RESTORE EVERYTHING

                                     09F5 21640 	.IF	NDF,SW_PROCESS		;

                                     09F5 21660 	REI				; AND RETURN

                                     09F5 21680 	.IFF				; FALSE IF PROCESS VERSION

            50            01     D0  09F5 21700 	MOVL	#1,R0			; RETURN TRUE

                                 04  09F8 21720 	RET				;

                                     09F9 21740 	.ENDC				;

                                     09F9 21760 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  35

                TBIT EXCEPTION HANDLER                                                                                           (1)



                                     09F9 21800 	.SBTTL	TBIT EXCEPTION HANDLER

                                     09F9 21820 ;

                                     09F9 21840 ;	HANDLER FOR TBIT EXCEPTION

                                     09F9 21860 ;

                                     09F9 21880 	.ALIGN	LONG			; LONGWORD ALIGNED

                                     09FC 21900 	.IF	NDF,SW_PROCESS		;

                                     09FC 21920 XDELTBIT::				; XDELTA TBIT HANDLER

                                     09FC 21940 	.IFF				;

                                     09FC 21960 XDELTBIT:				;

                                     09FC 21980 	.ENDC				;

                          FEC8   30  09FC 22000 	BSBW	SAVE			; SAVE AND DISABLE

            6A            05     E4  09FF 22020 	BBSC	#V_TBITOK,(R10),XDELDBG	; BR IF TBIT EXPECTED

                          06         0A02       

                          FF2E   30  0A03 22040 	BSBW	RESTORR			; RESTORE REGISTERS

                                     0A06 22060 	.IF	NDF,SW_PROCESS		;

                                     0A06 22080 	MOVZBL	6(SP),-(SP)		; GET IPL FOR ENABLE

                                     0A06 22100 	ENBINT				; ENABLE

                                     0A06 22120 	JMP	EXE$TBIT		; OTHERWISE LET EXEC HANDLE

                                     0A06 22140 	.IFF				; FALSE IF PROCESS VERSION

                          50     D4  0A06 22160 	CLRL	R0			; RESIGNAL

                                 04  0A08 22180 	RET				; UNEXPECTED TBIT EXCEPTION

                                     0A09 22200 	.ENDC				;

                                     0A09 22220 XDELDBG:				; COMMON WITH DEBUG EXCEPTION

         58 AB            10     CA  0A09 22240 	BICL	#<1@PSL$V_TBIT>,SAVPSL-B(R11)	; CLEAR TBIT IN PSL

                          0D     10  0A0D 22260 	BSBB	UNBRK			; REPLACE OPCODES

            6A            04     E4  0A0F 22280 	BBSC	#V_ATBRK,(R10),PROCEED	; CHECK FOR PROCEED

                          BB         0A12       

                                     0A13 22300 ;

                                     0A13 22320 ;	OUTPUT STEP MESSAGE

                                     0A13 22340 ;

            6B         54 AB     D0  0A13 22360 	MOVL	SAVPC-B(R11),CURDOT-B(R11)	; SET ADDRESS

                          FB69   30  0A17 22380 	BSBW	LOCPROMPT		; PROMPT WITH ADDRESS/CONTENT

                          AD     11  0A1A 22400 	BRB	GETCMD			; GO GET COMMANDS

                                     0A1C 22420 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  36

                UNBRK - RESTORE OPCODES FOR BREAKPOINTS                                                                          (1)



                                     0A1C 22460 	.SBTTL	UNBRK - RESTORE OPCODES FOR BREAKPOINTS

                                     0A1C 22480 ;

                                     0A1C 22500 ;	UNBRK

                                     0A1C 22520 ;

                                     0A1C 22540 UNBRK:					;

            51            08     D0  0A1C 22560 	MOVL	#NBRK,R1		; INIT LOOP

            50       F8B8 CF41   D0  0A1F 22580 10$:	MOVL	BRKADR[R1],R0		; GET BREAKPOINT ADDRESS

                          19     13  0A25 22600 	BEQL	20$			; SKIP IF NOT ENABLED

                                     0A27 22620 	.IF	DF,SW_PROCESS		;

                          3F     BB  0A27 22640 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	; SAVE REGS FOR PROTECTION CHANGE

            54            50     D0  0A29 22660 	MOVL	R0,R4			; FORM INADR RANGE FOR SET PROTECTION

            55            50     D0  0A2C 22680 	MOVL	R0,R5			;

                          0322   30  0A2F 22700 	BSBW	SETWRT			; SET PAGE WRITABLE

            50            6E     7D  0A32 22720 	MOVQ	(SP),R0			; RESTORE R0,R1

                                     0A35 22740 	.ENDC				;

            60       F8C5 CF41   90  0A35 22760 	MOVB	BRKOP[R1],(R0)		; RESTORE OPCODE

                                     0A3B 22780 	.IF	DF,SW_PROCESS		;

                          034C   30  0A3B 22800 	BSBW	REPROT			; RESTORE PROTECTION

                          3F     BA  0A3E 22820 	POPR	#^M<R0,R1,R2,R3,R4,R5>	; RESTORE REGISTERS

                                     0A40 22840 	.ENDC				;

            DC            51     F5  0A40 22860 20$:	SOBGTR	R1,10$			; DO THEM ALL

                                 05  0A43 22880 	RSB				; AND RETURN

                                     0A44 22900 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  37

                SETBRK - SET BREAK POINT INSTRUCTIONS                                                                            (1)



                                     0A44 22940 	.SBTTL	SETBRK - SET BREAK POINT INSTRUCTIONS

                                     0A44 22960 ;

                                     0A44 22980 ;	SETBRK

                                     0A44 23000 ;

            51            08     D0  0A44 23020 SETBRK:	MOVL	#NBRK,R1		; INIT LOOP

            50       F890 CF41   D0  0A47 23040 10$:	MOVL	BRKADR[R1],R0		; GET ADDRESS

                          27     13  0A4D 23060 	BEQL	20$			; SKIP IF NOT ENABLED

       F8AA CF41          60     90  0A4F 23080 	MOVB	(R0),BRKOP[R1]		; SAVE OPCODE

            6A            18     93  0A55 23100 	BITB	#<<1@V_TBIT>!<1@V_ATBRK>>,(R10)	; CHECK FOR TRACE

                          06     13  0A58 23120 	BEQL	15$			; NO TRACE, SET ANYWAY

         54 AB            50     D1  0A5A 23140 	CMPL	R0,SAVPC-B(R11)		; CHECK FOR AT BPT

                          16     13  0A5E 23160 	BEQL	20$			; YES, DONT SET IT

                                     0A60 23180 15$:					;

                                     0A60 23200 	.IF	DF,SW_PROCESS		;

                          3F     BB  0A60 23220 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	; SAVE REGISTERS FOR PROTECTION CHANGE

            54            50     D0  0A62 23240 	MOVL	R0,R4			; SET START ADDRESS OF RANGE

            55            50     D0  0A65 23260 	MOVL	R0,R5			; AND END ADDRESS

                          02E9   30  0A68 23280 	BSBW	SETWRT			;SET PAGE WRITABLE

            50            6E     D0  0A6B 23300 	MOVL	(SP),R0			; RESTORE BPT ADDRESS

                                     0A6E 23320 	.ENDC				;

            60            03     90  0A6E 23340 	MOVB	#3,(R0)			; SET BREAKPOINT OPCODE

                                     0A71 23360 	.IF	DF,SW_PROCESS		;

                          0316   30  0A71 23380 	BSBW	REPROT			; RESTORE ORIGINAL PROTECTION VALUE

                          3F     BA  0A74 23400 	POPR	#^M<R0,R1,R2,R3,R4,R5>	; AND REGISTERS

                                     0A76 23420 	.ENDC				;

            CE            51     F5  0A76 23440 20$:	SOBGTR	R1,10$			; DO THEM ALL

                                 05  0A79 23460 	RSB				; AND RETURN

                                     0A7A 23480 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  38

                GETBPTX - GET INDEX FOR BREAKPOINT                                                                               (1)



                                     0A7A 23520 	.SBTTL	GETBPTX - GET INDEX FOR BREAKPOINT

                                     0A7A 23540 ;

                                     0A7A 23560 ;	GETBPTX

                                     0A7A 23580 ;

                                     0A7A 23600 GETBPTX:				;

            53            08     D0  0A7A 23620 	MOVL	#NBRK,R3		; INIT LOOP

       F858 CF43       54 AB     D1  0A7D 23640 10$:	CMPL	SAVPC-B(R11),BRKADR[R3]	; IS THIS A BPT?

                          03     13  0A84 23660 	BEQL	20$			; YES

            F4            53     F5  0A86 23680 	SOBGTR	R3,10$			; NO, CONTINUE

                                 05  0A89 23700 20$:	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  39

                QUOTE - INPUT CHARACTER STRING                                                                                   (1)



                                     0A8A 23740 	.SBTTL	QUOTE - INPUT CHARACTER STRING

                                     0A8A 23760 ;

                                     0A8A 23780 ;	QUOTE - START CHARACTER STRING INPUT

                                     0A8A 23800 ;

                                     0A8A 23820 QUOTE:					;

            55            6B     D0  0A8A 23840 	MOVL	CURDOT-B(R11),R5	; POINT TO STRING BUFFER

                          FBC3   30  0A8D 23860 5$:	BSBW	GETCHAR			; GET CHARACTER

            58            27     91  0A90 23880 	CMPB	#QUOT,R8		; CHECK FOR QUOTE

                          05     13  0A93 23900 	BEQL	10$			; YES, END OF STRING

            85            58     90  0A95 23920 	MOVB	R8,(R5)+		; INSERT IN BUFFER

                          F3     11  0A98 23940 	BRB	5$			; AND CONTINUE

            6B            55     D0  0A9A 23960 10$:	MOVL	R5,CURDOT-B(R11)	; SAVE NEW DOT

                                 05  0A9D 23980 	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  40

                DEPOSIT                                                                                                          (1)



                                     0A9E 24020 	.SBTTL	DEPOSIT

                                     0A9E 24040 ;

                                     0A9E 24060 ;	DEPOSIT DATA

                                     0A9E 24080 ;

                                     0A9E 24100 DEPOSIT:				;

            6A            1F     E0  0A9E 24120 	BBS	#V_PREG,(R10),40$	; BR IF PROCESSOR REGISTER

                          3A         0AA1       

                                     0AA2 24140 	.IF	DF,SW_PROCESS		;

            54            6B     D0  0AA2 24160 	MOVL	CURDOT-B(R11),R4	; GET CURRENT DOT

                                     0AA5 24180 	.ENDC				;

                                     0AA5 24200 	CASE	CURTYPE-B(R11),TYPE=B,<-	; SWITCH ON TYPE

                                     0AA5 24220 		10$,-			; BYTE

                                     0AA5 24240 		20$,-			; WORD

                                     0AA5 24260 		30$,-			; LONG

                                     0AA5 24280 		>			;

            00         FE AB     8F  0AA5       	CASEB	CURTYPE-B(R11),#0,S^#<<30009$-30008$>/2>-1

                          02'        0AA9       

                                     0AAA       30008$:

                               0006' 0AAA       	.WORD	10$-30008$

                               0014' 0AAC       	.WORD	20$-30008$

                               0023' 0AAE       	.WORD	30$-30008$

                                     0AB0       30009$:

                                     0AB0 24300 	.IF	NDF,SW_PROCESS		;

                                     0AB0 24320 10$:	MOVB	F1-B(R11),@CURDOT-B(R11); STORE BYTE

                                     0AB0 24340 	RSB				; RETURN

                                     0AB0 24360 20$:	MOVW	F1-B(R11),@CURDOT-B(R11); STORE WORD

                                     0AB0 24380 	RSB				; RETURN

                                     0AB0 24400 30$:	MOVL	F1-B(R11),@CURDOT-B(R11); STORE LONG

                                     0AB0 24420 	RSB				; RETURN

                                     0AB0 24440 40$:	MTPR	F1-B(R11),CURDOT-B(R11)	; SET VALUE IN PROCESSOR REGISTER

                                     0AB0 24460 	RSB

                                     0AB0 24480 	.IFF				; FALSE IF PROCESS VERSION

                                     0AB0 24500 10$:					; BYTE DEPOSIT

            55            54     D0  0AB0 24520 	MOVL	R4,R5			; START AND END ADDRESSES EQUAL

                          029E   30  0AB3 24540 	BSBW	SETWRT			; SET WRITABLE, OLD PROT TO R2

            64         E4 AB     90  0AB6 24560 	MOVB	F1-B(R11),(R4)		; STORE BYTE

                          02CD   30  0ABA 24580 	BSBW	REPROT			; RESTORE PROTECTION

                                 05  0ABD 24600 	RSB				;

                                     0ABE 24620 

            54            01     C1  0ABE 24640 20$:	ADDL3	#1,R4,R5		; WORD DEPOSIT, FORM END ADDRESS

                          55         0AC1       

                          028F   30  0AC2 24660 	BSBW	SETWRT			; SET WRITABLE

            64         E4 AB     B0  0AC5 24680 	MOVW	F1-B(R11),(R4)		; STORE WORD

                          02BE   30  0AC9 24700 	BSBW	REPROT			; RESTORE PROTECTION

                                 05  0ACC 24720 	RSB				;

                                     0ACD 24740 

            54            03     C1  0ACD 24760 30$:	ADDL3	#3,R4,R5		; LONGWORD DEPOSIT, FORM END ADDRESS

                          55         0AD0       

                          0280   30  0AD1 24780 	BSBW	SETWRT			; SET WRITABLE

            64         E4 AB     D0  0AD4 24800 	MOVL	F1-B(R11),(R4)		; STORE LONG WORD

                          02AF   30  0AD8 24820 	BSBW	REPROT			; RESTORE PROTECTION

                                 05  0ADB 24840 	RSB				;

                                     0ADC 24860 

                                     0ADC 24880 40$:					; PROCESSOR REGISTER

                                     0ADC 24900 	$CMKRNL_S	B^DEPPREG,(AP)	; DEPOSIT IN PROCESSOR REGISTER

                          6C     DF  0ADC       		PUSHAL	(AP)

                       E9'AF     DF  0ADE       		PUSHAL	B^DEPPREG

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  41

                DEPOSIT                                                                                                          (1)



   00000000'9F            02     FB  0AE1       		CALLS	#2,@#SYS$CMKRNL

                                 05  0AE8 24920 	RSB				;

                                     0AE9 24940 

                               0000  0AE9 24960 DEPPREG:.WORD	0			; DEPOSIT INTO PROCESSOR REGISTER

            6D       0AF8'CF     9E  0AEB 24980 	MOVAB	W^PREXC,(FP)		; SET EXCEPTION HANDLER

            6B         E4 AB     DA  0AF0 25000 	MTPR	F1-B(R11),CURDOT-B(R11)	; PLACE FIELD VALUE IN REG

            50            01     D0  0AF4 25020 	MOVL	#1,R0			; RETURN SUCESS

                                 04  0AF7 25040 	RET				;

                                     0AF8 25060 

                               0000  0AF8 25080 PREXC:	.WORD	0			; PROCESSOR REGISTER EXCEPTION HANDLER

         08 AC            04     C1  0AFA 25100 	ADDL3	#4,8(AP),R1		; POINT TO EXCEPTION FP

                          51         0AFE       

         0C AD            61     D0  0AFF 25120 	MOVL	(R1),12(FP)		; SET AS RETURN FP

         10 AD         08'AF     9E  0B03 25140 	MOVAB	B^10$,16(FP)		; SET RETURN ADDRESS

            50            01     3C  0B08 25160 10$:	MOVZWL	#1,R0		;SET NORMAL STATUS

                                 04  0B0B 25180 	RET				; AND RETURN

                                     0B0C 25200 

                                     0B0C 25220 	.ENDC

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  42

                EXECUTE - PERFORM COMMAND STRING                                                                                 (1)



                                     0B0C 25260 	.SBTTL	EXECUTE - PERFORM COMMAND STRING

                                     0B0C 25280 ;

                                     0B0C 25300 ;	EXECUTE

                                     0B0C 25320 ;

                                     0B0C 25340 EXECUTE:				;

            6A            08     E1  0B0C 25360 	BBC	#V_F1,(R10),10$		; EXIT IF NO ADDRESS

                          09         0B0F       

            59         E4 AB     D0  0B10 25380 	MOVL	F1-B(R11),R9		; SET CHAR STRING

                          03     12  0B14 25400 	BNEQ	10$			; NOT NULL

                          F902   31  0B16 25420 	BRW	SUPERST			; SUPER RESET

                                 05  0B19 25440 10$:	RSB				; RETURN

                                     0B1A 25460 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  43

                P - PROCESSOR REGISTER PREFIX                                                                                    (1)



                                     0B1A 25500 	.SBTTL	P - PROCESSOR REGISTER PREFIX

                                     0B1A 25520 ;

                                     0B1A 25540 ;	SET PROCESSOR REGISTER MODE

                                     0B1A 25560 ;

                                     0B1A 25580 PREG:					; PROCESSOR REGISTER MODE

            6A            0F     E2  0B1A 25600 	BBSS	#V_PRMODE,(R10),10$	; SET PROCESSOR REG FLAG

                          00         0B1D       

                                 05  0B1E 25620 10$:	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  44

                PROCESS DEBUGGER INITIALIZATION                                                                                  (1)



                                     0B1F 25660 	.SBTTL	PROCESS DEBUGGER INITIALIZATION

                                     0B1F 25680 

                                     0B1F 25700 	.IF	DF,SW_PROCESS		;

                                     0B1F 25720 TEST:					;

                                     0B1F 25740 XDT$START::				; GLOBAL START ADDRESS FOR CLI DEBUG

                               0000  0B1F 25760 	.WORD	0			; ENTRY MASK

            6D       0C74'CF     9E  0B21 25780 	MOVAB	W^CATCHALL,(FP)		; SET CATCHALL EXCEPTION HANDLER

                                     0B26 25800 	$DCLEXH_S	EXITBLK		; DECLARE USER MODE EXIT HANDLER

                     F878 CF     DF  0B26       		PUSHAL	EXITBLK

   00000000'9F            01     FB  0B2A       		CALLS	#1,@#SYS$DCLEXH

                                     0B31 25820 	$CMKRNL_S	B^SETEXC,(AP)	; SET EXCEPTION VECTORS

                          6C     DF  0B31       		PUSHAL	(AP)

                       85'AF     DF  0B33       		PUSHAL	B^SETEXC

   00000000'9F            02     FB  0B36       		CALLS	#2,@#SYS$CMKRNL

                                     0B3D 25840 	$SETEXV_S	ADDRES=W^EXCEPT,-	;

                                     0B3D 25860 			ACMODE=#3,-	;

                                     0B3D 25880 			VECTOR=#0	; SET PRIMARY FOR USER

                          00     DD  0B3D       		PUSHL	#0

                          03     DD  0B3F       		PUSHL	#3

                     0BF1'CF     DF  0B41       		PUSHAL	W^EXCEPT

                          00     DD  0B45       		PUSHL	#0

   00000000'9F            04     FB  0B47       		CALLS	#4,@#SYS$SETEXV

                                     0B4E 25900 	$SETEXV_S	ADDRES=W^CATCHALL,-	; SET LAST CHANCE HANDLER

                                     0B4E 25920 			ACMODE=#3,-	; FOR USER MODE

                                     0B4E 25940 			VECTOR=#2	; SPECIFY LAST CHANCE HANDLER

                          00     DD  0B4E       		PUSHL	#0

                          03     DD  0B50       		PUSHL	#3

                     0C74'CF     DF  0B52       		PUSHAL	W^CATCHALL

                          02     DD  0B56       		PUSHL	#2

   00000000'9F            04     FB  0B58       		CALLS	#4,@#SYS$SETEXV

                                     0B5F 25960 	$ASSIGN_S	TTNAMD,TTCHAN	; ASSIGN DEVICE

                          7E     7C  0B5F       		CLRQ	-(SP)

                     F82B CF     3F  0B61       		PUSHAW	TTCHAN

                     F82B CF     7F  0B65       		PUSHAQ	TTNAMD

   00000000'9F            04     FB  0B69       		CALLS	#4,@#SYS$ASSIGN

                                     0B70 25980 INI$BRK:				;

                                 03  0B70 26000 	BPT				; INITIAL BREAK POINT

         04 AC            04     C0  0B71 26020 	ADDL	#4,4(AP)		; ADVANCE STARTING ADDRESS POINTER

            50         04 BC     D0  0B75 26040 	MOVL	@4(AP),R0		; FETCH CURRENT STARTING ADDRESS

            60            6C     FA  0B79 26060 	CALLG	(AP),(R0)		; CALL TARGET PROGRAM

                                     0B7C 26080 	$EXIT_S	R0			; EXIT

                          50     DD  0B7C       		PUSHL	R0

   00000000'9F            01     FB  0B7E       		CALLS	#1,@#SYS$EXIT

                                     0B85 26100 

                                     0B85 26120 

                               0000  0B85 26140 SETEXC:	.WORD	0			; ENTRY MASK

                                     0B87 26160 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0B87 26180 			PRVHND=KCOND,-	;

                                     0B87 26200 			ACMODE=#0	; SET KERNEL

                     F82B CF     DF  0B87       		PUSHAL	KCOND

                          00     DD  0B8B       		PUSHL	#0

                       F1'AF     DF  0B8D       		PUSHAL	B^EXCEPT

                          00     DD  0B90       		PUSHL	#0

   00000000'9F            04     FB  0B92       		CALLS	#4,@#SYS$SETEXV

                                     0B99 26220 	$SETEXV_S	ADDRES=W^CATCHALL,-	;

                                     0B99 26240 			ACMODE=#0,-	; SET KERNEL MODE LAST CHANCE HANDLER

                                     0B99 26260 			VECTOR=#2	; SPECIFY LAST CHANCE VECTOR

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  45

                PROCESS DEBUGGER INITIALIZATION                                                                                  (1)



                          00     DD  0B99       		PUSHL	#0

                          00     DD  0B9B       		PUSHL	#0

                     0C74'CF     DF  0B9D       		PUSHAL	W^CATCHALL

                          02     DD  0BA1       		PUSHL	#2

   00000000'9F            04     FB  0BA3       		CALLS	#4,@#SYS$SETEXV

                                     0BAA 26280 ;----------------------------------------------------------------------------

                                     0BAA 26300 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0BAA 26320 			PRVHND=ECOND,-	;

                                     0BAA 26340 			ACMODE=#1	; SET EXEC MODE EXCEPTION HANDLER

                     F80C CF     DF  0BAA       		PUSHAL	ECOND

                          01     DD  0BAE       		PUSHL	#1

                       F1'AF     DF  0BB0       		PUSHAL	B^EXCEPT

                          00     DD  0BB3       		PUSHL	#0

   00000000'9F            04     FB  0BB5       		CALLS	#4,@#SYS$SETEXV

                                     0BBC 26360 	$SETEXV_S	ADDRES=W^CATCHALL,-	;

                                     0BBC 26380 			ACMODE=#1,-	; SET EXEC MODE LAST CHANCE HANDLER

                                     0BBC 26400 			VECTOR=#2	; SPECIFY LAST CHANCE VECTOR

                          00     DD  0BBC       		PUSHL	#0

                          01     DD  0BBE       		PUSHL	#1

                     0C74'CF     DF  0BC0       		PUSHAL	W^CATCHALL

                          02     DD  0BC4       		PUSHL	#2

   00000000'9F            04     FB  0BC6       		CALLS	#4,@#SYS$SETEXV

                                     0BCD 26420 ;----------------------------------------------------------------------------

                                     0BCD 26440 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0BCD 26460 			PRVHND=SCOND,-	;

                                     0BCD 26480 			ACMODE=#2	; SET SUPERVISOR MODE EXCEPTION HANDLER

                     F7ED CF     DF  0BCD       		PUSHAL	SCOND

                          02     DD  0BD1       		PUSHL	#2

                       F1'AF     DF  0BD3       		PUSHAL	B^EXCEPT

                          00     DD  0BD6       		PUSHL	#0

   00000000'9F            04     FB  0BD8       		CALLS	#4,@#SYS$SETEXV

                                     0BDF 26500 	$SETEXV_S	ADDRES=W^CATCHALL,-	;

                                     0BDF 26520 			ACMODE=#2,-	; SET SUPERVISOR LAST CHANCE HANDLER

                                     0BDF 26540 			VECTOR=#2	; SPECIFY LAST CHANCE VECTOR

                          00     DD  0BDF       		PUSHL	#0

                          02     DD  0BE1       		PUSHL	#2

                     0C74'CF     DF  0BE3       		PUSHAL	W^CATCHALL

                          02     DD  0BE7       		PUSHL	#2

   00000000'9F            04     FB  0BE9       		CALLS	#4,@#SYS$SETEXV

                                 04  0BF0 26560 	RET				;

                                     0BF1 26580 

                               0000  0BF1 26600 EXCEPT:	.WORD	0			; EXCEPTION HANDLER ENTRY MASK

                                     0BF3 26620 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0BF3 26640 			ACMODE=#3,-	;

                                     0BF3 26660 			VECTOR=#0	; RE-ESTABLISH USER PRIMARY VECTOR

                          00     DD  0BF3       		PUSHL	#0

                          03     DD  0BF5       		PUSHL	#3

                       F7 AF     DF  0BF7       		PUSHAL	B^EXCEPT

                          00     DD  0BFA       		PUSHL	#0

   00000000'9F            04     FB  0BFC       		CALLS	#4,@#SYS$SETEXV

         04 AC            04     C1  0C03 26680 	ADDL3	#4,4(AP),R0		; GET POINTER TO SIGNAL

                          50         0C07       

                          51     DC  0C08 26700 	MOVPSL	R1			; GET CURRENT PSL

            02            18     EF  0C0A 26720 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,R1,R1	;

            51            51         0C0D       

       F78A CF            51     E2  0C0F 26740 	BBSS	R1,DBGACTIVE,40$	; BR IF ALREADY ACTIVE

                          34         0C14       

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  46

                PROCESS DEBUGGER INITIALIZATION                                                                                  (1)



            60   00000464 8F     D1  0C15 26760 	CMPL	#SS$_TBIT,(R0)		; IS IT TBIT?

                          03     12  0C1C 26780 	BNEQ	10$			; NO,

                          FDDB   31  0C1E 26800 	BRW	XDELTBIT		; YES, A TBIT

            60   00000414 8F     D1  0C21 26820 10$:	CMPL	#SS$_BREAK,(R0)		; IS IT BREAKPOINT?

                          03     12  0C28 26840 	BNEQ	20$			; NO,

                          FD4F   31  0C2A 26860 	BRW	XDELBPT			; YES, A BREAKPOINT

                                     0C2D 26880 20$:					; SOME OTHER EXCEPTION

            60   00000928 8F     D1  0C2D 26900 	CMPL	#SS$_UNWINDING,(R0)	; IS IT UNWINDING

                          04     12  0C34 26920 	BNEQ	30$			; NO,

            50            01     D0  0C36 26940 	MOVL	#1,R0			; YES, IGNORE

                                 04  0C39 26960 	RET				; RESIGNAL

                                     0C3A 26980 30$:					;

            60   0000046C 8F     D1  0C3A 27000 	CMPL	#SS$_DEBUG,(R0)		; IS IT DEBUG EXCEPTION?

                          06     12  0C41 27020 	BNEQ	40$			; NO,

                          FC81   30  0C43 27040 	BSBW	SAVE			; SAVE EVERYTHING

                          FDC0   31  0C46 27060 	BRW	XDELDBG			; AND TREAT AS FUNNY BPT

                                     0C49 27080 40$:					; UNEXPECTED EXCEPTION

       F750 CF            51     E5  0C49 27100 	BBCC	R1,DBGACTIVE,50$	; CLEAR DEBUG ACTIVE

                          00         0C4E       

                          50     D4  0C4F 27120 50$:	CLRL	R0			; RETURN FALSE FOR RESIGNAL

                                 04  0C51 27140 	RET				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  47

                HANDLER FOR DEBUG EXCEPTIONS                                                                                     (1)



                                     0C52 27180 	.SBTTL	HANDLER FOR DEBUG EXCEPTIONS

                                     0C52 27200 

                                     0C52 27220 DBGEXCEP:				;

                               0000  0C52 27240 	.WORD	0			;

         08 AC            04     C1  0C54 27260 	ADDL3	#4,8(AP),R1		; POINT TO EXCEPTION FP

                          51         0C58       

            50            5D     D0  0C59 27280 	MOVL	FP,R0			; INIT LINK FOR CALL FRAMES

            61         0C A0     D1  0C5C 27300 10$:	CMPL	12(R0),(R1)		; IS THIS THE LAST ONE?

                          0B     13  0C60 27320 	BEQL	20$			; YES

         10 A0         73'AF     9E  0C62 27340 	MOVAB	B^30$,16(R0)		; SET FOR RETURN

            50         0C A0     D0  0C67 27360 	MOVL	12(R0),R0		;

                          EF     11  0C6B 27380 	BRB	10$			; CONTINUE

         10 A0       FC53 CF     9E  0C6D 27400 20$:	MOVAB	XDELACV,16(R0)		; SET RETURN FOR ERROR

                                 04  0C73 27420 30$:	RET				;

                                     0C74 27440 

                                     0C74 27460 CATCHALL:				; CATCHALL EXCEPTION HANDLER

                               0000  0C74 27480 	.WORD	0			; ENTRY MASK

                          51     DC  0C76 27500 	MOVPSL	R1			; GET CURMOD

            02            18     EF  0C78 27520 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,R1,R1	; ISOLATE CURRENT MODE

            51            51         0C7B       

       F71C CF            51     E3  0C7D 27540 	BBCS	R1,DBGACTIVE,10$	; MUST NOT BE DEBUGGER EXCEPTION

                          03         0C82       

                          50     D4  0C83 27560 	CLRL	R0			; RESIGNAL

                                 04  0C85 27580 	RET				;

                          FC3E   30  0C86 27600 10$:	BSBW	SAVE			; SAVE EVERYTHING

         04 AC            04     C1  0C89 27620 	ADDL3	#4,4(AP),R0		; POINT TO EXCEPTION CODE

                          50         0C8D       

            53            60     D0  0C8E 27640 	MOVL	(R0),R3			; GET IT

                          F9B5   30  0C91 27660 	BSBW	CRLF			; OUTPUT CR/LF

                          F956   30  0C94 27680 	BSBW	OUTLONG			; OUTPUT EXCEPTION CODE

            54         A1'AF     9E  0C97 27700 	MOVAB	B^EXCMSG,R4		; OUTPUT MESSAGE

                          F96C   30  0C9B 27720 	BSBW	OUTZSTRING		; TEXT FOR EXCEPTION

                          FD68   31  0C9E 27740 	BRW	XDELDBG			; AND DISPLAY INSTRUCTION

00 20 4E 4F 49 54 50 45 43 58 45 20  0CA1 27760 EXCMSG:	.ASCIZ	/ EXCEPTION /		;

                                     0CAD 27780 

                                     0CAD 27800 EXIHANDLE:				; EXIT HANDLER

                               0000  0CAD 27820 	.WORD	0			; ENTRY MASK

       F6EA CF            0F     93  0CAF 27840 	BITB	#15,DBGACTIVE		; TEST FOR DEBUG ACTIVE IN ANY MODE

                          14     13  0CB4 27860 	BEQL	10$			; NO, REPORT EXIT

                                     0CB6 27880 	$CMKRNL_S	CLREXV,(AP)	; RESET EXCEPTION VECTORS

                          6C     DF  0CB6       		PUSHAL	(AP)

                 00000D1E'EF     DF  0CB8       		PUSHAL	CLREXV

   00000000'9F            02     FB  0CBE       		CALLS	#2,@#SYS$CMKRNL

            50         04 BC     D0  0CC5 27900 	MOVL	@4(AP),R0		; RESTORE

                                 04  0CC9 27920 	RET				; RETURN

                                     0CCA 27940 10$:					; PROGRAM EXIT

                          7E     DC  0CCA 27960 	MOVPSL	-(SP)			; BUILD EXCEPTION FRAME

                       10 AD     DD  0CCC 27980 	PUSHL	16(FP)			;

                       04 BC     DD  0CCF 28000 	PUSHL	@4(AP)			; EXIT CODE FOR EXCEPTION CODE

                          03     DD  0CD2 28020 	PUSHL	#3			; ARG COUNT

                          03     BB  0CD4 28040 	PUSHR	#^M<R0,R1>		;

            7E            5C     7D  0CD6 28060 	MOVQ	AP,-(SP)		;

                          04     DD  0CD9 28080 	PUSHL	#4			; MECHANISM COUNT

                          5E     DD  0CDB 28100 	PUSHL	SP			; POINTER TO MECHANISM

                       18 AE     DF  0CDD 28120 	PUSHAL	24(SP)			; POINTER TO SIGNAL

                          02     DD  0CE0 28140 	PUSHL	#2			;

            5C            5E     D0  0CE2 28160 	MOVL	SP,AP			; SET AP FOR EXCEPTION

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  48

                HANDLER FOR DEBUG EXCEPTIONS                                                                                     (1)



                          FBDF   30  0CE5 28180 	BSBW	SAVE			; SAVE EVERYTHING

            54         15'AF     9E  0CE8 28200 	MOVAB	B^EXIMSG,R4		; DISPLAY EXIT MESSAGE

                          F91B   30  0CEC 28220 	BSBW	OUTZSTRING		; OUTPUT TEXT

            53         48 AB     D0  0CEF 28240 	MOVL	SAVAP-B(R11),R3		; GET POINTER TO EXCEPTION ARGLIST

            53         04 A3     D0  0CF3 28260 	MOVL	4(R3),R3		; GET EXIT CODE ADDRESS

                          F8F3   30  0CF7 28280 	BSBW	OUTLONG			; DISPLAY IT

                                     0CFA 28300 	$DCLEXH_S	EXITBLK		; RE-ESTABLISH EXIT HANDLER

                     F6A4 CF     DF  0CFA       		PUSHAL	EXITBLK

   00000000'9F            01     FB  0CFE       		CALLS	#1,@#SYS$DCLEXH

                          51     DC  0D05 28320 	MOVPSL	R1			; GET CURRENT PSL

            02            18     EF  0D07 28340 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,R1,R1 ; GET CURRENT MODE

            51            51         0D0A       

       F68D CF            51     E2  0D0C 28360 	BBSS	R1,DBGACTIVE,20$	; SET DELTA ACTIVE FOR MODE

                          00         0D11       

                          FCF4   31  0D12 28380 20$:	BRW	XDELDBG			;

                                     0D15 28400 

         00 20 54 49 58 45 20 0A 0D  0D15 28420 EXIMSG:	.ASCIZ	<CR><LF>/ EXIT /	;

                                     0D1E 28440 

                                     0D1E 28460 CLREXV:					; CLR EXCEPTION VECTORS

                               0000  0D1E 28480 	.WORD	0			; ENTRY MASK

                                     0D20 28500 	$SETEXV_S	ADDRES=@KCOND,-	;

                                     0D20 28520 			ACMODE=#0	;

                          00     DD  0D20       		PUSHL	#0

                          00     DD  0D22       		PUSHL	#0

                     F68E DF     DF  0D24       		PUSHAL	@KCOND

                          00     DD  0D28       		PUSHL	#0

   00000000'9F            04     FB  0D2A       		CALLS	#4,@#SYS$SETEXV

                                     0D31 28540 	$SETEXV_S	ADDRES=@ECOND,-	;

                                     0D31 28560 			ACMODE=#1	;

                          00     DD  0D31       		PUSHL	#0

                          01     DD  0D33       		PUSHL	#1

                     F681 DF     DF  0D35       		PUSHAL	@ECOND

                          00     DD  0D39       		PUSHL	#0

   00000000'9F            04     FB  0D3B       		CALLS	#4,@#SYS$SETEXV

                                     0D42 28580 	$SETEXV_S	ADDRES=@SCOND,-	;

                                     0D42 28600 			ACMODE=#2	;

                          00     DD  0D42       		PUSHL	#0

                          02     DD  0D44       		PUSHL	#2

                     F674 DF     DF  0D46       		PUSHAL	@SCOND

                          00     DD  0D4A       		PUSHL	#0

   00000000'9F            04     FB  0D4C       		CALLS	#4,@#SYS$SETEXV

                                 04  0D53 28620 	RET				;

                                     0D54 28640 

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  49

                SETWRT - SET PAGES WRITABLE                                                                                      (1)



                                     0D54 28680 	.SBTTL	SETWRT - SET PAGES WRITABLE

                                     0D54 28700 

                                     0D54 28720 SETWRT:					;

            52            7E     DE  0D54 28740 	MOVAL	-(SP),R2		; ADDRESS FOR RETURN OF PROT

                                     0D57 28760 	$CMKRNL_S	B^SETPRTK,(R2)	;

                          62     DF  0D57       		PUSHAL	(R2)

                       6D'AF     DF  0D59       		PUSHAL	B^SETPRTK

   00000000'9F            02     FB  0D5C       		CALLS	#2,@#SYS$CMKRNL

            04            50     E8  0D63 28780 	BLBS	R0,10$			; CONTINUE IF NO ERROR

         6D'AF            62     FA  0D66 28800 	CALLG	(R2),B^SETPRTK		;

                          04     BA  0D6A 28820 10$:	POPR	#^M<R2>			; RESTORE PROTECTION VALUE

                                 05  0D6C 28840 	RSB				; RETURN

                                     0D6D 28860 

                               0000  0D6D 28880 SETPRTK:.WORD	0			;

            7E            55     7D  0D6F 28900 	MOVQ	R5,-(SP)		; INADR, START AND END ADDRESSES

            51            5E     D0  0D72 28920 	MOVL	SP,R1			; ADDRESS OF INADR

                                     0D75 28940 	$SETPRT_S	INADR=(R1),-	;

                                     0D75 28960 			PROT=#PRT$C_UW,-; WRITABLE BY ALL

                                     0D75 28980 			ACMODE=#0,-	;

                                     0D75 29000 			PRVPRT=(AP)	; ADDRESS AT WHICH TO RETURN PROT

                          6C     DF  0D75       		PUSHAL	(AP)

                          04     DD  0D77       		PUSHL	#PRT$C_UW

                          00     DD  0D79       		PUSHL	#0

                          00     DD  0D7B       		PUSHL	#0

                          61     7F  0D7D       		PUSHAQ	(R1)

   00000000'9F            05     FB  0D7F       		CALLS	#5,@#SYS$SETPRT

            50            01     D0  0D86 29020 	MOVL	#1,R0			; ALWAYS SUCCESS

                                 04  0D89 29040 	RET				;

                                     0D8A 29060 

                                     0D8A 29080 REPROT:					; RESTORE PROTECTION

                                 05  0D8A 29100 	RSB				; 

                                     0D8B 29120 	.ENDC				;

                                     0D8B   100 	.END	TEST			; DECLARE START ADDRESS

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  50

SYMBOL TABLE                                                                                                                     (1)



$$T1           = 00000001            FETCH            0000052E R     03   PR$_ASTLVL     = 00000013            

ADD              000004BE R     03   FTCHPREG         0000055C R     03   PR$_ESP        = 00000001            

ASTEN            000000B4 R     03   GBL...         = 00000000            PR$_ICCS       = 00000018            

B                00000054 R     03   GETBPTX          00000A7A R     03   PR$_ICR        = 0000001A            

BIT...         = 00000000            GETCHAR          00000653 R     03   PR$_IPL        = 00000012            

BLANK            000006E7 R     03   GETCMD           000009C9 R     03   PR$_ISP        = 00000004            

BMSG             00000972 R     03   GLOBL            0000047E R     03   PR$_KSP        = 00000000            

BRKADR         = 000002DC R     03   GO               00000842 R     03   PR$_MAPEN      = 00000038            

BRKCOM         = 00000324 R     03   HIGH             00000484 R     03   PR$_NICR       = 00000019            

BRKDSP         = 00000304 R     03   INBUF            00000004 R     03   PR$_P0BR       = 00000008            

BRKOP          = 000002FF R     03   INFLD            0000047A R     03   PR$_P0LR       = 00000009            

BRKPOINT         0000078D R     03   INI$BRK          00000B70 R     03   PR$_P1BR       = 0000000A            

BSLSH          = 0000005C            IO$_READVBLK     ********   X   03   PR$_P1LR       = 0000000B            

CA$_MEASURE    = 00000002            IO$_WRITEVBLK    ********   X   03   PR$_PCBB       = 00000010            

CA$_MEASURE_IOT= 00000004            KCOND            000003B6 R     03   PR$_RXCS       = 00000020            

CA$_SIMULATOR  = 00000001            LBRACKET         00000768 R     03   PR$_RXDB       = 00000021            

CATCHALL         00000C74 R     03   LF             = 0000000A            PR$_SBIER      = 00000034            

CLREXV           00000D1E R     03   LINEFEED         0000057E R     03   PR$_SBIFS      = 00000030            

COMMA            00000510 R     03   LOCOUT           00000585 R     03   PR$_SBIMT      = 00000033            

CONTEXT          00000000 R     03   LOCP             0000071B R     03   PR$_SBIQC      = 00000036            

CONTEXTSZ      = 000000B8            LOCPROMPT        00000583 R     03   PR$_SBIS       = 00000031            

CR             = 0000000D            MASK             0000004C R     03   PR$_SBISC      = 00000032            

CRLF             00000649 R     03   MASKS            0000084C R     03   PR$_SBITA      = 00000035            

CURDOT           00000054 R     03   MCHK             000008C4 R     03   PR$_SBR        = 0000000C            

CURTYPE          00000052 R     03   MODES            00000764 R     03   PR$_SCBB       = 00000011            

DBGACTIVE        0000039E R     03   MUL              000004B6 R     03   PR$_SID        = 0000003E            

DBGEXCEP         00000C52 R     03   NBRK           = 00000008            PR$_SIRR       = 00000014            

DCOM             0000040B R     03   NEGATE           000006F0 R     03   PR$_SISR       = 00000015            

DEPOSIT          00000A9E R     03   NEXTDOT          0000056B R     03   PR$_SLR        = 0000000D            

DEPPREG          00000AE9 R     03   NEXTLOC          00000581 R     03   PR$_SSP        = 00000002            

DIV              000004BA R     03   NEXTP            0000042B R     03   PR$_TBIA       = 00000039            

DOT              00000852 R     03   NMODES         = 00000004            PR$_TBIS       = 0000003A            

DQUOTE           000004C2 R     03   NPRIM          = 00000029            PR$_TODR       = 0000001B            

DTYPE            00000051 R     03   NSEC           = 00000007            PR$_TXCS       = 00000022            

ECOND            000003BA R     03   NTERM          = 00000008            PR$_TXDB       = 00000023            

ENDEXPR          00000493 R     03   OPEN             000004CA R     03   PR$_USP        = 00000003            

ENDFIELD         00000513 R     03   OPER             00000053 R     03   PR$_WCSA       = 0000002C            

EQL1             00000725 R     03   OPERATOR         000006E7 R     03   PR$_WCSD       = 0000002D            

EQUALS           0000071E R     03   OPERBAS        = 00000012            PRE1             0000048B R     03   

ERR2             00000761 R     03   OUTB           = 00000006            PREG             00000B1A R     03   

ERR3             000008C4 R     03   OUTBB            0000057B R     03   PREXC            00000AF8 R     03   

ERR4             000004F6 R     03   OUTBSLSH         00000614 R     03   PRIMARY          000003DA R     03   

ERROR            00000414 R     03   OUTBUF           0000005C R     03   PROCED           0000084B R     03   

ESCAP            0000070C R     03   OUTCHAR          0000061D R     03   PROCEED          000009CE R     03   

EXCEPT           00000BF1 R     03   OUTCOM           000005F0 R     03   PROGCTR          00000865 R     03   

EXCMSG           00000CA1 R     03   OUTCR          = 00000004            PRT$C_ER       = 00000007            

EXECUTE          00000B0C R     03   OUTDIGIT         000005E9 R     03   PRT$C_ERKW     = 00000006            

EXIHANDLE        00000CAD R     03   OUTER            00000403 R     03   PRT$C_EW       = 00000005            

EXIMSG           00000D15 R     03   OUTLONG          000005ED R     03   PRT$C_KR       = 00000003            

EXITBLK          000003A2 R     03   OUTPUT           0000058A R     03   PRT$C_KW       = 00000002            

EXITCODE         000003B2 R     03   OUTPUTA          000005B0 R     03   PRT$C_NA       = 00000000            

F1               00000038 R     03   OUTR8            0000061A R     03   PRT$C_RESERVED = 00000001            

F2               0000003C R     03   OUTSPACE         00000644 R     03   PRT$C_SR       = 0000000B            

F3               00000040 R     03   OUTZBUF          00000606 R     03   PRT$C_SREW     = 00000009            

F4               00000044 R     03   OUTZSTRING       0000060A R     03   PRT$C_SRKW     = 0000000A            

F5               00000048 R     03   PR$_ACCR       = 00000029            PRT$C_SW       = 00000008            

FCTR             00000050 R     03   PR$_ACCS       = 00000028            PRT$C_UR       = 0000000F            

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  51

SYMBOL TABLE                                                                                                                     (1)



PRT$C_UREW     = 0000000D            SAVREG           0000006C R     03   SS$_DEVNOTALLOC= 00000858            

PRT$C_URKW     = 0000000E            SAVRXCS          000000B4 R     03   SS$_DEVNOTMBX  = 00000074            

PRT$C_URSW     = 0000000C            SAVSP            000000A4 R     03   SS$_DEVNOTMOUNT= 0000007C            

PRT$C_UW       = 00000004            SCANP            00000427 R     03   SS$_DEVOFFLINE = 00000084            

PSL$C_EXEC     = 00000001            SCOND            000003BE R     03   SS$_DIRFULL    = 00000860            

PSL$C_KERNEL   = 00000000            SECOND           0000073A R     03   SS$_DRVERR     = 0000008C            

PSL$C_SUPER    = 00000002            SEMI             00000741 R     03   SS$_DUPFILENAME= 00000868            

PSL$C_USER     = 00000003            SETBRK           00000A44 R     03   SS$_DUPLNAM    = 00000094            

PSL$M_CM       = 80000000            SETEXC           00000B85 R     03   SS$_ENDOFFILE  = 00000870            

PSL$M_CURMOD   = 03000000            SETPRTK          00000D6D R     03   SS$_ENDOFTAPE  = 00000878            

PSL$M_DV       = 00000080            SETWRT           00000D54 R     03   SS$_ENDOFUSRLBL= 00000970            

PSL$M_FPD      = 08000000            SHFT             000004B1 R     03   SS$_EXQUOTA    = 0000001C            

PSL$M_FU       = 00000040            SHOBRK           00000800 R     03   SS$_EXTIDXFILE = 00000880            

PSL$M_IPL      = 001F0000            SLASH            000004C7 R     03   SS$_FCPREADERR = 00000888            

PSL$M_IS       = 04000000            SLSH           = 0000002F            SS$_FCPREPSTN  = 00000988            

PSL$M_IV       = 00000020            SS$_ABORT      = 0000002C            SS$_FCPREWNDERR= 00000890            

PSL$M_PRVMOD   = 00C00000            SS$_ACCONFLICT = 00000800            SS$_FCPSPACERR = 00000898            

PSL$M_SAFBITS  = 000037FF            SS$_ACCVIO     = 0000000C            SS$_FCPWRITERR = 000008A0            

PSL$M_TBIT     = 00000010            SS$_ARITH      = 00000404            SS$_FILACCERR  = 0000009C            

PSL$M_TP       = 40000000            SS$_ASTFLT     = 0000040C            SS$_FILALRACC  = 000000A4            

PSL$S_CURMOD   = 00000002            SS$_BADATTRIB  = 00000034            SS$_FILELOCKED = 000008A8            

PSL$S_IPL      = 00000005            SS$_BADCHKSUM  = 00000808            SS$_FILENUMCHK = 000008B0            

PSL$S_PRVMOD   = 00000002            SS$_BADESCAPE  = 0000003C            SS$_FILESEQCHK = 000008B8            

PSL$V_CM       = 0000001F            SS$_BADFILEHDR = 00000810            SS$_FILESTRUCT = 000008C0            

PSL$V_CURMOD   = 00000018            SS$_BADFILENAME= 00000818            SS$_FILNOTACC  = 000000AC            

PSL$V_DV       = 00000007            SS$_BADFILEVER = 00000820            SS$_FILNOTCNTG = 000002AC            

PSL$V_FPD      = 0000001B            SS$_BADIMGHDR  = 00000044            SS$_FILNOTEXP  = 000000B4            

PSL$V_FU       = 00000006            SS$_BADIRECTORY= 00000828            SS$_FORMAT     = 000000BC            

PSL$V_IPL      = 00000010            SS$_BADPARAM   = 00000014            SS$_GPTFULL    = 000000C4            

PSL$V_IS       = 0000001A            SS$_BADSTACK   = 000002B4            SS$_GSDFULL    = 000000CC            

PSL$V_IV       = 00000005            SS$_BEGOFFILE  = 00000938            SS$_GSDNOTXXX  = 000000D4            

PSL$V_PRVMOD   = 00000016            SS$_BLOCKCNTERR= 00000940            SS$_HANGUP     = 000002CC            

PSL$V_TBIT     = 00000004            SS$_BREAK      = 00000414            SS$_HEADERFULL = 000008C8            

PSL$V_TP       = 0000001E            SS$_BUFFEROVF  = 00000601            SS$_IDXFILEFULL= 000008D0            

QUAN             00000058 R     03   SS$_BUGCHECK   = 000002A4            SS$_ILLBLKNUM  = 000000DC            

QUANT            0000085F R     03   SS$_CANCEL     = 00000830            SS$_ILLCNTRFUNC= 000000E4            

QUOT           = 00000027            SS$_CHANINTLK  = 0000004C            SS$_ILLEFC     = 000000EC            

QUOTE            00000A8A R     03   SS$_CLIFRCEXT  = 00000980            SS$_ILLIOFUNC  = 000000F4            

RDBUF          = 00000002            SS$_CMODSUPR   = 0000041C            SS$_ILLLBLAST  = 00000968            

RDCR           = 00000000            SS$_CMODUSER   = 00000424            SS$_ILLPAGCNT  = 000000FC            

REGCOM           0000087F R     03   SS$_COMPAT     = 0000042C            SS$_ILLSEQOP   = 000002DC            

REGISTER         00000877 R     03   SS$_CONTINUE   = 00000001            SS$_ILLSER     = 00000104            

REPROT           00000D8A R     03   SS$_CONTROLC   = 00000651            SS$_ILLUSRLBLRD= 00000958            

RESET            0000072D R     03   SS$_CONTROLO   = 00000609            SS$_ILLUSRLBLWT= 00000960            

RESTORE          00000926 R     03   SS$_CONTROLY   = 00000611            SS$_INCVOLLABEL= 0000010C            

RESTORR          00000934 R     03   SS$_CREATED    = 00000619            SS$_INSFARG    = 00000114            

RETURN           000004F9 R     03   SS$_CTRLERR    = 00000054            SS$_INSFMEM    = 00000124            

RSET             00000506 R     03   SS$_DATACHECK  = 0000005C            SS$_INSFRAME   = 0000012C            

RUBOUT         = 0000007F            SS$_DATAOVERUN = 00000838            SS$_INSFWSL    = 0000011C            

SAV...         = 000002E0 R     03   SS$_DEBUG      = 0000046C            SS$_IVADDR     = 00000134            

SAVAP            0000009C R     03   SS$_DEVACTIVE  = 000002C4            SS$_IVCHAN     = 0000013C            

SAVE             000008C7 R     03   SS$_DEVALLOC   = 00000840            SS$_IVCHNLSEC  = 0000026C            

SAVOCR           000000B0 R     03   SS$_DEVALRALLOC= 00000641            SS$_IVDEVNAM   = 00000144            

SAVPC            000000A8 R     03   SS$_DEVASSIGN  = 00000848            SS$_IVGSDNAM   = 0000014C            

SAVPSL           000000AC R     03   SS$_DEVFOREIGN = 00000064            SS$_IVLOGNAM   = 00000154            

SAVR2            00000074 R     03   SS$_DEVICEFULL = 00000850            SS$_IVLOGTAB   = 0000015C            

SAVRCR           000000B2 R     03   SS$_DEVMOUNT   = 0000006C            SS$_IVPROTECT  = 000002F4            

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  52

SYMBOL TABLE                                                                                                                     (1)



SS$_IVQUOTAL   = 00000164            SS$_SUPERSEDE  = 00000631            V_TBIT         = 00000003            

SS$_IVSECFLG   = 0000016C            SS$_TAPEPOSLOST= 00000224            V_TBITOK       = 00000005            

SS$_IVSECIDCTL = 000002E4            SS$_TBIT       = 00000464            XDELACV          000008C4 R     03   

SS$_IVSSRQ     = 00000174            SS$_TIMEOUT    = 0000022C            XDELBPT          0000097C R     03   

SS$_IVSTSFLG   = 0000017C            SS$_TOOMANYVER = 00000990            XDELDBG          00000A09 R     03   

SS$_IVTIME     = 00000184            SS$_TOOMUCHDATA= 0000029C            XDELTBIT         000009FC R     03   

SS$_LENVIO     = 0000018C            SS$_UNASEFC    = 00000234            XDT$START        00000B1F RG    03   

SS$_LKWSETFUL  = 00000194            SS$_UNSAFE     = 0000023C            XREG             000008B8 R     03   

SS$_MBFULL     = 000008D8            SS$_UNWIND     = 00000920            XREGV            00000348 R     03   

SS$_MBTOOSML   = 0000019C            SS$_UNWINDING  = 00000928            XSET             000008A6 R     03   

SS$_MCHECK     = 000002BC            SS$_VASFULL    = 00000244            

SS$_MEDOFL     = 000001A4            SS$_VECINUSE   = 0000024C            

SS$_MSGNOTFND  = 00000621            SS$_VOLINV     = 00000254            

SS$_MUSTCLOSEFL= 00000948            SS$_WAITUSRLBL = 00000950            

SS$_NODATA     = 000001AC            SS$_WASCLR     = 00000001            

SS$_NOHANDLER  = 000008F8            SS$_WASECC     = 00000639            

SS$_NOHOMEBLK  = 000008E0            SS$_WASSET     = 00000009            

SS$_NOIOCHAN   = 000001B4            SS$_WRITLCK    = 0000025C            

SS$_NOLINKS    = 0000027C            STATUS           00000034 R     03   

SS$_NOLOGNAM   = 000001BC            STEP             00000783 R     03   

SS$_NOMBX      = 00000274            SUPERST          0000041B R     03   

SS$_NOMOREFILES= 00000930            SW_PROCESS     = 00000001            

SS$_NONEXDRV   = 000001C4            SYS$ASSIGN       ********   X   03   

SS$_NONEXPR    = 000008E8            SYS$CMKRNL       ********   X   03   

SS$_NONLOCAL   = 000008F0            SYS$DCLEXH       ********   X   03   

SS$_NOPRIV     = 00000024            SYS$EXIT         ********   X   03   

SS$_NORMAL     = 00000001            SYS$QIO          ********   X   03   

SS$_NOSIGNAL   = 00000900            SYS$QIOW         ********   X   03   

SS$_NOSOLICIT  = 00000284            SYS$SETAST       ********   X   03   

SS$_NOSUCHDEV  = 00000908            SYS$SETEXV       ********   X   03   

SS$_NOSUCHFILE = 00000910            SYS$SETPRT       ********   X   03   

SS$_NOSUCHNODE = 0000028C            TAB              000006FC R     03   

SS$_NOSUCHSEC  = 00000978            TERM             000003F3 R     03   

SS$_NOTAPEOP   = 00000264            TERMASK          000003CA R     03   

SS$_NOTFILEDEV = 000001CC            TERMASKD         000003C2 R     03   

SS$_NOTINTBLSZ = 000001D4            TEST             00000B1F R     03   

SS$_NOTLABELMT = 000001DC            TTCHAN           00000390 R     03   

SS$_NOTNETDEV  = 000002EC            TTIOSB           00000388 R     03   

SS$_NOTRAN     = 00000629            TTNAMD           00000394 R     03   

SS$_NOTSQDEV   = 000001E4            TTSTR            0000039C R     03   

SS$_OPCCUS     = 00000434            UNBRK            00000A1C R     03   

SS$_OPCDEC     = 0000043C            VALI             00000874 R     03   

SS$_OPINCOMPL  = 000002D4            VALR             00000871 R     03   

SS$_PAGOWNVIO  = 000001EC            VALUE            00000869 R     03   

SS$_PAGRDERR   = 00000444            V_ASCII        = 00000001            

SS$_PARITY     = 000001F4            V_ATBRK        = 00000004            

SS$_PARTESCAPE = 000001FC            V_F1           = 00000008            

SS$_PFMBSY     = 00000204            V_F2           = 00000009            

SS$_PSTFULL    = 0000020C            V_F3           = 0000000A            

SS$_RADRMOD    = 0000044C            V_F4           = 0000000B            

SS$_REJECT     = 00000294            V_F5           = 0000000C            

SS$_REMOTE     = 00000649            V_INFIELD      = 00000002            

SS$_RESIGNAL   = 00000918            V_NEGATE       = 00000007            

SS$_RESULTOVF  = 00000214            V_OPEN         = 00000000            

SS$_ROPRAND    = 00000454            V_PREG         = 0000001F            

SS$_SECTBLFUL  = 0000021C            V_PRMODE       = 0000000F            

SS$_SSFAIL     = 0000045C            V_RUB          = 00000006            

DELTA           - MULTIMODE PROCESS DEBUGGER                     22-AUG-1978 00:04:15   VAX-11 MACRO X0.3-11               Page  53

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$ABS$            00000000      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

_DELTA           00000D8B      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

13830. BYTES LEFT IN FREE MEMORY POOL.

16. BYTES OF RECLAIMED MEMORY.

OBJ$:DELTA,LIS$:DELTA/-SP=LIB$:LIB/ML,SRC$:SWP,XDELTA,ENDP

7 MLB DIR RDS - 534 GETS TO DEFINE 27 MACROS. 104 INTER. FILE WRITES. 

