C ENCRYP-- ENCRYPT PASSWORD
C COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
C ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
C WRITTEN BY R. M. SUPNIK
SUBROUTINE ENCRYP(INW,OUTW)
CHARACTER KEYW(6),UKEYW(6)
DATA KEYW/'E','C','O','R','M','S'/
UKEYW(I)=char(ichar(KEYW(I))-64)
IF(INW(J).LE.char(64)) J=1
UINW(I)=ichar(ichar(INW(J))-64)
UKEYWS=UKEYWS+ichar(UKEYW(I))
USUM=MOD(UINWS,8)+(8*MOD(UKEYWS,8))
J=and(xor(xor(ichar(UINW(I)),ichar(UKEYW(I))),USUM),31)
OUTW(I)=char(MAX0(1,J)+64)
C CPGOTO-- MOVE TO NEXT STATE IN PUZZLE ROOM
RFLAG(CPUZZ)=and(RFLAG(CPUZZ),not(RSEEN))
IF((OROOM(I).EQ.CPUZZ).AND.
& (and(OFLAG2(I),(ACTRBT+VILLBT)).EQ.0))
& CALL NEWSTA(I,0,CPHERE*HFACTR,0,0)
IF(OROOM(I).EQ.(ST*HFACTR))
& CALL NEWSTA(I,0,CPUZZ,0,0)
C CPINFO-- DESCRIBE PUZZLE ROOM
SUBROUTINE CPINFO(RMK,ST)
CHARACTER DGM(8),PICT(5),QMK
COMMON /CHAN/ INPCH,OUTCH,DBCH
COMMON /PUZZLE/ CPDR(16),CPWL(8),CPVEC(64)
C FUNCTIONS AND LOCAL DATA
DATA DGMOFT/-9,-8,-7,-1,1,7,8,9/
C PICT, DGM and QMK have been changed from two to
C one character in length. Puzout prints two copies.
DATA PICT/'S','S','S',' ','M'/
DATA PICT/'SS','SS','SS',' ','MM'/
DGM(I)=PICT(CPVEC(ST+J)+4)
IF((IABS(J).EQ.1).OR.(IABS(J).EQ.8)) GO TO 100
IF((CPVEC(ST+K).NE.0).AND.(CPVEC(ST+L).NE.0))
IF(ST.EQ.10) CALL RSPEAK(870)
IF(ST.EQ.37) CALL RSPEAK(871)
IF(ST.EQ.52) CALL RSPEAK(I)
IF(CPVEC(ST+1).EQ.-2) CALL RSPEAK(874)
IF(CPVEC(ST-1).EQ.-3) CALL RSPEAK(875)
10 FORMAT(' |',A2,1X,A2,1X,A2,'|'/,
& ' West |',A2,' .. ',A2,'| East',/
& ' |',A2,1X,A2,1X,A2,'|')