.TITLE LINE_IO ROUTINES .ENABLE DEBUG .SUBTITLE DATA AREA .PSECT PURE_DATA,NOEXE,SHR,RD,NOWRT,CON,GBL GET_ERROR: .ASCID /INDEX-F-File Read Record Error/ CONTINUATION_ERROR: .ASCID /INDEX-E-Too Many Continuation Lines/ PASS_LINE: .LONG 1 .ADDRESS DESCRIPTER .PSECT IMPURE_DATA,NOEXE,NOSHR,RD,WRT,CON,GBL,LONG ERROR_NUMBER: ;V3.02 .LONG 0 ;V3.02 MESSAGE_VECTOR: ;V3.02 .BLKL 64 ;V3.02 DESCRIPTER: .LONG 0 .ADDRESS 0 DESCRIPTER2: .LONG 0 .ADDRESS 0 DESCRIPTER3: .LONG 132 .ADDRESS INPUT_BUFFER ERROR_MESS: .LONG 0 .SUBTITLE INPUT A LINE FROM SOURCE FILE .PSECT CODE,EXE,RD,NOWRT,SHR,CON,GBL .ENTRY GET_LINE,^M ; CLEAR LINE STORAGE AREA MOVC5 #0,NULL,#0,#<100*<4+132>>,SOURCE_LINE ; CHECK FOR END OF FILE 11$: TSTL DEFFERED_END_OF_FILE BEQL 4$ TSTL INCLUDE_LEVEL ;CAN WE POP DOWN 1 LEVEL BEQL 10$ ;NO CALLG NULL,POP_INCLUDE_LEVEL BRB 11$ 10$: CMPL FILE_SPEC_QUEUE,FILE_SPEC_QUEUE+4 ;ANY MORE INPUT FILES? BEQL 12$ ;NO-NO MORE OPTIONS CALLG NULL,OPEN_NEW_FILE ;OPEN NEW ZERO LEVEL FILE BRB 4$ 12$: INCL END_OF_FILE ;EXIT RET ; CHECK FOR LINE IN BUFFER FROM LAST READ 4$: TSTL INPUT_BUFFER_FLAG BNEQ 1$ ; GET THAT LINE OR READ IN NEW LINE 3$: CALLG NULL,GET_ONE_LINE TSTL R0 BEQL 1$ INCL END_OF_FILE RET 1$: MOVAL INPUT_BUFFER,DESCRIPTER+4 LOCC #0,#132,INPUT_BUFFER SUBL3 R0,#132,DESCRIPTER ; CHECK FOR FORM-FEEDS LOCC #12,DESCRIPTER,@DESCRIPTER+4 BEQL 5$ ;NO MOVB #^A/ /,(R1) ;REPLACE WITH BLANK CLRL LINES_ON_PAGE ;FORCE NEW PAGE CMPB #1,DESCRIPTER ;SEE IF ONLY BNEQ 5$ JMP 3$ 5$: ; OUTPUT THE LINE CALLG PASS_LINE,PUT_LINE ; IS THIS A COMMENT LINE CALLG NULL,CHECK_COMMENT BLBS R0,6$ INCL COMMENT_LINES_INPUT ;V1.27 JMP 3$ ;YES REPEAT ; MAIN LINE FOUND-STORE MAIN LINE 6$: INCL SOURCE_LINES_INPUT ;V1.27 MOVL #SOURCE_LINE,R6 ;SET UP POINTER TO OUTPUT MOVL #100,R7 COPY_IN_LOOP: DECL R7 ;SEE IF ANY ROOM LEFT BGEQ 1$ PUSHAL CONTINUATION_ERROR ;TOO MANY CONTINUATION LINES CALLS #1,G^LIB$PUT_OUTPUT PUSHAL CONTINUATION_ERROR CALLS #1,ERROR_LINE MOVL #1,INPUT_BUFFER_FLAG RET 1$: MOVL LINE_NUMBER,(R6)+ ;SAVE LINE NUMBER ; CPY LINE FROM INPUT BUFFER TO SOURCE LINE BUFFER ; TRANSLATEING LOWER CASE TO UPPER CASE AND REMOVEING ; ANY BIT 7 SET MOVTC DESCRIPTER,@,#0,TRANSLATE_LC_TO_UC,#132.,(R6) ADDL2 #132,R6 ; WRITE/READ UNTILL ALL CONTINUATION LINES ARE IN, 4$: CALLG NULL,GET_ONE_LINE TSTL R0 BEQL 3$ INCL DEFFERED_END_OF_FILE ;END OF FILE-SET FLAG RET 3$: ; SET UP TO OUTPUT THE LINE MOVAL INPUT_BUFFER,DESCRIPTER+4 LOCC #0,#132,INPUT_BUFFER SUBL3 R0,#132,DESCRIPTER ; IS THIS A COMMENT LINE CALLG NULL,CHECK_COMMENT BLBS R0,5$ ;YES REPEAT INCL COMMENT_LINES_INPUT ;V1.27 ; CHECK FOR FORM-FEEDS LOCC #12,DESCRIPTER,@DESCRIPTER+4 BEQL 15$ ;NO MOVB #^A/ /,(R1) ;REPLACE WITH BLANK CLRL LINES_ON_PAGE ;FORCE NEW PAGE CMPB #1,DESCRIPTER ;SEE IF ONLY BNEQ 15$ JMP 4$ 15$: CALLG PASS_LINE,PUT_LINE BRW 4$ ; SEE IF MAIN LINE OR CONTINUATION LINE 5$: LOCC #9,#6,@DESCRIPTER+4 ;SEE IF TAB USED BNEQ 6$ ;YES-HANDLE TAB CONVENTION ; NO TAB- DIRECT CHECK OF COLL 6 POINTED TO BY R1 CMPB #^A/ /,-1(R1) ;SEE IF MAIN LINE BEQL 30$ ;YES CMPB #^A/0/,-1(R1) BEQL 30$ CMPB #0,-1(R1) BEQL 30$ ; NOT A MAIN LINE ; CHECK FOR FORM-FEEDS LOCC #12,DESCRIPTER,@DESCRIPTER+4 BEQL 25$ ;NO MOVB #^A/ /,(R1) ;REPLACE WITH BLANK CLRL LINES_ON_PAGE ;FORCE NEW PAGE CMPB #1,DESCRIPTER ;SEE IF ONLY BNEQ 25$ INCL COMMENT_LINES_INPUT ;V1.27 JMP 4$ 25$: INCL CONTINUATION_LINES_INPUT ;V1.27 CALLG PASS_LINE,PUT_LINE BRW COPY_IN_LOOP 6$: CMPB #^A/1/,1(R1) BGTR 30$ CMPB #^A/9/,1(R1) BLSS 30$ INCL CONTINUATION_LINES_INPUT ;V1.28 CALLG PASS_LINE,PUT_LINE BRW COPY_IN_LOOP 30$: MOVL #1,INPUT_BUFFER_FLAG ;V3.12 RET ; SKIPPING COMMENT LINES, STORING CONTINUATION LINES RET .PAGE .SUBTITLE GET A LINE(HANDLE NESTING) .ENTRY GET_ONE_LINE,^M 500$: MOVC5 #0,NULL,#0,#132,INPUT_BUFFER ;CLEAR THE INPUT BUFFER MOVL INCLUDE_LEVEL,R11 ;GET THE NESTING LEVEL MOVL INCLUDE_STACK[R11],R10 ;GET POINTER TO INCLUDE STACK FRAME TSTB INCLUDE_TYPE(R10) ;LIBRARY FILE OR REGULAR FILE BNEQ 50$ ;LIBRARY FILE MOVW #132,(R10) MOVAL INPUT_BUFFER,(R10) $GET RAB=INCLUDE_RAB(R10) BLBC R0,1$ CLRL R0 RET 1$: CMPL #RMS$_EOF,R0 BNEQ 1001$ ;V3.02 BRW 100$ ;V3.02 1001$: MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL INCLUDE_RAB+RAB$L_STV(R10) ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL GET_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 50$: MOVL #132,DESCRIPTER3 MOVAL INPUT_BUFFER,DESCRIPTER3+4 PUSHAL DESCRIPTER3 PUSHAL INCLUDE_INDEX(R10) CALLS #2,G^LBR$GET_RECORD BLBC R0,51$ CLRL R0 RET 51$: CMPL #RMS$_EOF,R0 BEQL 100$ MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL INCLUDE_RAB+RAB$L_STV(R10) ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL GET_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 100$: TSTL INCLUDE_LEVEL ;ROOM TO POP A LEVEL BEQL 101$ ;NO CALLG NULL,POP_INCLUDE_LEVEL;YES-POP CLRL R0 ;RESTORE OLD DATA RET 101$: MOVAL FILE_SPEC_QUEUE,R0 CMPL R0,(R0) ;MORE FILES TO READ BEQL 102$ ;NOPE-QUEUE IS EMPTY CALLG NULL,OPEN_NEW_FILE ;OPEN NEW ZERO LEVEL FILE JMP 500$ ;AND RETRY READ 102$: MOVL #1,R0 ;NOPE-NOTHING MORE TO GET IN RET .PAGE .SUBTITLE CHECK LINE AS COMMMENT UTILITY .ENTRY CHECK_COMMENT,^M CMPB #^A/C/,@ ;SEE IF FOUND MAIN LINE YET BNEQ 203$ BRW 3$ ;NO-KEEP GOING 203$: CMPB #^A/c/,@ ;SEE IF FOUND MAIN LINE YET BNEQ 303$ BRW 3$ 303$: BITL #DEBUG_FLAG,FLAG_WORD BNEQ 4$ CMPB #^A/D/,@ ;SEE IF FOUND MAIN LINE YET BNEQ 403$ BRW 3$ 403$: CMPB #^A/d/,@ ;SEE IF FOUND MAIN LINE YET BNEQ 5$ ;V3.01 BRW 3$ ;V3.01 4$: CMPB #^A/D/,@ ;SEE IF FOUND MAIN LINE YET BEQL 6$ CMPB #^A/d/,@ ;SEE IF FOUND MAIN LINE YET BNEQ 5$ 6$: MOVB #^A/ /,@ ;RESET DEBUG FLAG TO BLANK BRW 7$ ;V3.20 5$: CMPB #^A/!/,@ ;SEE IF FOUND MAIN LINE YET BNEQ 2005$ ;V3.20 BRW 3$ ;V3.20 2005$: CMPB #^A/*/,@ ;SEE IF FOUND MAIN LINE YET ;V3.20 BNEQ 1005$ ;V3.20 BRW 3$ ;V3.20 1005$: CVTWL DESCRIPTER,R11 ;GET LENGTH OF STRING BEQL 3$ ;CATCH ZERO LENGTH MOVL DESCRIPTER+4,R10 ;GET START OF STRING BITL #,FLAG_WORD+4 ;V3.05 BNEQ 11$ ;V3.01 CMPL #72,R11 ;CHECK ONLY FIRST 72 COLLUMNS BGEQ 111$ ;V3.20 MOVL #72,R11 ;IF LONGER-RESET CHECK COUNT BRB 111$ ;V3.20 11$: CMPL #132,R11 ;CHECK FIRST 132 COLS ;V3.01 BGEQ 111$ ;V3.20 MOVL #132,R11 ;V3.01 111$: ;CHECK FOR "!" IN COLUMN 6 IT IS CONTINUATION ;V3.20 PUSHR #^M ;V3.20 MOVL #5,R6 ;V3.20 112$: CMPB #9,(R10) ;V3.20 BEQL 113$ ;V3.20 INCL R10 ;V3.20 SOBGTR R6,112$ ;V3.20 CMPB #^A/!/,(R10) ;V3.20 BEQL 7$ ;YES "!" IN COL 6-IT IS CONTINUATION ;V3.20 113$: POPR #^M ;V3.20 100$: TSTB (R10) ;CHECK IF NULL BEQL 101$ CMPB #^A/ /,(R10) ;CHECK IF BLANK BEQL 101$ CMPB #9,(R10) ;CHECK IF TAB BEQL 101$ CMPB #12,(R10) ;CHECK IF BEQL 101$ CMPB #^A/!/,(R10) ;SEE IF '!' ;V3.01 BEQL 3$ ;IS A COMMENT ;V3.01 BRW 7$ ;FOUND SOMETHING ELSE-NOT A COMMENT 101$: INCL R10 SOBGTR R11,100$ ;LOOP UNTILL DONE BRW 3$ ;WAS A COMMENT 7$: MOVL #1,R0 ;FLAG NOT A COMMENT RET 3$: CLRL R0 ;FLAG WAS COMMENT RET .PAGE .SUBTITLE OUTPUT A LINE TO LIST FILE .ENTRY PUT_LINE,^M ; ; CALL PUT_LINE(STRING) ! PASS BY DESCRIPTER ; ; ALTERNATE ENTRY POINTS ARE ; CALL ERROR_LINE(STRING) !PASS BY DESCRIPTER ; CALL PRINT_LINE(STRING) ; WHICH DIFFERS FROM PUT_LINE ONLY IN THAT NO LINE NUMBER IS GENERATED ; CLRL ERROR_MESS BRB CHK_HDR .ENTRY ERROR_LINE,^M MOVL #1,ERROR_MESS BRB CHK_HDR .ENTRY PRINT_LINE,^M MOVL #1,ERROR_MESS CHK_HDR:BITL #GET_ENTRY_FLAG,FLAG_WORD ;NO OUTPUT FILE ??? BNEQ 77$ BITL #NO_SOURCE_FLAG,FLAG_WORD ;SEE IF ANY OUTPUT REQUIRED BEQL 1$ ;YES CMPL #PARSE_LINES,STATUS_WORD ;IN SOURCE ? BNEQ 1$ ;NO 77$: CALLG NULL,GET_LINE_NUMBER ;YES-JUST GET LINE NUMBER RET ;DONE 1$: BITL #NOINDEX_FLAG,FLAG_WORD+4 ;SEE IF NO INDEX SECTION ;V1.20 BEQL 2$ ;NO FLAG SET ;V1.20 CMPL #INDEX_OUTPUT,STATUS_WORD ;SEE IF FLAG APPROPRIATE ;V1.20 BEQL 77$ ;YES-SKIP THIS OUTPUT ;V1.20 CMPL #STRUCTURE_OUTPUT,STATUS_WORD ;SEE IF STRUCTURE ;V3.16 BEQL 77$ ;YES-ALSO SKIP ;V3.16 ; CHECK FOR LINES/PAGE USED UP 2$: TSTL LINES_ON_PAGE ;V1.20 BLEQ 25$ JMP NO_HEADER ; IF YES-UPDATE PAGE NUMBER 25$: INCL PAGE_NUMBER ; FORM TITLE LINE, OUTPUT WITH MOVAL OUTPUT_BUFFER,R11 ;SET UP OUTPUT POINTER MOVB #12,(R11)+ ;OUTPUT MOVC3 TITLE1,@TITLE1+4,(R11) ;FIRST PART OF TITLE MOVL R3,R11 CASEL STATUS_WORD,#1,#11 ;SET UP TO OUTPUT PROPER TYPE HEADER ;V3.04 11$: .WORD T1-11$ ;**-1 .WORD T2-11$ .WORD T3-11$ .WORD T4-11$ .WORD T5-11$ .WORD T6-11$ .WORD T7-11$ .WORD T8-11$ .WORD T9-11$ ;V1.4 .WORD T10-11$ ;V3.00 .WORD T11-11$ ;V3.04 T1: MOVC3 TITLE3A,@TITLE3A+4,(R11) BRW ENDTN T2: MOVC3 TITLE3B,@TITLE3B+4,(R11) BRB ENDTN T3: MOVC3 TITLE3C,@TITLE3C+4,(R11) BRB ENDTN T4: MOVC3 TITLE3D,@TITLE3D+4,(R11) BRB ENDTN T5: MOVC3 TITLE3E,@TITLE3E+4,(R11) BRB ENDTN T6: MOVC3 TITLE3F,@TITLE3F+4,(R11) BRB ENDTN T7: MOVC3 TITLE3G,@TITLE3G+4,(R11) BRB ENDTN T8: MOVC3 TITLE3H,@TITLE3H+4,(R11) BRB ENDTN ;V1.4 T9: MOVC3 TITLE3I,@TITLE3I+4,(R11) ;V1.4 BRB ENDTN ;V3.00 T10: MOVC3 TITLE3J,@TITLE3J+4,(R11) ;V3.00 BRB ENDTN ;V3.04 T11: MOVC3 TITLE3K,@TITLE3K+4,(R11) ;V3.04 ENDTN: MOVL R3,R11 ; COPY THE DAY_TIME STRING TO OUTPUT LINE MOVC3 DAY_TIME,@DAY_TIME+4,(R11) MOVL R3,R11 ; COPY MORE OF FIXED TITLE MOVC3 TITLE2,@TITLE2+4,(R11) MOVL R3,R11 MOVL R11,DESCRIPTER2+4 ;LOAD DESCRPTER MOVL #6,DESCRIPTER2 PUSHAL DESCRIPTER2 PUSHAL PAGE_NUMBER CALLS #2,G^OTS$CVT_L_TI ;GET ASCII PAGE NUMBER ADDL #6,R11 SUBL2 #OUTPUT_BUFFER,R11 ;GET LENGTH OF TITLE MOVW R11,OUT_RAB+RAB$W_RSZ ;STORE LENGTH MOVL #OUTPUT_BUFFER,OUT_RAB+RAB$L_RBF INCL LINES_OUTPUT ;V1.27 INCL PAGES_OUTPUT ;V1.27 $PUT RAB=OUT_RAB BLBS R0,21$ JMP WRITE_ERROR ;FATAL ERROR IN WRITE ; SET UP THE SUB TITLE LINE- FIRST IS THE MODULE NAME, COMMAND LINE, ;V1.26 ; AND FILE NAME ;V1.26 21$: MOVC5 #0,NULL,#0,#132,OUTPUT_BUFFER ;V1.26 MOVC3 #32,CURRENT_MODULE_NAME,OUTPUT_BUFFER ;V1.26 MOVC3 COMMAND_BUFFER,@COMMAND_BUFFER+4,OUTPUT_BUFFER+32 ;V1.26 MOVL R3,R11 ;V1.26 MOVC5 #0,NULL,#^A/ /,#5,(R11) ;V1.26 MOVL R3,R11 ;V1.26 BITL #,FLAG_WORD ;V1.26 BNEQ 2021$ ;V1.26 MOVZBL ,R6 ;V1.26 LOCC #0,R6,@ ;V1.26 SUBL3 ,R1,R6 ;V1.26 MOVC3 R6,@,(R11) ;V1.26 MOVL R3,R11 ;V1.26 2021$: SUBL2 #OUTPUT_BUFFER,R11 ;V1.26 CMPL #132,R11 ;V1.26 BGEQ 1021$ ;V1.26 MOVL #132,R11 ;V1.26 1021$: MOVW R11,OUT_RAB+RAB$W_RSZ ;SET UP SUB TITLE ;V1.26 MOVL #OUTPUT_BUFFER,OUT_RAB+RAB$L_RBF ;V1.26 INCL LINES_OUTPUT ;V1.27 $PUT RAB=OUT_RAB BLBS R0,22$ JMP WRITE_ERROR 22$: MOVW #0,OUT_RAB+RAB$W_RSZ ;EMPTY LINE MOVAL NULL,OUT_RAB+RAB$L_RBF INCL LINES_OUTPUT ;V1.27 $PUT RAB=OUT_RAB BLBS R0,23$ JMP WRITE_ERROR ; RESET LINE COUNT_DOWN 23$: ADDL3 LINES_PER_PAGE,#-6,LINES_ON_PAGE ; ; FORM OUTPUT LINE WITH LINE NUMBER AND OUTPUT IT NO_HEADER: MOVL #OUTPUT_BUFFER,R11 ;GET OUTPUT POINTER TSTL ERROR_MESS BNEQ NO_NUMBER CALLG NULL,GET_LINE_NUMBER ;GET NEW LINE NUMBER MOVAL OUTPUT_BUFFER,DESCRIPTER2+4 ;SET UP FOR ASCII LINE NUMBER MOVL #4,DESCRIPTER2 PUSHAL DESCRIPTER2 PUSHAL LINE_NUMBER CALLS #2,G^OTS$CVT_L_TI ADDL2 #4,R11 MOVB #^A/ /,(R11)+ ;BLANK FILL PUSHL #0 ;FILL IN INCLUDE NESTING DEPTH MOVL R11,DESCRIPTER2+4 MOVL #2,DESCRIPTER2 PUSHAL DESCRIPTER2 PUSHAL INCLUDE_LEVEL CALLS #3,G^OTS$CVT_L_TI ;INSERT INCLUDE NESTING LEVEL ADDL2 #2,R11 MOVB #^A/ /,(R11)+ ;ANOTHER BLANK NO_NUMBER: MOVL 4(AP),R10 ;GET POINTER TO DESCRIPTER MOVAL OUTPUT_BUFFER+132,R6 SUBL2 R11,R6 ;CACULATE NUMBER OF BYTES LEFT IN ;OUTPUT BUFFER MOVC5 (R10),@4(R10),#0,R6,(R11) ;COPY OUTPUT STRING LOCC #0,#132,OUTPUT_BUFFER MOVAL OUTPUT_BUFFER,OUT_RAB+RAB$L_RBF SUBL2 #OUTPUT_BUFFER,R1 ; REMOVE ALL TRAILING BLANKS AND NULLS ;V3.11 1$: CMPB #^A/ /,OUTPUT_BUFFER-1(R1) ;V3.11 BEQL 2$ ;V3.11 TSTB OUTPUT_BUFFER-1(R1) ;V3.11 BNEQ 3$ ;V3.11 2$: DECL R1 ;V3.11 CMPL #1,R1 ;V3.11 BLSS 1$ ;V3.11 3$: ;V3.11 MOVW R1,OUT_RAB+RAB$W_RSZ INCL LINES_OUTPUT ;V1.27 $PUT RAB=OUT_RAB BLBC R0,WRITE_ERROR DECL LINES_ON_PAGE RET WRITE_ERROR: MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL OUT_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL PUT_ERROR ;ERROR MESSAGE CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 .PAGE .SUBTITLE GET LINE NUMBER .ENTRY GET_LINE_NUMBER,^M BITL #PREPROCESSOR_FLAG,FLAG_WORD+4 ;DO WE WANT PREPORCESSOR NUMBERS;V3.04 BNEQ 1$ ;YES INCL LINE_NUMBER ;NO-JUST BUMP LINE NUMBER RET 1$:; CHECK INPUT BUFFER ; SCANN FROM COL 80 TO 73-SKIPPING BLANKS AND NULLS, STOPING ON ; NON NUMBER FOUND MOVAL INPUT_BUFFER+80,R11 ;SET UP FOR SCAN MOVL #8,R10 ;8 CHRS CLRL R9 ;CLR ACCUMATOR MOVL #1,R8 ;MULTIPLYER 2$: MOVB -(R11),R7 ;GET CHR BEQL 3$ ;IF NULL SKIP CMPB #^A/ /,R7 ;DITTO FOR BLANK BEQL 3$ CMPB #^A/0/,R7 ;IS IT LESS THAN ZERO BGTR 4$ ;YES-DONE CMPB #^A/9/,R7 ;.GT.9 BLSS 4$ ;YES-DONE SUBB2 #^A/0/,R7 CVTBL R7,R7 MULL2 R8,R7 ;MUL TO PROPER D.P. ADDL2 R7,R9 MULL2 #10,R8 3$: SOBGTR R10,2$ 4$: TSTL R9 ;WAS A NUMBER SPECIFIED BEQL 5$ ;NO MOVL R9,LINE_NUMBER ;YES-SET LINE NUMBER RET 5$:; NO LINE NUMBER SPECIFIED-IF ZERO SET TO 1 ELSE LEAVE ALONE TSTL LINE_NUMBER BNEQ 6$ MOVL #1,LINE_NUMBER 6$: RET .PAGE .SUBTITLE OUTPUT LINE PURE DATA .PSECT PURE_DATA,NOEXE,SHR,RD,NOWRT,CON,GBL PUT_ERROR: .ASCID /INDEX-F-File Write Record Error/ TITLE1: .ASCID ?VAX/VMS INDEX V3.25? ;V3.25 TITLE2: .ASCID ? Page ? ;V1.27 TITLE3A:.ASCID ? Source Listing ? ;V1.27 TITLE3B:.ASCID ? Cross Reference ? ;V1.27 TITLE3C:.ASCID ? Super Cross Reference ? ;V1.27 TITLE3D:.ASCID ? Entry Point Cross Reference ? ;V1.27 TITLE3E:.ASCID ? Statistics ? ;V1.27 TITLE3F:.ASCID ? Options ? ;V1.27 TITLE3G:.ASCID ? Calling Tree ? ;V1.27 TITLE3H:.ASCID ? Called By Tree ? ;V1.27 TITLE3I:.ASCID ? Flow Chart ? ;V1.27 TITLE3J:.ASCID ? Structure ? ;V3.00 TITLE3K:.ASCID ? Calling Argument Cross Reference ? ;V3.04 .PAGE ;V3.02 .SUBTITLE SYSTEM ERROR MESSAGE HANDLEING ;V3.02 .ENTRY SYSTEM_ERROR_MESSAGE,^M ;V3.02 ; ;V3.02 ; CALLED WITH 3 ARGUMENTS ACCORING TO FORTRAN STD ;V3.02 ; ARG1 INDEX ERROR MESSAGE PASS BY DESCRIPTER ;V3.02 ; ARG2 SYSTEM ERROR VALUE (SS$_XXX OR RMS$_XXX) ;V3.02 ; ARG3 SUPLIMENTAL VALUE TO ABOVE-USEUALLY FAB/RAB$L_STV VALUE ;V3.02 ; OUTPUTS TO LIST FILE ARE NOT DONE HERE ;V3.02 TSTL 4(AP) ;V3.02 BEQL 16$ ;V3.02 PUSHAL @4(AP) ;FIRST OUTPUT THE INDEX ERROR MESSAGE ;V3.02 CALLS #1,G^LIB$PUT_OUTPUT ;V3.02 16$: ;V3.02 EXTZV #16,#12,@8(AP),R0 ;GET FACILITY CODE ;V3.02 CMPL #0,R0 ;IS IT A SYSTEM CODE ;V3.02 BNEQ 1$ ;NO ;V3.02 BRW 100$ ;YES ;V3.02 1$: CMPL #1,R0 ;IS IT AN RMS CODE ;V3.02 BEQL 2$ ;YES ;V3.02 BRW 200$ ;NO ;V3.02 .MACRO CHKERR ERR,DST,?A ;V3.02 CMPL #ERR,R0 ;V3.02 BNEQ A ;V3.02 BRW DST ;V3.02 A: ;V3.02 .ENDM CHKERR ;V3.02 2$:; SET UP RMS ERROR CODES ;V3.02 MOVW #2,MESSAGE_VECTOR ;V3.02 MOVW #15,MESSAGE_VECTOR+2 ;V3.02 MOVL @8(AP),MESSAGE_VECTOR+4 ;V3.02 CLRL MESSAGE_VECTOR+8 ;V3.02 MOVL @8(AP),R0 ;V3.02 CHKERR RMS$_ACC,10$ ;V3.02 CHKERR RMS$_AID,10$ ;V3.02 CHKERR RMS$_ALN,10$ ;V3.02 CHKERR RMS$_AOP,10$ ;V3.02 CHKERR RMS$_ATR,10$ ;V3.02 CHKERR RMS$_ATW,10$ ;V3.02 CHKERR RMS$_BKZ,10$ ;V3.02 CHKERR RMS$_CCF,10$ ;V3.02 CHKERR RMS$_CDA,10$ ;V3.02 CHKERR RMS$_CHN,10$ ;V3.02 CHKERR RMS$_COD,10$ ;V3.02 CHKERR RMS$_CRE,10$ ;V3.02 CHKERR RMS$_CRMP,10$ ;V3.02 CHKERR RMS$_DAC,10$ ;V3.02 CHKERR RMS$_DAN,10$ ;V3.02 CHKERR RMS$_DFL,10$ ;V3.02 CHKERR RMS$_DNF,10$ ;V3.02 CHKERR RMS$_DPE,10$ ;V3.02 CHKERR RMS$_DTP,10$ ;V3.02 CHKERR RMS$_ENQ,10$ ;V3.02 CHKERR RMS$_ENT,10$ ;V3.02 CHKERR RMS$_EXT,10$ ;V3.02 CHKERR RMS$_FLG,10$ ;V3.02 CHKERR RMS$_FND,10$ ;V3.02 CHKERR RMS$_IAN,10$ ;V3.02 CHKERR RMS$_IBF,10$ ;V3.02 CHKERR RMS$_IBK,10$ ;V3.02 CHKERR RMS$_IFA,10$ ;V3.02 CHKERR RMS$_IFL,10$ ;V3.02 CHKERR RMS$_IMX,10$ ;V3.02 CHKERR RMS$_IRC,10$ ;V3.02 CHKERR RMS$_KNM,10$ ;V3.02 CHKERR RMS$_KSI,10$ ;V3.02 CHKERR RMS$_LAN,10$ ;V3.02 CHKERR RMS$_MKD,10$ ;V3.02 CHKERR RMS$_NET,10$ ;V3.02 CHKERR RMS$_NETFAIL,10$ ;V3.02 CHKERR RMS$_ORD,10$ ;V3.02 CHKERR RMS$_POS,10$ ;V3.02 CHKERR RMS$_RER,10$ ;V3.02 CHKERR RMS$_RMV,10$ ;V3.02 CHKERR RMS$_RPL,10$ ;V3.02 CHKERR RMS$_SIZ,10$ ;V3.02 CHKERR RMS$_SPL,10$ ;V3.02 CHKERR RMS$_SUP,10$ ;V3.02 CHKERR RMS$_SUPPORT,10$ ;V3.02 CHKERR RMS$_SYS,10$ ;V3.02 CHKERR RMS$_WBE,10$ ;V3.02 CHKERR RMS$_WER,10$ ;V3.02 CHKERR RMS$_WPL,10$ ;V3.02 CHKERR RMS$_XAB,10$ ;V3.02 BRW 300$ ;V3.02 10$: MOVL @12(AP),MESSAGE_VECTOR+8 ;V3.02 BRW 300$ ;V3.02 100$: ;SYSTEM ERROR CODES ;V3.02 MOVW #1,MESSAGE_VECTOR ;V3.02 MOVW #15,MESSAGE_VECTOR+2 ;V3.02 MOVL @8(AP),MESSAGE_VECTOR+4 ;V3.02 ; ADD SYSTEM ERROR CHECKS HERE FOR FA0 ARGS ;V3.02 BRW 300$ ;V3.02 200$:; ALL OTHER ERROR TYPES ;V3.02 MOVW #2,MESSAGE_VECTOR ;V3.02 MOVW #15,MESSAGE_VECTOR+2 ;V3.02 MOVL @8(AP),MESSAGE_VECTOR+4 ;V3.02 CLRL MESSAGE_VECTOR+8 ;V3.02 BRW 300$ ;V3.02 300$: PUSHAL MESSAGE_VECTOR ;V3.02 CALLS #1,G^SYS$PUTMSG ;V3.02 RET ;V3.02 .END