home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE GETIN(WORD1,WORD1X,WORD2,WORD2X)
- C
- C GET A COMMAND FROM THE ADVENTURER. SNARF OUT THE FIRST WORD, PAD IT WITH
- C BLANKS, AND RETURN IT IN WORD1. CHARS 5 THRU 8 ARE RETURNED IN WORD1X, IN
- C CASE WE NEED TO PRINT OUT THE WHOLE WORD IN AN ERROR MESSAGE. ANY NUMBER OF
- C BLANKS MAY FOLLOW THE WORD. IF A SECOND WORD APPEARS, IT IS RETURNED IN
- C WORD2 (CHARS 5 THRU 8 IN WORD2X), ELSE WORD2 IS SET TO ZERO.
- C
- C HERE WE HAVE ABANDONED THE FORTRAN 66 ORIGINAL, AND RECAST THIS SUBROUTINE
- C IN FORTRAN 77 FORM, USING STRING OPERATORS.
- C
- IMPLICIT INTEGER*4 (A-Z)
- LOGICAL BLKLIN
- CHARACTER*20 FRST
- CHARACTER*8 CW1,CW2
- CHARACTER*4 WORD1,WORD1X,WORD2,WORD2X,WD1,WD1X,WD2,WD2X
- EQUIVALENCE (CW1,WD1), (CW1(5:8),WD1X),
- 1 (CW2,WD2), (CW2(5:8),WD2X)
- COMMON /BLKCOM/BLKLIN
-
- IF(BLKLIN) WRITE(*,1)
- 1 FORMAT()
- 10 FRST=' '
- READ(*,'(A)') FRST
- CALL UPCASE(FRST)
- IF(FRST.EQ.' ') FRST='NULL'
- CALL SHIFTC('LEFT',FRST)
- I=INDEX(FRST,' ')-1
- CW1=FRST(1:I)
- FRST(1:I)=' '
- IF(FRST.EQ.' ') THEN
- WD2=0
- ELSE
- CALL SHIFTC('LEFT',FRST)
- I=INDEX(FRST,' ')-1
- CW2=FRST(1:I)
- ENDIF
- WORD1=WD1
- WORD1X=WD1X
- WORD2=WD2
- WORD2X=WD2X
- RETURN
- END
-
-