MACRO 00050000 GENTAB 00100000 GBLC &ERCD(255) GLOBAL ARRAY OF MSG NAMES 00150000 LCLA &I 00200000 LCLC &LQ 00250000 .* THIS MACRO GENERATES A SEQUENCED INDEX TO THE ERROR MESSAGES WHICH 00300000 .* CONTAINS THE HALF-WORD ADDRESS AND THE LENGTH OF EACH MESSAGE. THIS 00350000 .* ALLOWS THE ERROR CODE TO BE USED TO INDEX THE MESSAGE INDEX. THIS 00450000 .* MACRO MUST BE CALLED EXACTLY ONCE AFTER ALL CALLS TO GENERR. 00500000 &LQ SETC 'L''' 00550000 MTABLE DS 0F INDEX OF ERROR MSGS & LENGTHS 00600000 MADDR DS H MESSAGE ADDRESS 00650000 MLN DS H MESSAGE LENGTH 00700000 ORG MTABLE TO START AT THE TOP OF TABLE 00750000 DC Y(S0-ERRMSGS) INDEX TO ERR0 MESSAGE 00850000 DC Y(L'S0-1) MOVE LENGTH OF ERR0 MESSAGE 00900000 ORG MTABLE+4 TO LEAVE SPACE FOR ERR0 ENTRY 00950000 .LOOP ANOP 01000000 &I SETA &I+1 01050000 AIF (&I GT 255).END CHECK FOR MAXIMUM SIZE 01100000 AIF ('&ERCD(&I)' NE '').C1 FOR UNDEFINED ERROR MESSAGES 01150000 DC F'0' UNDEFINED ERROR MESSAGE 01500000 AGO .LOOP 01550000 .C1 ANOP 01600000 DC Y(&ERCD(&I)-ERRMSGS) ADDRESS OF MSG FOR THIS CODE 01650000 DC Y(&LQ&ERCD(&I).-1) LENGTH OF MSG FOR THIS CODE 01700000 AGO .LOOP 01800000 .END MEND 01850000