SUBROUTINE DRAW_FILE_CONTENTS(TITLE, LUN) C---------------------------------------------------------------------- C- C- Purpose and Methods : Display the contents of a file on the TRGMON C- scrolling display. C- C- Inputs : TITLE The title to display at the top of the screen C- LUN The unit number to read the info from C- Outputs : screen output C- Controls: none C- C- Created 9-APR-1992 Philippe Laurens, Steven Klocek C- C---------------------------------------------------------------------- IMPLICIT NONE C INCLUDE 'LV1_MON_SCREEN.INC' INCLUDE 'LV1_MON_SCREEN_LAYOUT.PARAMS' INTEGER TRULEN C CHARACTER*(*) TITLE INTEGER LUN C CHARACTER*132 BUFFER LOGICAL OK INTEGER LENGTH C LOGICAL FIRST_LINE LOGICAL STRIP_FIRST C CALL RESET_LIST() CALL SETSCROLL(3, LINES) C BUFFER = TITLE CALL DATE(BUFFER(62:70)) CALL TIME(BUFFER(72:79)) CALL PUT_STRING(1,1, BUFFER(1:79)) C FIRST_LINE = .TRUE. STRIP_FIRST = .TRUE. DO WHILE (.TRUE.) READ (LUN, 50, ERR = 250, END = 250 ) BUFFER 50 FORMAT( A ) LENGTH = MAX(1,TRULEN(BUFFER)) C IF (FIRST_LINE .EQV. .TRUE.) THEN IF (BUFFER(1:1) .NE. ' ') THEN STRIP_FIRST = .FALSE. ENDIF FIRST_LINE = .FALSE. ENDIF C C Remove the FORTRAN carriage control character C IF ((BUFFER(1:1) .EQ. ' ').AND.(STRIP_FIRST .EQV. .TRUE.)) THEN BUFFER = BUFFER(2:LENGTH) LENGTH = LENGTH -1 ENDIF C C Break lines longer than 79 characters. Long lines confuse the pager C IF (LENGTH .LE. 79) THEN CALL PUT_STRING(PS_LIST,1, BUFFER(1:LENGTH) ) ELSE CALL PUT_STRING(PS_LIST,1, BUFFER(1:79) ) CALL PUT_STRING(PS_LIST,1, BUFFER(80:LENGTH)) ENDIF END DO C C Close the file and put up the list C 250 CONTINUE CALL PUT_LIST(3,1) C C Clean up the display C 300 CONTINUE CALL MOVE_CURSOR_SAFE CALL FLUSH_SCREEN C---------------------------------------------------------------------- 999 RETURN END