home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!haven.umd.edu!darwin.sura.net!gatech!nntp.msstate.edu!emory!dragon.com!cts
- From: cts@dragon.com
- Newsgroups: vmsnet.sources.games
- Subject: Dungeon Part 30/30
- Message-ID: <1992Feb24.014226.823@dragon.com>
- Date: 24 Feb 92 06:42:26 GMT
- Organization: Computer Projects Unlimited
- Lines: 613
-
- -+-+-+-+-+-+-+-+ START OF PART 30 -+-+-+-+-+-+-+-+
- XC V158-- CLIMB DOWN
- XC
- X85000 CONTINUE
- X86000 CONTINUE
- X87000 I=XUP
- XC !ASSUME UP.
- X IF(PRSA.EQ.CLMBDW) I=XDOWN
- XC !UNLESS CLIMB DN.
- X F=(and(OFLAG2(PRSO),CLMBBT)).NE.0
- X IF(F.AND.FINDXT(I,HERE)) GO TO 87500
- XC !ANYTHING TO CLIMB?
- X IF(OBJACT(X)) RETURN
- XC !OBJ HANDLE?
- X I=657
- X IF(F) I=524
- XC !VARIETY OF JOKES.
- X IF(.NOT.F .AND.((PRSO.EQ.WALL).OR.
- X & ((PRSO.GE.WNORT).AND.(PRSO.LE.WNORT+3))))
- X & I=656
- X CALL RSPEAK(I)
- XC !JOKE.
- X RETURN
- XC
- X87500 PRSA=WALKW
- XC !WALK
- X PRSO=I
- XC !IN SPECIFIED DIR.
- X VAPPLI=WALK(X)
- X RETURN
- XC
- X END
- X`0C
- XC CLOCKD- CLOCK DEMON FOR INTERMOVE CLOCK EVENTS
- XC
- XC DECLARATIONS
- XC
- X LOGICAL FUNCTION CLOCKD(X)
- X IMPLICIT INTEGER (A-Z)
- XC
- XC CLOCK INTERRUPTS
- XC
- X INCLUDE 'CLOCK.LIB'
- XC
- X CLOCKD=.FALSE.
- XC !ASSUME NO ACTION.
- X DO 100 I=1,CLNT
- X IF(.NOT.CFLAG(I) .OR.(CTICK(I).EQ.0)) GO TO 100
- X IF(CTICK(I).LT.0) GO TO 50
- XC !PERMANENT ENTRY?
- X CTICK(I)=CTICK(I)-1
- X IF(CTICK(I).NE.0) GO TO 100
- XC !TIMER EXPIRED?
- X50 CLOCKD=.TRUE.
- X CALL CEVAPP(CACTIO(I))
- XC !DO ACTION.
- X100 CONTINUE
- X RETURN
- XC
- X END
- $ CALL UNPACK [.SRC]VERBS.FOR;1 587413486
- $ create 'f'
- XC
- XC VERBS
- XC
- X COMMON /VINDEX/ CINTW,DEADXW,FRSTQW,INXW,OUTXW
- X COMMON /VINDEX/ WALKIW,FIGHTW,FOOW
- X COMMON /VINDEX/ MELTW,READW,INFLAW,DEFLAW,ALARMW,EXORCW
- X COMMON /VINDEX/ PLUGW,KICKW,WAVEW,RAISEW,LOWERW,RUBW
- X COMMON /VINDEX/ PUSHW,UNTIEW,TIEW,TIEUPW,TURNW,BREATW
- X COMMON /VINDEX/ KNOCKW,LOOKW,EXAMIW,SHAKEW,MOVEW,TRNONW,TRNOFW
- X COMMON /VINDEX/ OPENW,CLOSEW,FINDW,WAITW,SPINW,BOARDW,UNBOAW,TAKEW
- X COMMON /VINDEX/ INVENW,FILLW,EATW,DRINKW,BURNW
- X COMMON /VINDEX/ MUNGW,KILLW,ATTACW,SWINGW
- X COMMON /VINDEX/ WALKW,TELLW,PUTW,DROPW,GIVEW,POURW,THROWW
- X COMMON /VINDEX/ DIGW,LEAPW,STAYW,FOLLOW
- X COMMON /VINDEX/ HELLOW,LOOKIW,LOOKUW,PUMPW,WINDW
- X COMMON /VINDEX/ CLMBW,CLMBUW,CLMBDW,TRNTOW
- $ CALL UNPACK [.SRC]VERBS.LIB;1 1531792341
- $ create 'f'
- XC
- XC VILLAINS AND DEMONS
- XC
- X LOGICAL THFFLG,SWDACT,THFACT
- X COMMON /HACK/ THFPOS,THFFLG,THFACT,SWDACT,SWDSTA
- XC
- X COMMON /VILL/ VLNT,VILLNS(4),VPROB(4),VOPPS(4),VBEST(4),VMELEE(4)
- XC
- X INTEGER EQV(4,5)
- X EQUIVALENCE (VILLNS, EQV)
- $ CALL UNPACK [.SRC]VILLIANS.LIB;1 1412245821
- $ create 'f'
- XC TROLLP- TROLL FUNCTION
- XC
- XC COPYRIGHT 1980, INFOCOM COMPUTERS AND COMMUNICATIONS, CAMBRIDGE MA. 02142
- XC ALL RIGHTS RESERVED, COMMERCIAL USAGE STRICTLY PROHIBITED
- XC WRITTEN BY R. M. SUPNIK
- XC
- XC DECLARATIONS
- XC
- X LOGICAL FUNCTION TROLLP(ARG)
- X IMPLICIT INTEGER (A-Z)
- X LOGICAL QHERE,PROB
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'GAMESTATE.LIB'
- X INCLUDE 'OBJECTS.LIB'
- X INCLUDE 'OFLAGS.LIB'
- X INCLUDE 'OINDEX.LIB'
- X INCLUDE 'VERBS.LIB'
- X INCLUDE 'FLAGS.LIB'
- X`0C
- XC TROLLP, PAGE 2
- XC
- X TROLLP=.TRUE.
- XC !ASSUME WINS.
- X IF(PRSA.NE.FIGHTW) GO TO 1100
- XC !FIGHT?
- X IF(OCAN(AXE).EQ.TROLL) GO TO 10
- XC !GOT AXE? NOTHING.
- X I=433
- XC !ASSUME CANT GET.
- X IF(.NOT.QHERE(AXE,HERE)) GO TO 1050
- XC !HERE?
- X I=434
- XC !YES, RECOVER.
- X CALL NEWSTA(AXE,0,0,TROLL,0)
- X1050 IF(QHERE(TROLL,HERE)) CALL RSPEAK(I)
- XC !IF PLAYER HERE.
- X RETURN
- XC
- X1100 IF(PRSA.NE.DEADXW) GO TO 1200
- XC !DEAD?
- X TROLLF=.TRUE.
- XC !PERMIT EXITS.
- X RETURN
- XC
- X1200 IF(PRSA.NE.OUTXW) GO TO 1300
- XC !OUT?
- X TROLLF=.TRUE.
- XC !PERMIT EXITS.
- X OFLAG1(AXE)=and(OFLAG1(AXE), not(VISIBT))
- X ODESC1(TROLL)=435
- XC !TROLL OUT.
- X RETURN
- XC
- X1300 IF(PRSA.NE.INXW) GO TO 1400
- XC !WAKE UP?
- X TROLLF=.FALSE.
- XC !FORBID EXITS.
- X OFLAG1(AXE)=or(OFLAG1(AXE),VISIBT)
- X ODESC1(TROLL)=436
- XC !TROLL IN.
- X IF(QHERE(TROLL,HERE)) CALL RSPEAK(437)
- X RETURN
- XC
- X1400 IF(PRSA.NE.FRSTQW) GO TO 1500
- XC !FIRST ENCOUNTER?
- X TROLLP=PROB(33,66)
- XC !33% TRUE UNLESS BADLK.
- X RETURN
- XC
- X1500 IF((PRSA.NE.MOVEW).AND.(PRSA.NE.TAKEW).AND.(PRSA.NE.MUNGW)
- X & .AND.(PRSA.NE.THROWW).AND.(PRSA.NE.GIVEW)) GO TO 2000
- X IF(OCAPAC(TROLL).GE.0) GO TO 1550
- XC !TROLL OUT?
- X OCAPAC(TROLL)=-OCAPAC(TROLL)
- XC !YES, WAKE HIM.
- X OFLAG1(AXE)=or(OFLAG1(AXE),VISIBT)
- X TROLLF=.FALSE.
- X ODESC1(TROLL)=436
- X CALL RSPEAK(437)
- XC
- X1550 IF((PRSA.NE.TAKEW).AND.(PRSA.NE.MOVEW)) GO TO 1600
- X CALL RSPEAK(438)
- XC !JOKE.
- X RETURN
- XC
- X1600 IF(PRSA.NE.MUNGW) GO TO 1700
- XC !MUNG?
- X CALL RSPEAK(439)
- XC !JOKE.
- X RETURN
- XC
- X1700 IF(PRSO.EQ.0) GO TO 10
- XC !NO OBJECT?
- X I=440
- XC !ASSUME THROW.
- X IF(PRSA.EQ.GIVEW) I=441
- XC !GIVE?
- X CALL RSPSUB(I,ODESC2(PRSO))
- XC !TROLL TAKES.
- X IF(PRSO.EQ.KNIFE) GO TO 1900
- XC !OBJ KNIFE?
- X CALL NEWSTA(PRSO,442,0,0,0)
- XC !NO, EATS IT.
- X RETURN
- XC
- X1900 CALL RSPEAK(443)
- XC !KNIFE, THROWS IT BACK
- X OFLAG2(TROLL)=or(OFLAG2(TROLL),FITEBT)
- X RETURN
- XC
- X2000 IF(.NOT.TROLLF.OR.(PRSA.NE.HELLOW)) GO TO 10
- X CALL RSPEAK(366)
- XC !TROLL OUT.
- X RETURN
- XC
- X10 TROLLP=.FALSE.
- XC !COULDNT HANDLE IT.
- X RETURN
- X END
- X`0C
- XC CYCLOP- CYCLOPS FUNCTION
- XC
- XC DECLARATIONS
- XC
- X LOGICAL FUNCTION CYCLOP(ARG)
- X IMPLICIT INTEGER (A-Z)
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'GAMESTATE.LIB'
- X INCLUDE 'OBJECTS.LIB'
- X INCLUDE 'OFLAGS.LIB'
- X INCLUDE 'OINDEX.LIB'
- X INCLUDE 'VERBS.LIB'
- X INCLUDE 'FLAGS.LIB'
- X`0C
- XC CYCLOP, PAGE 2
- XC
- X CYCLOP=.TRUE.
- XC !ASSUME WINS.
- X IF(.NOT.CYCLOF) GO TO 100
- XC !ASLEEP?
- X IF((PRSA.NE.ALARMW).AND.(PRSA.NE.MUNGW).AND.(PRSA.NE.HELLOW).AND.
- X & (PRSA.NE.BURNW).AND.(PRSA.NE.KILLW).AND.(PRSA.NE.ATTACW))
- X & GO TO 10
- X CYCLOF=.FALSE.
- XC !WAKE CYCLOPS.
- X CALL RSPEAK(187)
- XC !DESCRIBE.
- X RVCYC=IABS(RVCYC)
- X OFLAG2(CYCLO)=and(or(OFLAG2(CYCLO),FITEBT),not(SLEPBT))
- X RETURN
- XC
- X100 IF((PRSA.EQ.FIGHTW).OR.(PRSA.EQ.FRSTQW)) GO TO 10
- X IF(IABS(RVCYC).LE.5) GO TO 200
- XC !ANNOYED TOO MUCH?
- X RVCYC=0
- XC !RESTART COUNT.
- X CALL JIGSUP(188)
- XC !YES, EATS PLAYER.
- X RETURN
- XC
- X200 IF(PRSA.NE.GIVEW) GO TO 500
- XC !GIVE?
- X IF((PRSO.NE.FOOD).OR.(RVCYC.LT.0)) GO TO 300
- XC !FOOD WHEN HUNGRY?
- X CALL NEWSTA(FOOD,189,0,0,0)
- XC !EATS PEPPERS.
- X RVCYC=MIN0(-1,-RVCYC)
- XC !GETS THIRSTY.
- X RETURN
- XC
- X300 IF(PRSO.NE.WATER) GO TO 400
- XC !DRINK WHEN THIRSTY?
- X IF(RVCYC.GE.0) GO TO 350
- X CALL NEWSTA(PRSO,190,0,0,0)
- XC !DRINKS AND
- X CYCLOF=.TRUE.
- XC !FALLS ASLEEP.
- X OFLAG2(CYCLO)=and(or(OFLAG2(CYCLO),SLEPBT),not(FITEBT))
- X RETURN
- XC
- X350 CALL RSPEAK(191)
- XC !NOT THIRSTY.
- X10 CYCLOP=.FALSE.
- XC !FAILS.
- X RETURN
- XC
- X400 I=192
- XC !ASSUME INEDIBLE.
- X IF(PRSO.EQ.GARLI) I=193
- XC !GARLIC IS JOKE.
- X450 CALL RSPEAK(I)
- XC !DISDAIN IT.
- X IF(RVCYC.LT.0) RVCYC=RVCYC-1
- X IF(RVCYC.GE.0) RVCYC=RVCYC+1
- X IF(.NOT.CYCLOF) CALL RSPEAK(193+IABS(RVCYC))
- X RETURN
- XC
- X500 I=0
- XC !ASSUME NOT HANDLED.
- X IF(PRSA.EQ.HELLOW) GO TO 450
- XC !HELLO IS NO GO.
- X IF((PRSA.EQ.THROWW).OR.(PRSA.EQ.MUNGW)) I=200+RND(2)
- X IF(PRSA.EQ.TAKEW) I=202
- X IF(PRSA.EQ.TIEW) I=203
- X IF(I) 10,10,450
- XC !SEE IF HANDLED.
- XC
- X END
- X`0C
- XC THIEFP- THIEF FUNCTION
- XC
- XC DECLARATIONS
- XC
- X LOGICAL FUNCTION THIEFP(ARG)
- X IMPLICIT INTEGER (A-Z)
- X LOGICAL QHERE,PROB
- X
- X INCLUDE 'PARSER.LIB'
- X INCLUDE 'GAMESTATE.LIB'
- XC
- XC ROOMS
- X INCLUDE 'RINDEX.LIB'
- X INCLUDE 'OBJECTS.LIB'
- X INCLUDE 'OFLAGS.LIB'
- X INCLUDE 'OINDEX.LIB'
- X INCLUDE 'CLOCK.LIB'
- X
- X INCLUDE 'VILLIANS.LIB'
- X INCLUDE 'VERBS.LIB'
- X INCLUDE 'FLAGS.LIB'
- X`0C
- XC THIEFP, PAGE 2
- XC
- X THIEFP=.TRUE.
- XC !ASSUME WINS.
- X IF(PRSA.NE.FIGHTW) GO TO 100
- XC !FIGHT?
- X IF(OCAN(STILL).EQ.THIEF) GO TO 10
- XC !GOT STILLETTO? F.
- X IF(QHERE(STILL,THFPOS)) GO TO 50
- XC !CAN HE RECOVER IT?
- X CALL NEWSTA(THIEF,0,0,0,0)
- XC !NO, VANISH.
- X IF(QHERE(THIEF,HERE)) CALL RSPEAK(498)
- XC !IF HERO, TELL.
- X RETURN
- XC
- X50 CALL NEWSTA(STILL,0,0,THIEF,0)
- XC !YES, RECOVER.
- X IF(QHERE(THIEF,HERE)) CALL RSPEAK(499)
- XC !IF HERO, TELL.
- X RETURN
- XC
- X100 IF(PRSA.NE.DEADXW) GO TO 200
- XC !DEAD?
- X THFACT=.FALSE.
- XC !DISABLE DEMON.
- X OFLAG1(CHALI)=or(OFLAG1(CHALI),TAKEBT)
- X J=0
- X DO 125 I=1,OLNT
- XC !CARRYING ANYTHING?
- X125 IF(OADV(I).EQ.-THIEF) J=500
- X CALL RSPEAK(J)
- XC !TELL IF BOOTY REAPPEARS.
- XC
- X J=501
- X DO 150 I=1,OLNT
- XC !LOOP.
- X IF((I.EQ.CHALI).OR.(I.EQ.THIEF).OR.(HERE.NE.TREAS)
- X & .OR. .NOT.QHERE(I,HERE)) GO TO 135
- X OFLAG1(I)=or(OFLAG1(I),VISIBT)
- X CALL RSPSUB(J,ODESC2(I))
- XC !DESCRIBE.
- X J=502
- X GO TO 150
- XC
- X135 IF(OADV(I).EQ.-THIEF) CALL NEWSTA(I,0,HERE,0,0)
- X150 CONTINUE
- X RETURN
- XC
- X200 IF(PRSA.NE.FRSTQW) GO TO 250
- XC !FIRST ENCOUNTER?
- X THIEFP=PROB(20,75)
- X RETURN
- XC
- X250 IF((PRSA.NE.HELLOW).OR.(ODESC1(THIEF).NE.504))
- X & GO TO 300
- X CALL RSPEAK(626)
- X RETURN
- XC
- X300 IF(PRSA.NE.OUTXW) GO TO 400
- XC !OUT?
- X THFACT=.FALSE.
- XC !DISABLE DEMON.
- X ODESC1(THIEF)=504
- XC !CHANGE DESCRIPTION.
- X OFLAG1(STILL)=and(OFLAG1(STILL),not(VISIBT))
- X OFLAG1(CHALI)=or(OFLAG1(CHALI),TAKEBT)
- X RETURN
- XC
- X400 IF(PRSA.NE.INXW) GO TO 500
- XC !IN?
- X IF(QHERE(THIEF,HERE)) CALL RSPEAK(505)
- XC !CAN HERO SEE?
- X THFACT=.TRUE.
- XC !ENABLE DEMON.
- X ODESC1(THIEF)=503
- XC !CHANGE DESCRIPTION.
- X OFLAG1(STILL)=or(OFLAG1(STILL),VISIBT)
- X IF((HERE.EQ.TREAS).AND.QHERE(CHALI,HERE))
- X & OFLAG1(CHALI)=and(OFLAG1(CHALI),not(TAKEBT))
- X RETURN
- XC
- X500 IF(PRSA.NE.TAKEW) GO TO 600
- XC !TAKE?
- X CALL RSPEAK(506)
- XC !JOKE.
- X RETURN
- XC
- X600 IF((PRSA.NE.THROWW).OR.(PRSO.NE.KNIFE).OR.
- X & (and(OFLAG2(THIEF),FITEBT).NE.0)) GO TO 700
- X IF(PROB(10)) GO TO 650
- XC !THREW KNIFE, 10%?
- X CALL RSPEAK(507)
- XC !NO, JUST MAKES
- X OFLAG2(THIEF)=or(OFLAG2(THIEF),FITEBT)
- X RETURN
- XC
- X650 J=508
- XC !THIEF DROPS STUFF.
- X DO 675 I=1,OLNT
- X IF(OADV(I).NE.-THIEF) GO TO 675
- XC !THIEF CARRYING?
- X J=509
- X CALL NEWSTA(I,0,HERE,0,0)
- X675 CONTINUE
- X CALL NEWSTA(THIEF,J,0,0,0)
- XC !THIEF VANISHES.
- X RETURN
- XC
- X700 IF(((PRSA.NE.THROWW).AND.(PRSA.NE.GIVEW)).OR.(PRSO.EQ.0).OR.
- X & (PRSO.EQ.THIEF)) GO TO 10
- X IF(OCAPAC(THIEF).GE.0) GO TO 750
- XC !WAKE HIM UP.
- X OCAPAC(THIEF)=-OCAPAC(THIEF)
- X THFACT=.TRUE.
- X OFLAG1(STILL)=or(OFLAG1(STILL),VISIBT)
- X ODESC1(THIEF)=503
- X CALL RSPEAK(510)
- XC
- X750 IF((PRSO.NE.BRICK).OR.(OCAN(FUSE).NE.BRICK).OR.
- X & (CTICK(CEVFUS).EQ.0)) GO TO 800
- X CALL RSPEAK(511)
- XC !THIEF REFUSES BOMB.
- X RETURN
- XC
- X800 CALL NEWSTA(PRSO,0,0,0,-THIEF)
- XC !THIEF TAKES GIFT.
- X IF(OTVAL(PRSO).GT.0) GO TO 900
- XC !A TREASURE?
- X CALL RSPSUB(512,ODESC2(PRSO))
- X RETURN
- XC
- X900 CALL RSPSUB(627,ODESC2(PRSO))
- XC !THIEF ENGROSSED.
- X THFENF=.TRUE.
- X RETURN
- XC
- X10 THIEFP=.FALSE.
- X RETURN
- X END
- $ CALL UNPACK [.SRC]VILLNS.FOR;1 53218733
- $ create 'f'
- X INTEGER FUNCTION AND (I1, I2)
- X IMPLICIT INTEGER (A-Z)
- X AND = IAND (I1, I2)
- X RETURN
- X END
- X`0C
- X SUBROUTINE INIRND (VAL)
- X IMPLICIT INTEGER (A-Z)
- X INCLUDE 'RANDOM.LIB'
- X SEED = VAL
- X RETURN
- X END
- X`0C
- X SUBROUTINE ITIME (IH, IM, IS)
- X INTEGER IH, IM, IS
- X CHARACTER*8 T
- X
- X CALL TIME (T)
- X
- X IH = (ICHAR(T(1:1)) - ICHAR('0')) * 10
- X IH = IH + (ICHAR(T(2:2)) - ICHAR('0'))
- X
- X IM = (ICHAR(T(4:4)) - ICHAR('0')) * 10
- X IM = IM + (ICHAR(T(5:5)) - ICHAR('0'))
- X
- X IS = (ICHAR(T(7:7)) - ICHAR('0')) * 10
- X IS = IS + (ICHAR(T(8:8)) - ICHAR('0'))
- X
- X RETURN
- X END
- X`0C
- X SUBROUTINE GETUSER (USERID)`20
- X
- X INTEGER*4 ITMLST(4)
- X INTEGER*4 USERID_LEN
- X EXTERNAL JPI$_USERNAME
- X CHARACTER*12 USERID
- X
- X ITMLST(1)=JISHFT(%LOC(JPI$_USERNAME),16)+12
- X ITMLST(2)=%LOC(USERID)
- X ITMLST(3)=%LOC(USERID_LEN)
- X ITMLST(4)=0
- X CALL SYS$GETJPI(,,,ITMLST,,,)
- X RETURN
- X END
- X`0C
- X INTEGER FUNCTION RND (RANGE)
- X IMPLICIT INTEGER (A-Z)
- X INCLUDE 'RANDOM.LIB'
- X RND = (RAN(SEED) * RANGE)
- X RETURN
- X END
- X`0C
- X INTEGER FUNCTION OR (I1, I2)
- X IMPLICIT INTEGER (A-Z)
- X OR = IOR (I1, I2)
- X RETURN
- X END
- X`0C
- X SUBROUTINE SYSTEM (S)
- X CHARACTER*(*) S
- X IF (S .EQ. ' ') THEN
- X CALL LIB$SPAWN
- X ELSE
- X CALL LIB$SPAWN(%DESCR(S))
- X ENDIF
- X RETURN
- X END
- $ CALL UNPACK [.SRC]VMSSUBS.FOR;1 1734811703
- $ create 'f'
- XC
- XC VOCABULARIES
- XC
- X COMMON /BUZVOC/ BVOC(20)
- X COMMON /PRPVOC/ PVOC(45)
- X COMMON /DIRVOC/ DVOC(75)
- X INTEGER AVOC(450)
- X COMMON /ADJVOC/ AVOC1(184),AVOC2(114),AVOC3(106),AVOCND
- X INTEGER VVOC(950)
- X COMMON /VRBVOC/ VVOC1(92),VVOC1A(108),VVOC1B(38),VVOC2(104),
- X &`09`09VVOC3(136),
- X &`09`09VVOC4(116),VVOC5(134),VVOC6(117),VVOC7(89),VVOCND
- X INTEGER OVOC(1050)
- X COMMON /OBJVOC/ OVOC1(160),OVOC2(144),OVOC3(150),OVOC4(128),
- X &`09`09OVOC5(111),OVOC6(104),OVOC6A(97),OVOC7(127),OVOCND
- XC
- X EQUIVALENCE (VVOC(1),VVOC1(1))
- X EQUIVALENCE (AVOC(1),AVOC1(1))
- X EQUIVALENCE (OVOC(1),OVOC1(1))
- $ CALL UNPACK [.SRC]VOCAB.LIB;1 877398334
- $ create 'f'
- X LOGICAL FUNCTION WIZARD ()
- X IMPLICIT INTEGER (A-Z)
- X INCLUDE 'WIZARD.LIB'
- X WIZARD = .FALSE.
- X CALL GETUSER (USERID)
- X DO 10, I = 1,WIZCNT
- X IF (USERID .EQ. WIZARDS(I)) WIZARD = .TRUE.
- X 10 CONTINUE
- X IF (WIZARD) PRINT 1000
- X RETURN
- X 1000 FORMAT (' Welcome, Wizard...')
- X END
- $ CALL UNPACK [.SRC]WIZARD.FOR;1 387794534
- $ create 'f'
- X PARAMETER WIZCNT=12
- X CHARACTER*12 WIZARDS (12)
- X CHARACTER*12 USERID
- X DATA WIZARDS /
- X & 'CTS',`20
- X & 'CMS',`20
- X & 'CSMITH',
- X & ' ',
- X & ' ',
- X & ' ',
- X & ' ',
- X & ' ',
- X & ' ',
- X & ' ',
- X & ' ',
- X & ' ' /
- X`20
- $ CALL UNPACK [.SRC]WIZARD.LIB;1 1179923881
- $ create 'f'
- X`09.TITLE`09XOR`20
- X`09.IDENT`09/01/
- X`09.ENTRY`09XOR,`5EM<R2,R3>
- X
- X`09MOVL`09@4(AP),R2
- X`09MOVL`09@8(AP),R3
- X`09XORL3`09R2,R3,R0
- X`09RET
- X`09.END
- $ CALL UNPACK [.SRC]XOR.MAR;1 760941579
- $ create 'f'
- XC
- X COMMON /XPARS/ XRMASK,XDMASK,XFMASK,XFSHFT,XASHFT,
- X &`09`09XELNT(4),XNORM,XNO,XCOND,XDOOR,XLFLAG
- $ CALL UNPACK [.SRC]XPARS.LIB;1 190853558
- $ create 'f'
- XC
- X COMMON /XSRCH/ XMIN,XMAX,XDOWN,XUP,
- X &`09`09XNORTH,XSOUTH,XENTER,XEXIT,XEAST,XWEST
- $ CALL UNPACK [.SRC]XSRCH.LIB;1 1852324057
- $ v=f$verify(v)
- $ EXIT
-