Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/tkb-vnp/msgh.bpt
There are no other files named msgh.bpt in the archive.
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

   1	!<TKB-VNP>MSGH.BLI.3, 13-Jun-79 07:32:59, Edit by SROBINSON
   2	!<SAUTER.TKB20>MSGH.BLI.33, 17-Nov-78 16:10:20, Edit by SROBINSON
   3	!<SAUTER.TKB20>MSGH.BLI.32, 28-Sep-78 11:40:01, Edit by SROBINSON
   4	!<SAUTER.VNP20>MSGH.BLI.30, 28-Sep-78 07:55:53, Edit by SROBINSON
   5	!<SAUTER.VNP20>MSGH.BLI.28, 28-Sep-78 07:34:15, Edit by SROBINSON
   6	MODULE MSGH (					! PRINT MESSAGES
   7			IDENT = 'X0.2'
   8			) =
   9	BEGIN
  10	!
  11	!
  12	!
  13	! COPYRIGHT (C) 1978, 1979 BY
  14	! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
  15	!
  16	!
  17	! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
  18	! ONLY  IN  ACCORDANCE  WITH  THE  TERMS  OF  SUCH LICENSE AND WITH THE
  19	! INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE OR ANY  OTHER
  20	! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY
  21	! OTHER PERSON.  NO TITLE TO AND OWNERSHIP OF THE  SOFTWARE  IS  HEREBY
  22	! TRANSFERRED.
  23	!
  24	!
  25	! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT  NOTICE
  26	! AND  SHOULD  NOT  BE  CONSTRUED  AS A COMMITMENT BY DIGITAL EQUIPMENT
  27	! CORPORATION.
  28	!
  29	! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY  OF  ITS
  30	! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
  31	!
  32	
  33	!++
  34	! FACILITY: TKB-20 AND VNP-20
  35	!
  36	! ABSTRACT:
  37	!
  38	!
  39	! THIS MODULE HANDLES PRINTING OF MESSAGES
  40	!
  41	!
  42	! ENVIRONMENT: TOPS-20 USER MODE
  43	!
  44	! AUTHOR: J. SAUTER, CREATION DATE: 14-DEC-77
  45	!
  46	! MODIFIED BY:
  47	!
  48	!	Scott G. Robinson, 28-SEP-78 : VERSION X0.1-2A
  49	!	- Fix bug with base 0 conversion diagnosis in OUTNUM
  50	!
  51	!	Scott G. Robinson, 13-JUN-79 : VERSION X0.2
  52	!	- Make all fatal errors terminate the program
  53	!
  54	!	, : VERSION
  55	! 01	-
  56	!--
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

  57	
  58	!<BLF/PAGE>
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

  59	!
  60	! TABLE OF CONTENTS:
  61	!
  62	
  63	FORWARD ROUTINE
  64	    PCRLF : NOVALUE,				!PRINT CRLF (GLOBAL)
  65	    OUTSTR : NOVALUE,				!PRINT STRING (GLOBAL)
  66	    OUTNUM : NOVALUE,				!PRINT NUMBER
  67	    ERR_OUTSTR : NOVALUE,			!PRINT STRING WITH EDITING
  68	    ERRMSG : NOVALUE;				!PRINT ERROR MESSAGE
  69	
  70	!
  71	! INCLUDE FILES:
  72	!
  73	!	NONE
  74	!
  75	! MACROS:
  76	!
  77	!	NONE
  78	!
  79	!
  80	! EQUATED SYMBOLS:
  81	!
  82	!	NONE
  83	!
  84	! OWN STORAGE:
  85	!
  86	!	NONE
  87	!
  88	! EXTERNAL REFERENCES:
  89	!
  90	
  91	EXTERNAL ROUTINE
  92	    OUTPUT : NOVALUE,				!SEND CHARS TO I/O DEVICE
  93	    STOP_PROGRAM : NOVALUE;			!TERMINATE PROGRAM EXECUTION
  94	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

  95	GLOBAL ROUTINE PCRLF (CHAN) : NOVALUE = 	! PRINT CRLF
  96	
  97	!++
  98	! FUNCTIONAL DESCRIPTION:
  99	!
 100	!	PRINT CR AND LF
 101	!
 102	! FORMAL PARAMETERS:
 103	!
 104	!	CHAN - THE CHANNEL ON WHICH TO SEND CRLF
 105	!
 106	! IMPLICIT INPUTS:
 107	!
 108	!	NONE
 109	!
 110	! IMPLICIT OUTPUTS:
 111	!
 112	!	NONE
 113	!
 114	! ROUTINE VALUE:
 115	!
 116	!	NONE
 117	!
 118	! SIDE EFFECTS
 119	!
 120	!	WRITES A CRLF ON THE INDICATED I/O DEVICE
 121	!
 122	!--
 123	
 124	    BEGIN
 125	    OUTPUT (.CHAN, %O'15');
 126	    OUTPUT (.CHAN, %O'12');
 127	    END;
 128	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 129	GLOBAL ROUTINE OUTSTR (CHAN, MESSAGE) : NOVALUE = 	!PRINT STRING
 130	
 131	!++
 132	! FUNCTIONAL DESCRIPTION:
 133	!
 134	!	PRINT A STRING TERMINATED WITH A NULL
 135	!
 136	! FORMAL PARAMETERS:
 137	!
 138	!	CHAN - THE CHANNEL OVER WHICH TO SEND THE STRING
 139	!	MESSAGE - POINTER TO THE STRING
 140	!
 141	! IMPLICIT INPUTS:
 142	!
 143	!	NONE
 144	!
 145	! IMPLICIT OUTPUTS:
 146	!
 147	!	NONE
 148	!
 149	! ROUTINE VALUE:
 150	!
 151	!	NONE
 152	!
 153	! SIDE EFFECTS
 154	!
 155	!	WRITES THE SPECIFIED STRING ON THE I/O DEVICE
 156	!
 157	!--
 158	
 159	    BEGIN
 160	
 161	    LOCAL
 162		CHAR,
 163		CHPTR;
 164	
 165	!
 166	    CHPTR = CH$PTR (.MESSAGE, -1);
 167	
 168	    DO
 169		BEGIN
 170		CHAR = CH$A_RCHAR (CHPTR);
 171	
 172		IF (.CHAR NEQ 0) THEN OUTPUT (.CHAN, .CHAR);
 173	
 174		END
 175	    UNTIL (.CHAR EQL 0);
 176	
 177	    END;
 178	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 179	GLOBAL ROUTINE OUTNUM (CHAN, VALUE, RADIX, LEN) : NOVALUE = 	!PRINT A NUMBER
 180	
 181	!++
 182	! FUNCTIONAL DESCRIPTION:
 183	!
 184	!	PRINT A NUMBER.  HANDLES NEGATIVE AND RADIX 2 TO 36.
 185	!	 PADS WITH LEADING ZEROS IF NECESSARY.
 186	!
 187	! FORMAL PARAMETERS:
 188	!
 189	!	CHAN - THE CHANNEL ON WHICH TO SEND THE NUMBER
 190	!	VALUE - THE NUMBER TO PRINT
 191	!	RADIX - THE PRINT RADIX, USUALLY 8 (OCTAL) OR 10 (DECIMAL).
 192	!	LEN - MINIMUM LENGTH OF THE NUMBER, OFTEN 0.
 193	!
 194	! IMPLICIT INPUTS:
 195	!
 196	!	NONE
 197	!
 198	! IMPLICIT OUTPUTS:
 199	!
 200	!	NONE
 201	!
 202	! ROUTINE VALUE:
 203	!
 204	!	NONE
 205	!
 206	! SIDE EFFECTS
 207	!
 208	!	SENDS A STRING REPRESENTING THE NUMBER TO THE I/O DEVICE
 209	!
 210	!--
 211	
 212	    BEGIN
 213	
 214	    LOCAL
 215		CHAR,
 216		LEN1,
 217		QUOTIENT,
 218		REMAINDER,
 219		VAL;
 220	
 221	    IF ((.RADIX LSS 2) OR (.RADIX GTR 36))
 222	    THEN
 223		BEGIN
 224		OUTSTR (.CHAN, UPLIT (%ASCIZ'??????'));
 225		RETURN;
 226		END;
 227	
 228	    VAL = .VALUE;
 229	    LEN1 = .LEN;
 230	
 231	    IF (.VAL LSS 0)
 232	    THEN
 233		BEGIN
 234		OUTPUT (.CHAN, %C'-');
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 235		VAL = -.VAL;
 236		LEN1 = .LEN1 - 1;
 237		END;
 238	
 239	    QUOTIENT = .VAL/.RADIX;
 240	    REMAINDER = .VAL MOD .RADIX;
 241	
 242	    IF (.QUOTIENT NEQ 0)
 243	    THEN
 244		OUTNUM (.CHAN, .QUOTIENT, .RADIX, .LEN1 - 1)
 245	    ELSE
 246	!
 247	! APPEND LEADING ZEROS IF NECESSARY
 248	!
 249	
 250		WHILE ((LEN1 = .LEN1 - 1) GTR 0) DO
 251		    OUTPUT (.CHAN, %C'0');
 252	
 253	    CHAR = .REMAINDER + %C'0';
 254	
 255	    IF (.CHAR GTR %C'9') THEN CHAR = .CHAR - %C'9' + %C'A';
 256	
 257	    OUTPUT (.CHAN, .CHAR);
 258	    END;
 259	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 260	ROUTINE ERR_OUTSTR 				!PRINT EDITED STRING
 261	    (CHAN, MESSAGE, ARG1, ARG2, ARG3, ARG4, ARG5) : NOVALUE =
 262	
 263	!++
 264	! FUNCTIONAL DESCRIPTION:
 265	!
 266	!	PRINT AN EDITED STRING.  VALUE SUBSTITUTION IS INDICATED BY
 267	!	A % IN THE STRING, AS FOLLOWS:
 268	!
 269	!		%NX
 270	!
 271	!	WHERE N IS THE ARGUMENT (1 TO 5) AND X IS THE FORM.
 272	!	FORM A = ASCII, D = DECIMAL, O = OCTAL AND V = SYMBOL VALUE.
 273	!	USE %% TO PRINT A PERCENT SIGN.
 274	!
 275	! FORMAL PARAMETERS:
 276	!
 277	!	CHAN - THE CHANNEL ON WHICH TO SEND THE EDITED STRING
 278	!	MESSAGE - POINTER TO THE STRING TO BE EDITED AND PRINTED
 279	!	ARG1:ARG5 - VALUES TO BE SUBSTITUTED INTO THE STRING
 280	!	 AS NEEDED.  ASCII ARGUMENTS ARE POINTERS TO STRINGS;
 281	!	 OCTAL AND DECIMAL ARE THE VALUES THEMSELVES.
 282	!	 SYMBOL VALUES ARE PRINTED IN OCTAL, WITH
 283	!	 SIGN EXTENSION ON THE LOW-ORDER 16 BITS, AND THE
 284	!	 NEXT HIGHER-ORDER BIT MEANING RELOCATABLE.
 285	!	 UNUSED ARGUMENTS ARE SET TO ZERO.
 286	!
 287	! IMPLICIT INPUTS:
 288	!
 289	!	NONE
 290	!
 291	! IMPLICIT OUTPUTS:
 292	!
 293	!	NONE
 294	!
 295	! ROUTINE VALUE:
 296	!
 297	!	NONE
 298	!
 299	! SIDE EFFECTS
 300	!
 301	!	SENDS EDITED STRING TO I/O DEVICE
 302	!
 303	!--
 304	
 305	    BEGIN
 306	
 307	    LOCAL
 308		ARG,
 309		CHAR,
 310		CHPTR,
 311		TEMP_ARG;
 312	
 313	!
 314	    CHPTR = CH$PTR (.MESSAGE, -1);
 315	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 316	    DO
 317		BEGIN
 318		CHAR = CH$A_RCHAR (CHPTR);
 319	
 320		IF (.CHAR NEQ 0)
 321		THEN
 322	
 323		    IF (.CHAR NEQ %C'%')
 324		    THEN
 325			OUTPUT (.CHAN, .CHAR)
 326		    ELSE
 327			BEGIN				!SPECIAL REFERENCE TO A SUBSTITUTION ARG
 328			CHAR = CH$A_RCHAR (CHPTR);
 329	
 330			IF (.CHAR EQL %C'%')
 331			THEN
 332			    OUTPUT (.CHAN, .CHAR)
 333			ELSE
 334			    BEGIN
 335			    ARG = (CASE .CHAR FROM %C'1' TO %C'5' OF
 336				SET
 337				[%C'1'] : .ARG1;
 338				[%C'2'] : .ARG2;
 339				[%C'3'] : .ARG3;
 340				[%C'4'] : .ARG4;
 341				[%C'5'] : .ARG5;
 342				TES);
 343			    CHAR = CH$A_RCHAR (CHPTR);
 344	
 345			    SELECTONE .CHAR OF
 346				SET
 347	
 348				[%C'A'] : 		!ASCII STRING
 349				    OUTSTR (.CHAN, .ARG);
 350	
 351				[%C'D'] : 		!DECIMAL NUMBER
 352				    OUTNUM (.CHAN, .ARG, 10, 0);
 353	
 354				[%C'O'] : 		!OCTAL NUMBER
 355				    OUTNUM (.CHAN, .ARG, 8, 0);
 356	
 357				[%C'V'] : 		!SYMBOL VALUE
 358				    BEGIN
 359				    TEMP_ARG = (IF (.ARG<15, 1> EQL 0) THEN 0 ELSE -1);	!SIGN EXTEND
 360				    TEMP_ARG<0, 15> = .ARG<0, 15>;
 361				    OUTNUM (.CHAN, .TEMP_ARG, 8, 0);
 362	
 363				    IF (.ARG<16, 1> NEQ 0) THEN OUTSTR (.CHAN, UPLIT (%ASCIZ'-R'));
 364	
 365				    END;
 366				TES;
 367	
 368			    END;			!OF NOT JUST %%
 369	
 370			END;				!OF % PROCESSING
 371	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 372		END
 373	    UNTIL (.CHAR EQL 0);
 374	
 375	    END;					!OF ROUTINE ERR_OUTSTR
 376	
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 377	GLOBAL ROUTINE ERRMSG 				! ERROR MESSAGE
 378	    (CHAN, ERRNO, ARG1, ARG2, ARG3, ARG4, ARG5) : NOVALUE =
 379	
 380	!++
 381	! FUNCTIONAL DESCRIPTION:
 382	!
 383	!	PRINT AN ERROR MESSAGE WITH UP TO FIVE VARIABLE ARGUMENTS.
 384	!	THE ERROR MESSAGES ARE LISTED IN THE HEAD OF THIS MODULE
 385	!	WITH THEIR NUMBERS AND THE MEANING OF EACH ARGUMENT.
 386	!	UNUSED ARGUMENTS SHOULD BE SET TO ZERO.
 387	!
 388	! FORMAL PARAMETERS:
 389	!
 390	!	CHAN - THE CHANNEL ON WHICH TO SEND THE ERROR MESSAGE
 391	!	ERRNO - THE NUMBER OF THE ERROR MESSAGE TO PRINT
 392	!	ARG1:ARG5 - THE VARIABLE ARGUMENTS IN THE MESSAGE
 393	!
 394	! IMPLICIT INPUTS:
 395	!
 396	!	NONE
 397	!
 398	! IMPLICIT OUTPUTS:
 399	!
 400	!	NONE
 401	!
 402	! ROUTINE VALUE:
 403	!
 404	!	NONE
 405	!
 406	! SIDE EFFECTS
 407	!
 408	!	SENDS AN EDITED STRING TO THE I/O DEVICE.
 409	!
 410	!--
 411	
 412	    BEGIN
 413	
 414	    LOCAL
 415		MESSAGE;
 416	
 417	!
 418	!
 419	!
 420	!	HERE ARE THE ERROR MESSAGES, BY ERROR NUMBER.
 421	!	 A PERCENT SIGN INDICATES ARGUMENT SUBSTITUTION.  THE LETTER
 422	!	  FOLLOWING THE ARGUMENT NUMBER SPECIFIES THE FORMAT: A = ASCII,
 423	!	  D = DECIMAL, O = OCTAL, V = SYMBOL VALUE.
 424	!	  %% PRINTS A PERCENT SIGN.
 425	!
 426	    MESSAGE = (CASE .ERRNO FROM 1 TO 40 OF
 427		SET
 428		[1] : UPLIT (%ASCIZ'? Storage exhausted -- %1A');	!
 429	!						!ARG 1 = ROUTINE NAME
 430		[2] : UPLIT (%ASCIZ'? Invalid file name: "%2A" -- %1A');	!
 431	!						!ARG 1 = ROUTINE NAME,
 432	!						! 2 = FILE NAME
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 433		[3] : UPLIT (%ASCIZ'? OPEN UUO failed for %2A -- %1A');	!
 434	!						!ARG 1 = ROUTINE NAME,
 435	!						! 2 = FILE NAME
 436		[4] : UPLIT (%ASCIZ'? LOOKUP/ENTER UUO failed for %2A, code = %3O -- %1A');	!
 437	!						!ARG 1 = ROUTINE NAME
 438	!						! 2 = FILE NAME
 439	!						! 3 = ERROR CODE
 440		[5] : UPLIT (%ASCIZ'? I/O DATA ERROR on %2A, status = %3O -- %1A');	!
 441	!						!ARG 1 = ROUTINE NAME
 442	!						! 2 = FILE NAME
 443	!						! 3 = STATUS
 444		[6] : UPLIT (%ASCIZ'? Syntax error in command line: "%2A" -- %1A');	!
 445	!						!ARG 1 = ROUTINE NAME
 446	!						! 2 = COMMAND LINE
 447		[7] : UPLIT (%ASCIZ'? Switches must be associated with a file -- %1A');	!
 448	!						!ARG 1 = ROUTINE NAME
 449		[8] : UPLIT (%ASCIZ'? Indirect files nested too deep: "%2A" -- %1A');	!
 450	!						!ARG 1 = ROUTINE NAME
 451	!						! 2 = COMMAND LINE
 452		[9] : UPLIT (%ASCIZ'? Input error or unexpected EOF -- %1A');	!
 453	!						!ARG 1 = ROUTINE NAME
 454		[10] : UPLIT (%ASCIZ'%% Badly formatted OBJ file %2A -- %1A');	!
 455	!						!ARG 1 = ROUTINE NAME
 456	!						! 2 = OBJ FILE NAME
 457		[11] : UPLIT (%ASCIZ'%% Checksum error in OBJ file %2A; should be %3O, was %4O -- %1A');	!
 458	!						!ARG 1 = ROUTINE NAME
 459	!						! 2 = OBJECT FILE NAME
 460	!						! 3 = COMPUTED CHECKSUM
 461	!						! 4 = CHECKSUM READ
 462		[12] : UPLIT (%ASCIZ'%% Object file feature is unsupported -- %1A');	!
 463	!						!ARG 1 = ROUTINE NAME
 464		[13] : UPLIT (%ASCIZ
 465		    '%% Global symbol %1A defined in module %2A with value %3V and in module %4A with value %5V');
 466	!						!
 467	!						!ARG 1 = SYMBOL NAME
 468	!						! 2 = FIRST MODULE NAME
 469	!						! 3 = FIRST VALUE
 470	!						! 4 = SECOND MODULE NAME
 471	!						! 5 = SECOND VALUE
 472	!
 473		[14] : UPLIT (%ASCIZ'? Complex relocation exceeded stack limit of %3D, file %2A -- %1A');	!
 474	!						!ARG 1 = ROUTINE NAME
 475	!						! 2 = FILE NAME
 476	!						! 3 = STACK LIMIT
 477	!
 478		[15] : UPLIT (%ASCIZ'%% Module %2A multiply defines P-section %3A; flags = %5O, were %4O -- %1A');
 479							!
 480	!						!ARG 1 = ROUTINE NAME
 481	!						! 2 = MODULE NAME
 482	!						! 3 = PSECT NAME
 483	!						! 4 = OLD FLAGS
 484	!						! 5 = NEW FLAGS
 485	!
 486		[16] : UPLIT (%ASCIZ'%% Global symbol %1A is undefined');	!
 487	!						!ARG 1 = SYMBOL NAME
 488	!
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 489		[17] : UPLIT (%ASCIZ'%% Divide by zero when resolving relocation in P-section %2A -- %1A');	!
 490	!						!ARG 1 = ROUTINE NAME
 491	!						! 2 = PSECT NAME
 492		[18] : UPLIT (%ASCIZ'%% Relocation value %3O truncated to 8 bits in P-section %2A -- %1A');	!
 493	!						!ARG 1 = ROUTINE NAME
 494	!						! 2 = PSECT NAME
 495	!						! 3 = VALUE TO BE TRUNCATED
 496	!
 497		[19] : UPLIT (%ASCIZ'? Second %3A file in command string: "%2A" -- %1A');	!
 498	!						!ARG 1 = ROUTINE NAME
 499	!						! 2 = FILE NAME
 500	!						! 3 = ASSUMED TYPE
 501	!
 502		[20] : UPLIT (%ASCIZ'%% Unspecified output file: "%2A", ignored - %1A');	!
 503	!						!ARG 1 = ROUTINE NAME
 504	!						! 2 = FILE NAME
 505	!
 506		[21] : UPLIT (%ASCIZ'? No input files -- %1A');	!
 507	!						!ARG 1 = ROUTINE NAME
 508	!
 509		[22] : UPLIT (%ASCIZ'%% Partition length of %2O less than task length of %3O -- %1A');	!
 510	!						!ARG 1 = ROUTINE NAME
 511	!						! 2 = PARTITION LENGTH
 512	!						! 3 = TASK LENGTH
 513	!
 514	!
 515		[23] : UPLIT (%ASCIZ'%% Only one module allowed in symbol table file %2A -- %1A');	!
 516	!						!ARG 1 = ROUTINE NAME
 517	!						! 2 = FILE NAME
 518	!
 519	!
 520		[24] : UPLIT (%ASCIZ'? Error in text file %2A -- %1A');	!
 521	!						!ARG 1 = ROUTINE NAME
 522	!						! 2 = FILE NAME
 523	!
 524		[25] : UPLIT (%ASCIZ'? Invalid address %2O in file %3A -- %1A');	!
 525	!						!ARG 1 = ROUTINE NAME
 526	!						! 2 = ADDRESS
 527	!						! 3 = FILE NAME
 528	!
 529		[26] : UPLIT (%ASCIZ'? Cannot find %3D bytes in system pool in %2A -- %1A');	!
 530	!						!ARG 1 = ROUTINE NAME
 531	!						! 2 = FILE NAME
 532	!						! 3 = AMOUNT REQUESTED
 533	!
 534		[27] : UPLIT (%ASCIZ'? Failure freeing %3D bytes at %4O in system pool in %2A, code %5D -- %1A');
 535	!						!ARG 1 = ROUTINE NAME
 536	!						! 2 = FILE NAME
 537	!						! 3 = AMOUNT IN BLOCK
 538	!						! 4 = ADDRESS OF BLOCK
 539	!						! 5 = ERROR CODE (SEE LISTING)
 540	!
 541		[28] : UPLIT (%ASCIZ'? 22-bit memory management not supported in %2A -- %1A');	!
 542	!						!ARG 1 = ROUTINE NAME
 543	!						! 2 = FILE NAME
 544	!
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 545		[29] : UPLIT (%ASCIZ'? Symbol %2A has conflicting values in %3A and %4A -- %1A');	!
 546	!						!ARG 1 = ROUTINE NAME
 547	!						! 2 = SYMBOL NAME
 548	!						! 3 = SYMBOL TABLE FILE 1
 549	!						! 4 = SYMBOL TABLE FILE 2
 550	!
 551	!
 552		[30] : UPLIT (%ASCIZ'? The Communications Executive has already been loaded into %2A -- %1A');	!
 553	!						!ARG 1 = ROUTINE NAME
 554	!						! 2 = KERNEL FILE NAME
 555	!
 556		[31] : UPLIT (%ASCIZ'? The top of the COMM EXEC is too high: %3O .GT. %4O in %2A -- %1A');	!
 557	!						!ARG 1 = ROUTINE NAME
 558	!						! 2 = FILE NAME
 559	!						! 3 = TOP OF COMM EXEC
 560	!						! 4 = MAX EXEC SIZE
 561	!
 562		[32] : UPLIT (%ASCIZ'%% Global symbol %2A is not defined in %3A -- %1A');	!
 563	!						!ARG 1 = ROUTINE NAME
 564	!						! 2 = SYMBOL NAME
 565	!						! 3 = FILE NAME
 566	!
 567		[33] : UPLIT (%ASCIZ'? Program logical address space (PLAS) is not supported - %1A');	!
 568	!						!ARG 1 = ROUTINE NAME
 569	!
 570		[34] : UPLIT (%ASCIZ'? File %2A size of %3D bytes is larger than max of %4D - %1A');	!
 571	!						!ARG 1 = ROUTINE NAME
 572	!						! 2 = FILE NAME
 573	!						! 3 = FILE SIZE
 574	!						! 4 = MAX SIZE
 575		[35] : UPLIT (%ASCIZ'? Loading library file %2A overflowed network pool by %3D bytes -- $1A');	!
 576	!						!ARG 1 = ROUTINE NAME
 577	!						! 2 = LIBRARY NAME
 578	!						! 3 = OVERFLOW AMOUNT
 579	!
 580		[36] : UPLIT (%ASCIZ'? DDM %2A is unknown -- %1A');	!
 581	!						!ARG 1 = ROUTINE NAME
 582	!						! 2 = DDM NAME
 583	!
 584		[37] : UPLIT (%ASCIZ'? DCP %2A is unknown -- %1A');	!
 585	!						!ARG 1 = ROUTINE NAME
 586	!						! 2 = DLC NAME
 587	!
 588		[38] : UPLIT (%ASCIZ'? LLC %2A is unknown -- %1A');	!
 589	!						!ARG 1 = ROUTINE NAME
 590	!						! 2 = LLC NAME
 591	!
 592		[39] : UPLIT (%ASCIZ'? Invalid %2A - %3D found -- %1A');	!
 593	!						!ARG 1 = Routine Name
 594	!						!ARG 2 = Type of construct in error
 595	!						!ARG 3 = Value of construct
 596	!
 597		[40] : UPLIT (%ASCIZ'? Invalid %2A %3A %4A %5O -- %1A');
 598	!
 599		[INRANGE] : UPLIT (%ASCIZ'? Invalid error');	!ERROR MSG HAS NO TEXT
 600		[OUTRANGE] : UPLIT (%ASCIZ'? Illegal error');	!ERROR NUMBER OUT OF RANGE
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

 601		TES);
 602	    PCRLF (.CHAN);
 603	    ERR_OUTSTR (.CHAN, .MESSAGE, .ARG1, .ARG2, .ARG3, .ARG4, .ARG5);
 604	!
 605	! DETERMINE PROCESSING OF ERROR:
 606	!  NON-FATAL = CONTINUE PROCESSING
 607	!  FATAL = TERMINATE PROGRAM
 608	!
 609	
 610	    CASE .ERRNO FROM 1 TO 40 OF
 611		SET
 612	
 613		[1 TO 9, 14, 19, 21, 24 TO 31, 33 TO 40, OUTRANGE] :
 614		    BEGIN
 615		    PCRLF (.CHAN);
 616		    OUTSTR (.CHAN, UPLIT (%ASCIZ'?Terminating - No Recovery Available for Previous Error'));
 617		    STOP_PROGRAM ();
 618		    END;
 619	
 620		[INRANGE] :
 621		;
 622		TES;
 623	
 624	    END;
 625	
 626	!
 627	END
 628	
 629	ELUDOM
 630	! Local Modes:
 631	! Comment Start:!
 632	! Mode:Fundamental
 633	! Auto Save Mode:2
 634	! Comment Column:36
		DSK:MSGH.XRF[4,31]               31-Aug-79 14:47

ARG		 308	 335#	 349	 352	 355	 359	 360
		 363
ARG1		 261	 337	 378	 603
ARG2		 261	 338	 378	 603
ARG3		 261	 339	 378	 603
ARG4		 261	 340	 378	 603
ARG5		 261	 341	 378	 603
CHAN		  95	 125	 126	 129	 172	 179	 224
		 234	 244	 251	 257	 261	 325	 332
		 349	 352	 355	 361	 363	 378	 602
		 603	 615	 616
CHAR		 162	 170#	 172	 175	 215	 253#	 255#
		 257	 309	 318#	 320	 323	 325	 328#
		 330	 332	 335	 343#	 345	 373
CHPTR		 163	 166#	 170	 310	 314#	 318	 328
		 343
ERRMSG		  68	 377*
ERRNO		 378	 426	 610
ERR_OUTSTR	  67	 260*	 603
LEN		 179	 229
LEN1		 216	 229#	 236#	 244	 250#
MESSAGE		 129	 166	 261	 314	 415	 426#	 603
MSGH		   6#
OUTNUM		  66	 179*	 244	 352	 355	 361
OUTPUT		  92*	 125	 126	 172	 234	 251	 257
		 325	 332
OUTSTR		  65	 129*	 224	 349	 363	 616
PCRLF		  64	  95*	 602	 615
QUOTIENT	 217	 239#	 242	 244
RADIX		 179	 221	 239	 240	 244
REMAINDER	 218	 240#	 253
STOP_PROGRAM	  93	 617
TEMP_ARG	 311	 359#	 360#	 361
VAL		 219	 228#	 231	 235#	 239	 240
VALUE		 179	 228