C C GENERALIZED FORTRAN SUBROUTINE TO PRINT THE RULES FOR C FORTRAN GAMES PROGRAMS C C PARAMETERS: CALL WITH THE NAME OF A FILE THAT CONTAINS C THE RULES C C EXAMPLE: CALL RULES('WUMPUS.DOC') C C RULES WILL ASK THE USER IF THEY NEED INSTRUCTIONS. C IF THE STRING TYPED STARTS WITH A 'Y', THE FILE IS C OPENED AND COPIED TO THE TERMINAL. C LINES IN THE RULES FILE THAT START WITH A ';' ARE NOT C PRINTED. C C LINES THAT START WITH A CURCOMFLEX (^) ARE ALSO NOT C PRINTED, BUT THE PROGRAM PAUSES TO ALLOW READERS TO CATCH UP C AND PROMPTS FOR A RETURN C SUBROUTINE RULES(STRING) IMPLICIT INTEGER(A-Z) BYTE CURCOM,STRING(30),Y,SEMI,BUF(80) COMMON /CONSOL/TTY COMMON /SCRAT1/SC1 DATA Y,SEMI/'y',';'/ DATA CURCOM/'^'/ DATA LINES/0/ WRITE(TTY,100) 100 FORMAT('$DO YOU NEED INSTRUCTIONS? ') READ(TTY,400,ERR=99,END=99)BUF 400 FORMAT(80A1) BUF(1)=BUF(1) .OR. "40 !TURN UPPER TO LOWER CASE IF (BUF(1) .NE. Y) RETURN CALL ASSIGN(SC1,STRING) CALL FDBSET(SC1,'READONLY') 10 READ(SC1,200,END=99,ERR=99)LN,BUF IF (BUF(1) .EQ. SEMI) GOTO 10 IF (BUF(1) .EQ. CURCOM) GOTO 15 200 FORMAT(Q,80A1) IF (LINES .LT. 23) GOTO 20 15 WRITE(TTY,500) 500 FORMAT('$ Hit return for more rules:') READ(TTY,200,END=99,ERR=99)I,LINES LINES=0 IF (BUF(1) .EQ. CURCOM) GOTO 10 20 WRITE(TTY,300)(BUF(I),I=1,LN) 300 FORMAT(1X,80A1) LINES=LINES+1 GOTO 10 99 CALL CLOSE(SC1) RETURN END