

; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 1

; Digital Equipment Corporation

;

;	0001	MODULE PATMOD (

;	0002			%IF %VARIANT EQL 1

;     L 0003			%THEN

;	0004				ADDRESSING_MODE (EXTERNAL = LONG_RELATIVE, NONEXTERNAL = LONG_RELATIVE),

;	0005			%FI

;	0006			IDENT = 'X01.10') =

;	0007	BEGIN

;	0008	

;	0009	! Copyright (C) 1976,1977,1978

;	0010	! Digital Equipment Corporation, Maynard, Massachusetts 01754

;	0011	!

;	0012	! This software is furnished under a license for use only on a

;	0013	! single computer system and may be copied only with the inclusion

;	0014	! of the above copyright notice. This software, or any

;	0015	! other copies thereof, may not be provided or otherwise made

;	0016	! available to any other person except for use on such system

;	0017	! and to one who agrees to these license terms. Title to and

;	0018	! ownership of the software shall at all times remain in DEC.

;	0019	!

;	0020	! The information in this software is subject to change without

;	0021	! notice and should not be construed as a commitment by Digital

;	0022	! Equipment Corporation.

;	0023	!

;	0024	! DEC assumes no responsibility for the use or reliability of

;	0025	! its software on equipment which is not supplied by DEC.

;	0026	!

;	0027	! FACILITY:	PATCH

;	0028	!

;	0029	!++

;	0030	! FUNCTIONAL DESCRIPTION:

;	0031	!

;	0032	! ABSTRACT:

;	0033	!

;	0034	! Version:	X01.10

;	0035	!

;	0036	! History:

;	0037	!	Author:

;	0038	!		Carol Peters, 03 Jul 1976: Version 01

;	0039	!

;	0040	!	Modified by:

;	0041	!		Kathleen Morse, 19 Oct 1977: Version X01.00

;	0042	!

;	0043	! Revision history:

;	0044	!

;	0045	!  NO	DATE		PROGRAMMER		PURPOSE

;	0046	!  --	----		----------		-------

;	0047	!

;	0048	!  00	19-OCT-77	K.D. MORSE		ADAPT VERSION 24 FOR PATCH

;	0049	!  01	4-JAN-78	K.D. MORSE		NO CHANGES FOR VERS 25.

;	0050	!						DISPLAY SETTING OF MODE_SYMBOLIC

;	0051	!						IN SHOW MODES. (26)

;	0052	!						NO CHANGES FOR VERS 27-28.

;	0053	!  02	24-JAN-78	K.D. MORSE		NO CHANGES FOR 29.

;	0054	!  03	13-FEB-78	K.D. MORSE		ADD OUTPUT TO INDIRECT COMMAND

;	0055	!						FILE FOR "SET MODE" MODES.



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 1-1

; Digital Equipment Corporation

;

;	0056	!  04	25-APR-78	K.D. MORSE		CONVERT TO NATIVE MODE.

;	0057	!  05	18-MAY-78	K.D. MORSE		NO CHANGES FOR VERS 30-31.

;	0058	!  06	18-MAY-78	K.D. MORSE		NO CHANGES FOR VERS 32.

;	0059	!  07	13-JUN-78	K.D. MORSE		ADD FAO COUNTS TO SIGNALS.

;	0060	!  08	15-JUN-78	K.D. MORSE		ALWAYS CALL PAT$WRITEFILE TO

;	0061	!						OUTPUT TO APPENDED TEXT BUFFERS.

;	0062	!  09	21-JUN-78	K.D. MORSE		NO CHANGES FOR VERS 33.

;	0063	!  10	28-JUN-78	K.D. MORSE		CHANGED PAT$SHOW_DEFAL TO WORK

;	0064	!						FROM THE CURRENT MODE LEVEL (34).

;	0065	!

;	0066	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 2

; Digital Equipment Corporation

;

;	0067	FORWARD ROUTINE

;	0068		PAT$INIT_MODES: NOVALUE,				! Sets modes to a specified level

;	0069		PAT$RESET_DEF: NOVALUE,					! Sets default modes to initialization values

;	0070		PAT$SET_MOD_LST: NOVALUE,				! Sets a list of modes

;	0071		PAT$SET_MOD_LVL: NOVALUE,				! Sets level of modes

;	0072		PAT$SET_NEW_MOD: NOVALUE,				! Sets a new mode

;	0073		PAT$SHOW_DEFAL: NOVALUE;				! Action routine to show default

;	0074	

;	0075	REQUIRE 'SRC$:VXSMAC.REQ';

;	0115	REQUIRE 'SRC$:PATPCT.REQ';

;	0131	REQUIRE 'SRC$:PATGEN.REQ';

;	0310	REQUIRE 'SRC$:PATTER.REQ';

;	0390	REQUIRE 'SRC$:BSTRUC.REQ';

;	0441	REQUIRE 'SRC$:LISTEL.REQ';

;	0460	REQUIRE 'SRC$:SYSSER.REQ';

;      R0468	SWITCHES LIST (SOURCE);

;      R0469	

;      R0470	EXTERNAL ROUTINE

;      R0471		PAT$fao_out;		! formats a line and outputs to the terminal

;      R0472	

;      R0473	SWITCHES LIST (NOSOURCE);

;	0518	REQUIRE 'SRC$:PREFIX.REQ';

;	0701	REQUIRE 'SRC$:PATPRE.REQ';

;	0841	

;	0842	EXTERNAL ROUTINE

;	0843		PAT$WRITEFILE;						! Writes a line to a file

;	0844	EXTERNAL

;	0845		PAT$GL_COMRAB,						! RAB for output command file

;	0846		PAT$GL_FLAGS,						! CLI flags

;	0847		PAT$GL_CONTEXT : BITVECTOR,				! Context longword

;	0848		PAT$GB_MOD_PTR: REF VECTOR [, BYTE],			! Pointer to modes

;	0849		PAT$GB_DEF_MOD: VECTOR [, BYTE],			! Block for modes

;	0850		PAT$GL_HEAD_LST;					! Head of argument list



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 3

; Digital Equipment Corporation

;

;	0851	!++

;	0852	! Counted strings for FAO.

;	0853	!--

;	0854	

;	0855	BIND

;	0856		CS_OCTAL	= UPLIT ( %ASCIC 'octal'),

;	0857		CS_DECIMAL	= UPLIT ( %ASCIC 'decimal'),

;	0858		CS_HEXADECIMAL	= UPLIT ( %ASCIC 'hexadecimal'),

;	0859		CS_BYTE		= UPLIT ( %ASCIC 'byte'),

;	0860		CS_WORD		= UPLIT ( %ASCIC 'word'),

;	0861		CS_LONGWORD	= UPLIT ( %ASCIC 'long'),

;	0862		CS_BOOLEAN_ON	= UPLIT ( %ASCIC ' ' ),

;	0863		CS_BOOLEAN_OFF	= UPLIT ( %ASCIC ' no' );

;	0864	

;	0865	!++

;	0866	! The following literals define the byte offset into the MODE_NAME_TBL for

;	0867	! the keywords for the "SET MODE" command.  The order of these offsets must be

;	0868	! the same as the order of the names in the MODE_NAME_TBL.

;	0869	!--

;	0870	LITERAL

;	0871		BYTE_NAME = 0,

;	0872		WORD_NAME = 0 + %CHARCOUNT(%ASCIC 'B'),

;	0873		LONG_NAME = WORD_NAME + %CHARCOUNT(%ASCIC 'W'),

;	0874		DECIMAL_NAME = LONG_NAME + %CHARCOUNT(%ASCIC 'LO'),

;	0875		HEX_NAME = DECIMAL_NAME + %CHARCOUNT(%ASCIC 'DEC'),

;	0876		OCTAL_NAME = HEX_NAME + %CHARCOUNT(%ASCIC 'H'),

;	0877		INSTRUC_NAME = OCTAL_NAME + %CHARCOUNT(%ASCIC 'OC'),

;	0878		NOINSTRUC_NAME = INSTRUC_NAME + %CHARCOUNT(%ASCIC 'I'),

;	0879		ASCII_NAME = NOINSTRUC_NAME + %CHARCOUNT(%ASCIC 'NOI'),

;	0880		NOASCII_NAME = ASCII_NAME + %CHARCOUNT(%ASCIC 'AS'),

;	0881		SYMBOL_NAME = NOASCII_NAME + %CHARCOUNT(%ASCIC 'NOAS'),

;	0882		NOSYMBOL_NAME = SYMBOL_NAME + %CHARCOUNT(%ASCIC 'SY'),

;	0883		SCOPE_NAME = NOSYMBOL_NAME + %CHARCOUNT(%ASCIC 'NOSY'),

;	0884		NOSCOPE_NAME = SCOPE_NAME + %CHARCOUNT(%ASCIC 'SC'),

;	0885		GLOBAL_NAME = NOSCOPE_NAME + %CHARCOUNT(%ASCIC 'NOSC'),

;	0886		NOGLOBAL_NAME = GLOBAL_NAME + %CHARCOUNT(%ASCIC 'GL');

;	0887	

;	0888	!++

;	0889	! This table holds the names of the modes acceptable to a "SET MODE" command.

;	0890	! It is used to write the output command file and the appended patch commands.

;	0891	!--

;	0892	BIND

;	0893		MODE_NAME_TBL = UPLIT BYTE (

;	0894					%ASCIC 'B',

;	0895					%ASCIC 'W',

;	0896					%ASCIC 'LO',

;	0897					%ASCIC 'DEC',

;	0898					%ASCIC 'H',

;	0899					%ASCIC 'OC',

;	0900					%ASCIC 'I',

;	0901					%ASCIC 'NOI',

;	0902					%ASCIC 'AS',

;	0903					%ASCIC 'NOAS',

;	0904					%ASCIC 'SY',

;	0905					%ASCIC 'NOSY',



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 3-1

; Digital Equipment Corporation

;

;	0906					%ASCIC 'SC',

;	0907					%ASCIC 'NOSC',

;	0908					%ASCIC 'GL',

;	0909					%ASCIC 'NOGL'

;	0910								) : VECTOR [, BYTE];

;	0911	

;	0912	! This macro is probably temporary - see routine PUT_DEFAL

;	0913	

;	0914	MACRO

;	0915		YES_NO ( VALUE ) =

;     M 0916			(IF VALUE 

;     M 0917				THEN CS_BOOLEAN_ON

;     M 0918				ELSE CS_BOOLEAN_OFF

;     M 0919			) %;

;	0920	

;	0921	!++

;	0922	! The following table holds the valid mode settings and values

;	0923	! relevant to them. Each entry in the table is four bytes long.

;	0924	! The entry has four fields, each of them one byte long.

;	0925	!

;	0926	!	---------------------------------------------

;	0927	!	!  value  !  offset ! keyword ! name_offset !

;	0928	!	---------------------------------------------

;	0929	!

;	0930	! The keyword field holds the token value that represents the particular

;	0931	! mode, e.g., BYTE_TOKEN indicates that the mode is BYTE.

;	0932	! The offset field holds the location of the mode setting in any of

;	0933	! the mode levels.

;	0934	! The value field holds the value that represents a particular mode

;	0935	! to patch in an internal sense.

;	0936	! The name_offset field holds the byte offset into the mode name table,

;	0937	! MODE_NAME_TBL, to the ascic string for this mode.  This is used to reconstruct

;	0938	! the command line for the output command file and appended text.

;	0939	!

;	0940	LITERAL

;	0941		KEYWORD_FIELD	= 0,

;	0942		OFFSET_FIELD	= 1,

;	0943		VALUE_FIELD	= 2,

;	0944		NAME_OFF_FIELD	= 3,

;	0945		MODE_ENTRY_LEN	= 4;

;	0946	

;	0947	BIND

;	0948		MODE_TABLE	= UPLIT BYTE (

;	0949	

;	0950				BYTE_TOKEN, MODE_LENGTH, BYTE_LENGTH, BYTE_NAME,

;	0951				WORD_TOKEN, MODE_LENGTH, WORD_LENGTH, WORD_NAME,

;	0952				LONG_TOKEN, MODE_LENGTH, LONG_LENGTH, LONG_NAME,

;	0953				DECIMAL_TOKEN, MODE_RADIX, DECIMAL_RADIX, DECIMAL_NAME,

;	0954				HEXADECIM_TOKEN, MODE_RADIX, HEX_RADIX, HEX_NAME,

;	0955				OCTAL_TOKEN, MODE_RADIX, OCTAL_RADIX, OCTAL_NAME,

;	0956				INSTRUCTI_TOKEN, MODE_INSTRUC, TRUE, INSTRUC_NAME,

;	0957				NOINSTRUC_TOKEN, MODE_INSTRUC, FALSE, NOINSTRUC_NAME,

;	0958				ASCII_TOKEN, MODE_ASCII, TRUE, ASCII_NAME,

;	0959				NOASCII_TOKEN, MODE_ASCII, FALSE, NOASCII_NAME,

;	0960				SYMBOLS_TOKEN, MODE_SYMBOLS, TRUE, SYMBOL_NAME,



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 3-2

; Digital Equipment Corporation

;

;	0961				NOSYMBOLS_TOKEN, MODE_SYMBOLS, FALSE, NOSYMBOL_NAME,

;	0962				SCOPE_TOKEN, MODE_SCOPE, TRUE, SCOPE_NAME,

;	0963				NOSCOPE_TOKEN, MODE_SCOPE, FALSE, NOSCOPE_NAME,

;	0964				GLOBALS_TOKEN, MODE_GLOBALS, TRUE, GLOBAL_NAME,

;	0965				NOGLOBALS_TOKEN, MODE_GLOBALS, FALSE, NOGLOBAL_NAME,

;	0966				0

;	0967	

;	0968								) : VECTOR [, BYTE];



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 4

; Digital Equipment Corporation

;

;	0969	GLOBAL ROUTINE PAT$INIT_MODES (GOAL_LEVEL, SOURCE_LEVEL) : NOVALUE =

;	0970	

;	0971	!++

;	0972	! FUNCTIONAL DESCRIPTION:

;	0973	!

;	0974	!	Sets all levels from local level to the goal level specified

;	0975	!	with the mode settings of the source level.

;	0976	!

;	0977	! CALLING SEQUENCE:

;	0978	!

;	0979	!	PAT$INIT_MODES ()

;	0980	!

;	0981	! INPUTS:

;	0982	!

;	0983	!	GOAL_LEVEL	- Highest level to set.

;	0984	!	SOURCE_LEVEL	- Level from which to obtain mode settings.

;	0985	!

;	0986	! IMPLICIT INPUTS:

;	0987	!

;	0988	!	none

;	0989	!

;	0990	! OUTPUTS:

;	0991	!

;	0992	!	none

;	0993	!

;	0994	! IMPLICIT OUTPUTS:

;	0995	!

;	0996	!	The mode settings of the local level to the goal level

;	0997	!	are reset to the mode settings of the source level.

;	0998	!

;	0999	! ROUTINE VALUE:

;	1000	!

;	1001	!	novalue

;	1002	!

;	1003	! SIDE EFFECTS:

;	1004	!

;	1005	!	none

;	1006	!

;	1007	!--

;	1008	

;	1009	BEGIN

;	1010	

;	1011	LOCAL

;	1012		TEMP_LEVEL: REF VECTOR [, BYTE];

;	1013	

;	1014	TEMP_LEVEL = PAT$GB_DEF_MOD [.SOURCE_LEVEL * MODE_LVL_SIZE];

;	1015	DECR I FROM LOCAL_MODE TO .GOAL_LEVEL DO

;	1016		BEGIN

;	1017		PAT$GB_MOD_PTR = PAT$GB_DEF_MOD [.I * MODE_LVL_SIZE];

;	1018		PAT$GB_MOD_PTR [MODE_RADIX] = .TEMP_LEVEL [MODE_RADIX];

;	1019		PAT$GB_MOD_PTR [MODE_LENGTH] = .TEMP_LEVEL [MODE_LENGTH];

;	1020		PAT$GB_MOD_PTR [MODE_SYMBOLS] = .TEMP_LEVEL [MODE_SYMBOLS];

;	1021		PAT$GB_MOD_PTR [MODE_INSTRUC] = .TEMP_LEVEL [MODE_INSTRUC];

;	1022		PAT$GB_MOD_PTR [MODE_ASCII] = .TEMP_LEVEL [MODE_ASCII];

;	1023		PAT$GB_MOD_PTR [MODE_SCOPE] = .TEMP_LEVEL [MODE_SCOPE];



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 4-1

; Digital Equipment Corporation

;

;	1024		PAT$GB_MOD_PTR [MODE_GLOBALS] = .TEMP_LEVEL [MODE_GLOBALS];

;	1025		END;

;	1026	END;





							    .TITLE  PATMOD

							    .IDENT  \X01.10\



							    .PSECT  _PAT$PLIT,NOWRT,NOEXE,0



					      00000 P.AAA:  .ASCII  <5>\octal\<0><0>					      ;

					      00008 P.AAB:  .ASCII  <7>\decimal\					      ;

					      00010 P.AAC:  .ASCII  <11>\hexadecimal\					      ;

					      0001C P.AAD:  .ASCII  <4>\byte\<0><0><0>					      ;

					      00024 P.AAE:  .ASCII  <4>\word\<0><0><0>					      ;

					      0002C P.AAF:  .ASCII  <4>\long\<0><0><0>					      ;

					      00034 P.AAG:  .ASCII  <1>\ \<0><0>					      ;

					      00038 P.AAH:  .ASCII  <3>\ no\						      ;

					      0003C P.AAI:  .ASCII  <1>\B\						      ;

					      0003E 	    .ASCII  <1>\W\						      ;

					      00040 	    .ASCII  <2>\LO\						      ;

					      00043 	    .ASCII  <3>\DEC\						      ;

					      00047 	    .ASCII  <1>\H\						      ;

					      00049 	    .ASCII  <2>\OC\						      ;

					      0004C 	    .ASCII  <1>\I\						      ;

					      0004E 	    .ASCII  <3>\NOI\						      ;

					      00052 	    .ASCII  <2>\AS\						      ;

					      00055 	    .ASCII  <4>\NOAS\						      ;

					      0005A 	    .ASCII  <2>\SY\						      ;

					      0005D 	    .ASCII  <4>\NOSY\						      ;

					      00062 	    .ASCII  <2>\SC\						      ;

					      00065 	    .ASCII  <4>\NOSC\						      ;

					      0006A 	    .ASCII  <2>\GL\						      ;

					      0006D 	    .ASCII  <4>\NOGL\						      ;

					      00072	    .BLKB   2

					      00074 P.AAJ:  .BYTE   20, 1, 1, 0, 49, 1, 2, 2, 31, 1, 4, 4, 21, 0, 10, 7, 27, -;

								    0, 16, 11, 42, 0, 8, 13, 28, 3, 1, 16, 38, 3, 0, 18, 19, -;

								    4, 1, 22, 36, 4, 0, 25, 48, 2, 1, 30, 40, 2, 0, 33, 47, - ;

								    5, 1, 38, 39, 5, 0, 41, 25, 6, 1, 46, 37, 6, 0, 49, 0     ;

					      000B5	    .BLKB   3



						    ISE$C_SIZE==	20

						    TXT$C_SIZE==	4

						    PAL$C_SIZE==	16

						    ASD$C_SIZE==	9

						    FWR$C_SIZE==	24

						    CS_OCTAL=		P.AAA

						    CS_DECIMAL=		P.AAB

						    CS_HEXADECIMAL=	P.AAC

						    CS_BYTE=		P.AAD

						    CS_WORD=		P.AAE

						    CS_LONGWORD=	P.AAF

						    CS_BOOLEAN_ON=	P.AAG

						    CS_BOOLEAN_OFF=	P.AAH

						    MODE_NAME_TBL=	P.AAI



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 4-2

; Digital Equipment Corporation

;

						    MODE_TABLE=		P.AAJ

							    .GLOBL  PAT$FAO_OUT, PAT$WRITEFILE, PAT$GL_COMRAB, PAT$GL_FLAGS

							    .GLOBL  PAT$GL_CONTEXT, PAT$GB_MOD_PTR, PAT$GB_DEF_MOD

							    .GLOBL  PAT$GL_HEAD_LST

							    .WEAK   ACCESS_CHECK



							    .PSECT  _PAT$CODE,NOWRT,2



					 0C04 00000 	    .ENTRY  PAT$INIT_MODES, Save R2,R10,R11			      ; 0969

		         5A 00000000G  EF  9E 00002 	    MOVAB   PAT$GB_DEF_MOD, R10					      ;

		         5B 00000000G  EF  9E 00009 	    MOVAB   PAT$GB_MOD_PTR, R11					      ;

	   50	    08   AC	       07  C5 00010 	    MULL3   #7, SOURCE_LEVEL, R0				      ; 1014

	   51	         50	       5A  C1 00015 	    ADDL3   R10, R0, TEMP_LEVEL					      ;

		         52	       03  D0 00019 	    MOVL    #3, I						      ; 1015

				       1A  11 0001C 	    BRB     2$							      ;

	   50	         52	       07  C5 0001E 1$:     MULL3   #7, I, R0						      ; 1017

	   6B	         50	       5A  C1 00022 	    ADDL3   R10, R0, PAT$GB_MOD_PTR				      ;

		         50	       6B  D0 00026 	    MOVL    PAT$GB_MOD_PTR, R0					      ; 1018

		         60	       61  90 00029 	    MOVB    (TEMP_LEVEL), (R0)					      ;

		    01   A0	  01   A1  D0 0002C 	    MOVL    1(TEMP_LEVEL), 1(R0)				      ; 1019

		    05   A0	  05   A1  B0 00031 	    MOVW    5(TEMP_LEVEL), 5(R0)				      ; 1023

				       52  D7 00036 	    DECL    I							      ; 1015

		    04   AC	       52  D1 00038 2$:     CMPL    I, GOAL_LEVEL					      ;

				       E0  18 0003C 	    BGEQ    1$							      ;

					   04 0003E 	    RET     							      ; 0969



; Routine Size:  63 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 5

; Digital Equipment Corporation

;

;	1027	GLOBAL ROUTINE PAT$RESET_DEF : NOVALUE =

;	1028	

;	1029	!++

;	1030	! FUNCTIONAL DESCRIPTION:

;	1031	!

;	1032	!	Cancels user set defaults for mode settings and resets all mode

;	1033	!	levels to PATCH defaults.

;	1034	!

;	1035	! CALLING SEQUENCE:

;	1036	!

;	1037	!	PAT$RESET_DEF ()

;	1038	!

;	1039	! INPUTS:

;	1040	!

;	1041	!	none

;	1042	!

;	1043	! IMPLICIT INPUTS:

;	1044	!

;	1045	!	The default modes.

;	1046	!

;	1047	! OUTPUTS:

;	1048	!

;	1049	!	none

;	1050	!

;	1051	! IMPLICIT OUTPUTS:

;	1052	!

;	1053	!	none

;	1054	!

;	1055	! ROUTINE VALUE:

;	1056	!

;	1057	!	novalue

;	1058	!

;	1059	! SIDE EFFECTS:

;	1060	!

;	1061	!	Resets default values for modes.

;	1062	!

;	1063	!--

;	1064	

;	1065	BEGIN

;	1066	

;	1067	PAT$GB_MOD_PTR = PAT$GB_DEF_MOD [DEFAULT_MODE * MODE_LVL_SIZE];

;	1068	PAT$GB_MOD_PTR [MODE_RADIX] = DEF_MODE_RADIX;

;	1069	PAT$GB_MOD_PTR [MODE_LENGTH] = DEF_MODE_LENGTH;

;	1070	PAT$GB_MOD_PTR [MODE_SYMBOLS] = TRUE;

;	1071	PAT$GB_MOD_PTR [MODE_INSTRUC] = FALSE;

;	1072	PAT$GB_MOD_PTR [MODE_ASCII] = FALSE;

;	1073	PAT$GB_MOD_PTR [MODE_SCOPE] = TRUE;

;	1074	pat$GB_MOD_PTR [MODE_GLOBALS] = FALSE;

;	1075	PAT$INIT_MODES (USER_DEF_MODE, DEFAULT_MODE);

;	1076	END;













; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 5-1

; Digital Equipment Corporation

;

					 0800 0003F 	    .ENTRY  PAT$RESET_DEF, Save R11				      ; 1027

		         5B 00000000G  EF  9E 00041 	    MOVAB   PAT$GB_MOD_PTR, R11					      ;

		         6B 00000000G  EF  9E 00048 	    MOVAB   PAT$GB_DEF_MOD, PAT$GB_MOD_PTR			      ; 1067

		         50	       6B  D0 0004F 	    MOVL    PAT$GB_MOD_PTR, R0					      ; 1068

		         60 00010410   8F  D0 00052 	    MOVL    #66576, (R0)					      ;

		    04   A0	0100   8F  B0 00059 	    MOVW    #256, 4(R0)						      ; 1072

				  06   A0  94 0005F 	    CLRB    6(R0)						      ; 1074

		         7E	       01  7D 00062 	    MOVQ    #1, -(SP)						      ; 1075

		    97   AF	       02  FB 00065 	    CALLS   #2, PAT$INIT_MODES					      ;

					   04 00069 	    RET     							      ; 1027



; Routine Size:  43 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 6

; Digital Equipment Corporation

;

;	1077	GLOBAL ROUTINE PAT$SET_MOD_LST (LEVEL) : NOVALUE =

;	1078	

;	1079	!++

;	1080	! FUNCTIONAL DESCRIPTION:

;	1081	!

;	1082	!	Sets a list of modes at the specified level.

;	1083	!

;	1084	! CALLING SEQUENCE:

;	1085	!

;	1086	!	PAT$SET_MOD_LST ()

;	1087	!

;	1088	! INPUTS:

;	1089	!

;	1090	!	LEVEL	- Level at which to set modes.

;	1091	!

;	1092	! IMPLICIT INPUTS:

;	1093	!

;	1094	!	-The address of the linked list which holds the switches.

;	1095	!	-The global pointers to the current mode levels.

;	1096	!

;	1097	! OUTPUTS:

;	1098	!

;	1099	!	none

;	1100	!

;	1101	! IMPLICIT OUTPUTS:

;	1102	!

;	1103	!	none

;	1104	!

;	1105	! ROUTINE VALUE:

;	1106	!

;	1107	!	novalue

;	1108	!

;	1109	! SIDE EFFECTS:

;	1110	!

;	1111	!	The appropriate modes are set.

;	1112	!

;	1113	!--

;	1114	

;	1115	BEGIN

;	1116	

;	1117	LOCAL

;	1118		POINTER;

;	1119	PAT$SET_MOD_LVL (.LEVEL);

;	1120	POINTER = .PAT$GL_HEAD_LST;

;	1121	DO

;	1122		PAT$SET_NEW_MOD ( .LIST_ELEM_EXP1 (.POINTER) )

;	1123		UNTIL (POINTER = .LIST_ELEM_FLINK (.POINTER)) EQL 0;

;	1124	END;











					 0004 0006A 	    .ENTRY  PAT$SET_MOD_LST, Save R2				      ; 1077

				  04   AC  DD 0006C 	    PUSHL   LEVEL						      ; 1119



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 6-1

; Digital Equipment Corporation

;

	      00000000V  EF	       01  FB 0006F 	    CALLS   #1, PAT$SET_MOD_LVL					      ;

		         52 00000000G  EF  D0 00076 	    MOVL    PAT$GL_HEAD_LST, POINTER				      ; 1120

				  04   A2  DD 0007D 1$:     PUSHL   4(POINTER)						      ; 1122

	      00000000V  EF	       01  FB 00080 	    CALLS   #1, PAT$SET_NEW_MOD					      ;

		         52	       62  D0 00087 	    MOVL    (POINTER), POINTER					      ; 1123

				       F1  12 0008A 	    BNEQ    1$							      ;

					   04 0008C 	    RET     							      ; 1077



; Routine Size:  35 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 7

; Digital Equipment Corporation

;

;	1125	!++

;	1126	! The following routines control interpretation and typeout modes.

;	1127	!

;	1128	!	Address interpretation and data typeout are controlled by four mode

;	1129	!	settings.  They are 'DEFAULT_MODE', which is the mode set by

;	1130	!	PATCH initialization; 'USER_DEF_MODE', which is the mode set

;	1131	!	by user 'SET MODE' commands; 'OVERRIDE_MODE', which is

;	1132	!	the mode set by a single line override mode command; and

;	1133	!	'LOCAL_MODE', which is the mode set for a single variable.

;	1134	!	The mode used depends on the pointer into the block PAT$GB_DEF_MOD.

;	1135	!

;	1136	!	At initialization time, the four mode settings are initialized to

;	1137	!	the same values.  When these values are changed by user commands, some

;	1138	!	propagation of mode values must move up and down through the different

;	1139	!	blocks so that the items displayed or interpreted will have valid

;	1140	!	and timely mode settings for both radix and length.

;	1141	!

;	1142	!	The routines that follow set the mode block pointers to their new

;	1143	!	value and propagate values as necessary.

;	1144	!

;	1145	!	The general stategy is as follows:

;	1146	!	DEFAULT_MODE settings are never changed.

;	1147	!	USER_DEF_MODE settings are never changed as a result of pointer jiggling.

;	1148	!		They are only changed explicitly in action routines.

;	1149	!	OVERRIDE_MODEsettings are changed to reflect user-set defaults

;	1150	!		when they are the object of the pointer.

;	1151	!	LOCAL_MODE settings are copied from OVERRIDE_MODE settings when they

;	1152	!		are the object of the pointer.

;	1153	!	When the pointer is moving up the block, from LOCAL_MODE toward

;	1154	!		DEFAULT_MODE, no values are propagated.

;	1155	!	Setting of LOCAL_MODE and OVERRIDE_MODE to default settings at the end

;	1156	!		of a command line is the explicit responsibility of the

;	1157	!		END-OF-COMMAND action routine.

;	1158	!--



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 8

; Digital Equipment Corporation

;

;	1159	GLOBAL ROUTINE PAT$SET_MOD_LVL (LEVEL) : NOVALUE =

;	1160	

;	1161	!++

;	1162	! FUNCTIONAL DESCRIPTION

;	1163	!

;	1164	!	See description on page 2.

;	1165	!

;	1166	! CALLING SEQUENCE:

;	1167	!

;	1168	!	PAT$SET_MOD_LVL ()

;	1169	!

;	1170	! INPUTS:

;	1171	!

;	1172	!	novalue

;	1173	!

;	1174	! IMPLICIT INPUTS:

;	1175	!

;	1176	!	none

;	1177	!

;	1178	! OUTPUTS:

;	1179	!

;	1180	!	none

;	1181	!

;	1182	! IMPLICIT OUTPUTS:

;	1183	!

;	1184	!	none

;	1185	!

;	1186	! ROUTINE VALUE:

;	1187	!

;	1188	!	novalue

;	1189	!

;	1190	! SIDE EFFECTS:

;	1191	!

;	1192	!	none

;	1193	!

;	1194	!--

;	1195	

;	1196	BEGIN

;	1197	

;	1198	LOCAL

;	1199		TEMP_LEVEL: REF VECTOR [, BYTE];

;	1200	

;	1201	IF (PAT$GB_DEF_MOD [.LEVEL * MODE_LVL_SIZE] LEQA .PAT$GB_MOD_PTR) OR

;	1202	   (.LEVEL EQL USER_DEF_MODE)

;	1203	THEN

;	1204		BEGIN

;	1205		PAT$GB_MOD_PTR = PAT$GB_DEF_MOD [.LEVEL * MODE_LVL_SIZE];

;	1206		RETURN

;	1207		END;

;	1208	PAT$GL_CONTEXT [OVERRIDE] = TRUE;

;	1209	SELECT .LEVEL OF

;	1210	

;	1211		SET

;	1212	

;	1213		[OVERRIDE_MODE]:



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 8-1

; Digital Equipment Corporation

;

;	1214			BEGIN

;	1215			TEMP_LEVEL = PAT$GB_DEF_MOD [USER_DEF_MODE * MODE_LVL_SIZE];

;	1216			PAT$GB_MOD_PTR = PAT$GB_DEF_MOD [OVERRIDE_MODE * MODE_LVL_SIZE];

;	1217			END;

;	1218	

;	1219	

;	1220		[LOCAL_MODE]:

;	1221			BEGIN

;	1222			IF (.PAT$GB_MOD_PTR EQLA PAT$GB_DEF_MOD [OVERRIDE_MODE * MODE_LVL_SIZE])

;	1223			THEN

;	1224				BEGIN

;	1225				TEMP_LEVEL = .PAT$GB_MOD_PTR;

;	1226				END

;	1227			ELSE

;	1228				BEGIN

;	1229				TEMP_LEVEL = PAT$GB_DEF_MOD [USER_DEF_MODE * MODE_LVL_SIZE];

;	1230				END;

;	1231			PAT$GB_MOD_PTR = PAT$GB_DEF_MOD [LOCAL_MODE * MODE_LVL_SIZE];

;	1232			END;

;	1233	

;	1234		TES;

;	1235	PAT$GB_MOD_PTR [MODE_RADIX] = .TEMP_LEVEL [MODE_RADIX];

;	1236	PAT$GB_MOD_PTR [MODE_LENGTH] = .TEMP_LEVEL [MODE_LENGTH];

;	1237	PAT$GB_MOD_PTR [MODE_SYMBOLS] = .TEMP_LEVEL [MODE_SYMBOLS];

;	1238	PAT$GB_MOD_PTR [MODE_INSTRUC] = .TEMP_LEVEL [MODE_INSTRUC];

;	1239	PAT$GB_MOD_PTR [MODE_ASCII] = .TEMP_LEVEL [MODE_ASCII];

;	1240	PAT$GB_MOD_PTR [MODE_SCOPE] = .TEMP_LEVEL [MODE_SCOPE];

;	1241	PAT$GB_MOD_PTR [MODE_GLOBALS] = .TEMP_LEVEL [MODE_GLOBALS];

;	1242	END;











					 0C00 0008D 	    .ENTRY  PAT$SET_MOD_LVL, Save R10,R11			      ; 1159

		         5A 00000000G  EF  9E 0008F 	    MOVAB   PAT$GB_DEF_MOD+7, R10				      ;

		         5B 00000000G  EF  9E 00096 	    MOVAB   PAT$GB_MOD_PTR, R11					      ;

		         50	  04   AC  D0 0009D 	    MOVL    LEVEL, R0						      ; 1201

	   51	         50	       07  C5 000A1 	    MULL3   #7, R0, R1						      ;

		         51	  F9 AA41  9E 000A5 	    MOVAB   PAT$GB_DEF_MOD[R1], R1				      ;

		         6B	       51  D1 000AA 	    CMPL    R1, PAT$GB_MOD_PTR					      ;

				       05  1B 000AD 	    BLEQU   1$							      ;

		         01	       50  D1 000AF 	    CMPL    R0, #1						      ; 1202

				       04  12 000B2 	    BNEQ    2$							      ;

		         6B	       51  D0 000B4 1$:     MOVL    R1, PAT$GB_MOD_PTR					      ; 1205

					   04 000B7 	    RET     							      ; 1206

	      00000000G  EF	       04  88 000B8 2$:     BISB2   #4, PAT$GL_CONTEXT+1				      ; 1208

		         02	       50  D1 000BF 	    CMPL    R0, #2						      ; 1209

				       07  12 000C2 	    BNEQ    3$							      ;

		         51	       6A  9E 000C4 	    MOVAB   PAT$GB_DEF_MOD+7, TEMP_LEVEL			      ; 1215

		         6B	  07   AA  9E 000C7 	    MOVAB   PAT$GB_DEF_MOD+14, PAT$GB_MOD_PTR			      ; 1216

		         03	       50  D1 000CB 3$:     CMPL    R0, #3						      ; 1209

				       15  12 000CE 	    BNEQ    6$							      ;

		         50	  07   AA  9E 000D0 	    MOVAB   PAT$GB_DEF_MOD+14, R0				      ; 1222

		         50	       6B  D1 000D4 	    CMPL    PAT$GB_MOD_PTR, R0					      ;



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 8-2

; Digital Equipment Corporation

;

				       05  12 000D7 	    BNEQ    4$							      ;

		         51	       6B  D0 000D9 	    MOVL    PAT$GB_MOD_PTR, TEMP_LEVEL				      ; 1225

				       03  11 000DC 	    BRB     5$							      ; 1222

		         51	       6A  9E 000DE 4$:     MOVAB   PAT$GB_DEF_MOD+7, TEMP_LEVEL			      ; 1229

		         6B	  0E   AA  9E 000E1 5$:     MOVAB   PAT$GB_DEF_MOD+21, PAT$GB_MOD_PTR			      ; 1231

		         50	       6B  D0 000E5 6$:     MOVL    PAT$GB_MOD_PTR, R0					      ; 1235

		         60	       61  90 000E8 	    MOVB    (TEMP_LEVEL), (R0)					      ;

		    01   A0	  01   A1  D0 000EB 	    MOVL    1(TEMP_LEVEL), 1(R0)				      ; 1236

		    05   A0	  05   A1  B0 000F0 	    MOVW    5(TEMP_LEVEL), 5(R0)				      ; 1240

					   04 000F5 	    RET     							      ; 1159



; Routine Size:  105 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 9

; Digital Equipment Corporation

;

;	1243	GLOBAL ROUTINE PAT$SET_NEW_MOD ( SWITCH_VALUE ): NOVALUE =

;	1244	

;	1245	!++

;	1246	! FUNCTIONAL DESCRIPTION:

;	1247	!

;	1248	!	This routine sets one mode according to the value

;	1249	!	specified.

;	1250	!

;	1251	! CALLING SEQUENCE:

;	1252	!

;	1253	!	PAT$SET_NEW_MOD ()

;	1254	!

;	1255	! INPUTS:

;	1256	!

;	1257	!	SWITCH_VALUE	- Value to set

;	1258	!

;	1259	! IMPLICIT INPUTS:

;	1260	!

;	1261	!	The current level of modes being used; held in PAT$GB_MOD_PTR.

;	1262	!

;	1263	! OUTPUTS:

;	1264	!

;	1265	!	No value returned.  Modifies the value of the entry in whatever level

;	1266	!	we are in of the mode data structure.

;	1267	!

;	1268	! IMPLICIT OUTPUTS:

;	1269	!

;	1270	!	none

;	1271	!

;	1272	! ROUTINE VALUE:

;	1273	!

;	1274	!	novalue

;	1275	!

;	1276	! SIDE EFFECTS:

;	1277	!

;	1278	!	none

;	1279	!

;	1280	!--

;	1281	

;	1282	BEGIN

;	1283	

;	1284	LOCAL

;	1285		TABLE_PTR : REF VECTOR [, BYTE];

;	1286	

;	1287	TABLE_PTR = MODE_TABLE;

;	1288	REPEAT

;	1289		BEGIN

;	1290		IF (.TABLE_PTR [KEYWORD_FIELD] EQL 0)

;	1291		THEN EXITLOOP;

;	1292		IF (.SWITCH_VALUE EQL .TABLE_PTR [KEYWORD_FIELD])

;	1293		THEN

;	1294			BEGIN

;	1295			PAT$GB_MOD_PTR [.TABLE_PTR [OFFSET_FIELD]] = .TABLE_PTR [VALUE_FIELD];

;	1296			IF (.PAT$GL_CONTEXT[MODE_BIT])

;	1297			THEN



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 9-1

; Digital Equipment Corporation

;

;	1298				PAT$WRITEFILE(.MODE_NAME_TBL[.TABLE_PTR[NAME_OFF_FIELD]],

;	1299						CH$PTR(MODE_NAME_TBL[1], .TABLE_PTR[NAME_OFF_FIELD]),

;	1300						PAT$GL_COMRAB);

;	1301			EXITLOOP

;	1302			END

;	1303		ELSE

;	1304			TABLE_PTR = TABLE_PTR [0] + MODE_ENTRY_LEN;

;	1305		END;

;	1306	END;











					 0804 000F6 	    .ENTRY  PAT$SET_NEW_MOD, Save R2,R11			      ; 1243

		         5B 00000000'  EF  9E 000F8 	    MOVAB   MODE_TABLE, R11					      ;

		         52	       6B  9E 000FF 	    MOVAB   MODE_TABLE, TABLE_PTR				      ;

				       62  95 00102 1$:     TSTB    (TABLE_PTR)						      ; 1290

				       4A  13 00104 	    BEQL    3$							      ;

	   62	         08	       00  ED 00106 	    CMPZV   #0, #8, (TABLE_PTR), SWITCH_VALUE			      ; 1292

				  04   AC     0010A									      ;

				       3D  12 0010C 	    BNEQ    2$							      ;

		         50	  01   A2  9A 0010E 	    MOVZBL  1(TABLE_PTR), R0					      ; 1295

		         50 00000000G  EF  C0 00112 	    ADDL2   PAT$GB_MOD_PTR, R0					      ;

		         60	  02   A2  90 00119 	    MOVB    2(TABLE_PTR), (R0)					      ;

		         2C 00000000G  EF  E9 0011D 	    BLBC    PAT$GL_CONTEXT, 3$					      ; 1296

			    00000000G  EF  9F 00124 	    PUSHAB  PAT$GL_COMRAB					      ; 1298

		         50	  C9   AB  9E 0012A 	    MOVAB   MODE_NAME_TBL+1, R0					      ; 1299

		         51	  03   A2  9A 0012E 	    MOVZBL  3(TABLE_PTR), R1					      ;

				     6140  9F 00132 	    PUSHAB  (R1)[R0]						      ;

		         50	  C8   AB  9E 00135 	    MOVAB   MODE_NAME_TBL, R0					      ; 1243

		         51	  03   A2  9A 00139 	    MOVZBL  3(TABLE_PTR), R1					      ; 1298

		         50	       51  C0 0013D 	    ADDL2   R1, R0						      ;

		         7E	       60  9A 00140 	    MOVZBL  (R0), -(SP)						      ;

	      00000000G  EF	       03  FB 00143 	    CALLS   #3, PAT$WRITEFILE					      ;

					   04 0014A 	    RET     							      ; 1301

		         52	       04  C0 0014B 2$:     ADDL2   #4, TABLE_PTR					      ; 1304

				       B2  11 0014E 	    BRB     1$							      ; 1287

					   04 00150 3$:     RET     							      ; 1243



; Routine Size:  91 bytes







; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 10

; Digital Equipment Corporation

;

;	1307	GLOBAL ROUTINE PAT$SHOW_DEFAL : NOVALUE =

;	1308	

;	1309	!++

;	1310	! FUNCTIONAL DESCRIPTION:

;	1311	!

;	1312	!	Action routine to show default modes.

;	1313	!

;	1314	! CALLING SEQUENCE:

;	1315	!

;	1316	!	PAT$SHOW_DEFAL ()

;	1317	!

;	1318	! INPUTS:

;	1319	!

;	1320	!	none

;	1321	!

;	1322	! IMPLICIT INPUTS:

;	1323	!

;	1324	!	The default modes.

;	1325	!

;	1326	! OUTPUTS:

;	1327	!

;	1328	!	none

;	1329	!

;	1330	! IMPLICIT OUTPUTS:

;	1331	!

;	1332	!	none

;	1333	!

;	1334	! ROUTINE VALUE:

;	1335	!

;	1336	!	novalue

;	1337	!

;	1338	! SIDE EFFECTS:

;	1339	!

;	1340	!	The modes are displayed on the output device.

;	1341	!

;	1342	!--

;	1343	

;	1344	BEGIN

;	1345	

;	1346	LOCAL

;	1347		LEVEL_PTR : REF VECTOR [, BYTE];			! Current mode level

;	1348	

;	1349	LEVEL_PTR = .PAT$GB_MOD_PTR;

;	1350	

;	1351	!++

;	1352	! A temporary fix to hide the symbolic/non-symbolic mode setting is here so that

;	1353	! user is not confused by the reporting of a mode that has no effect yet.

;	1354	!--

;	1355	$FAO_TT_OUT ( 'modes:!ACsymbols,!ACinstruction,!ACascii,!ACscope,!ACglobals, !AC !AC' ,

;     P 1356		YES_NO ( .LEVEL_PTR [MODE_SYMBOLS] ),

;     P 1357		YES_NO ( .LEVEL_PTR [MODE_INSTRUC] ),

;     P 1358		YES_NO ( .LEVEL_PTR [MODE_ASCII] ),

;     P 1359		YES_NO ( .LEVEL_PTR [MODE_SCOPE] ),

;     P 1360		YES_NO ( .LEVEL_PTR [MODE_GLOBALS] ),

;     P 1361	



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 10-1

; Digital Equipment Corporation

;

;     P 1362		(SELECT .LEVEL_PTR[ MODE_RADIX ] OF

;     P 1363	

;     P 1364			SET

;     P 1365			

;     P 1366			[OCTAL_RADIX]:

;     P 1367				CS_OCTAL;

;     P 1368	

;     P 1369			[HEX_RADIX]:

;     P 1370				CS_HEXADECIMAL;

;     P 1371	

;     P 1372			[DECIMAL_RADIX]:

;     P 1373				CS_DECIMAL;

;     P 1374	

;     P 1375			TES),

;     P 1376	

;     P 1377		(SELECT .LEVEL_PTR[ MODE_LENGTH ] OF

;     P 1378	

;     P 1379			SET

;     P 1380	

;     P 1381			[BYTE_LENGTH]:

;     P 1382				CS_BYTE;

;     P 1383	

;     P 1384			[WORD_LENGTH]:

;     P 1385				CS_WORD;

;     P 1386	

;     P 1387			[LONG_LENGTH]:

;     P 1388				CS_LONGWORD;

;     P 1389	

;     P 1390			TES)

;     P 1391		);

;	1392	

;	1393	END;







							    .PSECT  _PAT$PLIT,NOWRT,NOEXE,0



					      000B8 P.AAK:  .BYTE   69							      ;

					      000B9 	    .ASCII  \modes:!ACsymbols,!ACinstruction,!ACascii,!ACscope,!ACg\  ;

					      000EF 	    .ASCII  \lobals, !AC !AC\					      ;

					      000FE	    .BLKB   2







							    .PSECT  _PAT$CODE,NOWRT,2



					 080C 00151 	    .ENTRY  PAT$SHOW_DEFAL, Save R2,R3,R11			      ; 1307

		         5B 00000000'  EF  9E 00153 	    MOVAB   CS_BOOLEAN_ON, R11					      ;

		         50 00000000G  EF  D0 0015A 	    MOVL    PAT$GB_MOD_PTR, LEVEL_PTR				      ; 1349

		         51	  01   A0  9A 00161 	    MOVZBL  1(LEVEL_PTR), R1					      ; 1391

		         52	       01  CE 00165 	    MNEGL   #1, R2						      ;

		         01	       51  91 00168 	    CMPB    R1, #1						      ;

				       07  12 0016B 	    BNEQ    1$							      ;

		         53	  E8   AB  9E 0016D 	    MOVAB   CS_BYTE, R3						      ; 1307

		         52	       53  D0 00171 	    MOVL    R3, R2						      ; 1391



; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 10-2

; Digital Equipment Corporation

;

		         02	       51  91 00174 1$:     CMPB    R1, #2						      ;

				       07  12 00177 	    BNEQ    2$							      ;

		         53	  F0   AB  9E 00179 	    MOVAB   CS_WORD, R3						      ; 1307

		         52	       53  D0 0017D 	    MOVL    R3, R2						      ; 1391

		         04	       51  91 00180 2$:     CMPB    R1, #4						      ;

				       07  12 00183 	    BNEQ    3$							      ;

		         53	  F8   AB  9E 00185 	    MOVAB   CS_LONGWORD, R3					      ; 1307

		         52	       53  D0 00189 	    MOVL    R3, R2						      ; 1391

				       52  DD 0018C 3$:     PUSHL   R2							      ;

		         51	       60  9A 0018E 	    MOVZBL  (LEVEL_PTR), R1					      ;

		         52	       01  CE 00191 	    MNEGL   #1, R2						      ;

		         08	       51  91 00194 	    CMPB    R1, #8						      ;

				       07  12 00197 	    BNEQ    4$							      ;

		         53	  CC   AB  9E 00199 	    MOVAB   CS_OCTAL, R3					      ; 1307

		         52	       53  D0 0019D 	    MOVL    R3, R2						      ; 1391

		         10	       51  91 001A0 4$:     CMPB    R1, #16						      ;

				       07  12 001A3 	    BNEQ    5$							      ;

		         53	  DC   AB  9E 001A5 	    MOVAB   CS_HEXADECIMAL, R3					      ; 1307

		         52	       53  D0 001A9 	    MOVL    R3, R2						      ; 1391

		         0A	       51  91 001AC 5$:     CMPB    R1, #10						      ;

				       07  12 001AF 	    BNEQ    6$							      ;

		         53	  D4   AB  9E 001B1 	    MOVAB   CS_DECIMAL, R3					      ; 1307

		         52	       53  D0 001B5 	    MOVL    R3, R2						      ; 1391

				       52  DD 001B8 6$:     PUSHL   R2							      ;

		         05	  06   A0  E9 001BA 	    BLBC    6(LEVEL_PTR), 7$					      ;

		         51	       6B  9E 001BE 	    MOVAB   CS_BOOLEAN_ON, R1					      ; 1307

				       04  11 001C1 	    BRB     8$							      ; 1391

		         51	  04   AB  9E 001C3 7$:     MOVAB   CS_BOOLEAN_OFF, R1					      ; 1307

				       51  DD 001C7 8$:     PUSHL   R1							      ; 1391

		         05	  05   A0  E9 001C9 	    BLBC    5(LEVEL_PTR), 9$					      ;

		         51	       6B  9E 001CD 	    MOVAB   CS_BOOLEAN_ON, R1					      ; 1307

				       04  11 001D0 	    BRB     10$							      ; 1391

		         51	  04   AB  9E 001D2 9$:     MOVAB   CS_BOOLEAN_OFF, R1					      ; 1307

				       51  DD 001D6 10$:    PUSHL   R1							      ; 1391

		         05	  04   A0  E9 001D8 	    BLBC    4(LEVEL_PTR), 11$					      ;

		         51	       6B  9E 001DC 	    MOVAB   CS_BOOLEAN_ON, R1					      ; 1307

				       04  11 001DF 	    BRB     12$							      ; 1391

		         51	  04   AB  9E 001E1 11$:    MOVAB   CS_BOOLEAN_OFF, R1					      ; 1307

				       51  DD 001E5 12$:    PUSHL   R1							      ; 1391

		         05	  03   A0  E9 001E7 	    BLBC    3(LEVEL_PTR), 13$					      ;

		         51	       6B  9E 001EB 	    MOVAB   CS_BOOLEAN_ON, R1					      ; 1307

				       04  11 001EE 	    BRB     14$							      ; 1391

		         51	  04   AB  9E 001F0 13$:    MOVAB   CS_BOOLEAN_OFF, R1					      ; 1307

				       51  DD 001F4 14$:    PUSHL   R1							      ; 1391

		         05	  02   A0  E9 001F6 	    BLBC    2(LEVEL_PTR), 15$					      ;

		         50	       6B  9E 001FA 	    MOVAB   CS_BOOLEAN_ON, R0					      ; 1307

				       04  11 001FD 	    BRB     16$							      ; 1391

		         50	  04   AB  9E 001FF 15$:    MOVAB   CS_BOOLEAN_OFF, R0					      ; 1307

				       50  DD 00203 16$:    PUSHL   R0							      ; 1391

				0084   CB  9F 00205 	    PUSHAB  P.AAK						      ;

	      00000000G  EF	       08  FB 00209 	    CALLS   #8, PAT$FAO_OUT					      ;

					   04 00210 	    RET     							      ; 1307



; Routine Size:  192 bytes





; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 10-3

; Digital Equipment Corporation

;





; Bliss-32 7.352	Saturday 22-AUG-1978 03:14:06	DBB3:[PATCH.SRC]PATMOD.B32;13					Page 11

; Digital Equipment Corporation

;

;	1394	END

;	1395	ELUDOM













;				       PSECT SUMMARY

;

;	Name		 Bytes			       Attributes

;

;  _PAT$PLIT      	   256  NOWRT,  RD ,NOEXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(0)

;  _PAT$CODE      	   529  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)

;  $CODE$         	     0  NOWRT,  RD ,  EXE,NOSHR,  LCL,  REL,  CON,NOPIC,ALIGN(2)











; Size:		529 code + 256 data bytes

; Run Time:	00:21.6

; Elapsed Time:	00:34.8

; Memory Used:	107 pages

; Compilation Complete

