DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    7240  PRIMARY COMMAND CHARACTER SWITCH

   (1)    8760  PRIMARY COMMAND SCANNER

   (1)   11600  ENDEXPR	- END EXPRESSION

   (1)   12760  SLASH - OPEN CELL

   (1)   14000  RETURN - CLOSE CURRENT OPEN CELL

   (1)   14680  ENDFIELD - TERMINATE CURRENT FIELD

   (1)   15520  FETCH - OBTAIN DATA SPECIFIED

   (1)   16960  NEXTDOT - INCREMENT CURRENT LOCATION

   (1)   17520  OUTPUT - DISPLAY CONTENT

   (1)   17760  LINE FEED - DISPLAY NEXT

   (1)   18840  OUTPUTA - OUTPUT ADDRESS

   (1)   22320  GETCHAR - GET INPUT CHARACTER ROUTINE

   (1)   25160  PLUS/MINUS OPERATORS

   (1)   25960  TAB - INDIRECT DISPLAY

   (1)   26800  EQUALS - DISPLAY VALUE

   (1)   27680  SEMI - SECONDARY COMMAND SET

   (1)   28920  LEFT BRACKET - MODE SELECTION

   (1)   29880  SINGLE STEP

   (1)   30200  BRKPOINT - SET/CLEAR BREAKPOINTS

   (1)   32760  GO - START EXECUTION AT SPECIFIED LOCATION

   (1)   33280  SEMI-I, PC VALUE

   (1)   35600  REGISTER SAVE AND RESTORE

   (1)   41040  BPT TRAP HANDLER

   (1)   43840  TBIT EXCEPTION HANDLER

   (1)   45160  UNBRK - RESTORE OPCODES FOR BREAKPOINTS

   (1)   46120  SETBRK - SET BREAK POINT INSTRUCTIONS

   (1)   47280  GETBPTX - GET INDEX FOR BREAKPOINT

   (1)   47720  QUOTE - INPUT CHARACTER STRING

   (1)   48280  DEPOSIT

   (1)   50760  EXECUTE - PERFORM COMMAND STRING

   (1)   51240  P - PROCESSOR REGISTER PREFIX

   (1)   51560  PROCESS DEBUGGER INITIALIZATION

   (1)   54760  HANDLER FOR DEBUG EXCEPTIONS

   (1)   57760  SETWRT - SET PAGES WRITABLE

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   1

                                                                                                                                 (1)



                           00000001  0000   100 SW_PROCESS=1				;

                                     0000    40 	.IF	DF,SW_PROCESS		;

                                     0000    80 	.TITLE	DELTA - MULTIMODE PROCESS DEBUGGER

                                     0000   120 	.IFF				;

                                     0000   160 	.TITLE	XDELTA - EXECUTIVE DEBUGGER

                                     0000   200 	.ENDC				;

                                     0000   240 	.LIST	MEB			;

                                     0000   280 ;

                                     0000   320 ;	DEFINITIONS

                                     0000   360 ;

                                     0000   400 	$CADEF				; DEFINE ASSEMBLY SWITCHES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   440 	$PRDEF				; DEFINE PROCESSOR REGISTERS

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   480 	$PRTDEF				; DEFINE PROTECTION VALUES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   520 	$PSLDEF				; DEFINE PSL FIELDS

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   560 	$SSDEF				; DEFINE SYSTEM SERVICE STATUS CODES

                                     0000       	.SAVE

                                 00000000       	.PSECT	$ABS$,ABS

                                     0000       	.RESTORE

                                     0000   600 

                                     0000   640 ;

                                     0000   680 ; EQUATES:

                                     0000   720 ;

                           00000008  0000   760 V_F1=8					; FIELD 1 PRESENT FLAG

                           00000009  0000   800 V_F2=9					; FIELD 2 PRESENT FLAG

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

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

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

                                     0000   960 

                           00000000  0000  1000 V_OPEN=0				; OPEN CELL FLAG

                           00000001  0000  1040 V_ASCII=1				; ASCII

                           00000002  0000  1080 V_INFIELD=2				; FIELD IN PROGRESS

                           00000003  0000  1120 V_TBIT=3				; ENABLE TBIT

                           00000004  0000  1160 V_ATBRK=4				; AT BREAKPOINT

                           00000005  0000  1200 V_TBITOK=5				; TBIT EXPECTED

                           00000006  0000  1240 V_RUB=6					; RUBOUT IN PROGRESS

                           00000007  0000  1280 V_NEGATE=7				; NEGATE BIT

                           0000000F  0000  1320 V_PRMODE=15				; PROCESSOR REGISTER MODE

                           0000001F  0000  1360 V_PREG=31				; PROCESSOR REGISTER FLAG

                                     0000  1400 

                           00000000  0000  1440 RDCR=0					; READ CSR

                           00000002  0000  1480 RDBUF=2					; READ BUFFER

                           00000004  0000  1520 OUTCR=4					; OUTPUT CSR

                           00000006  0000  1560 OUTB=6					; OUTPUT BUFFER

                                     0000  1600 

                           0000005C  0000  1640 BSLSH=92				; BACK SLASH CODE

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   2

                                                                                                                                 (1)



                           0000000D  0000  1680 CR=13					; CARRIAGE RETURN

                           0000000A  0000  1720 LF=10					; LINE FEED

                           00000027  0000  1760 QUOT=39					; QUOTE

                           0000007F  0000  1800 RUBOUT=127				; RUBOUT CODE

                           0000002F  0000  1840 SLSH=47					; SLASH CODE

                                     0000  1880 

                                     0000  1920 

                                     0000  1960 

                                     0000  2000 ;

                                     0000  2040 ;	DATA AREA

                                     0000  2080 ;

                                     0000  2120 	.IF	DF,SW_PROCESS

                                 00000000  2160 	.PSECT	_DELTA,LONG

                                     0000  2200 	.IFF

                                     0000  2240 	.PSECT	Z$DEBUGXDELTA,LONG

                                     0000  2280 	.ENDC

                                     0000  2320 CONTEXT:				;

                           00000000  0000  2360 	.LONG	0			; BUFFER PADDING

                           00000034  0004  2400 INBUF:	.BLKB	48			; INPUT BUFFER

                           00000000  0034  2440 STATUS:	.LONG	0			; STATUS FLAGS

                           00000000  0038  2480 F1:	.LONG	0			; FIELDS

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

                           00000000  0040  2560 F3:	.LONG	0			;

                           00000000  0044  2600 F4:	.LONG	0			;

                           00000000  0048  2640 F5:	.LONG	0			;

                                     004C  2680 

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

                                     0050  2760 

                                 00  0050  2800 FCTR:	.BYTE	0			; FIELD COUNTER

                                     0051  2840 

                                 02  0051  2880 DTYPE:	.BYTE	2			; DATA TYPE

                                 02  0052  2920 CURTYPE:.BYTE	2			; CURRENT TYPE

                                     0053  2960 

                                 00  0053  3000 OPER:	.BYTE	0			; OPERATOR

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

                           00000000  0054  3080 CURDOT:	.LONG	0			; CURRENT LOCATION

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

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

                                     006C  3200 ;

                                     006C  3240 ;	REGISTER SAVE AREA

                                     006C  3280 ;

                                     006C  3320 SAVREG:					; REGISTER SAVE AREA

                           00000070  006C  3360 	.BLKL	1			; R0

                           00000074  0070  3400 	.BLKL	1			; R1

                           00000078  0074  3440 SAVR2:	.BLKL	1			; R2

                           0000007C  0078  3480 	.BLKL	1			; R3

                           00000080  007C  3520 	.BLKL	1			; R4

                           00000084  0080  3560 	.BLKL	1			; R5

                           00000088  0084  3600 	.BLKL	1			; R6

                           0000008C  0088  3640 	.BLKL	1			; R7

                           00000090  008C  3680 	.BLKL	1			; R8

                           00000094  0090  3720 	.BLKL	1			; R9

                           00000098  0094  3760 	.BLKL	1			; R10

                           0000009C  0098  3800 	.BLKL	1			; R11

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

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

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   3

                                                                                                                                 (1)



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

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

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

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

                                     00B4  4120 ASTEN:					; AST ENABLE SAVE LOCATION

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

                                     00B8  4200 

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

                                     00B8  4280 ;

                                     00B8  4320 ;	RESERVE SPACE FOR MULTIPLE MODE CONTEXT AREA

                                     00B8  4360 ;

                                     00B8  4400 	.IF	DF,SW_PROCESS		;

                                     00B8  4440 	.REPT	3			;

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

                                     00B8  4520 SAV...=	.

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

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

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

                                     00B8  4680 	.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  4720 	.ENDC				;

                                     02E0  4760 

                                     02E0  4800 

                                     02E0  4840 ;

                                     02E0  4880 ;	BREAK POINT DATA

                                     02E0  4920 ;

                           000002DC  02E0  4960 BRKADR=.-4	

                                     02E0  4980 	.IF	NDF,SW_PROCESS	;

                                     02E0  5000 XDELIBRK::			;

                                     02E0  5010 	.ENDC			;

                           00000B77' 02E0  5020 	.LONG	INI$BRK		; INITIAL BREAKPOINT

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

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

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

                                 01  0300  5160 	NOP				; INITIAL OPCODE

                           00000308  0301  5200 	.BLKB	7			; REMAINING OPCODES

                                     0308  5240 

                                     0308  5280 

                           00000304  0308  5320 BRKDSP=.-4

                           00000328  0308  5360 	.BLKL	8			; DISPLAY LOCATION START

                           00000324  0328  5400 BRKCOM=.-4

                           00000348  0328  5440 	.BLKL	8			; COMMAND START

                                     0348  5480 

                           00000358  0348  5520 XREGV:	.BLKL	4			; X REGISTER VECTOR

                                     0358  5560 	.IF	NDF,SW_PROCESS		;

                                     0358  5600 	.LONG	SCH$GL_CURPCB		; X4 = CURRENT PCB ADDRESS

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   4

                                                                                                                                 (1)



                                     0358  5640 	.LONG	SCH$GL_PCBVEC		; X5 = BASE OF PCB VECTOR

                                     0358  5680 	.LONG	PFN$AW_SWPVBN		; X6 = SWAP VBN

                                     0358  5720 	.LONG	PFN$AL_PTE		; X7 = PTE BACK POINTER

                                     0358  5760 	.LONG	PFN$AL_BAK		; X8 = BACKUP ADDRESS

                                     0358  5800 	.LONG	PFN$AW_REFCNT		; X9 = REFERENCE COUNT

                                     0358  5840 	.LONG	PFN$AW_FLINK		; XA = FORWARD LINK

                                     0358  5880 	.LONG	PFN$AW_BLINK		; XB = BACK LINK

                                     0358  5920 	.LONG	PFN$AB_STATE		; XC = STATE

                                     0358  5960 	.LONG	PFN$AB_TYPE		; XD = TYPE

                                     0358  6000 	.LONG	XDS$INIT		; XE;E WITH X0 = PFN

                                     0358  6040 	.LONG	XDS$INIT		; XF;E WITH R0 = PFN

                                     0358  6080 MCHKSAV:.BLKL	1			; SAVED CONTENT OF MACHINE CHECK VECTOR

                                     0358  6120 	.IFF				; FOR PROCESS VERSION

                           00000388  0358  6160 	.BLKL	12			;

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

                           00000394  0390  6240 TTCHAN:	.BLKL	1			; CHANNEL NUMBER

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

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

                                     039E  6360 DBGACTIVE:				; ACTIVE FLAGS BY ACCESS MODE

                           00000000  039E  6400 	.LONG	0			;

                                     03A2  6440 EXITBLK:				; EXIT HANDLER BLOCK

                           00000000  03A2  6480 	.LONG	0			;

                           00000CC7' 03A6  6520 	.LONG	EXIHANDLE		; EXIT HANDLER

                           00000001  03AA  6560 	.LONG	1			; ARGUMENT COUNT

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

                                     03B2  6640 EXITCODE:				;

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

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

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

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

                                     03C2  6840 TERMASKD:				; TERMINATOR MASK DESCRIPTOR

                           00000010  03C2  6880 	.LONG	16			; MASK LENGTH

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

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

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

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

                           00000000  03D6  7080 	.LONG	0			;

                                     03DA  7120 

                                     03DA  7160 	.ENDC				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   5

                PRIMARY COMMAND CHARACTER SWITCH                                                                                 (1)



                                     03DA  7240 	.SBTTL	PRIMARY COMMAND CHARACTER SWITCH

                                     03DA  7280 

                                     03DA  7320 ;

                                     03DA  7360 ;	PRIMARY CHARACTER LIST

                                     03DA  7400 ;

                                     03DA  7440 PRIMARY:				;

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

                        46 45 44 43  03E6       

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

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

                           00000012  03EC  7600 OPERBAS=.-PRIMARY			; OPERATORS

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

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

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

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

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

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

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

                                     03F3  7920 TERM:					; BASE OF TERMINATOR LIST

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

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

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

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

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

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

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

                                 53  03FA  8240 	.ASCII	/S/			; STEP

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

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

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

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

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

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

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

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

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

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

                                     0403  8680 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   6

                PRIMARY COMMAND SCANNER                                                                                          (1)



                                     0403  8760 	.SBTTL	PRIMARY COMMAND SCANNER

                                     0403  8800 

                                     0403  8840 ;

                                     0403  8880 ;	PRIMARY COMMAND SCANNER

                                     0403  8920 ;

                                     0403  8960 

                                     0403  9000 

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

                                     040B  9080 

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

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

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

                                     0412  9240 	.ENDC				;

                          13     11  0412  9280 	BRB	SCANP			; ENTER SCANP

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

                          01EF   30  0418  9360 	BSBW	OUTZSTRING		; OUTPUT ASCIZ STRING

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

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

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

                          0306   30  0424  9520 	BSBW	RESET			; RESET SCANNER

                          02     10  0427  9560 SCANP:	BSBB	NEXTP			; SCAN INPUT

                          FC     11  0429  9600 	BRB	SCANP			; SCAN IT ALL

                                     042B  9640 NEXTP:					; PROCESS NEXT PRIMARY CHAR

                          0225   30  042B  9680 	BSBW	GETCHAR			; GET CHARACTER

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

                       A7 AF         0431       

                          DF     13  0433  9760 	BEQL	ERROR			; NOT FOUND, ERROR

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

                          50         0438       

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

                                     0439  9880 		DOT,-			; DOT - CURRENT LOCATION

                                     0439  9920 		COMMA,-			; COMMA - FIELD SEPARATOR

                                     0439  9960 		OPERATOR,-		; PLUS - ADD OPERATOR

                                     0439 10000 		OPERATOR,-		; BLANK - ADD OPERATOR

                                     0439 10040 		OPERATOR,-		; @ - SHIFT OPERATOR

                                     0439 10080 		OPERATOR,-		; * - MULTIPLY OPERATOR

                                     0439 10120 		OPERATOR,-		; % - DIVIDE OPERATOR

                                     0439 10160 		NEGATE,-		; MINUS - SUBTRACT/NEGATE

                                     0439 10200 		LBRACKET,-		; LEFT BRACKET - MODE SELECT

                                     0439 10240 		TAB,-			; TAB - INDIRECT

                                     0439 10280 		LINEFEED,-		; LINE FEED - NEXT LOCATION

                                     0439 10320 		RETURN,-		; RETURN - CLOSE OPEN CELL

                                     0439 10360 		SLASH,-			; SLASH - OPEN FOR DISPLAY

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

                                     0439 10440 		EQUALS,-		; EQUALS - DISPLAY VALUE

                                     0439 10480 		ESCAP,-			; ESCAPE - PREVIOUS LOCATION

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

                                     0439 10560 		SEMI,-			; SEMI COLON - SECONDARY COMMAND

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

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

                                     0439 10680 		QUOTE,-			; QUOTE - BEGIN ASCII STRING

                                     0439 10720 		REGISTER,-		;

                                     0439 10760 		GLOBL,-			; G - GLOBAL PREFIX

                                     0439 10800 		HIGH,-			; H - P1 SPACE PREFIX

                                     0439 10840 		XREG,-			; X REGISTER

                                     0439 10880 		>			;

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   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$

                               06E4' 0461       	.WORD	PREG-30000$

                               0422' 0463       	.WORD	QUANT-30000$

                               0654' 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 10920 	CMPW	R0,#16			; IS NUMBER > RADIX

                          A0     18  0472 10960 	BGEQ	ERROR			; YES

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

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

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

                                 05  047D 11120 	RSB				; NEXT PRIMARY CHARACTER

                                     047E 11160 

                                     047E 11200 

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

                          54         0481       

                          07     11  0482 11280 	BRB	PRE1			; MERGE WITH COMMON

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

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

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

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

                                     0493 11480 ;	BRB	ENDEXPR

                                     0493 11520 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   8

                ENDEXPR - END EXPRESSION                                                                                         (1)



                                     0493 11600 	.SBTTL	ENDEXPR	- END EXPRESSION

                                     0493 11640 

                                     0493 11680 ;

                                     0493 11720 ;

                                     0493 11760 ;

                                     0493 11800 ENDEXPR:				;

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

                          03         0496       

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

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

                          56     D4  049C 11960 	CLRL	R6			; CLEAR ACCUMULATOR

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

                                 05  04A1 12040 	RSB				; AND RETURN

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

                                     04A2 12120 		ADD,-			; ADD, PLUS

                                     04A2 12160 		ADD,-			; BLANK, PLUS

                                     04A2 12200 		SHFT,-			; SHIFT, @

                                     04A2 12240 		MUL,-			; MULTIPLY, *

                                     04A2 12280 		DIV,-			; DIVIDE, %

                                     04A2 12320 		>			; 

            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 12360 SHFT:	ASHL	R6,R7,R7		; SHIFT

                          57         04B4       

                                 05  04B5 12400 	RSB				; AND EXIT

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

                                 05  04B9 12480 	RSB				; AND EXIT

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

                                 05  04BD 12560 	RSB				; AND EXIT

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

                                 05  04C1 12640 	RSB				; AND EXIT

                                     04C2 12680 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page   9

                SLASH - OPEN CELL                                                                                                (1)



                                     04C2 12760 	.SBTTL	SLASH - OPEN CELL

                                     04C2 12800 

                                     04C2 12840 ;

                                     04C2 12880 ;	OPEN SPECIFIED CELL

                                     04C2 12920 ;

                                     04C2 12960 DQUOTE:					; DISPLAY IN ASCII

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

                          03     11  04C5 13040 	BRB	OPEN			; 

                                     04C7 13080 

                                     04C7 13120 SLASH:					;

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

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

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

                          06         04CF       

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

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

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

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

            50            6A         04DD       

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

            6A            01         04E2       

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

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

                          1B         04EA       

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

                          15     15  04EF 13600 	BLEQ	RSET			; YES

                                     04F1 13640 	.IF	NDF,SW_PROCESS		;

                                     04F1 13680 	BSBB	NEXTLOC			; INCREMENT TO NEXT DOT

                                     04F1 13720 	.IFF				;

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

                                     04F4 13800 	.ENDC				;

                          F5     11  04F4 13840 	BRB	15$			; AND CONTINUE

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

                                     04F9 13920 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  10

                RETURN - CLOSE CURRENT OPEN CELL                                                                                 (1)



                                     04F9 14000 	.SBTTL	RETURN - CLOSE CURRENT OPEN CELL

                                     04F9 14040 

                                     04F9 14080 ;

                                     04F9 14120 ;	RETURN - CLOSE CURRENT OPEN CELL

                                     04F9 14160 ;

                                     04F9 14200 

                                     04F9 14240 RETURN:					;

                          18     10  04F9 14280 	BSBB	ENDFIELD		; TERMINATE CURRENT FIELD

                                     04FB 14320 	.ENABL	LSB			;

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

                          0A         04FE       

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

                          03         0502       

                          059F   30  0503 14440 	BSBW	DEPOSIT			; DEPOSIT

                          0224   31  0506 14480 RSET:	BRW	RESET			; RESET SCANNER

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

                          F9         050C       

                          0215   31  050D 14560 	BRW	EQL1			; OTHERWISE OUTPUT

                                     0510 14600 	.DSABL	LSB			;

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  11

                ENDFIELD - TERMINATE CURRENT FIELD                                                                               (1)



                                     0510 14680 	.SBTTL	ENDFIELD - TERMINATE CURRENT FIELD

                                     0510 14720 

                                     0510 14760 ;

                                     0510 14800 ;	COMMA TERMINATE CURRENT FIELD

                                     0510 14840 ;

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

                                     0513 14920 

                                     0513 14960 ;

                                     0513 15000 ;	TERMINATE CURRENT FIELD

                                     0513 15040 ;

                                     0513 15080 ENDFIELD:				;

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

                          16         0516       

                          FF79   30  0517 15160 	BSBW	ENDEXPR			; END EXPRESSION

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

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

                          D3         0522       

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

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

                          56     7C  052B 15360 	CLRQ	R6			; CLEAR ACCUMULATORS

                                 05  052D 15400 10$:	RSB				; RETURN

                                     052E 15440 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  12

                FETCH - OBTAIN DATA SPECIFIED                                                                                    (1)



                                     052E 15520 	.SBTTL	FETCH - OBTAIN DATA SPECIFIED

                                     052E 15560 

                                     052E 15600 ;

                                     052E 15640 ;	FETCH SPECIFIED DATA

                                     052E 15680 ;

                                     052E 15720 FETCH:					;

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

                          1D         0531       

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

                                     0532 15840 		10$,-			; BYTE

                                     0532 15880 		20$,-			; WORD

                                     0532 15920 		30$,-			; LONG

                                     0532 15960 		>			;

            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 16000 10$:	MOVZBL	@CURDOT-B(R11),QUAN-B(R11)	; GET BYTE

                                 05  0542 16040 	RSB				; RETURN

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

                                 05  0548 16120 	RSB				; RETURN

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

                                 05  054E 16200 	RSB				; RETURN

                                     054F 16240 	.IF	NDF,SW_PROCESS		;

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

                                     054F 16320 	.IFF				; FALSE IF PROCESS VERSION

                                     054F 16360 40$:					;

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

                          6C     DF  054F       		PUSHAL	(AP)

                       5C'AF     DF  0551       		PUSHAL	B^FTCHPREG

   00000000'GF            02     FB  0554       		CALLS	#2,G^SYS$CMKRNL

                                     055B 16440 	.ENDC

                                 05  055B 16480 	RSB				; RETURN

                                     055C 16520 

                                     055C 16560 	.IF	DF,SW_PROCESS		;

                                     055C 16600 FTCHPREG:				;

                               0000  055C 16640 	.WORD	0			; ENTRY MASK

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

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

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

                                 04  056A 16800 	RET				;

                                     056B 16840 

                                     056B 16880 	.ENDC				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  13

                NEXTDOT - INCREMENT CURRENT LOCATION                                                                             (1)



                                     056B 16960 	.SBTTL	NEXTDOT - INCREMENT CURRENT LOCATION

                                     056B 17000 

                                     056B 17040 ;

                                     056B 17080 ;	INCREMENT TO NEXT LOCATION

                                     056B 17120 ;

                                     056B 17160 NEXTDOT:				;

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

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

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

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

                          51         0576       

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

                                 05  057A 17400 	RSB				; RETURN

                                     057B 17440 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  14

                OUTPUT - DISPLAY CONTENT                                                                                         (1)



                                     057B 17520 	.SBTTL	OUTPUT - DISPLAY CONTENT

                                     057B 17560 ;

                                     057B 17600 ;	OUTPUT CONTENT

                                     057B 17640 ;

                                     057B 17680 OUTBB:	

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

                                     057E 17760 	.SBTTL	LINE FEED - DISPLAY NEXT

                                     057E 17800 ;

                                     057E 17840 ;

                                     057E 17880 ;

                                     057E 17920 LINEFEED:				;

                          FF78   30  057E 17960 	BSBW	RETURN			; CLOSE OPEN CELL

                                     0581 18000 NEXTLOC:				; PROMPT WITH NEXT LOCATION

                          E8     10  0581 18040 	BSBB	NEXTDOT			; INCREMENT LOCATION

                                     0583 18080 LOCPROMPT:				; DISPLAY ADDR/CONTENT

                          2B     10  0583 18120 	BSBB	OUTPUTA			; OUTPUT ADDRESS

                          A7     10  0585 18160 LOCOUT:	BSBB	FETCH			; FETCH CONTENT

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

                                     058A 18240 

                                     058A 18280 OUTPUT:					;

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

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

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

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

                          04         059A       

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

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

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

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

                          52         05A6       

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

                          59     10  05AB 18680 	BSBB	OUTZBUF			; OUTBUT ASCIIZ BUFFER

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

                                     05B0 18760 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  15

                OUTPUTA - OUTPUT ADDRESS                                                                                         (1)



                                     05B0 18840 	.SBTTL	OUTPUTA - OUTPUT ADDRESS

                                     05B0 18880 ;

                                     05B0 18920 ;	OUTPUT ADDRESS

                                     05B0 18960 ;

                                     05B0 19000 OUTPUTA:				; OUTPUT ADDRESS

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

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

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

                          53         05BA       

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

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

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

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

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

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

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

                          13     11  05CD 19440 	BRB	10$			;

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

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

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

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

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

                          3E     10  05DD 19680 	BSBB	OUTCHAR			; OUTPUT P

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

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

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

                          34     11  05E7 19840 	BRB	OUTCHAR			; RETURN THROUGH OUTCHAR

                                     05E9 19880 OUTDIGIT:				; OUTPUT ONE DIGIT

                          52     D4  05E9 19920 	CLRL	R2			; ZAP DIGIT SELECTOR

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

                                     05ED 20000 

                                     05ED 20040 OUTLONG:				; OUTPUT LONGWORD

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

                                     05F0 20120 OUTCOM:					; FORMAT IT

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

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

            51            53         05F7       

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

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

                          F0     18  0602 20320 	BGEQ	10$			; DO ALL REQUESTED

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

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

                                     060A 20440 

                                     060A 20480 OUTZSTRING:				; OUTPUT ASCIZ STRING

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

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

                          0C     10  060F 20600 	BSBB	OUTCHAR			; OUTPUT CHAR

                          F7     11  0611 20640 	BRB	OUTZSTRING		; CONTINUE

                                 05  0613 20680 10$:	RSB				; RETURN IF DONE

                                     0614 20720 

                                     0614 20760 

                                     0614 20800 OUTBSLSH:				; OUTPUT BACK SLASH

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

                          03     11  0618 20880 	BRB	OUTCHAR			; AND OUTPUT IT

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

                                     061D 20960 OUTCHAR:				; OUTPUT CHAR IN R0

                                     061D 21000 	.IF	NDF,SW_PROCESS		;

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  16

                OUTPUTA - OUTPUT ADDRESS                                                                                         (1)



                                     061D 21040 	TSTL	AP			; CHECK FOR CONSOLE

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

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

                                     061D 21160 	BRB	20$			; MERGE WITH COMMON CODE

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

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

                                     061D 21280 	TSTL	AP			; CHECK FOR CONSOLE

                                     061D 21320 	BNEQ	30$			; YES

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

                                     061D 21400 	RSB				; RETURN

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

                                     061D 21480 	.IFF				; FALSE FOR PROCESS VERSION

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

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

                                     0622 21600 	$QIO_S	EFN=#30,-		;

                                     0622 21640 		CHAN=TTCHAN,-		; 

                                     0622 21680 		FUNC=#IO$_WRITEVBLK,-	;

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

                                     0622 21760 		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'GF            0C     FB  063A       		CALLS	#12,G^SYS$QIO

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

                                     0643 21840 	.ENDC				;

                                 05  0643 21880 	RSB				; AND RETURN

                                     0644 21920 OUTSPACE:				;

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

                          D4     11  0647 22000 	BRB	OUTCHAR			; AND SEND IT

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

                          CF     10  064C 22080 	BSBB	OUTCHAR			; SEND IT

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

                          CA     11  0651 22160 	BRB	OUTCHAR			; SEND IT

                                     0653 22200 

                                     0653 22240 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  17

                GETCHAR - GET INPUT CHARACTER ROUTINE                                                                            (1)



                                     0653 22320 	.SBTTL	GETCHAR - GET INPUT CHARACTER ROUTINE

                                     0653 22360 

                                     0653 22400 ;

                                     0653 22440 ;	GETCHAR - GET INPUT CHARACTER

                                     0653 22480 ;

                                     0653 22520 ; OUTPUT:

                                     0653 22560 ;	R8 - INPUT CHARACTER

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

                                     0653 22640 ;

                                     0653 22680 

                                     0653 22720 GETCHAR:				;

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

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

                                 05  0658 22840 	RSB

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

                                     065D 22920 	.IF	NDF,SW_PROCESS		;

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

                                     065D 23000 	BEQL	30$			; YES

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

                                     065D 23080 	BRB	40$			; CHECK STATUS

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

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

                                     065D 23200 	TSTL	AP			; CHECK FOR CONSOLE

                                     065D 23240 	BEQL	50$			; YES

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

                                     065D 23320 	BRB	60$			; MERGE WITH COMMON

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

                                     065D 23400 	.IFF				; FALSE IF PROCESS VERSION

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

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

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

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

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

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

                                     065D 23680 	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'GF            0C     FB  0681       		CALLS	#12,G^SYS$QIOW

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

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

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

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

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

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

                                     069E 23960 	.ENDC				;

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

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

                          15     12  06A6 24080 	BNEQ	90$			; NO

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  18

                GETCHAR - GET INPUT CHARACTER ROUTINE                                                                            (1)



                          03         06AB       

                          FF65   30  06AC 24160 	BSBW	OUTBSLSH		; OUTPUT BACK SLASH

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

                          04     12  06B2 24240 	BNEQ	80$			; SKIP INC

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

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

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

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

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

                          03         06C0       

                          FF50   30  06C1 24480 	BSBW	OUTBSLSH		; OUTPUT BACK SLASH

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

                          03         06C7       

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

                                     06CB 24600 110$:					;

                                     06CB 24640 	.IF	NDF,SW_PROCESS		;

                                     06CB 24680 	BSBW	OUTR8			; ECHO CHARACTER

                                     06CB 24720 	.ENDC				;

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

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

                     FD1F CF         06D1       

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

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

                          03     12  06D9 24920 	BNEQ	120$			; NO,

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

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

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

                          FF6C   31  06E4 25080 	BRW	GETCHAR			; AND TRY AGAIN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  19

                PLUS/MINUS OPERATORS                                                                                             (1)



                                     06E7 25160 	.SBTTL	PLUS/MINUS OPERATORS

                                     06E7 25200 ;

                                     06E7 25240 ;	PLUS/MINUS OPERATORS

                                     06E7 25280 ;

                                     06E7 25320 BLANK:					; SAME AS PLUS

                                     06E7 25360 OPERATOR:				; 

                          FDA9   30  06E7 25400 	BSBW	ENDEXPR			; END EXPR

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

                       FF AB         06ED       

                                 05  06EF 25480 	RSB				; RETURN

                                     06F0 25520 ;

                                     06F0 25560 ;	MONADIC MINUS - NEGATE

                                     06F0 25600 ;

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

                          03     13  06F2 25680 	BEQL	5$			; EMPTY

                          FD9C   30  06F4 25720 	BSBW	ENDEXPR			; OTHERWISE PERFORM OPERATION

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

                                 05  06FB 25800 10$:	RSB				; AND RETURN

                                     06FC 25840 

                                     06FC 25880 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  20

                TAB - INDIRECT DISPLAY                                                                                           (1)



                                     06FC 25960 	.SBTTL	TAB - INDIRECT DISPLAY

                                     06FC 26000 ;

                                     06FC 26040 ;	TAB

                                     06FC 26080 ;

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

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

            50            6A         0703       

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

            6A            01         0708       

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

                                     070C 26280 

                                     070C 26320 ;

                                     070C 26360 ;	ESCAPE - DISPLAY PREVIOUS LOCATION

                                     070C 26400 ;

                                     070C 26440 

                                     070C 26480 ESCAP:					;

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

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

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

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

                          51         0717       

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

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  21

                EQUALS - DISPLAY VALUE                                                                                           (1)



                                     071E 26800 	.SBTTL	EQUALS - DISPLAY VALUE

                                     071E 26840 ;

                                     071E 26880 ;	EQUALS - VALUE DISPLAY

                                     071E 26920 ;

                                     071E 26960 EQUALS:					;

                                     071E 27000 	.ENABL	LSB			;

                          FDF2   30  071E 27040 	BSBW	ENDFIELD		; TERMINATE FIELD

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

                          05         0724       

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

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

                                     072D 27200 ;	BRB	RESET			; RESET SCANNER

                                     072D 27240 	.DSABL	LSB			;

                                     072D 27280 

                                     072D 27320 ;

                                     072D 27360 ;	RESET

                                     072D 27400 ;

                                     072D 27440 

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

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

                          56     7C  0737 27560 	CLRQ	R6			; RESET ACCUMULATORS

                                 05  0739 27600 	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  22

                SEMI - SECONDARY COMMAND SET                                                                                     (1)



                                     073A 27680 	.SBTTL	SEMI - SECONDARY COMMAND SET

                                     073A 27720 ;

                                     073A 27760 ;	SEMI

                                     073A 27800 ;

                                     073A 27840 

                                     073A 27880 SECOND:					;

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

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

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

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

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

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

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

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

                                     0741 28240 

                                     0741 28280 SEMI:					;

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

                          FDCC   30  0744 28360 	BSBW	ENDFIELD		; TERMINATE FIELD

                          FF09   30  0747 28400 	BSBW	GETCHAR			; GET SECONDARY COMMAND CHAR

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

                       EB AF         074D       

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

                                     074F 28520 		BRKPOINT,-		; SET BREAKPOINT

                                     074F 28560 		EXECUTE,-		; EXECUTE STRING

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

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

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

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

                                     074F 28760 		XSET,-			; SET XREGISTER

                                     074F 28800 		>			;

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

                          06'        0752       

                                     0753       30006$:

                               003A' 0753       	.WORD	BRKPOINT-30006$

                               03C0' 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 28840 ERR2:	BRW	ERROR			; ERROR

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  23

                LEFT BRACKET - MODE SELECTION                                                                                    (1)



                                     0764 28920 	.SBTTL	LEFT BRACKET - MODE SELECTION

                                     0764 28960 ;

                                     0764 29000 ;

                                     0764 29040 ;	LEFT BRACKET

                                     0764 29080 ;

                                     0764 29120 MODES:					; MODE CHARACTER LIST

                                 43  0764 29160 	.ASCII	/C/			; CHARACTER

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

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

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

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

                                     0768 29360 

                                     0768 29400 

                                     0768 29440 LBRACKET:				; MODE SELECTION

                          FEE8   30  0768 29480 	BSBW	GETCHAR			; GET MODE CHAR

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

                       F4 AF         076E       

                          EF     13  0770 29560 	BEQL	ERR2			; NOT FOUND, ERROR

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

                          09         0775       

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

                       FE AB         0779       

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

                                 05  077E 29720 	RSB				; RETURN

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

                                 05  0782 29800 	RSB

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  24

                SINGLE STEP                                                                                                      (1)



                                     0783 29880 	.SBTTL	SINGLE STEP

                                     0783 29920 ;

                                     0783 29960 ;	STEP

                                     0783 30000 ;

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

            6A            02         0786       

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

                          00         078B       

                                 04  078C 30120 20$:	RET				; AND RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  25

                BRKPOINT - SET/CLEAR BREAKPOINTS                                                                                 (1)



                                     078D 30200 	.SBTTL	BRKPOINT - SET/CLEAR BREAKPOINTS

                                     078D 30240 ;

                                     078D 30280 ;	BRKPOINT

                                     078D 30320 ;

                                     078D 30360 BRKPOINT:				; 

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

                          6F         0790       

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

                          12         0794       

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

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

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

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

            FFF3          52         07A2       

                          BA     11  07A5 30640 	BRB	ERR2			; ERROR

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

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

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

                          AF     19  07B0 30800 	BLSS	ERR2			; OUT OF RANGE

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

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

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

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

                                     07C2 31000 	.IF	DF,SW_PROCESS		;

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

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

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

                          059F   30  07CC 31160 	BSBW	SETWRT			; SET PAGE WRITABLE

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

                                     07D2 31240 	.ENDC				;

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

                                     07D5 31320 	.IF	DF,SW_PROCESS		;

                          05CC   30  07D5 31360 	BSBW	REPROT			; RESTORE PROTECTION

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

                                     07DC 31440 	.ENDC				;

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

                          0C         07DF       

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

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

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

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

                          07         07EF       

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

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

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

                                     0800 31800 ;

                                     0800 31840 ;	SHOBRK

                                     0800 31880 ;

                                     0800 31920 SHOBRK:					;

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

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

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

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

                          FE38   30  080E 32120 	BSBW	CRLF			; NEW LINE

                          FDD5   30  0811 32160 	BSBW	OUTDIGIT		; BPT NUMBER

                          FE2D   30  0814 32200 	BSBW	OUTSPACE		; SPACE

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  26

                BRKPOINT - SET/CLEAR BREAKPOINTS                                                                                 (1)



                          FDD0   30  081A 32280 	BSBW	OUTLONG			; OUTPUT ADDRESS

                          FE24   30  081D 32320 	BSBW	OUTSPACE		; SPACE OVER

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

                          03     13  0826 32400 	BEQL	15$			; NONE

                          FDC2   30  0828 32440 	BSBW	OUTLONG			; OUTPUT DISPLAY START

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

                          06     13  0831 32520 	BEQL	20$			; NONE

                          FE0E   30  0833 32560 	BSBW	OUTSPACE		; SPACE ANOTHER

                          FDB4   30  0836 32600 	BSBW	OUTLONG			; AND OUTPUT A LONGWORD

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

            FFC4          55         083C       

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  27

                GO - START EXECUTION AT SPECIFIED LOCATION                                                                       (1)



                                     0842 32760 	.SBTTL	GO - START EXECUTION AT SPECIFIED LOCATION

                                     0842 32800 ;

                                     0842 32840 ;	GO

                                     0842 32880 ;

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

                          05         0845       

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

                                     084B 33000 ;	BRW	PROCED			; FALL INTO PROCEED

                                     084B 33040 ;

                                     084B 33080 ;	PROCEED

                                     084B 33120 ;

                                     084B 33160 PROCED:					;

                                 04  084B 33200 	RET				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  28

                SEMI-I, PC VALUE                                                                                                 (1)



                                     084C 33280 	.SBTTL	SEMI-I, PC VALUE

                                     084C 33320 ;

                                     084C 33360 ;	SEMI-I

                                     084C 33400 ;

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

                          17     11  0850 33480 	BRB	VALUE			; SET/GET VALUE

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

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

                          18         0858       

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

                          14         085C       

                          12     11  085D 33640 	BRB	VALR			; READ VALUE

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

                          0C     11  0863 33720 	BRB	VALR			; READ VALUE

                                     0865 33760 PROGCTR:				;

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

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

                          04         086C       

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

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

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

                                     0877 34000 REGISTER:				;

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

                          02     10  087B 34080 	BSBB	REGCOM			; FETCH ADDRESS

                          F5     11  087D 34120 	BRB	VALI			; AND USE IT

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

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

                     FB52 CF         0885       

                                     0888 34240 	.IF	DF,SW_PROCESS		; FOR PROCESS VERSION

                          13     12  0888 34280 	BNEQ	10$			; LEGAL HEX DIGIT

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

                          32     12  0890 34360 	BNEQ	ERR3			; NO, ERROR

                                     0892 34400 	$EXIT_S	EXITCODE		; YES EXIT

                     FB1C CF     DD  0892       		PUSHL	EXITCODE

   00000000'GF            01     FB  0896       		CALLS	#1,G^SYS$EXIT

                                     089D 34440 	.IFF				;

                                     089D 34480 	BEQL	ERR3			; ERROR, NOT HEX

                                     089D 34520 	.ENDC				;

                                     089D 34560 10$:					;

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

                          50         08A0       

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

                                 05  08A5 34680 	RSB				; RETURN

                                     08A6 34720 

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

                          1A         08A9       

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

            51         E8 AB         08AD       

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

                          B1     11  08B6 34880 	BRB	VALUE			; PROCESS VALUE

                                     08B8 34920 XREG:					; X-REGISTER VALUE

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

                          C0     10  08BD 35000 	BSBB	REGCOM			; ADDRESS TO R6

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

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

                                     08C4 35120 	.ALIGN	LONG			; LONGWORD ALIGN EXCEPTION ROUTINES

                                     08C4 35160 XDELACV:				; ACCESS VIOLATION HANDLER

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  29

                SEMI-I, PC VALUE                                                                                                 (1)



                                     08C4 35200 MCHK:					; MACHINE CHECK

                                     08C4 35240 	.IF	NDF,SW_PROCESS		;

                                     08C4 35280 	TSTL	AP			; CHECK FOR SIMULATOR

                                     08C4 35320 	BNEQ	10$			; YES, SKIP RESET

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

                                     08C4 35400 	.ENDC				;

                                     08C4 35440 10$:					;

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

                                     08C7 35520 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  30

                REGISTER SAVE AND RESTORE                                                                                        (1)



                                     08C7 35600 	.SBTTL	REGISTER SAVE AND RESTORE

                                     08C7 35640 

                                     08C7 35680 ;

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

                                     08C7 35760 ;

                                     08C7 35800 SAVE:					;

                                     08C7 35840 	.IF	NDF,SW_PROCESS		;

                                     08C7 35880 	SETIPL	#31			; DISABLE

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

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

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

                                     08C7 36040 	.IFF				; FALSE IF PROCESS VERSION

                                     08C7 36080 	$SETAST_S	#0		; DISABLE ASTS

                          00     DD  08C7       		PUSHL	#0

   00000000'GF            01     FB  08C9       		CALLS	#1,G^SYS$SETAST

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

                          51     DC  08D2 36160 	MOVPSL	R1			; GET CURRENT PSL

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

            51            51         08D7       

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

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

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

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

                                     08EC 36400 	.ENDC				;

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

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

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

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

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

                                     08FB 36640 	.IF	NDF,SW_PROCESS		;

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

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

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

                                     08FB 36800 	.IFF				;

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

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

                          50         0903       

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

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

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

                                     0910 37040 	.ENDC				;

                                     0910 37080 	.IF	NDF,SW_PROCESS		;

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

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

                                     0910 37320 	CLRL	AP			; ZAP DEVICE ADDRESS BASE

                                     0910 37360 	.ENDC				;

                                     0910 37400 	.IF	NDF,SW_PROCESS		;

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

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

                                     0910 37880 	.ENDC				;

                                     0910 37920 	.IF	NDF,SW_PROCESS		;

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

                                     0910 38000 	.IFF				; FALSE FOR PROCESS VERSION

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

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

                                     0919 38120 	.ENDC				;

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  31

                REGISTER SAVE AND RESTORE                                                                                        (1)



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

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

                                     0923 38280 	.IF	NDF,SW_PROCESS		;

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

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

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

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

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

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

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

                                     0923 38600 	BEQL	30$			; CORRECT ALREADY IF KERNEL

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

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

                                     0923 38720 	.ENDC				;

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

                                     0926 38800 

                                     0926 38840 ;

                                     0926 38880 ;	RESTORE - RESTORE TARGET REGISTERS

                                     0926 38920 ;

                                     0926 38960 RESTORE:				; RESTORE EVERYTHING

                                     0926 39000 	.IF	NDF,SW_PROCESS		;

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

                                     0926 39080 	.IFF				; FALSE IF PROCESS

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

                          50         092A       

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

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

                                     0934 39240 	.ENDC				;

                                     0934 39280 RESTORR:				; RESTORE REGISTERS ONLY

                                     0934 39320 	.IF	NDF,SW_PROCESS		;

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

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

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

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

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

                                     0934 39560 	TSTW	AP			; CHECK FOR CONSOLE

                                     0934 39600 	BNEQ	10$			; NO, OTHER DEVICE

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

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

                                     0934 39720 	BRB	20$			; MERGE WITH COMMON CODE

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

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

                                     0934 39840 	.IFF				;

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

                                     0937 39920 	.ENDC				;

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

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

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

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

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

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

                                     094A 40200 	.IF	NDF,SW_PROCESS		;

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

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

                                     094A 40320 	.IFF				; FALSE IF PROCESS VERSION

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

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  32

                REGISTER SAVE AND RESTORE                                                                                        (1)



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

                          51     DC  0957 40480 	MOVPSL	R1			; GET CURRENT PSL

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

            51            51         095C       

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

                          00         0963       

                                     0964 40600 30$:					;

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

                          09     13  0966 40680 	BEQL	35$			; NO

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

                          01     DD  0968       		PUSHL	#1

   00000000'GF            01     FB  096A       		CALLS	#1,G^SYS$SETAST

                                     0971 40760 35$:					;

                                     0971 40800 	.ENDC				;

                                     0971 40840 	.IF	NDF,SW_PROCESS		;

                                     0971 40880 	JSB	INI$RDONLY		; REPROTECT THE SYSTEM CODE

                                     0971 40920 	.ENDC				;

                                 05  0971 40960 	RSB				; AND RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  33

                BPT TRAP HANDLER                                                                                                 (1)



                                     0972 41040 	.SBTTL	BPT TRAP HANDLER

                                     0972 41080 ;

                                     0972 41120 ;	HANDLE BREAKPOINT TRAPS

                                     0972 41160 ;

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

                                     097B 41240 	.ALIGN	LONG			; LONGWORD ALIGNMENT

                                     097C 41280 	.IF	NDF,SW_PROCESS		; EXEC VERSION

                                     097C 41320 XDELBPT::				; XDELTA BPT ENTRY

                                     097C 41360 	.IFF				;

                                     097C 41400 XDELBPT:				; DELTA BPT ENTRY

                                     097C 41440 	.ENDC				;

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

                          00FF   30  097F 41520 	BSBW	GETBPTX			; GET INDEX OF BPT

                          53     D5  0982 41560 	TSTL	R3			; CHECK FOR MATCH

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

                          AC     10  0986 41640 	BSBB	RESTORR			; RESTORE REGISTERS ONLY

                                     0988 41680 	.IF	NDF,SW_PROCESS		;

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

                                     0988 41760 	ENBINT				; ENABLE

                                     0988 41800 	JMP	EXE$BREAK		; AND HANDLE NORMALLY

                                     0988 41840 	.IFF				; FALSE IF PROCESS VERSION

                                     0988 41880 ;

                                     0988 41920 ;	***** UNEXPECTED BREAKPOINT *****

                          50     D4  0988 41960 	CLRL	R0			; RETURN FALSE

                                 04  098A 42000 	RET				;

                                     098B 42040 	.ENDC				;

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

                                     098E 42120 30$:					;

                          0092   30  098E 42160 	BSBW	UNBRK			; RESTORE OPCODES

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

                          38         0995       

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

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

                          FC4A   30  099C 42320 	BSBW	OUTDIGIT		; OUTPUT BPT NUMBER

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

                          FC64   30  09A3 42400 	BSBW	OUTZSTRING		; OUTPUT ASCIIZ

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

                          FC40   30  09AA 42480 	BSBW	OUTLONG			; OUTPUT HEX LONGWORD

                          FC94   30  09AD 42520 	BSBW	OUTSPACE		; SEND SPACE

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

                          06     13  09B6 42600 	BEQL	40$			; NONE

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

                          FBC5   30  09BB 42680 	BSBW	LOCPROMPT		; AND DISPLAY

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

                          03     13  09C4 42760 	BEQL	GETCMD			; NONE GET COMMAND

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

                                     09C9 42840 GETCMD:					; GET COMMANDS

                                     09C9 42880 

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

                                     09CE 42960 PROCEED:				; PROCEED

                          7B     10  09CE 43000 	BSBB	SETBRK			; SET BREAKPOINTS

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

                          1E         09D3       

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

                          00         09D8       

                                     09D9 43120 40$:					;

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

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  34

                BPT TRAP HANDLER                                                                                                 (1)



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

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

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

            50         58 AB         09E2       

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

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

                                     09EE 43400 	.ENDC				;

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

                          00         09F1       

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

                                     09F5 43520 	.IF	NDF,SW_PROCESS		;

                                     09F5 43560 	REI				; AND RETURN

                                     09F5 43600 	.IFF				; FALSE IF PROCESS VERSION

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

                                 04  09F8 43680 	RET				;

                                     09F9 43720 	.ENDC				;

                                     09F9 43760 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  35

                TBIT EXCEPTION HANDLER                                                                                           (1)



                                     09F9 43840 	.SBTTL	TBIT EXCEPTION HANDLER

                                     09F9 43880 ;

                                     09F9 43920 ;	HANDLER FOR TBIT EXCEPTION

                                     09F9 43960 ;

                                     09F9 44000 	.ALIGN	LONG			; LONGWORD ALIGNED

                                     09FC 44040 	.IF	NDF,SW_PROCESS		;

                                     09FC 44080 XDELTBIT::				; XDELTA TBIT HANDLER

                                     09FC 44120 	.IFF				;

                                     09FC 44160 XDELTBIT:				;

                                     09FC 44200 	.ENDC				;

                          FEC8   30  09FC 44240 	BSBW	SAVE			; SAVE AND DISABLE

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

                          06         0A02       

                          FF2E   30  0A03 44320 	BSBW	RESTORR			; RESTORE REGISTERS

                                     0A06 44360 	.IF	NDF,SW_PROCESS		;

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

                                     0A06 44440 	ENBINT				; ENABLE

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

                                     0A06 44520 	.IFF				; FALSE IF PROCESS VERSION

                          50     D4  0A06 44560 	CLRL	R0			; RESIGNAL

                                 04  0A08 44600 	RET				; UNEXPECTED TBIT EXCEPTION

                                     0A09 44640 	.ENDC				;

                                     0A09 44680 XDELDBG:				; COMMON WITH DEBUG EXCEPTION

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

                          14     10  0A0D 44760 	BSBB	UNBRK			; REPLACE OPCODES

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

                          BB         0A12       

                                     0A13 44840 ;

                                     0A13 44880 ;	OUTPUT STEP MESSAGE

                                     0A13 44920 ;

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

                                     0A17 44980 	IFNORD	#4,@CURDOT-B(R11),GETCMD	; SKIP DISPLAY IF NOT READABLE

            04            00     0C  0A17       		PROBER	#0,#4,@CURDOT-B(R11)

                       00 BB         0A1A       

                          AB     13  0A1C       		BEQL	GETCMD

                          FB62   30  0A1E 45000 	BSBW	LOCPROMPT		; PROMPT WITH ADDRESS/CONTENT

                          A6     11  0A21 45040 	BRB	GETCMD			; GO GET COMMANDS

                                     0A23 45080 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  36

                UNBRK - RESTORE OPCODES FOR BREAKPOINTS                                                                          (1)



                                     0A23 45160 	.SBTTL	UNBRK - RESTORE OPCODES FOR BREAKPOINTS

                                     0A23 45200 ;

                                     0A23 45240 ;	UNBRK

                                     0A23 45280 ;

                                     0A23 45320 UNBRK:					;

            51            08     D0  0A23 45360 	MOVL	#NBRK,R1		; INIT LOOP

            50       F8B1 CF41   D0  0A26 45400 10$:	MOVL	BRKADR[R1],R0		; GET BREAKPOINT ADDRESS

                          19     13  0A2C 45440 	BEQL	20$			; SKIP IF NOT ENABLED

                                     0A2E 45480 	.IF	DF,SW_PROCESS		;

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

            54            50     D0  0A30 45560 	MOVL	R0,R4			; FORM INADR RANGE FOR SET PROTECTION

            55            50     D0  0A33 45600 	MOVL	R0,R5			;

                          0335   30  0A36 45640 	BSBW	SETWRT			; SET PAGE WRITABLE

            50            6E     7D  0A39 45680 	MOVQ	(SP),R0			; RESTORE R0,R1

                                     0A3C 45720 	.ENDC				;

            60       F8BE CF41   90  0A3C 45760 	MOVB	BRKOP[R1],(R0)		; RESTORE OPCODE

                                     0A42 45800 	.IF	DF,SW_PROCESS		;

                          035F   30  0A42 45840 	BSBW	REPROT			; RESTORE PROTECTION

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

                                     0A47 45920 	.ENDC				;

            DC            51     F5  0A47 45960 20$:	SOBGTR	R1,10$			; DO THEM ALL

                                 05  0A4A 46000 	RSB				; AND RETURN

                                     0A4B 46040 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  37

                SETBRK - SET BREAK POINT INSTRUCTIONS                                                                            (1)



                                     0A4B 46120 	.SBTTL	SETBRK - SET BREAK POINT INSTRUCTIONS

                                     0A4B 46160 ;

                                     0A4B 46200 ;	SETBRK

                                     0A4B 46240 ;

            51            08     D0  0A4B 46280 SETBRK:	MOVL	#NBRK,R1		; INIT LOOP

            50       F889 CF41   D0  0A4E 46320 10$:	MOVL	BRKADR[R1],R0		; GET ADDRESS

                          27     13  0A54 46360 	BEQL	20$			; SKIP IF NOT ENABLED

       F8A3 CF41          60     90  0A56 46400 	MOVB	(R0),BRKOP[R1]		; SAVE OPCODE

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

                          06     13  0A5F 46480 	BEQL	15$			; NO TRACE, SET ANYWAY

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

                          16     13  0A65 46560 	BEQL	20$			; YES, DONT SET IT

                                     0A67 46600 15$:					;

                                     0A67 46640 	.IF	DF,SW_PROCESS		;

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

            54            50     D0  0A69 46720 	MOVL	R0,R4			; SET START ADDRESS OF RANGE

            55            50     D0  0A6C 46760 	MOVL	R0,R5			; AND END ADDRESS

                          02FC   30  0A6F 46800 	BSBW	SETWRT			;SET PAGE WRITABLE

            50            6E     D0  0A72 46840 	MOVL	(SP),R0			; RESTORE BPT ADDRESS

                                     0A75 46880 	.ENDC				;

            60            03     90  0A75 46920 	MOVB	#3,(R0)			; SET BREAKPOINT OPCODE

                                     0A78 46960 	.IF	DF,SW_PROCESS		;

                          0329   30  0A78 47000 	BSBW	REPROT			; RESTORE ORIGINAL PROTECTION VALUE

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

                                     0A7D 47080 	.ENDC				;

            CE            51     F5  0A7D 47120 20$:	SOBGTR	R1,10$			; DO THEM ALL

                                 05  0A80 47160 	RSB				; AND RETURN

                                     0A81 47200 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  38

                GETBPTX - GET INDEX FOR BREAKPOINT                                                                               (1)



                                     0A81 47280 	.SBTTL	GETBPTX - GET INDEX FOR BREAKPOINT

                                     0A81 47320 ;

                                     0A81 47360 ;	GETBPTX

                                     0A81 47400 ;

                                     0A81 47440 GETBPTX:				;

            53            08     D0  0A81 47480 	MOVL	#NBRK,R3		; INIT LOOP

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

                          03     13  0A8B 47560 	BEQL	20$			; YES

            F4            53     F5  0A8D 47600 	SOBGTR	R3,10$			; NO, CONTINUE

                                 05  0A90 47640 20$:	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  39

                QUOTE - INPUT CHARACTER STRING                                                                                   (1)



                                     0A91 47720 	.SBTTL	QUOTE - INPUT CHARACTER STRING

                                     0A91 47760 ;

                                     0A91 47800 ;	QUOTE - START CHARACTER STRING INPUT

                                     0A91 47840 ;

                                     0A91 47880 QUOTE:					;

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

                          FBBC   30  0A94 47960 5$:	BSBW	GETCHAR			; GET CHARACTER

            58            27     91  0A97 48000 	CMPB	#QUOT,R8		; CHECK FOR QUOTE

                          05     13  0A9A 48040 	BEQL	10$			; YES, END OF STRING

            85            58     90  0A9C 48080 	MOVB	R8,(R5)+		; INSERT IN BUFFER

                          F3     11  0A9F 48120 	BRB	5$			; AND CONTINUE

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

                                 05  0AA4 48200 	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  40

                DEPOSIT                                                                                                          (1)



                                     0AA5 48280 	.SBTTL	DEPOSIT

                                     0AA5 48320 ;

                                     0AA5 48360 ;	DEPOSIT DATA

                                     0AA5 48400 ;

                                     0AA5 48440 DEPOSIT:				;

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

                          3A         0AA8       

                                     0AA9 48520 	.IF	DF,SW_PROCESS		;

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

                                     0AAC 48600 	.ENDC				;

                                     0AAC 48640 	CASE	CURTYPE-B(R11),TYPE=B,<-	; SWITCH ON TYPE

                                     0AAC 48680 		10$,-			; BYTE

                                     0AAC 48720 		20$,-			; WORD

                                     0AAC 48760 		30$,-			; LONG

                                     0AAC 48800 		>			;

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

                          02'        0AB0       

                                     0AB1       30008$:

                               0006' 0AB1       	.WORD	10$-30008$

                               0014' 0AB3       	.WORD	20$-30008$

                               0023' 0AB5       	.WORD	30$-30008$

                                     0AB7       30009$:

                                     0AB7 48840 	.IF	NDF,SW_PROCESS		;

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

                                     0AB7 48920 	RSB				; RETURN

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

                                     0AB7 49000 	RSB				; RETURN

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

                                     0AB7 49080 	RSB				; RETURN

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

                                     0AB7 49160 	RSB

                                     0AB7 49200 	.IFF				; FALSE IF PROCESS VERSION

                                     0AB7 49240 10$:					; BYTE DEPOSIT

            55            54     D0  0AB7 49280 	MOVL	R4,R5			; START AND END ADDRESSES EQUAL

                          02B1   30  0ABA 49320 	BSBW	SETWRT			; SET WRITABLE, OLD PROT TO R2

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

                          02E0   30  0AC1 49400 	BSBW	REPROT			; RESTORE PROTECTION

                                 05  0AC4 49440 	RSB				;

                                     0AC5 49480 

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

                          55         0AC8       

                          02A2   30  0AC9 49560 	BSBW	SETWRT			; SET WRITABLE

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

                          02D1   30  0AD0 49640 	BSBW	REPROT			; RESTORE PROTECTION

                                 05  0AD3 49680 	RSB				;

                                     0AD4 49720 

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

                          55         0AD7       

                          0293   30  0AD8 49800 	BSBW	SETWRT			; SET WRITABLE

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

                          02C2   30  0ADF 49880 	BSBW	REPROT			; RESTORE PROTECTION

                                 05  0AE2 49920 	RSB				;

                                     0AE3 49960 

                                     0AE3 50000 40$:					; PROCESSOR REGISTER

                                     0AE3 50040 	$CMKRNL_S	B^DEPPREG,(AP)	; DEPOSIT IN PROCESSOR REGISTER

                          6C     DF  0AE3       		PUSHAL	(AP)

                       F0'AF     DF  0AE5       		PUSHAL	B^DEPPREG

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  41

                DEPOSIT                                                                                                          (1)



   00000000'GF            02     FB  0AE8       		CALLS	#2,G^SYS$CMKRNL

                                 05  0AEF 50080 	RSB				;

                                     0AF0 50120 

                               0000  0AF0 50160 DEPPREG:.WORD	0			; DEPOSIT INTO PROCESSOR REGISTER

            6D       0AFF'CF     9E  0AF2 50200 	MOVAB	W^PREXC,(FP)		; SET EXCEPTION HANDLER

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

            50            01     D0  0AFB 50280 	MOVL	#1,R0			; RETURN SUCESS

                                 04  0AFE 50320 	RET				;

                                     0AFF 50360 

                               0000  0AFF 50400 PREXC:	.WORD	0			; PROCESSOR REGISTER EXCEPTION HANDLER

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

                          51         0B05       

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

         10 AD         0F'AF     9E  0B0A 50520 	MOVAB	B^10$,16(FP)		; SET RETURN ADDRESS

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

                                 04  0B12 50600 	RET				; AND RETURN

                                     0B13 50640 

                                     0B13 50680 	.ENDC

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  42

                EXECUTE - PERFORM COMMAND STRING                                                                                 (1)



                                     0B13 50760 	.SBTTL	EXECUTE - PERFORM COMMAND STRING

                                     0B13 50800 ;

                                     0B13 50840 ;	EXECUTE

                                     0B13 50880 ;

                                     0B13 50920 EXECUTE:				;

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

                          09         0B16       

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

                          03     12  0B1B 51040 	BNEQ	10$			; NOT NULL

                          F8FB   31  0B1D 51080 	BRW	SUPERST			; SUPER RESET

                                 05  0B20 51120 10$:	RSB				; RETURN

                                     0B21 51160 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  43

                P - PROCESSOR REGISTER PREFIX                                                                                    (1)



                                     0B21 51240 	.SBTTL	P - PROCESSOR REGISTER PREFIX

                                     0B21 51280 ;

                                     0B21 51320 ;	SET PROCESSOR REGISTER MODE

                                     0B21 51360 ;

                                     0B21 51400 PREG:					; PROCESSOR REGISTER MODE

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

                          00         0B24       

                                 05  0B25 51480 10$:	RSB				; RETURN

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  44

                PROCESS DEBUGGER INITIALIZATION                                                                                  (1)



                                     0B26 51560 	.SBTTL	PROCESS DEBUGGER INITIALIZATION

                                     0B26 51600 

                                     0B26 51640 	.IF	DF,SW_PROCESS		;

                                     0B26 51680 TEST:					;

                                     0B26 51720 XDT$START::				; GLOBAL START ADDRESS FOR CLI DEBUG

                               0000  0B26 51760 	.WORD	0			; ENTRY MASK

            6D       0C8E'CF     9E  0B28 51800 	MOVAB	W^CATCHALL,(FP)		; SET CATCHALL EXCEPTION HANDLER

                                     0B2D 51840 	$DCLEXH_S	EXITBLK		; DECLARE USER MODE EXIT HANDLER

                     F871 CF     DF  0B2D       		PUSHAL	EXITBLK

   00000000'GF            01     FB  0B31       		CALLS	#1,G^SYS$DCLEXH

                                     0B38 51880 	$CMKRNL_S	B^SETEXC,(AP)	; SET EXCEPTION VECTORS

                          6C     DF  0B38       		PUSHAL	(AP)

                       8C'AF     DF  0B3A       		PUSHAL	B^SETEXC

   00000000'GF            02     FB  0B3D       		CALLS	#2,G^SYS$CMKRNL

                                     0B44 51920 	$SETEXV_S	ADDRES=W^EXCEPT,-	;

                                     0B44 51960 			ACMODE=#3,-	;

                                     0B44 52000 			VECTOR=#0	; SET PRIMARY FOR USER

                          00     DD  0B44       		PUSHL	#0

                          03     DD  0B46       		PUSHL	#3

                     0BF8'CF     DF  0B48       		PUSHAL	W^EXCEPT

                          00     DD  0B4C       		PUSHL	#0

   00000000'GF            04     FB  0B4E       		CALLS	#4,G^SYS$SETEXV

                                     0B55 52040 	$SETEXV_S	ADDRES=W^CATCHALL,-	; SET LAST CHANCE HANDLER

                                     0B55 52080 			ACMODE=#3,-	; FOR USER MODE

                                     0B55 52120 			VECTOR=#2	; SPECIFY LAST CHANCE HANDLER

                          00     DD  0B55       		PUSHL	#0

                          03     DD  0B57       		PUSHL	#3

                     0C8E'CF     DF  0B59       		PUSHAL	W^CATCHALL

                          02     DD  0B5D       		PUSHL	#2

   00000000'GF            04     FB  0B5F       		CALLS	#4,G^SYS$SETEXV

                                     0B66 52160 	$ASSIGN_S	TTNAMD,TTCHAN	; ASSIGN DEVICE

                          7E     7C  0B66       		CLRQ	-(SP)

                     F824 CF     3F  0B68       		PUSHAW	TTCHAN

                     F824 CF     7F  0B6C       		PUSHAQ	TTNAMD

   00000000'GF            04     FB  0B70       		CALLS	#4,G^SYS$ASSIGN

                                     0B77 52200 INI$BRK:				;

                                 03  0B77 52240 	BPT				; INITIAL BREAK POINT

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

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

            60            6C     FA  0B80 52360 	CALLG	(AP),(R0)		; CALL TARGET PROGRAM

                                     0B83 52400 	$EXIT_S	R0			; EXIT

                          50     DD  0B83       		PUSHL	R0

   00000000'GF            01     FB  0B85       		CALLS	#1,G^SYS$EXIT

                                     0B8C 52440 

                                     0B8C 52480 

                               0000  0B8C 52520 SETEXC:	.WORD	0			; ENTRY MASK

                                     0B8E 52560 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0B8E 52600 			PRVHND=KCOND,-	;

                                     0B8E 52640 			ACMODE=#0	; SET KERNEL

                     F824 CF     DF  0B8E       		PUSHAL	KCOND

                          00     DD  0B92       		PUSHL	#0

                       F8'AF     DF  0B94       		PUSHAL	B^EXCEPT

                          00     DD  0B97       		PUSHL	#0

   00000000'GF            04     FB  0B99       		CALLS	#4,G^SYS$SETEXV

                                     0BA0 52680 	$SETEXV_S	ADDRES=W^CATCHALL,-	;

                                     0BA0 52720 			ACMODE=#0,-	; SET KERNEL MODE LAST CHANCE HANDLER

                                     0BA0 52760 			VECTOR=#2	; SPECIFY LAST CHANCE VECTOR

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  45

                PROCESS DEBUGGER INITIALIZATION                                                                                  (1)



                          00     DD  0BA0       		PUSHL	#0

                          00     DD  0BA2       		PUSHL	#0

                     0C8E'CF     DF  0BA4       		PUSHAL	W^CATCHALL

                          02     DD  0BA8       		PUSHL	#2

   00000000'GF            04     FB  0BAA       		CALLS	#4,G^SYS$SETEXV

                                     0BB1 52800 ;----------------------------------------------------------------------------

                                     0BB1 52840 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0BB1 52880 			PRVHND=ECOND,-	;

                                     0BB1 52920 			ACMODE=#1	; SET EXEC MODE EXCEPTION HANDLER

                     F805 CF     DF  0BB1       		PUSHAL	ECOND

                          01     DD  0BB5       		PUSHL	#1

                       F8'AF     DF  0BB7       		PUSHAL	B^EXCEPT

                          00     DD  0BBA       		PUSHL	#0

   00000000'GF            04     FB  0BBC       		CALLS	#4,G^SYS$SETEXV

                                     0BC3 52960 	$SETEXV_S	ADDRES=W^CATCHALL,-	;

                                     0BC3 53000 			ACMODE=#1,-	; SET EXEC MODE LAST CHANCE HANDLER

                                     0BC3 53040 			VECTOR=#2	; SPECIFY LAST CHANCE VECTOR

                          00     DD  0BC3       		PUSHL	#0

                          01     DD  0BC5       		PUSHL	#1

                     0C8E'CF     DF  0BC7       		PUSHAL	W^CATCHALL

                          02     DD  0BCB       		PUSHL	#2

   00000000'GF            04     FB  0BCD       		CALLS	#4,G^SYS$SETEXV

                                     0BD4 53080 ;----------------------------------------------------------------------------

                                     0BD4 53120 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0BD4 53160 			PRVHND=SCOND,-	;

                                     0BD4 53200 			ACMODE=#2	; SET SUPERVISOR MODE EXCEPTION HANDLER

                     F7E6 CF     DF  0BD4       		PUSHAL	SCOND

                          02     DD  0BD8       		PUSHL	#2

                       F8'AF     DF  0BDA       		PUSHAL	B^EXCEPT

                          00     DD  0BDD       		PUSHL	#0

   00000000'GF            04     FB  0BDF       		CALLS	#4,G^SYS$SETEXV

                                     0BE6 53240 	$SETEXV_S	ADDRES=W^CATCHALL,-	;

                                     0BE6 53280 			ACMODE=#2,-	; SET SUPERVISOR LAST CHANCE HANDLER

                                     0BE6 53320 			VECTOR=#2	; SPECIFY LAST CHANCE VECTOR

                          00     DD  0BE6       		PUSHL	#0

                          02     DD  0BE8       		PUSHL	#2

                     0C8E'CF     DF  0BEA       		PUSHAL	W^CATCHALL

                          02     DD  0BEE       		PUSHL	#2

   00000000'GF            04     FB  0BF0       		CALLS	#4,G^SYS$SETEXV

                                 04  0BF7 53360 	RET				;

                                     0BF8 53400 

                               0000  0BF8 53440 EXCEPT:	.WORD	0			; EXCEPTION HANDLER ENTRY MASK

                                     0BFA 53480 	$SETEXV_S	ADDRES=B^EXCEPT,-	;

                                     0BFA 53520 			ACMODE=#3,-	;

                                     0BFA 53560 			VECTOR=#0	; RE-ESTABLISH USER PRIMARY VECTOR

                          00     DD  0BFA       		PUSHL	#0

                          03     DD  0BFC       		PUSHL	#3

                       F7 AF     DF  0BFE       		PUSHAL	B^EXCEPT

                          00     DD  0C01       		PUSHL	#0

   00000000'GF            04     FB  0C03       		CALLS	#4,G^SYS$SETEXV

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

                          50         0C0E       

                          51     DC  0C0F 53640 	MOVPSL	R1			; GET CURRENT PSL

            02            18     EF  0C11 53680 	EXTZV	#PSL$V_CURMOD,#PSL$S_CURMOD,R1,R1	;

            51            51         0C14       

       F783 CF            51     E2  0C16 53720 	BBSS	R1,DBGACTIVE,40$	; BR IF ALREADY ACTIVE

                          43         0C1B       

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  46

                PROCESS DEBUGGER INITIALIZATION                                                                                  (1)



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

                          03     12  0C23 53800 	BNEQ	10$			; NO,

                          FDD4   31  0C25 53840 5$:	BRW	XDELTBIT		; YES, A TBIT

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

                          03     12  0C2F 53920 	BNEQ	20$			; NO,

                          FD48   31  0C31 53960 15$:	BRW	XDELBPT			; YES, A BREAKPOINT

                                     0C34 54000 20$:					; SOME OTHER EXCEPTION

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

                          2B     13  0C3B 54080 	BEQL	60$			; YES

            80   0000042C 8F     D1  0C3D 54120 	CMPL	#SS$_COMPAT,(R0)+	; IS IT COMPATIBILITY MODE EXCEPT?

                          0A     12  0C44 54160 	BNEQ	30$			; NO

            60            01     D1  0C46 54200 	CMPL	#1,(R0)			; IS IT COMPATIBILITY BPT?

                          E6     13  0C49 54240 	BEQL	15$			; YES

            60            07     D1  0C4B 54260 	CMPL	#7,(R0)			; IS IT COMPATIBILITY TBIT?

                          D5     13  0C4E 54270 	BEQL	5$			; YES

            60   0000046C 8F     D1  0C50 54400 30$:	CMPL	#SS$_DEBUG,(R0)		; IS IT DEBUG EXCEPTION?

                          06     12  0C57 54440 	BNEQ	40$			; NO,

                          FC6B   30  0C59 54480 	BSBW	SAVE			; SAVE EVERYTHING

                          FDAA   31  0C5C 54520 	BRW	XDELDBG			; AND TREAT AS FUNNY BPT

                                     0C5F 54560 40$:					; UNEXPECTED EXCEPTION

       F73A CF            51     E5  0C5F 54600 	BBCC	R1,DBGACTIVE,50$	; CLEAR DEBUG ACTIVE

                          00         0C64       

                          50     D4  0C65 54640 50$:	CLRL	R0			; RETURN FALSE FOR RESIGNAL

                                 04  0C67 54680 	RET				;

            50            01     D0  0C68 54700 60$:	MOVL	#1,R0			; IGNORE AND RESIGNAL

                                 04  0C6B 54710 	RET				;

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  47

                HANDLER FOR DEBUG EXCEPTIONS                                                                                     (1)



                                     0C6C 54760 	.SBTTL	HANDLER FOR DEBUG EXCEPTIONS

                                     0C6C 54800 

                                     0C6C 54840 DBGEXCEP:				;

                               0000  0C6C 54880 	.WORD	0			;

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

                          51         0C72       

            50            5D     D0  0C73 54960 	MOVL	FP,R0			; INIT LINK FOR CALL FRAMES

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

                          0B     13  0C7A 55040 	BEQL	20$			; YES

         10 A0         8D'AF     9E  0C7C 55080 	MOVAB	B^30$,16(R0)		; SET FOR RETURN

            50         0C A0     D0  0C81 55120 	MOVL	12(R0),R0		;

                          EF     11  0C85 55160 	BRB	10$			; CONTINUE

         10 A0       FC39 CF     9E  0C87 55200 20$:	MOVAB	XDELACV,16(R0)		; SET RETURN FOR ERROR

                                 04  0C8D 55240 30$:	RET				;

                                     0C8E 55280 

                                     0C8E 55320 CATCHALL:				; CATCHALL EXCEPTION HANDLER

                               0000  0C8E 55360 	.WORD	0			; ENTRY MASK

                          51     DC  0C90 55400 	MOVPSL	R1			; GET CURMOD

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

            51            51         0C95       

       F702 CF            51     E3  0C97 55480 	BBCS	R1,DBGACTIVE,10$	; MUST NOT BE DEBUGGER EXCEPTION

                          03         0C9C       

                          50     D4  0C9D 55520 	CLRL	R0			; RESIGNAL

                                 04  0C9F 55560 	RET				;

                          FC24   30  0CA0 55600 10$:	BSBW	SAVE			; SAVE EVERYTHING

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

                          50         0CA7       

            53            60     D0  0CA8 55680 	MOVL	(R0),R3			; GET IT

                          F99B   30  0CAB 55720 	BSBW	CRLF			; OUTPUT CR/LF

                          F93C   30  0CAE 55760 	BSBW	OUTLONG			; OUTPUT EXCEPTION CODE

            54         BB'AF     9E  0CB1 55800 	MOVAB	B^EXCMSG,R4		; OUTPUT MESSAGE

                          F952   30  0CB5 55840 	BSBW	OUTZSTRING		; TEXT FOR EXCEPTION

                          FD4E   31  0CB8 55880 	BRW	XDELDBG			; AND DISPLAY INSTRUCTION

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

                                     0CC7 55960 

                                     0CC7 56000 EXIHANDLE:				; EXIT HANDLER

                               0000  0CC7 56040 	.WORD	0			; ENTRY MASK

       F6D0 CF            0F     93  0CC9 56080 	BITB	#15,DBGACTIVE		; TEST FOR DEBUG ACTIVE IN ANY MODE

                          14     13  0CCE 56120 	BEQL	10$			; NO, REPORT EXIT

                                     0CD0 56160 	$CMKRNL_S	CLREXV,(AP)	; RESET EXCEPTION VECTORS

                          6C     DF  0CD0       		PUSHAL	(AP)

                 00000D38'EF     DF  0CD2       		PUSHAL	CLREXV

   00000000'GF            02     FB  0CD8       		CALLS	#2,G^SYS$CMKRNL

            50         04 BC     D0  0CDF 56200 	MOVL	@4(AP),R0		; RESTORE

                                 04  0CE3 56240 	RET				; RETURN

                                     0CE4 56280 10$:					; PROGRAM EXIT

                          7E     DC  0CE4 56320 	MOVPSL	-(SP)			; BUILD EXCEPTION FRAME

                       10 AD     DD  0CE6 56360 	PUSHL	16(FP)			;

                       04 BC     DD  0CE9 56400 	PUSHL	@4(AP)			; EXIT CODE FOR EXCEPTION CODE

                          03     DD  0CEC 56440 	PUSHL	#3			; ARG COUNT

                          03     BB  0CEE 56480 	PUSHR	#^M<R0,R1>		;

            7E            5C     7D  0CF0 56520 	MOVQ	AP,-(SP)		;

                          04     DD  0CF3 56560 	PUSHL	#4			; MECHANISM COUNT

                          5E     DD  0CF5 56600 	PUSHL	SP			; POINTER TO MECHANISM

                       18 AE     DF  0CF7 56640 	PUSHAL	24(SP)			; POINTER TO SIGNAL

                          02     DD  0CFA 56680 	PUSHL	#2			;

            5C            5E     D0  0CFC 56720 	MOVL	SP,AP			; SET AP FOR EXCEPTION

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  48

                HANDLER FOR DEBUG EXCEPTIONS                                                                                     (1)



                          FBC5   30  0CFF 56760 	BSBW	SAVE			; SAVE EVERYTHING

            54         2F'AF     9E  0D02 56800 	MOVAB	B^EXIMSG,R4		; DISPLAY EXIT MESSAGE

                          F901   30  0D06 56840 	BSBW	OUTZSTRING		; OUTPUT TEXT

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

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

                          F8D9   30  0D11 56960 	BSBW	OUTLONG			; DISPLAY IT

                                     0D14 57000 	$DCLEXH_S	EXITBLK		; RE-ESTABLISH EXIT HANDLER

                     F68A CF     DF  0D14       		PUSHAL	EXITBLK

   00000000'GF            01     FB  0D18       		CALLS	#1,G^SYS$DCLEXH

                          51     DC  0D1F 57040 	MOVPSL	R1			; GET CURRENT PSL

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

            51            51         0D24       

       F673 CF            51     E2  0D26 57120 	BBSS	R1,DBGACTIVE,20$	; SET DELTA ACTIVE FOR MODE

                          00         0D2B       

                          FCDA   31  0D2C 57160 20$:	BRW	XDELDBG			;

                                     0D2F 57200 

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

                                     0D38 57280 

                                     0D38 57320 CLREXV:					; CLR EXCEPTION VECTORS

                               0000  0D38 57360 	.WORD	0			; ENTRY MASK

                                     0D3A 57400 	$SETEXV_S	ADDRES=@KCOND,-	;

                                     0D3A 57440 			ACMODE=#0	;

                          00     DD  0D3A       		PUSHL	#0

                          00     DD  0D3C       		PUSHL	#0

                     F674 DF     DF  0D3E       		PUSHAL	@KCOND

                          00     DD  0D42       		PUSHL	#0

   00000000'GF            04     FB  0D44       		CALLS	#4,G^SYS$SETEXV

                                     0D4B 57480 	$SETEXV_S	ADDRES=@ECOND,-	;

                                     0D4B 57520 			ACMODE=#1	;

                          00     DD  0D4B       		PUSHL	#0

                          01     DD  0D4D       		PUSHL	#1

                     F667 DF     DF  0D4F       		PUSHAL	@ECOND

                          00     DD  0D53       		PUSHL	#0

   00000000'GF            04     FB  0D55       		CALLS	#4,G^SYS$SETEXV

                                     0D5C 57560 	$SETEXV_S	ADDRES=@SCOND,-	;

                                     0D5C 57600 			ACMODE=#2	;

                          00     DD  0D5C       		PUSHL	#0

                          02     DD  0D5E       		PUSHL	#2

                     F65A DF     DF  0D60       		PUSHAL	@SCOND

                          00     DD  0D64       		PUSHL	#0

   00000000'GF            04     FB  0D66       		CALLS	#4,G^SYS$SETEXV

                                 04  0D6D 57640 	RET				;

                                     0D6E 57680 

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  49

                SETWRT - SET PAGES WRITABLE                                                                                      (1)



                                     0D6E 57760 	.SBTTL	SETWRT - SET PAGES WRITABLE

                                     0D6E 57800 

                                     0D6E 57840 SETWRT:					;

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

                                     0D71 57920 	$CMKRNL_S	B^SETPRTK,(R2)	;

                          62     DF  0D71       		PUSHAL	(R2)

                       87'AF     DF  0D73       		PUSHAL	B^SETPRTK

   00000000'GF            02     FB  0D76       		CALLS	#2,G^SYS$CMKRNL

            04            50     E8  0D7D 57960 	BLBS	R0,10$			; CONTINUE IF NO ERROR

         87'AF            62     FA  0D80 58000 	CALLG	(R2),B^SETPRTK		;

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

                                 05  0D86 58080 	RSB				; RETURN

                                     0D87 58120 

                               0000  0D87 58160 SETPRTK:.WORD	0			;

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

            51            5E     D0  0D8C 58240 	MOVL	SP,R1			; ADDRESS OF INADR

                                     0D8F 58280 	$SETPRT_S	INADR=(R1),-	;

                                     0D8F 58320 			PROT=#PRT$C_UW,-; WRITABLE BY ALL

                                     0D8F 58360 			ACMODE=#0,-	;

                                     0D8F 58400 			PRVPRT=(AP)	; ADDRESS AT WHICH TO RETURN PROT

                          6C     DF  0D8F       		PUSHAL	(AP)

                          04     DD  0D91       		PUSHL	#PRT$C_UW

                          00     DD  0D93       		PUSHL	#0

                          00     DD  0D95       		PUSHL	#0

                          61     7F  0D97       		PUSHAQ	(R1)

   00000000'GF            05     FB  0D99       		CALLS	#5,G^SYS$SETPRT

            50            01     D0  0DA0 58440 	MOVL	#1,R0			; ALWAYS SUCCESS

                                 04  0DA3 58480 	RET				;

                                     0DA4 58520 

                                     0DA4 58560 REPROT:					; RESTORE PROTECTION

                                 05  0DA4 58600 	RSB				; 

                                     0DA5 58640 	.ENDC				;

                                     0DA5   100 	.END	TEST			; DECLARE START ADDRESS

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   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          00000A81 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          00000B77 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$_PME        = 0000003D            

CA$_SIMULATOR  = 00000001            LBRACKET         00000768 R     03   PR$_RXCS       = 00000020            

CATCHALL         00000C8E R     03   LF             = 0000000A            PR$_RXDB       = 00000021            

CLREXV           00000D38 R     03   LINEFEED         0000057E R     03   PR$_SBIER      = 00000034            

COMMA            00000510 R     03   LOCOUT           00000585 R     03   PR$_SBIFS      = 00000030            

CONTEXT          00000000 R     03   LOCP             0000071B R     03   PR$_SBIMT      = 00000033            

CONTEXTSZ      = 000000B8            LOCPROMPT        00000583 R     03   PR$_SBIQC      = 00000036            

CR             = 0000000D            MASK             0000004C R     03   PR$_SBIS       = 00000031            

CRLF             00000649 R     03   MASKS            0000084C R     03   PR$_SBISC      = 00000032            

CURDOT           00000054 R     03   MCHK             000008C4 R     03   PR$_SBITA      = 00000035            

CURTYPE          00000052 R     03   MODES            00000764 R     03   PR$_SBR        = 0000000C            

DBGACTIVE        0000039E R     03   MUL              000004B6 R     03   PR$_SCBB       = 00000011            

DBGEXCEP         00000C6C R     03   NBRK           = 00000008            PR$_SID        = 0000003E            

DCOM             0000040B R     03   NEGATE           000006F0 R     03   PR$_SIRR       = 00000014            

DEPOSIT          00000AA5 R     03   NEXTDOT          0000056B R     03   PR$_SISR       = 00000015            

DEPPREG          00000AF0 R     03   NEXTLOC          00000581 R     03   PR$_SLR        = 0000000D            

DIV              000004BA R     03   NEXTP            0000042B R     03   PR$_SSP        = 00000002            

DOT              00000852 R     03   NMODES         = 00000004            PR$_TBIA       = 00000039            

DQUOTE           000004C2 R     03   NPRIM          = 00000029            PR$_TBIS       = 0000003A            

DTYPE            00000051 R     03   NSEC           = 00000007            PR$_TODR       = 0000001B            

ECOND            000003BA R     03   NTERM          = 00000008            PR$_TXCS       = 00000022            

ENDEXPR          00000493 R     03   OPEN             000004CA R     03   PR$_TXDB       = 00000023            

ENDFIELD         00000513 R     03   OPER             00000053 R     03   PR$_USP        = 00000003            

EQL1             00000725 R     03   OPERATOR         000006E7 R     03   PR$_WCSA       = 0000002C            

EQUALS           0000071E R     03   OPERBAS        = 00000012            PR$_WCSD       = 0000002D            

ERR2             00000761 R     03   OUTB           = 00000006            PRE1             0000048B R     03   

ERR3             000008C4 R     03   OUTBB            0000057B R     03   PREG             00000B21 R     03   

ERR4             000004F6 R     03   OUTBSLSH         00000614 R     03   PREXC            00000AFF R     03   

ERROR            00000414 R     03   OUTBUF           0000005C R     03   PRIMARY          000003DA R     03   

ESCAP            0000070C R     03   OUTCHAR          0000061D R     03   PROCED           0000084B R     03   

EXCEPT           00000BF8 R     03   OUTCOM           000005F0 R     03   PROCEED          000009CE R     03   

EXCMSG           00000CBB R     03   OUTCR          = 00000004            PROGCTR          00000865 R     03   

EXECUTE          00000B13 R     03   OUTDIGIT         000005E9 R     03   PRT$C_ER       = 00000007            

EXIHANDLE        00000CC7 R     03   OUTER            00000403 R     03   PRT$C_ERKW     = 00000006            

EXIMSG           00000D2F R     03   OUTLONG          000005ED R     03   PRT$C_EW       = 00000005            

EXITBLK          000003A2 R     03   OUTPUT           0000058A R     03   PRT$C_KR       = 00000003            

EXITCODE         000003B2 R     03   OUTPUTA          000005B0 R     03   PRT$C_KW       = 00000002            

F1               00000038 R     03   OUTR8            0000061A R     03   PRT$C_NA       = 00000000            

F2               0000003C R     03   OUTSPACE         00000644 R     03   PRT$C_RESERVED = 00000001            

F3               00000040 R     03   OUTZBUF          00000606 R     03   PRT$C_SR       = 0000000B            

F4               00000044 R     03   OUTZSTRING       0000060A R     03   PRT$C_SREW     = 00000009            

F5               00000048 R     03   PR$_ACCR       = 00000029            PRT$C_SRKW     = 0000000A            

FCTR             00000050 R     03   PR$_ACCS       = 00000028            PRT$C_SW       = 00000008            

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  51

SYMBOL TABLE                                                                                                                     (1)



PRT$C_UR       = 0000000F            SAVRCR           000000B2 R     03   SS$_DEVASSIGN  = 00000848            

PRT$C_UREW     = 0000000D            SAVREG           0000006C R     03   SS$_DEVFOREIGN = 00000064            

PRT$C_URKW     = 0000000E            SAVRXCS          000000B4 R     03   SS$_DEVICEFULL = 00000850            

PRT$C_URSW     = 0000000C            SAVSP            000000A4 R     03   SS$_DEVMOUNT   = 0000006C            

PRT$C_UW       = 00000004            SCANP            00000427 R     03   SS$_DEVNOTALLOC= 00000858            

PSL$C_EXEC     = 00000001            SCOND            000003BE R     03   SS$_DEVNOTMBX  = 00000074            

PSL$C_KERNEL   = 00000000            SECOND           0000073A R     03   SS$_DEVNOTMOUNT= 0000007C            

PSL$C_SUPER    = 00000002            SEMI             00000741 R     03   SS$_DEVOFFLINE = 00000084            

PSL$C_USER     = 00000003            SETBRK           00000A4B R     03   SS$_DIRFULL    = 00000860            

PSL$M_CM       = 80000000            SETEXC           00000B8C R     03   SS$_DRVERR     = 0000008C            

PSL$M_CURMOD   = 03000000            SETPRTK          00000D87 R     03   SS$_DUPFILENAME= 00000868            

PSL$M_DV       = 00000080            SETWRT           00000D6E R     03   SS$_DUPLNAM    = 00000094            

PSL$M_FPD      = 08000000            SHFT             000004B1 R     03   SS$_ENDOFFILE  = 00000870            

PSL$M_FU       = 00000040            SHOBRK           00000800 R     03   SS$_ENDOFTAPE  = 00000878            

PSL$M_IPL      = 001F0000            SLASH            000004C7 R     03   SS$_ENDOFUSRLBL= 00000970            

PSL$M_IS       = 04000000            SLSH           = 0000002F            SS$_EXQUOTA    = 0000001C            

PSL$M_IV       = 00000020            SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            

PSL$M_PRVMOD   = 00C00000            SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            

PSL$M_SAFBITS  = 000037FF            SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            

PSL$M_TBIT     = 00000010            SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            

PSL$M_TP       = 40000000            SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            

PSL$S_CURMOD   = 00000002            SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            

PSL$S_IPL      = 00000005            SS$_BADATTRIB  = 00000034            SS$_FILACCERR  = 0000009C            

PSL$S_PRVMOD   = 00000002            SS$_BADCHKSUM  = 00000808            SS$_FILALRACC  = 000000A4            

PSL$V_CM       = 0000001F            SS$_BADESCAPE  = 0000003C            SS$_FILELOCKED = 000008A8            

PSL$V_CURMOD   = 00000018            SS$_BADFILEHDR = 00000810            SS$_FILENUMCHK = 000008B0            

PSL$V_DV       = 00000007            SS$_BADFILENAME= 00000818            SS$_FILESEQCHK = 000008B8            

PSL$V_FPD      = 0000001B            SS$_BADFILEVER = 00000820            SS$_FILESTRUCT = 000008C0            

PSL$V_FU       = 00000006            SS$_BADIMGHDR  = 00000044            SS$_FILNOTACC  = 000000AC            

PSL$V_IPL      = 00000010            SS$_BADIRECTORY= 00000828            SS$_FILNOTCNTG = 000002AC            

PSL$V_IS       = 0000001A            SS$_BADPARAM   = 00000014            SS$_FILNOTEXP  = 000000B4            

PSL$V_IV       = 00000005            SS$_BADSTACK   = 000002B4            SS$_FLTDIV     = 00000494            

PSL$V_PRVMOD   = 00000016            SS$_BEGOFFILE  = 00000938            SS$_FLTOVF     = 0000048C            

PSL$V_TBIT     = 00000004            SS$_BLOCKCNTERR= 00000940            SS$_FLTUND     = 0000049C            

PSL$V_TP       = 0000001E            SS$_BREAK      = 00000414            SS$_FORMAT     = 000000BC            

QUAN             00000058 R     03   SS$_BUFBYTALI  = 0000030C            SS$_GPTFULL    = 000000C4            

QUANT            0000085F R     03   SS$_BUFFEROVF  = 00000601            SS$_GSDFULL    = 000000CC            

QUOT           = 00000027            SS$_BUGCHECK   = 000002A4            SS$_HANGUP     = 000002CC            

QUOTE            00000A91 R     03   SS$_CANCEL     = 00000830            SS$_HEADERFULL = 000008C8            

RDBUF          = 00000002            SS$_CHANINTLK  = 0000004C            SS$_IDXFILEFULL= 000008D0            

RDCR           = 00000000            SS$_CLIFRCEXT  = 00000980            SS$_ILLBLKNUM  = 000000DC            

REGCOM           0000087F R     03   SS$_CMODSUPR   = 0000041C            SS$_ILLCNTRFUNC= 000000E4            

REGISTER         00000877 R     03   SS$_CMODUSER   = 00000424            SS$_ILLEFC     = 000000EC            

REPROT           00000DA4 R     03   SS$_COMPAT     = 0000042C            SS$_ILLIOFUNC  = 000000F4            

RESET            0000072D R     03   SS$_CONTINUE   = 00000001            SS$_ILLLBLAST  = 00000968            

RESTORE          00000926 R     03   SS$_CONTROLC   = 00000651            SS$_ILLPAGCNT  = 000000FC            

RESTORR          00000934 R     03   SS$_CONTROLO   = 00000609            SS$_ILLSEQOP   = 000002DC            

RETURN           000004F9 R     03   SS$_CONTROLY   = 00000611            SS$_ILLSER     = 00000104            

RSET             00000506 R     03   SS$_CREATED    = 00000619            SS$_ILLUSRLBLRD= 00000958            

RUBOUT         = 0000007F            SS$_CTRLERR    = 00000054            SS$_ILLUSRLBLWT= 00000960            

SAV...         = 000002E0 R     03   SS$_DATACHECK  = 0000005C            SS$_INCVOLLABEL= 0000010C            

SAVAP            0000009C R     03   SS$_DATAOVERUN = 00000838            SS$_INSFARG    = 00000114            

SAVE             000008C7 R     03   SS$_DEBUG      = 0000046C            SS$_INSFMEM    = 00000124            

SAVOCR           000000B0 R     03   SS$_DECOVF     = 000004A4            SS$_INSFRAME   = 0000012C            

SAVPC            000000A8 R     03   SS$_DEVACTIVE  = 000002C4            SS$_INSFWSL    = 0000011C            

SAVPSL           000000AC R     03   SS$_DEVALLOC   = 00000840            SS$_INTDIV     = 00000484            

SAVR2            00000074 R     03   SS$_DEVALRALLOC= 00000641            SS$_INTOVF     = 0000047C            

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   VAX-11 MACRO X0.3-11               Page  52

SYMBOL TABLE                                                                                                                     (1)



SS$_IVADDR     = 00000134            SS$_PARITY     = 000001F4            VALR             00000871 R     03   

SS$_IVCHAN     = 0000013C            SS$_PARTESCAPE = 000001FC            VALUE            00000869 R     03   

SS$_IVCHNLSEC  = 0000026C            SS$_PFMBSY     = 00000204            V_ASCII        = 00000001            

SS$_IVDEVNAM   = 00000144            SS$_PLHLDR     = 00000404            V_ATBRK        = 00000004            

SS$_IVGSDNAM   = 0000014C            SS$_PSTFULL    = 0000020C            V_F1           = 00000008            

SS$_IVLOGNAM   = 00000154            SS$_RADRMOD    = 0000044C            V_F2           = 00000009            

SS$_IVLOGTAB   = 0000015C            SS$_REJECT     = 00000294            V_F3           = 0000000A            

SS$_IVPROTECT  = 000002F4            SS$_REMOTE     = 00000649            V_F4           = 0000000B            

SS$_IVQUOTAL   = 00000164            SS$_RESIGNAL   = 00000918            V_F5           = 0000000C            

SS$_IVSECFLG   = 0000016C            SS$_RESULTOVF  = 00000214            V_INFIELD      = 00000002            

SS$_IVSECIDCTL = 000002E4            SS$_ROPRAND    = 00000454            V_NEGATE       = 00000007            

SS$_IVSSRQ     = 00000174            SS$_SECTBLFUL  = 0000021C            V_OPEN         = 00000000            

SS$_IVSTSFLG   = 0000017C            SS$_SSFAIL     = 0000045C            V_PREG         = 0000001F            

SS$_IVTIME     = 00000184            SS$_SUBRNG     = 000004AC            V_PRMODE       = 0000000F            

SS$_LCKPAGFUL  = 000000D4            SS$_SUPERSEDE  = 00000631            V_RUB          = 00000006            

SS$_LENVIO     = 0000018C            SS$_TAPEPOSLOST= 00000224            V_TBIT         = 00000003            

SS$_LKWSETFUL  = 00000194            SS$_TBIT       = 00000464            V_TBITOK       = 00000005            

SS$_MBFULL     = 000008D8            SS$_TIMEOUT    = 0000022C            XDELACV          000008C4 R     03   

SS$_MBTOOSML   = 0000019C            SS$_TOOMANYVER = 00000990            XDELBPT          0000097C R     03   

SS$_MCHECK     = 000002BC            SS$_TOOMUCHDATA= 0000029C            XDELDBG          00000A09 R     03   

SS$_MEDOFL     = 000001A4            SS$_UNASEFC    = 00000234            XDELTBIT         000009FC R     03   

SS$_MSGNOTFND  = 00000621            SS$_UNSAFE     = 0000023C            XDT$START        00000B26 RG    03   

SS$_MTLBLLONG  = 00000304            SS$_UNWIND     = 00000920            XREG             000008B8 R     03   

SS$_MUSTCLOSEFL= 00000948            SS$_UNWINDING  = 00000928            XREGV            00000348 R     03   

SS$_NOAQB      = 00000314            SS$_VASFULL    = 00000244            XSET             000008A6 R     03   

SS$_NODATA     = 000001AC            SS$_VECINUSE   = 0000024C            

SS$_NOHANDLER  = 000008F8            SS$_VOLINV     = 00000254            

SS$_NOHOMEBLK  = 000008E0            SS$_WAITUSRLBL = 00000950            

SS$_NOIOCHAN   = 000001B4            SS$_WASCLR     = 00000001            

SS$_NOLINKS    = 0000027C            SS$_WASECC     = 00000639            

SS$_NOLOGNAM   = 000001BC            SS$_WASSET     = 00000009            

SS$_NOMBX      = 00000274            SS$_WRITLCK    = 0000025C            

SS$_NOMOREFILES= 00000930            SS$_WRONGACP   = 0000031C            

SS$_NONEXDRV   = 000001C4            STATUS           00000034 R     03   

SS$_NONEXPR    = 000008E8            STEP             00000783 R     03   

SS$_NONLOCAL   = 000008F0            SUPERST          0000041B R     03   

SS$_NOPRIV     = 00000024            SW_PROCESS     = 00000001            

SS$_NORMAL     = 00000001            SYS$ASSIGN       ********   X   03   

SS$_NOSIGNAL   = 00000900            SYS$CMKRNL       ********   X   03   

SS$_NOSOLICIT  = 00000284            SYS$DCLEXH       ********   X   03   

SS$_NOSUCHDEV  = 00000908            SYS$EXIT         ********   X   03   

SS$_NOSUCHFILE = 00000910            SYS$QIO          ********   X   03   

SS$_NOSUCHNODE = 0000028C            SYS$QIOW         ********   X   03   

SS$_NOSUCHSEC  = 00000978            SYS$SETAST       ********   X   03   

SS$_NOTAPEOP   = 00000264            SYS$SETEXV       ********   X   03   

SS$_NOTFILEDEV = 000001CC            SYS$SETPRT       ********   X   03   

SS$_NOTINTBLSZ = 000001D4            TAB              000006FC R     03   

SS$_NOTLABELMT = 000001DC            TERM             000003F3 R     03   

SS$_NOTMODIFIED= 00000659            TERMASK          000003CA R     03   

SS$_NOTNETDEV  = 000002EC            TERMASKD         000003C2 R     03   

SS$_NOTRAN     = 00000629            TEST             00000B26 R     03   

SS$_NOTSQDEV   = 000001E4            TTCHAN           00000390 R     03   

SS$_OPCCUS     = 00000434            TTIOSB           00000388 R     03   

SS$_OPCDEC     = 0000043C            TTNAMD           00000394 R     03   

SS$_OPINCOMPL  = 000002D4            TTSTR            0000039C R     03   

SS$_PAGOWNVIO  = 000001EC            UNBRK            00000A23 R     03   

SS$_PAGRDERR   = 00000444            VALI             00000874 R     03   

DELTA           - MULTIMODE PROCESS DEBUGGER                     21-AUG-1978 21:09:18   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           00000DA5      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

13308. BYTES LEFT IN FREE MEMORY POOL.

34. BYTES OF RECLAIMED MEMORY.

OBJ$:DELTA,LIS$:DELTA/-SP=EXECML$/ML,SRC$:SWP,XDELTA,ENDP

14 MLB DIR RDS - 565 GETS TO DEFINE 28 MACROS. 108 INTER. FILE WRITES. 

