0 GOSUB 215
1 PRINT:PRINT
2 GOSUB 193
3 GOSUB 188
4 PRINT CHR$(27)+"Y38";"Do you need instructions Y / N ";:INPUT A$:A$=LEFT$(A$+" ",1):GOSUB 215
5 IF A$="Y" THEN GOSUB 168 ELSE IF A$="y" THEN GOSUB 168
6 DIM D$(19),O$(31),L(25),P(19,6):L=1
7 FOR X=1 TO 19:READ D$(X):NEXT
8 DATA Entrance Hall,Study,Library,Armory,Tower
9 DATA Lower Tower,Chapel,Brick Fireplace
10 DATA Hidden Corridor,Secret Passage
11 DATA Underground Lake Chamber,Boat,Alchemist's Lab
12 DATA Storeroom,Overhang,Gallery,Antechamber,Dracula's Tomb
13 DATA Torture Chamber
14 FOR X=1 TO 31:READ O$(X):IF X>6 THEN READ L(X-6)
15 NEXT:T2=8:R=11:WS$="Wooden Stakes"
16 DATA North,South,East,West,"Up ",Down,Sledge Hammer,5
17 DATA Timepiece,1,Coil of Rope,9,Parchment Scroll,3,Axe,4,Oar,6,Key,99
18 DATA Holywater,7,Flask of Oil,13,Crate,14,Bucket,14
19 DATA Torch,8,Nails,15,Tapestry,16,Boat,11,Rusty Door,17
20 DATA Closed Coffin,18,Fire in the Fireplace,2
21 DATA Bookcase,3,Sign,1,Parapets,5,Brick Fireplace,2
22 DATA Rat,19,Wine,2,Cheddar Cheese,2
23 FOR Y=1 TO 19:FOR X=1 TO 6:READ P(Y,X):NEXT X,Y
24 DATA ,,3,2,,,,,1,,,,,,4,1,,,,,5,3,,,,,,4,,,,7,,,5,,6,,,,4,
25 DATA ,2,,,,,13,,,,3,,11,8,,19,,,,10,,,,,,11,,,,,14,9,,,,
26 DATA ,13,,,2,,,,,,,16,,,,,,,,16,,,,,,17,,,,,,,10,13,,
27 W$="GO GETLOODROHITOPETIEPUSKILOILROWCLITAKREATHRBRE"
28 N$="N 01S 02E 03W 04U 05D 06HAM07SCR10AX 11WAT14OIL15DOO22COF23DRA23FIR28"
29 O$="NORSOUEASWESUP DOWSLETIMROPPARAXEOARKEYHOLFLACRABUCTORNAITAPBOARUSCLOFIRBOOSIGPARBRIRATWINCHE"
30 GOSUB 227:PRINT:PRINT TAB(27);"You are in the ";D$(L):Y=0:L2=L
31 IF L(12)=0 OR L<10 OR (L>12 AND L<>18) THEN 33
32 PRINT TAB(27);"It's Dark ! you can't see":GOTO 38
33 PRINT TAB(27);"You see ";:FOR X=1 TO 25:IF L(X)=L2 THEN PRINT O$(X+6);", ";:Y=Y+1
34 IF Y=2 THEN PRINT TAB(27);
35 NEXT:IF Y=0 THEN PRINT"nothing interesting." ELSE PRINT" "
36 PRINT TAB(27);"Obvious exits are: ";:FOR X=1 TO 6:IF P(L,X)>0 THEN PRINT O$(X);" ";
37 NEXT:PRINT
38 S=0:F=0:GOSUB 230:PRINT:PRINT TAB(27);"What do you want to do";:INPUT A$:PRINT
39 A$=A$:B$=" ":FOR X=1 TO LEN(A$)
40 IF MID$(A$,X,1)=" " THEN B$=MID$(A$+" ",X+1,3)
41 NEXT:IF LEN(A$)=1 THEN B$=A$+" ":A$="GO "
42 GOSUB 160:L2=L:T1=T1+1:IF T1=60 THEN T1=0:T2=T2+1
43 IF T2=12 THEN PRINT:PRINT"It's midnight:Dracula is awake, He's at your neck ";:GOTO 156
44 IF A$="SWI" AND L=11 THEN PRINT:PRINT" You have drowned in the ice cold water ";:GOTO 156
45 X=INSTR(N$,B$):IF X MOD 5=1 THEN S=VAL(MID$(N$,X+3,2)):GOTO 47
46 X=INSTR(O$,B$):IF X MOD 3=1 THEN S=(X+2)/3
47 X=INSTR(W$,A$):IF X MOD 3=1 THEN F=(X+2)/3
48 IF F>11 THEN F=F-11
49 IF A$<> "INV" THEN 54
50 PRINT"You are carrying: ";:A=0:FOR X=1 TO 25
51 IF L(X)=0 THEN PRINT O$(X+6)", ";:A=A+1
52 NEXT:IF A=0 THEN PRINT"nothing";
53 PRINT:GOTO 38
54 ON F GOTO 58,75,94,107,113,121,130,137,142,149,153
55 PRINT TAB(27);"I don't know how to do that":GOTO 38
56 PRINT TAB(27);"I don't know that word":GOTO 38
57 REM ******* GO **********
58 IF S<1 THEN 62 ELSE IF S>6 THEN 62
59 IF P(L,S)>0 THEN L=P(L,S):GOTO 30
60 PRINT TAB(27);"You can't go that way":GOTO 38
61 PRINT TAB(27);"You see nothing special":GOTO 38
62 IF S<>28 OR L<>2 THEN 65
63 IF FI=0 THEN PRINT:PRINT TAB(27);"You have burned to death";:GOTO 156
64 L=8:GOTO 30
65 IF S<>27 OR L<>5 THEN 68
66 IF LEFT$(O$(27),1)="R" THEN L=6:PRINT TAB(27);"Climbed down the rope":PRINT:GOTO 30
67 PRINT TAB(27);"You fell and died ";:GOTO 156
68 IF S=21 AND L(15)=L THEN L=12:GOTO 30
69 IF L=16 AND B$="OVE" THEN 72
70 IF S<1 THEN 56
71 PRINT TAB(27);"You can't go there":GOTO 38
72 IF L(10)=L AND O$(16)="Crate" THEN L=15:GOTO 30
73 PRINT TAB(27);"It's a little too high":GOTO 38
74 REM ******* GET ********
75 IF S<7 THEN 56
76 IF C>6 THEN PRINT TAB(27);"You can't carry any more":GOTO 38
77 IF L(S-6)<>L THEN 91
78 IF S<>14 THEN 81
79 V$="In":GOSUB 165:IF A$="BUC" AND L(11)=0 THEN 92
80 PRINT TAB(27);"You can't do that":GOTO 38
81 IF S<>20 THEN 84
82 IF TA=0 THEN PRINT TAB(27);"It's nailed to an overhang":GOTO 38
83 P(16,1)=17:PRINT TAB(27);"AHA ! - A hole in the wall":PRINT:GOTO 92
84 IF S<>19 THEN 87
85 IF L(1)<>0 THEN PRINT TAB(27);"You have no hammer":GOTO 38
86 IF L(13)=15 THEN TA=1:PRINT TAB(27);"The tapestry is loose":GOTO 92
87 IF S<>13 THEN 90
88 L(23)=L:IF L(25)=L THEN 92
89 PRINT TAB(27);"The rat has it":GOTO 38
90 IF S>20 AND S<30 THEN PRINT TAB(27);"You can't get it":GOTO 38 ELSE 92
91 PRINT TAB(27);"I don't see any "O$(S):GOTO 38
92 C=C+1:L(S-6)=0:PRINT TAB(27);"You got the "O$(S):GOTO 38
93 REM ******** LOOK *********
94 IF S<7 THEN 30
95 IF S=26 AND L=1 THEN PRINT TAB(27);"'Dracula Wakes at Midnight'":GOTO 38
96 IF S<>29 THEN 99
97 IF L(23) <>L THEN 91
98 PRINT TAB(27);"A key is in it's mouth !":L(7)=L:GOTO 38
99 IF S<>10 THEN 103
100 IF L(4)=0 THEN 102
101 PRINT TAB(27);"you don't have it":GOTO 38
102 PRINT TAB(17);"The Scroll reads: 'Not all exits are obvious.'":GOTO 38
103 IF S<>8 THEN 61
104 IF L(2) <>0 THEN 101
105 PRINT TAB(27); USING "The time is now ##:##";T2,T1:GOTO 38
106 REM ******** DROP **********
107 IF S<7 THEN 56
108 IF L(S-6) <>0 THEN 101
109 IF S<>14 OR L<>2 THEN 111
110 O$(24)="Smoldering Ashes":FI=1:L(8)=99:C=C-1:GOTO 30
111 PRINT TAB(20);"Okay, the "O$(S) " is on the "D$(L) " Floor":L(S-6)=L:C=C-1:GOTO 38
112 REM ********* HIT **********
113 IF S<7 THEN 56
114 IF L(S-6) <>L AND (L<>8 OR S<>28) THEN 91
115 V$="With":GOSUB 165:IF A$<>"AXE" OR S<>16 OR L(5)<>0 THEN 117
116 O$(16)=WS$:N$=N$+"WOO16STA16":GOTO 30
117 IF (A$<> "SLE" AND A$<>"HAM") OR S<>28 OR L(1)<>0 THEN 119
118 O$(28)="Broken Fireplace":P(8,1)=10:D$(8)=O$(28):GOTO 30
119 PRINT TAB(27);"Nothing happened":GOTO 38
120 REM ********* OPEN *********
121 IF S<7 THEN 56
122 IF L(S-6)<>L THEN 91
123 IF S<>23 THEN 126
124 IF L(7)<>0 THEN PRINT TAB(27);"The coffin is locked ... ";:GOTO 119
125 O$(23)="Dracula in the Coffin":GOTO 30
126 IF S<>22 THEN 119
127 IF 9I=0 THEN PRINT TAB(27);"Too much rust ... ";:GOTO 119
128 O$(22)="Open Door":P(17,1)=18:GOTO 30
129 REM ********** TIE ***********
130 IF S<7 THEN 56
131 IF L(S-6)<>0 THEN 101
132 IF S<>9 THEN 80
133 V$="To":GOSUB 165:IF A$<>"PAR" THEN 80
134 L(3)=99:C=C-1:O$(27)="Rope tied to the Parapet":N$=N$+"ROP27"
135 PRINT TAB(27);O$(27);" !":GOTO 38
136 REM ********* PUSH **********
137 IF S<7 THEN 56
138 IF L(S-6)<>L THEN 91
139 IF S<>25 THEN 119
140 PRINT TAB(27);"Aha ! - You have revealed a Doorway":PRINT:P(L,6)=9:GOTO 30
141 REM ********* KILL ************
142 IF S<7 THEN 56
143 IF S<>23 OR LEFT$(O$(23),1)<>"D" THEN 80
144 V$="With":GOSUB 165
145 IF (A$="WOO" OR A$="STA") AND L(10)=0 AND O$(16)=WS$ THEN 147
146 PRINT:PRINT"You have failed ! Dracula awakes and sucks your blood !";:GOTO 156
147 PRINT:PRINT TAB(14);:GOSUB 218:PRINT"Congratulations ! ";:GOSUB 230:PRINT"You have KILLED Dracula ";USING"at ##:## p.m.";T2,T1:GOTO 156
148 REM ********* OIL ***********
149 IF L(9)<>0 OR L<>17 OR S<>22 THEN 80
150 PRINT TAB(27);"The door squeaks open":PRINT
151 OI=1:O$(22)="Open Door":P(17,1)=18:GOTO 30
152 REM ********* ROW **********
153 IF L<>12 OR L(6)<>0 THEN 80
154 R=27-R:L=R:PRINT TAB(27);"You have rowed to the ";D$(L)
155 PRINT:L(15)=L:GOTO 30
156 PRINT:PRINT:PRINT:PRINT TAB(24);"Would you like to try again Y/N";:INPUT A$:GOSUB 160
157 IF LEFT$(A$,1)="Y" THEN RUN 0 ELSE IF LEFT$(A$,1)="y" THEN RUN 0
158 IF LEFT$(A$,1)="R" THEN T1=T1-2:GOTO 38
159 RUN"M"
160 REM ******** MAKE INPUT U/C *********
161 A$=LEFT$(A$+" ",3):FOR I=1 TO 3
162 CH=ASC(MID$(A$,I,1)):IF CH>96 THEN MID$(A$,I,1)=CHR$(CH-32)
163 CH=ASC(MID$(B$,I,1)):IF CH>96 THEN MID$(B$,I,1)=CHR$(CH-32)
164 NEXT:RETURN
165 REM ********** GET "WHAT" *******
166 PRINT:PRINT TAB(27);:PRINT"-- "V$" what";:INPUT A$
167 PRINT:PRINT:GOSUB 160:RETURN
168 REM ********* INSTRUCTIONS ***********
169 PRINT:PRINT:PRINT TAB(26);:GOSUB 224:PRINT"D R A C U L A ' S C A S T L E":GOSUB 230
170 PRINT:PRINT
171 GOSUB 227
172 PRINT" Dracula's Castle has a concealed goal. You will learn the goal by exploring "
173 PRINT"your surroundings. The computer will act as you hands and eyes. It will accept"
174 PRINT"short phrases as commands and assumes that the first word is a verb and the "
175 PRINT"last word is the object. For example: ";:GOSUB 230:PRINT" READ THE SIGN ";:GOSUB 227:PRINT" The computer has a"
176 PRINT"vocabulary of about 70 words. Some of the more important words you should know"
177 PRINT"before you start playing are: ";:GOSUB 230:PRINT"GET (object), DROP (object), LOOK (object) ";:GOSUB 227:PRINT"or"
178 PRINT"just ";:GOSUB 230:PRINT"LOOK, GO (direction) ";:GOSUB 227:PRINT"or ";:GOSUB 230:PRINT"(PLACE)";:GOSUB 227:PRINT", and ";:GOSUB 230:PRINT"INVENTORY ";:GOSUB 227:PRINT" (tells what you"
179 PRINT"are carrying). The computer knows the abbreviations: ";:GOSUB 230:PRINT" E, W, N, S, U, ";:GOSUB 227:PRINT"and ";:GOSUB 230:PRINT"D ";:GOSUB 227:PRINT"for ";:GOSUB 230:PRINT"GO EAST, GO WEST, ";:GOSUB 227:PRINT"etc.":PRINT
180 PRINT" The computer's vocabulary is good, but limited. If you are having trouble "
181 PRINT"doing something, try re-phrasing the command or you may need some object to"
182 PRINT"accomplish the task. By the way, the computer only looks at the first 3 letters"
183 PRINT"of each word.":GOSUB 230
184 PRINT:PRINT TAB(31);"--- GOOD LUCK ---":PRINT:PRINT
185 INPUT"Press return to continue.....",A$
186 GOSUB 215
187 RETURN
188 REM ******** PRINT AT ********
189 PRINT CHR$(27)+"Y%B";"W E L C O M E"
190 PRINT CHR$(27)+"Y':";"TO DRACULA'S CASTLE ADVENTURE"
191 PRINT CHR$(27)+"Y,@";:GOSUB 221:PRINT"ENTER IF YOU DARE";:GOSUB 230
192 RETURN
193 REM *********** CASTLE **************
194 GOSUB 215
195 PRINT:PRINT:PRINT:PRINT
196 Z$=STRING$(2,177)+SPACE$(2)
197 X$=STRING$(2,177)
198 REM
199 REM
200 PRINT TAB(10);" ";:FOR Z=1 TO 4:PRINT Z$;:NEXT:FOR S=1 TO 15:PRINT" ";:NEXT:FOR Z=1 TO 4:PRINT Z$;:NEXT:PRINT
201 PRINT TAB(10);" ";:FOR B=1 TO 7:PRINT X$;:NEXT:FOR S=1 TO 16:PRINT" ";:NEXT:FOR B=1 TO 7:PRINT X$;:NEXT:PRINT
202 PRINT TAB(10);" ";:FOR B=1 TO 5:PRINT X$;:NEXT:FOR S=1 TO 18:PRINT" ";:NEXT:FOR B=1 TO 5:PRINT X$;:NEXT:PRINT
203 PRINT TAB(10);" ";:FOR B=1 TO 5:PRINT X$;:NEXT:FOR S=1 TO 18:PRINT" ";:NEXT:FOR B=1 TO 5:PRINT X$;:NEXT:PRINT
204 PRINT TAB(10);" ";:PRINT X$;X$;" ";X$;X$;:FOR S=1 TO 18:PRINT" ";:NEXT:PRINT X$;X$;" ";X$;X$;:PRINT
205 PRINT TAB(10);" ";:PRINT X$;X$;" ";X$;X$;:FOR S=1 TO 18:PRINT" ";:NEXT:PRINT X$;X$;" ";X$;X$;:PRINT
206 PRINT TAB(10);" ";:FOR B=1 TO 5:PRINT X$;:NEXT:FOR S=1 TO 9:PRINT Z$;:NEXT:FOR B=1 TO 5:PRINT X$;:NEXT:PRINT
207 PRINT TAB(10);" ";:FOR B=1 TO 28:PRINT X$;:NEXT:PRINT
208 PRINT TAB(10);" ";:FOR B=1 TO 28:PRINT X$;:NEXT:PRINT
209 PRINT TAB(10);" ";:FOR B=1 TO 28:PRINT X$;:NEXT:PRINT
210 PRINT TAB(10);" ";:FOR B=1 TO 28:PRINT X$;:NEXT:PRINT
211 PRINT TAB(10);" ";:FOR B=1 TO 14:PRINT X$;:NEXT:PRINT" ";:FOR B=1 TO 13:PRINT X$;:NEXT:PRINT
212 RETURN
213 REM ******************* ESCAPE CODES ******************
214 REM
215 REM ************ CLS *********
216 PRINT CHR$(27)+"E";:RETURN
217 REM
218 REM *********** NORMAL FLASH *************
219 PRINT CHR$(27)+"p";:RETURN
220 REM
221 REM *********** REVERSE NORMAL FLASH **************
222 PRINT CHR$(27)+"p";:RETURN
223 REM
224 REM ********** NORMAL UNDERLINE **************
225 PRINT CHR$(27)+"0";:RETURN
226 REM
227 REM *********** LOW LIGHT *************
228 RETURN
229 REM
230 REM *********** RESET **********
231 PRINT CHR$(27);"q";CHR$(27)+"1";:RETURN
232 REM