ZX Format #06
29 июля 1997
  Софт  

Игрушки - описание редактора Адевентюр - PAW (часть 2).

<b>Игрушки</b> - описание редактора Адевентюр - PAW (часть 2).
              PAW
  Техническое руководство
         (продолжение)

music by DNK
(С) 1986 Gilsoft International Ltd.
(C) 1996 Alex ASP, перевод
_______________________________

 VI.II. Действия.

1)  Существует 19 действий, связанных с
изменеием местонахождения объекта:

GET objno  Если  объект  objno.  надет на
игроке  или  игрок  несет его, печатается
.SM25 ("I already have the _." "У меня уже
,есть  _.")  и выполняются NEWTEXT и DONE.
Если объект objno. не находится в текущей
локации,  печатается  SM26  ("There isn't
one  of  those  here."  "Такой вещи здесь
,нет.") и выполняются NEWTEXT и DONE. Если
суммарный вес объектов, находящихся у иг-
рока,  а  также надетых на него, плюс вес
объекта objno. превысят максимально допу-
стимый  вес,  который может поднять игрок
(флаг 52), то печатается SM43 ("The _ we-
,ighs  too  much for me." "_ весит слишком
-много для меня.") и выполняются NEWTEXT и
DONE. Если Игрок несет максимальное число
объектов  (флаг  1 больше или равен флагу
37),  печатается ("I can't carry any more
.things." "Я не могу взять больше вещей.")
и  выполняются  NEWTEXT и DONE. Вдобавок,
из любого текущего цикла DOALL выполняет-
ся  выход. Если не выполняется ни одно из
вышеперечисленных условий, местоположение
объекта  objno.  меняется на carried (не-
сется  игроком),  флаг 1 увеличивается на
1, и печатается SM36 ("I now have the _."
  "Теперь у меня есть _."). 

DROP objno  Если объект objno. надет, пе-
чатается  SM24 ("I can't. I'm wearing the
-_."  "Не  могу,  потому что _ на мне.") и
выполняются  NEWTEXT  и DONE. Если объект
objno. находится в текущей локации, но не
надет  на  игрока,  и игрок не несет его,
.печатается SM49 ("I don't have the _." "У
,меня  отсутствует _.") и выполняются NEW-
TEXT  и DONE. Если объект objno. не нахо-
дится  в текущей локации, печатается SM28
.("I don't have one of those." "У меня нет
,ничего  такого.") и выполняются NEWTEXT и
DONE.  Если  вышеперечисленные условия не
выполнились,  то  местоположение  объекта
objno. меняется на номер текущей локации,
флаг 1 уменьшается на 1 и печатается SM39
-("I've dropped the _."  "Придется с тобой
расстаться, _."). 

WEAR objno  Если  объект objno. находится
в  текущей локации, но не находится у иг-
рока,  печатается SM49 ("I don't have the
/_." "У меня отсутствует _.") и выполняют-
ся NEWTEXT и DONE. Если объект objno. уже
надет  на  игрока,  печатается SM29 ("I'm
-already  wearing the _." "На мне уже есть
_.")  и  выполняются NEWTEXT и DONE. Если
игрок  не несет объект objno., печатается
.SM28 ("I don't have one of those." "У ме-
ня  этого  нет.") и выполняются NEWTEXT и
DONE.  Если  объект objno. не имеет флага
Wearable (одеваемый)(WR опция меню object
weight  (вес  объекта)),  печатается SM40
-("I  can't wear the _." "Никак не надева-
-ется _."). Если ни одно вышеперечисленное
условие  не  выполнилось,  местоположение
объекта  objno. меняется на worn (надетый
на игрока),  флаг1 уменьшается на 1 и пе-
чатается  SM37  ("I'm now wearing the _."
  "Теперь на мне есть _.").

REMOVE objno  Если объект находится у иг-
рока  или  в текущей локации, но не надет
на  игрока, печатается SM50 ("I'm not we-
,aring  the  _." "На мне отсутствует _."),
выполняются  NEWTEXT  и DONE. Если объект
objno.  не  надет  на  игрока, печатается
.SM23 ("I'm not wearing one of those." "На
,мне  этого нет.") и выполняются NEWTEXT и
DONE.  Если  максимальное число объектов,
носимых игроком (флаг 1) больше или равно
флагу 37, печатается SM42 ("I can't remo-
,ve  the _. My hands are full." "Не снима-
ется _. Мои руки полностью заняты."), вы-
полняются  NEWTEXT и DONE. Если не выпол-
нилось ни одно вышеперечисленное условие,
местонахождение  объекта  objno. меняется
на carried (несется игроком), флаг 1 уве-
личивается  на  1, печатается SM38 ("I've
,removed  the _."  "Я снял это, и теперь в
моих руках находится _."). 

CREATE objno Местоположение объекта objno
меняется  на номер текущей локации и флаг
1  уменьшается на 1, если этот объект нес
игрок.

DESTROY objno   Изменяется местоположение
объекта objno. на not-created (не создан-
ный) и флаг 1 уменьшается на 1, если этот
объект нес игрок.

SWAP objno1 objno2  Местоположения объек-
тов  objno1  и  objno2  меняются местами.
Флаг  1 не изменяется. Объект objno2 ста-
новится  объектом последней ссылки.

PLACE objno  locno+ Местоположение объек-
та  objno.  изменяется  на локацию locno.
Флаг 1 уменьшается на 1, если этот объект
нес  игрок,  и  увеличивается  на 1, если
этот  объект  был  помещен  в локацию 254
(предмет,  помещенный  в эту локацию, по-
лучает  статус carried (находится у игро-
ка)).

PUTO locno+ Местоположение   объекта  по-
следней  ссылки  (номер объекта находится
во флаге 51),  меняется на локацию locno.
Флаг  54  продолжает  указывать на старую
локацию.  Флаг  1  уменьшается на 1, если
этот  объект находился у игрока, и увели-
чивается на 1, если был помещен в локацию
254 (carried).

PUTIN objno  locno. Если объект locno. не
существует  или  не имеет флага container
(контейнер) (опция C в меню object weight
(вес  объекта)), то происходит ошибка ра-
,боты программы с выдачей сообщения "Ille-
,gal  Argument"  "Неправильный  аргумент".
Если объект objno. надет на игрока, печа-
тается  SM24  ("I  can't. I'm wearing the
-_." "Не могу. На мне уже есть _."), и вы-
полняются  NEWTEXT  и  DONE.  Если объект
objno.  находится  в  текущей локации, но
игрок  не  несет его, и этот объект не на
нем,  печатается  SM49 ("I don't have the
/_." "У меня отсутствует _.") и выполняют-
ся  NEWTEXT и DONE. Если объект objno. не
находится  в текущей локации, и игрок его
не  несет, печатается SM28 ("I don't have
/one of those." "У меня этого нет."),и вы-
полняются  NEWTEXT и DONE. Если не выпол-
няется ни одно из вышеперечисленных усло-
вий,  местоположение объекта objno. меня-
ется на locno., флаг 1 уменьшается на 1 и
печатается   SM44  ("The  _  is  in  the"
"Теперь  _  находится внутри штуки, нося-
,щей гордое имя"), описание объекта locno.
и SM51 (".").

TAKEOUT objno  locno.  Если объект locno.
не  сущетвует  или не имеет флага contai-
ner  (контейнер) происходит ошибка работы
,программы и печатается "Illegal Argument"
"Неверный  аргумент".  Если объект objno.
несет игрок, или этот объект надет на не-
го,  печатается SM25 ("I already have the
._."  "У  меня уже есть _.") и выполняются
NEWTEXT  и DONE. Если объект objno. нахо-
дится  в текущей локации, печатается SM45
("The  _  isn't  in  the"  "Но _ не в той
штуке,  имя  которой"),  описание объекта
locno.  SM51 ("."), выполняются NEWTEXT и
DONE.  Если объект objno. не находится ни
в текущей локации, ни в locno., печатает-
ся  SM52  ("There  isn't  one of those in
,the"  "Эта  вещь не помещена внутрь того,
-что Вы назвали словом"), описание объекта
locno., SM51 ("."), и выполняются NEWTEXT
и  DONE.  Если объект locno. игрок не не-
сет, и этот объект не на нем, и суммарный
вес  объектов, надетых на игрока и им не-
сомых  плюс  вес  объекта оbjno. превысит
максимальный  подъемный игроком вес (флаг
52),  то  печатается  SM43 ("The _ weighs
.too much for me." "Для меня _ весит слиш-
,ком много."), и выполняются NEWTEXT и DO-
NE. Если максимальное число объектов, что
несет  игрок  (флаг  1), больше или равно
флагу 37, печатается SM27 ("I can't carry
,any  more  things." "Не могу нести больше
вещей.")  и  выполняются  NEWTEXT и DONE.
Вдобавок,  из любого текущего цикла DOALL
осуществляется выход. Если не выполнилось
ни одно из вышеперечисленных условий, ме-
стоположение объекта objno. изменяется на
carried  (несет игрок), флаг 1 увеличива-
ется  на  1, печатается SM36 ("I now have
the _." "Теперь у меня есть _.").

Заметьте,  что ни PUTIN, ни TAKEOUT не
делают  проверки  на  присутствие объекта
locno.  Если  Вам  это нужно, то сделайте
  эту проверку самостоятельно.

DROPALL Все  объекты, несомые игроком или
надетые  на него помещаются в текущую ло-
кацию, т.е. все объекты выложены. Флагу 1
присваивается  0. Это сделано для совмес-
тимости  с  более ранними адвентюрострои-
тельными  системами. Заметьте, что строка
DOALL  254  произведет настоящий DROP ALL
(бросить  все),  принимая во внимание все
необходимые специальные действия.

1а) Следующие 6 действий являются автома-
тическими  версиями  действий  GET, DROP,
WEAR, REMOVE, PUTIN и TAKEOUT. Их считают
автоматическими  потому, что вместо того,
чтобы  требовать номер объекта, каждое из
них преобразует существительное (прилага-
тельное)  1 в объект последней ссылки пу-
тем сканирования 1 таблицы слов объектов.
Ищется  объект, который находится в одной
из  нескольких  локаций согласно убыванию
приоритетов   -  смотрите  индивидуальные
описания  каждого.  Такой поиск позволяет
PAW 'узнать', какой объект подразумевает-
ся  в  ситуации, когда несколько объектов
имеют  одинаковое  существительное (когда
игрок не определил прилагательное): в те-
кущей  локации, несомый игроком или наде-
тые  на  него, а также находящийся внутри
контейнера  в случае, когда его нужно вы-
тащить.

 AUTOG  Поиск номера объекта представлен-
ного   существительным  (прилагательным)1
производится в таблице слов объектов сог-
ласно  следующему приоритету: что в теку-
щей локации, что несет игрок, что на него
надето.  Так,  например,  более вероятно,
что  игрок  захочет взять объект, находя-
щийся  в  текущей локации, чем то, что он
захочет  взять  объект,  который у него с
собой  или надет на него. Если объект об-
наружен,  его  номер  передается действию
GET.  Если  же  такой  объект  существует
где-нибудь  в игре или если существитель-
ное 1 в словаре не обнаружено, печатается
SM26  ("There  isn't  one of those here."
"Здесь  ничего  подобного нет."), а иначе
печатается  SM8  ("I  can't do that." "Не
могу  сделать это."), т.е. этот объект не
доступен  сейчас,  но существует где-то в
игре. В двух последних случаях выполняют-
ся NEWTEXT и DONE.

 AUTOD  Поиск номера объекта,представлен-
ного   существительным  (прилагательным)1
производится в таблице слов объектов сог-
ласно  следующему  приоритету:  что несет
игрок,  что на него надето, что в текущей
локации, т.е. вероятность того, что игрок
захочет  положить  то, что он несет с со-
бой, больше, чем если он захочет положить
надетую на него вещь или ту, что находит-
ся  в  текущей локации. Если такой объект
найден,  то  его номер передается в дейс-
твие  DROP.  В противном случае если этот
объект  существует  где-нибудь в игре или
если  существительное 1 не найдено в сло-
варе,  печатается SM28 ("I don't have one
,of  those."  "У  меня этого нет."). Иначе
печатается  SM8  ("I  can't do that." "Не
,могу сделать это."), т.e. это недоступный
объект,  но  он существует в игре. В двух
последних  случаях  выполняются NEWTEXT и
DONE.

 AUTOW  Поиск номера объекта,представлен-
ного   существительным  (прилагательным)1
производится в таблице слов объектов сог-
ласно  следующему  приоритету:  что несет
игрок,  что на него надето, что в текущей
локации, т.е. вероятность того, что игрок
захочет  надеть то, что он несет с собой,
больше,  чем  если  он захочет надеть уже
надетую на него вещь или ту, что находит-
ся  в  текущей локации. Если такой объект
найден,  то  его номер передается в дейс-
твие  WEAR.  В противном случае если этот
объект  существует  где-нибудь в игре или
если  существительное 1 не найдено в сло-
варе,  печатается SM28 ("I don't have one
,of  those."  "У  меня этого нет."). Иначе
печатается  SM8  ("I  can't do that." "Не
,могу сделать это."), т.e. это недоступный
объект,  но  он существует в игре. В двух
последних  случаях  выполняются NEWTEXT и
DONE.

 AUTOR  Поиск номера объекта,представлен-
ного   существительным  (прилагательным)1
производится в таблице слов объектов сог-
ласно следующему приоритету: что на игро-
ке,  что он несет, что в текущей локации,
т.е.  вероятность того, что игрок захочет
снять  то,  что он несет с собой, больше,
чем  если он захочет снять то, что он не-
сет или то, что находится в текущей лока-
ции. Если такой объект найден, то его но-
мер  передается в действие REMOVE. В про-
тивном случае если этот объект существует
где-нибудь  в игре или если существитель-
ное  1  не  найдено в словаре, печатается
.SM23 ("I'm not wearing one of those." "На
,меня это никто не надевал."). Иначе печа-
-тается  ("I can't do that." "Не могу сде-
,лать это."), т.e. это недоступный объект,
но он существует в игре. В двух последних
случаях выполняются NEWTEXT и DONE.

 AUTOP locno. Поиск номера объекта,предс-
тавленного  существительным (прилагатель-
ным)1  производится в таблице слов объек-
тов  согласно  следующему приоритету: что
несет  игрок,  что  на нем, что в текущей
локации, т.е. вероятность того, что игрок
захочет  поместить  куда-либо  внутрь то,
что он несет с собой, больше, чем если он
захочет это сделать с тем, что на нем на-
ходится  или с тем, что находится в теку-
щей локации. Если такой объект найден, то
его  номер передается в действие PUTIN. В
противном случае если этот объект сущест-
вует где-нибудь в игре или если существи-
тельное 1 не найдено в словаре, печатает-
-ся  SM28 ("I don't have one of those." меня  этого  нет").  Иначе печатается SM8
("I  can't  do  that."  "Не  могу сделать
это."),  т.e.  это недоступный объект, но
он  существует  в  игре. В двух послежних
случаях выполняются NEWTEXT и DONE.

 AUTOT locno. Поиск номера объекта,предс-
тавленного  существительным (прилагатель-
ным)1  производится в таблице слов объек-
тов согласно следующему приоритету: что в
контейнере,  что несет игрок, что на нем,
что  в  текущей локации, т.е. вероятность
того, что игрок захочет достать объект из
контейнера  больше,  чем  если он захочет
это  достать  из  того, что у него есть с
собой  на руках, что на нем или что нахо-
дится  в текущей локации. Если такой объ-
ект  найден,  то  его  номер передается в
действие TAKEOUT. В противном случае если
этот  объект существует где-нибудь в игре
или  если  существительное 1 не найдено в
словаре,  печатается  SM52  ("There isn't
.one of those in the" "Этой вещи не содер-
жит"), описание  объекта  locno.  и  SM51
(".").  Иначе печатается SM8 ("I can't do
-that."  "Не могу сделать это."), т.e. это
недоступный  объект,  но  он существует в
игре. В двух последних случаях выполняют-
ся NEWTEXT и DONE.

Замечание:  ни AUTOP, ни AUTOT, не делают
проверку  на  присутствие  объекта locno.
Если  Вам  это необходимо, реализуйте это
амостоятельно.

 COPYOO objno1  objno2  Положение объекта
objno2  устанавливается  точно  таким же,
как  и  у  объекта  objno1, причем объект
objno2   становится   объектом  последней
ссылки.

2)  Существуют 4 действя,позволяющих раз-
личным  параматрам объектов быть установ-
ленными во флаги, устанавливаться из фла-
гов для проведения различных действий.

 COPYOF objno.  flagno. Положение объекта
objno. копируется во флаг flagno. Это мо-
жет  быть использовано для сравнения мес-
тоположения  объекта с содержимым другого
флага.  Например, следующая конструкция -
COPYOF  1  11 SAME 11 38 - может быть ис-
пользована  для  проверки того, находится
ли  объект  1 в той же локации, что и иг-
рок,  хотя  конструкция  ISAT 1 255 будет
смотреться куда лучше.

 COPYFO flagno.  objno. ПоложениЮ объекта
objno.  устанавливается  содержимое флага
flagno.  Попытка  скопировать что-либо из
флага,  содержащего 255 приведет к ошибке
работы  программы, и будет выдано сообще-
ние  "Invalid  Argument"  "Неверный аргу-
мент". Установка объекта в несуществующую
локацию  разрешена, так как это не предс-
тавляет опасности для PAW.

 WHATO Поиск номера объекта, представлен-
ного   существительным  (прилагательным)1
производится в таблице слов объектов сог-
ласно  следующему  приоритету:  что несет
игрок, что на нем, что в текущей локации.
Это происходит из-зи того, что каждое ис-
пользование  WHATO  более  вероятно будет
относиться  к тем объектам, что несет иг-
рок,  чем к тем, что на нем или находятся
в  текущей  локации.  Если объект найден,
>" (надето)"), причем оно будет
прижато  к правому краю, если не влезет в
текущую  строку.  Затем  выполняется дей-
ствие DONE.

9)  Существуют 2 действия, которые осуще-
ствляют  полный  выход из таблицы ответов
или процессов:

DESC Прервет  любой цикл DOALL, любой вы-
зов  подпроцесса и сделает переход на пе-
его номер передается во флаг 51 вместе со
всеми  стандартными  параметрами текущего
объекта, которые передаются во флаги с 54
по  57. Это позволит Вам создавать другие
автоматические действия.

 WEIGH  objno. flagno. Вычисляет реальный
вес  объекта (например, если объектом яв-
ляется  контейнер, то вес объектов, нахо-
дящихся  внутри  него  добавляется к весу
контейнера.  Обратите внимание на то, что
суммирование  веса  вложенных контейнеров
(в первом контейнере находится второй, во
втором  - третий и т.д.) не пойдет дальше
десятого  уровня вложенности) и результат
заносится в флаг flagno. Максимальный вес
-  255 и при суммировании дальше увеличи-
ваться не будет. Если объект objno. явля-
ется   контейнером  нулевого  веса,  флаг
flagno.  примет  значение  0 , потому что
объекты, находящиеся  в  таком контейнере
также ничего не весят.

3)  10 действий  для  работы  с  флагами:

SET  flagno Значение флага flagno. стано-
вится равным 255.

CLEAR flagno  Значение флага flagno. ста-
новится равным 0.

LET  flagno   value Значение флаг flagno.
становится равным числу value.

PLUS  flagno  value Значение флага flagno
увеличивается  на  число  value. Если ре-
зультат  превысит 255, то значение flagno
станет равным 255.

MINUS flagno  value Значение флага flagno
уменьшается  на число value. Если резуль-
тат станет отрицательным, значение flagno
станет равным 0.

ADD  flagno1 flagno2 Значение флага flag-
no2 увеличивается на значение флага flag-
no1. Если результат превысит 255, то зна-
чение flagno2 станет равным 255.

SUB  flagno1 flagno2 Значение флага flag-
no2   становится  равным  значению  флага
flagno1,  уменьшенному  на значение флага
flagno2.  Если  результат  станет отрица-
тельным,  значение  флага  flagno2 станет
равно 0.

COPYFF  flagno1  flagno2  Значение  флага
flagno2  становится равным значению флага
flagno1.

RANDOM flagno  Значение флага flagno ста-
новится  равным числу из псевдо-случайной
последовательности  и  будет принадлежать
диапазону от 1 до 100. Такой способ более
удобен  при моделировании случайных собы-
тий, чем использование CHANCE.

MOVE flagno Довольно сильное действие для
работы с PSI (псевдо-интеллектульные пер-
сонажи   -  контролируются  компьютером).
Позволяет глаголу из LS быть использован-
ным  для  сканирования таблицы соединений
на  предмет  локации,  указанной во флаге
flagno.  Если глагол найден, флаг flagno.
становится равным номеру новой локации, а
затем  рассматривается следующий кондакт.
Если  глагол  не найден или номер локации
был неверен, тогда PAW переходит к следу-
ющей  строке таблицы, если таковая имеет-
ся.  Например, на выходе из таблицы отве-
тов  при  невыполнении ни одного действия
PAW мог бы выполнять такие строки:

 -  - MOVE38      ; Попытка  сдвинуть
music by  ; игрока
      DESC            ; Описаниеновой
                      ; локации

 -  - LT      33 14   ; Команда движения?
      SYSMESS 7       ; "Can't   go  that
music by  ; way..."
      DONE 

 -  - SYSMESS 8       ; "I can't do that"

Это  действие  может быть использовано
для  обеспечения  перемещения PSI по дос-
тупным  направлениям: присвоим глаголу LS
случайную  команду  движения,  и позволим
действию  MOVE решать, сможет ли персонаж
идти в эту сторону или нет. Заметьте, что
все специальные перемещения игрока, кото-
рые  обрабатываются  в  таблице  ответов,
должны  быть  таким же образом обработаны
отдельно и для PSI.

4)  Теперь - 3 действия для работы с фла-
гами, связанными с игроком:

GOTO  locno  Изменяет номер текущей лока-
ции  на  locno.,  попутно  присваивая это
значение флагу 38.

WEIGHT flagno  Считает вес всех объектов,
несомых  игроком  и  надетых на него. Вес
контейнера  складывается  с весом его со-
держимого.  Максимальный  вес  - 255. Ре-
зультат  помещается во флаг flagno. Можно
использовать  для проверки того, не несет
ли  игрок  слишком много вещей, например,
при  переходе  через  мост, а то он, чего
доброгоб может и обрушиться...

ABILITY  value1 value2 Во флаг 37 (макси-
мальное число несомых объектов) записыва-
ется  число  value1, а во флаг 52 (макси-
мально  допустимый  вес объектов, несомых
игроком  и  надетых  на него) - число va-
lue2.  Не произаодится проверка на то, не
несет  ли  игрок  уже  больше  максимума.
Действия  GET  и  другие, проверяющие эти
величины,  будут  работать корректно и не
позволят  игроку  взять еще больше объек-
тов, даже если Вы установили величины ни-
 же того, что сейчас несет игрок.

5)  Существует 7 действий,связанных с ра-
ботой  со флагами, связанными в свою оче-
редь  с режимами экрана, форматом, вводом
и прочими подобными вещами.

MODE mode option Существует 5 режимов эк-
ранов, каждый контроллируется флагом 40:

Mode  0  Если  для  данной локации в базе
данных  присутствует картинка, экран очи-
щается,  приобретая default (определенные
по  умолчанию) цвета, а затем отрисовыва-
ется  картинка.  По нажатию любой клавиши
original  (первоначальные)  цвета восста-
навливаются  и  печатается описание лока-
ции.

Mode 1 Ислючительно текстовой режим. Пол-
ноэкранный   скроллинг.  Текст  выводится
непрерывно. CLS не работает во время опи-
сания локации.

Mode  2  Если  для  данной локации в базе
данных  присутствует  картинка (не "подп-
рограммная"), экран очищается, приобретая
default  цвета,  а  затем  отрисовывается
картинка.  Затем восстанавливаются перво-
начальные цвета, строки, находящиеся ниже
указанной во флаге 41, очищаются и с пер-
вой из них начинает печататься текст.

Mode  3  Похож  на Mode 2, но картинка не
скроллируется при скроллировании текста.

Mode  4  Только  текстовой режим, который
предотвращает скроллирование описания ло-
кации, как если бы это была картинка. Ос-
тальной  текст  спокойно  скроллируется в
отведенной ему части экрана. Вам потребу-
ется  выполнить действие PROTECT в нужном
месте таблицы процессов 1, например, пос-
ле действия LISTOBJ), так как в противном
случаебудет защищена лишь последняя стро-
ка текста.

Во  всех вышеописанных графических ре-
жимах опция 2 делает так, чтобы цвет рам-
ки экрана не устанавливался соответствую-
щим  цвету  всего остального экрана - это
лучше всего использовать в режимах 2 и 3,
так как цвет рамки экрана изменится после
того,  как картинка будет отрисована, что
приведет к довольно противному кратковре-
менному мерцанию. Опция 1 обеспечит появ-
/ление SM32 ("More." "Дальше.") при запол-
нении экрана (в отличие от всеми любимого
"Scroll?",  Вы  не сможете прервать вывод
текста,  хотя  можете это проделать в ре-
дакторе...).  Опция 3, как можно было до-
гадаться, обеспечивает работу двух вышеу-
казанных  опций одновременно, а опция 0 -
ни  одной  из  них. Так, например, MODE 4
даст   фиксированное   текстовое  окно  с
промптом "More."

LINE  lineno  Это действие устанаваливает
номер  строки, с которой текст должен пе-
чататься  в тех графических режимах экра-
на,  где идет разделение на скроллируемую
и  нескроллируемую  части, а в режиме 2 -
номер  верхней строки области, предназна-
ченой  для  очищения.  Будьте внимательны
при  использовании  ввода  в нижней части
экрана (см. описание INPUT), оставьте как
минимум 4 свободные строки в верхней час-
ти  экрана,  не  забывая  посчитать число
строк,  используемых промптом и маркером,
а  иначе возникнет ошибка работы програм-
мы, если переполнится строка ввода.

GRAPHIC option Следующие 3 опции помогают
изменить картинки, созданные в PAW.

0 - Normal, картинка отрисовывается, ког-
да  игрок  первый  раз посетил локацию, а
затем  она  отрисовывается  только  в том
случае,  если  включен  режим PICTURES ON
или требуется временная перерисовка.

1  - OFF, все картинки не выводятся, даже
при требовании временной перерисовки.

2 - ON, каждый раз отрисовывается картин-
ка  для той локации, где находится игрок,
не зависимо от того, в какой раз он посе-
щает эту локацию.

3  =  2+1,  но приоритет находится у OFF,
поэтому эта опция избыточна. Картинка те-
кущей  локации  может  быть перерисована,
если  к  флагу 29 добавить 128 - так осу-
ществляется  временная перерисовка, кото-
рая  может быть использована тогда, когда
игрок  запрашивает  картинку,  находясь в
режиме Normal. Например, PLUS 29 128 DESC
может находиться в таблице ответов.

PROMPT  sysno  Печатает SM sysno. всегда,
когда  PAW  получает  командную строку от
игрока.  Если  sysno. = 0, то PAW выберет
что-нибудь из SM2, SM3, SM4 или SM5 исхо-
дя  из соотношения 30:30:30:10. Заметьте,
что это не скажется на промптах, печатае-
  мых кондактами END или QUIT.

TIME duration option   Позволяет получить
при вводе пустое действие (time-out) пос-
ле некоторого временного промежутка, отс-
читываемого  в 1.28 секундных интервалах,
т.е.  таблица  процессов  2 будет вызвана
снова, если игрок ничего не введет за оп-
ределенный  промежуток  времени. 'option'
позволяет  также  сделать это для промпта
"More." "Дальше." и ANYKEY (нажатия любой
клавиши).  Для того, чтобы сосчитать чис-
ло,  необходимое  для  подстановки вместо
option, просуммируйте номера, проставлен-
ные  рядом  со  строками,  отражающими те
случаи, когда время нужно будет считать:

1 - Во время ожидания первого символа,
  вводимого в строку ввода.
.2 - Во время ожидания нажатия любой кла-
виши на промпт "More." "Дальше.".
.4 - Во время ожидания нажатия любой кла-
виши (действие ANYKEY).

т.е. TIME 5 6 (option = 2+4) будет отсчи-
тывать  6.4 секунды отсутствия активности
игрока  во  время  разрешенное для ввода,
действия  ANYKEY  или  промпта "More.", а
также  между нажатиями клавиш, а TIME 5 3
(option  = 1+2) будет отсчитывать 6.4 се-
кунды  только  до  ввода  первой буквы из
вводимого  игроком  предложения,  а также
после  промпта "More.". TIME 0 0 запретит
выдавать  пустые действия (установлено по
умолчанию).

INPUT  options  Позволяет изменять способ
работы подпрограммы ввода путем изменения
options. Некоторые комбинации никак нель-
зя  использовать, но они - порождение то-
го,  как  работает  PAWs. Для того, чтобы
получить нужный номер option, сложите но-
мера,  соответствующие  нужным Вам свойс-
твам:

1  -  Промпт ввода, маркер и курсор будут
выведены  в  нижней экранной области. Это
предпочтительно  для  игр,  где будут ис-
пользоваться пустые действия, которые мо-
гут  произойти  в перерыве между нажатием
клавиш,  так как строка ввода не остается
наполовину  допечатанной,  если оно прои-
зойдет таким образом.

2  - PAW выведет копию стоки ввода, когда
будет нажат ENTER. Это используют главным
образом  вместе  со  свойством  1,  чтобы
строка ввода полностью вывелась на экран;
таким  образом игрок будет видеть, что он
написал.

4  -  Перепечатает  весь текст, введенный
перед тем, как произошло пустое действие.
Еще  одно  свойство, используемое главным
образом вместе со свойством 1, когда пус-
тое  действие  может произойти в перерыве
между двумя нажатиями клавиш.

По умолчанию options = 0.

PROTECT  Используется в основном вместе с
MODE 4. Это действие используется для ус-
тановки текущей строки печати как вершины
окна скроллирования текста. Нужно исполь-
зовать только в таблице процессов 1 (раз-
решено-то  везде,  но смысла иметь не бу-
дет)  после того, как будет напечатан тот
текст,  который  Вы  хотите  защитить  от
скроллирования.   Обычно   это   действие
вставляют  перед/после  действием/я  LIS-
TOBJ,  т.к. объекты обычно печатаются са-
мыми  последними.  Также  может использо-
ваться с другими режимами для защиты кар-
тинки  и части описания локации, возможно
-  с  остатками  текста, скроллирующегося
ниже.

6)  Существуют 3 действия,связанных с пе-
 чатью значений флагов на экран:

PRINT flagno  Десятичное содержимое флага
flagno.  печатается с текущими временными
цветами  без предшествующих и последующих
пробелов.  Весьма полезное действие. Ска-
жем, флаг 100 содержит число монет, нахо-
дящихся  у  игрока. Тогда конструкция MES
.10  ("You have " "У Вас есть ") PRINT 100
,MESSAGE  11  (" gold coins." "золотых мо-
-нет.") в таблице процессов может быть ис-
пользована  для показа количества местной
  валюты, находящейся у игрока.

TURNS SM17-20 "You have taken x turn(s)."
"Вы  сделали  х ход(а/ов)." печатается на
экран, где x = флаг 31 + 256 * флаг 32.

SCORE  SM21-22 "You have scored x %." "Вы
прошли х %." печатается на экран, где x =
флаг 30.

7)  12 действий для работы с экраном:

CLS  Очищает  экран, устанавливая текущие
цвета; текущее место печати и SAVEAT ста-
новятся равными 0,0.

NEWLINE Печатает пробелы до конца текущей
строки,  а  затем  устанавливает  цвета и
символьный набор равными текущим.

MES  mеsno  Печатает сообщение mesno. те-
кущим временным цветом, затем выполняется
NEWLINE.

SYSMESS sysno  Печатается системное сооб-
 щение текущим временным цветом.

PICTURE locno  Отрисовывает картинку loc-
no.  Независимо  от того, является ли это
"подпрограммной"  или  основой картинкой.
Заметьте,  что экран и цвета не очищаются
сначала,  как при описании локации. Может
быть  использовано  для  добавления  (или
удаления, если использовать PRINTAT и MES
для  удаления пробелами) частей картинки.
Прилагаемая игра TEWK использует этот ме-
тод несколько раз. Заметьте, что картинка
будет  отрисована  с последней точки, ис-
пользованной   для  рисования  предыдущей
картинки.

PAPER n Изменяет цвет фона (0..9)

INK n   Изменяет цвет чернил (0..9)

BORDER n Изменяет цвет рамки (0..7)

CHARSET value  Изменяет основной символь-
ный  набор на набор с номером value, если
он существует, в противном случае измене-
ния не производятся.

7)  Следующие   три действия, связанные с
работой  с  экраном,  позволяют  печатать
блок  текста  на экран вне зависимости от
текущей  позиции  печати,  что может быть
использовано для получения информационной
строки  в  верхней части текущей картинки
или  куска текста в маленьком окне, нахо-
дящемся  в картинке и т.п. В TEWK это ис-
пользуется для получения 'падающего' окна
инвентаря в ответ на команду STATUS.

SAVEAT Заполняет текущий словораспаковоч-
ный (wordwrap) буфер, таким образом восс-
танавливает  цвет  фона.  Затем сохраняет
текущую позицию печати, переписывая любую
ранее сохраненную.

BACKAT  Заполняет текущий wordwrap буфер,
таким образом восстанавливает цвета фона.
Затем востанавливает позицию печати, сох-
раненную последним SAVEAT.

PRINTAT  lineno.  colno.  Текущая позиция
печати  изменяется на указанную величину.
Заметьте, что это очистит wordwrap буфер,
и временные цвета примут значения фоновых
цветов.

8)  3 действия,связанных с выводом списка
объектов  на экран. Первые 2 контроллиру-
ются методом установки величины флага 53,
  описанным в разделе Объекты.

LISTOBJ  Если  присутствует  хотя бы один
объект, печатается SM1 ("I can also see:"
"Я  также  вижу:"),  далее следует список
объектов,  присутствующих  в данной лока-
ции.  Если ни одного объекта не обнаружи-
 вается, то не печатается ничего.

LISTAT  locno+  Если присутствует хотя бы
один  объект, то его название печатается.
В  противном случае печатается SM53 ("no-
,thing."  "ничего.").  Заметьте,  что  Вам
обычно  прийдется предварять это действие
сообщением  типа  "In  the  bag is:" "А в
мешке  у  Вас:" и т.п. Можно создать дей-
ствие,   альтернативное  действию  INVEN,
описываемому  ниже,  путем  использования
ISTAT 254 254.

INVEN  На это действие не оказывает влия-
ние  флаг  продолжительного списка объек-
тов,  что сделано для совместимости с бо-
лее ранними адвентюростроительными систе-
мами.  Печатается  SM9 ("I have with me:"
,"У меня с собой есть:"). Если игрок ниче-
го  не  несет и на него ничего не надето,
то  печатается  SM11  ("Nothing  at all."
"Пустые  карманы.").  В  противном случае
печатается название каждого объекта с но-
вой  строки. Если объект надет на игрока,
то   после   названия   печатается   SM10
.(" (worn)" " (надето)"), причем оно будет
прижато  к правому краю, если не влезет в
текущую  строку.  Затем  выполняется дей-
ствие DONE.

9)  Существуют 2 действия, которые осуще-
ствляют  полный  выход из таблицы ответов
или процессов:

DESC Прервет  любой цикл DOALL, любой вы-
зов  подпроцесса и сделает переход на пе-
чать описания текущей локации.

END Печатается  SM13  ("Would you like to
/play again?"  "Хотите еще раз сыграть?"),
а  затем  вызывается  подпрограмма ввода.
Любой цикл DOALL и подпроцессы прерывают-
ся. Если ответ не начинается с первой бу-
квы SM31, делается переход на инициализа-
цию.  В противном случае делается переход
в  редактор  (если он присутствует) или в
любимую  многими  команду старого доброго
BASIC'а NEW.

10) 3 табличных действия:

DONE Это  действие осуществляет переход в
конец таблицы процессов и дает PAW сигнал
о  том, что действие было выполнено, т.е.
ни кондакты, ни строки больше не ожидают-
ся. Возврат будет осуществлен назад в вы-
зывавшую  таблицу процессов или в началь-
ную  точку  любого активного DOALL цикла.

NOTDONE Это действие осуществляет переход
в  конец таблицы процессов и дает PAW си-
гнал  о том, что ни одно действие не было
сделано,  т.е.  ни  кондактов,  ни других
строк  не ожидается. Возврат будет осуще-
ствлен  назад  в  вызывавшую  его таблицу
процессов  или  в  начальную точку любого
активного  DOALL  цикла.  Это будет озна-
чать,  что  PAW  напечатает  одно  из  "I
can't" "Не могу." сообщений, если оно бу-
дет нужно, т.е. если ни одно другое дейс-
твие  не  было выполнено и ни одна строка
не  присутствует в таблице соединений для
текущего глагола.

OK Печатается SM15 ("OK"), затем выполня-
ется DONE.

11) 4  действия для записи и восстановле-
ния  состояния  игры.  В  дисковой версии
возможны непринципиальные различия. Итак:

SAVE В  нижней  части  экрана  печатается
стандартное Spectrum'овское ленточное со-
общение. По нажатию клавиши состояние иг-
ры  записывается на ленту, затем выполня-
ется DESC. Если во время выгрузки нажима-
ется BREAK, делается переход на инициали-
зацию.  Отгруженное  положение включает в
себя всю информацию, позволяющую в точно-
сти восстановить игровое состояние, кото-
рое  было до  действия  SAVE, включая все
значения  флагов, местоположения объектов
и т.п.

LOAD  Загружает  данные,  которые  должны
быть  состоянием игры, с ленты, затем вы-
полняется DESC. При нажатии BREAK во вре-
мя загрузки или возникновении ошибки чте-
ния осуществляется переход на инициализа-
цию.  При  загрузке данных, не являющихся
сохраненным  состоянием игры, будет полу-
чена  ошибка  чтения со всеми вытекающими
отсюда последствиями.

RAMSAVE Как и SAVE это действие сохраняет
всю  информацию, касающуюся состояния иг-
ры,  но  в  буфер памяти компьютера. Этот
буфер,  конечно, не вечен и будет уничто-
жен  при выключении питания машины. В до-
бавок  ко  всему,  он также будет очищен,
стоит только вернуться в редактор PAW для
внесения каких-либо изменений.

RAMLOAD  flagno   Это  действие  является
противоположным действию RAMSAVE и позво-
ляет  восстановить  состояние игры, запи-
санное  в  буфер  памяти машины. Параметр
определяет  последний флаг, который нужно
восстановить  из  памяти,  что может быть
использовано для предотвращения восстано-
вления  некоторых  величин флагов. Напри-
мер, такая конструкция:

RAMLO  _COPYFF    30   255 
            RAMLOAD   254 
            COPYFF    255  30 
            DESC

может  быть  использована для того, чтобы
не  изменялся  счет в игре, что нужно для
того,  чтобы  игрок  не  мог использовать
RAMSAVE  /  RAMLOAD  как простое средство
для достижения 100% (по-моему, такая кон-
струкция ведет как раз к противоположному
результату).

Замечание:  в отличие от SAVE и LOAD, RAM
действия  позволяют выполниться следующе-
му кондакту. По-нормальному, зв ними все-
гда должно следовать DESC, потому как со-
стояни  игры  должно быть восстановлено с
той  позиции, с которой оно было сохране-
но. Все эти действия могут быть использо-
ваны для введения команды OOPS (по-русски
это  что-то  вроде "Обломчик. Давай-ка на
ход назад."). Это создается вставкой кон-
струкции  в таблицу процессов 2 или в та-
блицу ответов, которая будет автоматичес-
ки  после каждого хода выполнять RAMSAVE.

12) 2 действия, позволяющие игре приоста-
новить  свою работу на время, пока не бу-
дет нажата любая клавиша:

ANYKEY  В нижней  части экрана печатается
.SM16 ("Press any key to continue" "Нажми-
те  любую клавишу для продолжения."), за-
тем  сканируется  клавиатура  до тех пор,
пока  не будет нажата клавиша или не про-
изойдет пустое действие, если его появле-
ние было разрешено.

PAUSE value Приостанавливается  работа на
value  / 50 секунд. Если же value = 0, то
происходит  приостановка работы на 256/50
секунд. Заметьте, что все это время кла-
виатура не опрашивается.

13) 2 действия, связанных  с работой пар-
сера  (это штука, делающая грамматический
разбор предложения):

PARSE   Это действие  было спроектировано
для  того, чтобы разговаривать с персона-
жами  игры. Любая строка (далее по тексту
они будут заключены в довольно милые ско-
бочки  ["  "]), которая присутствовала во
фразе, только что введенной игроком, пре-
образуется  в логическое предложение, за-
тирая  уже существующее, что было сформи-
ровано для предыдущей фразы. Если не было
введено  фразы  или она была некорректна,
PAW перейдет на следующий кондакт. В про-
тивном   случае  следующая  строка  будет
рассматриваться вместе с новым логическим
предложением,  являющимся речью, обращен-
ной к персонажу игры. Из-за того, что она
затрет  текущее  LS,  можно  использовать
только  в таблице подответов, которая бу-
дет иметь вид:

**       PARSE       ;Всегда  делайте
                         ;эту строку

 MESSAGE x   ;"They don't un-
                           derstand" "Они
                           не понимают."
             DONE 
word wordсписок кон- ;Любаяфраза,
             дактов      ;понятная персо-
 ;нажу игры
__       MESSAGE x   ;Как     описано
                         ;выше  или любой
                         ;другой текст

Будет  2 или более вызывающих строки, по-
хожие на:

SAY  nameSAMEpos 38  ;Они здесь?
             PROCESS y       ;Раскодир.
                             ;речи
             DONE            ;LS уничто-
   ;жено, поэ-
                             ;тому DONE.
SAY  nameMESSAGE x       ;"They are
                             ;not here!"
   ;"Их здесь
                             ;нет."
             DONE 

NEWTEXT Заставляет исчезнуть любые остав-
шиеся фразы в текущей строке ввода. Можно
использовать  для  того, чтобы предотвра-
тить  продолжение действий игрока без но-
вого  ввода,  т.к. это может плохо сказа-
ться  на ситуации, например, действие GET
выполняет NEWTEXT, если не может добрать-
ся  до необходимого по какой-либо причине
объекта.  Это необходимо для предотвраще-
ния проблем с предложениями типа:

GET SWORD AND KILL ORC WITH IT 
ВЗЯТЬ МЕЧ И УБИТЬ ИМ ОРКА 

потому что атаковать орка без меча дово-
льно опасно.

14) Одно  действие  для работы со звуком:

BEEP duration pitch И duration (продолжи-
тельность),  и pitch (высота звука) могут
изменяться от 0 до 255. Продолжительность
измеряется в 1 / 100 сек. Величина высоты
звука получается из высоты, которую бы Вы
использовали  в  BASIC'овском  BEEP'еd, к
которой  нужно  прибавить 60 и полученный
результат разделить на 2.

15) Несколько  действий, классифицировать
которые довольно сложно:

PROCESS procno. Это мощное действие пере-
ключает PAW на работу с определенной таб-
лицей  процессов.  Этот  подпроцесс будет
обладать  теми же чертами, что и таблица,
из  которой  он  был вызван, т.е. если он
был вызван из таблицы ответов, то PAW бу-
дет  сопоставлять  глагол и существитель-
ное 1 логического предложения со строками
также,  как  стал бы это делать с главной
таблицей. Заметьте, что это - рельный вы-
зов  подпрограммы, и любой выход из новой
таблици  (путем  DONE,  OK и т.д.) вернет
управление тому кондакту, что следовал за
вызывавшим  PROCESS.  Подпроцедура  может
вызывать  вложенные  процедуры, но только
до глубины 10 уровня, после чего произой-
дет ошибка работы программы и будет выда-
но "Limit reached" "Достигнут предел".

DOALL locno+   Еще одно мощное  действие,
позволяющее  делать команды 'ALL' 'ВСЕ'.

1 - Производится  попытка  найти объект в
локации  locno.  При  неудаче DOALL будет
отменено и выполнится DONE.

2 - Номер объекта переводится в существи-
тельное 1 (и прилагательное 1 при необхо-
димости)  логического  предложения  путем
ссылки на таблицу слов объектов. Если су-
щесвительное (прилагательное) 1 совпадает
с   существительным  (прилагательным)  2,
происходит возврат в пункт 1.

Так  реализуется "Verb ALL EXCEPT object"
"глагол  ВСЕ  КРОМЕ  объект"  конструкция
парсера.

3  -  Рассматривается  следующий  кондакт
и/или  строка  из таблицы. Так эффективно
осуществляется   перевод  из  "Verb  All"
"глагол  ВСЕ" в "Verb object" "глагол об-
ъект", что дальше обрабатывается как если
бы  игрок ввел имя этого объекта с клави-
атуры.

4 - Когда происходит попытка выйти из те-
кущей  таблицы, то если DOALL все еще ак-
тивен, т.е. еще не был прерван действием,
тогда  внимание PAW возвращается к DOALL,
как  из пункта 1; поиск объекта продолжа-
ется со следующего объекта, имеющего наи-
больший  номер, до только что рассмотрен-
ного.

Главным  ответвлением  метода поиска в
таблице  слов  объектов являются объекты,
имеющие одинаковые описания существитель-
ного  (прилагательного)(где  в самой игре
решается о каком объекте идет речь по его
присутствию)  должны быть проверены в по-
рядке убывания номеров объектов, в проти-
вном  случае один из них может быть поте-
рян.

Использование  DOALL для получения че-
го-нибудь  типа  OPEN  ALL  (открыть все)
должно производиться из расчета того, что
состояние дверей обычно представляют лишь
флагами,  поэтому для использования DOALL
таким  образом  необходимо  сделать двери
объектами.

RESET locno+  Это действие спроектировано
для того, чтобы делать игры, состоящие из
нескольких частей, где если объект не пе-
ренесен  из  одной части в другую, то его
местоположение  присваивается  локации, с
которой  игрок стартует. Все объекты, ко-
торые могут быть перенесены между частями
игры, должны присутствовать (с одинаковы-
ми описаниями) во всех частях игры. Любые
другие  могут  быть использованы заново в
каждой части. Все объекты, присутствующие
в  текущей локации перемещаются в локацию
locno. Локация locno. становится текущей.
Любые другие объекты расставляются согла-
сно таблице изначальной расстановки. Фла-
ги  не  изменяются. Когда вся расстановка
заканчивается, выполняется действие DESC.
Рекомендуемый  способ использования пред-
ставлен  в  главе, посвященной играм, со-
стоящим из нескольких частей.

EXTERN value Вызывает внешние подпрограм-
мы с параметром value. Этому будет посве-
щена отдельная глава.

продолжение следует...
_______________________________



Другие статьи номера:

Сегодня в номере - содержание журнала.

Авторы - авторы журнала ZX-Format No.6

От авторов - свершилось давно ожидаемое событие...

Игрушки - Последний утюг (новелла по игре 48 утюгов).

Игрушки - Приключения Винни Пуха. Часть вторая.

Игрушки - описание игры The Crypt (Castle Master 2).

Игрушки - описание редактора Адевентюр - PAW (часть 1).

Игрушки - описание редактора Адевентюр - PAW (часть 2).

Игрушки - описание редактора Адевентюр - PAW (часть 3).

Игрушки - описание редактора Адевентюр - PAW (часть 4).

Игрушки - описание редактора Адевентюр - PAW (часть 5).

Программистам - Beta Basic: продолжение разговора о бейсике (часть 2).

Программистам - General Sound: Руководство по программированию.

Программистам - MMD - драйвер. Описание структуры драйвера модема для терминальной программы MMD.

Программистам - AI от В.Медноногова. Подробное описание "волнового алгоритма" трассировки (автоматического рассчета оптимального) пути, с примером реализации на Basic.

Программистам - Искуственный интеллект. Продолжение цикла статей об "AI". Общие основы нахождения пути к цели.

Программистам - Тr-Dos для программистов. Макс Петров завершает свой рассказ о нетрадиционых методах работы с диском.

Программистам - обмен опытом: "3-colour". Описание эффекта "8-цветов на точку", хелп к вьюверу и сколько слов о конвертации картинок в формат "3-colour".

Программистам - обмен опытом: "3-colour". Несколько слов о конвертации картинок в формат RGB.

Программистам - обмен опытом: программирование мультиколорных эффектов.

IS-DOS - пользователям: как выполнить индивидуальную настройку системы IS-DOS на конкретную модель ZX Spectrum-совместимого компьютера и на выполнение Ваших задач.

IS-DOS - пользователям: как скопировать системный диск IS-DOS и остаться при этом в живых.

IS-DOS - программистам: краткий курс - программирование в среде IS-DOS.

IS-DOS - news: новые программы IS-DOS.

Железо - Краткий рассказ о возможностях процессора Z-180.

Железо - Multiviewer. Описание доработочки, позволяющей мерять скорость программ по бордюру без влезания в коды - легким нажатием кнопки.

Железо - о новом проекте фирмы Peters - "Sprinter". Новый Spectrum-совместимый компьютер нового поколения Speccy.

Железо - Мнение пользователя о скорпионовском контроллере IDE HDD - SMUC.

Железо - SuperSpectrum: об одном проекте Spectrum-совместимой машины. Её особенностью является совместимость с PC.

Железо - X-Trade FAQ. Ответы на наиболее часто задаваемые вопросы по GS и XTR-модему.

Премьера - Flash tracker. Описание 4-х канального редактора цифровой музыки, работающего с SoundDrive, от самого автора SoundDrive - Flash Inc.

Премьера - Описание последней версии универсальной терминальной программы, используемой в SpbZxNet.

Премьера - Mortal Kombat: что ждёт Вас в полной версии игры и некоторые коментарии к demo версии.

Премьера - XReversy: презентация новой игрушки, из популярного семейства "реши задачку - посмотри картинку".

Интервью - Интервью с одним из известнейших спектрумистов - Андреем Ларченко.

Здесь был ты - Рассказ "Абсолютная власть".

Здесь был ты - Рассказ "Дорога".

Здесь был ты - Повелитель зубов: пародия на одну популярную трилогию...

Почта - Обратная связь: ответное письмо Alex'а из Нижнего Тагила, выставленного в прошлом номере в "Уголок ламера".

Почта - Письма читателей: Андрей Яковлев, Денис Токарчук, Алексей Гаркулим, Александр Гордеев, Евгений Шумилов, Ниточкин Вадим, Михаил Ларкин.

Почта - бесплатная реклама и обьявления.

Разное - Страшилка.: Nemo рассуждает о месте PC и Spectrum'а в современной России.

Разное - Рецензия Nemo на книжку по цифровой схемотехнике. Для всех, кто хоть когда-нибудь испытывал желание включить паяльник и...

Разное - анкета: Результаты нашего социологического опроса спектрумистов.

Разное - Конкурс. Краткий отчет о наших конкурсах.

Разное - Проблемы рынка ПО: когда загнется Спектрум. Во всем ли виноваты Хакеры?

Разное - Перспективы ПО. Краткий обзор готовящегося к выходу ПО: Fast Tracker, Pro Sound Creator, Чёрный Ворон.

Разное - Перспективы ПО. Адвентюра From Beyond или "Извне".

Разное - мемуары о Питерской модемной сети для ZX Spectrum - SPbZXNet.

Amiga Club - Между нами, пользователями: сравнение характеристик Amiga 1200 с IBM PC.

Amiga Club - сравниваем производительность Амиг и PC. Насколько Амига актуальна в современных играх?


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Новые программы - Обзор программы No Kempston.
Новый проект - MEGADEMO к дню рождения Спектрума.
События - первый вариант эмблемы фестиваля "FunTop-98".
Застрял ? - Описание игры "Murray Mouse Super Cop".
Кубизм mustdie ФАРЭВЫР - формулы построения додэкаэдра, икосаэдра, тетрадра.

В этот день...   21 ноября