cdc:nos2.source:nam5871:opitrce
Table of Contents
OPITRCE
Table Of Contents
- [00005] PROC OPITRCE1)
- [00082] PROC DAYTIME
- [00083] PROC ILOFS
- [00084] PROC ITRACE
- [00085] PROC OMSG
- [00086] PROC OPRETN
- [00087] PROC READ
- [00088] PROC REWIND
- [00089] PROC WRITEO
- [00090] PROC WRITER
- [00091] PROC XTRACE
Source Code
- OPITRCE.txt
- *DECK OPITRCE
- USETEXT NIPDEF
- USETEXT BPIPBUF
- USETEXT DBGBUF
- PROC OPITRCE((LFN),(FRWD)); # INITIALIZE NIP DEBUG LOG FILE #
- STARTIMS;
- #
- *1DC OPITRCE
- *
- * 1. SUBROUTINE AUTHOR DATE
- * OPITRCE E. GEE 86/02/03
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * INITIALIZE NIP DEBUG LOG FILE.
- *
- * 3. METHOD USED.
- * IF JOB RECORD FILE NEEDS TO BE READ,
- * RESET FET FOR JOB RECORD FILE.
- * IF JOB RECORD FILE NEEDS TO BE REWOUND,
- * CALL REWIND TO REWIND JOB RECORD FILE.
- * IF NO I/O ERROR,
- * CALL READ TO READ IN JOB RECORD.
- * IF I/O ERROR,
- * CALL OMSG TO ISSUE INFORMATIVE DAYFILE MESSAGE.
- * ELSE (NO I/O ERROR OCCURRED),
- * CALL WRITER TO WRITE JOB RECORD AND EOR TO ZZZZZDN.
- * IF I/O ERROR ON ZZZZZDN FILE,
- * CALL OMSG TO ISSUE INFORMATIVE DAYFILE MESSAGE.
- * CALL OPRETN TO RETURN BAD ZZZZZDN FILE.
- * RESET FET POINTERS.
- * CALL ILOFS TO SET FLUSH FET LIST.
- * CALL ITRACE TO SET UP HEADER ENTRY IN CIO BUFFER.
- * CALL WRITER TO FLUSH CIO BUFFER AND WRITE END OF RECORD.
- * IF NO I/O ERROR,
- * CALL DAYTIME TO GET CURRENT CLOCK TIME.
- * CALL WRITEO TO COPY CLOCK TIME TO CIO BUFFER.
- * ELSE (I/O ERROR ON DEBUG LOG FILE),
- * CALL OMSG TO ISSUE INFORMATIVE DAYFILE MESSAGE.
- *
- * 4. ENTRY PARAMETERS.
- * LFN NAME OF FILE WITH JOB RECORD IF NEEDED
- * FRWD REWIND FILE FLAG
- * = 0 REWIND FILE BEFORE READ
- * = 1 NO REWIND
- *
- * 5. EXIT PARAMETERS.
- * BPAT[0] NONZERO IF I/O ERROR
- *
- * 6. COMMON DECKS CALLED AND SYMPL TEXT USED.
- * BPIPBUF FET AND CIO BUFFER FOR DEBUG LOG FILE
- * DBGBUF DEBUG BUFFERS
- * NIPDEF NIP CONSTANT DEFINITIONS
- *
- * 7. SUBROUTINES AND MACROS CALLED.
- * DAYTIME GET CURRENT TIME
- * ILOFS EXECUTE SETLOF MACRO
- * ITRACE CREATE HEADER ENTRY IN CIO BUFFER
- * OMSG ISSUE DAYFILE MESSAGE
- * OPRETN RETURN FILE
- * READ READ FILE
- * REWIND REWIND FILE
- * WRITEO WRITE ONE WORD TO CIO BUFFER
- * WRITER WRITE END OF RECORD TO FILE
- * XTRACE RECORD PROCEDURE CALL
- *
- * 8. DAYFILE MESSAGES.
- * " CIO ERROR XXB, LFN = ZZZZZZZ."
- *
- #
- STOPIMS;
- BEGIN
- #
- INPUT PARAMETERS
- #
- ITEM LFN C(10); # NAME OF LOCAL JOB RECORD #
- ITEM FRWD B; # REWIND FLAG #
- #
- EXTERNAL ROUTINES CALLED
- #
- XREF
- BEGIN
- PROC DAYTIME; # GET CURRENT TIME #
- PROC ILOFS; # EXECUTE SETLOF MACRO #
- PROC ITRACE; # WRITE HDR ENTRY TO CIO BUFFER #
- PROC OMSG; # ISSUE DAYFILE MESSAGE #
- PROC OPRETN; # RETURN FILE #
- PROC READ; # READ FILE #
- PROC REWIND; # REWIND FILE #
- PROC WRITEO; # WRITE 1 WD FROM WSA TO CIO BUF#
- PROC WRITER; # WRITE END OF REC TO FILE #
- PROC XTRACE; # RECORD PROCEDURE CALL #
- END
- #
- LOCAL VARIABLES
- #
- CONTROL IFEQ ZZDN,1;
- ITEM DTIME; # WORD TO CONTAIN CURRENT TIME #
- ARRAY WRMSG S(4); # ERROR MESSAGE IF WRITE FAILS #
- BEGIN
- ITEM WRMSG1 C(0,0,30) = [" CIO ERROR XXB, LFN = ZZZZZDN."];
- ITEM WRMSGAT U(1,6,12); # ABNORMAL TERMINATION CODE FROM CIO #
- ITEM WRMSGLN C(2,12,7); # NAME OF FILE WITH I/O ERROR #
- ITEM WRMSGE U(4,00,60) = [0];
- END
- CONTROL FI;
- #**********************************************************************#
- #
- EXECUTABLE CODE BEGINS HERE
- #
- CONTROL IFEQ ZZDN,1;
- CONTROL IFEQ DEBUG,1;
- XTRACE("OPITRC"); # RECORD PROCEDURE CALL #
- CONTROL FI;
- #
- IF MC IS NONZERO, THERE IS A JOB RECORD FILE WHICH MUST BE READ
- #
- IF MC NQ 0
- THEN # JOB RECORD FILE TO READ #
- BEGIN
- BPNAME[0] = LFN; # INITIALIZE LOCAL FILE NAME #
- BPIN[0] = BPFIRS[0]; # INITIALIZE FET IN POINTER #
- BPOUT[0] = BPFIRS[0]; # INITIALIZE FET OUT POINTER #
- BPAT[0] = 0; # INITIALIZE ABNORMAL TERM FIELD#
- IF NOT FRWD
- THEN # NEED TO REWIND JOB RECORD FILE#
- BEGIN
- REWIND(BPFET); # REWIND JOB RECORD FILE #
- END
- IF BPAT[0] EQ 0
- THEN # NO I/O ERR ON JOB RECORD FILE #
- BEGIN
- READ(BPFET,1); # READ JOB RECORD INTO CIO BUF #
- END
- IF BPAT[0] EQ 0
- THEN # NO I/O ERR ON JOB RECORD FILE #
- BEGIN
- BPNAME[0] = "ZZZZZDN"; # NAME OF NIP DEBUG LOG FILE #
- WRITER(BPFET,1); # WRITE JOB REC PLUS EOR TO FILE#
- IF BPAT[0] NQ 0
- THEN # I/O ERR ON NIP DEBUG LOG FILE #
- BEGIN
- WRMSGAT[0] = ((BPAT[0]/8)+27)*64 + BPAT[0]-(BPAT[0]/8)*8+27;
- WRMSGLN[0] = BPNAME[0]; # NAME OF FILE WITH I/O ERROR #
- OMSG(WRMSG,0); # ISSUE DAYFILE MESSAGE #
- OPRETN(BPFET); # RETURN BAD FILE #
- END
- END
- ELSE # I/O ERR ON JOB RECORD FILE #
- BEGIN
- WRMSGAT[0] = ((BPAT[0]/8)+27)*64 + BPAT[0] - (BPAT[0]/8)*8+27;
- WRMSGLN[0] = BPNAME[0]; # NAME OF FILE WITH I/O ERROR #
- OMSG(WRMSG,0); # ISSUE DAYFILE MESSAGE #
- END
- END
- #
- REINITIALIZE FET
- #
- BPNAME[0] = "ZZZZZDN"; # INITIALIZE LOCAL FILE NAME #
- BPIN[0] = BPFIRS[0]; # INITIALIZE FET IN POINTER #
- BPOUT[0] = BPFIRS[0]; # INITIALIZE FET OUT POINTER #
- BPAT[0] = 0; # INITIALIZE ABNORMAL TERM FIELD#
- MSGCNT = 0; # REINITIALIZE MESSAGE COUNT #
- ILOFS; # EXECUTE SETLOF MACRO #
- ITRACE(BPFET); # WRITE HDR ENTRY TO CIO BUFFER #
- WRITER(BPFET,1); # FLUSH CIO BUF AND WRITE EOR #
- #
- , CHECK FOR I/O ERROR AFTER WRITING END OF RECORD
- #
- IF BPAT[0] EQ 0
- THEN # NO I/O ERROR ON ZZZZZDN FILE #
- BEGIN
- DAYTIME(DTIME); # GET CURRENT TIME #
- WRITEO(BPFET,1); # WRITE CURRENT TIME TO CIO BUF #
- END
- ELSE # I/O ERROR OCCURRED ON ZZZZZDN #
- BEGIN
- #
- ISSUE INFORMATIVE DAYFILE MESSAGE
- #
- WRMSGAT[0] = ((BPAT[0]/8)+27)*64 + BPAT[0] - (BPAT[0]/8)*8+27;
- WRMSGLN[0] = BPNAME[0]; # NAME OF FILE WITH I/O ERROR #
- OMSG(WRMSG,0); # ISSUE DAYFILE MESSAGE #
- END
- CONTROL FI;
- RETURN;
- END
- TERM
1)
LFN),(FRWD
cdc/nos2.source/nam5871/opitrce.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator