The Professional Adventure Writer
Technical manual
music by Jaan
(C) 1986 Gilsoft International Ltd.
(C) 1996 Alex ASP, Translation
_______________________________
Program: TJGilberts, Y. Yeandle, P. Wade
1Grafika: D. Peeke, K. Maddocks and A. Williams
Guide: T. J. Gilberts
The text in Word: P. Contreras
Translation is dedicated to those who:
first simply ABecSilil,
then drank grief with GACom,
Then, perhaps, QPIlsya,
and will continue, uRAW, go ...
I. From the interpreter.
Well, as expected, in this part of
text can be seen a whole bunch of
all delusional and prakiticheski useless information on the
described more software, so some may be quite safely skip
That, and some may not Read
All of the following.
The first question that probably arises: "What kind of animal
is and why you eat?" This is another program designed to build
adventyurnyh toys. Its predecessor
a package of QPI, which seems in the eyes of
Nobody saw. After creating this
pack (QPI), a firm Gilsoft, apparently, has not stopped the
work. Probably got a whole bunch of letters about the fact that
not bad to do something for to be able to cram more information
into any non-rubber Spectrum 48K, the company produces, in
addition to the package program Press, which allows compress
text data. But there are likely to have rebelled those
had a slightly more stretched Spectrum
128K. Nope, they say, hunting load all the time
then one program, then another, want to
as all normal people, there were two in
one (the reader, four in one), and want the game to take all of
our 128 to create such labirntov that all the players over the
years could not go through, once downloading the game. It was
then grasped Gilsoft his head (or Keyboard'y)
mixed codes of all the programs using
either XOR, whether OR, and even HORROR, and was such a dirty
trick that no fairy tale say no to remove the formatter, in
short, something that became known as the Professional
Adventure Writer (PAW).
On what might this program, go
Various rumors. Some say that the programmers she eats alive,
others say it's the cause occurrence of nightmares creators
adventyur. Personally, I only saw the program
Mike Lemmon (Compass Software), some works are even less
well-known (at us) programmers as well as fairly well-known
MINDFIGHTER, which was created by Abstract Concepts, was all
the same ubiquitous Delta 4, decided the same write something
serious (but for some reason, there is the name of the brand
adventyurostroitelnogo another product).
History of the creation of this translation is very
typical. Looking through somehow email
Journal Sceptical, unreleased years in
88h by Delta 4, stumbled on advertising
this software product. For fun
decided to see if this vesh on
gourmet servers, and to my surprise
her there and found (before this I was searching there QPI,
but found only a Quill). Clearly the case, continue searching
its description. After weeks of searching it was found. This
was the file format of Word, which contained a proprietary
documentation, stuffed Pablo Contreras for he declared to be
entered thanks to your book. After the conversion from MS-DOS
format of the volume was about 130 K of pure English text. In
Due to the fact that in Russian the words longer, and the fact
that some British proposals appended to Russian translation,
the volume is slightly increased and at this point is about 150K
(No pictures), which corresponds to approximately 3 / 4 volume
of single rooms Journal ZX-Revue. But at this point was
completely different text. Literally two days
before when I had to give all
stuffed to the editor, appeared on the server
full version of PAW, including corporate example of the game
(TEWK), startovvuyu database and Some fonts that were not
originally in the downloaded version, so that now the set is
complete.
Now let me make a small
digression to say a few words about
translation itself. Firstly, I have to categorically state that
did not go to institute of foreign languages and that I am
not a professional translator, so perhaps the text is a bit
clumsy. Perhaps for this reason that I do not I will explain
where the current location and why it is so called, and why
cases are, oddly enough, nasty. During the translation have
been corrected some logic errors (nabivalshiki and translators
are human beings too!), But perhaps, some remained. By the way,
when describing the format of the dictionary in ZF 5 I
long thought to what kind of approach
Classification of parts of speech, because one part
speech in the Russian language can be quite different in
English. And I decided then that if I write in Russian, then
the application Russian classification. When I translated the
text, I realized that it is better still be used specifically
English, and that was done.
And another pair of words. As we know, bourgeois Sinclair lives
as a virtual machine and the TR-DOS does not run there, and is
used kvazilentochny input. Once found PAW, he was given to
rework. Not being able to see her result and with only
Wordovsky text which describes the tape only apricots,
I have the latest and translated into Russian. Therefore, if
there will be some nuances in the work of TR-DOS, then someone
will describe them later separately.
Yes, I almost forgot to say hello to, and
Today he is transmitted to developers
IS-DOS. This is a very Soul Plane Operating System
(For the time flew by 2 (dva!) disk
with the fourth version, so most
Part of the text had to fill in
second, well, that does not formatnul it
his time, but it would remain with nothing, and
it would have been unhappy, because, and so had
rake out the text from the wreckage). And yet,
ERROR 1972 Rulezzzz Forever!
And now a little bit about the plans. Not
I know you, but personally I have this text
I can not see, strength is not enough to view it again and
choose the remaining ochepyatki. One senses that for some
time, completely lost the desire something
write. When it appears again to be
can Fill promised an article about text
in adventyurah (promised to appear boleemenee perebirabelny
decompressor for text LEVEL 9), and then what? (Behind the
scenes Glavred, chuckling, they say, and this we have let's
see, let, cut or completely a knife, rubs his hands.) from the
last interesting things on this subject that have appeared on
the servers, there is a programm Unquill for PC the size of the
order of 20K, which makes the game source code, so that anyone
out there yelling, they say, want something about PC? Need it
for you? If yes, then all questions to Glavred. There was a
sort of proprietary opisalovka to the GAC (God forbid me from
it - enough for me and PAW). There are a number of smaller
things. So that almost truncated depends on you (maybe in vain
the disk space occupied in ZF?). In short, all those who have
any suggestions, comments, and just clever ideas, may apply.
Address: ZF, or the old E-mail:
SAB94174@D1.IFMO.RU
II. More information.
All rights reserved. None of the documentation may not be
copied, given a loan, bought, or reproduced in any form,
including electronic version, without the written permission of
the authors and Gilsoft International Ltd.
The above remark does not apply to
routines that are part of
Your game, and you may redistribute it
free on request. The only
you have to do is elsewhere
within the game to mention that it was made by PAW.
By Pablo Contreras: If Gilsoft wants to arrange a trial
I'd be grateful if you would not
occurred for the following reasons:
1) I am a big fan of your products and
just want to increase its use
2) There are no kind of money can not buy
3) I myself bought PAW, when he appeared
4) a lot of money, I still do not
From the translator: I dared to translate
the text of the following considerations:
It is known that the servers is just something to do with
Sinclair'om authors Why not consider now a commercially
valuable product. For example, you do not can find some
adventyury firms Zenobi and some other firms, because
that the authors are asked not to distribute them, and
people adhere to this. PAW and its
description are quite a long time on many servers, so no
objections from Gilsoft have been reported. Thus Gilsoft
gave permission for free use
PAW, so it is quite possible, and the appearance of
of translation.
Thanks from Gilsoft: Thank you Howard and Pam for patience,
Phil for the comments, Greame for clever ideas, Dicon and
another for the graphics, as well as all our customers for
their support and advice.
III. Introduction.
PAW can be divided into three main functions:
1. Database
A database is a union of tables created in this way,
that contain all the information necessary
for adventyury. This database was originally
contains the minimum number of rows that
likely to be required in each game.
Typically, the table is one row
what is done to simplify the system.
The database can use the additional RAM pages 128K machine.
2. Editor
Editor is a two-tiered menu system, ie most of the functions of
the main menu can cause a submenu from which you can access all
program functions. All operations can be done either from the
command line is part of the menu options, or
Upon request, the program (prompt). Such
combination of menu and command line was the best for beginners
as well as for professional users.
3. Interpreter.
This part is the heart
PAW. The next chapter will be given a detailed description of
his work as if to say In short, it receives commands from the
player and uses information stored in the database in order to
decode those most teams and how to react to
them.
Small size makes it impossible to PAW
for its full allocation in main memory. 128K on a car the main
part of a program stored in the form of overlay files for extra
RAM pages and sent to main memory for basic necessities. A
similar approach is used for 48K machines and sosotoit in that
three overlay is stored in memory as long as they do not
overlap created program. If a 128K machine initialized
additional RAM or page 48K on the car will be covered with
overlays, the call option that does not belong to this
overlay would cause that prompted PAW
load the overlay. The main menu and
overlay system covers approximately 4K
space that will be available
Database RAW. Occupy about 10K
Larry and his workspace
For example, a buffer for the team Ramsave,
input and raspakovi. Thus, there is about 27K for databases and
5 more RAM pages of 16K each, for a total
is about 117K to 128K machine.
This space can be used very effectively thanks to a text
compressor, which still occupies 222 byte enables packing
efficiency of text about 40%. For the average full text
adventyura (no graphics) for the 48K machine is similar to
adding about 8K of space for the database
ie the total space of the database
leaves 35K.
IV. Interpreter.
Flowchart 1.
/ \
(Start)
\ /
Initialization
\
D>
/
Description
locations
Table
processes 1
>
Table
Processes 2,
Enter phrases
No / / _ \ Yes
<Found? >
\ \ - / /
, No / / - \ Yes TURNS +1,
4 <empty. action? > Search in the table
\ \ - / / Integer answers
SM6 SM35
"I don't" Time
Understand "Passes .."
Yes / / - \ No
<<
\ \ - / /
Search
Table
compounds
No / / - \ Yes
<Got? >
\ \ - / /
No / / - \ Yes
<Verb <14? >
\ \ - / /
SM8 SM7
"Can't" Can't go
do that "that way"
<
Flowchart 2.
/ \
(Start)
\ /
No / / - \ \
+
\ \ - / /
Yes
/ / - \ Yes
\ \ - / /
No / / - \ No
<Verb meet?>
\ \ - / /
Yes
/ / - \ No
- <Noun meet?>
\ \ - / /
Yes
<
/ / - \ No
<More kondakty?>
\ \ - / /
Yes
No / / - \ Yes
<Terms and Conditions? >
\ \ - / /
/ / - \ No
/ Run. action
\ \ - / /
Yes
/ / - \ Yes + \
+ D>
\ \ - / / + /
No
Yes / / - \ No
<Exit? >>
\ \ - / /
>
/ \
End
End
\ /
By reading this chapter, you must pay attention to the
flowchart shown above.
1. Initialization.
Background colors and character set installed, but the screen
is not cleared, as this usually happens to describe the zero-
location. All flags are cleared except for flags 37 - the
number of wearable objects which is equal to 4, the flag 52 -
maximum weight of portable objects, which is equal to 10, flags
46 and 47 - current pronoun (Pronoun) (usually
, "IT"), which are assigned a value of 255
(No pronoun) and a flag - the number worn but not worn objects.
Note what is reset flag has the effect of
that the game will always start from
location 0, which is due to reset
Flag 38 - the current location of the player.
2. Description of the current location.
If flag 2 is not 0, it decreases
1. If the room is dark (0 flag is not equal to 0) and the flag
of 3 is not equal to 0, then the flag 3 decreased by 1. If the
room is dark, flag 4 is not equal to 0 and there is no object 0
(Light source), then the flag 4 is reduced and
The screen is cleared, if the current mode
screen (the contents of the flag 40) is not
first.
If a dark object 0 is absent,
print system message 0 (SM0 -
"It's too dark to see anything" "Too
dark ..."). Otherwise, the picture is drawn and printed
description of location without NEWLINE. 3. Scan the process
table N1.
Flowchart 2 and subsequent text describes a table scan
processes. Table N1 processes used to
hranneniya lines, you need to add
additional information to describe the current location, for
example, open doors, present objects, etc. Here
with 4 screen mode will be
PROTECT act done to set the number line below which will be
scrolled text.
Now we enter the main loop, where
is tracking time and is the answer to
actions of the player.
4. Scan the process table N2.
The main block of the PAW, used
to perform the movements and actions
PSI (pseudo-intelligent characters
ie heroes are not controllable player
a computer), uncontrolled events, such as the destruction of
the bridge.
5. Getting phrase
If the flags from 5 to 8 are not equal to 0, they
decreased by 1. If the room is dark
(0 flag is not equal to 0), and the flag of 9 is not equal to 0,
the latter is reduced by 1. If the
room is dark and the flag 10 is not equal to 0, then
the latter is reduced in the absence of
object 0.
Called by the parser (the conversion routine introduced the
proposal in a logical (LS). If the input buffer is empty, then
by Print prompta (invitation) is captured and subroutine call I
get offers new proposal in the input buffer. Prompt - system
message number which is contained in the flag 42. If there will
be is 0, then it will lead to the issuance of a system message
SM2 - SM 5 and the probability of their issue will be
30:30:30:10, respectively.
If you select the empty action
, (TIMEOUT) by setting a flag in 1948
values greater than 0, then the procedure
I must work out his. In this case, the case is issued SM35
("Time passes." "It has been some time ...") and made a return
to scan the process table N2.
Imposed sentence is converted into
logic by replacing each word
introduced the proposal if it is
in the dictionary program on its numerical value and entering
these values into the appropriate flags.
If you can not make any valid logical proposal, printing,
melting SM6 ("I couldn't understand any of that "" What has
been said I do not understand ") and made a return to scan the
process table N2.
6. Table scan responses.
The number of teams that managed to convert a logical proposal
- Turns (Flags 31 and 32), increased by 1. Two
flag used to be able to score up to 65536 such teams.
Then scanned the table of answers to
the presence of lines corresponding to
Verb and Noun1 (verb and Suschestvitelnoe1)
the current LS, using the sub-processing tables, which are
described below.
If possible, take action (if PAW displays a message different
from NOTDONE), then returns to scan the process table N2.
7. Scanning the table of compounds.
Produced a table scan for the presence of the compound word,
the corresponding verb of the current LS. If at least one are
found, then the flag is 38 (the current the location of the
player) is entered chmslo, corresponding to this word. Then you
will return to the description of the new location. Otherwise,
prints SM7 ("I can't go in that direction "" I can not go
there), if the verb is less than the current LS 14, otherwise
SM8 ("I can't do that" "I can not do it "). In both cases, you
will return to scan the process table N2.
V. Scan the process table.
Table of responses is a table of processes (note that any
subprocess called from the table has the answers
the same traits), so it will also be possible to scan this part
of the PAW. Difference is that PAW will try to match the verb
and noun go1 of LS in the table answers.
PAW will look at all the data in
table until until it reaches its
end. Assume that some line
exists, and it if is in the table answers will be checked
against the verb and noun. Using the words "*" and "_" instead
of the Verb or noun would lead to that
This part of LS (verb or noun)
can be equal to every word. Thus the string "*", "_" and the
like will cause execution of the line, regardless from what was
LS. This property should be used in any table
that will be called from both tables
responses, and from the process table. If
in the process table verb and noun match, the rest of the LS is
not important.
PAW then in turn scan all
kondakty (CondAct - condition / action).
If this is the condition, and it holds
PAW then proceed to the next kondaktu. In
Otherwise, PAW out of the current
kondaktov list and go to the next
line (line - a set (list) kondaktov), if any, will still exist
in the table. Exception - QUIT: if the test gives a negative
result, immediately happen out of the table. This is not
shown in Block 2 of the scheme considerations
simplicity. If kondakt will indeed
it, it will be produced.
Actions can be divided into the following
Groups:
1. Desc: after the place full output from the processing of all
tables (even if nahodlis in subprocess level 10) and
will be a transition to a description of the current location.
2. END: the full output from the processing of all
tables and the transition to the initialization of a new
game.
3. Exit: any action that will stop processing the current table
and log out in the offending table (or back the main loop, if
there was a table responses, processes 1 or 2), for example,
EINVEN, DONE.
4. Conditional Exit: any action that will stop processing the
current table and implement the output to the calling table
(Or back into the main loop, if there was
Table replies processes 1 or 2) if you can not perform the
required functions For example, GET, PUT IN etc. Otherwise
event processing will continue with the next kondakta.
5. Normal: any action, has fulfilled
their functions, and allows PAW continue viewing the next
kondaktov in the current row, for example, COPYFF, PLUS.
It is easy to see what is QUIT
to 4 type of action, but is still
condition, so is a real kondaktom. Complete descriptions of all
kondaktov at the end of leadership, where and shows belong to
the type.
VI. Kondakty.
In this tutorial you will find
detailed description of all kondaktov
(CondActs - condition / action). They are divided into groups
based on the fact of what they work in PAW: flags, objects, etc.
Also provides some tips on
their potential use.
The text will be used to reduce nekotoye:
locno. Number of locations.
locno + number or location:
252 not-created is not created
253 worn put on
254 carried worn with a
255 is perceived as the number of those
Tabernacles locations
mesno. Message number.
sysno. Number of system messages.
flagno. Flag number.
procno. Number of subprocess.
wordslovo required type, which
is in the dictionary or "_" that
means any word from the dictionary.
value number from 0 to 255.
VI.I. Conditions (Conditions).
1) There are 4 conditions that are used to verify the location
in which danny is in the moment a player:
AT locno true if the number of the current location is locno.
NOTAT locno true if the current number
location is not equal locno.
ACGT locno true if the number is greater than the current
location locno.
ATLT locno true if the number is less than the current location
locno.
2) There are eight conditions that are associated
with the current position of the object:
PRESENT objno true if the object with the number objno. is a
player is put on it, or is in the current location.
ABSENT objno true if the object with the number objno. is not
the player is not on it and is not in this location.
WORN objno true if the object number
objno. is put on the player
NOTWORN objno true if the object with the number objno. is a
player, but wearing on him.
CARRIED objno true if the object with the number objno. is a
player.
NOTCARR objno true if the object with the number objno. is not
a player.
ISAT objno locno + True, if the object
number objno. is in the location locno.
ISNOTAT objno locno + true if the object
number objno. is not in the location
locno.
3) There are 8 conditions associated with
and comparing the values of flags:
ZERO flagno true if the value of the flag
flagno. is 0
NOTZERO flagno true if the value of the flag flagno. is not
equal to 0.
EQ flagno value is true if the value
Flag flagno. equal to the number value.
NOTEQ flagno value is true if the value
Flag flagno. is not equal value.
GT flagno value is true if the value
Flag flagno. greater than the number value.
LT flagno value is true if the value
Flag flagno. less than the number value.
SAME flagno1 flagno2 true if the value
Flag flagno1 equal to the value of the flag flagno2.
NOTSAME flagno1 flagno2 true if the value of the flag flagno1
not equal Flag flagno2.
4) There are 5 conditions for testing the extended logical
proposal. Better use these terms only when necessary a special
word (or lack of words by using "_") for definition of the
situation. This increases flexibility in recognition of
commands.
ADJECT1 word is true, if the adjective
the first noun of the LS is the word word.
ADVERB word is true if the verb of the LS
is the word word.
PREP word is true, if the excuse of the LS
is the word word.
NOUN2 word is true, if the second noun of the LS is the word
word.
ADJECT2 word is true, if the adjective
the second noun of the LS is the word word.
5) The following condition is used for random processes. They
can be used in order to create a random possibility of falling
tree at the player during thunderstorm or breakage of the
bridge, etc. Do not get carried away this opportunity, always
leave the player a way to prevent such events, such as the
presence of rubber footwear in the case of a thunderstorm.
CHANCE percent true if percent less
or equal to a random number from range
from 1 to 100 inclusive. CHANCE PAW 1950 will move to the next
kondaktu only if the resulting random
number is in the range of 1 to 50 -
as realized, for example, 50 and interest
chances for success in any business.
6) There is a unique condition for
checking empty action (Timeout):
TIMEOUT is true if, during the player's request was authorized
by the programmer performance (getting) empty action. For
example, process table N2 may contain a string TIMEOUT MESSAGE
0 (where 0 is the MESSAGE line "Come on, sleepy" "Enough to
bed, sleepyhead!"). Even better, if it will be called by CHANCE
or counter empty of action, to sign
did not appear too often. When a player
while nothing will be entered with
keyboard, the machine will remind him that it is not
He came here to sleep, and play (if you can
This extract from the car any reflectively-uterine sounds).
7) And finally, the most natural kondakt:
QUIT In reply to a printed SM12
("Are you sure?" "Are you sure?"), After
then calls subroutine input. True if the player enters the
first letter of SM30 ("Y") in response to the prompt. Otherwise
case will be made of NEWTEXT
and DONE.
...