cdc:nos2.source:nam5871:odayfl
Table of Contents
ODAYFL
Table Of Contents
- [00004] PRGM ODAYFL
- [00056] PROC OMSG
- [00057] PROC XTRACE
Source Code
- ODAYFL.txt
- *DECK ODAYFL
- USETEXT NIPDEF
- USETEXT PARAMS
- PRGM ODAYFL; # DISPLAY CONTENTS OF NIP-S MEM #
- STARTIMS;
- #
- *1DC ODAYFL
- *
- * 1. PROC NAME AUTHOR DATE
- * ODAYFL E. GEE 86/09/25
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * DISPLAY THE CONTENTS OF NIP-S MEMORY IN OCTAL AND HEX.
- *
- * 3. METHOD USED.
- * LOOP FOR EACH WORD TO BE DISPLAYED IN NAM DAYFILE.
- * CONVERT CONTENTS OF WORD TO OCTAL DISPLAY.
- * CONVERT CONTENTS OF WORD TO HEX DISPLAY.
- * CALL OMSG TO DAYFILE THE DISPLAYED CONTENTS.
- *
- * 4. ENTRY PARAMETERS.
- * PARAMS1 FWA TO DISPLAY CONTENTS OF
- * PARAMS2 NO OF WORDS TO DISPLAY CONTENTS OF
- *
- * 5. EXIT PARAMETERS.
- * NONE
- *
- * 6. COMDECKS CALLED AND SYMPL TEXTS USED.
- * NIPDEF NIP CONSTANT DEFINITIONS
- * PARAMS COMMON BLOCK FOR PASSING PARAMETERS TO
- * AND FROM SECONDARY OVERLAYS.
- *
- * 7. ROUTINES AND OVERLAYS CALLED.
- * OMSG ISSUE DAYFILE MESSAGE
- * XTRACE RECORD PROCEDURE CALLS
- *
- * 8. DAYFILE MESSAGES AND OTHER IMPORTANT INFORMATION.
- *
- * THIS PROGRAM IS A SECONDARY OVERLAY LOADED BY SUBROUTINE
- * OVLCALL. WHEN EXECUTION HAS COMPLETED, A JUMP IS MADE TO
- * LOCATION RJMAIN TO RETURN TO THE CALLING PROGRAM.
- *
- *
- * W A R N I N G - THIS PROGRAM CANNOT EXCEED THE SECONDARY
- * OVERLAY BUFFER SIZE MINUS 5 (443B WORDS).
- *
- * THIS OVERLAY IS CALLED BY HPRUSM, NGIGO, AND NLOPIP.
- *
- #
- STOPIMS;
- #
- EXTERNAL VARIABLES
- #
- XREF
- BEGIN
- PROC OMSG; # ISSUE DAYFILE MESSAGE #
- PROC XTRACE; # RECORD PROCEDURE CALLS #
- LABEL RJMAIN; # RETURN ADDRESS IN OVLCALL #
- END
- #
- INTERNAL VARIABLES
- #
- #
- ARRAY TO HOLD DISPLAY CODE DATA TO DAYFILE
- #
- ARRAY TRAPMSG[0:3] S(1);
- BEGIN
- ITEM WDMSG C(0,0,10);
- ITEM ENDMSG U(0,42,18) = [,,,0];
- END
- #
- TEMPLATE OF WORD TO DISPLAY
- #
- BASED ARRAY OCTMSG P(1);
- ITEM OCTWD U(0,0,60);
- ITEM ADDR; # FWA OF WORD TO DISPLAY #
- ITEM CHARPOS; # NEXT POSITION TO INSERT CHA #
- ITEM HEXCHAR; # HEX DIGIT TO BE DISPLAYED #
- ITEM MSGNO; # CURRENT WORD IN DAY MSG BUFFER#
- ITEM NUM; # NUMBER OF WORDS TO DISPLAY #
- ITEM NUMPOS; # NEXT POSITION TO PICK UP NO #
- ITEM TEMP2; # COUNTER FOR WORD TO DISPLAY #
- #**********************************************************************#
- BEGIN
- CONTROL IFEQ DEBUG,1;
- XTRACE("DAYFL") ; # TRACE PROCEDURE CALL #
- CONTROL FI;
- ADDR = PARAMS1; # FWA TO DISPLAY CONTENTS OF #
- NUM = PARAMS2; # NUMBER OF WORD TO DISPLAY #
- #
- LOOP ONCE FOR EACH WORD TO DISPLAY CONTENTS OF WORD
- #
- FOR TEMP2 = 0 STEP 1 UNTIL NUM-1 DO
- BEGIN
- P<OCTMSG> = ADDR + TEMP2; # ADDR OF WORD TO DISPLAY #
- CHARPOS = 0;
- MSGNO = 0;
- NUMPOS = 0;
- #
- LOOP ONCE FOR EACH OCTAL DIGIT TO CONVERT TO OCTAL DISPLAY CODE
- #
- FOR NUMPOS = 0 STEP 3 UNTIL 57 DO
- BEGIN
- # MASK OFF OCTAL DIGIT AND ADD 33B TO FORM DISPLAY CODE #
- # EQUIVALENCE. SINCE EACH OCTAL DIGIT (3 BITS) BECOMES A CHAR #
- # (6 BITS) TWO WORDS ARE REQUIRED TO HOLD THE DISPLAY CODE DATA#
- B<CHARPOS,6>WDMSG[MSGNO] = B<NUMPOS,3>OCTWD[0] + O"33";
- IF CHARPOS EQ 54
- THEN # FIRST WORD HAS BEEN FILLED UP #
- BEGIN
- CHARPOS = 0; # INIT FOR 2ND WORD OF TRAPMSG #
- MSGNO = MSGNO + 1; # UPDATE TO POINT TO SECOND WORD#
- END
- ELSE # FIRST WORD NOT FILLED YET #
- BEGIN
- CHARPOS = CHARPOS + 6; # UPDATE PTR FOR INSERTING CHAR #
- END
- END
- #
- INSERT 2 BLANKS BETWEEN OCTAL AND HEX DISPLAY
- #
- B<0,12>WDMSG[MSGNO] = O"5555";
- CHARPOS = 12;
- #
- LOOP ONCE FOR EACH HEX DIGIT TO CONVERT TO HEX DISPLAY CODE
- #
- FOR NUMPOS = 0 STEP 4 UNTIL 56
- DO # CONVERT WORD TO HEX DISPLAY #
- BEGIN
- #
- MASK OFF HEX DIGITS AND CHECK IF GREATER THAN 9. IF SO,
- CONVERT TO HEX LETTER (A - F) BY SUBTRACTING 9. IF NOT,
- CONVERT TO DISPLAY CODE BY ADDING 33B TO FORM DISPLAY CODE
- EQUIVALENCE. SINCE EACH HEX DIGIT (4 BITS) BECOMES A CHAR
- (6 BITS) ONE AND A HALF WORDS ARE REQUIRED TO HOLD THE DISPLAY
- CODE DATA.
- #
- HEXCHAR = B<NUMPOS,4>OCTWD[0];
- IF HEXCHAR GR 9
- THEN # NEED TO CONVERT TO LETTER #
- BEGIN
- B<CHARPOS,6>WDMSG[MSGNO] = HEXCHAR - 9; # CONVERT TO DC #
- END
- ELSE # NEED TO CONVERT TO DISPLAY COD#
- BEGIN
- B<CHARPOS,6>WDMSG[MSGNO] = HEXCHAR + 27; # CONVERT TO DC #
- END
- IF CHARPOS EQ 54
- THEN # FIRST WORD HAS BEEN FILLED UP #
- BEGIN
- CHARPOS = 0; # INIT FOR 2ND WORD OF TRAPMSG #
- MSGNO = MSGNO + 1; # UPDATE TO POINT TO SECOND WORD#
- END
- ELSE # FIRST WORD NOT FILLED YET #
- BEGIN
- CHARPOS = CHARPOS + 6; # UPDATE PTR FOR INSERTING CHAR #
- END
- END
- #
- DISPLAY CONTENTS OF WORD (IN OCTAL AND HEX)
- #
- OMSG(TRAPMSG,0); # ISSUE DAYFILE MESSAGE #
- END
- GOTO RJMAIN; # RETURN TO CALLING PROGRAM #
- END
- TERM
cdc/nos2.source/nam5871/odayfl.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator