home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fatal Distractions!
/
fataldistractions.bin
/
chap01
/
adventur
/
a5toa1.old
< prev
next >
Wrap
Text File
|
1990-11-12
|
1KB
|
44 lines
SUBROUTINE A5TOA1(A,B,C,CHARS,LENG)
C
C IN ORDER TO WORK ON A PDP-11, THIS HAS BEEN CHANGED TO BE
C AN A4 TO A1 CONVERSION ROUTINE.
C A AND B CONTAIN A 1- TO 8-CHARACTER WORD IN A4 FORMAT, C CONTAINS ANOTHER
C WORD AND/OR PUNCTUATION. THEY ARE UNPACKED TO ONE CHARACTER PER WORD IN THE
C ARRAY "CHARS", WITH EXACTLY ONE BLANK BETWEEN B AND C (OR NONE, IF C'S 100
C BIT IS OFF).
C THE INDEX OF THE LAST NON-BLANK CHAR IN CHARS IS RETURNED IN LENG.
IMPLICIT INTEGER*4 (A-Z)
C INTEGER*2 ASCVAR
CHARACTER*1 CHARS, BLANK
DIMENSION CHARS(20),WORDS(3)
DATA BLANK/' '/
NOPUN=0
C
C NOPUN = 0 MEANS THAT WE DO NOT HAVE A PUNCTUATION CHARACTER.
C NOPUN = -1 MEANS THAT WE DO HAVE A PUNCTUATION CHARACTER.
C
MASK=8#100
IF((C.AND.MASK).NE.MASK) NOPUN=-1
WORDS(1)=A
WORDS(2)=B
WORDS(3)=C
POSN=1
DO 3 I=1,20
3 CHARS(I)=BLANK
DO 1 WORD=1,3
MASK=8#377
IF(WORD.EQ.2.AND.POSN.NE.5) GOTO 1
IF(WORD.EQ.3.AND.NOPUN.EQ.0) POSN=POSN+1
DO 2 CH=1,4
CHARS(POSN)=(WORDS(WORD).AND.MASK)
IF(CHARS(POSN).EQ.BLANK) GOTO 1
LENG=POSN
WORDS(WORD)=ISHFT(WORDS(WORD),-8)
2 POSN=POSN+1
1 CONTINUE
RETURN
END