cdc:nos2.source:nam5871:twrite
Table of Contents
TWRITE
Table Of Contents
Source Code
- TWRITE.txt
- *DECK TWRITE
- IDENT TWRITE
- EXT OMSG
- EXT XTRACE
- *IF DEF,IMS
- *#
- *1DC TWRITE
- *
- * 1. PROC NAME AUTHOR DATE
- * TWRITE P.C.TAM 78/09/12
- *
- * 2. FUNCTIONAL DESCRIPTION.
- * RECORD MESSAGES INTO ZZZZZDN FILE
- *
- * 3. METHOD USED.
- * IF I/O ERROR OCCURRED ON ZZZZZDN FILE,
- * RETURN.
- * ELSE (NO I/O ERROR YET ON ZZZZZDN FILE),
- * EXECUTE RTIME MACRO TO GET CURRENT SYSTEM RTIME.
- * EXECUTE WRITEO MACRO TO WRITE CURRENT RTIME TO FILE.
- * IF NO I/O ERROR YET ON ZZZZZDN FILE,
- * EXECUTE WRITEW MACRO TO WRITE TRACE TEXT TO FILE.
- * IF I/O ERROR OCCURRED ON ZZZZZDN FILE,
- * CALL OMSG TO ISSUE INFORMATIVE DAYFILE MESSAGE.
- *
- * 4. ENTRY PARAMETERS.
- * (A1) ADDRESS OF THE ADDRESS OF FET.
- * (A1)+1 ADDRESS OF THE ADDRESS OF MESSAGE ADDRESS.
- * (A1)+2 ADDRESS OF THE ADDRESS OF MESSAGE LENGTH.
- * (A1)+3 ADDRESS OF THE ADDRESS OF NIP-JUST-ALLOCATE-BUFFER
- * FLAG.
- *
- * 5. EXIT PARAMETERS.
- * NONE.
- *
- * 6. COMMON DECKS USED.
- * CYBERDEFS INPARU MACDEF BPIPBUF SYSTIME
- *
- * 7. ROUTINES CALLED.
- * OMSG ISSUE DAYFILE MESSAGE
- * RTIME GET REAL TIME MACRO.
- * WRITEO WRITE WORD TO CIO BUFFER MACRO.
- * WRITEW WRITE BLOCK TO CIO BUFFER MACRO.
- * XTRACE TRACE CALLER
- *
- * 8. DAYFILE MESSAGES.
- * " CIO ERROR NNB, LFN = ZZZZZDN."
- *
- *#
- *ENDIF
- *CALL MACDEF
- *CALL CYBERDEFS
- *CALL INPARU
- *CALL SYSTIME
- TW1 IFEQ ZZDN,1
- ENTRY TWRITE
- TWRITE SUBR = ENTRY/EXIT
- SX6 A1 ADDRESS OF PARAMETER BLOCK
- SA6 TEMP SAVE ADDRESS OF PARAMETER BLOCK IN TEMP
- IFEQ DEBUG,1,4
- SX1 XTWRITE
- RJ XTRACE
- SA1 TEMP
- SA1 X1
- MX4 5 MASK FOR ABNORMAL TERMINATION FIELD IN FET
- SA2 X1 X2 = FIRST WORD OF FET
- LX4 9+5 SHIFT MASK TO POSITION OF ABNORMAL TERM FLD
- BX5 X4*X2 EXTRACT ABNORMAL TERMINATION FIELD FROM FET
- NZ X5,TWRITEX IF I/O ERROR HAS OCCURRED ON FILE
- RTIME TIM1,R
- SA1 TEMP X1 = ADDRESS OF PARAMETER BLOCK
- SA1 X1 X1 = ADDRESS OF FET
- SA2 TIM1
- BX6 X2
- WRITEO X1 RECORD ELAPSED TIME
- SA1 TEMP X1 = ADDRESS OF PARAMETER BLOCK
- SA1 X1 X1 = ADDRESS OF FET
- MX4 5 MASK FOR ABNORMAL TERMINATION FIELD IN FET
- SA2 X1 X2 = FIRST WORD OF FET
- LX4 9+5 SHIFT MASK TO POSITION OF ABNORMAL TERM FLD
- BX5 X4*X2 EXTRACT ABNORMAL TERMINATION FIELD FROM FET
- NZ X5,TWRITE2 IF I/O ERROR HAS OCCURRED ON FILE
- SB1 1
- SA2 A1+B1
- SA3 A2+B1
- SA4 A3+B1
- SA2 X2 (X2)=MESSAGE ADDRESS
- SA3 X3 (X3)=MESSAGE LENGTH
- WRITEW X1,X2,X3
- SA1 TEMP X1 = ADDRESS OF PARAMETER BLOCK
- SA1 X1 X1 = ADDRESS OF FET
- MX5 5 MASK FOR ABNORMAL TERMINATION FIELD IN FET
- SA2 X1 X2 = FIRST WORD OF FET
- LX5 9+5 SHIFT MASK TO ABNORMAL TERM FIELD POSITION
- BX5 X5*X2 EXTRACT ABNORMAL TERMINATION CODE
- ZR X5,TWRITEX RETURN IF NO I/O ERROR
- TWRITE2 MX0 3 MASK FOR ONE OCTAL DIGIT
- AX5 9 RIGHT JUSTIFY ABNORMAL TERM CODE
- LX0 3 RIGHT JUSTIFY OCTAL DIGIT MASK
- SA2 ERRMSGC X2 = WORD OF DAYFILE MSG TO CONTAIN CODE
- BX4 X0*X5 EXTRACT LEAST SIGNIFICANT DIGIT
- AX5 3 EXTRACT MOST SIGNIFICANT DIGIT
- SX4 X4+33B CONVERT OCTAL DIGIT TO OCTAL DISPLAY
- SX5 X5+33B CONVERT OCTAL DIGIT TO OCTAL DISPLAY
- LX5 6 SHIFT MOST SIG DIGIT TO 2ND DIGIT POS
- MX0 12D MASK FOR ABNORMAL TERM FIELD IN DAY MSG
- BX5 X5+X4 ABNORMAL TERM CODE IN OCTAL DISPLAY CODE
- LX0 42D+12D SHIFT MASK TO ABNORMAL TERM FIELD POSITION
- LX5 42D SHIFT DISPLAY CODE NO TO DAY MSG POSITION
- BX0 -X0*X2 CLEAR ABNORMAL TERM CODE FIELD IN DAY MSG
- BX6 X0+X5 ADD ABNORMAL TERM CODE TO DAY MSG
- SA6 A2
- SA1 LOCMSG A1 = ADDRESS OF PARAMETER BLOCK
- RJ OMSG ISSUE DAYFILE MESSAGE
- EQ TWRITEX
- TIM1 BSS 1
- TW1 ENDIF
- XTWRITE DATA L*TWRIT*
- TEMP BSS 1
- ERRMSG DIS ,* CIO ERROR NNB, LFN = ZZZZZDN.*
- ERRMSGC EQU ERRMSG+1 WORD TO CONTAIN ABNORMAL TERM CODE
- LOCMSG VFD 60D/ERRMSG LOCATION OF DAYFILE MESSAGE
- END
cdc/nos2.source/nam5871/twrite.txt ยท Last modified: 2023/08/05 17:23 by Site Administrator