home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fatal Distractions!
/
fataldistractions.bin
/
chap01
/
adventur
/
getin.for
< prev
next >
Wrap
Text File
|
1990-11-22
|
1KB
|
45 lines
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