.TITLE TIME STAMP SCHED ;THIS PROGRAM TIME STAMPS THE FILE TIMSTMP.DAT EVERY ;FIVE MINUTES AS SCHEDULED THRU PDS. .MCALL FSRSZ$,FDAT$A,FDRC$A,FDOP$A,NMBLK$,FINIT$ .MCALL GTIM$S,PUT$,CLOSE$,EXIT$S,OPEN$A,FDBDF$,DIR$ .MCALL $STRUC,CALL,QIOW$S $STRUC ;STRUCTURED MACRO MCALL OUTLUN = 1 ;ASSIGN LUN #1 FSRSZ$ 1 ;ONE FILE TO BE OPENED FDBOUT: FDBDF$ ;SET UP FDB FDAT$A R.FIX,,16. ;RECORD INFO FDRC$A ,OUTBUF,16. ;RECORD INFO FDOP$A OUTLUN,DESCR,OFNAM ;OPEN INFO OUTBUF: .BLKB 10. ;OUTPUT BUFFER AREA .ASCII /04/ ;RECORD TYPE .ASCII /0000/ ;RESERVED FUTURE USE MES1: .ASCII <15> <12> /ERR *OPEN$A* NOTIFY SYSTEMS PGMMR SCHED/ ;ERR MSG1 MES1L=.-MES1 ;ERR MSG1 LENGTH .EVEN MES2: .ASCII <15> <12> /ERR *CLOSE$* NOTIFY SYSTEMS PGMMR SCHED/ ;ERR MSG2 MES2L=.-MES2 ;ERR MSG2 LENGTH .EVEN OFNAM: NMBLK$ TIMSTMP,DAT ;OUTPUT FILE NAME DATBLK: .BLKB 16. ;WORK AREA FOR TIME AND DATE DESCR: .WORD 0,0 ;DEVICE FIELD .WORD DIRSZ,DIRNM ;DIRECTORY FIELD .WORD 0,0 ;NAME FIELD DIRNM: .ASCII /[1,5]/ ;DIRECTORY VALUE DIRSZ=.-DIRNM ;DIRECTORY VALUE SIZE .EVEN .PAGE START: FINIT$ ;INITIALIZE MOV #DATBLK,R1 ;OUTPUT ADDRESS FOR GTIM$S GTIM$S R1 ;GET TIME AND DATE FROM MACHINE MOV #5.,R3 ;LOOP COUNTER MOV #OUTBUF,R4 ;ADDRESS SET UP FOR MOVE LOOP $WHILE 15 ;-LOOP CONTROL MOV (R1)+,(R4)+ ;-MOVE FROM WORK TO OUTPUT AREA DEC R3 ;-SUB ONE FROM LOOP COUNTER $END ;-END MOVE LOOP CALL OPNA ;OPEN FILE FOR APPEND $IF <,CC> ;-CHECK FOR NO ERR IN OPNA CALL PRTCLO ;-NO ERR THEN CLOSE OUTPUT $END ;-END ERR CHECK IN OPNA EXIT$S ;EXIT THE PROGRAM ; ;SUBROUTINE TO OPEN OUTPUT FILE FOR APPEND AND CHECK FOR ERR ; OPNA: OPEN$A #FDBOUT ;OPEN OUTPUT FOR APPEND $IF <,CS> ;-CHECK FOR ERR ON OPEN$A QIOW$S #IO.WLB,#5,#1,,,,<#MES1,#MES1L> ;-DISPLAY ERR MSG1 SEC ;-SET CARRY BIT $END ;-END CHECK FOR ERR ON OPEN$A RETURN ;RETURN TO MAIN ; ; SUBROUTINE TO WRITE AND CLOSE OUTPUT FILE AND CHECK FOR ERR ; PRTCLO: PUT$ #FDBOUT ;APPEND RECORD TO FILE CLOSE$ #FDBOUT ;CLOSE OUTPUT FILE $IF <,CS> ;-CHECK FOR ERR ON CLOSE$ QIOW$S #IO.WLB,#5,#1,,,,<#MES2,#MES2L> ;-DISPLAY ERR MSG2 $END ;-END ERR CHECK ON CLOSE$ RETURN ;RETURN TO MAIN .END START ;END OF PROGRAM