SUBROUTINE SCR_EOL(DIRECT) C ---- MOVE THE CURSOR TO THE END OF THIS FIELD INCLUDE 'SCREEN.FOR' LOGICAL*1 DIRECT C C ---- IF DIRECTION IS FORWARDS IF (DIRECT) THEN 10 ILASTCOL = ICOL DO I=ICOL,80 !FIND LAST NON-BLANK IN THIS FIELD IF (.NOT.LOGSCREEN(ILIN,I)) GOTO 100 IF (CHRSCREEN(ILIN)(I:I).NE.' ') ILASTCOL = I ENDDO C ---- CHECK TO SEE IF WE WERE AT THE END OF LINE TO START WITH C ---- AND WE NEED TO GO TO THE END OF THE NEXT FIELD 100 IF (ICOL .EQ. ILASTCOL) THEN ILASTLIN = ILIN CALL SCR_NEXTFLD(DIRECT) C ---- SEE IF THERE IS A NEW FIELD, IF SO MOVE EOL IF (ILIN .GT. ILASTLIN) GOTO 10 IF (ICOL .GT. ILASTCOL) GOTO 10 C ---- WE MUST BE AT BOTTOM OF SCREEN ENDIF IF (LOGSCREEN(ILIN,ILASTCOL+1).AND. ILASTCOL.NE.80) THEN ICOL = ILASTCOL+1 !MOVE TO NEXT AVAILABLE CHAR ELSE ICOL = ILASTCOL !CANN'T OVERFLOW FIELD ENDIF ELSE C ---- MOVE BACKWARDS THRU SCREEN ILASTCOL = ICOL CALL SCR_NEXTFLD(DIRECT) !GO TO BEGINNING OF CURRENT FIELD CALL SCR_NEXTFLD(DIRECT) !GO TO BEGINNING OF NEXT EARLIER FIELD C ---- NOW MOVE TO THE END OF THIS FIELD DO I=ICOL,80 !FIND LAST NON-BLANK IN THIS FIELD IF (.NOT.LOGSCREEN(ILIN,I)) GOTO 200 IF (CHRSCREEN(ILIN)(I:I).NE.' ') ILASTCOL = I ENDDO 200 IF (LOGSCREEN(ILIN,ILASTCOL+1).AND. ILASTCOL.NE.80) THEN ICOL = ILASTCOL+1 !MOVE TO NEXT AVAILABLE CHAR ELSE ICOL = ILASTCOL !CANN'T OVERFLOW FIELD ENDIF ENDIF ISTAT=LIB$SET_CURSOR(ILIN,ICOL) IF(.NOT.ISTAT)CALL LIB$STOP(%VAL(ISTAT)) RETURN END