C C C T R I V I A C C TRIVIAL OPERATIONS C C THIS ROUTINE PERFORMS SEVERAL MINOR FUNCTIONS WHICH WERE COLLECTED C INTO ONE AREA IN ORDER TO PRODUCE CLEANER, MORE CONCISE CODE IN THE C REST OF THE ASSEMBLER. THE CALLING SEQUENCE IS AS FOLLOWS: C C CALL TRIVIA ( IFUNC , IRETRN ) C C WHERE: C IFUNC- INTEGER VARIABLE USED AS A FLAG TO DEFINE THE FUNCTION C C IFUNC FUNCTION C C 1 BLANK FILL LINBUF C 2 FIND FIRST NON-BLANK IN LINBUF C 3 FIND FIRST NON-BLANK IN REMAIN C 4 FIND FIRST NON-BLANK , NON-COMMENT IN LINBUF C 5 BLANK FILL ABSCOD C C IRETRN- INTEGER VARIABLE USED TO RETURN INFORMATION AS FOLLOWS C C IFUNC IRETRN C C 10 NOT USED C 2 INDEX TO FIRST NON-BLANK CHARACTER IN LINBUF C 3 INDEX TO FIRST NON-BLANK CHARACTER IN REMAIN C 4 INDEX TO FIRST NON-BLANK, NON-COMMENT IN LINBUF C 50 NOT USED C C NOTE THAT A BLANK CHARACTER IS DEFINED AS AN ASCII SPACE ( BLANK ) C OR AN ASCII TAB CHARACTER ( HORIZONTAL TAB ). C SUBROUTINE TRIVIA ( IFUNC , IRETRN ) INCLUDE 'BSUCOM.CMN' INCLUDE 'OUTLIN.CMN' INCLUDE 'PRGDAT.CMN' INCLUDE 'SRCLIN.CMN' INTEGER BLANKS , TABS, SMICLN EQUIVALENCE ( KEYCHR(12) , BLANKS ) , ( KEYCHR(28) , TABS ) EQUIVALENCE ( KEYCHR(10) , SMICLN ) C IRETRN = 0 GO TO ( 100 , 200 , 300 , 400 , 500 ) , IFUNC C C FUNCTION 1 - BLANK FILL LINBUF AND ERRFLG C 100 CONTINUE DO 110 I=1,4 ERRFLG(I) = BLANKS 110 CONTINUE LINBUF(1) = BLANKS EOL = 1 LERCNT = 0 GO TO 600 C C FUNCTION 2 - FIND FIRST NON-BLANK IN LINBUF C 200 CONTINUE DO 210 I = 1 , EOL IF ( LINBUF(I) .EQ. BLANKS .OR. * LINBUF(I) .EQ. TABS)GO TO 210 IRETRN = I GO TO 600 210 CONTINUE IRETRN = EOL +1 GO TO 600 C C FUNCTION 3 - FIND FIRST NON-BLANK IN REMAIN C 300 CONTINUE DO 310 I = 1 , EOR IF ( REMAIN(I) .EQ. BLANKS .OR. * REMAIN(I) .EQ. TABS)GO TO 310 IRETRN = I GO TO 600 310 CONTINUE IRETRN = EOR +1 GO TO 600 C C FUNCTION 4 - FIND FIRST NON-BLANK, NON-COMMENT IN LINBUF C 400 CONTINUE DO 410 I = 1 , EOL IF ( LINBUF(I) .EQ. BLANKS .OR. * LINBUF(I) .EQ. TABS)GO TO 410 IF ( LINBUF(I) .EQ. SMICLN )GO TO 420 IRETRN = I GO TO 600 410 CONTINUE 420 CONTINUE GO TO 600 C C FUNCTION 5 - BLANK FILL ABSCOD C 500 CONTINUE DO 510 I = 1,6 ABSCOD(I) = BLANKS 510 CONTINUE 600 CONTINUE D WRITE (4,1) IFUNC,IRETRN D 1 FORMAT (' TRIVIA CALLED TO DO ',I2,' RETURNED ',I6) RETURN END