Google
 

Trailing-Edge - PDP-10 Archives - bb-m403a-bk - zap.lst
There are 2 other files named zap.lst in the archive. Click here to see a list.
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 2


      2					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.15	ZAP.B11	PAGE 1
      3
      4					;     	0001	MODULE ZAP(MAIN,IDENT="X04.03")=
      5					;     	0002	BEGIN
      6					;     	0003
      7					;     	0004	!
      8					;     	0005	!
      9					;     	0006	! COPYRIGHT 1975,
     10					;     	0007	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
     11					;     	0008	!
     12					;     	0009	! THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     13					;     	0010	! ON A SINGLE COMPUTER SYSTEM  AND  CAN BE COPIED (WITH INCLUSION
     14					;     	0011	! OF DEC'S COPYRIGHT NOTICE)  ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     15					;     	0012	! AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     16					;     	0013	!
     17					;     	0014	! THE INFORMATION IN  THIS DOCUMENT IS  SUBJECT TO CHANGE WITHOUT
     18					;     	0015	! NOTICE AND SHOULD NOT  BE CONSTRUED AS  A COMMITMENT BY DIGITAL
     19					;     	0016	! EQUIPMENT CORPORATION.
     20					;     	0017	!
     21					;     	0018	! DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     22					;     	0019	! OF ITS  SOFTWARE  ON  EQUIPMENT  WHICH IS NOT  SUPPLIED BY DEC.
     23					;     	0020	!
     24					;     	0021	! WRITTEN BY
     25					;     	0022	!	M. JACK
     26					;     	0023	!
     27					;     	0024	! MODULE FUNCTION
     28					;     	0025	!	TASK-IMAGE PATCHING UTILITY FOR USE WITH RSX-11D AND RSX-11M
     29					;     	0026	!
     30					;     	0027	!
     31					;     	0028
     32					;     	0029	LINKAGE
     33					;     	0030		REG0 = BLISS(REGISTER=0);
     34					;     	0031
     35					;     	0032	FORWARD
     36					;     	0033		OPENLOC,
     37					;     	0034		REG0 ERRPRT;
     38					;     	0035
     39					;     	0036
     40					;     	0037	REQUIRE STDMAC.BEG;
     41					;     	0038	!	STDMAC.BEG - WIDELY USED STANDARD MACROS
     42					;     	0039	!
     43					;     	0057	SWITCHES LIST; SWITCHES LIST;
     44					;     	0058	!	VERSION 000005
     45					;     	0059	!	LAST MODIFIED 05/13/74 RBG
     46					;     	0098	SWITCHES LIST; SWITCHES LIST;
     47					;     	0099	!	STDMAC.BEG LAST LINE
     48					;     	0100
     49					;     	0101	REQUIRE STDSTR.BEG;
     50					;     	0102	!	STDSTR.BEG - WIDELY USED STANDARD STRUCTURES
     51					;     	0103	!
     52					;     	0121	SWITCHES LIST; SWITCHES LIST;
     53					;     	0122	!	VERSION 000003
     54					;     	0123	!	LAST MODIFIED 02/28/74 RBG
     55					;     	0137	SWITCHES LIST; SWITCHES LIST;
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 3


     57					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.16	STDSTR.BEG	PAGE 1-1
     58
     59					;     	0138	!	STDSTR.BEG LAST LINE
     60					;     	0139
     61					;     	0140	REQUIRE ZAP.BEG;
     62					;     	0141	!	ZAP.BEG - BEGIN FILE FOR ZAP
     63					;     	0142	!
     64					;     	0152	SWITCHES LIST; SWITCHES LIST;
     65					;     	0153	!
     66					;     	0154	!	VERSION 000002
     67					;     	0155	!	LAST MODIFIED 09/01/74
     68					;     	0156	!
     69					;     	0157
     70					;     	0158	STRUCTURE
     71					;     	0159		BUFFER[I] = (.BUFFER + .I)<0,16>;
     72					;     	0160
     73					;     	0161	BIND
     74					;     	0162		SEGSIZ=	5,		! LENGTH OF SEGMENT TABLE ENTRY
     75					;     	0163		SEGENT=	64;		! NUMBER OF SEGMENT TABLE ENTRIES
     76					;     	0164
     77					;     	0165	MACRO
     78					;     	0166		SEGBLK=	0,0,16$,	! STARTING DISK BLOCK (SEGMENT "NAME")
     79					;     	0167		SEGLOW=	1,0,16$,	! LOW ADDRESS
     80					;     	0168		SEGHIGH=2,0,16$,	! HIGH ADDRESS PLUS ONE
     81					;     	0169		SEGVIRT=3,0,16$,	! VIRTUAL ORIGIN DATA
     82					;     	0170		SEGVIR1=3,0,16$,	! HIGH ORDER WORD OF SEGVIRT
     83					;     	0171		SEGVIR0=4,0,16$,	! LOW ORDER WORD OF SEGVIRT
     84					;     	0172		SEGVIRW=4,0,9$,		! WORD OFFSET PART OF SEGVIRT
     85					;     	0173		SEGNEXT=5,0,16$;	! OFFSET TO NEXT ENTRY
     86					;     	0174
     87					;     	0175	MACRO
     88					;     	0176		ABSOLUTE=0,0,1$,	! /AB SWITCH BIT
     89					;     	0177		READONLY=0,1,1$,	! /RO SWITCH BIT
     90					;     	0178		LISTING=0,2,1$;		! /LI SWITCH BIT
     91					;     	0179
     92					;     	0180	BIND
     93					;     	0181		NORELO=	0,		! NO SUCH RELOCATION REGISTER
     94					;     	0182		ADROOB=	1,		! ADDRESS NOT WITHIN SEGMENT
     95					;     	0183		NOSEGM=	2,		! NO SUCH SEGMENT
     96					;     	0184		BADARG=	3,		! BAD ARGUMENT COUNT
     97					;     	0185		NOSPEC=	4,		! NO SUCH SPECIAL REGISTER
     98					;     	0186		BADCMD=	5,		! UNRECOGNIZABLE COMMAND
     99					;     	0187		NOOPEN=	6,		! NO OPEN LOCATION
    100					;     	0188		NOBYTE=	7,		! CANNOT USE IN BYTE MODE
    101					;     	0189		BADTSK=	12,		! BAD TASK IMAGE
    102					;     	0190		VFYREJ=	13,		! VERIFY REJECT
    103					;     	0191		NOTYET=	14;		! NOT YET IMPLEMENTED
    104					;     	0192
    105					;     	0193	BIND
    106					;     	0194		SIGXIT=	-1,		! SIGNAL VALUE FOR EXIT
    107					;     	0195		SIGADR=	-2;		! SIGNAL VALUE FOR ADDRESS ERROR
    108					;     	0196
    109					;     	0197	!
    110					;     	0198	!	ZAP.BEG LAST LINE
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 4


    112					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.17	ZAP.BEG	PAGE 1-2
    113
    114					;     	0199
    115					;     	0200
    116					;     	0201	PSECT
    117					;     	0202		CODE=" ", OWN=" ", GLOBAL=" ";
    118					;     	0203
    119					;     	0204	EXTERNAL
    120					;     	0205		ABORT,			! EXIT IMMEDIATELY
    121					;     	0206		FCSCLOSE,		! CLOSE FILES AND EXIT
    122					;     	0207		REG0 FCSREAD,		! READ TASK IMAGE BLOCK
    123					;     	0208		TRANSLATE,		! TRANSLATE SEGMENT-OFFSET TO BLOCK-WORD
    124					;     	0209		REG0 OUTSA,		! OUTPUT ASCIZ STRING
    125					;     	0210		EOL,			! OUTPUT RECORD
    126					;     	0211		ZAPINIT,		! INITIALIZATION CODE
    127					;     	0212		ZAPPROC;		! PROCESSING CODE
    128					;     	0213
    129					;     	0214	EXTERNAL
    130					;     	0215		BLOCK SWITCH;		! COMMAND SWITCHES
    131					;     	0216
    132					;     	0217	GLOBAL
    133					;     	0218		STKLIM = (64),		! SP STACK LIMIT
    134					;     	0219		VECBLOCK SEGTAB[SEGENT,SEGSIZ],	! SEGMENT TABLE
    135					;     	0220		PBLOCK SEGMAX,		! POINT TO FIRST FREE LOC IN SEGTAB
    136					;     	0221		REALDOT;		! POINT TO "DOT" IN BUFFER
    137					;     	0222
    138					;     	0223
    139					;     	0224
    140					;     	0225
    141					;     	0226	COMMENT ! OPENLOC(SEG,ADDR)
    142					;     	0227	!
    143					;     	0228	! FUNCTION
    144					;     	0229	!	OPEN A LOCATION IN TASK ADDRESS SPACE
    145					;     	0230	!
    146					;     	0231	! INPUTS
    147					;     	0232	!	SEG	- THE SEGMENT-ID FOR THE SEGMENT
    148					;     	0233	!	ADDR	- THE ADDRESS IN TASK ADDRESS SPACE
    149					;     	0234	!
    150					;     	0235	! OUTPUTS
    151					;     	0236	!	REALDOT	- THE ADDRESS IN BLOCK BUFFER OF THE WORD OPENED
    152					;     	0237	!	VALUE	- THE CONTENTS OF THE WORD OPENED
    153					;     	0238	!
    154					;     	0239
    155					;     	0240	GLOBAL ROUTINE OPENLOC(SEG,ADDR)=
    156					;     	0241	    BEGIN
    157					;     	0242
    158					;     	0243	    LOCAL
    159					;     	0244		SEGHIT,			! FOUND A SEGMENT-NUMBER MATCH
    160					;     	0245		PBLOCK SEGPTR;
    161					;     	0246
    162					;     	0247	    OWN
    163					;     	0248		TEMP[2];		! TEMPORARY VECTOR
    164					;     	0249
    165					;     	0250	    IF .SWITCH[ABSOLUTE]
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 5


    167					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.17	ZAP.B11	PAGE 1-3
    168
    169					;     	0251	    THEN
    170					;     	0252		BEGIN
    171					;     	0253		IF .SEG EQL 0 THEN SEG = 1;
    172					;     	0254		TEMP[0] = .SEG<7,9>;
    173					;     	0255		TEMP[1] = .SEG * 512;
    174					;     	0256		TRANSLATE(TEMP,.ADDR,TEMP,REALDOT);
    175					;     	0257		FCSREAD(TEMP);
    176					;     	0258		RETURN ..REALDOT;
    177					;     	0259		END
    178					;     	0260	    ELSE
    179					;     	0261		BEGIN
    180					;     	0262		SEGHIT = 0;
    181					;     	0263		SEGPTR = SEGTAB;
    182					;     	0264		DO
    183					;     	0265		    BEGIN
    184					;     	0266		    IF .SEG EQL .SEGPTR[SEGBLK]
    185					;     	0267		    THEN
    186					;     	0268			BEGIN
    187					;     	0269			SEGHIT = .SEGHIT + 1;
    188					;     	0270			IF
    189					;     	0271			    .ADDR GEQU .SEGPTR[SEGLOW] AND
    190					;     	0272			    .ADDR LSSU .SEGPTR[SEGHIGH]
    191					;     	0273			THEN
    192					;     	0274			    BEGIN
    193					;     	0275			    TRANSLATE(SEGPTR[SEGVIRT],.ADDR,TEMP,REALDOT);
    194					;     	0276			    FCSREAD(TEMP);
    195					;     	0277			    RETURN ..REALDOT;
    196					;     	0278			    END
    197					;     	0279			END;
    198					;     	0280		    SEGPTR = SEGPTR[SEGNEXT];
    199					;     	0281		    END
    200					;     	0282		UNTIL
    201					;     	0283		    .SEGPTR GEQU .SEGMAX;
    202					;     	0284		ERRPRT(IF .SEGHIT NEQ 0 THEN ADROOB ELSE NOSEGM);
    203					;     	0285		SIGNAL SIGADR
    204					;     	0286		END;
    205					;     	0287
    206					;     	0288	    END;
    207					;     	0289
    208					.TITLE ZAP
    209					.IDENT /X04.03/
    210	000000				.PSECT
    211
    212
    213		000000 			R$0=%0
    214		000001 			R$1=%1
    215		000002 			R$2=%2
    216		000003 			R$3=%3
    217		000004 			R$4=%4
    218		000005 			R$5=%5
    219		000006 			SP=%6
    220		000007 			PC=%7
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 6


    222					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.21	ZAP.B11	PAGE 1-4
    223
    224
    225
    226	000000				OPENLOC:
    227	000000	004167 	000000G			JSR	R$1,$SAV3
    228	000004	016603 	000014 			MOV	14(SP),R$3
    229	000010	132737 	000001 	000000G		BITB	#1,@#SWITCH
    230	000016	001432 				BEQ	L$3
    231	000020	005703 				TST	R$3
    232	000022	001003 				BNE	L$6
    233	000024	012766 	000001 	000014 		MOV	#1,14(SP)
    234	000032	016602 	000014 		L$6:	MOV	14(SP),R$2
    235	000036	006102 				ROL	R$2
    236	000040	106102 				ROLB	R$2
    237	000042	000302 				SWAB	R$2
    238	000044	042702 	177000 			BIC	#177000,R$2
    239	000050	010267 	000200 			MOV	R$2,TEMP
    240	000054	016602 	000014 			MOV	14(SP),R$2
    241	000060	000302 				SWAB	R$2
    242	000062	105002 				CLRB	R$2
    243	000064	006302 				ASL	R$2
    244	000066	010267 	000164 			MOV	R$2,TEMP+2
    245	000072	012746 	000254'			MOV	#TEMP,-(SP)
    246	000076	016646 	000014 			MOV	14(SP),-(SP)
    247	000102	000422 				BR	L$28
    248	000104	005002 			L$3:	CLR	R$2
    249	000106	012701 	001172'			MOV	#SEGTAB,R$1
    250	000112	020311 			L$9:	CMP	R$3,@R$1
    251	000114	001034 				BNE	L$11
    252	000116	005202 				INC	R$2
    253	000120	016600 	000012 			MOV	12(SP),R$0
    254	000124	020061 	000002 			CMP	R$0,2(R$1)
    255	000130	103426 				BLO	L$11
    256	000132	020061 	000004 			CMP	R$0,4(R$1)
    257	000136	103023 				BHIS	L$11
    258	000140	010146 				MOV	R$1,-(SP)
    259	000142	062716 	000006 			ADD	#6,@SP
    260	000146	010046 				MOV	R$0,-(SP)
    261	000150	012746 	000254'		L$28:	MOV	#TEMP,-(SP)
    262	000154	012746 	001164'			MOV	#REALDOT,-(SP)
    263	000160	004767 	000000G			JSR	PC,TRANSLATE
    264	000164	012700 	000254'			MOV	#TEMP,R$0
    265	000170	004767 	000000G			JSR	PC,FCSREAD
    266	000174	017700 	000764 			MOV	@REALDOT,R$0
    267	000200	062706 	000010 			ADD	#10,SP
    268	000204	000207 				RTS	PC
    269	000206	062701 	000012 		L$11:	ADD	#12,R$1
    270	000212	020137 	001166'			CMP	R$1,@#SEGMAX
    271	000216	103735 				BLO	L$9
    272	000220	005702 				TST	R$2
    273	000222	001403 				BEQ	L$19
    274	000224	012700 	000001 			MOV	#1,R$0
    275	000230	000402 				BR	L$20
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 7


    277					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.21	ZAP.B11	PAGE 1-5
    278
    279	000232	012700 	000002 		L$19:	MOV	#2,R$0
    280	000236	004767 	000016 		L$20:	JSR	PC,ERRPRT
    281	000242	012700 	177776 			MOV	#177776,R$0
    282	000246	000167 	000000G			JMP	$SIGNL
    283	000252	000207 			L$2:	RTS	PC
    284
    285					; ROUTINE SIZE:  86
    286
    287
    288	000254				.PSECT
    289
    290	000254	000260'			TEMP: .=.+4
    291
    292
    293
    294					;     	0290	COMMENT ! ERRPRT(P)
    295					;     	0291	!
    296					;     	0292	! FUNCTION
    297					;     	0293	!	OUTPUT A MESSAGE
    298					;     	0294	!
    299					;     	0295	! INPUTS
    300					;     	0296	!	P	- MESSAGE INDEX
    301					;     	0297	!
    302					;     	0298	! OUTPUTS
    303					;     	0299	!	MESSAGE TYPED ON CONSOLE
    304					;     	0300	!	VALUE	- NONE
    305					;     	0301	!
    306					;     	0302
    307					;     	0303	GLOBAL ROUTINE REG0 ERRPRT(P)=
    308					;     	0304	    BEGIN
    309					;     	0305
    310					;     	0306	    BIND
    311					;     	0307		MESSAGES = UPLIT(
    312					;     	0308		    UPLIT ASCIZ "NO SUCH RELOCATION REGISTER",
    313					;     	0309		    UPLIT ASCIZ "ADDRESS NOT WITHIN SEGMENT",
    314					;     	0310		    UPLIT ASCIZ "NO SUCH SEGMENT",
    315					;     	0311		    UPLIT ASCIZ "TOO MANY ARGUMENTS",
    316					;     	0312		    UPLIT ASCIZ "NO SUCH INTERNAL REGISTER",
    317					;     	0313		    UPLIT ASCIZ "UNRECOGNIZED COMMAND",
    318					;     	0314		    UPLIT ASCIZ "NO OPEN LOCATION",
    319					;     	0315		    UPLIT ASCIZ "CANNOT BE USED IN BYTE MODE",
    320					;     	0316		    UPLIT ASCIZ "ERROR IN FILE SPECIFICATION",
    321					;     	0317		    UPLIT ASCIZ "OPEN FAILURE FOR TASK IMAGE FILE",
    322					;     	0318		    UPLIT ASCIZ "ERROR ON COMMAND INPUT",
    323					;     	0319		    UPLIT ASCIZ "I/O ERROR ON TASK IMAGE FILE",
    324					;     	0320		    UPLIT ASCIZ "NOT A TASK IMAGE FILE",
    325					;     	0321		    UPLIT ASCIZ "VERIFY FAILURE",
    326					;     	0322		    UPLIT ASCIZ "NOT IMPLEMENTED");
    327					;     	0323
    328					;     	0324	    OUTSA(.MESSAGES[.P]);
    329					;     	0325	    EOL();
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 8


    331					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.22	ZAP.B11	PAGE 1-6
    332
    333					;     	0326	    NOVALUE
    334					;     	0327	    END;
    335					;     	0328
    336
    337	000260				.PSECT
    338
    339
    340	000260				ERRPRT:
    341	000260	006300 				ASL	R$0
    342	000262	016000 	000604'			MOV	P$AAB(R$0),R$0
    343	000266	004767 	000000G			JSR	PC,OUTSA
    344	000272	000167 	000000G			JMP	EOL
    345
    346					; ROUTINE SIZE:  7
    347
    348
    349	000276				.PSECT
    350
    351	000276	040503 	047116 	052117 	P$AAJ:	.WORD  40503,47116,52117
    352	000304	041040 	020105 	051525 		.WORD  41040,20105,51525
    353	000312	042105 	044440 	020116 		.WORD  42105,44440,20116
    354	000320	054502 	042524 	046440 		.WORD  54502,42524,46440
    355	000326	042117 	000105 			.WORD  42117,105
    356	000332	051105 	047522 	020122 	P$AAK:	.WORD  51105,47522,20122
    357	000340	047111 	043040 	046111 		.WORD  47111,43040,46111
    358	000346	020105 	050123 	041505 		.WORD  20105,50123,41505
    359	000354	043111 	041511 	052101 		.WORD  43111,41511,52101
    360	000362	047511 	000116 			.WORD  47511,116
    361	000366	050117 	047105 	043040 	P$AAL:	.WORD  50117,47105,43040
    362	000374	044501 	052514 	042522 		.WORD  44501,52514,42522
    363	000402	043040 	051117 	052040 		.WORD  43040,51117,52040
    364	000410	051501 	020113 	046511 		.WORD  51501,20113,46511
    365	000416	043501 	020105 	044506 		.WORD  43501,20105,44506
    366	000424	042514 	000000 			.WORD  42514,0
    367	000430	051105 	047522 	020122 	P$AAM:	.WORD  51105,47522,20122
    368	000436	047117 	041440 	046517 		.WORD  47117,41440,46517
    369	000444	040515 	042116 	044440 		.WORD  40515,42116,44440
    370	000452	050116 	052125 	000000 		.WORD  50116,52125,0
    371	000460	027511 	020117 	051105 	P$AAN:	.WORD  27511,20117,51105
    372	000466	047522 	020122 	047117 		.WORD  47522,20122,47117
    373	000474	052040 	051501 	020113 		.WORD  52040,51501,20113
    374	000502	046511 	043501 	020105 		.WORD  46511,43501,20105
    375	000510	044506 	042514 	000000 		.WORD  44506,42514,0
    376	000516	047516 	020124 	020101 	P$AAO:	.WORD  47516,20124,20101
    377	000524	040524 	045523 	044440 		.WORD  40524,45523,44440
    378	000532	040515 	042507 	043040 		.WORD  40515,42507,43040
    379	000540	046111 	000105 			.WORD  46111,105
    380	000544	042526 	044522 	054506 	P$AAP:	.WORD  42526,44522,54506
    381	000552	043040 	044501 	052514 		.WORD  43040,44501,52514
    382	000560	042522 	000000 			.WORD  42522,0
    383	000564	047516 	020124 	046511 	P$AAQ:	.WORD  47516,20124,46511
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 9


    385					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.24	ZAP.B11	PAGE 1-7
    386
    387	000572	046120 	046505 	047105 		.WORD  46120,46505,47105
    388	000600	042524 	000104 			.WORD  42524,104
    389	000604	000642'	000676'	000732'	P$AAB:	.WORD  P$AAC,P$AAD,P$AAE
    390	000612	000752'	000776'	001030'		.WORD  P$AAF,P$AAG,P$AAH
    391	000620	001056'	000276'	000332'		.WORD  P$AAI,P$AAJ,P$AAK
    392	000626	000366'	000430'	000460'		.WORD  P$AAL,P$AAM,P$AAN
    393	000634	000516'	000544'	000564'		.WORD  P$AAO,P$AAP,P$AAQ
    394	000642	047516 	051440 	041525 	P$AAC:	.WORD  47516,51440,41525
    395	000650	020110 	042522 	047514 		.WORD  20110,42522,47514
    396	000656	040503 	044524 	047117 		.WORD  40503,44524,47117
    397	000664	051040 	043505 	051511 		.WORD  51040,43505,51511
    398	000672	042524 	000122 			.WORD  42524,122
    399	000676	042101 	051104 	051505 	P$AAD:	.WORD  42101,51104,51505
    400	000704	020123 	047516 	020124 		.WORD  20123,47516,20124
    401	000712	044527 	044124 	047111 		.WORD  44527,44124,47111
    402	000720	051440 	043505 	042515 		.WORD  51440,43505,42515
    403	000726	052116 	000000 			.WORD  52116,0
    404	000732	047516 	051440 	041525 	P$AAE:	.WORD  47516,51440,41525
    405	000740	020110 	042523 	046507 		.WORD  20110,42523,46507
    406	000746	047105 	000124 			.WORD  47105,124
    407	000752	047524 	020117 	040515 	P$AAF:	.WORD  47524,20117,40515
    408	000760	054516 	040440 	043522 		.WORD  54516,40440,43522
    409	000766	046525 	047105 	051524 		.WORD  46525,47105,51524
    410	000774	000000 				.WORD  0
    411	000776	047516 	051440 	041525 	P$AAG:	.WORD  47516,51440,41525
    412	001004	020110 	047111 	042524 		.WORD  20110,47111,42524
    413	001012	047122 	046101 	051040 		.WORD  47122,46101,51040
    414	001020	043505 	051511 	042524 		.WORD  43505,51511,42524
    415	001026	000122 				.WORD  122
    416	001030	047125 	042522 	047503 	P$AAH:	.WORD  47125,42522,47503
    417	001036	047107 	055111 	042105 		.WORD  47107,55111,42105
    418	001044	041440 	046517 	040515 		.WORD  41440,46517,40515
    419	001052	042116 	000000 			.WORD  42116,0
    420	001056	047516 	047440 	042520 	P$AAI:	.WORD  47516,47440,42520
    421	001064	020116 	047514 	040503 		.WORD  20116,47514,40503
    422	001072	044524 	047117 	000000 		.WORD  44524,47117,0
    423
    424
    425
    426					;     	0329	COMMENT ! MAIN PROGRAM
    427					;     	0330	!
    428					;     	0331	! FUNCTION
    429					;     	0332	!	ACTS AS THE DRIVER PROGRAM
    430					;     	0333	!
    431					;     	0334
    432					;     	0335	    ENABLE
    433					;     	0336		ALWAYS:
    434					;     	0337		    BEGIN
    435					;     	0338		    ENABLE
    436					;     	0339			ALWAYS:  ABORT()
    437					;     	0340		    ELBANE;
    438					;     	0341		    FCSCLOSE()
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 10


    440					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.26	ZAP.B11	PAGE 1-8
    441
    442					;     	0342		    END
    443					;     	0343	    ELBANE;
    444					;     	0344
    445					;     	0345	    ZAPINIT();
    446					;     	0346	    ZAPPROC()
    447					;     	0347
    448					;     	0348	END
    449					;     	0349	ELUDOM
    450
    451	001100				.PSECT
    452
    453
    454	001100				ZAP:
    455	001100	162706 	000014 			SUB	#14,SP
    456	001104	012700 	000014 			MOV	#14,R$0
    457	001110	004767 	000000G			JSR	PC,$ENABL
    458	001114	000026 				.WORD	L$33-L$32
    459	001116	012700 	000006 		L$32:	MOV	#6,R$0
    460	001122	004767 	000000G			JSR	PC,$ENABL
    461	001126	000006 				.WORD	L$35-L$34
    462	001130	004767 	000000G		L$34:	JSR	PC,ABORT
    463	001134	000000 				HALT
    464	001136	004767 	000000G		L$35:	JSR	PC,FCSCLOSE
    465	001142	000404 				BR	L$36
    466	001144	004767 	000000G		L$33:	JSR	PC,ZAPINIT
    467	001150	004767 	000000G			JSR	PC,ZAPPROC
    468	001154	017767 	000000G	000000G	L$36:	MOV	@SIGREG,SIGREG
    469	001162	000000 			U$36:	HALT
    470
    471					; ROUTINE SIZE:  26
    472
    473
    474	001164				.PSECT
    475
    476	001164	001166'			REALDOT: .=.+2
    477	001166	001170'			SEGMAX: .=.+2
    478	001170	000100 			STKLIM:	.WORD  100
    479	001172	002372'			SEGTAB: .=.+1200
    480					.GLOBL ZAPINIT
    481					.GLOBL FCSCLOSE
    482					.GLOBL REALDOT
    483					.GLOBL OUTSA
    484					.GLOBL SEGMAX
    485					.GLOBL ZAPPROC
    486					.GLOBL ABORT
    487					.GLOBL STKLIM
    488					.GLOBL EOL
    489					.GLOBL FCSREAD
    490					.GLOBL SEGTAB
    491					.GLOBL TRANSLATE
    492					.GLOBL SWITCH
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 11


    494					; BLIS11 V.74206	SUNDAY 13-APR-75 1:41.28	ZAP.B11	PAGE 1-9
    495
    496					.GLOBL ERRPRT
    497					.GLOBL OPENLOC
    498
    499					.GLOBL $ENABL
    500					.GLOBL $SIGN1
    501					.GLOBL $SIGNL
    502					.GLOBL $SAV3
    503					.GLOBL SIGREG
    504					.GLOBL SIGVAL
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514					; SIZE:  119+518
    515					; RUN TIME:  6 SECONDS
    516					; CORE USED:  16K
    517					; COMPILATION COMPLETE
    518
    519		001100'			.END ZAP
ZAP	MACRO M1113  14-APR-81 11:46  PAGE 11-1
SYMBOL TABLE

ABORT = ****** G 	L$33    001144R  	P$AAF   000752R  	REALDO  001164RG 	SWITCH= ****** G
EOL   = ****** G 	L$34    001130R  	P$AAG   000776R  	R$0   =%000000   	TEMP    000254R
ERRPRT  000260RG 	L$35    001136R  	P$AAH   001030R  	R$1   =%000001   	TRANSL= ****** G
FCSCLO= ****** G 	L$36    001154R  	P$AAI   001056R  	R$2   =%000002   	U$36    001162R
FCSREA= ****** G 	L$6     000032R  	P$AAJ   000276R  	R$3   =%000003   	ZAP     001100R
L$11    000206R  	L$9     000112R  	P$AAK   000332R  	R$4   =%000004   	ZAPINI= ****** G
L$19    000232R  	OPENLO  000000RG 	P$AAL   000366R  	R$5   =%000005   	ZAPPRO= ****** G
L$2     000252R  	OUTSA = ****** G 	P$AAM   000430R  	SEGMAX  001166RG 	$ENABL= ****** G
L$20    000236R  	P$AAB   000604R  	P$AAN   000460R  	SEGTAB  001172RG 	$SAV3 = ****** G
L$28    000150R  	P$AAC   000642R  	P$AAO   000516R  	SIGREG= ****** G 	$SIGNL= ****** G
L$3     000104R  	P$AAD   000676R  	P$AAP   000544R  	SIGVAL= ****** G 	$SIGN1= ****** G
L$32    001116R  	P$AAE   000732R  	P$AAQ   000564R  	STKLIM  001170RG

. ABS.	000000	   000
      	002372	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  341 WORDS  ( 2 PAGES)
DYNAMIC MEMORY:  2518 WORDS  ( 9 PAGES)
ELAPSED TIME:  00:00:06
[62,10]ZAP,[62,20]ZAP/-SP/CR=[62,30]ZAP.P11
ZAP        CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ABORT 	= ******  G	 10-462     10-486    
EOL   	= ******  G	 8-344      10-488    
ERRPRT	  000260 RG	 7-280     #8-340      11-496    
FCSCLO	= ******  G	 10-464     10-481    
FCSREA	= ******  G	 6-265      10-489    
L$11  	  000206 R	 6-251      6-255      6-257     #6-269     
L$19  	  000232 R	 6-273     #7-279     
L$2   	  000252 R	#7-283     
L$20  	  000236 R	 6-275     #7-280     
L$28  	  000150 R	 6-247     #6-261     
L$3   	  000104 R	 6-230     #6-248     
L$32  	  001116 R	 10-458    #10-459    
L$33  	  001144 R	 10-458    #10-466    
L$34  	  001130 R	 10-461    #10-462    
L$35  	  001136 R	 10-461    #10-464    
L$36  	  001154 R	 10-465    #10-468    
L$6   	  000032 R	 6-232     #6-234     
L$9   	  000112 R	#6-250      6-271     
OPENLO	  000000 RG	#6-226      11-497    
OUTSA 	= ******  G	 8-343      10-483    
P$AAB 	  000604 R	 8-342     #9-389     
P$AAC 	  000642 R	 9-389     #9-394     
P$AAD 	  000676 R	 9-389     #9-399     
P$AAE 	  000732 R	 9-389     #9-404     
P$AAF 	  000752 R	 9-390     #9-407     
P$AAG 	  000776 R	 9-390     #9-411     
P$AAH 	  001030 R	 9-390     #9-416     
P$AAI 	  001056 R	 9-391     #9-420     
P$AAJ 	  000276 R	#8-351      9-391     
P$AAK 	  000332 R	#8-356      9-391     
P$AAL 	  000366 R	#8-361      9-392     
P$AAM 	  000430 R	#8-367      9-392     
P$AAN 	  000460 R	#8-371      9-392     
P$AAO 	  000516 R	#8-376      9-393     
P$AAP 	  000544 R	#8-380      9-393     
P$AAQ 	  000564 R	#8-383      9-393     
REALDO	  001164 RG	 6-262      6-266     #10-476     10-482    
R$0   	=%000000	#5-213     *6-253      6-254      6-256      6-260     *6-264     *6-266     *6-274     *7-279     
                        *7-281     *8-341      8-342     *8-342     *10-456    *10-459    
R$1   	=%000001	#5-214     *6-227     *6-249      6-250      6-254      6-256      6-258     *6-269      6-270     
R$2   	=%000002	#5-215     *6-234     *6-235     *6-236     *6-237     *6-238      6-239     *6-240     *6-241     
                        *6-242     *6-243      6-244     *6-248     *6-252      6-272     
R$3   	=%000003	#5-216     *6-228      6-231      6-250     
R$4   	=%000004	#5-217     
R$5   	=%000005	#5-218     
SEGMAX	  001166 RG	 6-270     #10-477     10-484    
SEGTAB	  001172 RG	 6-249     #10-479     10-490    
SIGREG	= ******  G	 10-468    *10-468     11-503    
SIGVAL	= ******  G	 11-504    
STKLIM	  001170 RG	#10-478     10-487    
SWITCH	= ******  G	 6-229      10-492    
TEMP  	  000254 R	*6-239     *6-244      6-245      6-261      6-264     #7-290     
ZAP        CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

TRANSL	= ******  G	 6-263      10-491    
U$36  	  001162 R	#10-469    
ZAP   	  001100 R	#10-454     11-519    
ZAPINI	= ******  G	 10-466     10-480    
ZAPPRO	= ******  G	 10-467     10-485    
$ENABL	= ******  G	 10-457     10-460     11-499    
$SAV3 	= ******  G	 6-227      11-502    
$SIGNL	= ******  G	 7-282      11-501    
$SIGN1	= ******  G	 11-500    
ZIOSRV	MACRO M1113  14-APR-81 11:46
TABLE OF CONTENTS

     2-   61	GLOBAL STORAGE
     3-  122	COMAND -- COMMAND INPUT
     4-  152	FCSREAD -- READ A BLOCK FROM TASK IMAGE
     5-  188	REWRIT -- REWRITE BLOCK IF MODIFIED
     6-  228	EOL -- WRITE LINE TO CONSOLE LOG
     7-  255	ERROR HANDLERS
     8-  270	TRANSLATE -- TRANSLATE VIRTUAL ADDRESS TO VBN AND BYTE
     9-  317	BYTSXT -- BYTE SIGN EXTENSION
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 1


      1						.TITLE	ZIOSRV
      2						.IDENT	/000003/
      3
      4					;+
      5					;
      6					; COPYRIGHT 1975
      7					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      8					;
      9					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     10					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     11					; EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES
     12					; NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
     13					;
     14					; THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO PURCHASER
     15					; UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE
     16					; COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR
     17					; USE IN SUCH SYSTEM, EXCEPT AS MAY BE OTHERWISE BE PROVIDED IN
     18					; WRITING BY DIGITAL.
     19					;
     20					; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
     21					; USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT
     22					; SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
     23					;
     24					;
     25					; WRITTEN BY
     26					;	M. JACK
     27					;
     28					; MODULE FUNCTION
     29					;	I/O SERVICES FOR THE TASK IMAGE PATCHING UTILITY
     30					;
     31					;-
     32
     33
     34					;+
     35					;	GLOBAL DEFINITIONS
     36					;-
     37
     38						.MCALL	FSRSZ$,	FDBDF$,	FDAT$A,	FDRC$A,	FDBK$A,	FDOP$A,	NMBLK$
     39						.MCALL	GCMLB$,	GCML$,	READ$,	WRITE$,	WAIT$,	PUT$S,	FDOF$L
     40						.MCALL	FCSBT$,	NBOF$L,	GCMLD$,	CSI$,	CALL,	RETURN
     41
     42		000010 			CSIERR==8.			; ERROR IN FILE SPECIFICATION
     43		000011 			OPNERR==9.			; OPEN FAILURE ON TASK FILE
     44		000012 			CMIERR==10.			; ERROR ON COMMAND INPUT
     45		000013 			TRNERR==11.			; TRANSMIT ERROR ON TASK FILE
     46
     47		177777 			SIGXIT==-1			; SIGNAL VALUE FOR EXIT
     48
     49		000001 			ABSOLU==1			; /AB SWITCH BIT
     50		000002 			RDONLY==2			; /RO SWITCH BIT
     51		000004 			LSTING==4			; /LI SWITCH BIT
     52
     53	000000					FDOF$L
     54	000000					FCSBT$
     55	000000					NBOF$L
     56	000000					GCMLD$
     57	000000					CSI$
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 1-1


     58
     59	000000					FSRSZ$	2
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 2
GLOBAL STORAGE

     61						.SBTTL	GLOBAL STORAGE
     62
     63
     64					;+
     65					;	FILE DESCRIPTOR BLOCK FOR TASK IMAGE
     66					;-
     67
     68	000000				TSKFDB::FDBDF$
     69	000140					FDRC$A	FD.RWM
     70	000140					FDBK$A	BLKBUF,512.
     71	000140					FDOP$A	6,CSIBLK+C.DSDS,TSKDFN
     72
     73	000140				TSKDFN:	NMBLK$	,TSK,,SY,0
     74
     75
     76					;+
     77					;	FILE DESCRIPTOR BLOCK FOR OUTPUT DEVICE
     78					;-
     79
     80	000176				OUTFDB::FDBDF$
     81	000336					FDAT$A	R.VAR,FD.CR
     82	000336					FDRC$A	,OUTBUF
     83	000336					FDOP$A	2,,OUTDFN
     84
     85	000336				OUTDFN:	NMBLK$	ZAP,CMO
     86
     87
     88					;+
     89					;	CONTROL BLOCK FOR GET COMMAND LINE
     90					;-
     91
     92	000374				CMLBLK::GCMLB$	1,ZAP
     93
     94	001002	   015 	   012 	   137 	UNDSCO:	.ASCII	<15><12>"_"
     95		000003 			UNDSCL=	.-UNDSCO
     96						.EVEN
     97
     98		000542'			CMLLEN==CMLBLK+G.CMLD
     99		000544'			CMLADR==CMLBLK+G.CMLD+2
    100
    101
    102					;+
    103					;	CONTROL BLOCK FOR COMMAND STRING INTERPRETER
    104					;-
    105
    106	001006				CSIBLK::.BLKB	C.SIZE
    107
    108
    109					;+
    110					;	MISCELLANEOUS STORAGE
    111					;-
    112
    113	001062				STATBK::.BLKW	5		; STATISTICS BLOCK FOR OPEN
    114	001074				SAVRAT::.BLKB	S.FATT		; AREA TO SAVE FILE'S RECORD ATTRIBUTES
    115	001112				BLKBUF::.BLKW	256.		; BUFFER FOR TASK IMAGE BLOCK
    116	002112				OUTBUF::.BLKB	80.		; BUFFER FOR OUTPUT BLOCK
    117	002232				BLKNUM::.BLKW	2		; VBN OF TASK FILE
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 2-1
GLOBAL STORAGE

    118	002236				WRITBK::.BLKW			; WRITE-BACK FLAG
    119	002240	002112'			OUTPTR::.WORD	OUTBUF		; CURRENT BYTE IN OUTBUF
    120	002242				SWITCH::.BLKW			; COMMAND-LEVEL SWITCH WORD
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 3
COMAND -- COMMAND INPUT

    122						.SBTTL	COMAND -- COMMAND INPUT
    123
    124					;+
    125					;
    126					; GLOBAL ROUTINE COMAND
    127					;
    128					; FUNCTION
    129					;	READ A COMMAND
    130					;
    131					; INPUTS
    132					;	LINE INPUT VIA GCML$
    133					;
    134					; OUTPUTS
    135					;	CMLLEN	- LENGTH OF THE COMMAND IN BYTES
    136					;	CMLADR	- BUFFER CONTAINING COMMAND STRING IN ASCII
    137					;	VALUE	- NONE
    138					;
    139					;-
    140
    141	002244				COMAND::
    142	002244					GCML$	#CMLBLK,#UNDSCO,#UNDSCL	; PROMPT FOR A COMMAND
    143	002270	103015 				BCC	2$		; CONTINUE IF NO ERRORS
    144	002272	122760 	177766 	000140 		CMPB	#GE.EOF,G.ERR(R0) ; CHECK FOR END OF FILE
    145	002300	001403 				BEQ	1$		; CONTINUE IF IT IS EOF
    146	002302	012700 	000012 			MOV	#CMIERR,R0	; ANOTHER ERROR - TERMINATE
    147	002306	000513 				BR	ERROR		;
    148	002310	012767 	000001 	176224 	1$:	MOV	#1,CMLLEN	; FAKE AN "X" COMMAND ON EOF
    149	002316	112777 	000130 	176220 		MOVB	#'X,@CMLADR	;
    150	002324				2$:	RETURN			; RETURN TO CALLER
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 4
FCSREAD -- READ A BLOCK FROM TASK IMAGE

    152						.SBTTL	FCSREAD -- READ A BLOCK FROM TASK IMAGE
    153
    154					;+
    155					;
    156					; GLOBAL ROUTINE REG0 FCSREAD(VBN)
    157					;
    158					; FUNCTION
    159					;	READ A BLOCK FROM THE TASK IMAGE INTO THE IN-CORE BUFFER
    160					;	POSSIBLY, REWRITE THE EXISTING BLOCK
    161					;
    162					; INPUTS
    163					;	VBN	- POINTER TO A TWO-WORD VIRTUAL BLOCK NUMBER
    164					;	BLKNUM	- VBN OF THE BLOCK IN MEMORY
    165					;
    166					; OUTPUTS
    167					;	BLKBUF	- CONTAINS THE BLOCK IDENTIFIED BY VBN
    168					;	VALUE	- NONE
    169					;
    170					;-
    171
    172	002326				FCSREAD::
    173	002326	022067 	177700 			CMP	(R0)+,BLKNUM	; CHECK IF THE BLOCK IS ALREADY IN CORE
    174	002332	001003 				BNE	1$		;
    175	002334	021067 	177674 			CMP	(R0),BLKNUM+2	;
    176	002340	001422 				BEQ	2$		;
    177	002342				1$:	CALL	REWRIT		; REWRITE OLD BLOCK IF NEEDED
    178	002346	011067 	177662 			MOV	(R0),BLKNUM+2	; COPY THE BLOCK NUMBER INTO BLKNUM
    179	002352	011067 	175510 			MOV	(R0),TSKFDB+F.BKVB+2 ; AND ALSO THE FDB
    180	002356	014067 	177650 			MOV	-(R0),BLKNUM	;
    181	002362	011067 	175476 			MOV	(R0),TSKFDB+F.BKVB
    182	002366					READ$	#TSKFDB		; READ THE BLOCK
    183	002376	103455 				BCS	TSKERR
    184	002400					WAIT$	R0		; WAIT FOR COMPLETION
    185	002404	103452 				BCS	TSKERR		;
    186	002406				2$:	RETURN			; RETURN TO CALLER
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 5
REWRIT -- REWRITE BLOCK IF MODIFIED

    188						.SBTTL	REWRIT -- REWRITE BLOCK IF MODIFIED
    189
    190					;+
    191					;
    192					; GLOBAL ROUTINE REWRIT
    193					;
    194					; FUNCTION
    195					;	REWRITE A TASK IMAGE BLOCK IF IT HAS BEEN MODIFIED WHILE
    196					;	IN CORE
    197					;
    198					; INPUTS
    199					;	BLKBUF	- TASK IMAGE BLOCK
    200					;	WRITBK	- IF NONZERO, BLOCK WAS MODIFIED
    201					;
    202					; OUTPUTS
    203					;	WRITBK	- CLEARED
    204					;	VALUE	- NONE
    205					;
    206					; NOTE
    207					;	IF THE FILE WAS OPENED FOR READ-ONLY, NO WRITE IS ISSUED,
    208					;	AS THIS WOULD CAUSE AN ERROR TO BE RETURNED
    209					;
    210					;-
    211
    212	002410				REWRIT::
    213	002410	005767 	177622 			TST	WRITBK		; TEST IF BLOCK MODIFIED
    214	002414	001426 				BEQ	2$		; BLOCK WAS NOT MODIFIED
    215	002416	005067 	177614 			CLR	WRITBK		; CLEAR THE FLAG
    216	002422	032767 	000002 	177612 		BIT	#RDONLY,SWITCH	; TEST IF READ-ONLY ACCESS
    217	002430	001020 				BNE	2$		; BRANCH IF READONLY
    218	002432	010046 				MOV	R0,-(SP)	; SAVE R0
    219	002434	016767 	177572 	175422 		MOV	BLKNUM,TSKFDB+F.BKVB ; SET VBN INTO FDB
    220	002442	016767 	177566 	175416 		MOV	BLKNUM+2,TSKFDB+F.BKVB+2
    221	002450					WRITE$	#TSKFDB		; ISSUE THE WRITE
    222	002460	103402 				BCS	1$		;
    223	002462					WAIT$	R0		; WAIT FOR COMPLETION
    224	002466	012600 			1$:	MOV	(SP)+,R0	; RESTORE R0
    225	002470	103420 				BCS	TSKERR		;
    226	002472				2$:	RETURN			; RETURN TO CALLER
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 6
EOL -- WRITE LINE TO CONSOLE LOG

    228						.SBTTL	EOL -- WRITE LINE TO CONSOLE LOG
    229
    230					;+
    231					;
    232					; GLOBAL ROUTINE EOL
    233					;
    234					; FUNCTION
    235					;	WRITE A LINE ON THE CONSOLE LOG
    236					;
    237					; INPUTS
    238					;	OUTPTR	- POINTER TO NEXT FREE BYTE IN OUTBUF
    239					;	OUTBUF	- BUFFER FOR PRINT LINE
    240					;
    241					; OUTPUTS
    242					;	OUTPTR	- REINITIALIZED
    243					;	VALUE	- NONE
    244					;
    245					;-
    246
    247	002474				EOL::
    248	002474	016746 	177540 			MOV	OUTPTR,-(SP)	; COMPUTE RECORD LENGTH
    249	002500	162716 	002112'			SUB	#OUTBUF,@SP	;
    250	002504					PUT$S	#OUTFDB,,(SP)+	; WRITE THE RECORD
    251	002520	103410 				BCS	TERMIN		; TERMINATE IF PUT FAILS
    252	002522	012767 	002112'	177510 		MOV	#OUTBUF,OUTPTR	; REINITIALIZE POINTER
    253	002530					RETURN			; RETURN TO CALLER
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 7
ERROR HANDLERS

    255						.SBTTL	ERROR HANDLERS
    256
    257					;+
    258					;	ERROR HANDLERS FOR I/O PACKAGE
    259					;
    260					;	TSKERR	- OUTPUT I/O ERROR MESSAGE AND EXIT
    261					;	ERROR	- OUTPUT MESSAGE (NUMBER IN R0) AND EXIT
    262					;	TERMIN	- EXIT
    263					;-
    264
    265	002532	012700 	000013 		TSKERR::MOV	#TRNERR,R0	; SET MESSAGE NUMBER IN R0
    266	002536				ERROR:	CALL	ERRPRT		; CALL ERROR MESSAGE OUTPUT ROUTINE
    267	002542	012700 	177777 		TERMIN:	MOV	#SIGXIT,R0	; SET SIGNAL VALUE IN R0
    268	002546	000167 	000000G			JMP	$SIGNL		; SIGNAL
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 8
TRANSLATE -- TRANSLATE VIRTUAL ADDRESS TO VBN AND BYTE

    270						.SBTTL	TRANSLATE -- TRANSLATE VIRTUAL ADDRESS TO VBN AND BYTE
    271
    272					;+
    273					;
    274					; GLOBAL ROUTINE TRANSLATE(VIRORG,VIRADR,VBNOUT,BUFPTR)
    275					;
    276					; FUNCTION
    277					;	PERFORM ADDRESS TRANSLATION FROM VIRTUAL TO REAL
    278					;
    279					; INPUTS
    280					;	VIRORG	- POINTER TO TWO WORD VIRTUAL ORIGIN DATA
    281					;	VIRADR	- THE VIRTUAL ADDRESS
    282					;
    283					;		  THE VIRTUAL ORIGIN IS A 32-BIT QUANTITY TO WHICH IS
    284					;		  ADDED THE DESIRED VIRTUAL ADDRESS, TO YIELD A NINE-BIT
    285					;		  BYTE OFFSET WITHIN BLOCK IN BITS 0-8 AND A 23-BIT
    286					;		  VIRTUAL BLOCK NUMBER IN BITS 9-31.
    287					;
    288					; OUTPUTS
    289					;	VBNOUT	- TWO WORD AREA FILLED WITH VBN AS CALCULATED
    290					;	BUFPTR	- POINTER WITHIN BLKBUF TO THE BYTE AS CALCULATED
    291					;	VALUE	- NONE
    292					;
    293					;-
    294
    295	002552				TRANSLATE::
    296	002552	004167 	000000G			JSR	R1,$SAV3	; SAVE REGISTERS
    297	002556	016602 	000020 			MOV	20(SP),R2	; POINT TO VIRTUAL ORIGIN DATA
    298	002562	012200 				MOV	(R2)+,R0	; LOAD DATA INTO R0-R1
    299	002564	011201 				MOV	@R2,R1		;
    300	002566	066601 	000016 			ADD	16(SP),R1	; ADD THE VIRTUAL ADDRESS
    301	002572	005500 				ADC	R0		;
    302	002574	016602 	000012 			MOV	12(SP),R2	; POINT TO REAL ADDRESS OUTPUT WORD
    303	002600	010112 				MOV	R1,@R2		; PUT LOW ORDER 9 BITS THERE
    304	002602	042712 	177000 			BIC	#177000,@R2	;
    305	002606	062712 	001112'			ADD	#BLKBUF,@R2	; ADD ORIGIN OF BUFFER
    306	002612	012703 	000011 			MOV	#9.,R3		; SHIFT VBN RIGHT 9 BITS INTO POSITION
    307	002616	006200 			1$:	ASR	R0		;
    308	002620	006001 				ROR	R1		;
    309	002622	005303 				DEC	R3		;
    310	002624	001374 				BNE	1$		;
    311	002626	042700 	177600 			BIC	#177600,R0	; CLEAR HIGH-ORDER 9 BITS
    312	002632	016602 	000014 			MOV	14(SP),R2	; POINT TO VBN OUTPUT AREA
    313	002636	010022 				MOV	R0,(R2)+	; MOVE RESULT VBN
    314	002640	010112 				MOV	R1,@R2		;
    315	002642					RETURN			; RETURN TO CALLER
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 9
BYTSXT -- BYTE SIGN EXTENSION

    317						.SBTTL	BYTSXT -- BYTE SIGN EXTENSION
    318
    319					;+
    320					; GLOBAL ROUTINE REG0 BYTSXT(V)
    321					;
    322					; FUNCTION
    323					;	SIGN EXTEND BYTE TO WORD
    324					;
    325					; INPUTS
    326					;	V	- BYTE
    327					;
    328					; OUTPUTS
    329					;	VALUE	- WORD
    330					;
    331					;-
    332
    333	002644				BYTSXT::
    334	002644	110000 				MOVB	R0,R0		; BECAUSE BLISS CAN'T
    335	002646					RETURN			; RETURN TO CALLER
    336
    337		000001 				.END
ZIOSRV	MACRO M1113  14-APR-81 11:46  PAGE 9-1
SYMBOL TABLE

ABSOLU= 000001 G 	FA.SHR= 000040   	F.EFBK= 000010   	G.CMLD= 000146   	SAVRAT  001074RG
BLKBUF  001112RG 	FA.TMP= 000020   	F.EFN = 000050   	G.DPRM= 000160   	SIGXIT= 177777 G
BLKNUM  002232RG 	FA.WRT= 000002   	F.EOBB= 000032   	G.ERR = 000140   	STATBK  001062RG
BYTSXT  002644RG 	FCSREA  002326RG 	F.ERR = 000052   	G.ISIZ= 000020   	SWITCH  002242RG
CMIERR= 000012 G 	FD.BLK= 000010   	F.FACC= 000043   	G.LPDL= 000040   	S.BFHD= 000020
CMLADR= 000544RG 	FD.CCL= 000002   	F.FFBY= 000014   	G.MODE= 000141   	S.FATT= 000016
CMLBLK  000374RG 	FD.CR = 000002   	F.FNAM= 000110   	G.PSDS= 000142   	S.FDB = 000140
CMLLEN= 000542RG 	FD.DIR= 000010   	F.FNB = 000102   	LSTING= 000004 G 	S.FNAM= 000006
COMAND  002244RG 	FD.FTN= 000001   	F.FTYP= 000116   	NB.DEV= 000200   	S.FNB = 000036
CSIBLK  001006RG 	FD.INS= 000010   	F.FVER= 000120   	NB.DIR= 000100   	S.FNBW= 000017
CSIERR= 000010 G 	FD.PLC= 000004   	F.HIBK= 000004   	NB.NAM= 000004   	S.FNTY= 000004
CS.DIF= 000002   	FD.RAH= 000001   	F.LUN = 000042   	NB.SD1= 000400   	S.FTYP= 000002
CS.DVF= 000004   	FD.RAN= 000002   	F.MBCT= 000054   	NB.SD2= 001000   	S.NFEN= 000020
CS.EQU= 000040   	FD.REC= 000001   	F.MBC1= 000055   	NB.SNM= 000040   	TERMIN  002542R
CS.INP= 000001   	FD.RWM= 000001   	F.MBFG= 000056   	NB.STP= 000020   	TRANSL  002552RG
CS.MOR= 000020   	FD.SDI= 000020   	F.NRBD= 000024   	NB.SVR= 000010   	TRNERR= 000013 G
CS.NMF= 000001   	FD.SQD= 000040   	F.NREC= 000030   	NB.TYP= 000002   	TSKDFN  000140R
CS.OUT= 000002   	FD.TTY= 000004   	F.OVBS= 000030   	NB.VER= 000001   	TSKERR  002532RG
CS.WLD= 000010   	FD.WBH= 000002   	F.RACC= 000016   	N.DID = 000024   	TSKFDB  000000RG
C.CMLD= 000002   	FO.APD= 000106   	F.RATT= 000001   	N.DVNM= 000032   	UNDSCL= 000003
C.DEVD= 000006   	FO.MFY= 000002   	F.RCNM= 000034   	N.FID = 000000   	UNDSCO  001002R
C.DIRD= 000012   	FO.RD = 000001   	F.RCTL= 000017   	N.FNAM= 000006   	WRITBK  002236RG
C.DSDS= 000006   	FO.UPD= 000006   	F.RSIZ= 000002   	N.FTYP= 000014   	$SAV3 = ****** GX
C.FILD= 000016   	FO.WRT= 000016   	F.RTYP= 000000   	N.FVER= 000016   	$SIGNL= ****** GX
C.MKW1= 000024   	F.ALOC= 000040   	F.STBK= 000036   	N.NEXT= 000022   	$$    = 000067
C.MKW2= 000026   	F.BBFS= 000062   	F.UNIT= 000136   	N.STAT= 000020   	$$$   = 000554R
C.SIZE= 000054   	F.BDB = 000070   	F.URBD= 000020   	N.UNIT= 000034   	.FSRCB= ****** G
C.STAT= 000001   	F.BGBC= 000057   	F.VBN = 000064   	OPNERR= 000011 G 	.GCML1= ****** G
C.SWAD= 000022   	F.BKDN= 000026   	F.VBSZ= 000060   	OUTBUF  002112RG 	.PUTSQ= ****** G
C.TYPR= 000000   	F.BKDS= 000020   	GE.BIF= 177775   	OUTDFN  000336R  	.READ = ****** G
EOL     002474RG 	F.BKEF= 000050   	GE.CLO= 000004   	OUTFDB  000176RG 	.WAIT = ****** G
ERROR   002536R  	F.BKP1= 000051   	GE.COM= 000001   	OUTPTR  002240RG 	.WRITE= ****** G
ERRPRT= ****** GX	F.BKST= 000024   	GE.EOF= 177766   	PAR$$$= 000027   	...GBL= 000000
FA.APD= 000100   	F.BKVB= 000064   	GE.IND= 000002   	RDONLY= 000002 G 	...PC1= 000374R
FA.CRE= 000010   	F.CNTG= 000034   	GE.IOR= 177777   	REWRIT  002410RG 	...PC2= 000576R
FA.EXT= 000004   	F.DFNB= 000046   	GE.LC = 000010   	R.FIX = 000001   	...PC3= 000374R
FA.NSP= 000100   	F.DSPT= 000044   	GE.MDE= 177774   	R.VAR = 000002   	...TPC= 000020
FA.RD = 000001   	F.DVNM= 000134   	GE.OPR= 177776

. ABS.	000000	   000
      	002650	   001
$$FSR1	002040	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  4510 WORDS  ( 18 PAGES)
DYNAMIC MEMORY:  5686 WORDS  ( 21 PAGES)
ELAPSED TIME:  00:00:21
[62,10]ZIOSRV,[62,20]ZIOSRV/-SP/CR=[62,30]ZIOSRV
ZIOSRV     CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ABSOLU	= 000001  G	#1-49      
BLKBUF	  001112 RG	 2-70      #2-115      8-305     
BLKNUM	  002232 RG	#2-117      4-173      4-175     *4-178     *4-180      5-219      5-220     
BYTSXT	  002644 RG	#9-333     
CMIERR	= 000012  G	#1-44       3-146     
CMLADR	= 000544 RG	#2-99       3-149     
CMLBLK	  000374 RG	#2-92       2-98       2-99       3-142      3-142     
CMLLEN	= 000542 RG	#2-98      *3-148     
COMAND	  002244 RG	#3-141     
CSIBLK	  001006 RG	 2-71      #2-106     
CSIERR	= 000010  G	#1-42      
C.DSDS	= 000006	 2-71      
C.SIZE	= 000054	 2-106     
EOL   	  002474 RG	#6-247     
ERROR 	  002536 R	 3-147     #7-266     
ERRPRT	= ******  GX	 7-266      7-266     
FCSREA	  002326 RG	#4-172     
FD.CCL	= 000002	 2-92      
FD.CR 	= 000002	 2-81      
FD.REC	= 000001	 2-92      
FD.RWM	= 000001	 2-69      
FD.TTY	= 000004	 2-92      
F.BKDS	= 000020	 2-70       2-70      
F.BKVB	= 000064	*4-179     *4-181     *5-219     *5-220     
F.DFNB	= 000046	 2-71       2-83       2-92      
F.DSPT	= 000044	 2-71      
F.LUN 	= 000042	 2-71       2-83       2-92      
F.MBCT	= 000054	 2-92      
F.NRBD	= 000024	*6-250     
F.RACC	= 000016	 2-69      
F.RATT	= 000001	 2-81      
F.RCTL	= 000017	 2-92      
F.RTYP	= 000000	 2-81       2-92      
F.URBD	= 000020	 2-82      
GE.CLO	= 000004	 2-92      
GE.COM	= 000001	 2-92      
GE.EOF	= 177766	 3-144     
GE.IND	= 000002	 2-92      
G.CMLD	= 000146	 2-98       2-99      
G.ERR 	= 000140	 3-144     
G.LPDL	= 000040	#2-92       2-92      
G.PSDS	= 000142	*3-142     *3-142     
LSTING	= 000004  G	#1-51      
N.DVNM	= 000032	 2-73      
N.FNAM	= 000006	 2-73       2-85       2-92      
N.FTYP	= 000014	 2-73       2-85       2-92      
N.UNIT	= 000034	 2-73      
OPNERR	= 000011  G	#1-43      
OUTBUF	  002112 RG	 2-82      #2-116      2-119      6-249      6-252     
OUTDFN	  000336 R	 2-83      #2-85      
OUTFDB	  000176 RG	#2-80       6-250      6-250     
OUTPTR	  002240 RG	#2-119      6-248     *6-252     
ZIOSRV     CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

PAR$$$	= 000027	#3-142      3-142     #4-182      4-182     #4-184      4-184     #5-221      5-221     #5-223     
                         5-223     #6-250      6-250     
RDONLY	= 000002  G	#1-50       5-216     
REWRIT	  002410 RG	 4-177      4-177     #5-212     
R.VAR 	= 000002	 2-81      
SAVRAT	  001074 RG	#2-114     
SIGXIT	= 177777  G	#1-47       7-267     
STATBK	  001062 RG	#2-113     
SWITCH	  002242 RG	#2-120      5-216     
S.BFHD	= 000020	 1-59       1-59      
S.FATT	= 000016	 2-114     
S.FDB 	= 000140	 2-68       2-68       2-80       2-80       2-92       2-92      
S.FNAM	= 000006	 2-73       2-73       2-85       2-85       2-92       2-92      
S.FNB 	= 000036	 2-73       2-85       2-92      
S.FTYP	= 000002	 2-73       2-73       2-85       2-85       2-92       2-92      
TERMIN	  002542 R	 6-251     #7-267     
TRANSL	  002552 RG	#8-295     
TRNERR	= 000013  G	#1-45       7-265     
TSKDFN	  000140 R	 2-71      #2-73      
TSKERR	  002532 RG	 4-183      4-185      5-225     #7-265     
TSKFDB	  000000 RG	#2-68      *4-179     *4-181      4-182      4-182     *5-219     *5-220      5-221      5-221     
UNDSCL	= 000003	#2-95       3-142     
UNDSCO	  001002 R	#2-94       2-95       3-142     
WRITBK	  002236 RG	#2-118      5-213     *5-215     
$SAV3 	= ******  GX	 8-296     
$SIGNL	= ******  GX	 7-268     
$$    	= 000067	#4-177      4-177     #7-266      7-266     
$$$   	= 000554 R	#2-92       2-92      
.FSRCB	= ******  G	 1-59      
.GCML1	= ******  G	 3-142      3-142     
.PUTSQ	= ******  G	 6-250      6-250     
.READ 	= ******  G	 4-182      4-182     
.WAIT 	= ******  G	 4-184      4-184      5-223      5-223     
.WRITE	= ******  G	 5-221      5-221     
...PC1	= 000374 R	#2-68       2-69       2-70       2-70       2-71       2-71       2-71       2-73       2-73      
                        #2-73       2-73       2-73       2-73       2-73       2-73      #2-73      #2-80       2-81      
                         2-81       2-82       2-83       2-83       2-85       2-85      #2-85       2-85       2-85      
                         2-85      #2-85      #2-92       2-92       2-92       2-92       2-92       2-92       2-92      
                         2-92      #2-92       2-92       2-92       2-92      #2-92      
...PC2	= 000576 R	#2-69       2-69      #2-70       2-70      #2-70       2-70      #2-71       2-71      #2-71      
                         2-71      #2-71       2-71      #2-73       2-73       2-73      #2-73       2-73       2-73      
                        #2-73       2-73      #2-81       2-81      #2-81       2-81      #2-82       2-82      #2-83      
                         2-83      #2-83       2-83      #2-85       2-85       2-85      #2-85       2-85       2-85      
                        #2-92       2-92      #2-92       2-92      #2-92       2-92      #2-92       2-92      #2-92      
                         2-92      #2-92       2-92       2-92      #2-92       2-92       2-92      
...PC3	= 000374 R	#2-73       2-73      #2-85       2-85      #2-92       2-92      
ZIOSRV     CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

BDOFF$		#1-59      
CALL  		#1-40      #4-177     #4-182     #4-184     #5-221     #5-223     #6-250     #7-266     
CBYTE$		#2-69      #2-69      #2-70      #2-70      #2-71      #2-71      #2-71      #2-81      #2-81      #2-81      
                #2-82      #2-82      #2-83      #2-83      #2-83      #2-92      #2-92      #2-92      #2-92      #2-92      
                #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      
CMOV$B		#4-182     #4-182     #4-184     #4-184     #5-221     #5-221     #5-223     #5-223     
CMOV$W		#4-182     #4-182     #4-182     #4-182     #4-182     #4-184     #4-184     #5-221     #5-221     #5-221     
                #5-221     #5-221     #5-223     #5-223     #6-250     #6-250     #6-250     
CMOV$2		#4-182      4-182     #5-221      5-221     
CSI$  		#1-40      #1-57      
CWORD$		#2-69      #2-69      #2-69      #2-70      #2-70      #2-70      #2-70      #2-70      #2-70      #2-71      
                #2-71      #2-71      #2-73      #2-73      #2-73      #2-81      #2-81      #2-81      #2-81      #2-82      
                #2-82      #2-82      #2-83      #2-83      #2-83      #2-85      #2-85      #2-85      #2-92      #2-92      
                #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      #2-92      
DEF$L 		#1-59      
ERR$  		#4-182     #4-182     #4-184     #4-184     #5-221     #5-221     #5-223     #5-223     #6-250     #6-250     
FCSBT$		#1-40      #1-54      
FDAT$A		#1-38       2-81      #2-92       2-92      
FDBDF$		#1-38      #2-68      #2-80      #2-92      #2-92      
FDBF$A		#2-92       2-92      
FDBK$A		#1-38      #2-70      
FDBK$R		#4-182      4-182     #5-221      5-221     
FDBSZ$		#2-68       2-68      #2-80       2-80      #2-92       2-92      
FDOFF$		#1-53       1-53      #2-69       2-69      #2-70       2-70      #2-71       2-71      #2-81       2-81      
                #2-82       2-82      #2-83       2-83      #2-92       2-92      #2-92       2-92      #2-92       2-92      
FDOF$L		#1-39       1-53      
FDOP$A		#1-38       2-71       2-83      #2-92       2-92      
FDRC$A		#1-38      #2-69      #2-82      
FSRSZ$		#1-38       1-59      
GCMLB$		#1-39       2-92      
GCMLD$		#1-40      #1-56      #2-92      #2-92      #3-142     #3-142     
GCML$ 		#1-39      #3-142     
LDFDB$		#4-182      4-182     #4-184      4-184     #5-221      5-221     #5-223      5-223     #6-250      6-250     
LDR0$ 		#3-142     #3-142     
NBOFF$		#1-55      #1-55      #2-73      #2-73      #2-85      #2-85      #2-92      #2-92      
NBOF$L		#1-40       1-55      
NMBLK$		#1-38      #2-73      #2-85      #2-92      #2-92      
PUT$S 		#1-39       6-250     
RAD50$		#2-73      #2-73      #2-73      #2-85      #2-85      #2-85      #2-92      #2-92      #2-92      
READ$ 		#1-39      #4-182     
RETURN		#1-40       3-150      4-186      5-226      6-253      8-315      9-335     
WAIT$ 		#1-39      #4-184     #5-223     
WRITE$		#1-39       5-221     
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 2


      2					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.30	ZLSTIO.B11	PAGE 1
      3
      4					;     	0001	MODULE ZLSTIO(IDENT="000002")=
      5					;     	0002	BEGIN
      6					;     	0003	!
      7					;     	0004	! COPYRIGHT 1975,
      8					;     	0005	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      9					;     	0006	!
     10					;     	0007	! THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     11					;     	0008	! ON A SINGLE COMPUTER SYSTEM  AND  CAN BE COPIED (WITH INCLUSION
     12					;     	0009	! OF DEC'S COPYRIGHT NOTICE)  ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     13					;     	0010	! AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     14					;     	0011	!
     15					;     	0012	! THE INFORMATION IN  THIS DOCUMENT IS  SUBJECT TO CHANGE WITHOUT
     16					;     	0013	! NOTICE AND SHOULD NOT  BE CONSTRUED AS  A COMMITMENT BY DIGITAL
     17					;     	0014	! EQUIPMENT CORPORATION.
     18					;     	0015	!
     19					;     	0016	! DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     20					;     	0017	! OF ITS  SOFTWARE  ON  EQUIPMENT  WHICH IS NOT  SUPPLIED BY DEC.
     21					;     	0018	!
     22					;     	0019	! WRITTEN BY
     23					;     	0020	!	M. JACK
     24					;     	0021	!
     25					;     	0022	! MODULE FUNCTION
     26					;     	0023	!	ASCII OUTPUT AND INTERNAL TO ASCII NUMERIC CONVERSIONS
     27					;     	0024	!	FOR THE TASK IMAGE PATCH UTILITY
     28					;     	0025
     29					;     	0026	LINKAGE
     30					;     	0027		REG0 = BLISS(REGISTER=0);
     31					;     	0028
     32					;     	0029	FORWARD
     33					;     	0030		REG0 OUTC,	! SINGLE CHARACTER OUTPUT
     34					;     	0031		REG0 OUTSA,	! ASCIZ STRING OUTPUT
     35					;     	0032		REG0 OUTR50,	! RADIX50 STRING OUTPUT
     36					;     	0033		OUTN;		! NUMERIC CONVERSION ROUTINE
     37					;     	0034
     38					;     	0035	REQUIRE STDMAC.BEG;
     39					;     	0036	!	STDMAC.BEG - WIDELY USED STANDARD MACROS
     40					;     	0037	!
     41					;     	0055	SWITCHES LIST; SWITCHES LIST;
     42					;     	0056	!	VERSION 000005
     43					;     	0057	!	LAST MODIFIED 05/13/74 RBG
     44					;     	0096	SWITCHES LIST; SWITCHES LIST;
     45					;     	0097	!	STDMAC.BEG LAST LINE
     46					;     	0098
     47					;     	0099	REQUIRE STDSTR.BEG;
     48					;     	0100	!	STDSTR.BEG - WIDELY USED STANDARD STRUCTURES
     49					;     	0101	!
     50					;     	0119	SWITCHES LIST; SWITCHES LIST;
     51					;     	0120	!	VERSION 000003
     52					;     	0121	!	LAST MODIFIED 02/28/74 RBG
     53					;     	0135	SWITCHES LIST; SWITCHES LIST;
     54					;     	0136	!	STDSTR.BEG LAST LINE
     55					;     	0137
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 3


     57					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.32	ZLSTIO.B11	PAGE 1-1
     58
     59					;     	0138	PSECT
     60					;     	0139		CODE=" ", GLOBAL=" ", OWN=" ";
     61					;     	0140
     62					;     	0141	EXTERNAL
     63					;     	0142		OUTPTR;		! NEXT CHARACTER POSITION IN OUTPUT BUFFER
     64					;     	0143
     65					;     	0144	OWN
     66					;     	0145		OWNBUF[4];	! A SHORT OWN BUFFER
     67					;     	0146
     68					;     	0147
     69					;     	0148
     70					;     	0149	MACRO
     71					;     	0150		OUTCHAR(X)= ((.OPTR)<0,8>=(X);
     72					;     	0151			      OPTR=.OPTR+1;)$;
     73					;     	0152
     74					;     	0153	COMMENT ! OUTC(X)
     75					;     	0154	!
     76					;     	0155	! FUNCTION
     77					;     	0156	!	PLACE A SINGLE CHARACTER IN OUTPUT BUFFER
     78					;     	0157	! INPUTS
     79					;     	0158	!	X	- ASCII CHARACTER
     80					;     	0159	!	OUTPTR	- OUTPUT BUFFER POINTER
     81					;     	0160	! OUTPUTS
     82					;     	0161	!	VALUE	- NONE
     83					;     	0162	!	OUTPTR	- UPDATED
     84					;     	0163	!
     85					;     	0164	GLOBAL ROUTINE REG0 OUTC(X)=
     86					;     	0165	    BEGIN
     87					;     	0166	    BIND OPTR=OUTPTR;
     88					;     	0167	    OUTCHAR(.X);
     89					;     	0168	    NOVALUE
     90					;     	0169	    END;
     91					.TITLE ZLSTIO
     92					.IDENT /000002/
     93	000000				.PSECT
     94
     95
     96		000000 			R$0=%0
     97		000001 			R$1=%1
     98		000002 			R$2=%2
     99		000003 			R$3=%3
    100		000004 			R$4=%4
    101		000005 			R$5=%5
    102		000006 			SP=%6
    103		000007 			PC=%7
    104
    105
    106	000000				OUTC:
    107	000000	110077 	000000G			MOVB	R$0,@OUTPTR
    108	000004	005267 	000000G			INC	OUTPTR
    109	000010	000207 				RTS	PC
    110
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 4


    112					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.34	ZLSTIO.B11	PAGE 1-2
    113
    114					; ROUTINE SIZE:  5
    115
    116
    117
    118
    119
    120					;     	0170	COMMENT ! OUTSA(P)
    121					;     	0171	!
    122					;     	0172	! FUNCTION
    123					;     	0173	!	COPY AN ASCIZ STRING TO OUTPUT BUFFER
    124					;     	0174	! INPUTS
    125					;     	0175	!	P	- POINTER TO ASCIZ STRING
    126					;     	0176	!	OUTPTR	- OUTPUT BUFFER POINTER
    127					;     	0177	! OUTPUTS
    128					;     	0178	!	VALUE	- NONE
    129					;     	0179	!	OUTPTR	- UPDATED
    130					;     	0180	!
    131					;     	0181	GLOBAL ROUTINE REG0 OUTSA(P)=
    132					;     	0182	    BEGIN
    133					;     	0183	    REGISTER IPTR,OPTR;
    134					;     	0184	    MACRO INCHAR=(.IPTR)<0,8>$;
    135					;     	0185	    OPTR=.OUTPTR;
    136					;     	0186	    IPTR=.P;
    137					;     	0187	    UNTIL .INCHAR EQL 0 DO
    138					;     	0188		BEGIN
    139					;     	0189		OUTCHAR(.INCHAR);
    140					;     	0190		IPTR=.IPTR+1;
    141					;     	0191		END;
    142					;     	0192	    OUTPTR=.OPTR;
    143					;     	0193	    NOVALUE
    144					;     	0194	    END;
    145
    146
    147	000012				OUTSA:
    148	000012	004167 	000000G			JSR	R$1,$SAV2
    149	000016	013701 	000000G			MOV	@#OUTPTR,R$1
    150	000022	010002 				MOV	R$0,R$2
    151	000024	105712 			L$4:	TSTB	@R$2
    152	000026	001402 				BEQ	U$2
    153	000030	112221 				MOVB	(R$2)+,(R$1)+
    154	000032	000774 				BR	L$4
    155	000034	010167 	000000G		U$2:	MOV	R$1,OUTPTR
    156	000040	000207 				RTS	PC
    157
    158					; ROUTINE SIZE:  12
    159
    160
    161
    162
    163
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 5


    165					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.37	ZLSTIO.B11	PAGE 1-3
    166
    167					;     	0195	COMMENT ! OUTR50(P)
    168					;     	0196	!
    169					;     	0197	! FUNCTION
    170					;     	0198	!	CONVERT AND OUTPUT RADIX50 WORD
    171					;     	0199	! INPUTS
    172					;     	0200	!	P	-  RADIX50 WORD
    173					;     	0201	! OUTPUTS
    174					;     	0202	!	VALUE	- NONE
    175					;     	0203	!	OUTPTR	- UPDATED
    176					;     	0204	!
    177					;     	0205	GLOBAL ROUTINE REG0 OUTR50(P)=
    178					;     	0206	    BEGIN
    179					;     	0207
    180					;     	0208	    BIND
    181					;     	0209		DIVTAB = UPLIT(1, #50, #3100);
    182					;     	0210	    LOCAL
    183					;     	0211		J;
    184					;     	0212
    185					;     	0213	    DECR I FROM 2 TO 0 DO
    186					;     	0214		BEGIN
    187					;     	0215		J = 0;
    188					;     	0216		UNTIL ((P = .P - .DIVTAB[.I]) ROT 1) DO J = .J + 1;
    189					;     	0217		P = .P + .DIVTAB[.I];
    190					;     	0218		IF .J NEQ 0
    191					;     	0219		THEN
    192					;     	0220		    BEGIN
    193					;     	0221		    IF .J NEQ #33
    194					;     	0222		    THEN
    195					;     	0223			BEGIN
    196					;     	0224			IF .J LSS #33 THEN J = .J + #56;
    197					;     	0225			J = .J + #11;
    198					;     	0226			END;
    199					;     	0227		    J = .J + #11;
    200					;     	0228		    END;
    201					;     	0229		OUTC(.J);
    202					;     	0230		END;
    203					;     	0231	    NOVALUE
    204					;     	0232	    END;
    205
    206
    207	000042				OUTR50:
    208	000042	004167 	000000G			JSR	R$1,$SAV4
    209	000046	010003 				MOV	R$0,R$3
    210	000050	012704 	000002 			MOV	#2,R$4
    211	000054	005002 			L$10:	CLR	R$2
    212	000056	010401 				MOV	R$4,R$1
    213	000060	006301 				ASL	R$1
    214	000062	016101 	000152'			MOV	P$AAB(R$1),R$1
    215	000066	160103 			L$12:	SUB	R$1,R$3
    216	000070	010300 				MOV	R$3,R$0
    217	000072	006100 				ROL	R$0
    218	000074	006000 				ROR	R$0
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 6


    220					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.41	ZLSTIO.B11	PAGE 1-4
    221
    222	000076	103402 				BLO	U$10
    223	000100	005202 				INC	R$2
    224	000102	000771 				BR	L$12
    225	000104	060103 			U$10:	ADD	R$1,R$3
    226	000106	005702 				TST	R$2
    227	000110	001412 				BEQ	L$16
    228	000112	020227 	000033 			CMP	R$2,#33
    229	000116	001405 				BEQ	L$18
    230	000120	002002 				BGE	L$20
    231	000122	062702 	000056 			ADD	#56,R$2
    232	000126	062702 	000011 		L$20:	ADD	#11,R$2
    233	000132	062702 	000011 		L$18:	ADD	#11,R$2
    234	000136	010200 			L$16:	MOV	R$2,R$0
    235	000140	004767 	177634 			JSR	PC,OUTC
    236	000144	005304 				DEC	R$4
    237	000146	002342 				BGE	L$10
    238	000150	000207 				RTS	PC
    239
    240					; ROUTINE SIZE:  36
    241
    242
    243	000152				.PSECT
    244
    245	000152	000001 	000050 	003100 	P$AAB:	.WORD  1,50,3100
    246
    247
    248
    249					;     	0233	COMMENT ! OUTN(NUM,REQ)
    250					;     	0234	!
    251					;     	0235	! FUNCTION
    252					;     	0236	!	OCTAL CONVERSION ACCORDING TO SPECIFIED WIDTH
    253					;     	0237	!	CONVERTED NUMBER IS PLACE IN OUTPUT BUFFER
    254					;     	0238	!	AS POINTED TO BY OUTPTR.
    255					;     	0239	! INPUTS
    256					;     	0240	!	NUM	- 16-BIT QUANTITY TO BE CONVERTED
    257					;     	0241	!	REQ	- WIDTH SPECIFICATION
    258					;     	0242	! OUTPUTS
    259					;     	0243	!	VALUE	- NONE
    260					;     	0244	!	OUTPTR	- UPDATED
    261					;     	0245	!
    262					;     	0246	GLOBAL ROUTINE OUTN(NUM,REQ)=
    263					;     	0247	    BEGIN
    264					;     	0248	    BIND
    265					;     	0249		N  =OWNBUF[0],	! VALUE BEING CONVERTED
    266					;     	0250		RD =OWNBUF[1];	! REMAINING FIELD WIDTH TO FILL
    267					;     	0251	    BIND OPTR=OUTPTR;
    268					;     	0252
    269					;     	0253	    ROUTINE XN=		! RECURSIVE DIVISION ROUTINE
    270					;     	0254		BEGIN
    271					;     	0255		LOCAL
    272					;     	0256		    R;		! REMAINDER ON DIVISION (RECURSIVELY LOCAL)
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 7


    274					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.42	ZLSTIO.B11	PAGE 1-5
    275
    276					;     	0257		IF .N EQL 0
    277					;     	0258		    THEN WHILE (RD=.RD-1) GEQ 0
    278					;     	0259			    DO OUTCHAR("0")
    279					;     	0260		    ELSE
    280					;     	0261			BEGIN
    281					;     	0262			R = .N<0,3>;
    282					;     	0263			N = .N<3,13>;
    283					;     	0264			RD=.RD-1;
    284					;     	0265			XN();
    285					;     	0266			OUTCHAR("0"+.R);
    286					;     	0267			END;
    287					;     	0268		NOVALUE
    288					;     	0269		END;
    289					;     	0270
    290
    291	000160				.PSECT
    292
    293
    294	000160				XN:
    295	000160	004167 	000000G			JSR	R$1,$SAV2
    296	000164	012700 	000352'			MOV	#OWNBUF+2,R$0
    297	000170	012701 	000000G			MOV	#OUTPTR,R$1
    298	000174	005737 	000350'			TST	@#OWNBUF
    299	000200	001011 				BNE	L$27
    300	000202	011002 			L$26:	MOV	@R$0,R$2
    301	000204	005302 				DEC	R$2
    302	000206	010210 				MOV	R$2,@R$0
    303	000210	002433 				BLT	L$31
    304	000212	112771 	000060 	000000 		MOVB	#60,@0(R$1)
    305	000220	005211 				INC	@R$1
    306	000222	000767 				BR	L$26
    307	000224	113702 	000350'		L$27:	MOVB	@#OWNBUF,R$2
    308	000230	042702 	177770 			BIC	#177770,R$2
    309	000234	016746 	000110 			MOV	OWNBUF,-(SP)
    310	000240	006216 				ASR	@SP
    311	000242	006216 				ASR	@SP
    312	000244	006216 				ASR	@SP
    313	000246	012667 	000076 			MOV	(SP)+,OWNBUF
    314	000252	042767 	160000 	000070 		BIC	#160000,OWNBUF
    315	000260	005310 				DEC	@R$0
    316	000262	004767 	177672 			JSR	PC,XN
    317	000266	062702 	000060 			ADD	#60,R$2
    318	000272	110271 	000000 			MOVB	R$2,@0(R$1)
    319	000276	005211 				INC	@R$1
    320	000300	000207 			L$31:	RTS	PC
    321
    322					; ROUTINE SIZE:  41
    323
    324
    325
    326
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 8


    328					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.45	ZLSTIO.B11	PAGE 1-6
    329
    330
    331					;     	0271	    RD = .REQ;
    332					;     	0272	    IF (N=.NUM) EQL 0
    333					;     	0273		THEN
    334					;     	0274		    BEGIN
    335					;     	0275		    WHILE (RD=.RD-1) GEQ 0
    336					;     	0276			DO OUTCHAR("0");
    337					;     	0277		    RETURN NOVALUE;
    338					;     	0278		    END;
    339					;     	0279	    XN();
    340					;     	0280	    NOVALUE
    341					;     	0281	    END;
    342					;     	0282
    343
    344
    345	000302				OUTN:
    346	000302	012700 	000352'			MOV	#OWNBUF+2,R$0
    347	000306	016610 	000002 			MOV	2(SP),@R$0
    348	000312	016667 	000004 	000030 		MOV	4(SP),OWNBUF
    349	000320	001010 				BNE	L$35
    350	000322	005310 			L$34:	DEC	@R$0
    351	000324	100410 				BMI	L$33
    352	000326	112777 	000060 	000000G		MOVB	#60,@OUTPTR
    353	000334	005267 	000000G			INC	OUTPTR
    354	000340	000770 				BR	L$34
    355	000342	000167 	177612 		L$35:	JMP	XN
    356	000346	000207 			L$33:	RTS	PC
    357
    358					; ROUTINE SIZE:  19
    359
    360
    361
    362
    363
    364					;     	0283	END
    365					;     	0284	ELUDOM
    366
    367
    368	000350				ZLSTIO:
    369
    370					; ROUTINE SIZE:  0
    371
    372
    373	000350				.PSECT
    374
    375	000350	000360'			OWNBUF: .=.+10
    376					.GLOBL OUTN
    377					.GLOBL OUTR50
    378					.GLOBL OUTSA
    379					.GLOBL OUTPTR
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 9


    381					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.51	ZLSTIO.B11	PAGE 1-7
    382
    383					.GLOBL OUTC
    384
    385					.GLOBL $SAV4
    386					.GLOBL $SAV2
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396					; SIZE:  113+7
    397					; RUN TIME:  6 SECONDS
    398					; CORE USED:  14K
    399					; COMPILATION COMPLETE
    400
    401		000001 			.END
ZLSTIO	MACRO M1113  14-APR-81 11:46  PAGE 9-1
SYMBOL TABLE

L$10    000054R  	L$31    000300R  	OUTN    000302RG 	R$0   =%000000   	U$10    000104R
L$12    000066R  	L$33    000346R  	OUTPTR= ****** G 	R$1   =%000001   	U$2     000034R
L$16    000136R  	L$34    000322R  	OUTR50  000042RG 	R$2   =%000002   	XN      000160R
L$18    000132R  	L$35    000342R  	OUTSA   000012RG 	R$3   =%000003   	ZLSTIO  000350R
L$20    000126R  	L$4     000024R  	OWNBUF  000350R  	R$4   =%000004   	$SAV2 = ****** G
L$26    000202R  	OUTC    000000RG 	P$AAB   000152R  	R$5   =%000005   	$SAV4 = ****** G
L$27    000224R

. ABS.	000000	   000
      	000360	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  199 WORDS  ( 1 PAGES)
DYNAMIC MEMORY:  2518 WORDS  ( 9 PAGES)
ELAPSED TIME:  00:00:06
[62,10]ZLSTIO,[62,20]ZLSTIO/-SP/CR=[62,30]ZLSTIO.P11
ZLSTIO     CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

L$10  	  000054 R	#5-211      6-237     
L$12  	  000066 R	#5-215      6-224     
L$16  	  000136 R	 6-227     #6-234     
L$18  	  000132 R	 6-229     #6-233     
L$20  	  000126 R	 6-230     #6-232     
L$26  	  000202 R	#7-300      7-306     
L$27  	  000224 R	 7-299     #7-307     
L$31  	  000300 R	 7-303     #7-320     
L$33  	  000346 R	 8-351     #8-356     
L$34  	  000322 R	#8-350      8-354     
L$35  	  000342 R	 8-349     #8-355     
L$4   	  000024 R	#4-151      4-154     
OUTC  	  000000 RG	#3-106      6-235      9-383     
OUTN  	  000302 RG	#8-345      8-376     
OUTPTR	= ******  G	 3-107     *3-108      4-149     *4-155      7-297      8-352     *8-353      8-379     
OUTR50	  000042 RG	#5-207      8-377     
OUTSA 	  000012 RG	#4-147      8-378     
OWNBUF	  000350 R	 7-296      7-298      7-307      7-309     *7-313     *7-314      8-346     *8-348     #8-375     
P$AAB 	  000152 R	 5-214     #6-245     
R$0   	=%000000	#3-96       3-107      4-150      5-209     *5-216     *5-217     *5-218     *6-234     *7-296     
                         7-300      7-302      7-315     *8-346      8-347      8-350     
R$1   	=%000001	#3-97      *4-148     *4-149     *4-153      4-155     *5-208     *5-212     *5-213      5-214     
                        *5-214      5-215      6-225     *7-295     *7-297      7-304      7-305      7-318      7-319     
R$2   	=%000002	#3-98      *4-150      4-151     *4-153     *5-211     *6-223      6-226      6-228     *6-231     
                        *6-232     *6-233      6-234     *7-300     *7-301      7-302     *7-307     *7-308     *7-317     
                         7-318     
R$3   	=%000003	#3-99      *5-209     *5-215      5-216     *6-225     
R$4   	=%000004	#3-100     *5-210      5-212     *6-236     
R$5   	=%000005	#3-101     
U$10  	  000104 R	 6-222     #6-225     
U$2   	  000034 R	 4-152     #4-155     
XN    	  000160 R	#7-294      7-316      8-355     
ZLSTIO	  000350 R	#8-368     
$SAV2 	= ******  G	 4-148      7-295      9-386     
$SAV4 	= ******  G	 5-208      9-385     
BLILIB	MACRO M1113  14-APR-81 11:46
TABLE OF CONTENTS

     2-   36	SIGNAL/ENABLE CALLING SEQUENCES
     3-   61	SIGNAL/ENABLE ROUTINES
     3-  104	SIGNAL/ENABLE GLOBAL VARIABLES
     4-  111	REGISTER SAVE/RESTORE COROUTINES
BLILIB	MACRO M1113  14-APR-81 11:46  PAGE 1


      1						.TITLE	BLILIB
      2						.IDENT	/000006/
      3
      4					; COPYRIGHT 1973,1974		DIGITAL EQUIPMENT CORP.
      5					;				MAYNARD, MASS.
      6					;
      7					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
      8					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY
      9					; DIGITAL EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT CORPORATION
     10					; ASSUMES NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR
     11					; IN THIS DOCUMENT.
     12					;
     13					; THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO
     14					; THE PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER
     15					; SYSTEM AND CAN BE COPIED (WITH INCLUSION OF DIGITAL'S
     16					; COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY
     17					; OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
     18					;
     19					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
     20					; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
     21
     22					; WRITTEN BY
     23					;	R. GROVE
     24					;	P. KNUEVEN
     25
     26					; THIS MODULE PROVIDES RUN-TIME, OUT-OF-LINE SUPPORT
     27					; FOR BLISS COMPILER-GENERATED CALLS.
     28					; IN PARTICULAR, SUPPORT ROUTINES HAVING NO REASONABLE
     29					; EXPRESSION IN BLISS ARE INCLUDED IN THIS MODULE.
     30
     31						.MACRO	CHKSP
     32						CMP	SP,STKLIM
     33						BLOS	STKOV
     34						.ENDM
BLILIB	MACRO M1113  14-APR-81 11:46  PAGE 2
SIGNAL/ENABLE CALLING SEQUENCES

     36						.SBTTL	SIGNAL/ENABLE CALLING SEQUENCES
     37					;   ENABLE
     38					;
     39					;	MOV	#N,R0		STACK OFFSET TO ENABLE FRAME
     40					;	JSR	PC,$ENABL	SET UP ENABLE FRAME
     41					; A:	.WORD	B-(A+2)
     42					; A+2:	SELECT BODY FOR ENABLE
     43					;	. . .
     44					;	END OF ENABLE BODY
     45					; B:
     46
     47					;   SIGNAL .V
     48					;	MOV	V,R0
     49					;	JMP	$SIGNL
     50
     51					;   RE-SIGNAL FROM ENABLE BODY (SIGNAL .SIGVAL)
     52					;	JMP	$SIGN1
     53
     54					; SIGNAL/ENABLE DATA STRUCTURE
     55					;
     56					;   AN ENABLE STACK FRAME LOOKS LIKE:
     57					;		+4: SAVED PC	ENA.PC
     58					;		+2: SAVED SP	ENA.SP
     59					;   SIGREG--->  +0: OLD SIGREG	ENA.SIGREG
BLILIB	MACRO M1113  14-APR-81 11:46  PAGE 3
SIGNAL/ENABLE ROUTINES

     61						.SBTTL	SIGNAL/ENABLE ROUTINES
     62					; GLOBAL ROUTINE REGISTER0 $ENABL(R0)=
     63					;
     64					; FUNCTION
     65					;	BUILD AN ENABLE FRAME AS DESCRIBED ABOVE
     66					; INPUTS
     67					;	R0	- STACK DISPLACEMENT TO LAST WORD OF ENABLE FRAME
     68					; OUTPUTS
     69					;	VALUE	- NONE
     70					;	STACK	- ENABLE FRAME POINTED AT BY SIGREG
     71					; STACK PICTURE ON ENTRY
     72					;	+N  :  ENA.PC
     73					;	+N-2:  ENA.SP
     74					;	+N-4:  ENA.SIGREG
     75					;	...
     76					;	+0  : A (RETURN ADDRESS)
     77
     78	000000				$ENABL::
     79	000000	060600 				ADD	SP,R0		; R0 NOW POINTS TO ENA.PC
     80	000002	011610 				MOV	(SP),(R0)
     81	000004	062710 	000002 			ADD	#2,(R0)		; ENA.PC = A+2
     82	000010	017616 	000000 			MOV	@0(SP),(SP)	; PICK UP (B-(A+2)) FROM CODE
     83	000014	061016 				ADD	(R0),(SP)	; RETURN FROM $ENABL = B
     84
     85	000016	010640 				MOV	SP,-(R0)
     86	000020	062710 	000002 			ADD	#2,(R0)		; ENA.SP = .SP+2
     87
     88	000024	016740 	000002'			MOV	SIGREG,-(R0)	; ENA.SIGREG = .SIGREG
     89	000030	010067 	000002'			MOV	R0,SIGREG	; ADD NEW FRAME TO CHAIN
     90	000034	000207 				RTS	PC
     91
     92					; GLOBAL ENTRY REGISTER0 $SIGNL(R0)=
     93	000036				$SIGNL::
     94	000036	010067 	000000'			MOV	R0,SIGVAL	; SET VALUE SIGNALLED
     95
     96					; GLOBAL ENTRY $SIGN1=
     97	000042				$SIGN1::
     98	000042	016700 	000002'			MOV	SIGREG,R0	; GET POINTER TO LAST ENABLE FRAME
     99	000046	012067 	000002'			MOV	(R0)+,SIGREG	; POP ENABLE STACK ONE LEVEL
    100	000052	012006 				MOV	(R0)+,SP	; RESTORE STACK
    101	000054	000130 				JMP	@(R0)+		; GO TO ENABLE BODY
    102
    103
    104						.SBTTL	SIGNAL/ENABLE GLOBAL VARIABLES
    105
    106	000000					.PSECT	$GBL
    107	000000				SIGVAL::.BLKW
    108	000002	177777 			SIGREG::.WORD	-1		; ODD ADDRESS FAULT FORCED AT LEVEL 0
    109	000056					.PSECT
BLILIB	MACRO M1113  14-APR-81 11:46  PAGE 4
REGISTER SAVE/RESTORE COROUTINES

    111						.SBTTL	REGISTER SAVE/RESTORE COROUTINES
    112
    113					; THE ROUTINE $SAVN IS CALLED AT THE BEGINNING OF A
    114					; ROUTINE WHICH MODIFIES THE CONTENTS OF R1-RN
    115					; THE CALLING SEQUENCE IS
    116					;	JSR	R1,$SAVN
    117					;
    118					; NOTES: 1. BLISS-11 DOES NOT GENERATE CALLS FOR $SAV1
    119					;	 2. STACK OVERFLOW CHECKING IS INCLUDED IN THESE ROUTINES
    120					;	    A "SIGNAL 1" IS EXECUTED ON STACK OVERFLOW
    121
    122	000056	010246 			$SAV2::	MOV	R2,-(SP)
    123	000060	010146 				MOV	R1,-(SP)
    124	000062	016601 	000004 			MOV	4(SP),R1
    125	000066					CHKSP
    126	000074	004736 				JSR	PC,@(SP)+
    127	000076	000443 				BR	RE2
    128
    129	000100	010246 			$SAV3::	MOV	R2,-(SP)
    130	000102	010346 				MOV	R3,-(SP)
    131	000104	010146 				MOV	R1,-(SP)
    132	000106	016601 	000006 			MOV	6(SP),R1
    133	000112					CHKSP
    134	000120	004736 				JSR	PC,@(SP)+
    135	000122	000430 				BR	RE3
    136
    137	000124	010246 			$SAV4::	MOV	R2,-(SP)
    138	000126	010346 				MOV	R3,-(SP)
    139	000130	010446 				MOV	R4,-(SP)
    140	000132	010146 				MOV	R1,-(SP)
    141	000134	016601 	000010 			MOV	8.(SP),R1
    142	000140					CHKSP
    143	000146	004736 				JSR	PC,@(SP)+
    144	000150	000414 				BR	RE4
    145
    146	000152	010246 			$SAV5::	MOV	R2,-(SP)
    147	000154	010346 				MOV	R3,-(SP)
    148	000156	010446 				MOV	R4,-(SP)
    149	000160	010546 				MOV	R5,-(SP)	; STACK NOW HAS R1,R2,R3,R4,R5
    150	000162	010146 				MOV	R1,-(SP)	; RESUME POINT FOR COROUTINE CALL
    151	000164	016601 	000012 			MOV	10.(SP),R1	; RESTORE ORIGINAL R1
    152	000170					CHKSP
    153	000176	004736 				JSR	PC,@(SP)+
    154
    155	000200	012605 				MOV	(SP)+,R5	; RESTORE SAVED REGISTERS
    156	000202	012604 			RE4:	MOV	(SP)+,R4
    157	000204	012603 			RE3:	MOV	(SP)+,R3
    158	000206	012602 			RE2:	MOV	(SP)+,R2
    159	000210	012601 			RE1:	MOV	(SP)+,R1
    160	000212	000207 				RTS	PC
    161
    162	000214	012700 	000001 		STKOV:	MOV	#1,R0		; SIGNAL 1 ON STACK LIMIT
    163	000220	000706 				BR	$SIGNL
    164
    165		000001 				.END
BLILIB	MACRO M1113  14-APR-81 11:46  PAGE 4-1
SYMBOL TABLE

RE1     000210R  	RE4     000202R  	STKLIM= ****** GX	$SAV2   000056RG 	$SAV5   000152RG
RE2     000206R  	SIGREG  000002RG    002	STKOV   000214R  	$SAV3   000100RG 	$SIGNL  000036RG
RE3     000204R  	SIGVAL  000000RG    002	$ENABL  000000RG 	$SAV4   000124RG 	$SIGN1  000042RG

. ABS.	000000	   000
      	000222	   001
$GBL  	000004	   002
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  159 WORDS  ( 1 PAGES)
DYNAMIC MEMORY:  2518 WORDS  ( 9 PAGES)
ELAPSED TIME:  00:00:04
[62,10]ZBLILB,[62,20]ZBLILB/-SP/CR=[62,30]ZBLILB
ZBLILB     CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

RE1   	  000210 R	#4-159     
RE2   	  000206 R	 4-127     #4-158     
RE3   	  000204 R	 4-135     #4-157     
RE4   	  000202 R	 4-144     #4-156     
SIGREG	  000002 RG	 3-88      *3-89       3-98      *3-99      #3-108     
SIGVAL	  000000 RG	*3-94      #3-107     
STKLIM	= ******  GX	 4-125      4-133      4-142      4-152     
STKOV 	  000214 R	 4-125      4-133      4-142      4-152     #4-162     
$ENABL	  000000 RG	#3-78      
$SAV2 	  000056 RG	#4-122     
$SAV3 	  000100 RG	#4-129     
$SAV4 	  000124 RG	#4-137     
$SAV5 	  000152 RG	#4-146     
$SIGNL	  000036 RG	#3-93       4-163     
$SIGN1	  000042 RG	#3-97      
ZBLILB     CREATED BY  MACRO  ON 14-APR-81 AT 11:46	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CHKSP 		#1-31       4-125      4-133      4-142      4-152     
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 2


      2					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.25	ZIN11M.B11	PAGE 1
      3
      4					;     	0001	MODULE ZINIT(IDENT="11M005")=
      5					;     	0002	BEGIN
      6					;     	0003
      7					;     	0004	!
      8					;     	0005	!
      9					;     	0006	! COPYRIGHT 1975,
     10					;     	0007	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
     11					;     	0008	!
     12					;     	0009	! THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     13					;     	0010	! ON A SINGLE COMPUTER SYSTEM  AND  CAN BE COPIED (WITH INCLUSION
     14					;     	0011	! OF DEC'S COPYRIGHT NOTICE)  ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     15					;     	0012	! AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     16					;     	0013	!
     17					;     	0014	! THE INFORMATION IN  THIS DOCUMENT IS  SUBJECT TO CHANGE WITHOUT
     18					;     	0015	! NOTICE AND SHOULD NOT  BE CONSTRUED AS  A COMMITMENT BY DIGITAL
     19					;     	0016	! EQUIPMENT CORPORATION.
     20					;     	0017	!
     21					;     	0018	! DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     22					;     	0019	! OF ITS  SOFTWARE  ON  EQUIPMENT  WHICH IS NOT  SUPPLIED BY DEC.
     23					;     	0020	!
     24					;     	0021	! WRITTEN BY
     25					;     	0022	!	M. JACK
     26					;     	0023	!
     27					;     	0024	! MODULE FUNCTION
     28					;     	0025	!	TASK-IMAGE PATCHING UTILITY FOR USE WITH RSX-11D AND RSX-11M
     29					;     	0026	!
     30					;     	0027	!
     31					;     	0028
     32					;     	0029	LINKAGE
     33					;     	0030		REG0 = BLISS(REGISTER=0);
     34					;     	0031
     35					;     	0032	FORWARD
     36					;     	0033		ZAPINIT,
     37					;     	0034		DOOVERLAY;
     38					;     	0035
     39					;     	0036
     40					;     	0037	REQUIRE STDMAC.BEG;
     41					;     	0038	!	STDMAC.BEG - WIDELY USED STANDARD MACROS
     42					;     	0039	!
     43					;     	0057	SWITCHES LIST; SWITCHES LIST;
     44					;     	0058	!	VERSION 000005
     45					;     	0059	!	LAST MODIFIED 05/13/74 RBG
     46					;     	0098	SWITCHES LIST; SWITCHES LIST;
     47					;     	0099	!	STDMAC.BEG LAST LINE
     48					;     	0100
     49					;     	0101	REQUIRE STDSTR.BEG;
     50					;     	0102	!	STDSTR.BEG - WIDELY USED STANDARD STRUCTURES
     51					;     	0103	!
     52					;     	0121	SWITCHES LIST; SWITCHES LIST;
     53					;     	0122	!	VERSION 000003
     54					;     	0123	!	LAST MODIFIED 02/28/74 RBG
     55					;     	0137	SWITCHES LIST; SWITCHES LIST;
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 3


     57					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.26	STDSTR.BEG	PAGE 1-1
     58
     59					;     	0138	!	STDSTR.BEG LAST LINE
     60					;     	0139
     61					;     	0140	REQUIRE ZAP.BEG;
     62					;     	0141	!	ZAP.BEG - BEGIN FILE FOR ZAP
     63					;     	0142	!
     64					;     	0152	SWITCHES LIST; SWITCHES LIST;
     65					;     	0153	!
     66					;     	0154	!	VERSION 000002
     67					;     	0155	!	LAST MODIFIED 09/01/74
     68					;     	0156	!
     69					;     	0157
     70					;     	0158	STRUCTURE
     71					;     	0159		BUFFER[I] = (.BUFFER + .I)<0,16>;
     72					;     	0160
     73					;     	0161	BIND
     74					;     	0162		SEGSIZ=	5,		! LENGTH OF SEGMENT TABLE ENTRY
     75					;     	0163		SEGENT=	64;		! NUMBER OF SEGMENT TABLE ENTRIES
     76					;     	0164
     77					;     	0165	MACRO
     78					;     	0166		SEGBLK=	0,0,16$,	! STARTING DISK BLOCK (SEGMENT "NAME")
     79					;     	0167		SEGLOW=	1,0,16$,	! LOW ADDRESS
     80					;     	0168		SEGHIGH=2,0,16$,	! HIGH ADDRESS PLUS ONE
     81					;     	0169		SEGVIRT=3,0,16$,	! VIRTUAL ORIGIN DATA
     82					;     	0170		SEGVIR1=3,0,16$,	! HIGH ORDER WORD OF SEGVIRT
     83					;     	0171		SEGVIR0=4,0,16$,	! LOW ORDER WORD OF SEGVIRT
     84					;     	0172		SEGVIRW=4,0,9$,		! WORD OFFSET PART OF SEGVIRT
     85					;     	0173		SEGNEXT=5,0,16$;	! OFFSET TO NEXT ENTRY
     86					;     	0174
     87					;     	0175	MACRO
     88					;     	0176		ABSOLUTE=0,0,1$,	! /AB SWITCH BIT
     89					;     	0177		READONLY=0,1,1$,	! /RO SWITCH BIT
     90					;     	0178		LISTING=0,2,1$;		! /LI SWITCH BIT
     91					;     	0179
     92					;     	0180	BIND
     93					;     	0181		NORELO=	0,		! NO SUCH RELOCATION REGISTER
     94					;     	0182		ADROOB=	1,		! ADDRESS NOT WITHIN SEGMENT
     95					;     	0183		NOSEGM=	2,		! NO SUCH SEGMENT
     96					;     	0184		BADARG=	3,		! BAD ARGUMENT COUNT
     97					;     	0185		NOSPEC=	4,		! NO SUCH SPECIAL REGISTER
     98					;     	0186		BADCMD=	5,		! UNRECOGNIZABLE COMMAND
     99					;     	0187		NOOPEN=	6,		! NO OPEN LOCATION
    100					;     	0188		NOBYTE=	7,		! CANNOT USE IN BYTE MODE
    101					;     	0189		BADTSK=	12,		! BAD TASK IMAGE
    102					;     	0190		VFYREJ=	13,		! VERIFY REJECT
    103					;     	0191		NOTYET=	14;		! NOT YET IMPLEMENTED
    104					;     	0192
    105					;     	0193	BIND
    106					;     	0194		SIGXIT=	-1,		! SIGNAL VALUE FOR EXIT
    107					;     	0195		SIGADR=	-2;		! SIGNAL VALUE FOR ADDRESS ERROR
    108					;     	0196
    109					;     	0197	!
    110					;     	0198	!	ZAP.BEG LAST LINE
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 4


    112					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.27	ZAP.BEG	PAGE 1-2
    113
    114					;     	0199
    115					;     	0200
    116					;     	0201	PSECT
    117					;     	0202		CODE=" ", OWN=" ", GLOBAL=" ";
    118					;     	0203
    119					;     	0204	MACRO
    120					;     	0205		SGBLK=	0,0,12$,	! DISK BLOCK
    121					;     	0206		SGLDA=	1,0,16$,	! LOAD ADDRESS
    122					;     	0207		SGLNG=	2,0,16$,	! LENGTH
    123					;     	0208		SGUP=	3,0,16$,	! LINK UP
    124					;     	0209		SGNXT=	5,0,16$;	! LINK NEXT
    125					;     	0210
    126					;     	0211	EXTERNAL
    127					;     	0212		OPENLOC,		! OPEN A LOCATION IN TASK SPACE
    128					;     	0213		FCSOPEN,		! OPEN FILES
    129					;     	0214		REG0 FCSREAD,		! READ TASK IMAGE BLOCK
    130					;     	0215		REG0 VIRTZERO,		! CALCULATE OVERLAY VIRTUAL ZERO
    131					;     	0216		ROVZRO,			! VIRTUAL-ZERO CALC FOR RO PSECTS
    132					;     	0217		REG0 OUTC,		! OUTPUT CHARACTER
    133					;     	0218		REG0 OUTSA,		! OUTPUT ASCIZ STRING
    134					;     	0219		OUTN,			! OUTPUT NUMBER
    135					;     	0220		REG0 ERRPRT,		! ERROR MESSAGE OUTPUT
    136					;     	0221		EOL;			! OUTPUT RECORD
    137					;     	0222
    138					;     	0223	EXTERNAL
    139					;     	0224		REALDOT,		! VALUE OF DOT IN BUFFER
    140					;     	0225		PBLOCK SEGMAX,		! UPPER LIMIT OF SEGTAB
    141					;     	0226		VECBLOCK SEGTAB[SEGSIZ,SEGENT],	! SEGMENT DESCRIPTION TABLE
    142					;     	0227		BLOCK SWITCH,		! COMMAND SWITCHES
    143					;     	0228		BUFFER BLKBUF;		! TASK IMAGE BLOCK BUFFER
    144					;     	0229
    145					;     	0230	OWN
    146					;     	0231		ROOTSEG;		! SEGMENT-ID OF ROOT SEGMENT
    147					;     	0232
    148					;     	0233
    149					;     	0234
    150					;     	0235
    151					;     	0236
    152					;     	0237	COMMENT ! ZAPINIT
    153					;     	0238	!
    154					;     	0239	! FUNCTION
    155					;     	0240	!	CONSTRUCT THE SEGMENT TABLE INTERNAL TO ZAP
    156					;     	0241	!
    157					;     	0242	! INPUTS
    158					;     	0243	!	ON-DISK DATA STRUCTURE
    159					;     	0244	!
    160					;     	0245	! OUTPUTS
    161					;     	0246	!	SEGTAB	- DESCRIPTIONS OF EACH SEGMENT
    162					;     	0247	!	ROOTSEG	- SEGMENT-ID OF THE ROOT SEGMENT
    163					;     	0248	!	VALUE	- NONE
    164					;     	0249	!
    165					;     	0250
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 5


    167					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.27	ZIN11M.B11	PAGE 1-3
    168
    169					;     	0251	GLOBAL ROUTINE ZAPINIT=
    170					;     	0252	    BEGIN
    171					;     	0253
    172					;     	0254	    BIND
    173					;     	0255		LBLVBN = UPLIT(0,1),
    174					;     	0256		HDRVBN = UPLIT(0,4);
    175					;     	0257
    176					;     	0258	    LOCAL
    177					;     	0259		PTR,			! POINTER TO OVERLAY DATA
    178					;     	0260		PBLOCK S;		! POINTER TO SEGMENT TABLE
    179					;     	0261
    180					;     	0262
    181					;     	0263	    ENABLE
    182					;     	0264		SIGADR: (ERRPRT(BADTSK);  SIGNAL SIGXIT)
    183					;     	0265	    ELBANE;
    184					;     	0266
    185					;     	0267	    FCSOPEN();
    186					;     	0268
    187					;     	0269	    SEGMAX = SEGTAB;
    188					;     	0270	    SEGMAX[SEGBLK] = 0;
    189					;     	0271	    SEGMAX[SEGLOW] = 0;
    190					;     	0272	    SEGMAX[SEGHIGH] = #177777;
    191					;     	0273	    SEGMAX[SEGVIR1] = 0;
    192					;     	0274	    IF NOT .SWITCH[ABSOLUTE]
    193					;     	0275	    THEN
    194					;     	0276		BEGIN
    195					;     	0277		FCSREAD(LBLVBN);
    196					;     	0278		SEGMAX[SEGBLK] = ROOTSEG = .BLKBUF[#22];
    197					;     	0279		SEGMAX[SEGLOW] = .BLKBUF[#20];
    198					;     	0280		SEGMAX[SEGHIGH] = .SEGMAX[SEGLOW] + .BLKBUF[#14]*64;
    199					;     	0281		VIRTZERO(.SEGMAX,1);
    200					;     	0282		IF (PTR = OPENLOC(.ROOTSEG,.SEGMAX[SEGLOW]+#54)) NEQ 0
    201					;     	0283		THEN
    202					;     	0284		    IF OPENLOC(.ROOTSEG,.PTR) NEQ 0
    203					;     	0285		    THEN
    204					;     	0286			DOOVERLAY(OPENLOC(.ROOTSEG,.PTR+2));
    205					;     	0287		IF .SWITCH[LISTING]
    206					;     	0288		THEN
    207					;     	0289		    BEGIN
    208					;     	0290		    OUTSA(UPLIT ASCIZ "SEGMENT TABLE");
    209					;     	0291		    EOL();
    210					;     	0292		    S = SEGTAB;
    211					;     	0293		    DO
    212					;     	0294			BEGIN
    213					;     	0295			OUTN(.S[SEGBLK],6);
    214					;     	0296			OUTC(":");
    215					;     	0297			OUTC(" ");
    216					;     	0298			OUTN(.S[SEGLOW],6);
    217					;     	0299			OUTC("-");
    218					;     	0300			OUTN(.S[SEGHIGH]-1,6);
    219					;     	0301			EOL();
    220					;     	0302			S = S[SEGNEXT];
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 6


    222					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.28	ZIN11M.B11	PAGE 1-4
    223
    224					;     	0303			END
    225					;     	0304		    UNTIL
    226					;     	0305			.S GEQU .SEGMAX;
    227					;     	0306		    END;
    228					;     	0307		END;
    229					;     	0308	    NOVALUE
    230					;     	0309	    END;
    231					;     	0310
    232					.TITLE ZINIT
    233					.IDENT /11M005/
    234	000000				.PSECT
    235
    236
    237		000000 			R$0=%0
    238		000001 			R$1=%1
    239		000002 			R$2=%2
    240		000003 			R$3=%3
    241		000004 			R$4=%4
    242		000005 			R$5=%5
    243		000006 			SP=%6
    244		000007 			PC=%7
    245
    246
    247	000000				ZAPINIT:
    248	000000	004167 	000000G			JSR	R$1,$SAV5
    249	000004	162706 	000006 			SUB	#6,SP
    250	000010	012700 	000006 			MOV	#6,R$0
    251	000014	004767 	000000G			JSR	PC,$ENABL
    252	000020	000034 				.WORD	L$5-L$4
    253	000022	026727 	000000G	177776 	L$4:	CMP	SIGVAL,#177776
    254	000030	001010 				BNE	L$6
    255	000032	012700 	000014 			MOV	#14,R$0
    256	000036	004767 	000000G			JSR	PC,ERRPRT
    257	000042	012700 	177777 			MOV	#177777,R$0
    258	000046	000167 	000000G			JMP	$SIGNL
    259	000052	000167 	000000G		L$6:	JMP	$SIGN1
    260	000056	004767 	000000G		L$5:	JSR	PC,FCSOPEN
    261	000062	012767 	000000G	000000G		MOV	#SEGTAB,SEGMAX
    262	000070	012705 	000000G			MOV	#SEGTAB,R$5
    263	000074	005015 				CLR	@R$5
    264	000076	005065 	000002 			CLR	2(R$5)
    265	000102	012765 	177777 	000004 		MOV	#177777,4(R$5)
    266	000110	005065 	000006 			CLR	6(R$5)
    267	000114	132737 	000001 	000000G		BITB	#1,@#SWITCH
    268	000122	001171 				BNE	L$9
    269	000124	012700 	000522'			MOV	#P$AAB,R$0
    270	000130	004767 	000000G			JSR	PC,FCSREAD
    271	000134	013700 	000000G			MOV	@#SEGMAX,R$0
    272	000140	013767 	000022G	000650 		MOV	@#BLKBUF+22,ROOTSEG
    273	000146	016710 	000644 			MOV	ROOTSEG,@R$0
    274	000152	013760 	000020G	000002 		MOV	@#BLKBUF+20,2(R$0)
    275	000160	013705 	000014G			MOV	@#BLKBUF+14,R$5
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 7


    277					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.32	ZIN11M.B11	PAGE 1-5
    278
    279	000164	006305 				ASL	R$5
    280	000166	006305 				ASL	R$5
    281	000170	006305 				ASL	R$5
    282	000172	006305 				ASL	R$5
    283	000174	006305 				ASL	R$5
    284	000176	006305 				ASL	R$5
    285	000200	063705 	000020G			ADD	@#BLKBUF+20,R$5
    286	000204	010560 	000004 			MOV	R$5,4(R$0)
    287	000210	012746 	000001 			MOV	#1,-(SP)
    288	000214	004767 	000000G			JSR	PC,VIRTZERO
    289	000220	013716 	001016'			MOV	@#ROOTSEG,@SP
    290	000224	013705 	000000G			MOV	@#SEGMAX,R$5
    291	000230	016505 	000002 			MOV	2(R$5),R$5
    292	000234	062705 	000054 			ADD	#54,R$5
    293	000240	010546 				MOV	R$5,-(SP)
    294	000242	004767 	000000G			JSR	PC,OPENLOC
    295	000246	010005 				MOV	R$0,R$5
    296	000250	001426 				BEQ	L$11
    297	000252	013746 	001016'			MOV	@#ROOTSEG,-(SP)
    298	000256	010546 				MOV	R$5,-(SP)
    299	000260	004767 	000000G			JSR	PC,OPENLOC
    300	000264	005700 				TST	R$0
    301	000266	001416 				BEQ	L$13
    302	000270	013746 	001016'			MOV	@#ROOTSEG,-(SP)
    303	000274	010566 	000002 			MOV	R$5,2(SP)
    304	000300	061766 	000002 			ADD	@PC,2(SP)
    305	000304	016646 	000002 			MOV	2(SP),-(SP)
    306	000310	004767 	000000G			JSR	PC,OPENLOC
    307	000314	010016 				MOV	R$0,@SP
    308	000316	004767 	000226 			JSR	PC,DOOVERLAY
    309	000322	022626 				CMP	(SP)+,(SP)+
    310	000324	022626 			L$13:	CMP	(SP)+,(SP)+
    311	000326	132737 	000004 	000000G	L$11:	BITB	#4,@#SWITCH
    312	000334	001463 				BEQ	L$16
    313	000336	012700 	000532'			MOV	#P$AAD,R$0
    314	000342	004767 	000000G			JSR	PC,OUTSA
    315	000346	004767 	000000G			JSR	PC,EOL
    316	000352	012705 	000000G			MOV	#SEGTAB,R$5
    317	000356	011546 			L$18:	MOV	@R$5,-(SP)
    318	000360	012746 	000006 			MOV	#6,-(SP)
    319	000364	004767 	000000G			JSR	PC,OUTN
    320	000370	012700 	000072 			MOV	#72,R$0
    321	000374	004767 	000000G			JSR	PC,OUTC
    322	000400	012700 	000040 			MOV	#40,R$0
    323	000404	004767 	000000G			JSR	PC,OUTC
    324	000410	016516 	000002 			MOV	2(R$5),@SP
    325	000414	012746 	000006 			MOV	#6,-(SP)
    326	000420	004767 	000000G			JSR	PC,OUTN
    327	000424	012700 	000055 			MOV	#55,R$0
    328	000430	004767 	000000G			JSR	PC,OUTC
    329	000434	016566 	000004 	000004 		MOV	4(R$5),4(SP)
    330	000442	005366 	000004 			DEC	4(SP)
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 8


    332					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.32	ZIN11M.B11	PAGE 1-6
    333
    334	000446	016616 	000004 			MOV	4(SP),@SP
    335	000452	012746 	000006 			MOV	#6,-(SP)
    336	000456	004767 	000000G			JSR	PC,OUTN
    337	000462	004767 	000000G			JSR	PC,EOL
    338	000466	062705 	000012 			ADD	#12,R$5
    339	000472	062706 	000010 			ADD	#10,SP
    340	000476	020537 	000000G			CMP	R$5,@#SEGMAX
    341	000502	103725 				BLO	L$18
    342	000504	022626 			L$16:	CMP	(SP)+,(SP)+
    343	000506	017767 	000000G	000000G	L$9:	MOV	@SIGREG,SIGREG
    344	000514	062706 	000006 			ADD	#6,SP
    345	000520	000207 				RTS	PC
    346
    347					; ROUTINE SIZE:  169
    348
    349
    350	000522				.PSECT
    351
    352	000522	000000 	000001 		P$AAB:	.WORD  0,1
    353	000526	000000 	000004 		P$AAC:	.WORD  0,4
    354	000532	042523 	046507 	047105 	P$AAD:	.WORD  42523,46507,47105
    355	000540	020124 	040524 	046102 		.WORD  20124,40524,46102
    356	000546	000105 				.WORD  105
    357
    358
    359
    360					;     	0311	COMMENT ! DOOVERLAY(INITADR)
    361					;     	0312	!
    362					;     	0313	! FUNCTION
    363					;     	0314	!	A RECURSIVE PROCEDURE TO SCAN THE OVERLAY SEGMENT
    364					;     	0315	!	DESCRIPTORS AND BUILD THE SEGMENT TABLE
    365					;     	0316	!
    366					;     	0317	! INPUTS
    367					;     	0318	!	INITADR	- THE ADDRESS OF A SEGMENT DESCRIPTOR
    368					;     	0319	!		IN TASK ADDRESS SPACE
    369					;     	0320	!	ON-DISK DATA STRUCTURE
    370					;     	0321	!
    371					;     	0322	! OUTPUTS
    372					;     	0323	!	SEGMENT TABLE ENTRIES FOR ALL DESCENDANTS OF THE
    373					;     	0324	!	INITADR
    374					;     	0325	!	VALUE	- NONE
    375					;     	0326	!
    376					;     	0327
    377					;     	0328	ROUTINE DOOVERLAY(INITADR)=
    378					;     	0329	    BEGIN
    379					;     	0330
    380					;     	0331	    LOCAL
    381					;     	0332		BLOCK BLK,		! TEMPORARY
    382					;     	0333		PBLOCK CURADR;		! CURRENT SEGMENT TABLE ADDRESS
    383					;     	0334
    384					;     	0335
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 9


    386					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.33	ZIN11M.B11	PAGE 1-7
    387
    388					;     	0336	    CURADR = .INITADR;
    389					;     	0337	    DO
    390					;     	0338		BEGIN
    391					;     	0339		MACRO W(I,P,S)=I,0,16$;
    392					;     	0340		BLK = OPENLOC(.ROOTSEG,CURADR[W(SGBLK)]);
    393					;     	0341		SEGMAX[SEGBLK] = .BLK[SGBLK] + .ROOTSEG;
    394					;     	0342		SEGMAX[SEGLOW] = OPENLOC(.ROOTSEG,CURADR[SGLDA]);
    395					;     	0343		SEGMAX[SEGHIGH] =
    396					;     	0344		    .SEGMAX[SEGLOW] + OPENLOC(.ROOTSEG,CURADR[SGLNG]);
    397					;     	0345		VIRTZERO(.SEGMAX, 1);
    398					;     	0346		SEGMAX = SEGMAX[SEGNEXT];
    399					;     	0347		IF OPENLOC(.ROOTSEG,CURADR[SGUP]) NEQ 0
    400					;     	0348		THEN
    401					;     	0349		    DOOVERLAY(..REALDOT);
    402					;     	0350		END
    403					;     	0351	    UNTIL
    404					;     	0352		(CURADR = OPENLOC(.ROOTSEG,CURADR[SGNXT])) EQL .INITADR;
    405					;     	0353	    NOVALUE
    406					;     	0354	    END;
    407					;     	0355
    408
    409	000550				.PSECT
    410
    411
    412	000550				DOOVERLAY:
    413	000550	004167 	000000G			JSR	R$1,$SAV5
    414	000554	005746 				TST	-(SP)
    415	000556	016605 	000020 			MOV	20(SP),R$5
    416	000562	012704 	000000G		L$24:	MOV	#OPENLOC,R$4
    417	000566	012701 	001016'			MOV	#ROOTSEG,R$1
    418	000572	011146 				MOV	@R$1,-(SP)
    419	000574	010546 				MOV	R$5,-(SP)
    420	000576	004714 				JSR	PC,@R$4
    421	000600	010066 	000004 			MOV	R$0,4(SP)
    422	000604	012703 	000000G			MOV	#SEGMAX,R$3
    423	000610	010002 				MOV	R$0,R$2
    424	000612	042702 	170000 			BIC	#170000,R$2
    425	000616	061102 				ADD	@R$1,R$2
    426	000620	010273 	000000 			MOV	R$2,@0(R$3)
    427	000624	011302 				MOV	@R$3,R$2
    428	000626	011116 				MOV	@R$1,@SP
    429	000630	010546 				MOV	R$5,-(SP)
    430	000632	062716 	000002 			ADD	#2,@SP
    431	000636	004714 				JSR	PC,@R$4
    432	000640	010062 	000002 			MOV	R$0,2(R$2)
    433	000644	011302 				MOV	@R$3,R$2
    434	000646	011116 				MOV	@R$1,@SP
    435	000650	010566 	000002 			MOV	R$5,2(SP)
    436	000654	062766 	000004 	000002 		ADD	#4,2(SP)
    437	000662	016646 	000002 			MOV	2(SP),-(SP)
    438	000666	004714 				JSR	PC,@R$4
    439	000670	066200 	000002 			ADD	2(R$2),R$0
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 10


    441					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.36	ZIN11M.B11	PAGE 1-8
    442
    443	000674	010062 	000004 			MOV	R$0,4(R$2)
    444	000700	011300 				MOV	@R$3,R$0
    445	000702	012716 	000001 			MOV	#1,@SP
    446	000706	004767 	000000G			JSR	PC,VIRTZERO
    447	000712	062713 	000012 			ADD	#12,@R$3
    448	000716	011116 				MOV	@R$1,@SP
    449	000720	010566 	000004 			MOV	R$5,4(SP)
    450	000724	062766 	000006 	000004 		ADD	#6,4(SP)
    451	000732	016646 	000004 			MOV	4(SP),-(SP)
    452	000736	004714 				JSR	PC,@R$4
    453	000740	005700 				TST	R$0
    454	000742	001404 				BEQ	L$26
    455	000744	017716 	000000G			MOV	@REALDOT,@SP
    456	000750	004767 	177574 			JSR	PC,DOOVERLAY
    457	000754	011116 			L$26:	MOV	@R$1,@SP
    458	000756	010566 	000006 			MOV	R$5,6(SP)
    459	000762	062766 	000012 	000006 		ADD	#12,6(SP)
    460	000770	016646 	000006 			MOV	6(SP),-(SP)
    461	000774	004714 				JSR	PC,@R$4
    462	000776	010005 				MOV	R$0,R$5
    463	001000	062706 	000014 			ADD	#14,SP
    464	001004	020566 	000020 			CMP	R$5,20(SP)
    465	001010	001264 				BNE	L$24
    466	001012	005726 				TST	(SP)+
    467	001014	000207 				RTS	PC
    468
    469					; ROUTINE SIZE:  83
    470
    471
    472
    473
    474
    475					;     	0356	END ELUDOM
    476
    477
    478	001016				ZINIT:
    479
    480					; ROUTINE SIZE:  0
    481
    482
    483	001016				.PSECT
    484
    485	001016	001020'			ROOTSEG: .=.+2
    486					.GLOBL OUTN
    487					.GLOBL ZAPINIT
    488					.GLOBL REALDOT
    489					.GLOBL OUTSA
    490					.GLOBL VIRTZERO
    491					.GLOBL SEGMAX
    492					.GLOBL ROVZRO
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 11


    494					; BLIS11 V.74206	SUNDAY 13-APR-75 0:32.39	ZIN11M.B11	PAGE 1-9
    495
    496					.GLOBL OUTC
    497					.GLOBL EOL
    498					.GLOBL FCSREAD
    499					.GLOBL SEGTAB
    500					.GLOBL FCSOPEN
    501					.GLOBL BLKBUF
    502					.GLOBL SWITCH
    503					.GLOBL ERRPRT
    504					.GLOBL OPENLOC
    505
    506					.GLOBL $ENABL
    507					.GLOBL $SIGN1
    508					.GLOBL $SIGNL
    509					.GLOBL $SAV5
    510					.GLOBL SIGREG
    511					.GLOBL SIGVAL
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521					; SIZE:  252+12
    522					; RUN TIME:  8 SECONDS
    523					; CORE USED:  20K
    524					; COMPILATION COMPLETE
    525
    526		000001 			.END
ZINIT	MACRO M1113  14-APR-81 11:47  PAGE 11-1
SYMBOL TABLE

BLKBUF= ****** G 	L$18    000356R  	OUTN  = ****** G 	R$1   =%000001   	SWITCH= ****** G
DOOVER  000550R  	L$24    000562R  	OUTSA = ****** G 	R$2   =%000002   	VIRTZE= ****** G
EOL   = ****** G 	L$26    000754R  	P$AAB   000522R  	R$3   =%000003   	ZAPINI  000000RG
ERRPRT= ****** G 	L$4     000022R  	P$AAC   000526R  	R$4   =%000004   	ZINIT   001016R
FCSOPE= ****** G 	L$5     000056R  	P$AAD   000532R  	R$5   =%000005   	$ENABL= ****** G
FCSREA= ****** G 	L$6     000052R  	REALDO= ****** G 	SEGMAX= ****** G 	$SAV5 = ****** G
L$11    000326R  	L$9     000506R  	ROOTSE  001016R  	SEGTAB= ****** G 	$SIGNL= ****** G
L$13    000324R  	OPENLO= ****** G 	ROVZRO= ****** G 	SIGREG= ****** G 	$SIGN1= ****** G
L$16    000504R  	OUTC  = ****** G 	R$0   =%000000   	SIGVAL= ****** G

. ABS.	000000	   000
      	001020	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  266 WORDS  ( 2 PAGES)
DYNAMIC MEMORY:  2518 WORDS  ( 9 PAGES)
ELAPSED TIME:  00:00:06
[62,10]ZIN11M,[62,20]ZIN11M/-SP/CR=[62,30]ZIN11M.P11
ZIN11M     CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

BLKBUF	= ******  G	 6-272      6-274      6-275      7-285      11-501    
DOOVER	  000550 R	 7-308     #9-412      10-456    
EOL   	= ******  G	 7-315      8-337      11-497    
ERRPRT	= ******  G	 6-256      11-503    
FCSOPE	= ******  G	 6-260      11-500    
FCSREA	= ******  G	 6-270      11-498    
L$11  	  000326 R	 7-296     #7-311     
L$13  	  000324 R	 7-301     #7-310     
L$16  	  000504 R	 7-312     #8-342     
L$18  	  000356 R	#7-317      8-341     
L$24  	  000562 R	#9-416      10-465    
L$26  	  000754 R	 10-454    #10-457    
L$4   	  000022 R	 6-252     #6-253     
L$5   	  000056 R	 6-252     #6-260     
L$6   	  000052 R	 6-254     #6-259     
L$9   	  000506 R	 6-268     #8-343     
OPENLO	= ******  G	 7-294      7-299      7-306      9-416      11-504    
OUTC  	= ******  G	 7-321      7-323      7-328      11-496    
OUTN  	= ******  G	 7-319      7-326      8-336      10-486    
OUTSA 	= ******  G	 7-314      10-489    
P$AAB 	  000522 R	 6-269     #8-352     
P$AAC 	  000526 R	#8-353     
P$AAD 	  000532 R	 7-313     #8-354     
REALDO	= ******  G	 10-455     10-488    
ROOTSE	  001016 R	*6-272      6-273      7-289      7-297      7-302      9-417     #10-485    
ROVZRO	= ******  G	 10-492    
R$0   	=%000000	#6-237     *6-250     *6-255     *6-257     *6-269     *6-271      6-273      6-274      7-286     
                         7-295      7-300      7-307     *7-313     *7-320     *7-322     *7-327      9-421      9-423     
                         9-432     *9-439      10-443    *10-444     10-453     10-462    
R$1   	=%000001	#6-238     *6-248     *9-413     *9-417      9-418      9-425      9-428      9-434      10-448    
                         10-457    
R$2   	=%000002	#6-239     *9-423     *9-424     *9-425      9-426     *9-427      9-432     *9-433      9-439     
                         10-443    
R$3   	=%000003	#6-240     *9-422      9-426      9-427      9-433      10-444     10-447    
R$4   	=%000004	#6-241     *9-416      9-420      9-431      9-438      10-452     10-461    
R$5   	=%000005	#6-242     *6-262      6-263      6-264      6-265      6-266     *6-275     *7-279     *7-280     
                        *7-281     *7-282     *7-283     *7-284     *7-285      7-286     *7-290      7-291     *7-291     
                        *7-292      7-293     *7-295      7-298      7-303     *7-316      7-317      7-324      7-329     
                        *8-338      8-340     *9-415      9-419      9-429      9-435      10-449     10-458    *10-462    
                         10-464    
SEGMAX	= ******  G	*6-261      6-271      7-290      8-340      9-422      10-491    
SEGTAB	= ******  G	 6-261      6-262      7-316      11-499    
SIGREG	= ******  G	 8-343     *8-343      11-510    
SIGVAL	= ******  G	 6-253      11-511    
SWITCH	= ******  G	 6-267      7-311      11-502    
VIRTZE	= ******  G	 7-288      10-446     10-490    
ZAPINI	  000000 RG	#6-247      10-487    
ZINIT 	  001016 R	#10-478    
$ENABL	= ******  G	 6-251      11-506    
$SAV5 	= ******  G	 6-248      9-413      11-509    
$SIGNL	= ******  G	 6-258      11-508    
$SIGN1	= ******  G	 6-259      11-507    
ZOPEN	MACRO M1113  14-APR-81 11:47
TABLE OF CONTENTS

     2-   48	SWITCH TABLE
     3-   59	FCSOPEN -- READ FILE SPECIFICATION AND OPEN FILES
     4-  150	VIRTZERO -- CALCULATE VIRTUAL ZERO DATA
     5-  186	ROVZRO -- VIRTUAL ZERO CALCULATION FOR READONLY PSECTS
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 1


      1						.TITLE	ZOPEN
      2						.IDENT	/000005/
      3
      4					;+
      5					;
      6					; COPYRIGHT 1975
      7					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      8					;
      9					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     10					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     11					; EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES
     12					; NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
     13					;
     14					; THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO PURCHASER
     15					; UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE
     16					; COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR
     17					; USE IN SUCH SYSTEM, EXCEPT AS MAY BE OTHERWISE BE PROVIDED IN
     18					; WRITING BY DIGITAL.
     19					;
     20					; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
     21					; USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT
     22					; SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
     23					;
     24					;
     25					; WRITTEN BY
     26					;	M. JACK
     27					;
     28					; MODULE FUNCTION
     29					;	I/O SERVICES FOR THE TASK IMAGE PATCHING UTILITY
     30					;
     31					;-
     32
     33
     34					;+
     35					;	GLOBAL DEFINITIONS
     36					;-
     37
     38						.MCALL	FINIT$,	OPEN$W,	GCML$,	CSI$1,	CSI$2,	OPEN$,	FDOF$L
     39						.MCALL	FCSBT$,	NBOF$L,	GCMLD$,	CSI$,	CSI$SW,	CSI$ND,	CALL
     40						.MCALL	RETURN
     41
     42	000000					FDOF$L
     43	000000					FCSBT$
     44	000000					NBOF$L
     45	000000					GCMLD$
     46	000000					CSI$
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 2
SWITCH TABLE

     48						.SBTTL	SWITCH TABLE
     49
     50					;+
     51					;	SWITCH TABLE FOR COMMAND STRING INTERPRETER
     52					;-
     53
     54	000000				SWITAB:	CSI$SW	AB,ABSOLU,SWITCH,SET	; ABSOLUTE MODE
     55	000010					CSI$SW	RO,RDONLY,SWITCH,SET	; READ ONLY OPEN
     56	000020					CSI$SW	LI,LSTING,SWITCH,SET	; LIST SEGMENT DATA
     57	000030					CSI$ND
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 3
FCSOPEN -- READ FILE SPECIFICATION AND OPEN FILES

     59						.SBTTL	FCSOPEN -- READ FILE SPECIFICATION AND OPEN FILES
     60
     61					;+
     62					;
     63					; GLOBAL ROUTINE FCSOPEN
     64					;
     65					; FUNCTION
     66					;	INITIALIZE FCS AND OPEN FILES
     67					;
     68					; INPUTS
     69					;	COMMAND STRING
     70					;
     71					; OUTPUTS
     72					;	INITIALIZATION AND FILES OPENED
     73					;
     74					;-
     75
     76	000032				FCSOPEN::
     77	000032	004167 	000000G			JSR	R1,$SAV3	; SAVE REGISTERS
     78	000036					FINIT$			; INITIALIZE FCS
     79	000042	005067 	000000G			CLR	BLKNUM		; INITIALIZE VARIABLES
     80	000046	005067 	000002G			CLR	BLKNUM+2	;
     81	000052	005067 	000000G			CLR	WRITBK		;
     82	000056	005067 	000000G			CLR	SWITCH		;
     83
     84	000062					OPEN$W	#OUTFDB		; OPEN CONSOLE DEVICE
     85	000100	103552 				BCS	10$		; TERMINATE IF OPEN FAILS
     86
     87	000102	152767 	000003 	000141G	2$:	BISB	#GE.IND!GE.COM,CMLBLK+G.MODE ; ENABLE @ AND ;
     88	000110					GCML$	#CMLBLK		; READ A COMMAND LINE
     89	000124	103007 				BCC	3$		; CONTINUE IF NO ERRORS
     90	000126	122760 	177766 	000140 		CMPB	#GE.EOF,G.ERR(R0) ; TEST FOR END OF FILE
     91	000134	001534 				BEQ	10$		; EXIT IF END OF FILE
     92	000136	012700 	000000G			MOV	#CMIERR,R0	; SET ERROR CODE IN R0
     93	000142	000527 				BR	9$		; BRANCH TO OUTPUT MESSAGE
     94
     95	000144				3$:	CSI$1	#CSIBLK,CMLBLK+G.CMLD+2,CMLBLK+G.CMLD ; PARSE FILE SPEC
     96	000170	103507 				BCS	4$		; TEST FOR ERROR
     97	000172					CSI$2	R0,INPUT	; CHECK FOR INPUT FILES
     98	000202	103502 				BCS	4$		; THERE SHOULD BE NONE
     99	000204	132760 	000037 	000001 		BITB	#CS.DVF!CS.DIF!CS.NMF!CS.WLD!CS.MOR,C.STAT(R0)
    100	000212	001076 				BNE	4$		;
    101	000214					CSI$2	R0,OUTPUT,#SWITAB ; CHECK FOR OUTPUT FILE
    102	000232	103466 				BCS	4$		; CHECK FOR ERROR
    103	000234	132760 	000030 	000001 		BITB	#CS.WLD!CS.MOR,C.STAT(R0) ; MUST NOT HAVE THESE
    104	000242	001062 				BNE	4$		;
    105	000244	132760 	000001 	000001 		BITB	#CS.NMF,C.STAT(R0) ; FILE NAME MUST BE PRESENT
    106	000252	001456 				BEQ	4$		;
    107
    108	000254	012700 	000000G			MOV	#TSKFDB,R0	; LOAD FDB ADDRESS
    109	000260	012760 	000000G	000036 		MOV	#STATBK,F.STBK(R0) ; INSERT STATISTICS BLOCK ADDRESS
    110	000266	112760 	000001 	000043 		MOVB	#FO.RD,F.FACC(R0) ; ASSUME READ ACCESS
    111	000274	032767 	000000G	000000G		BIT	#RDONLY,SWITCH	; TEST /RO SPECIFIED
    112	000302	001003 				BNE	1$		; BRANCH IF IT WAS
    113	000304	112760 	000002 	000043 		MOVB	#FO.MFY,F.FACC(R0) ; ASSUME MODIFY ACCESS
    114	000312				1$:	OPEN$	R0		; OPEN THE FILE
    115	000316	103431 				BCS	6$		; BRANCH IF OPEN FAILED
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 3-1
FCSOPEN -- READ FILE SPECIFICATION AND OPEN FILES

    116
    117	000320	010001 				MOV	R0,R1		; POINT TO FDB
    118	000322	012702 	000000G			MOV	#SAVRAT,R2	; POINT TO SAVE AREA
    119	000326	012703 	000007 			MOV	#S.FATT/2,R3	; SET UP WORD COUNT
    120	000332	012122 			8$:	MOV	(R1)+,(R2)+	; SAVE RECORD ATTRIBUTES
    121	000334	005303 				DEC	R3		; COUNT WORDS
    122	000336	001375 				BNE	8$		;
    123
    124	000340	010001 				MOV	R0,R1		;
    125	000342	062701 	000004 			ADD	#F.HIBK,R1	;
    126	000346	016721 	000004G			MOV	STATBK+4,(R1)+	; SET END OF FILE DATA WITH
    127	000352	016721 	000006G			MOV	STATBK+6,(R1)+	;  FILE SIZE FROM STATISTICS
    128	000356	016721 	000004G			MOV	STATBK+4,(R1)+	;   BLOCK SINCE CHANCES ARE
    129	000362	016711 	000006G			MOV	STATBK+6,@R1	;    EOF DATA IS WRONG
    130	000366	005221 				INC	(R1)+		;
    131	000370	005021 				CLR	(R1)+		;
    132
    133	000372	142767 	000003 	000141G		BICB	#GE.IND!GE.COM,CMLBLK+G.MODE ; DISABLE @ AND ;
    134	000400					RETURN			; RETURN TO CALLER
    135
    136					;+
    137					;	ERROR HANDLING
    138					;-
    139
    140	000402	012700 	000000G		6$:	MOV	#OPNERR,R0	; OPEN FAILURE
    141	000406	000402 				BR	7$		;
    142	000410	012700 	000000G		4$:	MOV	#CSIERR,R0	; BAD FILESPEC
    143	000414				7$:	CALL	ERRPRT		; OUTPUT ERROR MESSAGE
    144	000420	000630 				BR	2$		; GIVE USER A SECOND TRY
    145
    146	000422				9$:	CALL	ERRPRT		; OUTPUT FATAL GCML ERROR MESSAGE
    147	000426	012700 	000000G		10$:	MOV	#SIGXIT,R0	; SET SIGNAL VALUE IN R0
    148	000432	000167 	000000G			JMP	$SIGNL		; SIGNAL
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 4
VIRTZERO -- CALCULATE VIRTUAL ZERO DATA

    150						.SBTTL	VIRTZERO -- CALCULATE VIRTUAL ZERO DATA
    151
    152					;+
    153					;
    154					; GLOBAL ROUTINE REG0 VIRTZERO(SEGPTR,FUDGE)
    155					;
    156					; FUNCTION
    157					;	CALCULATE VIRTUAL ZERO DATA FROM START BLOCK AND LOAD POINT
    158					;
    159					; INPUTS
    160					;	SEGPTR	- POINTER TO ZAP SEGMENT TABLE ENTRY
    161					;	FUDGE	- AMOUNT TO ADJUST STARTING DISK BLOCK
    162					;
    163					; OUTPUTS
    164					;	SEGPTR	- SEGVIRT FILLED IN
    165					;	VALUE	- NONE
    166					;
    167					;-
    168
    169	000436				VIRTZERO::
    170	000436	004167 	000000G			JSR	R1,$SAV3	; SAVE REGISTERS
    171	000442	005002 				CLR	R2		; LOAD STARTING DISK BLOCK IN DP
    172	000444	012003 				MOV	(R0)+,R3	;
    173	000446	066603 	000012 			ADD	12(SP),R3	; ADJUST BY FUDGE AMOUNT
    174	000452	012701 	000011 			MOV	#9.,R1		; SHIFT LEFT 9 BITS TO POSITION
    175	000456	006303 			1$:	ASL	R3		;
    176	000460	006102 				ROL	R2		;
    177	000462	005301 				DEC	R1		;
    178	000464	001374 				BNE	1$		;
    179	000466	162003 				SUB	(R0)+,R3	; SUBTRACT LOAD ADDRESS
    180	000470	005602 				SBC	R2		;
    181	000472	005720 				TST	(R0)+		; SKIP OVER A WORD
    182	000474	010220 				MOV	R2,(R0)+	; PUT DOWN ANSWER
    183	000476	010310 				MOV	R3,@R0		;
    184	000500					RETURN			; RETURN TO CALLER
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 5
ROVZRO -- VIRTUAL ZERO CALCULATION FOR READONLY PSECTS

    186						.SBTTL	ROVZRO -- VIRTUAL ZERO CALCULATION FOR READONLY PSECTS
    187
    188					;+
    189					;
    190					; GLOBAL ROUTINE ROVZRO(BLKALN,HDRVBN,OFF32W,SEGPTR)
    191					;
    192					; FUNCTION
    193					;	COMPUTE THE VIRTUAL ZERO FOR A READONLY AREA
    194					;
    195					; INPUTS
    196					;	BLKALN	- NONZERO IF RO SECTION IS BLOCK ALIGNED (MULTI-USER)
    197					;	HDRVBN	- VBN OF TASK HEADER TIMES 1000 OCTAL
    198					;		  (WHAT THE OFF32W IS RELATIVE TO)
    199					;	OFF32W	- OFFSET IN 32-WORD BLOCKS FROM HDRVBN AS COMPUTED
    200					;		  FROM THE PAR TEMPLATES
    201					;	SEGPTR	- POINTER TO SEGMENT DESCRIPTION ENTRY
    202					;
    203					; OUTPUTS
    204					;	SEGPTR	- SEGVIRT FILLED IN
    205					;	VALUE	- NONE
    206					;
    207					;-
    208
    209	000502				ROVZRO::
    210	000502	004167 	000000G			JSR	R1,$SAV5	; SAVE REGISTERS
    211	000506	016602 	000016 			MOV	16(SP),R2	; POINT TO SEGMENT DESCRIPTOR
    212	000512	005003 				CLR	R3		; LOAD OFF32W IN DP
    213	000514	016604 	000020 			MOV	20(SP),R4	;
    214	000520	012705 	000006 			MOV	#6,R5		; LOAD LOOP COUNT
    215	000524	006304 			1$:	ASL	R4		; SHIFT OFF32W LEFT 6 IN DP
    216	000526	006103 				ROL	R3		;
    217	000530	005305 				DEC	R5		;
    218	000532	001374 				BNE	1$		;
    219	000534	005000 				CLR	R0		; LOAD HDRVBN IN DP
    220	000536	016601 	000022 			MOV	22(SP),R1	;
    221	000542	060401 				ADD	R4,R1		; ADD OFF32W*64 AND HDRVBN IN DP
    222	000544	005500 				ADC	R0		;
    223	000546	060300 				ADD	R3,R0		;
    224	000550	005766 	000024 			TST	24(SP)		; IS R/O SECTION BLOCK ALIGNED
    225	000554	001405 				BEQ	2$		; SKIP IF NOT
    226	000556	062701 	000777 			ADD	#777,R1		; ROUND TO BLOCK BOUNDARY
    227	000562	005500 				ADC	R0		;
    228	000564	042701 	000777 			BIC	#777,R1		;
    229	000570	166201 	000002 		2$:	SUB	2(R2),R1	; SUBTRACT LOAD ADDRESS IN DP
    230	000574	005600 				SBC	R0		;
    231	000576	010062 	000006 			MOV	R0,6(R2)	; PUT ANSWER DOWN
    232	000602	010162 	000010 			MOV	R1,10(R2)	;
    233	000606					RETURN			; RETURN TO CALLER
    234
    235		000001 				.END
ZOPEN	MACRO M1113  14-APR-81 11:47  PAGE 5-1
SYMBOL TABLE

ABSOLU= ****** GX	FCSOPE  000032RG 	F.DVNM= 000134   	GE.EOF= 177766   	OUTFDB= ****** GX
BLKNUM= ****** GX	FD.BLK= 000010   	F.EFBK= 000010   	GE.IND= 000002   	PAR$$$= 000000
CMIERR= ****** GX	FD.CCL= 000002   	F.EFN = 000050   	GE.IOR= 177777   	RDONLY= ****** GX
CMLBLK= ****** GX	FD.CR = 000002   	F.EOBB= 000032   	GE.LC = 000010   	ROVZRO  000502RG
CSIBLK= ****** GX	FD.DIR= 000010   	F.ERR = 000052   	GE.MDE= 177774   	R.FIX = 000001
CSIERR= ****** GX	FD.FTN= 000001   	F.FACC= 000043   	GE.OPR= 177776   	R.VAR = 000002
CS.DIF= 000002   	FD.INS= 000010   	F.FFBY= 000014   	G.CMLD= 000146   	SAVRAT= ****** GX
CS.DVF= 000004   	FD.PLC= 000004   	F.FNAM= 000110   	G.DPRM= 000160   	SIGXIT= ****** GX
CS.EQU= 000040   	FD.RAH= 000001   	F.FNB = 000102   	G.ERR = 000140   	STATBK= ****** GX
CS.INP= 000001   	FD.RAN= 000002   	F.FTYP= 000116   	G.ISIZ= 000020   	SWITAB  000000R
CS.MOR= 000020   	FD.REC= 000001   	F.FVER= 000120   	G.MODE= 000141   	SWITCH= ****** GX
CS.NMF= 000001   	FD.RWM= 000001   	F.HIBK= 000004   	G.PSDS= 000142   	S.FATT= 000016
CS.OUT= 000002   	FD.SDI= 000020   	F.LUN = 000042   	LSTING= ****** GX	S.FDB = 000140
CS.WLD= 000010   	FD.SQD= 000040   	F.MBCT= 000054   	NB.DEV= 000200   	S.FNAM= 000006
C.CMLD= 000002   	FD.TTY= 000004   	F.MBC1= 000055   	NB.DIR= 000100   	S.FNB = 000036
C.DEVD= 000006   	FD.WBH= 000002   	F.MBFG= 000056   	NB.NAM= 000004   	S.FNBW= 000017
C.DIRD= 000012   	FO.APD= 000106   	F.NRBD= 000024   	NB.SD1= 000400   	S.FNTY= 000004
C.DSDS= 000006   	FO.MFY= 000002   	F.NREC= 000030   	NB.SD2= 001000   	S.FTYP= 000002
C.FILD= 000016   	FO.RD = 000001   	F.OVBS= 000030   	NB.SNM= 000040   	S.NFEN= 000020
C.MKW1= 000024   	FO.UPD= 000006   	F.RACC= 000016   	NB.STP= 000020   	TSKFDB= ****** GX
C.MKW2= 000026   	FO.WRT= 000016   	F.RATT= 000001   	NB.SVR= 000010   	VIRTZE  000436RG
C.SIZE= 000054   	F.ALOC= 000040   	F.RCNM= 000034   	NB.TYP= 000002   	WRITBK= ****** GX
C.STAT= 000001   	F.BBFS= 000062   	F.RCTL= 000017   	NB.VER= 000001   	$SAV3 = ****** GX
C.SWAD= 000022   	F.BDB = 000070   	F.RSIZ= 000002   	N.DID = 000024   	$SAV5 = ****** GX
C.TYPR= 000000   	F.BGBC= 000057   	F.RTYP= 000000   	N.DVNM= 000032   	$SIGNL= ****** GX
ERRPRT= ****** GX	F.BKDN= 000026   	F.STBK= 000036   	N.FID = 000000   	$$    = 000067
FA.APD= 000100   	F.BKDS= 000020   	F.UNIT= 000136   	N.FNAM= 000006   	.CSI1 = ****** G
FA.CRE= 000010   	F.BKEF= 000050   	F.URBD= 000020   	N.FTYP= 000014   	.CSI2 = ****** G
FA.EXT= 000004   	F.BKP1= 000051   	F.VBN = 000064   	N.FVER= 000016   	.FINIT= ****** G
FA.NSP= 000100   	F.BKST= 000024   	F.VBSZ= 000060   	N.NEXT= 000022   	.GCML1= ****** G
FA.RD = 000001   	F.BKVB= 000064   	GE.BIF= 177775   	N.STAT= 000020   	.OPEN = ****** G
FA.SHR= 000040   	F.CNTG= 000034   	GE.CLO= 000004   	N.UNIT= 000034   	...GBL= 000000
FA.TMP= 000020   	F.DFNB= 000046   	GE.COM= 000001   	OPNERR= ****** GX	...TPC= 000140
FA.WRT= 000002   	F.DSPT= 000044

. ABS.	000000	   000
      	000610	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  3694 WORDS  ( 15 PAGES)
DYNAMIC MEMORY:  4630 WORDS  ( 17 PAGES)
ELAPSED TIME:  00:00:14
[62,10]ZOPEN,[62,20]ZOPEN/-SP/CR=[62,30]ZOPEN
ZOPEN      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ABSOLU	= ******  GX	 2-54      
BLKNUM	= ******  GX	*3-79      *3-80      
CMIERR	= ******  GX	 3-92      
CMLBLK	= ******  GX	*3-87       3-88       3-88       3-95       3-95      *3-133     
CSIBLK	= ******  GX	 3-95       3-95      
CSIERR	= ******  GX	 3-142     
CS.DIF	= 000002	 3-99      
CS.DVF	= 000004	 3-99      
CS.INP	= 000001	 3-97      
CS.MOR	= 000020	 3-99       3-103     
CS.NMF	= 000001	 3-99       3-105     
CS.OUT	= 000002	 3-101     
CS.WLD	= 000010	 3-99       3-103     
C.CMLD	= 000002	*3-95      *3-95      
C.SIZE	= 000054	 3-95       3-97       3-101     
C.STAT	= 000001	 3-99       3-103      3-105     
C.SWAD	= 000022	*3-101     
ERRPRT	= ******  GX	 3-143      3-143      3-146      3-146     
FCSOPE	  000032 RG	#3-76      
FO.MFY	= 000002	 3-113     
FO.RD 	= 000001	 3-110     
FO.WRT	= 000016	 3-84      
F.FACC	= 000043	*3-84      *3-110     *3-113     
F.HIBK	= 000004	 3-125     
F.STBK	= 000036	*3-109     
GE.COM	= 000001	 3-87       3-133     
GE.EOF	= 177766	 3-90      
GE.IND	= 000002	 3-87       3-133     
G.CMLD	= 000146	 3-95       3-95      
G.ERR 	= 000140	 3-90      
G.MODE	= 000141	*3-87      *3-133     
G.PSDS	= 000142	*3-88      
LSTING	= ******  GX	 2-56      
OPNERR	= ******  GX	 3-140     
OUTFDB	= ******  GX	 3-84       3-84      
PAR$$$	= 000000	#3-84       3-84      #3-88       3-88      #3-95       3-95      #3-97       3-97      #3-101     
                         3-101     #3-114      3-114     
RDONLY	= ******  GX	 2-55       3-111     
ROVZRO	  000502 RG	#5-209     
SAVRAT	= ******  GX	 3-118     
SIGXIT	= ******  GX	 3-147     
STATBK	= ******  GX	 3-109      3-126      3-127      3-128      3-129     
SWITAB	  000000 R	#2-54       3-101     
SWITCH	= ******  GX	 2-54       2-55       2-56      *3-82       3-111     
S.FATT	= 000016	 3-119     
TSKFDB	= ******  GX	 3-108     
VIRTZE	  000436 RG	#4-169     
WRITBK	= ******  GX	*3-81      
$SAV3 	= ******  GX	 3-77       4-170     
$SAV5 	= ******  GX	 5-210     
$SIGNL	= ******  GX	 3-148     
$$    	= 000067 R	#2-54       2-54      #2-54       2-54      #2-54       2-54      #2-55       2-55      #2-55      
ZOPEN      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         2-55      #2-55       2-55      #2-56       2-56      #2-56       2-56      #2-56       2-56      
                        #3-143      3-143     #3-146      3-146     
.CSI1 	= ******  G	 3-95       3-95      
.CSI2 	= ******  G	 3-97       3-97       3-101      3-101     
.FINIT	= ******  G	 3-78       3-78      
.GCML1	= ******  G	 3-88       3-88      
.OPEN 	= ******  G	 3-84       3-84       3-114      3-114     
ZOPEN      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 3

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		#1-39      #3-84      #3-114      3-143      3-146     
CMOV$B		#3-84      #3-84       3-84       3-84      #3-84       3-84      #3-114     #3-114      3-114      3-114     
                #3-114      3-114     
CMOV$W		#3-84      #3-84      #3-84      #3-84      #3-84      #3-84      #3-114     #3-114     #3-114     #3-114     
                #3-114     #3-114     
CSI$  		#1-39       1-46      #3-95      #3-97      #3-101     
CSI$ND		#1-39       2-57      
CSI$SW		#1-39       2-54       2-55       2-56      
CSI$1 		#1-38       3-95      
CSI$2 		#1-38      #3-97      #3-101     
ERR$  		#3-84      #3-84      #3-114     #3-114     
FCSBT$		#1-39      #1-43      
FDOFF$		#1-42      #1-42      
FDOF$L		#1-38      #1-42      
FDOP$R		#3-84       3-84      #3-114      3-114     
FDRC$R		#3-84       3-84      #3-114      3-114     
FINIT$		#1-38      #3-78      
GCMLD$		#1-39       1-45      #3-88       3-88      
GCML$ 		#1-38      #3-88      
LDFDB$		#3-84      #3-84      #3-84      #3-84      #3-114     #3-114     #3-114     #3-114     
LDR0$ 		#3-88       3-88      #3-95       3-95      #3-97       3-97      #3-101      3-101     
NBOFF$		#1-44      #1-44      
NBOF$L		#1-39       1-44      
OPEN$ 		#1-38      #3-84       3-84       3-114     
OPEN$W		#1-38      #3-84      
RETURN		#1-40       3-134      4-184      5-233     
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 2


      2					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.12	ZPROC.B11	PAGE 1
      3
      4					;     	0001	MODULE ZPROC(IDENT="000005")=
      5					;     	0002	BEGIN
      6					;     	0003
      7					;     	0004
      8					;     	0005
      9					;     	0006	!
     10					;     	0007	!
     11					;     	0008	! COPYRIGHT 1975,
     12					;     	0009	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
     13					;     	0010	!
     14					;     	0011	! THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
     15					;     	0012	! ON A SINGLE COMPUTER SYSTEM  AND  CAN BE COPIED (WITH INCLUSION
     16					;     	0013	! OF DEC'S COPYRIGHT NOTICE)  ONLY FOR USE IN SUCH SYSTEM, EXCEPT
     17					;     	0014	! AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
     18					;     	0015	!
     19					;     	0016	! THE INFORMATION IN  THIS DOCUMENT IS  SUBJECT TO CHANGE WITHOUT
     20					;     	0017	! NOTICE AND SHOULD NOT  BE CONSTRUED AS  A COMMITMENT BY DIGITAL
     21					;     	0018	! EQUIPMENT CORPORATION.
     22					;     	0019	!
     23					;     	0020	! DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE  USE  OR  RELIABILITY
     24					;     	0021	! OF ITS  SOFTWARE  ON  EQUIPMENT  WHICH IS NOT  SUPPLIED BY DEC.
     25					;     	0022	!
     26					;     	0023	! WRITTEN BY
     27					;     	0024	!	M. JACK
     28					;     	0025	!
     29					;     	0026	! MODULE FUNCTION
     30					;     	0027	!	TASK-IMAGE PATCHING UTILITY FOR USE WITH RSX-11D AND RSX-11M
     31					;     	0028	!
     32					;     	0029	!
     33					;     	0030
     34					;     	0031	LINKAGE
     35					;     	0032		REG0 = BLISS(REGISTER=0);
     36					;     	0033
     37					;     	0034	FORWARD
     38					;     	0035		ZAPPROC,
     39					;     	0036		PARSE,
     40					;     	0037		GETCHAR,
     41					;     	0038		GETNUMANDDEL,
     42					;     	0039		REG0 LOOKUP,
     43					;     	0040		EXECUTE,
     44					;     	0041		OPENANDTYPE,
     45					;     	0042		SELRELREG;
     46					;     	0043
     47					;     	0044
     48					;     	0045	REQUIRE STDMAC.BEG;
     49					;     	0046	!	STDMAC.BEG - WIDELY USED STANDARD MACROS
     50					;     	0047	!
     51					;     	0065	SWITCHES LIST; SWITCHES LIST;
     52					;     	0066	!	VERSION 000005
     53					;     	0067	!	LAST MODIFIED 05/13/74 RBG
     54					;     	0106	SWITCHES LIST; SWITCHES LIST;
     55					;     	0107	!	STDMAC.BEG LAST LINE
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 3


     57					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.13	STDMAC.BEG	PAGE 1-1
     58
     59					;     	0108
     60					;     	0109	REQUIRE STDSTR.BEG;
     61					;     	0110	!	STDSTR.BEG - WIDELY USED STANDARD STRUCTURES
     62					;     	0111	!
     63					;     	0129	SWITCHES LIST; SWITCHES LIST;
     64					;     	0130	!	VERSION 000003
     65					;     	0131	!	LAST MODIFIED 02/28/74 RBG
     66					;     	0145	SWITCHES LIST; SWITCHES LIST;
     67					;     	0146	!	STDSTR.BEG LAST LINE
     68					;     	0147
     69					;     	0148	REQUIRE ZAP.BEG;
     70					;     	0149	!	ZAP.BEG - BEGIN FILE FOR ZAP
     71					;     	0150	!
     72					;     	0160	SWITCHES LIST; SWITCHES LIST;
     73					;     	0161	!
     74					;     	0162	!	VERSION 000002
     75					;     	0163	!	LAST MODIFIED 09/01/74
     76					;     	0164	!
     77					;     	0165
     78					;     	0166	STRUCTURE
     79					;     	0167		BUFFER[I] = (.BUFFER + .I)<0,16>;
     80					;     	0168
     81					;     	0169	BIND
     82					;     	0170		SEGSIZ=	5,		! LENGTH OF SEGMENT TABLE ENTRY
     83					;     	0171		SEGENT=	64;		! NUMBER OF SEGMENT TABLE ENTRIES
     84					;     	0172
     85					;     	0173	MACRO
     86					;     	0174		SEGBLK=	0,0,16$,	! STARTING DISK BLOCK (SEGMENT "NAME")
     87					;     	0175		SEGLOW=	1,0,16$,	! LOW ADDRESS
     88					;     	0176		SEGHIGH=2,0,16$,	! HIGH ADDRESS PLUS ONE
     89					;     	0177		SEGVIRT=3,0,16$,	! VIRTUAL ORIGIN DATA
     90					;     	0178		SEGVIR1=3,0,16$,	! HIGH ORDER WORD OF SEGVIRT
     91					;     	0179		SEGVIR0=4,0,16$,	! LOW ORDER WORD OF SEGVIRT
     92					;     	0180		SEGVIRW=4,0,9$,		! WORD OFFSET PART OF SEGVIRT
     93					;     	0181		SEGNEXT=5,0,16$;	! OFFSET TO NEXT ENTRY
     94					;     	0182
     95					;     	0183	MACRO
     96					;     	0184		ABSOLUTE=0,0,1$,	! /AB SWITCH BIT
     97					;     	0185		READONLY=0,1,1$,	! /RO SWITCH BIT
     98					;     	0186		LISTING=0,2,1$;		! /LI SWITCH BIT
     99					;     	0187
    100					;     	0188	BIND
    101					;     	0189		NORELO=	0,		! NO SUCH RELOCATION REGISTER
    102					;     	0190		ADROOB=	1,		! ADDRESS NOT WITHIN SEGMENT
    103					;     	0191		NOSEGM=	2,		! NO SUCH SEGMENT
    104					;     	0192		BADARG=	3,		! BAD ARGUMENT COUNT
    105					;     	0193		NOSPEC=	4,		! NO SUCH SPECIAL REGISTER
    106					;     	0194		BADCMD=	5,		! UNRECOGNIZABLE COMMAND
    107					;     	0195		NOOPEN=	6,		! NO OPEN LOCATION
    108					;     	0196		NOBYTE=	7,		! CANNOT USE IN BYTE MODE
    109					;     	0197		BADTSK=	12,		! BAD TASK IMAGE
    110					;     	0198		VFYREJ=	13,		! VERIFY REJECT
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 4


    112					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.14	ZAP.BEG	PAGE 1-2
    113
    114					;     	0199		NOTYET=	14;		! NOT YET IMPLEMENTED
    115					;     	0200
    116					;     	0201	BIND
    117					;     	0202		SIGXIT=	-1,		! SIGNAL VALUE FOR EXIT
    118					;     	0203		SIGADR=	-2;		! SIGNAL VALUE FOR ADDRESS ERROR
    119					;     	0204
    120					;     	0205	!
    121					;     	0206	!	ZAP.BEG LAST LINE
    122					;     	0207
    123					;     	0208
    124					;     	0209	PSECT
    125					;     	0210		CODE=" ", OWN=" ", GLOBAL=" ";
    126					;     	0211
    127					;     	0212	EXTERNAL
    128					;     	0213		REG0 ERRPRT,		! OUTPUT ERROR MESSAGE
    129					;     	0214		OPENLOC,		! OPEN LOCATION IN TASK SPACE
    130					;     	0215		COMAND,			! GET COMMAND
    131					;     	0216		REG0 BYTSXT,		! BYTE SIGN EXTENSION
    132					;     	0217		REG0 OUTC,		! OUTPUT CHARACTER
    133					;     	0218		OUTN,			! OUTPUT NUMBER
    134					;     	0219		EOL,			! OUTPUT RECORD
    135					;     	0220		REG0 OUTR50;		! OUTPUT RADIX50
    136					;     	0221
    137					;     	0222	EXTERNAL
    138					;     	0223		REALDOT,		! POINT TO "DOT" IN BUFFER
    139					;     	0224		WRITBK,			! BLOCK WRITE-BACK FLAG
    140					;     	0225		PBYTVECT CMLADR,	! POINTER TO COMMAND LINE ADDRESS
    141					;     	0226		CMLLEN;			! POINTER TO COMMAND LINE LENGTH
    142					;     	0227
    143					;     	0228	BIND
    144					;     	0229		PARSIZ=	2,		! SIZE OF PARSE TABLE ENTRY
    145					;     	0230		PARENT=	3;		! NUMBER OF PARSE TABLE ENTRIES
    146					;     	0231
    147					;     	0232	MACRO
    148					;     	0233		PARVAL=	0,0,16$,	! PARTAB - VALUE FIELD
    149					;     	0234		PARREG=	0,0,3$,		! PARTAB - REGISTER FIELD
    150					;     	0235		PARSEG=	1,0,16$,	! PARTAB - SEGMENT FIELD
    151					;     	0236		PARNEXT=2,0,16$;	! PARTAB - NEXT ENTRY
    152					;     	0237
    153					;     	0238	OWN
    154					;     	0239		COUNT,			! DIGIT COUNT IN NUM
    155					;     	0240		ARGS,			! ARGUMENT COUNT
    156					;     	0241		INTREGS[23] = 		! INTERNAL REGISTERS
    157					;     	0242		    (0,0,0,0,0,-1,0,8:-1,8:0),
    158					;     	0243		BWMODE,			! MODE OF OPEN LOCATION
    159					;     	0244		VRMODE,			! VIRTUAL OR SPECIAL-REG ADDRESS FLAG
    160					;     	0245		FORM,			! TYPEOUT FORMAT
    161					;     	0246		CHARNDX,		! INDEX INTO COMMAND LINE
    162					;     	0247		BLOCK PFLAG,		! PARSE FLAGS
    163					;     	0248		NUM,			! NUMBER
    164					;     	0249		DEL,			! ITS RIGHT DELIMITER
    165					;     	0250		VECBLOCK PARTAB[PARENT,PARSIZ],	! PARSE RESULTS
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 5


    167					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.14	ZPROC.B11	PAGE 1-3
    168
    169					;     	0251		TYPE,			! COMMAND TYPE CODE
    170					;     	0252		SAVEDOT,		! SAVED DOT FOR "<" COMMAND
    171					;     	0253		VIRTDOT,		! VIRTUAL VALUE OF DOT
    172					;     	0254		VIRTSEG;		! SEGMENT PART OF DOT
    173					;     	0255
    174					;     	0256	BIND
    175					;     	0257		ARGREG=	INTREGS[0],	! $A REGISTER
    176					;     	0258		CONREG=	INTREGS[1],	! $C REGISTER
    177					;     	0259		FMTREG=	INTREGS[2],	! $F REGISTER
    178					;     	0260		HIGHREG=INTREGS[3],	! $H REGISTER
    179					;     	0261		LOWREG=	INTREGS[4],	! $L REGISTER
    180					;     	0262		MASKREG=INTREGS[5],	! $M REGISTER
    181					;     	0263		QUANREG=INTREGS[6],	! $Q REGISTER
    182					;     	0264		RELOCV=	INTREGS[7],	! $R REGISTERS
    183					;     	0265		RELOCS=	INTREGS[15];
    184					;     	0266
    185					;     	0267	MACRO
    186					;     	0268		SYMBNUM=0,0,1$,		! PFLAG - SYMBOLIC NUMBER
    187					;     	0269		SPECREG=0,1,1$;		! PFLAG - SPECIAL REGISTER
    188					;     	0270
    189					;     	0271	MACRO
    190					;     	0272		INDEX(STR)=
    191					;     	0273		    LOOKUP(UPLIT ASCIZ STR)$;
    192					;     	0274
    193					;     	0275
    194					;     	0276
    195					;     	0277
    196					;     	0278
    197					;     	0279	COMMENT ! ZAPPROC
    198					;     	0280	!
    199					;     	0281	! FUNCTION
    200					;     	0282	!	PROCESSING DRIVER
    201					;     	0283	!
    202					;     	0284	! INPUTS
    203					;     	0285	!	NONE
    204					;     	0286	!
    205					;     	0287	! OUTPUTS
    206					;     	0288	!	NONE
    207					;     	0289	!
    208					;     	0290
    209					;     	0291	GLOBAL ROUTINE ZAPPROC=
    210					;     	0292	    BEGIN
    211					;     	0293
    212					;     	0294	    REPEAT
    213					;     	0295		BEGIN
    214					;     	0296		COMAND();
    215					;     	0297		PARSE();
    216					;     	0298		EXECUTE();
    217					;     	0299		END;
    218					;     	0300
    219					;     	0301	    END;
    220					;     	0302
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 6


    222					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.15	ZPROC.B11	PAGE 1-4
    223
    224					.TITLE ZPROC
    225					.IDENT /000005/
    226	000000				.PSECT
    227
    228
    229		000000 			R$0=%0
    230		000001 			R$1=%1
    231		000002 			R$2=%2
    232		000003 			R$3=%3
    233		000004 			R$4=%4
    234		000005 			R$5=%5
    235		000006 			SP=%6
    236		000007 			PC=%7
    237
    238
    239	000000				ZAPPROC:
    240	000000	004767 	000000G		L$3:	JSR	PC,COMAND
    241	000004	004767 	000006 			JSR	PC,PARSE
    242	000010	004767 	001156 			JSR	PC,EXECUTE
    243	000014	000771 				BR	L$3
    244
    245					; ROUTINE SIZE:  7
    246
    247
    248
    249
    250
    251					;     	0303	COMMENT ! PARSE
    252					;     	0304	!
    253					;     	0305	! FUNCTION
    254					;     	0306	!	PARSE A USER COMMAND
    255					;     	0307	!
    256					;     	0308	! INPUTS
    257					;     	0309	!	CMLADR	- ADDRESS OF USER'S COMMAND (IN ASCII)
    258					;     	0310	!	CMLLEN	- LENGTH OF USER'S COMMAND IN BYTES
    259					;     	0311	!
    260					;     	0312	! OUTPUTS
    261					;     	0313	!	PARTAB	- THE PARSED ADDRESSES
    262					;     	0314	!	ARGS	- THE ARGUMENT COUNT
    263					;     	0315	!	TYPE	- THE COMMAND TYPE
    264					;     	0316	!	VALUE	- NONE
    265					;     	0317	!
    266					;     	0318
    267					;     	0319	ROUTINE PARSE=
    268					;     	0320	    BEGIN
    269					;     	0321	    LOCAL
    270					;     	0322		OP;			! PREVIOUS OPERATOR
    271					;     	0323	    BIND
    272					;     	0324		SEG = PARTAB[0,PARSEG],	! SEGMENT PART OF CURRENT EXPRESSION
    273					;     	0325		EXP = PARTAB[0,PARVAL];	! VALUE PART OF CURRENT EXPRESSION
    274					;     	0326
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 7


    276					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.18	ZPROC.B11	PAGE 1-5
    277
    278					;     	0327	    TYPE = -2;
    279					;     	0328	    CHARNDX = -1;
    280					;     	0329	    EXP = SEG = COUNT = OP = ARGS = PFLAG = 0;
    281					;     	0330
    282					;     	0331	    REPEAT
    283					;     	0332		BEGIN
    284					;     	0333		GETNUMANDDEL();
    285					;     	0334		EXP =
    286					;     	0335		    BEGIN
    287					;     	0336		    CASE .OP OF
    288					;     	0337			SET
    289					;     	0338
    290					;     	0339			.NUM;					! 0 - NONE
    291					;     	0340
    292					;     	0341			.EXP + .NUM;				! 1 - PLUS
    293					;     	0342
    294					;     	0343			.EXP - .NUM;				! 2 - MINUS
    295					;     	0344
    296					;     	0345			BEGIN LOCAL T;				! 3 - STAR
    297					;     	0346			T = .EXP * 4;
    298					;     	0347			(.T + .EXP) * #10 + .NUM
    299					;     	0348			END;
    300					;     	0349
    301					;     	0350			TES
    302					;     	0351		    END;
    303					;     	0352		OP = 0;
    304					;     	0353
    305					;     	0354		CASE INDEX(":,;+-*.CQ$")+1 OF
    306					;     	0355		    SET
    307					;     	0356
    308					;     	0357		    ! 0 - NOT FOUND
    309					;     	0358		    !
    310					;     	0359		    EXITLOOP;
    311					;     	0360
    312					;     	0361		    ! 1 - COLON
    313					;     	0362		    !
    314					;     	0363		    BEGIN
    315					;     	0364		    SEG = .EXP;
    316					;     	0365		    EXP = 0
    317					;     	0366		    END;
    318					;     	0367
    319					;     	0368		    ! 2 - COMMA
    320					;     	0369		    !
    321					;     	0370		    IF .EXP GTRU 7
    322					;     	0371		    THEN
    323					;     	0372			RETURN ERRPRT(NORELO)
    324					;     	0373		    ELSE
    325					;     	0374			BEGIN
    326					;     	0375			SEG = .RELOCS[.EXP];
    327					;     	0376			EXP = .RELOCV[.EXP];
    328					;     	0377			OP = 1;
    329					;     	0378			END;
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 8


    331					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.18	ZPROC.B11	PAGE 1-6
    332
    333					;     	0379
    334					;     	0380		    ! 3 - SEMICOLON
    335					;     	0381		    !
    336					;     	0382		    IF
    337					;     	0383			(ARGS = .ARGS + 1) LEQ 2
    338					;     	0384		    THEN
    339					;     	0385			BEGIN
    340					;     	0386			LOCAL
    341					;     	0387			    PTR1,PTR2;
    342					;     	0388			PTR1 = PARTAB[PARENT-1,PARNEXT];
    343					;     	0389			PTR2 = PARTAB[PARENT-2,PARNEXT];
    344					;     	0390			DECR I FROM PARSIZ*(PARENT-1)-1 TO 0 DO
    345					;     	0391			    BEGIN
    346					;     	0392			    PTR1 = .PTR1 - 2;
    347					;     	0393			    PTR2 = .PTR2 - 2;
    348					;     	0394			    .PTR1 = ..PTR2
    349					;     	0395			    END;
    350					;     	0396			SEG = EXP = COUNT = 0
    351					;     	0397			END
    352					;     	0398		    ELSE
    353					;     	0399			RETURN ERRPRT(BADARG);
    354					;     	0400
    355					;     	0401		    ! 4 - PLUS
    356					;     	0402		    !
    357					;     	0403		    OP = 1;
    358					;     	0404
    359					;     	0405		    ! 5 - MINUS
    360					;     	0406		    !
    361					;     	0407		    OP = 2;
    362					;     	0408
    363					;     	0409		    ! 6 - STAR
    364					;     	0410		    !
    365					;     	0411		    OP = 3;
    366					;     	0412
    367					;     	0413		    ! 7 - DOT
    368					;     	0414		    !
    369					;     	0415		    BEGIN
    370					;     	0416		    SEG = .VIRTSEG;
    371					;     	0417		    NUM = .VIRTDOT;
    372					;     	0418		    PFLAG[SYMBNUM] = TRUE
    373					;     	0419		    END;
    374					;     	0420
    375					;     	0421		    ! 8 - C
    376					;     	0422		    !
    377					;     	0423		    BEGIN
    378					;     	0424		    NUM = .CONREG;
    379					;     	0425		    PFLAG[SYMBNUM] = TRUE
    380					;     	0426		    END;
    381					;     	0427
    382					;     	0428		    ! 9 - Q
    383					;     	0429		    !
    384					;     	0430		    BEGIN
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 9


    386					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.19	ZPROC.B11	PAGE 1-7
    387
    388					;     	0431		    NUM = .QUANREG;
    389					;     	0432		    PFLAG[SYMBNUM] = TRUE
    390					;     	0433		    END;
    391					;     	0434
    392					;     	0435		    ! 10 - DOLLAR
    393					;     	0436		    !
    394					;     	0437		    BEGIN
    395					;     	0438		    GETNUMANDDEL();
    396					;     	0439		    IF .DEL EQL "R"
    397					;     	0440		    THEN
    398					;     	0441			IF .NUM GTRU 7
    399					;     	0442			THEN
    400					;     	0443			    RETURN ERRPRT(NORELO)
    401					;     	0444			ELSE
    402					;     	0445			    NUM = RELOCV[.NUM]
    403					;     	0446		    ELSE
    404					;     	0447			IF (NUM = INDEX("ACFHLMQ")) LSS 0
    405					;     	0448			THEN
    406					;     	0449			    RETURN ERRPRT(NOSPEC)
    407					;     	0450			ELSE
    408					;     	0451			    NUM = INTREGS[.NUM];
    409					;     	0452		    PFLAG[SPECREG] = PFLAG[SYMBNUM] = TRUE;
    410					;     	0453		    END
    411					;     	0454
    412					;     	0455		    TES
    413					;     	0456		END;
    414					;     	0457
    415					;     	0458	    IF .ARGS NEQ 0 OR .COUNT NEQ 0
    416					;     	0459	    THEN
    417					;     	0460		ARGS = .ARGS + 1;
    418					;     	0461	    TYPE = INDEX("X?M?J^_@></\""'%=KEWNFORLV");
    419					;     	0462	    NOVALUE
    420					;     	0463	    END;
    421					;     	0464
    422
    423
    424	000016				PARSE:
    425	000016	004167 	000000G			JSR	R$1,$SAV5
    426	000022	012767 	177776 	003776 		MOV	#177776,TYPE
    427	000030	012767 	177777 	004056 		MOV	#177777,CHARNDX
    428	000036	012701 	004116'			MOV	#PARTAB,R$1
    429	000042	012705 	004120'			MOV	#PARTAB+2,R$5
    430	000046	012704 	004010'			MOV	#ARGS,R$4
    431	000052	005067 	003744 			CLR	PFLAG
    432	000056	005014 				CLR	@R$4
    433	000060	005046 				CLR	-(SP)
    434	000062	005067 	003742 			CLR	COUNT
    435	000066	162706 	000006 			SUB	#6,SP
    436	000072	005015 				CLR	@R$5
    437	000074	005011 			L$62:	CLR	@R$1
    438	000076	004767 	000704 		L$8:	JSR	PC,GETNUMANDD
    439	000102	012703 	004016'			MOV	#NUM,R$3
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 10


    441					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.25	ZPROC.B11	PAGE 1-8
    442
    443	000106	016602 	000006 			MOV	6(SP),R$2
    444	000112	006302 				ASL	R$2
    445	000114	066207 	000120'			ADD	L$9(R$2),PC
    446	000120	000012 			L$9:	.WORD	L$11-L$9
    447	000122	000016 				.WORD	L$12-L$9
    448	000124	000022 				.WORD	L$13-L$9
    449	000126	000026 				.WORD	L$14-L$9
    450	000130	000054 				.WORD	L$15-L$9
    451	000132	011311 			L$11:	MOV	@R$3,@R$1
    452	000134	000420 				BR	L$10
    453	000136	061311 			L$12:	ADD	@R$3,@R$1
    454	000140	000416 				BR	L$10
    455	000142	161311 			L$13:	SUB	@R$3,@R$1
    456	000144	000414 				BR	L$10
    457	000146	011116 			L$14:	MOV	@R$1,@SP
    458	000150	006316 				ASL	@SP
    459	000152	006316 				ASL	@SP
    460	000154	011602 				MOV	@SP,R$2
    461	000156	061102 				ADD	@R$1,R$2
    462	000160	006302 				ASL	R$2
    463	000162	006302 				ASL	R$2
    464	000164	006302 				ASL	R$2
    465	000166	061302 				ADD	@R$3,R$2
    466	000170	010211 				MOV	R$2,@R$1
    467	000172	000401 				BR	L$10
    468	000174	005011 			L$15:	CLR	@R$1
    469	000176	005066 	000006 		L$10:	CLR	6(SP)
    470	000202	012700 	000632'			MOV	#P$AAB,R$0
    471	000206	004767 	000716 			JSR	PC,LOOKUP
    472	000212	005200 				INC	R$0
    473	000214	006300 				ASL	R$0
    474	000216	066007 	000222'			ADD	L$16(R$0),PC
    475	000222	000352 			L$16:	.WORD	U$5-L$16
    476	000224	000026 				.WORD	L$19-L$16
    477	000226	000032 				.WORD	L$20-L$16
    478	000230	000066 				.WORD	L$21-L$16
    479	000232	000162 				.WORD	L$22-L$16
    480	000234	000172 				.WORD	L$23-L$16
    481	000236	000202 				.WORD	L$24-L$16
    482	000240	000212 				.WORD	L$25-L$16
    483	000242	000224 				.WORD	L$26-L$16
    484	000244	000232 				.WORD	L$27-L$16
    485	000246	000246 				.WORD	L$28-L$16
    486	000250	011115 			L$19:	MOV	@R$1,@R$5
    487	000252	000710 				BR	L$62
    488	000254	021127 	000007 		L$20:	CMP	@R$1,#7
    489	000260	101402 				BLOS	L$30
    490	000262	005000 			L$63:	CLR	R$0
    491	000264	000527 				BR	L$54
    492	000266	011102 			L$30:	MOV	@R$1,R$2
    493	000270	006302 				ASL	R$2
    494	000272	016215 	004074'			MOV	INTREGS+36(R$2),@R$5
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 11


    496					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.25	ZPROC.B11	PAGE 1-9
    497
    498	000276	011102 				MOV	@R$1,R$2
    499	000300	006302 				ASL	R$2
    500	000302	016211 	004054'			MOV	INTREGS+16(R$2),@R$1
    501	000306	000436 				BR	L$22
    502	000310	005214 			L$21:	INC	@R$4
    503	000312	021427 	000002 			CMP	@R$4,#2
    504	000316	003027 				BGT	L$33
    505	000320	012766 	004132'	000002 		MOV	#PARTAB+14,2(SP)
    506	000326	012766 	004126'	000004 		MOV	#PARTAB+10,4(SP)
    507	000334	012702 	000003 			MOV	#3,R$2
    508	000340	161766 	000002 		L$34:	SUB	@PC,2(SP)
    509	000344	162766 	000002 	000004 		SUB	#2,4(SP)
    510	000352	017676 	000004 	000002 		MOV	@4(SP),@2(SP)
    511	000360	005302 				DEC	R$2
    512	000362	002366 				BGE	L$34
    513	000364	005067 	003440 			CLR	COUNT
    514	000370	005011 				CLR	@R$1
    515	000372	005015 				CLR	@R$5
    516	000374	000640 			L$64:	BR	L$8
    517	000376	012700 	000003 		L$33:	MOV	#3,R$0
    518	000402	000460 				BR	L$54
    519	000404	012766 	000001 	000006 	L$22:	MOV	#1,6(SP)
    520	000412	000631 				BR	L$8
    521	000414	012766 	000002 	000006 	L$23:	MOV	#2,6(SP)
    522	000422	000625 				BR	L$8
    523	000424	012766 	000003 	000006 	L$24:	MOV	#3,6(SP)
    524	000432	000621 				BR	L$8
    525	000434	013715 	004024'		L$25:	MOV	@#VIRTSEG,@R$5
    526	000440	013713 	004012'			MOV	@#VIRTDOT,@R$3
    527	000444	000405 				BR	L$60
    528	000446	013713 	004040'		L$26:	MOV	@#INTREGS+2,@R$3
    529	000452	000402 				BR	L$60
    530	000454	013713 	004052'		L$27:	MOV	@#INTREGS+14,@R$3
    531	000460	152737 	000001 	004022'	L$60:	BISB	#1,@#PFLAG
    532	000466	000603 				BR	L$8
    533	000470	004767 	000312 		L$28:	JSR	PC,GETNUMANDD
    534	000474	023727 	004014'	000122 		CMP	@#DEL,#122
    535	000502	001010 				BNE	L$38
    536	000504	021327 	000007 			CMP	@R$3,#7
    537	000510	101264 				BHI	L$63
    538	000512	011302 				MOV	@R$3,R$2
    539	000514	006302 				ASL	R$2
    540	000516	062702 	004054'			ADD	#INTREGS+16,R$2
    541	000522	000417 				BR	L$51
    542	000524	012700 	000646'		L$38:	MOV	#P$AAC,R$0
    543	000530	004767 	000374 			JSR	PC,LOOKUP
    544	000534	010013 				MOV	R$0,@R$3
    545	000536	002005 				BGE	L$44
    546	000540	012700 	000004 			MOV	#4,R$0
    547	000544	004767 	000000G		L$54:	JSR	PC,ERRPRT
    548	000550	000425 				BR	L$7
    549	000552	011302 			L$44:	MOV	@R$3,R$2
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 12


    551					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.25	ZPROC.B11	PAGE 1-10
    552
    553	000554	006302 				ASL	R$2
    554	000556	062702 	004036'			ADD	#INTREGS,R$2
    555	000562	010213 			L$51:	MOV	R$2,@R$3
    556	000564	152737 	000003 	004022'		BISB	#3,@#PFLAG
    557	000572	000700 				BR	L$64
    558	000574	005714 			U$5:	TST	@R$4
    559	000576	001003 				BNE	L$47
    560	000600	005767 	003224 			TST	COUNT
    561	000604	001401 				BEQ	L$49
    562	000606	005214 			L$47:	INC	@R$4
    563	000610	012700 	000656'		L$49:	MOV	#P$AAD,R$0
    564	000614	004767 	000310 			JSR	PC,LOOKUP
    565	000620	010067 	003202 			MOV	R$0,TYPE
    566	000624	062706 	000010 		L$7:	ADD	#10,SP
    567	000630	000207 				RTS	PC
    568
    569					; ROUTINE SIZE:  198
    570
    571
    572	000632				.PSECT
    573
    574	000632	026072 	025473 	025055 	P$AAB:	.WORD  26072,25473,25055
    575	000640	041456 	022121 	000000 		.WORD  41456,22121,0
    576	000646	041501 	044106 	046514 	P$AAC:	.WORD  41501,44106,46514
    577	000654	000121 				.WORD  121
    578	000656	006530 	057012 	040137 	P$AAD:	.WORD  6530,57012,40137
    579	000664	036076 	056057 	023442 		.WORD  36076,56057,23442
    580	000672	036445 	042513 	047127 		.WORD  36445,42513,47127
    581	000700	047506 	046122 	000126 		.WORD  47506,46122,126
    582
    583
    584
    585					;     	0465	COMMENT ! GETCHAR
    586					;     	0466	!
    587					;     	0467	! FUNCTION
    588					;     	0468	!	GET ONE CHARACTER FROM THE USER COMMAND
    589					;     	0469	!
    590					;     	0470	! INPUTS
    591					;     	0471	!	USER COMMAND BUFFER
    592					;     	0472	!	CHARNDX	- INDEX OF THE NEXT CHARACTER TO BE SCANNED
    593					;     	0473	!
    594					;     	0474	! OUTPUTS
    595					;     	0475	!	VALUE	- CHARACTER
    596					;     	0476	!		A NULL LINE IS TRANSLATED TO <LF>
    597					;     	0477	!		BLANK IS TRANSLATED TO PLUS
    598					;     	0478	!		A <CR> IS RETURNED WHEN THE COUNT IS EXHAUSTED
    599					;     	0479	!
    600					;     	0480
    601					;     	0481	ROUTINE GETCHAR=
    602					;     	0482	    BEGIN
    603					;     	0483	    IF .CMLLEN EQL 0
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 13


    605					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.27	ZPROC.B11	PAGE 1-11
    606
    607					;     	0484	    THEN
    608					;     	0485		"?J"
    609					;     	0486	    ELSE
    610					;     	0487		IF (CHARNDX = .CHARNDX + 1) GEQ .CMLLEN
    611					;     	0488		THEN
    612					;     	0489		    "?M"
    613					;     	0490		ELSE
    614					;     	0491		    IF .CMLADR[.CHARNDX] EQL " "
    615					;     	0492		    THEN
    616					;     	0493			"+"
    617					;     	0494		    ELSE
    618					;     	0495			.CMLADR[.CHARNDX]
    619					;     	0496	    END;
    620					;     	0497
    621
    622	000706				.PSECT
    623
    624
    625	000706				GETCHAR:
    626	000706	010146 				MOV	R$1,-(SP)
    627	000710	005737 	000000G			TST	@#CMLLEN
    628	000714	001003 				BNE	L$67
    629	000716	012700 	000012 			MOV	#12,R$0
    630	000722	000427 				BR	L$71
    631	000724	012701 	004114'		L$67:	MOV	#CHARNDX,R$1
    632	000730	011100 				MOV	@R$1,R$0
    633	000732	005200 				INC	R$0
    634	000734	010011 				MOV	R$0,@R$1
    635	000736	020037 	000000G			CMP	R$0,@#CMLLEN
    636	000742	002403 				BLT	L$70
    637	000744	012700 	000015 			MOV	#15,R$0
    638	000750	000414 				BR	L$71
    639	000752	013700 	000000G		L$70:	MOV	@#CMLADR,R$0
    640	000756	061100 				ADD	@R$1,R$0
    641	000760	121027 	000040 			CMPB	@R$0,#40
    642	000764	001003 				BNE	L$73
    643	000766	012701 	000053 			MOV	#53,R$1
    644	000772	000402 				BR	L$74
    645	000774	005001 			L$73:	CLR	R$1
    646	000776	151001 				BISB	@R$0,R$1
    647	001000	010100 			L$74:	MOV	R$1,R$0
    648	001002	012601 			L$71:	MOV	(SP)+,R$1
    649	001004	000207 				RTS	PC
    650
    651					; ROUTINE SIZE:  32
    652
    653
    654
    655
    656
    657					;     	0498	COMMENT ! GETNUMANDDEL
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 14


    659					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.30	ZPROC.B11	PAGE 1-12
    660
    661					;     	0499	!
    662					;     	0500	! FUNCTION
    663					;     	0501	!	RETURN A NUMERIC QUANTITY AND ITS FOLLOWING DELIMITER
    664					;     	0502	!	FROM THE COMMAND STRING
    665					;     	0503	!
    666					;     	0504	! INPUTS
    667					;     	0505	!	PFLAG	- SET IF A SYMBOLIC NUMBER (LIKE C OR Q OR DOT)
    668					;     	0506	!		PRECEDED
    669					;     	0507	!
    670					;     	0508	! OUTPUTS
    671					;     	0509	!	NUM	- VALUE OF THE NUMERIC QUANTITY (ZERO IF NONE)
    672					;     	0510	!	DEL	- DELIMITER CHARACTER (ASCII)
    673					;     	0511	!	COUNT	- COUNT OF NUMERIC DIGITS
    674					;     	0512	!	VALUE	- NONE
    675					;     	0513	!
    676					;     	0514
    677					;     	0515	ROUTINE GETNUMANDDEL=
    678					;     	0516	    BEGIN
    679					;     	0517	    IF .PFLAG[SYMBNUM]
    680					;     	0518	    THEN
    681					;     	0519		BEGIN
    682					;     	0520		PFLAG[SYMBNUM] = FALSE;
    683					;     	0521		COUNT = .COUNT + 1;
    684					;     	0522		END
    685					;     	0523	    ELSE
    686					;     	0524		NUM = 0;
    687					;     	0525
    688					;     	0526	    DEL = GETCHAR();
    689					;     	0527	    WHILE
    690					;     	0528		.DEL GEQ "0" AND .DEL LEQ "7"
    691					;     	0529	    DO
    692					;     	0530		BEGIN
    693					;     	0531		NUM = .NUM*8 + .DEL-"0";
    694					;     	0532		COUNT = .COUNT + 1;
    695					;     	0533		DEL = GETCHAR();
    696					;     	0534		END;
    697					;     	0535	    NOVALUE
    698					;     	0536	    END;
    699					;     	0537
    700
    701
    702	001006				GETNUMANDD:
    703	001006	004167 	000000G			JSR	R$1,$SAV4
    704	001012	012702 	004030'			MOV	#COUNT,R$2
    705	001016	012703 	004016'			MOV	#NUM,R$3
    706	001022	132737 	000001 	004022'		BITB	#1,@#PFLAG
    707	001030	001407 				BEQ	L$77
    708	001032	142737 	000001 	004022'		BICB	#1,@#PFLAG
    709	001040	011204 				MOV	@R$2,R$4
    710	001042	005204 				INC	R$4
    711	001044	010412 				MOV	R$4,@R$2
    712	001046	000401 				BR	L$79
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 15


    714					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.33	ZPROC.B11	PAGE 1-13
    715
    716	001050	005013 			L$77:	CLR	@R$3
    717	001052	012701 	004014'		L$79:	MOV	#DEL,R$1
    718	001056	004767 	177624 		L$85:	JSR	PC,GETCHAR
    719	001062	010011 				MOV	R$0,@R$1
    720	001064	010004 				MOV	R$0,R$4
    721	001066	020427 	000060 			CMP	R$4,#60
    722	001072	002415 				BLT	U$113
    723	001074	020427 	000067 			CMP	R$4,#67
    724	001100	003012 				BGT	U$113
    725	001102	011300 				MOV	@R$3,R$0
    726	001104	006300 				ASL	R$0
    727	001106	006300 				ASL	R$0
    728	001110	006300 				ASL	R$0
    729	001112	060400 				ADD	R$4,R$0
    730	001114	162700 	000060 			SUB	#60,R$0
    731	001120	010013 				MOV	R$0,@R$3
    732	001122	005212 				INC	@R$2
    733	001124	000754 				BR	L$85
    734	001126	000207 			U$113:	RTS	PC
    735
    736					; ROUTINE SIZE:  41
    737
    738
    739
    740
    741
    742					;     	0538	COMMENT ! LOOKUP(P0)
    743					;     	0539	!
    744					;     	0540	! FUNCTION
    745					;     	0541	!	SEARCH FOR A CHARACTER AND RETURN ITS INDEX IN AN ASCIZ STRING
    746					;     	0542	!
    747					;     	0543	! INPUTS
    748					;     	0544	!	P0	- POINTER TO AN ASCIZ STRING
    749					;     	0545	!	DEL	- CHARACTER TO BE SEARCHED FOR
    750					;     	0546	!
    751					;     	0547	! OUTPUTS
    752					;     	0548	!	VALUE	- INDEX OF THE CHARACTER (-1 IF NOT PRESENT)
    753					;     	0549	!
    754					;     	0550
    755					;     	0551	ROUTINE REG0 LOOKUP(P0)=
    756					;     	0552	    BEGIN
    757					;     	0553	    LOCAL
    758					;     	0554		PBYTVECT P;
    759					;     	0555	    P = .P0;
    760					;     	0556	    UNTIL
    761					;     	0557		.P[0] EQL 0
    762					;     	0558	    DO
    763					;     	0559		BEGIN
    764					;     	0560		IF .DEL<0,8> EQL .P[0]
    765					;     	0561		    THEN EXITLOOP .P-.P0;
    766					;     	0562		P = .P + 1
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 16


    768					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.34	ZPROC.B11	PAGE 1-14
    769
    770					;     	0563		END
    771					;     	0564	    END;
    772					;     	0565
    773
    774
    775	001130				LOOKUP:
    776	001130	004167 	000000G			JSR	R$1,$SAV2
    777	001134	010002 				MOV	R$0,R$2
    778	001136	010201 				MOV	R$2,R$1
    779	001140	105711 			L$88:	TSTB	@R$1
    780	001142	001410 				BEQ	L$89
    781	001144	123711 	004014'			CMPB	@#DEL,@R$1
    782	001150	001003 				BNE	L$92
    783	001152	010100 				MOV	R$1,R$0
    784	001154	160200 				SUB	R$2,R$0
    785	001156	000207 				RTS	PC
    786	001160	005201 			L$92:	INC	R$1
    787	001162	000766 				BR	L$88
    788	001164	012700 	177777 		L$89:	MOV	#177777,R$0
    789	001170	000207 			U$126:	RTS	PC
    790
    791					; ROUTINE SIZE:  17
    792
    793
    794
    795
    796
    797					;     	0566	COMMENT ! EXECUTE
    798					;     	0567	!
    799					;     	0568	! FUNCTION
    800					;     	0569	!	EXECUTE THE USER COMMAND
    801					;     	0570	!
    802					;     	0571	! INPUTS
    803					;     	0572	!	TYPE	- COMMAND TYPE
    804					;     	0573	!	PARTAB	- THE PARSED ADDRESSES
    805					;     	0574	!	ARGS	- ARGUMENT COUNT
    806					;     	0575	!
    807					;     	0576	! OUTPUTS
    808					;     	0577	!	THE COMMAND EXECUTED
    809					;     	0578	!	VALUE	- NONE
    810					;     	0579	!
    811					;     	0580
    812					;     	0581	ROUTINE EXECUTE=
    813					;     	0582	    BEGIN
    814					;     	0583	    BIND
    815					;     	0584		BYTVECT CASEVAL = UPLIT(BYTS(
    816					;     	0585		    0,1,11,2,2,2,2,2,2,2,3,3,3,3,3,4,5,6,6,6,7,8,9,10,12,0)),
    817					;     	0586		BYTVECT SUBCASE = UPLIT(BYTS(
    818					;     	0587		    0,0,0,0,1,2,4,5,6,3,0,3,1,4,2,0,0,0,0,0,0,0,0,0,0,0)),
    819					;     	0588		BYTVECT MAXARGS = UPLIT(BYTS(
    820					;     	0589		    3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,3,1,0));
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 17


    822					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.37	ZPROC.B11	PAGE 1-15
    823
    824					;     	0590	    LOCAL
    825					;     	0591		SUBC;
    826					;     	0592
    827					;     	0593
    828					;     	0594	    IF .MAXARGS[.TYPE+2] LSS .ARGS<0,8>
    829					;     	0595		THEN RETURN ERRPRT(BADARG);
    830					;     	0596
    831					;     	0597	    SUBC = .SUBCASE[.TYPE+2];
    832					;     	0598	    CASE .CASEVAL[.TYPE+2] OF
    833					;     	0599		SET
    834					;     	0600
    835					;     	0601		! 0 - ERROR
    836					;     	0602		!
    837					;     	0603		0;
    838					;     	0604
    839					;     	0605		! 1 - NOT FOUND
    840					;     	0606		!
    841					;     	0607		ERRPRT(BADCMD);
    842					;     	0608
    843					;     	0609		! 2 - <CR>, <LF>, ^, _, @, >, <
    844					;     	0610		!
    845					;     	0611		BEGIN
    846					;     	0612		IF .ARGS NEQ 0
    847					;     	0613		THEN
    848					;     	0614		    CASE .BWMODE+.VRMODE OF
    849					;     	0615			SET
    850					;     	0616
    851					;     	0617			! 0 - NO OPEN LOCATION
    852					;     	0618			!
    853					;     	0619			ERRPRT(NOOPEN);
    854					;     	0620
    855					;     	0621			! 1 - OPEN AS BYTE
    856					;     	0622			!
    857					;     	0623			BEGIN
    858					;     	0624			(.REALDOT)<0,8> = .PARTAB[0,PARVAL];
    859					;     	0625			WRITBK = TRUE;
    860					;     	0626			END;
    861					;     	0627
    862					;     	0628			! 2 - OPEN AS WORD
    863					;     	0629			!
    864					;     	0630			BEGIN
    865					;     	0631			.REALDOT = .PARTAB[0,PARVAL];
    866					;     	0632			WRITBK = TRUE;
    867					;     	0633			END;
    868					;     	0634
    869					;     	0635			! 3 - SPECIAL REGISTER OPEN AS BYTE
    870					;     	0636			!
    871					;     	0637			(.REALDOT)<0,8> = .PARTAB[0,PARVAL];
    872					;     	0638
    873					;     	0639			! 4 - SPECIAL REGISTER OPEN AS WORD
    874					;     	0640			!
    875					;     	0641			.REALDOT = .PARTAB[0,PARVAL]
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 18


    877					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.38	ZPROC.B11	PAGE 1-16
    878
    879					;     	0642
    880					;     	0643			TES;
    881					;     	0644		IF .SUBC NEQ 0
    882					;     	0645		THEN
    883					;     	0646		    IF .SUBC GEQ 4 AND .BWMODE
    884					;     	0647		    THEN
    885					;     	0648			BEGIN
    886					;     	0649			ERRPRT(NOBYTE);
    887					;     	0650			BWMODE = VRMODE = 0
    888					;     	0651			END
    889					;     	0652		    ELSE
    890					;     	0653			BEGIN
    891					;     	0654			VIRTDOT =
    892					;     	0655			    BEGIN
    893					;     	0656			    CASE .SUBC-1 OF
    894					;     	0657				SET
    895					;     	0658
    896					;     	0659				! LINEFEED
    897					;     	0660				!
    898					;     	0661				SAVEDOT = .VIRTDOT + .BWMODE;
    899					;     	0662
    900					;     	0663				! UP-ARROW
    901					;     	0664				!
    902					;     	0665				SAVEDOT = .VIRTDOT - .BWMODE;
    903					;     	0666
    904					;     	0667				! LESS THAN
    905					;     	0668				!
    906					;     	0669				.SAVEDOT + .BWMODE;
    907					;     	0670
    908					;     	0671				! BACK-ARROW
    909					;     	0672				!
    910					;     	0673				.VIRTDOT + ..REALDOT + 2;
    911					;     	0674
    912					;     	0675				! AT SIGN
    913					;     	0676				!
    914					;     	0677				..REALDOT;
    915					;     	0678
    916					;     	0679				! GREATER THAN
    917					;     	0680				!
    918					;     	0681				.VIRTDOT + BYTSXT(..REALDOT)*2 + 2
    919					;     	0682
    920					;     	0683				TES
    921					;     	0684			    END;
    922					;     	0685			IF .VIRTDOT THEN BWMODE = 1;
    923					;     	0686			OPENANDTYPE()
    924					;     	0687			END
    925					;     	0688		END;
    926					;     	0689
    927					;     	0690		! 3 - /, \, ", ', %
    928					;     	0691		!
    929					;     	0692		BEGIN
    930					;     	0693		BIND
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 19


    932					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.39	ZPROC.B11	PAGE 1-17
    933
    934					;     	0694		    BYTVECT FORMTAB = UPLIT(BYTS(
    935					;     	0695			0,2,4,0,2,0));
    936					;     	0696
    937					;     	0697		IF .ARGS NEQ 0
    938					;     	0698		THEN
    939					;     	0699		    BEGIN
    940					;     	0700		    VIRTSEG = .PARTAB[0,PARSEG];
    941					;     	0701		    VIRTDOT = SAVEDOT = .PARTAB[0,PARVAL];
    942					;     	0702		    VRMODE = .PFLAG[SPECREG] * 2;
    943					;     	0703		    END;
    944					;     	0704		BWMODE =
    945					;     	0705		    BEGIN
    946					;     	0706		    IF .SUBC GEQ 3 OR .VIRTDOT
    947					;     	0707		    THEN
    948					;     	0708			1
    949					;     	0709		    ELSE
    950					;     	0710			2
    951					;     	0711		    END;
    952					;     	0712		FORM = .FORMTAB[.SUBC];
    953					;     	0713		OPENANDTYPE()
    954					;     	0714		END;
    955					;     	0715
    956					;     	0716		! 4 - =
    957					;     	0717		!
    958					;     	0718		BEGIN
    959					;     	0719		OUTN(QUANREG=.PARTAB[0,PARVAL],6);
    960					;     	0720		EOL();
    961					;     	0721		END;
    962					;     	0722
    963					;     	0723		! 5 - K
    964					;     	0724		!
    965					;     	0725		BEGIN
    966					;     	0726		IF .ARGS NEQ 2
    967					;     	0727		THEN
    968					;     	0728		    BEGIN
    969					;     	0729		    PARTAB[1,PARSEG] = .VIRTSEG;
    970					;     	0730		    PARTAB[1,PARVAL] = .VIRTDOT
    971					;     	0731		    END;
    972					;     	0732		IF .ARGS NEQ 0
    973					;     	0733		THEN
    974					;     	0734		    IF
    975					;     	0735			(PARTAB[0,PARVAL] =
    976					;     	0736			    SELRELREG(.PARTAB[1,PARSEG],.PARTAB[1,PARVAL]))
    977					;     	0737			LSS 0
    978					;     	0738		    THEN
    979					;     	0739			RETURN ERRPRT(NORELO);
    980					;     	0740		OUTC("=");
    981					;     	0741		OUTC(.PARTAB[0,PARREG] + "0");
    982					;     	0742		OUTC(",");
    983					;     	0743		OUTN(QUANREG=.PARTAB[1,PARVAL]-.RELOCV[.PARTAB[0,PARREG]],6);
    984					;     	0744		EOL()
    985					;     	0745		END;
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 20


    987					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.41	ZPROC.B11	PAGE 1-18
    988
    989					;     	0746
    990					;     	0747		! 6 - E, W, N
    991					;     	0748		!
    992					;     	0749		ERRPRT(NOTYET);
    993					;     	0750
    994					;     	0751		! 7 - F
    995					;     	0752		!
    996					;     	0753		ERRPRT(NOTYET);
    997					;     	0754
    998					;     	0755		! 8 - O
    999					;     	0756		!
   1000					;     	0757		BEGIN
   1001					;     	0758		LOCAL
   1002					;     	0759		    N;
   1003					;     	0760		N = (IF .ARGS NEQ 1 THEN .PARTAB[1,PARVAL] ELSE .VIRTDOT);
   1004					;     	0761		OUTC("_");
   1005					;     	0762		OUTN(N=.PARTAB[0,PARVAL] - .N - 2, 6);
   1006					;     	0763		OUTC(" ");
   1007					;     	0764		OUTC(">");
   1008					;     	0765		OUTN(QUANREG=.N/2, 6);
   1009					;     	0766		EOL()
   1010					;     	0767		END;
   1011					;     	0768
   1012					;     	0769		! 9 - R
   1013					;     	0770		!
   1014					;     	0771		CASE .ARGS OF
   1015					;     	0772		    SET
   1016					;     	0773
   1017					;     	0774		    ! 0 - CLEAR ALL
   1018					;     	0775		    !
   1019					;     	0776		    DECR I FROM 7 TO 0 DO
   1020					;     	0777			BEGIN
   1021					;     	0778			RELOCV[.I] = #177777;
   1022					;     	0779			RELOCS[.I] = 0;
   1023					;     	0780			END;
   1024					;     	0781
   1025					;     	0782		    ! 1 - CLEAR ONE
   1026					;     	0783		    !
   1027					;     	0784		    IF .PARTAB[0,PARVAL] GTRU 7
   1028					;     	0785		    THEN
   1029					;     	0786			ERRPRT(NORELO)
   1030					;     	0787		    ELSE
   1031					;     	0788			BEGIN
   1032					;     	0789			RELOCV[.PARTAB[0,PARVAL]] = #177777;
   1033					;     	0790			RELOCS[.PARTAB[0,PARVAL]] = 0;
   1034					;     	0791			END;
   1035					;     	0792
   1036					;     	0793		    ! 2 - SET ONE
   1037					;     	0794		    !
   1038					;     	0795		    IF .PARTAB[0,PARVAL] GTRU 7
   1039					;     	0796		    THEN
   1040					;     	0797			ERRPRT(NORELO)
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 21


   1042					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.43	ZPROC.B11	PAGE 1-19
   1043
   1044					;     	0798		    ELSE
   1045					;     	0799			BEGIN
   1046					;     	0800			RELOCV[.PARTAB[0,PARVAL]] = .PARTAB[1,PARVAL];
   1047					;     	0801			RELOCS[.PARTAB[0,PARVAL]] = .PARTAB[1,PARSEG];
   1048					;     	0802			END
   1049					;     	0803
   1050					;     	0804		    TES;
   1051					;     	0805
   1052					;     	0806		! 10 - L
   1053					;     	0807		!
   1054					;     	0808		ERRPRT(NOTYET);
   1055					;     	0809
   1056					;     	0810		! 11 - X
   1057					;     	0811		!
   1058					;     	0812		SIGNAL SIGXIT;
   1059					;     	0813
   1060					;     	0814		! 12 - V
   1061					;     	0815		!
   1062					;     	0816		IF .QUANREG NEQ .PARTAB[0,PARVAL]
   1063					;     	0817		THEN
   1064					;     	0818		    BEGIN
   1065					;     	0819		    ERRPRT(VFYREJ);
   1066					;     	0820		    SIGNAL SIGXIT
   1067					;     	0821		    END
   1068					;     	0822
   1069					;     	0823		TES;
   1070					;     	0824	    NOVALUE
   1071					;     	0825	    END;
   1072					;     	0826
   1073
   1074
   1075	001172				EXECUTE:
   1076	001172	004167 	000000G			JSR	R$1,$SAV2
   1077	001176	013700 	004026'			MOV	@#TYPE,R$0
   1078	001202	012702 	004010'			MOV	#ARGS,R$2
   1079	001206	126012 	002672'			CMPB	P$AAG+2(R$0),@R$2
   1080	001212	103004 				BHIS	L$97
   1081	001214	012700 	000003 			MOV	#3,R$0
   1082	001220	000167 	000000G			JMP	ERRPRT
   1083	001224	013700 	004026'		L$97:	MOV	@#TYPE,R$0
   1084	001230	062700 	000002 			ADD	#2,R$0
   1085	001234	005001 				CLR	R$1
   1086	001236	156001 	002636'			BISB	P$AAF(R$0),R$1
   1087	001242	116000 	002604'			MOVB	P$AAE(R$0),R$0
   1088	001246	042700 	177400 			BIC	#177400,R$0
   1089	001252	006300 				ASL	R$0
   1090	001254	066007 	001260'			ADD	L$99(R$0),PC
   1091	001260	001260 			L$99:	.WORD	L$100-L$99
   1092	001262	000032 				.WORD	L$102-L$99
   1093	001264	000042 				.WORD	L$103-L$99
   1094	001266	000424 				.WORD	L$104-L$99
   1095	001270	000540 				.WORD	L$105-L$99
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 22


   1097					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.49	ZPROC.B11	PAGE 1-20
   1098
   1099	001272	000554 				.WORD	L$106-L$99
   1100	001274	000750 				.WORD	L$107-L$99
   1101	001276	000760 				.WORD	L$108-L$99
   1102	001300	000770 				.WORD	L$109-L$99
   1103	001302	001120 				.WORD	L$110-L$99
   1104	001304	001262 				.WORD	L$111-L$99
   1105	001306	001272 				.WORD	L$112-L$99
   1106	001310	001302 				.WORD	L$113-L$99
   1107	001312	012700 	000005 		L$102:	MOV	#5,R$0
   1108	001316	000167 	000000G			JMP	ERRPRT
   1109	001322	005712 			L$103:	TST	@R$2
   1110	001324	001443 				BEQ	L$115
   1111	001326	013700 	004020'			MOV	@#BWMODE,R$0
   1112	001332	063700 	004132'			ADD	@#VRMODE,R$0
   1113	001336	006300 				ASL	R$0
   1114	001340	066007 	001344'			ADD	L$116(R$0),PC
   1115	001344	000012 			L$116:	.WORD	L$118-L$116
   1116	001346	000024 				.WORD	L$119-L$116
   1117	001350	000034 				.WORD	L$120-L$116
   1118	001352	000052 				.WORD	L$121-L$116
   1119	001354	000062 				.WORD	L$122-L$116
   1120	001356	012700 	000006 		L$118:	MOV	#6,R$0
   1121	001362	004767 	000000G			JSR	PC,ERRPRT
   1122	001366	000422 				BR	L$115
   1123	001370	113777 	004116'	000000G	L$119:	MOVB	@#PARTAB,@REALDOT
   1124	001376	000403 				BR	L$178
   1125	001400	013777 	004116'	000000G	L$120:	MOV	@#PARTAB,@REALDOT
   1126	001406	012767 	000001 	000000G	L$178:	MOV	#1,WRITBK
   1127	001414	000407 				BR	L$115
   1128	001416	113777 	004116'	000000G	L$121:	MOVB	@#PARTAB,@REALDOT
   1129	001424	000403 				BR	L$115
   1130	001426	013777 	004116'	000000G	L$122:	MOV	@#PARTAB,@REALDOT
   1131	001434	005701 			L$115:	TST	R$1
   1132	001436	001002 				BNE	L$191
   1133	001440	000167 	001074 			JMP	L$100
   1134	001444	132737 	000001 	004020'	L$191:	BITB	#1,@#BWMODE
   1135	001452	001414 				BEQ	L$126
   1136	001454	020127 	000004 			CMP	R$1,#4
   1137	001460	002411 				BLT	L$126
   1138	001462	012700 	000007 			MOV	#7,R$0
   1139	001466	004767 	000000G			JSR	PC,ERRPRT
   1140	001472	005067 	002434 			CLR	VRMODE
   1141	001476	005067 	002316 			CLR	BWMODE
   1142	001502	000207 				RTS	PC
   1143	001504	010100 			L$126:	MOV	R$1,R$0
   1144	001506	005300 				DEC	R$0
   1145	001510	006300 				ASL	R$0
   1146	001512	066007 	001516'			ADD	L$130(R$0),PC
   1147	001516	000014 			L$130:	.WORD	L$132-L$130
   1148	001520	000036 				.WORD	L$133-L$130
   1149	001522	000062 				.WORD	L$134-L$130
   1150	001524	000074 				.WORD	L$135-L$130
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 23


   1152					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.50	ZPROC.B11	PAGE 1-21
   1153
   1154	001526	000106 				.WORD	L$136-L$130
   1155	001530	000116 				.WORD	L$137-L$130
   1156	001532	013701 	004012'		L$132:	MOV	@#VIRTDOT,R$1
   1157	001536	063701 	004020'			ADD	@#BWMODE,R$1
   1158	001542	010167 	002266 			MOV	R$1,SAVEDOT
   1159	001546	010167 	002240 			MOV	R$1,VIRTDOT
   1160	001552	000443 				BR	L$131
   1161	001554	013767 	004012'	002252 	L$133:	MOV	@#VIRTDOT,SAVEDOT
   1162	001562	163767 	004020'	002244 		SUB	@#BWMODE,SAVEDOT
   1163	001570	016767 	002240 	002214 		MOV	SAVEDOT,VIRTDOT
   1164	001576	000431 				BR	L$131
   1165	001600	013700 	004034'		L$134:	MOV	@#SAVEDOT,R$0
   1166	001604	063700 	004020'			ADD	@#BWMODE,R$0
   1167	001610	000422 				BR	L$189
   1168	001612	013700 	004012'		L$135:	MOV	@#VIRTDOT,R$0
   1169	001616	067700 	000000G			ADD	@REALDOT,R$0
   1170	001622	000413 				BR	L$190
   1171	001624	017767 	000000G	002160 	L$136:	MOV	@REALDOT,VIRTDOT
   1172	001632	000413 				BR	L$131
   1173	001634	017700 	000000G		L$137:	MOV	@REALDOT,R$0
   1174	001640	004767 	000000G			JSR	PC,BYTSXT
   1175	001644	006300 				ASL	R$0
   1176	001646	063700 	004012'			ADD	@#VIRTDOT,R$0
   1177	001652	062700 	000002 		L$190:	ADD	#2,R$0
   1178	001656	010067 	002130 		L$189:	MOV	R$0,VIRTDOT
   1179	001662	132737 	000001 	004012'	L$131:	BITB	#1,@#VIRTDOT
   1180	001670	001403 				BEQ	L$138
   1181	001672	012767 	000001 	002120 		MOV	#1,BWMODE
   1182	001700	000167 	001024 		L$138:	JMP	OPENANDTYP
   1183	001704	005712 			L$104:	TST	@R$2
   1184	001706	001417 				BEQ	L$143
   1185	001710	013767 	004120'	002106 		MOV	@#PARTAB+2,VIRTSEG
   1186	001716	013767 	004116'	002110 		MOV	@#PARTAB,SAVEDOT
   1187	001724	016767 	002104 	002060 		MOV	SAVEDOT,VIRTDOT
   1188	001732	113700 	004022'			MOVB	@#PFLAG,R$0
   1189	001736	042700 	177775 			BIC	#177775,R$0
   1190	001742	010067 	002164 			MOV	R$0,VRMODE
   1191	001746	020127 	000003 		L$143:	CMP	R$1,#3
   1192	001752	002004 				BGE	L$145
   1193	001754	132737 	000001 	004012'		BITB	#1,@#VIRTDOT
   1194	001762	001404 				BEQ	L$147
   1195	001764	012767 	000001 	002026 	L$145:	MOV	#1,BWMODE
   1196	001772	000403 				BR	L$148
   1197	001774	012767 	000002 	002016 	L$147:	MOV	#2,BWMODE
   1198	002002	005067 	002024 		L$148:	CLR	FORM
   1199	002006	156167 	002722'	002016 		BISB	P$AAH(R$1),FORM
   1200	002014	000167 	000710 			JMP	OPENANDTYP
   1201	002020	013767 	004116'	002024 	L$105:	MOV	@#PARTAB,INTREGS+14
   1202	002026	016746 	002020 			MOV	INTREGS+14,-(SP)
   1203	002032	000466 				BR	L$184
   1204	002034	021227 	000002 		L$106:	CMP	@R$2,#2
   1205	002040	001406 				BEQ	L$150
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 24


   1207					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.50	ZPROC.B11	PAGE 1-22
   1208
   1209	002042	013767 	004024'	002054 		MOV	@#VIRTSEG,PARTAB+6
   1210	002050	013767 	004012'	002044 		MOV	@#VIRTDOT,PARTAB+4
   1211	002056	005712 			L$150:	TST	@R$2
   1212	002060	001416 				BEQ	L$153
   1213	002062	013746 	004124'			MOV	@#PARTAB+6,-(SP)
   1214	002066	013746 	004122'			MOV	@#PARTAB+4,-(SP)
   1215	002072	004767 	001612 			JSR	PC,SELRELREG
   1216	002076	010067 	002014 			MOV	R$0,PARTAB
   1217	002102	002004 				BGE	L$155
   1218	002104	005000 				CLR	R$0
   1219	002106	004767 	000000G			JSR	PC,ERRPRT
   1220	002112	000444 				BR	L$181
   1221	002114	022626 			L$155:	CMP	(SP)+,(SP)+
   1222	002116	012700 	000075 		L$153:	MOV	#75,R$0
   1223	002122	004767 	000000G			JSR	PC,OUTC
   1224	002126	113700 	004116'			MOVB	@#PARTAB,R$0
   1225	002132	042700 	177770 			BIC	#177770,R$0
   1226	002136	062700 	000060 			ADD	#60,R$0
   1227	002142	004767 	000000G			JSR	PC,OUTC
   1228	002146	012700 	000054 			MOV	#54,R$0
   1229	002152	004767 	000000G			JSR	PC,OUTC
   1230	002156	113701 	004116'			MOVB	@#PARTAB,R$1
   1231	002162	006301 				ASL	R$1
   1232	002164	042701 	177760 			BIC	#177760,R$1
   1233	002170	016101 	004054'			MOV	INTREGS+16(R$1),R$1
   1234	002174	005401 				NEG	R$1
   1235	002176	063701 	004122'			ADD	@#PARTAB+4,R$1
   1236	002202	010167 	001644 			MOV	R$1,INTREGS+14
   1237	002206	010146 				MOV	R$1,-(SP)
   1238	002210	012746 	000006 		L$184:	MOV	#6,-(SP)
   1239	002214	004767 	000000G			JSR	PC,OUTN
   1240	002220	004767 	000000G			JSR	PC,EOL
   1241	002224	022626 			L$181:	CMP	(SP)+,(SP)+
   1242	002226	000207 				RTS	PC
   1243	002230	012700 	000016 		L$107:	MOV	#16,R$0
   1244	002234	000167 	000000G			JMP	ERRPRT
   1245	002240	012700 	000016 		L$108:	MOV	#16,R$0
   1246	002244	000167 	000000G			JMP	ERRPRT
   1247	002250	021227 	000001 		L$109:	CMP	@R$2,#1
   1248	002254	001403 				BEQ	L$159
   1249	002256	013701 	004122'			MOV	@#PARTAB+4,R$1
   1250	002262	000402 				BR	L$160
   1251	002264	013701 	004012'		L$159:	MOV	@#VIRTDOT,R$1
   1252	002270	012700 	000137 		L$160:	MOV	#137,R$0
   1253	002274	004767 	000000G			JSR	PC,OUTC
   1254	002300	013700 	004116'			MOV	@#PARTAB,R$0
   1255	002304	160100 				SUB	R$1,R$0
   1256	002306	162700 	000002 			SUB	#2,R$0
   1257	002312	010001 				MOV	R$0,R$1
   1258	002314	010146 				MOV	R$1,-(SP)
   1259	002316	012746 	000006 			MOV	#6,-(SP)
   1260	002322	004767 	000000G			JSR	PC,OUTN
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 25


   1262					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.50	ZPROC.B11	PAGE 1-23
   1263
   1264	002326	012700 	000040 			MOV	#40,R$0
   1265	002332	004767 	000000G			JSR	PC,OUTC
   1266	002336	012700 	000076 			MOV	#76,R$0
   1267	002342	004767 	000000G			JSR	PC,OUTC
   1268	002346	006201 				ASR	R$1
   1269	002350	010167 	001476 			MOV	R$1,INTREGS+14
   1270	002354	010116 				MOV	R$1,@SP
   1271	002356	012746 	000006 			MOV	#6,-(SP)
   1272	002362	004767 	000000G			JSR	PC,OUTN
   1273	002366	004767 	000000G			JSR	PC,EOL
   1274	002372	062706 	000006 			ADD	#6,SP
   1275	002376	000207 				RTS	PC
   1276	002400	011200 			L$110:	MOV	@R$2,R$0
   1277	002402	006300 				ASL	R$0
   1278	002404	066007 	002410'			ADD	L$161(R$0),PC
   1279	002410	000006 			L$161:	.WORD	L$163-L$161
   1280	002412	000036 				.WORD	L$164-L$161
   1281	002414	000070 				.WORD	L$165-L$161
   1282	002416	012701 	000007 		L$163:	MOV	#7,R$1
   1283	002422	010100 			L$166:	MOV	R$1,R$0
   1284	002424	006300 				ASL	R$0
   1285	002426	012760 	177777 	004054'		MOV	#177777,INTREGS+16(R$0)
   1286	002434	005060 	004074'			CLR	INTREGS+36(R$0)
   1287	002440	005301 				DEC	R$1
   1288	002442	002367 				BGE	L$166
   1289	002444	000207 				RTS	PC
   1290	002446	023727 	004116'	000007 	L$164:	CMP	@#PARTAB,#7
   1291	002454	101015 				BHI	L$188
   1292	002456	013701 	004116'			MOV	@#PARTAB,R$1
   1293	002462	006301 				ASL	R$1
   1294	002464	012761 	177777 	004054'		MOV	#177777,INTREGS+16(R$1)
   1295	002472	005061 	004074'			CLR	INTREGS+36(R$1)
   1296	002476	000207 				RTS	PC
   1297	002500	023727 	004116'	000007 	L$165:	CMP	@#PARTAB,#7
   1298	002506	101403 				BLOS	L$172
   1299	002510	005000 			L$188:	CLR	R$0
   1300	002512	000167 	000000G			JMP	ERRPRT
   1301	002516	013701 	004116'		L$172:	MOV	@#PARTAB,R$1
   1302	002522	006301 				ASL	R$1
   1303	002524	013761 	004122'	004054'		MOV	@#PARTAB+4,INTREGS+16(R$1)
   1304	002532	013761 	004124'	004074'		MOV	@#PARTAB+6,INTREGS+36(R$1)
   1305	002540	000207 			L$100:	RTS	PC
   1306	002542	012700 	000016 		L$111:	MOV	#16,R$0
   1307	002546	000167 	000000G			JMP	ERRPRT
   1308	002552	012700 	177777 		L$112:	MOV	#177777,R$0
   1309	002556	000167 	000000G			JMP	$SIGNL
   1310	002562	023737 	004052'	004116'	L$113:	CMP	@#INTREGS+14,@#PARTAB
   1311	002570	001763 				BEQ	L$100
   1312	002572	012700 	000015 			MOV	#15,R$0
   1313	002576	004767 	000000G			JSR	PC,ERRPRT
   1314	002602	000763 				BR	L$112
   1315
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 26


   1317					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.50	ZPROC.B11	PAGE 1-24
   1318
   1319					; ROUTINE SIZE:  389
   1320
   1321
   1322	002604				.PSECT
   1323
   1324	002604	000400 	001013 	001002 	P$AAE:	.WORD  400,1013,1002
   1325	002612	001002 	001002 	001403 		.WORD  1002,1002,1403
   1326	002620	001403 	002003 	003005 		.WORD  1403,2003,3005
   1327	002626	003006 	004007 	005011 		.WORD  3006,4007,5011
   1328	002634	000014 				.WORD  14
   1329	002636	000000 	000000 	001001 	P$AAF:	.WORD  0,0,1001
   1330	002644	002404 	001406 	001400 		.WORD  2404,1406,1400
   1331	002652	002001 	000002 	000000 		.WORD  2001,2,0
   1332	002660	000000 	000000 	000000 		.WORD  0,0,0
   1333	002666	000000 				.WORD  0
   1334	002670	001403 	000400 	000401 	P$AAG:	.WORD  1403,400,401
   1335	002676	000401 	000401 	000401 		.WORD  401,401,401
   1336	002704	000401 	000401 	001002 		.WORD  401,401,1002
   1337	002712	001002 	001001 	001402 		.WORD  1002,1001,1402
   1338	002720	000001 				.WORD  1
   1339	002722	001000 	000004 	000002 	P$AAH:	.WORD  1000,4,2
   1340
   1341
   1342
   1343					;     	0827	COMMENT ! OPENANDTYPE
   1344					;     	0828	!
   1345					;     	0829	! FUNCTION
   1346					;     	0830	!	OPEN AND TYPE A LOCATION IN THE CURRENT TYPEOUT FORMAT
   1347					;     	0831	!
   1348					;     	0832	! INPUTS
   1349					;     	0833	!	VRMODE	- ZERO IF IN TASK ADDRESS SPACE, NONZERO IF IN
   1350					;     	0834	!		REAL ADDRESS SPACE (AS FOR DOLLAR REGISTERS)
   1351					;     	0835	!	VIRTSEG	- SEGMENT-ID FOR ADDRESS
   1352					;     	0836	!	VIRTDOT	- ADDRESS
   1353					;     	0837	!	BWMODE	- OPEN LOCATION FORMAT
   1354					;     	0838	!		0 - NONE;  1 - BYTE;  2 - WORD
   1355					;     	0839	!
   1356					;     	0840	! OUTPUTS
   1357					;     	0841	!	LOCATION OPENED AND CONTENTS TYPED
   1358					;     	0842	!	VALUE	- NONE
   1359					;     	0843	!
   1360					;     	0844
   1361					;     	0845	ROUTINE OPENANDTYPE=
   1362					;     	0846	    BEGIN
   1363					;     	0847	    BIND
   1364					;     	0848		VECTOR REGIDS = UPLIT(
   1365					;     	0849		    "A","C","F","H","L","M","Q",
   1366					;     	0850		    "0R","1R","2R","3R","4R","5R","6R","7R"),
   1367					;     	0851		BYTVECT FORMCHAR = UPLIT
   1368					;     	0852		    "/\""'%%";
   1369					;     	0853	    LOCAL
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 27


   1371					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.52	ZPROC.B11	PAGE 1-25
   1372
   1373					;     	0854		C,
   1374					;     	0855		REG,
   1375					;     	0856		FORMAT,
   1376					;     	0857		VAL;
   1377					;     	0858
   1378					;     	0859	    ENABLE
   1379					;     	0860		SIGADR: (BWMODE=VRMODE=VIRTSEG=VIRTDOT=0;  NOVALUE)
   1380					;     	0861	    ELBANE;
   1381					;     	0862
   1382					;     	0863	    IF .VRMODE EQL 0
   1383					;     	0864	    THEN
   1384					;     	0865		BEGIN
   1385					;     	0866		OPENLOC(.VIRTSEG,.VIRTDOT AND NOT 1);
   1386					;     	0867		IF .VIRTDOT THEN REALDOT = .REALDOT + 1;
   1387					;     	0868		END
   1388					;     	0869	    ELSE
   1389					;     	0870		BEGIN
   1390					;     	0871		REALDOT = .VIRTDOT;
   1391					;     	0872		IF
   1392					;     	0873		    .REALDOT GEQU ARGREG AND
   1393					;     	0874		    .REALDOT LSSU RELOCV[8]
   1394					;     	0875		THEN
   1395					;     	0876		    C = .REGIDS[(.REALDOT-ARGREG)/2]
   1396					;     	0877		ELSE
   1397					;     	0878		    BEGIN
   1398					;     	0879		    BWMODE = VRMODE = 0;
   1399					;     	0880		    RETURN ERRPRT(NOSPEC)
   1400					;     	0881		    END
   1401					;     	0882		END;
   1402					;     	0883
   1403					;     	0884	    FORMAT = .FORM + .BWMODE<0,1>;
   1404					;     	0885
   1405					;     	0886	    VAL =
   1406					;     	0887		BEGIN
   1407					;     	0888		CASE .BWMODE OF
   1408					;     	0889		    SET
   1409					;     	0890
   1410					;     	0891		    RETURN NOVALUE;
   1411					;     	0892
   1412					;     	0893		    .(.REALDOT)<0,8>;
   1413					;     	0894
   1414					;     	0895		    ..REALDOT
   1415					;     	0896
   1416					;     	0897		    TES
   1417					;     	0898		END;
   1418					;     	0899
   1419					;     	0900	    IF .VRMODE EQL 0
   1420					;     	0901	    THEN
   1421					;     	0902		BEGIN
   1422					;     	0903		OUTN(.VIRTSEG,(IF .VIRTSEG<8,8> NEQ 0 THEN 6 ELSE 3));
   1423					;     	0904		OUTC(":");
   1424					;     	0905		IF
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 28


   1426					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.52	ZPROC.B11	PAGE 1-26
   1427
   1428					;     	0906		    (REG = SELRELREG(.VIRTSEG,.VIRTDOT)) LSS 0
   1429					;     	0907		    OR .FMTREG NEQ 0
   1430					;     	0908		THEN
   1431					;     	0909		    OUTN(.VIRTDOT,6)
   1432					;     	0910		ELSE
   1433					;     	0911		    BEGIN
   1434					;     	0912		    OUTN(.REG,1);
   1435					;     	0913		    OUTC(",");
   1436					;     	0914		    OUTN(.VIRTDOT - .RELOCV[.REG],6)
   1437					;     	0915		    END
   1438					;     	0916		END
   1439					;     	0917	    ELSE
   1440					;     	0918		BEGIN
   1441					;     	0919		OUTC("$");
   1442					;     	0920		OUTC(.C);
   1443					;     	0921		OUTC(.C<8,8>)
   1444					;     	0922		END;
   1445					;     	0923	    OUTC(.FORMCHAR[.FORMAT]);
   1446					;     	0924	    OUTC(" ");
   1447					;     	0925
   1448					;     	0926	    QUANREG = .VAL;
   1449					;     	0927
   1450					;     	0928	    CASE .FORMAT OF
   1451					;     	0929		SET
   1452					;     	0930
   1453					;     	0931		OUTN(.VAL,6);
   1454					;     	0932
   1455					;     	0933		OUTN(.VAL,3);
   1456					;     	0934
   1457					;     	0935		BEGIN
   1458					;     	0936		OUTC(.VAL);
   1459					;     	0937		OUTC(.VAL<8,8>)
   1460					;     	0938		END;
   1461					;     	0939
   1462					;     	0940		OUTC(.VAL);
   1463					;     	0941
   1464					;     	0942		OUTR50(.VAL);
   1465					;     	0943
   1466					;     	0944		OUTR50(.VAL)
   1467					;     	0945
   1468					;     	0946		TES;
   1469					;     	0947
   1470					;     	0948	    EOL();
   1471					;     	0949	    NOVALUE
   1472					;     	0950	    END;
   1473					;     	0951
   1474
   1475	002730				.PSECT
   1476
   1477
   1478	002730				OPENANDTYP:
   1479	002730	004167 	000000G			JSR	R$1,$SAV5
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 29


   1481					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.58	ZPROC.B11	PAGE 1-27
   1482
   1483	002734	162706 	000006 			SUB	#6,SP
   1484	002740	012700 	000006 			MOV	#6,R$0
   1485	002744	004767 	000000G			JSR	PC,$ENABL
   1486	002750	000040 				.WORD	L$195-L$194
   1487	002752	026727 	000000G	177776 	L$194:	CMP	SIGVAL,#177776
   1488	002760	001012 				BNE	L$196
   1489	002762	005067 	001024 			CLR	VIRTDOT
   1490	002766	005067 	001032 			CLR	VIRTSEG
   1491	002772	005067 	001134 			CLR	VRMODE
   1492	002776	005067 	001016 			CLR	BWMODE
   1493	003002	000167 	000630 			JMP	U$300
   1494	003006	000167 	000000G		L$196:	JMP	$SIGN1
   1495	003012	013705 	004012'		L$195:	MOV	@#VIRTDOT,R$5
   1496	003016	005737 	004132'			TST	@#VRMODE
   1497	003022	001017 				BNE	L$198
   1498	003024	013746 	004024'			MOV	@#VIRTSEG,-(SP)
   1499	003030	010546 				MOV	R$5,-(SP)
   1500	003032	042716 	000001 			BIC	#1,@SP
   1501	003036	004767 	000000G			JSR	PC,OPENLOC
   1502	003042	132737 	000001 	004012'		BITB	#1,@#VIRTDOT
   1503	003050	001402 				BEQ	L$199
   1504	003052	005267 	000000G			INC	REALDOT
   1505	003056	022626 			L$199:	CMP	(SP)+,(SP)+
   1506	003060	000431 				BR	L$206
   1507	003062	010567 	000000G		L$198:	MOV	R$5,REALDOT
   1508	003066	020527 	004036'			CMP	R$5,#INTREGS
   1509	003072	103412 				BLO	L$204
   1510	003074	022705 	004074'			CMP	#INTREGS+36,R$5
   1511	003100	101407 				BLOS	L$204
   1512	003102	162705 	004036'			SUB	#INTREGS,R$5
   1513	003106	006205 				ASR	R$5
   1514	003110	006305 				ASL	R$5
   1515	003112	016502 	003652'			MOV	P$AAI(R$5),R$2
   1516	003116	000412 				BR	L$206
   1517	003120	005067 	001006 		L$204:	CLR	VRMODE
   1518	003124	005067 	000670 			CLR	BWMODE
   1519	003130	012700 	000004 			MOV	#4,R$0
   1520	003134	004767 	000000G			JSR	PC,ERRPRT
   1521	003140	000167 	000464 			JMP	L$231
   1522	003144	013705 	004032'		L$206:	MOV	@#FORM,R$5
   1523	003150	005004 				CLR	R$4
   1524	003152	132737 	000001 	004020'		BITB	#1,@#BWMODE
   1525	003160	001401 				BEQ	L$207
   1526	003162	005204 				INC	R$4
   1527	003164	060405 			L$207:	ADD	R$4,R$5
   1528	003166	010503 				MOV	R$5,R$3
   1529	003170	013705 	004020'			MOV	@#BWMODE,R$5
   1530	003174	006305 				ASL	R$5
   1531	003176	066507 	003202'			ADD	L$208(R$5),PC
   1532	003202	000426 			L$208:	.WORD	L$231-L$208
   1533	003204	000006 				.WORD	L$211-L$208
   1534	003206	000016 				.WORD	L$212-L$208
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 30


   1536					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.58	ZPROC.B11	PAGE 1-28
   1537
   1538	003210	005004 			L$211:	CLR	R$4
   1539	003212	157704 	000000G			BISB	@REALDOT,R$4
   1540	003216	000402 				BR	L$209
   1541	003220	017704 	000000G		L$212:	MOV	@REALDOT,R$4
   1542	003224	005737 	004132'		L$209:	TST	@#VRMODE
   1543	003230	001103 				BNE	L$214
   1544	003232	013746 	004024'			MOV	@#VIRTSEG,-(SP)
   1545	003236	105737 	004025'			TSTB	@#VIRTSEG+1
   1546	003242	001403 				BEQ	L$216
   1547	003244	012746 	000006 			MOV	#6,-(SP)
   1548	003250	000402 				BR	L$217
   1549	003252	012746 	000003 		L$216:	MOV	#3,-(SP)
   1550	003256	004767 	000000G		L$217:	JSR	PC,OUTN
   1551	003262	012700 	000072 			MOV	#72,R$0
   1552	003266	004767 	000000G			JSR	PC,OUTC
   1553	003272	013716 	004024'			MOV	@#VIRTSEG,@SP
   1554	003276	013746 	004012'			MOV	@#VIRTDOT,-(SP)
   1555	003302	004767 	000402 			JSR	PC,SELRELREG
   1556	003306	010005 				MOV	R$0,R$5
   1557	003310	002403 				BLT	L$218
   1558	003312	005737 	004042'			TST	@#INTREGS+4
   1559	003316	001407 				BEQ	L$220
   1560	003320	013746 	004012'		L$218:	MOV	@#VIRTDOT,-(SP)
   1561	003324	012746 	000006 			MOV	#6,-(SP)
   1562	003330	004767 	000000G			JSR	PC,OUTN
   1563	003334	000436 				BR	L$221
   1564	003336	010546 			L$220:	MOV	R$5,-(SP)
   1565	003340	012746 	000001 			MOV	#1,-(SP)
   1566	003344	004767 	000000G			JSR	PC,OUTN
   1567	003350	012700 	000054 			MOV	#54,R$0
   1568	003354	004767 	000000G			JSR	PC,OUTC
   1569	003360	010566 	000002 			MOV	R$5,2(SP)
   1570	003364	006366 	000002 			ASL	2(SP)
   1571	003370	016605 	000002 			MOV	2(SP),R$5
   1572	003374	016566 	004054'	000002 		MOV	INTREGS+16(R$5),2(SP)
   1573	003402	005466 	000002 			NEG	2(SP)
   1574	003406	063766 	004012'	000002 		ADD	@#VIRTDOT,2(SP)
   1575	003414	016616 	000002 			MOV	2(SP),@SP
   1576	003420	012746 	000006 			MOV	#6,-(SP)
   1577	003424	004767 	000000G			JSR	PC,OUTN
   1578	003430	005726 				TST	(SP)+
   1579	003432	062706 	000012 		L$221:	ADD	#12,SP
   1580	003436	000414 				BR	L$222
   1581	003440	012700 	000044 		L$214:	MOV	#44,R$0
   1582	003444	004767 	000000G			JSR	PC,OUTC
   1583	003450	010200 				MOV	R$2,R$0
   1584	003452	004767 	000000G			JSR	PC,OUTC
   1585	003456	010200 				MOV	R$2,R$0
   1586	003460	105000 				CLRB	R$0
   1587	003462	000300 				SWAB	R$0
   1588	003464	004767 	000000G			JSR	PC,OUTC
   1589	003470	005000 			L$222:	CLR	R$0
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 31


   1591					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.58	ZPROC.B11	PAGE 1-29
   1592
   1593	003472	156300 	003644'			BISB	P$AAJ(R$3),R$0
   1594	003476	004767 	000000G			JSR	PC,OUTC
   1595	003502	012700 	000040 			MOV	#40,R$0
   1596	003506	004767 	000000G			JSR	PC,OUTC
   1597	003512	010467 	000334 			MOV	R$4,INTREGS+14
   1598	003516	010300 				MOV	R$3,R$0
   1599	003520	006300 				ASL	R$0
   1600	003522	066007 	003526'			ADD	L$223(R$0),PC
   1601	003526	000014 			L$223:	.WORD	L$225-L$223
   1602	003530	000024 				.WORD	L$226-L$223
   1603	003532	000042 				.WORD	L$227-L$223
   1604	003534	000060 				.WORD	L$228-L$223
   1605	003536	000070 				.WORD	L$229-L$223
   1606	003540	000070 				.WORD	L$229-L$223
   1607	003542	010446 			L$225:	MOV	R$4,-(SP)
   1608	003544	012746 	000006 			MOV	#6,-(SP)
   1609	003550	000403 				BR	L$234
   1610	003552	010446 			L$226:	MOV	R$4,-(SP)
   1611	003554	012746 	000003 			MOV	#3,-(SP)
   1612	003560	004767 	000000G		L$234:	JSR	PC,OUTN
   1613	003564	022626 				CMP	(SP)+,(SP)+
   1614	003566	000416 				BR	L$224
   1615	003570	010400 			L$227:	MOV	R$4,R$0
   1616	003572	004767 	000000G			JSR	PC,OUTC
   1617	003576	010400 				MOV	R$4,R$0
   1618	003600	105000 				CLRB	R$0
   1619	003602	000300 				SWAB	R$0
   1620	003604	000401 				BR	L$235
   1621	003606	010400 			L$228:	MOV	R$4,R$0
   1622	003610	004767 	000000G		L$235:	JSR	PC,OUTC
   1623	003614	000403 				BR	L$224
   1624	003616	010400 			L$229:	MOV	R$4,R$0
   1625	003620	004767 	000000G			JSR	PC,OUTR50
   1626	003624	004767 	000000G		L$224:	JSR	PC,EOL
   1627	003630	017767 	000000G	000000G	L$231:	MOV	@SIGREG,SIGREG
   1628	003636	062706 	000006 		U$300:	ADD	#6,SP
   1629	003642	000207 				RTS	PC
   1630
   1631					; ROUTINE SIZE:  230
   1632
   1633
   1634	003644				.PSECT
   1635
   1636	003644	056057 	023442 	022445 	P$AAJ:	.WORD  56057,23442,22445
   1637	003652	000101 	000103 	000106 	P$AAI:	.WORD  101,103,106
   1638	003660	000110 	000114 	000115 		.WORD  110,114,115
   1639	003666	000121 	051060 	051061 		.WORD  121,51060,51061
   1640	003674	051062 	051063 	051064 		.WORD  51062,51063,51064
   1641	003702	051065 	051066 	051067 		.WORD  51065,51066,51067
   1642
   1643
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 32


   1645					; BLIS11 V.74206	SUNDAY 13-APR-75 0:34.58	ZPROC.B11	PAGE 1-30
   1646
   1647
   1648					;     	0952	COMMENT ! SELRELREG(SEG,OFF)
   1649					;     	0953	!
   1650					;     	0954	! FUNCTION
   1651					;     	0955	!	SELECT A RELOCATION REGISTER FOR TYPEOUT
   1652					;     	0956	!
   1653					;     	0957	! INPUTS
   1654					;     	0958	!	SEG	- SEGMENT-ID
   1655					;     	0959	!	OFF	- ADDRESS
   1656					;     	0960	!
   1657					;     	0961	! OUTPUTS
   1658					;     	0962	!	VALUE	- RELOCATION REGISTER (-1 IF NONE)
   1659					;     	0963	!		WHOSE SEGMENT-ID MATCHES AND WHOSE CONTENTS
   1660					;     	0964	!		ARE CLOSEST TO AND LESS THAN THE ADDRESS
   1661					;     	0965	!
   1662					;     	0966
   1663					;     	0967	ROUTINE SELRELREG(SEG,OFF)=
   1664					;     	0968	    BEGIN
   1665					;     	0969	    LOCAL
   1666					;     	0970		REG,
   1667					;     	0971		DIST;
   1668					;     	0972
   1669					;     	0973	    DIST = REG = -1;
   1670					;     	0974	    DECR I FROM 7 TO 0 DO
   1671					;     	0975		BEGIN
   1672					;     	0976		IF
   1673					;     	0977		    .SEG EQL .RELOCS[.I] AND
   1674					;     	0978		    .OFF GEQU .RELOCV[.I] AND
   1675					;     	0979		    .OFF-.RELOCV[.I] LEQU .DIST
   1676					;     	0980		THEN
   1677					;     	0981		    BEGIN
   1678					;     	0982		    REG = .I;
   1679					;     	0983		    DIST = .OFF - .RELOCV[.I];
   1680					;     	0984		    END
   1681					;     	0985		END;
   1682					;     	0986	    .REG
   1683					;     	0987	    END;
   1684					;     	0988
   1685
   1686	003710				.PSECT
   1687
   1688
   1689	003710				SELRELREG:
   1690	003710	004167 	000000G			JSR	R$1,$SAV4
   1691	003714	012700 	177777 			MOV	#177777,R$0
   1692	003720	010003 				MOV	R$0,R$3
   1693	003722	012704 	000007 			MOV	#7,R$4
   1694	003726	010402 			L$240:	MOV	R$4,R$2
   1695	003730	006302 				ASL	R$2
   1696	003732	026662 	000016 	004074'		CMP	16(SP),INTREGS+36(R$2)
   1697	003740	001020 				BNE	L$243
   1698	003742	026662 	000014 	004054'		CMP	14(SP),INTREGS+16(R$2)
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 33


   1700					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.02	ZPROC.B11	PAGE 1-31
   1701
   1702	003750	103414 				BLO	L$243
   1703	003752	016601 	000014 			MOV	14(SP),R$1
   1704	003756	166201 	004054'			SUB	INTREGS+16(R$2),R$1
   1705	003762	020301 				CMP	R$3,R$1
   1706	003764	103406 				BLO	L$243
   1707	003766	010400 				MOV	R$4,R$0
   1708	003770	016601 	000014 			MOV	14(SP),R$1
   1709	003774	166201 	004054'			SUB	INTREGS+16(R$2),R$1
   1710	004000	010103 				MOV	R$1,R$3
   1711	004002	005304 			L$243:	DEC	R$4
   1712	004004	002350 				BGE	L$240
   1713	004006	000207 				RTS	PC
   1714
   1715					; ROUTINE SIZE:  32
   1716
   1717
   1718
   1719
   1720
   1721					;     	0989	END
   1722					;     	0990	ELUDOM
   1723
   1724
   1725	004010				ZPROC:
   1726
   1727					; ROUTINE SIZE:  0
   1728
   1729
   1730	004010				.PSECT
   1731
   1732	004010	004012'			ARGS: .=.+2
   1733	004012	004014'			VIRTDOT: .=.+2
   1734	004014	004016'			DEL: .=.+2
   1735	004016	004020'			NUM: .=.+2
   1736	004020	004022'			BWMODE: .=.+2
   1737	004022	004024'			PFLAG: .=.+2
   1738	004024	004026'			VIRTSEG: .=.+2
   1739	004026	004030'			TYPE: .=.+2
   1740	004030	004032'			COUNT: .=.+2
   1741	004032	004034'			FORM: .=.+2
   1742	004034	004036'			SAVEDOT: .=.+2
   1743	004036	000000 	000000 	000000 	INTREGS:	.WORD  0,0,0
   1744	004044	000000 	000000 	177777 		.WORD  0,0,177777
   1745	004052	000000 	177777 	177777 		.WORD  0,177777,177777
   1746	004060	177777 	177777 	177777 		.WORD  177777,177777,177777
   1747	004066	177777 	177777 	177777 		.WORD  177777,177777,177777
   1748	004074	000000 	000000 	000000 		.WORD  0,0,0
   1749	004102	000000 	000000 	000000 		.WORD  0,0,0
   1750	004110	000000 	000000 			.WORD  0,0
   1751	004114	004116'			CHARNDX: .=.+2
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 34


   1753					; BLIS11 V.74206	SUNDAY 13-APR-75 0:35.05	ZPROC.B11	PAGE 1-32
   1754
   1755	004116	004132'			PARTAB: .=.+14
   1756	004132	004134'			VRMODE: .=.+2
   1757					.GLOBL OUTN
   1758					.GLOBL OUTR50
   1759					.GLOBL REALDOT
   1760					.GLOBL CMLADR
   1761					.GLOBL ZAPPROC
   1762					.GLOBL COMAND
   1763					.GLOBL OUTC
   1764					.GLOBL BYTSXT
   1765					.GLOBL EOL
   1766					.GLOBL WRITBK
   1767					.GLOBL CMLLEN
   1768					.GLOBL ERRPRT
   1769					.GLOBL OPENLOC
   1770
   1771					.GLOBL $ENABL
   1772					.GLOBL $SIGN1
   1773					.GLOBL $SIGNL
   1774					.GLOBL $SAV5
   1775					.GLOBL $SAV4
   1776					.GLOBL $SAV2
   1777					.GLOBL SIGREG
   1778					.GLOBL SIGVAL
   1779
   1780
   1781
   1782
   1783
   1784
   1785
   1786
   1787
   1788					; SIZE:  946+124
   1789					; RUN TIME:  33 SECONDS
   1790					; CORE USED:  23K
   1791					; COMPILATION COMPLETE
   1792
   1793		000001 			.END
ZPROC	MACRO M1113  14-APR-81 11:47  PAGE 34-1
SYMBOL TABLE

ARGS    004010R  	L$122   001426R  	L$195   003012R  	L$3     000000R  	PFLAG   004022R
BWMODE  004020R  	L$126   001504R  	L$196   003006R  	L$30    000266R  	P$AAB   000632R
BYTSXT= ****** G 	L$13    000142R  	L$198   003062R  	L$33    000376R  	P$AAC   000646R
CHARND  004114R  	L$130   001516R  	L$199   003056R  	L$34    000340R  	P$AAD   000656R
CMLADR= ****** G 	L$131   001662R  	L$20    000254R  	L$38    000524R  	P$AAE   002604R
CMLLEN= ****** G 	L$132   001532R  	L$204   003120R  	L$44    000552R  	P$AAF   002636R
COMAND= ****** G 	L$133   001554R  	L$206   003144R  	L$47    000606R  	P$AAG   002670R
COUNT   004030R  	L$134   001600R  	L$207   003164R  	L$49    000610R  	P$AAH   002722R
DEL     004014R  	L$135   001612R  	L$208   003202R  	L$51    000562R  	P$AAI   003652R
EOL   = ****** G 	L$136   001624R  	L$209   003224R  	L$54    000544R  	P$AAJ   003644R
ERRPRT= ****** G 	L$137   001634R  	L$21    000310R  	L$60    000460R  	REALDO= ****** G
EXECUT  001172R  	L$138   001700R  	L$211   003210R  	L$62    000074R  	R$0   =%000000
FORM    004032R  	L$14    000146R  	L$212   003220R  	L$63    000262R  	R$1   =%000001
GETCHA  000706R  	L$143   001746R  	L$214   003440R  	L$64    000374R  	R$2   =%000002
GETNUM  001006R  	L$145   001764R  	L$216   003252R  	L$67    000724R  	R$3   =%000003
INTREG  004036R  	L$147   001774R  	L$217   003256R  	L$7     000624R  	R$4   =%000004
LOOKUP  001130R  	L$148   002002R  	L$218   003320R  	L$70    000752R  	R$5   =%000005
L$10    000176R  	L$15    000174R  	L$22    000404R  	L$71    001002R  	SAVEDO  004034R
L$100   002540R  	L$150   002056R  	L$220   003336R  	L$73    000774R  	SELREL  003710R
L$102   001312R  	L$153   002116R  	L$221   003432R  	L$74    001000R  	SIGREG= ****** G
L$103   001322R  	L$155   002114R  	L$222   003470R  	L$77    001050R  	SIGVAL= ****** G
L$104   001704R  	L$159   002264R  	L$223   003526R  	L$79    001052R  	TYPE    004026R
L$105   002020R  	L$16    000222R  	L$224   003624R  	L$8     000076R  	U$113   001126R
L$106   002034R  	L$160   002270R  	L$225   003542R  	L$85    001056R  	U$126   001170R
L$107   002230R  	L$161   002410R  	L$226   003552R  	L$88    001140R  	U$300   003636R
L$108   002240R  	L$163   002416R  	L$227   003570R  	L$89    001164R  	U$5     000574R
L$109   002250R  	L$164   002446R  	L$228   003606R  	L$9     000120R  	VIRTDO  004012R
L$11    000132R  	L$165   002500R  	L$229   003616R  	L$92    001160R  	VIRTSE  004024R
L$110   002400R  	L$166   002422R  	L$23    000414R  	L$97    001224R  	VRMODE  004132R
L$111   002542R  	L$172   002516R  	L$231   003630R  	L$99    001260R  	WRITBK= ****** G
L$112   002552R  	L$178   001406R  	L$234   003560R  	NUM     004016R  	ZAPPRO  000000RG
L$113   002562R  	L$181   002224R  	L$235   003610R  	OPENAN  002730R  	ZPROC   004010R
L$115   001434R  	L$184   002210R  	L$24    000424R  	OPENLO= ****** G 	$ENABL= ****** G
L$116   001344R  	L$188   002510R  	L$240   003726R  	OUTC  = ****** G 	$SAV2 = ****** G
L$118   001356R  	L$189   001656R  	L$243   004002R  	OUTN  = ****** G 	$SAV4 = ****** G
L$119   001370R  	L$19    000250R  	L$25    000434R  	OUTR50= ****** G 	$SAV5 = ****** G
L$12    000136R  	L$190   001652R  	L$26    000446R  	PARSE   000016R  	$SIGNL= ****** G
L$120   001400R  	L$191   001444R  	L$27    000454R  	PARTAB  004116R  	$SIGN1= ****** G
L$121   001416R  	L$194   002752R  	L$28    000470R

. ABS.	000000	   000
      	004134	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  1018 WORDS  ( 4 PAGES)
DYNAMIC MEMORY:  2518 WORDS  ( 9 PAGES)
ELAPSED TIME:  00:00:24
[62,10]ZPROC,[62,20]ZPROC/-SP/CR=[62,30]ZPROC.P11
ZPROC      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ARGS  	  004010 R	 9-430      21-1078   #33-1732   
BWMODE	  004020 R	 22-1111    22-1134   *22-1141    23-1157    23-1162    23-1166   *23-1181   *23-1195   *23-1197   
                        *29-1492   *29-1518    29-1524    29-1529   #33-1736   
BYTSXT	= ******  G	 23-1174    34-1764   
CHARND	  004114 R	*9-427      13-631    #33-1751   
CMLADR	= ******  G	 13-639     34-1760   
CMLLEN	= ******  G	 13-627     13-635     34-1767   
COMAND	= ******  G	 6-240      34-1762   
COUNT 	  004030 R	*9-434     *11-513     12-560     14-704    #33-1740   
DEL   	  004014 R	 11-534     15-717     16-781    #33-1734   
EOL   	= ******  G	 24-1240    25-1273    31-1626    34-1765   
ERRPRT	= ******  G	 11-547     21-1082    22-1108    22-1121    22-1139    24-1219    24-1244    24-1246    25-1300   
                         25-1307    25-1313    29-1520    34-1768   
EXECUT	  001172 R	 6-242     #21-1075   
FORM  	  004032 R	*23-1198   *23-1199    29-1522   #33-1741   
GETCHA	  000706 R	#13-625     15-718    
GETNUM	  001006 R	 9-438      11-533    #14-702    
INTREG	  004036 R	 10-494     11-500     11-528     11-530     11-540     12-554    *23-1201    23-1202    24-1233   
                        *24-1236   *25-1269   *25-1285   *25-1286   *25-1294   *25-1295   *25-1303   *25-1304    25-1310   
                         29-1508    29-1510    29-1512    30-1558    30-1572   *31-1597    32-1696    32-1698    33-1704   
                         33-1709   #33-1743   
LOOKUP	  001130 R	 10-471     11-543     12-564    #16-775    
L$10  	  000176 R	 10-452     10-454     10-456     10-467    #10-469    
L$100 	  002540 R	 21-1091    22-1133   #25-1305    25-1311   
L$102 	  001312 R	 21-1092   #22-1107   
L$103 	  001322 R	 21-1093   #22-1109   
L$104 	  001704 R	 21-1094   #23-1183   
L$105 	  002020 R	 21-1095   #23-1201   
L$106 	  002034 R	 22-1099   #23-1204   
L$107 	  002230 R	 22-1100   #24-1243   
L$108 	  002240 R	 22-1101   #24-1245   
L$109 	  002250 R	 22-1102   #24-1247   
L$11  	  000132 R	 10-446    #10-451    
L$110 	  002400 R	 22-1103   #25-1276   
L$111 	  002542 R	 22-1104   #25-1306   
L$112 	  002552 R	 22-1105   #25-1308    25-1314   
L$113 	  002562 R	 22-1106   #25-1310   
L$115 	  001434 R	 22-1110    22-1122    22-1127    22-1129   #22-1131   
L$116 	  001344 R	 22-1114   #22-1115    22-1115    22-1116    22-1117    22-1118    22-1119   
L$118 	  001356 R	 22-1115   #22-1120   
L$119 	  001370 R	 22-1116   #22-1123   
L$12  	  000136 R	 10-447    #10-453    
L$120 	  001400 R	 22-1117   #22-1125   
L$121 	  001416 R	 22-1118   #22-1128   
L$122 	  001426 R	 22-1119   #22-1130   
L$126 	  001504 R	 22-1135    22-1137   #22-1143   
L$13  	  000142 R	 10-448    #10-455    
L$130 	  001516 R	 22-1146   #22-1147    22-1147    22-1148    22-1149    22-1150    23-1154    23-1155   
L$131 	  001662 R	 23-1160    23-1164    23-1172   #23-1179   
L$132 	  001532 R	 22-1147   #23-1156   
L$133 	  001554 R	 22-1148   #23-1161   
L$134 	  001600 R	 22-1149   #23-1165   
ZPROC      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

L$135 	  001612 R	 22-1150   #23-1168   
L$136 	  001624 R	 23-1154   #23-1171   
L$137 	  001634 R	 23-1155   #23-1173   
L$138 	  001700 R	 23-1180   #23-1182   
L$14  	  000146 R	 10-449    #10-457    
L$143 	  001746 R	 23-1184   #23-1191   
L$145 	  001764 R	 23-1192   #23-1195   
L$147 	  001774 R	 23-1194   #23-1197   
L$148 	  002002 R	 23-1196   #23-1198   
L$15  	  000174 R	 10-450    #10-468    
L$150 	  002056 R	 23-1205   #24-1211   
L$153 	  002116 R	 24-1212   #24-1222   
L$155 	  002114 R	 24-1217   #24-1221   
L$159 	  002264 R	 24-1248   #24-1251   
L$16  	  000222 R	 10-474    #10-475     10-475     10-476     10-477     10-478     10-479     10-480     10-481    
                         10-482     10-483     10-484     10-485    
L$160 	  002270 R	 24-1250   #24-1252   
L$161 	  002410 R	 25-1278   #25-1279    25-1279    25-1280    25-1281   
L$163 	  002416 R	 25-1279   #25-1282   
L$164 	  002446 R	 25-1280   #25-1290   
L$165 	  002500 R	 25-1281   #25-1297   
L$166 	  002422 R	#25-1283    25-1288   
L$172 	  002516 R	 25-1298   #25-1301   
L$178 	  001406 R	 22-1124   #22-1126   
L$181 	  002224 R	 24-1220   #24-1241   
L$184 	  002210 R	 23-1203   #24-1238   
L$188 	  002510 R	 25-1291   #25-1299   
L$189 	  001656 R	 23-1167   #23-1178   
L$19  	  000250 R	 10-476    #10-486    
L$190 	  001652 R	 23-1170   #23-1177   
L$191 	  001444 R	 22-1132   #22-1134   
L$194 	  002752 R	 29-1486   #29-1487   
L$195 	  003012 R	 29-1486   #29-1495   
L$196 	  003006 R	 29-1488   #29-1494   
L$198 	  003062 R	 29-1497   #29-1507   
L$199 	  003056 R	 29-1503   #29-1505   
L$20  	  000254 R	 10-477    #10-488    
L$204 	  003120 R	 29-1509    29-1511   #29-1517   
L$206 	  003144 R	 29-1506    29-1516   #29-1522   
L$207 	  003164 R	 29-1525   #29-1527   
L$208 	  003202 R	 29-1531   #29-1532    29-1532    29-1533    29-1534   
L$209 	  003224 R	 30-1540   #30-1542   
L$21  	  000310 R	 10-478    #11-502    
L$211 	  003210 R	 29-1533   #30-1538   
L$212 	  003220 R	 29-1534   #30-1541   
L$214 	  003440 R	 30-1543   #30-1581   
L$216 	  003252 R	 30-1546   #30-1549   
L$217 	  003256 R	 30-1548   #30-1550   
L$218 	  003320 R	 30-1557   #30-1560   
L$22  	  000404 R	 10-479     11-501    #11-519    
L$220 	  003336 R	 30-1559   #30-1564   
L$221 	  003432 R	 30-1563   #30-1579   
ZPROC      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

L$222 	  003470 R	 30-1580   #30-1589   
L$223 	  003526 R	 31-1600   #31-1601    31-1601    31-1602    31-1603    31-1604    31-1605    31-1606   
L$224 	  003624 R	 31-1614    31-1623   #31-1626   
L$225 	  003542 R	 31-1601   #31-1607   
L$226 	  003552 R	 31-1602   #31-1610   
L$227 	  003570 R	 31-1603   #31-1615   
L$228 	  003606 R	 31-1604   #31-1621   
L$229 	  003616 R	 31-1605    31-1606   #31-1624   
L$23  	  000414 R	 10-480    #11-521    
L$231 	  003630 R	 29-1521    29-1532   #31-1627   
L$234 	  003560 R	 31-1609   #31-1612   
L$235 	  003610 R	 31-1620   #31-1622   
L$24  	  000424 R	 10-481    #11-523    
L$240 	  003726 R	#32-1694    33-1712   
L$243 	  004002 R	 32-1697    33-1702    33-1706   #33-1711   
L$25  	  000434 R	 10-482    #11-525    
L$26  	  000446 R	 10-483    #11-528    
L$27  	  000454 R	 10-484    #11-530    
L$28  	  000470 R	 10-485    #11-533    
L$3   	  000000 R	#6-240      6-243     
L$30  	  000266 R	 10-489    #10-492    
L$33  	  000376 R	 11-504    #11-517    
L$34  	  000340 R	#11-508     11-512    
L$38  	  000524 R	 11-535    #11-542    
L$44  	  000552 R	 11-545    #11-549    
L$47  	  000606 R	 12-559    #12-562    
L$49  	  000610 R	 12-561    #12-563    
L$51  	  000562 R	 11-541    #12-555    
L$54  	  000544 R	 10-491     11-518    #11-547    
L$60  	  000460 R	 11-527     11-529    #11-531    
L$62  	  000074 R	#9-437      10-487    
L$63  	  000262 R	#10-490     11-537    
L$64  	  000374 R	#11-516     12-557    
L$67  	  000724 R	 13-628    #13-631    
L$7   	  000624 R	 11-548    #12-566    
L$70  	  000752 R	 13-636    #13-639    
L$71  	  001002 R	 13-630     13-638    #13-648    
L$73  	  000774 R	 13-642    #13-645    
L$74  	  001000 R	 13-644    #13-647    
L$77  	  001050 R	 14-707    #15-716    
L$79  	  001052 R	 14-712    #15-717    
L$8   	  000076 R	#9-438      11-516     11-520     11-522     11-524     11-532    
L$85  	  001056 R	#15-718     15-733    
L$88  	  001140 R	#16-779     16-787    
L$89  	  001164 R	 16-780    #16-788    
L$9   	  000120 R	 10-445    #10-446     10-446     10-447     10-448     10-449     10-450    
L$92  	  001160 R	 16-782    #16-786    
L$97  	  001224 R	 21-1080   #21-1083   
L$99  	  001260 R	 21-1090   #21-1091    21-1091    21-1092    21-1093    21-1094    21-1095    22-1099    22-1100   
                         22-1101    22-1102    22-1103    22-1104    22-1105    22-1106   
NUM   	  004016 R	 9-439      14-705    #33-1735   
OPENAN	  002730 R	 23-1182    23-1200   #28-1478   
ZPROC      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

OPENLO	= ******  G	 29-1501    34-1769   
OUTC  	= ******  G	 24-1223    24-1227    24-1229    24-1253    25-1265    25-1267    30-1552    30-1568    30-1582   
                         30-1584    30-1588    31-1594    31-1596    31-1616    31-1622    34-1763   
OUTN  	= ******  G	 24-1239    24-1260    25-1272    30-1550    30-1562    30-1566    30-1577    31-1612    34-1757   
OUTR50	= ******  G	 31-1625    34-1758   
PARSE 	  000016 R	 6-241     #9-424     
PARTAB	  004116 R	 9-428      9-429      11-505     11-506     22-1123    22-1125    22-1128    22-1130    23-1185   
                         23-1186    23-1201   *24-1209   *24-1210    24-1213    24-1214   *24-1216    24-1224    24-1230   
                         24-1235    24-1249    24-1254    25-1290    25-1292    25-1297    25-1301    25-1303    25-1304   
                         25-1310   #34-1755   
PFLAG 	  004022 R	*9-431     *11-531    *12-556     14-706    *14-708     23-1188   #33-1737   
P$AAB 	  000632 R	 10-470    #12-574    
P$AAC 	  000646 R	 11-542    #12-576    
P$AAD 	  000656 R	 12-563    #12-578    
P$AAE 	  002604 R	 21-1087   #26-1324   
P$AAF 	  002636 R	 21-1086   #26-1329   
P$AAG 	  002670 R	 21-1079   #26-1334   
P$AAH 	  002722 R	 23-1199   #26-1339   
P$AAI 	  003652 R	 29-1515   #31-1637   
P$AAJ 	  003644 R	 31-1593   #31-1636   
REALDO	= ******  G	 22-1123    22-1125    22-1128    22-1130    23-1169    23-1171    23-1173   *29-1504   *29-1507   
                         30-1539    30-1541    34-1759   
R$0   	=%000000	#6-229     *10-470    *10-472    *10-473     10-474    *10-490    *11-517    *11-542     11-544    
                        *11-546    *12-563     12-565    *13-629    *13-632    *13-633     13-634     13-635    *13-637    
                        *13-639    *13-640     13-641     13-646    *13-647     15-719     15-720    *15-725    *15-726    
                        *15-727    *15-728    *15-729    *15-730     15-731     16-777    *16-783    *16-784    *16-788    
                        *21-1077    21-1079   *21-1081   *21-1083   *21-1084    21-1086    21-1087   *21-1087   *21-1088   
                        *21-1089    21-1090   *22-1107   *22-1111   *22-1112   *22-1113    22-1114   *22-1120   *22-1138   
                        *22-1143   *22-1144   *22-1145    22-1146   *23-1165   *23-1166   *23-1168   *23-1169   *23-1173   
                        *23-1175   *23-1176   *23-1177    23-1178   *23-1188   *23-1189    23-1190    24-1216   *24-1218   
                        *24-1222   *24-1224   *24-1225   *24-1226   *24-1228   *24-1243   *24-1245   *24-1252   *24-1254   
                        *24-1255   *24-1256    24-1257   *25-1264   *25-1266   *25-1276   *25-1277    25-1278   *25-1283   
                        *25-1284    25-1285    25-1286   *25-1299   *25-1306   *25-1308   *25-1312   *29-1484   *29-1519   
                        *30-1551    30-1556   *30-1567   *30-1581   *30-1583   *30-1585   *30-1586   *30-1587   *30-1589   
                        *31-1593   *31-1595   *31-1598   *31-1599    31-1600   *31-1615   *31-1617   *31-1618   *31-1619   
                        *31-1621   *31-1624   *32-1691    32-1692   *33-1707   
R$1   	=%000001	#6-230     *9-425     *9-428      9-437      10-451     10-453     10-455     10-457     10-461    
                         10-466     10-468     10-486     10-488     10-492     11-498     11-500     11-514     13-626    
                        *13-631     13-632     13-634     13-640    *13-643    *13-645    *13-646     13-647    *13-648    
                        *14-703    *15-717     15-719    *16-776    *16-778     16-779     16-781     16-783    *16-786    
                        *21-1076   *21-1085   *21-1086    22-1131    22-1136    22-1143   *23-1156   *23-1157    23-1158   
                         23-1159    23-1191    23-1199   *24-1230   *24-1231   *24-1232    24-1233   *24-1233   *24-1234   
                        *24-1235    24-1236    24-1237   *24-1249   *24-1251    24-1255   *24-1257    24-1258   *25-1268   
                         25-1269    25-1270   *25-1282    25-1283   *25-1287   *25-1292   *25-1293    25-1294    25-1295   
                        *25-1301   *25-1302    25-1303    25-1304   *28-1479   *32-1690   *33-1703   *33-1704    33-1705   
                        *33-1708   *33-1709    33-1710   
R$2   	=%000002	#6-231     *10-443    *10-444     10-445    *10-460    *10-461    *10-462    *10-463    *10-464    
                        *10-465     10-466    *10-492    *10-493     10-494    *11-498    *11-499     11-500    *11-507    
                        *11-511    *11-538    *11-539    *11-540    *11-549    *12-553    *12-554     12-555    *14-704    
                         14-709     14-711     15-732    *16-777     16-778     16-784    *21-1078    21-1079    22-1109   
                         23-1183    23-1204    24-1211    24-1247    25-1276   *29-1515    30-1583    30-1585   *32-1694   
                        *32-1695    32-1696    32-1698    33-1704    33-1709   
ZPROC      CREATED BY  MACRO  ON 14-APR-81 AT 11:47	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

R$3   	=%000003	#6-232     *9-439      10-451     10-453     10-455     10-465     11-526     11-528     11-530    
                         11-536     11-538     11-544     11-549     12-555    *14-705     15-716     15-725     15-731    
                        *29-1528    31-1593    31-1598   *32-1692    33-1705   *33-1710   
R$4   	=%000004	#6-233     *9-430      9-432      11-502     11-503     12-558     12-562    *14-709    *14-710    
                         14-711    *15-720     15-721     15-723     15-729    *29-1523   *29-1526    29-1527   *30-1538   
                        *30-1539   *30-1541    31-1597    31-1607    31-1610    31-1615    31-1617    31-1621    31-1624   
                        *32-1693    32-1694    33-1707   *33-1711   
R$5   	=%000005	#6-234     *9-429      9-436      10-486     10-494     11-515     11-525    *29-1495    29-1499   
                         29-1507    29-1508    29-1510   *29-1512   *29-1513   *29-1514    29-1515   *29-1522   *29-1527   
                         29-1528   *29-1529   *29-1530    29-1531   *30-1556    30-1564    30-1569   *30-1571    30-1572   
SAVEDO	  004034 R	*23-1158   *23-1161   *23-1162    23-1163    23-1165   *23-1186    23-1187   #33-1742   
SELREL	  003710 R	 24-1215    30-1555   #32-1689   
SIGREG	= ******  G	 31-1627   *31-1627    34-1777   
SIGVAL	= ******  G	 29-1487    34-1778   
TYPE  	  004026 R	*9-426     *12-565     21-1077    21-1083   #33-1739   
U$113 	  001126 R	 15-722     15-724    #15-734    
U$126 	  001170 R	#16-789    
U$300 	  003636 R	 29-1493   #31-1628   
U$5   	  000574 R	 10-475    #12-558    
VIRTDO	  004012 R	 11-526     23-1156   *23-1159    23-1161   *23-1163    23-1168   *23-1171    23-1176   *23-1178   
                         23-1179   *23-1187    23-1193    24-1210    24-1251   *29-1489    29-1495    29-1502    30-1554   
                         30-1560    30-1574   #33-1733   
VIRTSE	  004024 R	 11-525    *23-1185    24-1209   *29-1490    29-1498    30-1544    30-1545    30-1553   #33-1738   
VRMODE	  004132 R	 22-1112   *22-1140   *23-1190   *29-1491    29-1496   *29-1517    30-1542   #34-1756   
WRITBK	= ******  G	*22-1126    34-1766   
ZAPPRO	  000000 RG	#6-239      34-1761   
ZPROC 	  004010 R	#33-1725   
$ENABL	= ******  G	 29-1485    34-1771   
$SAV2 	= ******  G	 16-776     21-1076    34-1776   
$SAV4 	= ******  G	 14-703     32-1690    34-1775   
$SAV5 	= ******  G	 9-425      28-1479    34-1774   
$SIGNL	= ******  G	 25-1309    34-1773   
$SIGN1	= ******  G	 29-1494    34-1772   
ZCLOSE	MACRO M1113  14-APR-81 11:47
TABLE OF CONTENTS

     2-   43	FCSCLOSE -- CLOSE FILES AND EXIT
ZCLOSE	MACRO M1113  14-APR-81 11:47  PAGE 1


      1						.TITLE	ZCLOSE
      2						.IDENT	/000002/
      3
      4					;+
      5					;
      6					; COPYRIGHT 1975
      7					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
      8					;
      9					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
     10					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
     11					; EQUIPMENT CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES
     12					; NO RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
     13					;
     14					; THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO PURCHASER
     15					; UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE
     16					; COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR
     17					; USE IN SUCH SYSTEM, EXCEPT AS MAY BE OTHERWISE BE PROVIDED IN
     18					; WRITING BY DIGITAL.
     19					;
     20					; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE
     21					; USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT
     22					; SUPPLIED BY DIGITAL EQUIPMENT CORPORATION.
     23					;
     24					;
     25					; WRITTEN BY
     26					;	M. JACK
     27					;
     28					; MODULE FUNCTION
     29					;	I/O SERVICES FOR THE TASK IMAGE PATCHING UTILITY
     30					;
     31					;-
     32
     33
     34					;+
     35					;	GLOBAL DEFINITIONS
     36					;-
     37
     38						.MCALL	CLOSE$,	EXIT$S,	FDOF$L,	FCSBT$,	CALL
     39
     40	000000					FDOF$L
     41	000000					FCSBT$
ZCLOSE	MACRO M1113  14-APR-81 11:47  PAGE 2
FCSCLOSE -- CLOSE FILES AND EXIT

     43						.SBTTL	FCSCLOSE -- CLOSE FILES AND EXIT
     44
     45					;+
     46					;
     47					; GLOBAL ROUTINE FCSCLOSE
     48					;
     49					; FUNCTION
     50					;	CLOSE FILES AND EXIT
     51					;
     52					; INPUTS
     53					;	NONE
     54					;
     55					; OUTPUTS
     56					;	NONE
     57					;
     58					;-
     59
     60	000000				FCSCLOSE::
     61	000000					CALL	REWRIT		; REWRITE BLOCK IF MODIFIED
     62	000004					CLOSE$	#CMLBLK		; CLOSE COMMAND INPUT FILE
     63	000014	012701 	000000G			MOV	#SAVRAT,R1	; POINT TO ATTRIBUTE SAVE AREA
     64	000020	012702 	000000G			MOV	#TSKFDB,R2	; POINT TO FDB
     65	000024	012703 	000007 			MOV	#S.FATT/2,R3	; WORD COUNT
     66	000030	012122 			1$:	MOV	(R1)+,(R2)+	; COPY BACK RECORD ATTRIBUTES
     67	000032	005303 				DEC	R3		;
     68	000034	001375 				BNE	1$		;
     69	000036					CLOSE$	#TSKFDB		; CLOSE TASK IMAGE FILE
     70	000046	103002 				BCC	2$		; CHECK FOR ERRORS
     71	000050	000167 	000000G			JMP	TSKERR		;
     72	000054				2$:	CLOSE$	#OUTFDB		; CLOSE MESSAGE FILE
     73	000064				ABORT::	EXIT$S			; EXIT
     74
     75		000001 				.END
ZCLOSE	MACRO M1113  14-APR-81 11:47  PAGE 2-1
SYMBOL TABLE

ABORT   000064RG 	FD.SQD= 000040   	F.EFN = 000050   	F.STBK= 000036   	N.STAT= 000020
CMLBLK= ****** GX	FD.TTY= 000004   	F.EOBB= 000032   	F.UNIT= 000136   	N.UNIT= 000034
FA.APD= 000100   	FD.WBH= 000002   	F.ERR = 000052   	F.URBD= 000020   	OUTFDB= ****** GX
FA.CRE= 000010   	FO.APD= 000106   	F.FACC= 000043   	F.VBN = 000064   	PAR$$$= 000027
FA.EXT= 000004   	FO.MFY= 000002   	F.FFBY= 000014   	F.VBSZ= 000060   	REWRIT= ****** GX
FA.NSP= 000100   	FO.RD = 000001   	F.FNAM= 000110   	NB.DEV= 000200   	R.FIX = 000001
FA.RD = 000001   	FO.UPD= 000006   	F.FNB = 000102   	NB.DIR= 000100   	R.VAR = 000002
FA.SHR= 000040   	FO.WRT= 000016   	F.FTYP= 000116   	NB.NAM= 000004   	SAVRAT= ****** GX
FA.TMP= 000020   	F.ALOC= 000040   	F.FVER= 000120   	NB.SD1= 000400   	S.FATT= 000016
FA.WRT= 000002   	F.BBFS= 000062   	F.HIBK= 000004   	NB.SD2= 001000   	S.FDB = 000140
FCSCLO  000000RG 	F.BDB = 000070   	F.LUN = 000042   	NB.SNM= 000040   	S.FNAM= 000006
FD.BLK= 000010   	F.BGBC= 000057   	F.MBCT= 000054   	NB.STP= 000020   	S.FNB = 000036
FD.CCL= 000002   	F.BKDN= 000026   	F.MBC1= 000055   	NB.SVR= 000010   	S.FNBW= 000017
FD.CR = 000002   	F.BKDS= 000020   	F.MBFG= 000056   	NB.TYP= 000002   	S.FNTY= 000004
FD.DIR= 000010   	F.BKEF= 000050   	F.NRBD= 000024   	NB.VER= 000001   	S.FTYP= 000002
FD.FTN= 000001   	F.BKP1= 000051   	F.NREC= 000030   	N.DID = 000024   	S.NFEN= 000020
FD.INS= 000010   	F.BKST= 000024   	F.OVBS= 000030   	N.DVNM= 000032   	TSKERR= ****** GX
FD.PLC= 000004   	F.BKVB= 000064   	F.RACC= 000016   	N.FID = 000000   	TSKFDB= ****** GX
FD.RAH= 000001   	F.CNTG= 000034   	F.RATT= 000001   	N.FNAM= 000006   	$$    = 000067
FD.RAN= 000002   	F.DFNB= 000046   	F.RCNM= 000034   	N.FTYP= 000014   	.CLOSE= ****** G
FD.REC= 000001   	F.DSPT= 000044   	F.RCTL= 000017   	N.FVER= 000016   	...GBL= 000000
FD.RWM= 000001   	F.DVNM= 000134   	F.RSIZ= 000002   	N.NEXT= 000022   	...TPC= 000140
FD.SDI= 000020   	F.EFBK= 000010   	F.RTYP= 000000

. ABS.	000000	   000
      	000072	   001
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  2155 WORDS  ( 9 PAGES)
DYNAMIC MEMORY:  3574 WORDS  ( 13 PAGES)
ELAPSED TIME:  00:00:11
[62,10]ZCLOSE,[62,20]ZCLOSE/-SP/CR=[62,30]ZCLOSE
ZCLOSE     CREATED BY  MACRO  ON 14-APR-81 AT 11:48	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ABORT 	  000064 RG	#2-73      
CMLBLK	= ******  GX	 2-62       2-62      
FCSCLO	  000000 RG	#2-60      
OUTFDB	= ******  GX	 2-72       2-72      
PAR$$$	= 000027	#2-62       2-62      #2-69       2-69      #2-72       2-72      
REWRIT	= ******  GX	 2-61       2-61      
SAVRAT	= ******  GX	 2-63      
S.FATT	= 000016	 2-65      
TSKERR	= ******  GX	 2-71      
TSKFDB	= ******  GX	 2-64       2-69       2-69      
$$    	= 000067	#2-61       2-61      
.CLOSE	= ******  G	 2-62       2-62       2-69       2-69       2-72       2-72      
ZCLOSE     CREATED BY  MACRO  ON 14-APR-81 AT 11:48	PAGE 2

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

CALL  		#1-38       2-61      #2-62      #2-69      #2-72      
CLOSE$		#1-38       2-62       2-69       2-72      
DIR$  		#2-73      #2-73      
ERR$  		#2-62      #2-62      #2-69      #2-69      #2-72      #2-72      #2-73      
EXIT$S		#1-38      #2-73      
FCSBT$		#1-38       1-41      
FDOFF$		#1-40      #1-40      
FDOF$L		#1-38      #1-40      
LDFDB$		#2-62       2-62      #2-69       2-69      #2-72       2-72