CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC SUBROUTINE SCRINI(RC) CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C INCLUDE 'SY:ENTRY.CMN' C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C CCC READ IN SCREEN/OUTPUT FILE NAME (1ST QUALIFIER OF NAME ONLY) CALL UVT100(ED,2) CALL UVT100(SCA,0) CALL UVT100(SCA,1) CALL UVT100(CUP,24,2) WRITE(4,5) 5 FORMAT('ENTER FILE NAME: ') CALL UVT100(SCA,0) READ(4,1600,END=10) NAMLEN, (FILNAM(I), I = 4,NAMLEN+3) RC = 1 GOTO 20 10 RC = -1 RETURN C CCC SET UP SCREEN FILE NAME (2ND QUALIFIER OF NAME IS 'SCR') CCC FINAL NAME IS 'SY:AN.SCR' ('AN' FOR ALPHA-NUMERIC) 20 FILNAM(NAMLEN+4) = '.' FILNAM(NAMLEN+5) = 'S' FILNAM(NAMLEN+6) = 'C' FILNAM(NAMLEN+7) = 'R' C OPEN (UNIT=1, NAME=FILNAM, FORM='FORMATTED', DISP='KEEP', * TYPE='OLD') C CCC SCRCOL: ROW LENGTH IN SCRCOL(S,R,1) AND POSITION IN BUFFER CCC SCRTXT: THE TEXT OF EACH SCREEN POSITION (1 CHAR). RECLEN = 0 NUMSCR = 1 NUMFLD(1) = 0 NUMFLD(2) = 0 DO 103 ST = 1,2 DO 102 RT = 1,24 IF (RT.EQ.24) THEN NUMSCR = 2 GOTO 103 END IF READ(1, 1600, END=200) NCHRS, (SCRTXT(ST,RT,CT), CT=1,80) IF (SCRTXT(ST,RT,1).EQ.'S') THEN NUMSCR = 2 GOTO 103 END IF NUMROW(ST) = RT SCRCOL(ST,RT,1) = NCHRS DO 101 CT = 2,NCHRS IF (SCRTXT(ST,RT,CT).EQ.UNDERB) THEN RECLEN = RECLEN+1 SCRCOL(ST,RT,CT) = RECLEN IF (SCRTXT(ST,RT,CT-1).NE.UNDERB) THEN NUMFLD(ST) = NUMFLD(ST)+1 BUFCHR(NUMFLD(1)+NUMFLD(2),1) = RECLEN END IF ELSE SCRCOL(ST,RT,CT) = PROTEC END IF 101 CONTINUE 102 CONTINUE 103 CONTINUE C 200 CLOSE (UNIT=1, DISP='KEEP') C CCC CHECK FOR ILLEGAL RECORD LENGTH: IF (RECLEN.LT.1 .OR. RECLEN.GT.510) RC = -2 C 1600 FORMAT(Q, 80A1) C RETURN END