-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathBLANK_EN.DSF
444 lines (367 loc) · 12.6 KB
/
BLANK_EN.DSF
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
; BLANK.SCE empty database for DAAD V2
;
; This database provides a way of adapting PAW & DAAD V1 sources to DAAD V2.
; Note that flags which were automatically decremented no longer do so.
;
; English language template, recreated by Stefan Vogt, Pond Soft [17-7-18].
;------------------------------------------------------------------------------
;
; 'Everything is possible in this life ( but it all costs time and money! )'
; Tim Gilberts
;
; 'And also WE ALL have to work for it'
; Andrés Samudio
;
; [8-6-89]
;
;------------------------------------------------------------------------------
;#extern "MLV_ESX.BIN"
;#classic
;#debug
#define TIMEOUT 87 ;If Timeout last frame
; System flags 0-63
#define fDark 0
#define fObjectsCarried 1
#define fDarkF 28
#define fGFlags 29 ; This is best tested using HASAT GMODE
#define fScore 30
#define fTurns 31 ; 2 bytes
#define fTurnsHi 32
#define fVerb 33
#define fNoun 34
#define fAdject1 35
#define fAdverb 36
#define fMaxCarr 37
#define fPlayer 38
#define fPrep 43
#define fNoun2 44
#define fAdject2 45
#define fCPronounNoun 46
#define fCPronounAdject 47
#define fTimeout 48
#define fTimeoutFlags 49
#define fDoallObjNo 50
#define fRefObject 51
#define fStrength 52
#define fObjFlags 53
#define fRefObjLoc 54
#define fRefObjWeight 55
#define fRefObjIsContainer 56
#define fRefObjisWearable 57
#define fRefObjAttr1 58
#define fRefObjAttr2 59
#define fInkeyKey1 60
#define fInkeyKey2 61
#define fScreenMode 62 ; 2=Text, 4=CGA, 13=EGA, 141=VGA
#define fCurrentWindow 63 ; Which window is active at the moment
/CTL ;Control Section (null char is an underline)
_
;------------------------------------------------------------------------------
/VOC ;Vocabulary
; Movements ie verbs and nouns < 14
N 2 noun
NORTH 2 noun
S 3 noun
SOUTH 3 noun
E 4 noun
EAST 4 noun
W 5 noun
WEST 5 noun
NE 6 noun
NW 7 noun
SE 8 noun
SW 9 noun
U 10 noun
UP 10 noun
ASCEN 10 verb
D 11 noun
DOWN 11 noun
DESCE 11 verb
; Nouns <20 means can be used as verbs
; <50 means a proper noun ie not an 'IT'
I 14 noun
INVEN 14 noun
ALL 20 noun
LOT 20 noun
EVERY 20 noun
;
TORCH 100 noun
; Verbs
GET 20 verb
TAKE 20 verb
DROP 21 verb
PUT 21 verb
REMOV 22 verb
WEAR 23 verb
R 24 verb
REDES 24 verb
QUIT 25 verb
Q 25 verb
STOP 25 verb
SAVE 26 verb
LOAD 27 verb
RAMSA 28 verb
RAMLO 29 verb
LOOK 30 verb
EXAMI 30 verb
SAY 31 verb
ASK 31 verb
TALK 31 verb
SPEAK 31 verb
; Adjectives
SMALL 2 adjective
BIG 3 adjective
LARGE 3 adjective
OLD 4 adjective
NEW 5 adjective
HARD 6 adjective
SOFT 7 adjective
SHORT 8 adjective
LONG 9 adjective
; Adverbs
QUICK 2 adverb
SLOWL 3 adverb
QUIET 4 adverb
LOUDL 5 adverb
CAREF 6 adverb
SOFTL 6 adverb
GENTL 6 adverb
; Prepositions
TO 2 preposition
FROM 3 preposition
IN 4 preposition
OUT 5 preposition
THROU 6 preposition
OVER 7 preposition
UNDER 8 preposition
BY 9 preposition
ON 10 preposition
OFF 11 preposition
AT 12 preposition
EXCEP 13 preposition
; Pronouns
IT 2 pronoun
THEM 2 pronoun
; Conjugations
AND 2 conjugation
THEN 2 conjugation
;------------------------------------------------------------------------------
/STX ;System Message Texts
/0 "It's too dark to see anything."
/1 "I can also see: "
/2 "#nWhat now?"
/3 "#nWhat next?"
/4 "#nWhat should I do now?"
/5 "#nWhat should I do next?"
/6 "#nI was not able to understand any of that. Please try again."
/7 "#nI can't go in that direction."
/8 "I can't do that.#n"
/9 "I have with me:#n"
/10 "I am wearing:#n"
/11 "";*Spare
/12 "Are you sure? "
/13 "Would you like another go? "
/14 "";*Spare
/15 "OK.#n"
/16 "Press any key to continue.#n"
/17 "";*You have taken
/18 "";*\sturn
/19 "";*s
/20 "";*.[CR]
/21 "";*You have scored
/22 "";*%[CR]
/23 "I'm not wearing one of those.#n"
/24 "I can't. I'm wearing the _."
/25 "I already have the _."
/26 "There isn't one of those here."
/27 "I can't carry any more things."
/28 "I don't have one of those."
/29 "I'm already wearing the _."
/30 "Y" ;One upper case character only
/31 "N" ;One upper case character only
/32 "More..."
/33 "#n>"
/34 "";*Spare
/35 "#nTime passes...#n"
/36 "I now have the _.#n"
/37 "I'm now wearing the _.#n"
/38 "I've removed the _.#n"
/39 "I've dropped the _.#n"
/40 "I can't wear the _.#n"
/41 "I can't remove the _.#n"
/42 "I can't remove the _. My hands are full.#n"
/43 "The _ weighs too much for me.#n"
/44 "#nThe _ is in the "
/45 "The _ isn't in the "
/46 ", "
/47 " and "
/48 ".#n"
/49 "I don't have the _.#n"
/50 "I'm not wearing the _.#n"
/51 ".#n"
/52 "There isn't one of those in the "
/53 "Nothing.#n"
/54 "T" ;Letter for Tape
/55 "D" ;Disc
/56 "Drive not ready - press any key to retry.#n"
/57 "I/O Error.#n"
/58 "Disc or Directory may be full."
/59 "Invalid filename."
/60 "Type in name of file:"
/61 "Start tape.#n"
/62 "Tape or Disc?"
;------------------------------------------------------------------------------
/MTX ;Message Texts
/0 ""
;------------------------------------------------------------------------------
/OTX ;Object Texts
/0 "A pocket torch. (lit)"
;------------------------------------------------------------------------------
/LTX ;Location Texts
/0 "EMPTY DATABASE - DAAD V2."
/1 "I'm at location number one. A road leads north."
/2 "I'm at location number two. A road leads south."
;------------------------------------------------------------------------------
/CON ;Connections
/0
/1
N 2
/2
S 1
;------------------------------------------------------------------------------
/OBJ ;Object Definitions
;obj starts weight c w 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 noun adjective
;num at
/0 CARRIED 1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ TORCH _
;------------------------------------------------------------------------------
/PRO 0 ;Main Location Loop
> _ _ AT 0 ; Starting game
PROCESS 6 ; then we need init sequence
> _ _ WINDOW 0 ; Select graphics window
CLEAR fDarkF ; Assume light
; MINUS 2 1 ; Decrement flag 2 (See notes)
NOTZERO 0
; MINUS 3 1 ; & Flag 3 if Dark (See notes)
ABSENT 0
; MINUS 4 1 ; & Flag 4 if No Lamp (See notes)
SET fDarkF ; Dark
> _ _ PICTURE @fPlayer ; If there is a picture, Load it
DISPLAY @fDarkF ; & Display it if not dark, else CLS
> _ _ WINDOW 1
NOTZERO fDarkF ; Dark
SYSMESS 0
> _ _ ZERO fDarkF
DESC @fPlayer ; Doesn't exit loop now
> _ _ PROCESS 3
; Now we use Process 1 as the main code loop, a return from it is the end
; of the game
> _ _ PROCESS 1
;------------------------------------------------------------------------------
/PRO 1
> _ _ PROCESS 4 ; Do process 2 stuff here
;> _ _ MINUS 5 1 ; Update auto flags
; MINUS 6 1 ; These are not supported anymore
; MINUS 7 1 ; as we use the low section as
; MINUS 8 1 ; a small stack
; NOTZERO 0 ; But should you need them
; MINUS 9 1 ; this is the Version 1 DAAD code!
; ABSENT 0
; MINUS 10 1
> _ _ PARSE 0 ; Get next LS from current buffer
PROCESS 2 ; Failed cos of invalid or timeout
REDO
> _ _ EQ fTurns 255 ; Max for one byte
PLUS fTurnsHi 1
CLEAR fTurns
SKIP $noCarry
> _ _ PLUS fTurns 1
$noCarry
> _ _ PROCESS 5 ; Do any commands
ISDONE ; Done something
REDO
> _ _ MOVE fPlayer ; No so try to move player
RESTART ; Absolute jump to start process 0
> _ _ NEWTEXT
LT fVerb 14
SYSMESS 7
REDO
> _ _ SYSMESS 8
REDO
;------------------------------------------------------------------------------
/PRO 2
> _ _ HASAT TIMEOUT
SYSMESS 35
DONE
> _ _ SYSMESS 6 ; I didn't understand
;------------------------------------------------------------------------------
/PRO 3 ; Old process 1. Note that both the response table and the old PAW
; process tables 1 and 2 can now be anywhere or completely absent. Everything
; is implemented in the DAAD language itself.
;This is better carried out thus
> _ _ NEWLINE
ZERO fDarkF ; Isn't dark
LISTOBJ
;than the old system needed in Version 1, without accesss to DarkF
;> _ _ NEWLINE
; ZERO 0 ;If it is light...
; ABSENT 0 ;and the light source is absent...
; LISTOBJ ;List the objects
;> _ _ PRESENT 0 ;If the light source is present...
; LISTOBJ ;List the objects
;------------------------------------------------------------------------------
/PRO 4 ; Old process 2
;------------------------------------------------------------------------------
/PRO 5 ; Command decoder
> I _ SYSMESS 9
LISTAT CARRIED
SYSMESS 10
LISTAT WORN
DONE
> GET ALL DOALL HERE
> GET _ AUTOG
DONE
> DROP ALL DOALL CARRIED
> DROP _ AUTOD
DONE
> REMOVE ALL DOALL WORN
> REMOVE _ AUTOR
DONE
> WEAR ALL DOALL CARRIED
> WEAR _ AUTOW
DONE
> R _ RESTART
> Q _ QUIT
END
> Q _ DONE ;Not like QUIT on PAW
> SAVE _ SAVE 0 ;ditto
RESTART
> LOAD _ LOAD 0
RESTART
> RAMSA _ RAMSAVE
RESTART
> RAMLO _ RAMLOAD 255 ;Reload all flags
RESTART
> LOOK _ RESTART
;------------------------------------------------------------------------------
/PRO 6 ; Initialise the DAAD system
> _ _ WINDOW 1 ; Windows are random
> _ _ WINAT 14 0
WINSIZE 25 127 ; Maximum window
CLS
DESC 0 ; Introduction
ANYKEY
CLS
SET 255
$resetLoop
> _ _ MINUS 255 1 ; Clear all flags
NOTEQ 255 fGFlags ; except fGFlags!!!
CLEAR @255
> _ _ NOTZERO 255
SKIP $resetLoop
> _ _ RESET ; Set objects to start location & Flag 1
LET fStrength 10
LET fMaxCarr 4
SET fCPronounNoun
SET fCPronounAdject
GOTO 1 ; Main game
/END