THERE IS A CERTAIN AMOUNT OF DEBUGGING INFO IN A COMPILED LISTING THAT MOST USERS ARE NOT AWARE OF. THE 1ST 4 COLS OF A SOURCE LINE IS THE INTERPRETIVE PC (IN OCTAL) WITHIN A SEGMENT. SEGMENTS OCCUR FOR EACH PROCEDURE DECLARATION AND FOR A BLOCK WITH DECLARATIONS IN IT. A SEGMENT IS DELIMITED IN THE LISTING BY THE FOO IS SEGMENT XXX ********* AND BY FOO(XXX) IS YYYY LONG, NEXT SEGMENT ZZZ ******** XXX IS THE SEGMENT # ASSOCIATED WITH THAT BLOCK OF CODE. YYYYY IS THE # OF WORDS (IN OCTAL) IN THE SEGMENT. ZZZ IS THE SEGMENT # THE COMPILER IS UN NESTING INTO.. THE NEXT 2 COLS CONTAIN THE LEXICAL BEGIN/END COUNT. EVERY TIME A 'BEGIN' IS ENCOUNTERED THIS COUNT IS INCREMENTED AND PRINTED. EVERY TIME 'END' IS ENCOUNTERED, THIS NUMBER IS PRINTED AND THEN DECREMENTED. IN THIS FASHION THE COMPILER TELLS YOU WHAT HE SEES AS THE BLOCK STRUCTURE. THE NEXT 2 COLS CONTAIN THE # OF ERRORS ENCOUNTERED THUS FAR (OR SPACES). THE REST OF THE LINE IS THE SOURCE IMAGE. NOTE THAT THE INTERPRETIVE PC (IPC) IS PRINTED PRIOR TO THE GENERATION OF THE CODE FOR A GIVEN LINE. THIS IS IMPORTANT IN READING 'STACK HISTORIES'. WHEN A RUN TIME ERROR IS ENCOUNTERED, AN ERROR MESSAGE IS PRINTED FOLLOWED BY A STACK HISTORY (OR TRACEBACK). A TYPICAL ERROR MESSAGE WILL LOOK SOMETHING LIKE THE FOLLOWING: INVALID INDEX [02]003:0012 [01]005:0123 [01]001:0456 WITH MORE LINES FOLLOWING IF NECESSARY. THE # WITHIN THE BRACKETS IS THE COMPOUND BLOCK NESTING LEVEL. THE NEXT # (TO THE LEFT OF THE ':') IS THE SEGMENT # IN WHICH THE ERROR OCCURRED (OR A RETURN ADDRESS). THE LAST # (THE 4 DIGIT NUMBER AFTER THE COLON) IS THE IPC WITH THAT SEGMENT. ALL #'S ARE OCTAL. THE ABOVE STACK HISTORY IS THEN READ AS FOLLOWS: AT IPC 11 (OCTAL) (12 IS THE ADDRESS OF THE NEXT INSTRUCTION) IN SEGMENT 3, AN INVALID INDEX OCCURED. THAT ERROR OCCURRED WITHIN A PROCEDURE (OR BLOCK) WHOSE RETURN ADDRESS WOULD BE TO SEGMENT 5, IPC 123 (OCTAL). THAT ADDRESS ALSO IS WITHIN A PROCEDURE (OR A BLOCK WITHIN A PROCEDURE) AND ITS RETURN ADDRESS IS SEGMENT 1 (THE MAIN BLOCK IS ALWAYS SEGMENT 1), IPC 456 (OCTAL). IN EACH OF THE ABOVE 3 CASES THE ADDRESSES CAN BE TRANSLATED TO THE SOURCE LISTING AS FOLLOWS. SEARCH THE LISTING FOR THE SEGMENT DESIRED. (SEGMENTS ARE ALWAYS ALLOCATED SEQUENTIALLY). WHEN THAT IS FOUND FIND THE 2 LINES BETWEEN WHICH THE IPC FALLS WITHIN THAT SEGMENT. (BE SURE TO IGNORE IPC'S OF NESTED BLOCKS, IF ANY.) IF THE IPC YOU ARE LOOKING FOR FALLS IN THE 1ST 4 COLS THEN LOOK AT THE END OF THE PREVIOUS LINE. THAT IS WHERE THE ERROR OCCURED (OR WHERE THE RETURN ADDRESS WAS TO). IF THE IPC FALLS BETWEEN 2 LINES, CHOOSE THE 1ST LINE. IF THE ERROR IPC (EIPC) IS CLOSER TO THE IPC OF THE 2ND LINE RATHER THAN THE 1ST,THEN LOOK AT THE END OF THE 1ST LINE, IF THE EIPC IS CLOSER TO THE IPC OF THE 1ST LINE RATHER THAN THE 2ND THEN LOOK TOWARDS THE BEGINNING OF THE 1ST LINE AND TH END OF THE PREVIOUS LINE. IF THE EIPC FALLS ROUGHLY BETWEEN THE 2 THEN LOOK TOWARDS THE MIDDLE OF THE 1ST LINE. THIS IS ONLY AN APPROXIMATION. YOU CAN PIN POINT THE EXACT INSTRUCTION WITH A CODE AND STACK LISTING (@P, @D, SEE THESIS) IF EVER AN ERROR IPC FALLS OUT OF THE SEGMENT (THE RETURNS GENERALLY ARE ALWAYS RIGHT. I'VE NEVER HAD ANY PROBLEMS WITH THOSE) THEN LET ME KNOW. OCCATIONALLY, UNDER CERTAIN CIRCUMSTANCES (WHICH SHOULD BE REPRODUCABLE) THE VERY 1ST IPC WILL BE ERRONEOUS. I BELIEVE THAT I'VE TAKEN CARE OF THIS PROBLEM FULLY, BUT NO NEWS ISNT EXACTLY EQUIVALENT TO GOOD NEWS AT LEAST NOT IN THIS BUSINESS.