/
Tags: журнал zx-ревю украина
Year: 1995
Text
BIB
ZX-РЕВЮ
УКРАИНА
1995 - N3
( МАЙ - ИЮНЬ )
ВНИМАНИЕ!
МЫ НАЧИНАЕМ ПОДПИСКУ НА ВТОРОЕ ПОЛУГОДИЕ 1321 ГОДА-
ПРОСИМ ОБРАЩАТЬСЯ К НАМ ПО АДРЕСУ: 320030 ДНЕПРОПЕТРОВСК-30. А/Я 322.
ПОДПИСКУ МОЖНО ОФОРМИТЬ НЕПОСРЕДСТВЕННО У НАС, НЕ ЗАБУДЬТЕ ВЛОЖИТЬ
В ПИСЬМО КОНВЕРТ С ВАШИМ ОБРАТНЫМ АДРЕСОМ.
ТОЛЬКО В НАШЕМ ЖУРНАЛЕ ВЫ ПРОЧТЕТЕ СТАТЬИ, КОТОРЫХ НЕТ В ИЗДАНИИ
ИНФОРКОМА. МЫ ПОМОЖЕМ НАЙТИ ОТВЕТЫ НА ВОПРОСЫ КОТОРЫЕ ВАС
ИНТЕРЕСУЮТ ПРЕДЛОЖИМ КНИГИ И ДРУГИЕ МАТЕРИАЛЫ, НАПЕЧАТАЕМ ВАШИ
СТАТЬИ, РАЗМЕСТИМ РЕКЛАМУ.
ВЫПИСЫВАЙТЕ ZX-РЕВЮ УКРАИНА !
Днепропетровск
НОМЕРЕ :
К НАШИМ ЧИТАТЕЛЯМ
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
Перехват диалога системы TR-DOS с
пользователем при программировании
на ассемблере для ZX Spectrum.
Адаптпация к системе TR-DOS
программ с подгружаемыми уровнями.
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ZX FORTH
ФОРУМ
ПЕРЕКРЕСТОК
ПРОГРАММИСТУ НА ЗАМЕТКУ
ПЗУ ZX-Spectrum
ОБЪЯВЛЕНИЯ
АЛФАВИТНЫЙ КАТАЛОГ ИГ?
НАША РЕКЛАМА
Курицин Б.
Десятниченко А.
Ткач Николай
Ян Логан
2
5
11
15
18
21
22
23
26
НАШИМ ЧИТАТЕЛЯМ
УВАЖАЕМЫЕ ЧИТАТЕЛИ!
Самое время подвести итоги прошедшего полугодия. Конечно, не все в
нашей работе было глздко (первый блин всегда комом), но мы очень
старались сделать журнал интересным и читаемым. Следует отметить, что
определенные сдвиги в сторону увеличения подписчиков есть, а это
говорит о том, что наш журнал принят Вами.
Мы с самого начала были уверены в том, что не только в России, а и
в Украине есть хорошие программисты к любители игр. И действительно,
в последнее время Мы установили контакты с рядом авторов, которые
будем и впредь поддерживать. Это, несомненно, должно поднять уровень
статей ь журнале и сделать журнал еще интереснее.
Как и всегда, Мы ждем Ваши материалы и объявления, которые
напечатаем бесплатно. Будем очень Вам благодарны, если материалы будут
поставляться на дискетах или напечатанными, или, на худой конец,
написанными разборчивым почерком. Особо выдающихся авторов Мы рады будем
поощрять нашей литературой.
За полгода наш журнал подрос и настало время подумать об "обновке"
для него. В следующем полугодии мы намечаем увеличить количество
страниц, сделать цветную обложку, улучшить качество печати. Все это,
естественно, будет требовать дополнительных средств, которые мы
рассчитываем получить эа счет увеличения числа подписчиков. Поэтому Мы
просим Вас проагитировать друзей и знакомых подписаться на ZX-РЕВЮ.
Чем больше подписчиков мы наберем, тем красивее журнал Вы увидите во
втором полугодии.
Многие из Вас сетуют на то,что номера выходят не вовремя. Это
происходило потому, что Мы ожидали выхода Московского номера и только
потом начинали рассылать оба номера. Нами принято рэшение впредь так
не делать, что, конечно, даст Вам возможность получать номера более
своевременно. Кстати, многие недоумевают, почему "мартовский"
(ZX-РЕВЮ N3) еще не вышел, хотя уже давно лето? Что бы навсегда закрыть
этот вопрос, заметим, что журнал выходит не раз в месяц а, раз в два
месяца, значит, N3 не за март, а за июнь.
Некоторые подписчики пишут о том, что не нашли в Бланк-заказе
"Трехтомник по программированию в машинных кодах". Разъясняем: в
нашем Бланк-заказе эта книга значится, как просто 'Программирование в
машинных кодах". Ждем заказов на этот фундаментальный учебник по
программированию.
Ну и наконец, последняя и не очень приятная новость, с первого
июля подняты тарифы на услуги почты, чго сразу же повлекло
дополнительные затраты о нашей стороны. Чтобы не перерассчитьшать стоимость
КНИГ и не путать Вас и себя новыми ценами, мы просим при переводе
денег добавлять к переводимой сумме 30 тысяч крб. Это даст нам
возможность, не мучаясь над финансовой стороной вопроса, своевременно
пересылать Вам литературу.
До встречи в следующем полугодии!
Редактор ZX-Ревю Украина
Ткач Николай
- 3 -
Об использовании некоторых
подпрограмм ПЗУ ZX-8pectrum.
(С) Курицын Б. г.Черкассы
1995 г.
(
Нередко при написании
прикладных и системных программ для
ZX-Spectrum-совместимых
компьютеров необходимо ввести строку
символов: имя файла, какое-либо
название или что-нибудь подобное. В
таких случаях программист
вынужден писать редактор командной
строки ввода. Часто такие
редакторы пишутся упрощенно, без
поддержки всех клавиш редактирования
или присваивания им несовместимых
функций.
Между тем, такая программа
есть в ПЗУ Вашего Спектрума. Это
удобный, привычный всем редактор
командной строки и реализатор
оператора INPUT.
Единственный его недостаток -
при работе с экраном ZX-Spectrum
он может производить
редактирование лишь в канале "К", то есть в
нижнем окне экрана. А вообще-то
он способен вводить строки
символов из любого потока,
допускающего ввод.
Для дальнейшего рассмотрения
вопросов, связанных с
использованием этого редактора, нам
необходимо условиться о следующем:
1. Программу пишем на
ассемблере, конкретно - Hisoft GEN
Assembler v4.1.
2. Предполагается, что регистр
процессора IY содержит
стандартное значение #5СЗА. С
использованием метода адресации (IY+nn) все
подпрограммы ПЗУ получают доступ
к таблице системных переменных.
Из-за использования такого метода
доступа в обработчике
маскируемого прерывания регистр IY должен
содержать #5СЗА всегда, когда
прерывания разрешены.
Итак, о редакторе. Собственно,
точка входа в редактор - #F2C. Но
если Вы просто попробуете запус-
ПРОФЕССИОН А ЛЬНЫЙ ПОДХОД
тить редактор вызовом
подпрограммы по этому адресу, то никакого
редактирования, скорей всего, не
произойдет. Получится зависание
или сброс системы - немедленно
или после нескольких нажатий на
клавиши. Почему? Потому что
редактор подчиняется нескольким
системным флагам и переменным,
значения которых необходимо
предварительно установить. Кроме
того, редактор использует
внутреннюю динамическую память системы,
в которой для него должен быть
подготовлен буфер редактирования.
Ниже приводится
последовательность действий для вызова
редактора. Она такова, какой является
не потому, что так захотелось
автору. Каждое действие в ней
обязательно, и в случае
неисполнения, рано или поздно, вызовет
ошибки или посторонние эффекты.
Подпрограмма редактора
командной строки обслуживает как ввод
командной строки операционной
системы, так и обработку
оператора INPUT. Поэтому не лишним будет
указать редактору, что вызывается
он для редактирования в рабочей
области WorkSp:
SET 5,(IY+55) ; FlagX
RES 7,(IY+55)
Также необходимо создать
ситуацию "не было ошибок":
LD (IY),-1 ;ErrNr
Теперь необходимо очистить
буфер для редактирования:
CALL #1097 ;Clear_Sp
Эта подпрограмма также
устанавливает положение и тип
курсора. Сейчас необходимо внести в
буфер ограничитель - символ CR:
LD ВС,1 ;вносим 1 символ
RST 48 ;резервирование
EX DE,HL ;DE - указатель на
;выделенную область
LD (HL),#D ;символ CR
Если Вы собираетесь потребо-
- 4 -
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
вать от пользователя новую
строку, то пропустите следующий
пункт, а если собираетесь
предложить какой-то текст для
редактирования , тогда:
LD А,-1 ;поток 1 связан с
;каналом "R"
CALL #1601 ;текущий поток
LD DЕ,адрес_текста
LD ВС,длина_текста
CALL #203C ;вывод строки в
текущий поток
Информация, вводимая в канал
"R", попадает по адресу курсора в
области, управляемой набором
подвижных указателей (CHANS, PROG,
VARS и т.д.)- Область
раздвигается и символ вставляется в текст.
В данном случае курсор установлен
подпрограммой Clear_Sp на начало
области WorkSp, в которой будет
производиться редактирование. А
потому выводимые в канал "R"
символы попадают в буфер
редактирования .
Понятно, что редактирование
будет происходить в окне "К", по-
этому:
SUB A :поток 0 связан с
;каналом "К"
CALL #1601 ;открытие потока
Наверняка, Вы захотите
предварить редактирование каким-то
сообщением (например, "введите имя
файла:"). Тогда поступайте так:
LD DЕ,текст_сообщения
LD ВС,длина сообщения
CALL #203C ;вывод сообщения в
;канал "К"
Что бы подпрограмма KeyInput,
которая является частью драйвера
канала "К", не чистила нижнее
окно на экране, запретим ей это:
RES 5,(IY+2) ;TV Flag
RES 3,(IY+2)
Осталось запустить сам
редактор:
CALL #F2C ;Editor
У Вас возник законный вопрос:
"А где, собственно, теперь найти
отредактированный текст?"
Запустите подпрограмму SetDE:
CALL #1194 ;SetDE
и полечите в регистре DE адрес
буфера редактирования, в HL -
адрес за его концом. Сам текст
расположен от (DE) и заканчивается
маркером CR (код #D). Важно в
промежутке от вызова редактора до
вызова SetDE не менять переменную
FlagX. Если в программе
необходимо знать длину строки, сразу
после вызова SetDE можно выполнить
следующие команды:
EX DE,HL ;в HL теперь
старший указатель
CALL #192D ;differ
В результате содержимое
регистров HL и DE такое же, как
после вызова SetDE, а регистр ВС
содержит длину строки (включая
символ CR в ее конце).
Не забывайте, что выход из
редактора возможен и по ошибке
(исключение) "Stop in input", и
поэтому не лишне было бы
перехватить прерывание RST 8 (прерывание
системной ошибки).
И еще несколько замечаний.
Обычно, когда программисту
необходимо считывать клавиатуру, он
пишет в лучшем случае следующее:
GetKey BIT 5,(Flags)
JR Z,GetKey
RES 5,(Flags)
LD A,(LastK)
RET
Потом "вручную" обслуживается
клавиша CapsLock, режим курсора и
т. п. Но зачем все это делать
самому, если в ПЗУ есть
подпрограммы, выполняющие те же функции?
Итак, для считывания клавиатуры
(а фактически канала "К"),
необходимо сделать текущим поток,
связанный с каналом "К":
SUB A ;поток 0
CALL #1601
- 5 -
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
Кроме того, необходимо
установить два системных флага:
RES 5,(IY+2) ;TV_Flag
RES 3,(IY+2)
которые означают, что при
нажатии на клавишу нижнее окно
экрана очищаться не должно и
копирование буфера редактирования не
требуется. Теперь можно сколько
угодно вызывать продпрограмму
WaitKey:
CALL #15D4 ;WaitKey
которая возвращает код нажатой
клавиши в регистре А. Используя
эту продпрограмму, можно вводить
данные из любого потока. Таким
образом, функция WaitKey прямо
противоположна широко известной
функции Print-A-Character (RST
16).
Но если уж приходится самому
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
Адаптация к система
TR-D08 программ о
подгружаемыми уровнями.
1. Введение.
Первое время, после
подключения дисковода к компьютеру,
пользователь практически не имеет
проблем, находясь в состоянии
эйфории от скорости загрузки и
оперативности поиска необходимых
программ, он без чувства
сожаления забывает о тех недавних
временах, когда загрузка игрушки с
кассеты продолжалась порой
десятки минут, а в случае неудачи
повторялась снова и снова, доводя
иногда до отчаяния. Особенно,
если это касается загрузки программ
типа NIGHT SHIFT, GOLDEN AXE,
HEROES OF LANCE или XENOPROBES, в
писать модуль ввода с клавиатуры,
необходимо отрабатывать звук при
нажатии на клавишу. Стандартно
это делается так:
LD D,0
LD E,(IY-1) ; Pip
LD HL,#C8
CALL #3B5 ; Beeper
А для индикации ошибок можно
использовать аналогичную
стандартную последовательность:
LD D,0
LD E,(IY-2) ; Rasp
LD HL,#1A90
CALL # 3B5 ;Beeper
Который генерирует тот низкий
дребезжащий звук, которым обычно
индуцируется нехватка памяти.
которых, последовательно
загружаются блоки длинной в 30 кБ,
предлагая Вам выбрать героя,
управление, оружие и только затем уже
непосредственно грузится игровой
уровень. А ведь есть еще и
программы, например, F-19 FIGHTER
BOMBER или SHADOW of the BEAST,
требующие не последовательной, а
конкретной загрузки определенного
блока.
Научившись на скорую руку
перебрасывать обычные кассетные
программы, на подгружаемых
пользователь, обычно, "спотыкается",
даже если у него уже есть
определенный опыт программирования в
машинных кодах. Попробовав пару
раз поставить вместо CALL 1366
поставить CALL 15635 и убедившись
в безрезультатности такой замены,
он отправляется вытягивать
процедуру загрузки из уже
адаптированных программ. За период с 1992
года мною было установлено на
диск около 100 подгружаемых игр и
около 30 адвентюрных с отгрузкой
на диск, что позволило системати-
(С) Александр Десятниченко
г. Сумы 1995 г.
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
зировать наработанный материал и
написатъ эту статью, в которой
будут на наглядных примерах
рассмотрены несколько типов процедуры
загрузки в машинных кодах. Какую
из них выбрать Вам будет зависеть
от адаптируемой программы и от
того, какой Вы хотите получить
результат.
2. Подготовка к адаптации.
Разумеется, чтобы адаптировать
кассетную программу для работы в
TR-DOS, ее сначала необходимо
переписать с кассеты на диск.
Желательно также перед этим загрузить
игру с кассеты с целью проверки
ее работоспособности. Особое
внимание обратите на появляющиеся на
экране сообщения, другими
словами*, Вы должны уяснить для себя,
как должна загружаться и как
должна работать уже загруженная
программа. Для переброса на диск
лучше всего подходит копировщик
PC-COPIER или его модификация
TURBO PC-COPIER 128, Неплохо
работает также и L-COPY. При
копировании следите за полнотой
программы, чтобы ни один ее блок не
был упущенным. Будет неплохо,
если Файлы будут скопированы на
диск в той же последовательности,
в какой они находятся на ленте,
но это не является обязательным.
Кстати очень часто уже на кассете
подгрузки могут быть либо
перепутанными либо отсутствовать
вообще. Так, например, в широкоразо-
шедшейся дискофицированной версии
игры HELLFIRE 2 отсутствует
заставка, изображение приборной
панели и вся стерео музыка для
музыкального сопроцессора, которая
подгружалась для 128К. Еще один
пример - мой товарищ, никогда не
видевший кассетной версии игры
MYTH, долго возмущался, когда я
ему сказал, что тот первый
уровень (Греция) который у него
грузится с диска на самом деле
является вторым в оригинале, и,
только когда я показал ему полное
описание этой замечательной
программы, он мне поверил.
После того., как программа
будет полностью переписана,
необходимо переименовать файлы, так как
копировщик в процессе копирования
сам ставит названия безхедерным
блокам, и эти названия,
естественно, не соответствуют названию
самой программы. Считается
хорошим тоном имена основных файлов
(загрузчик, заставка, главный
блок) писать заглавными буквами,
а имена подгрузок - строчными,
при этом в имени подгрузки, для
наглядности и удобства в
дальнейшей работе, первым символом
должен быть пробел.
Теперь необходимо немножко
подготовить сами файлы к дальней-
ней работе. В первую очередь
вскрывается загрузчик, из
которого необходимо узнать адреса
загрузки и запуска основных файлов
программы, после чего его можно
попросту стереть. Заставку, если
есть в этом необходимость можно
поправить в графическом редакторе
и откомпрессировать. Основной
блок наоборот - декомпрессировать
(если он был сжат) к записать на
диск. Для удобства, если этот
блок оказался слишком длинным,
его можно записать в разрезанном
на две части виде. Дольше с
помощью любого дискового монитора
просматриваются фальшхедеры
подгрузок, если они, естественно,
существуют. Если это простейшие
несколькобайтные "заголовки", не
несущие ценной информации, то их
тоже можно безболезненно удалить.
Иногда же, например, в программах
DARIUS и POTSWORTH, эти короткие
блочки содержат в себе кроме
номера подгрузки еще и название
уровня, в дальнейшем выводимое
при сообщениях на экран, а так же
таблицы расположения спрайтов в
подгрузке. В играх DOUBLE DRAGON
и BARBARIAN 2 в этих самых фаль-
шхедерах располагаются даже
процедуры загрузки подгрузок.
Разумеется, необходимо с большой
осторожностью относиться к такого
типа заглавиям. Сами уровни, как
правило, никакой обработки не
требуют и готовы к использованию.
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
3. Подготовка новой
процедуры загрузки.
Теперь загрузите в память
компьютера основной блок
адаптируемой программы. После чего
запустите MONS 3 или тот
дизассемблер, который Вам нравится и
попытайтесь отыскать в тексте прог-
ранмы процедуру, которая когда-то
грузила кассетные подгрузки.
Конечно, если перед подгрузкой
должен загрузиться фальшхедер, то об
этом тоже будет упомянуто.
Обычно, сразу после того, как
фальшхедер загружен, идет его
проверка, и, если он не совпадает с
эталоном, значит, кто-то пытается
загрузить не ту подгрузку:
LOAD LD IX,32768 ; адрес загрузки фальшхедера
LD DE,00001 ; длина фальшхедера
LD А,62 ; подготовка к загрузке
SCF ; фальшхедера
CALL 65000 ; вызов процедуры загрузки
LD А,(32768) ; в ячейке памяти 65535 компьютер
LD Е,А ; хранит номер требуемой подгрузки
LD А,(65535) ; проверяется соответствует ли
СР Е ; загружаемое требуемому
JR NZ,LOAD ; грузить заново, если нет
И если данные фальшхедера совпали с требуемыми, то необходимо
грузить саму подгрузку:
LD IX,49152 ; адрес загрузки уровня
LD DE,16384 ; длина загружаемого уровня
LD А,255 ; подготовка к загрузке
SCF ; без заголовка
CALL 65000 ; вызов процедуры загрузки
JP NC,L0AD ; в случае ошибки грузить заново
Таким образом, стало известно,
что в этой программе, подгрузки
грузятся под адрес 49152, что
программа перед загрузкой
следующего уровня засылает номер
подгрузки в ячейку 65535, а сама про-
цедура загрузки находится по
адресу 65000. Разумеется, для
каждой программы эти данные будут
разными, возможны и следующие
варианты :
LD HL,49152 ; адрес загрузки заносится в HL
LD DE,(24576) ; длина хранится в ячейках 24576 и 24577
LD А,255
SCF
PUSH HL ; передача адреса из HL в IX
POP IX
CALL 1366 ; процедура загрузки вызывается из ПЗУ
Тем не менее, основные
сведения стали известны. Теперь
начинается самое интересное -
необходимо перейти на адрес процедура
загрузки (в нашем случае - 65000)
и посмотреть, что там. Если
окажется, что эта процедура занимает
примерно 100-150 байт, то Вам
сильно повезло, так как примерно
столько места нужно для написания
новой процедуры, которая вместо
загрузки с ленты будет
производить загрузку с диска. Если же
старая процедура занимает намного
меньше места или вообще после
небольшой подготовки идет обращение
к процедуре загрузки, находящейся
d ПЗУ компьютера' (обычно на
адреса 1366, 1378 или 1382), то
придется при помощи того же MONSa
просмотреть всю память компьютера
в поисках примерно 120 байт
памя- 8 -
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
ти, которую программа не
использует в своих целях. В крайнем
случае можно будет попробовать
использовать для этого то место в
программе, где в ней хранятся
сообщения типа "LOAD ERROR - REWIND
THE TAPE ON SIDE TWO AND PRESS
ANY KEY", убрав перед этим
программы вызова этих сообщений (они,
обычно, находятся перед
программой загрузки подгруэок). Были
случаи, когда эту процедуру
приходилось размещать в области
хранения, графических изображений,
вернее в их "черных" местах,
чтобы не было этого заметно при
выводе этой графики на экран.
4. Процедура загрузки
по вмени файла.
Итак место для дискового
загрузчика найдено, необходимо
только поместить туда новую
процедуру. Чаще всего используют (вернее
сказать использовали в 1990
1992 г.), загрузку уровня по
имени файла, то есть сначала идет
поиск такого файла в каталоге
диска по его имени, а потом уже,
если он будет найден, идет его
загрузка в память под необходимый
адрес. Длина загруженного файла
будет равна длине, указанной в
его заголовке. Вот эта процедура:
L1
устанавливаются системные переменные TR-DOS
L2
устанавливается 1-й режим прерываний
перебрасывается дескриптор файла в
область системных переменных TR-DOS
устанавливается адрес загрузки
вызов процедуры загрузки из ПЗУ
восстановление второго режима прерываний
выход в вызывающую программу
здесь находится дескриптор файла, т.е. - его имя (8 символов
и код буквы С, что обозначает, что загружается блок кодов).
LD HL,23752
LD A,#83
LD (HL),A
XOR A
LD B,#52
INC HL
LD (HL),A
DJNZ L1
LD A, #08
LD (23802),A
INC A
LD (23814),A
LD A,#C9
LD (23746),A
LD HL,23847
LD (23653),HL
LD (23641),HL
LD (HL),#FF
PUSH HL
POP IY
IM 1
LD A,#F4
LD (23734),A
XOR A
INC HL
LD (HL),A
LD HL,L2
LD DI,23733
LD ВС,90009
LDIR
PUSH IX
POP HL
INC A
LD С,#OD
CALL 15635
DX
IN 2
RET
- 9 -
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
Данная процедура требует
некоторых разъяснений. Как видите,
сначала идет установка системных
переменных TR-DOS. Это
необходимо, так как во время работы
адаптирующая программа может
использовать эту область памяти по
своему усмотрению, внося в нее
изменения. Затем устанавливается 1-й
режим прерываний, потому что
подавляющее большинство программ
использует второй режим
прерываний, а команда CALL 15635 может
работать только при стандартном
первом режиме прерываний. После
этого в область системных
переменных помещается дескриптор
файла, по которому будет вестись
поиск файла в каталоге диска
посредством обращения к стандартной
процедуре, находящейся в ПЗУ
TR-DOS, и, в случае успешного
поиска, загрузка найденного файла
происходит под адрес HL, куда
предварительно было занесено
значение, хранящееся в IX. Файл
загружен, остается только
восстановить прежний режим прерываний и
RET в вызывающую программу.
К достоинствам данной
процедуры относится то, что в память
компьютера будет загружено
столько байт, сколько было указанно в
заголовке файла, а так же то, что
возможна загрузка произвольного
файла с диска, независимо от его
нахождения. Разумеется, для
этого, конечно же, предварительно
необходимо соответствующим
образом подготовить сам дескриптор
файла. Обычно это делается 'гак.
Из ячейки, хранящей номер
загружаемой подзагрузки, в дескриптор
перебрасывается это значение.
Таким образом, если, например, в
дескрипторе имеется "level.1С", а
надо загрузить файл с именем
"level. 2С", то нужно изменить "1" на
"2" и будет вестись поиск уже
этого файла. Кстати не всегда
программа обозначает номер подг-
руэки цифрой. Следовательно, это
нужно учитывать либо при
переименовывании файлов, чтобы этот
символ соответственно находился и
затем изменялся в дескрипторе,
Либо же в самой вызываемой
программе осуществлять преобразование
кода номера подгрузки к тому
виде, который этот код имеет в
заголовке файла. Например, теперь
вызывающая программа после
перередактирования будет иметь
примерно такой вид:
LD IX,49152
LD A,(65535)
ADD A,#30
LD (L2+8) ,A
CALL 65000
адрес загрузки файла
из ячейки, хранящей номер файла, берется
имеющееся там значение, преобразуется в
в символ и засылается в дескриптор файла
вызываем переделанную процедуру загрузки
При перередактировании,
кстати, я пользуюсь прямым вводом
команд из дизассемблера. При этом
удаляю все лишние куски: загрузка
фальшхедера, проверка его
соответствия и т.п. Конечно, если
загрузка фальшхедера была
необходимой из-за ценности имеющейся в
нем информации, то процедуру его
загрузки нужно не забить командой
NOP, a - соответствующе
отредактировать .
Данная процедура загрузки
является фактически незаменимой в
таких программах, как RICK
DANGEROUS 2 и IMP0SSAM0LE6 где
пользователе предлагается самому
выбрать, какой уровень загрузить. К
тому же, каждый уровень имеет
свое название, которое как бы и
является кодовым номерок
подгрузки. поэтому может возникнуть
необходимость изменять в
дескрипторе файла не один символ, а все
восемь.
А теперь еще о недостатках
данной процедуры, дело в том, что
многие программы после запуска
распределяются по всей памяти,
занимая и используя для
дальнейшей работы область системных
переменных TR-DOS Естественно,
после того, как данная процедура
загрузки внесет в эту область
свои изменения, коды самой
программы, размещенной в этом месте,
становятся непригодными для
дальнейшей работы. Если здесь разме-
10 -
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
щалась графика или спрайты, то
это вызовет порчу объектов, а
если - какие-то программы, то сбои
или зависание программы. Чтобы
избежать таких неприятностей,
необходимо каждый раз перед вызовом
процедуры загрузки сохранять эту
область путем переброса в
свободное место памяти командой LDIR.
Поскольку свободное место в
памяти найти не всегда представляется
возможным, обычно, переброска
идет в неиспользуемую на время
часть экрана, а чтобы на экране
компьютера этот мусор не был
заметен, эту часть экрана
"затемняют":
LD HL,22528
LD DE,22529
LD ВС,00255
LD (HL),#00
LDIR
LD HL,23552
LD DE,16384
LD ВС,00512
LDIR
закрасить верхний сегмент экрана
в черный цвет
перебросить область системных
переменных в верхний сегмент экрана
После выполнения загрузки
область системныж переменных должна
быть переброшена
место:
на свое родное
LD HL,16384
LD DE,23552
LD ВС,00512
LDIR
перебросить область системных
на прежнее место
Существует и другой способ
установки системных переменных. Для
этого необходимо войти и сразу же
выйти из TR-DOS, после чего
сохранить на диске область системных
переменных в виде кодового файла.
Еще лучше будет, если загрузить в
память первой уровень игры, а
затем уже выгрузить на диск
системные переменные. В таком случае Вы
будете иметь не только их, но и
готовый Дескриптор файла,
размещенный на своем месте. Таким
образом, из вышеприведенной
процедуры загрузки можно будет
исключить все, что касается установки
системных переменных, подготовку
й переброс дескриптора
загружаемого файла. Выгруженный на диск
файл размещается на свободном
месте памяти и перебрасывается на
свое место каждый раз перед
загрузкой. Разумеется, перед
загрузкой последующих уровней, должны
вноситься соответствующие
изменения в дескриптор файла.
Описанной в этой главе
процедуре требуется также еще 256 байт
памяти для буфера. В этот буфер
процедура будет последовательно
загружать по одному сектору
считанной информации, и только после
этого данные перебрасываются уже
непосредственно на свое место в
памяти, заданное в вызывающей
программе. Эти 256 байт всегда
располагаются в области стека,
начальный адрес которого
определен регистром SP. Конечно, в
кассетной версии не предполагалось
иметь такой большой отек, поэтому
считанный сектор повреждает
информацию, находящуюся в 256
байтах ниже SP. Чтобы избежать
неприятностей подобного рода, перед
вызовом процедуры загрузки так же
желательно, а часто просто
необходимо переустановить машинный
стек, запомнив его прежнее
значение. Для этого используются 2
байта в свободном месте памяти,
где будет храниться это значение:
LD (33000),SP
LD SP,64999
После загрузки файла, SP снова
возвращается его прежнее значение
командой LD SP,(33000). Если в
памяти не найдется места под вре-
- 11
ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
менный стек, то его можно
установить в той же "зачерненной" части
экрана.
В процедуре также отсутствует
обработка возможных ошибок и
нестандартных ситуаций. Например,
испорчен диск или отсутствует
требуемый файл Но, как Вы
понимаете, для этого потребуется еще
20-30 байт памяти, чтобы дописать
несколько команд. Обычно
используют системную переменную,
находящуюся по адресам 23613 и 23614,
в которую помещают адрес
подпрограммы, обрабатывающей ошибочную
ситуацию. Например, это может
быть адрес программы, которая
будет выводить на экран сообщения
типа "DISK LOAD ERROR" или "FILE
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ZX FORTH
(С) Ткач Николай.. 1995 г.
Наши читатели неоднократно
отмечали, что мы не уделяем
внимания языкам программирования
Спешим устранить этот недостаток и
открываем раздел языки
программирования, а начнем мы с
рассмотрения программирования на языке
FORTH.
Естественно, что по этому
языку выпущено несколько книг и
брошур (в тон числе и для
ZX-SPECTRUM), но во всех них описывается
лишь язык и очень-очень мало опи-
'сывается применение этого языка.
Мы постараемся показать
практическую ценность языка и донести
до Вас тонкости работы с языком.
При написании этой статьи
возникли некоторые трудности: нужно
было решить в какой степени
необходимо дать сам язык, что бы и не
повторяться , и не оставить в
стороне начинающих пользователей,
не знающих ничего о ФОРТе. Было
NOT FOUND".
Несмотря на все эти
недостатки, процедура является достаточно
универсальной и наиболее
распространенной, поэтому я и
старался поподробнее описать ее работу
и применение. Ниже будут описаны
другие более новые и совершенные
методы загрузки файлов с диска
процедурами, написанными в
машинных кодах, а к этому разделу я
еще вернусь в конце статьи, когда
разговор пойдет о адаптации к
системе TR-DOS адвентюрных и
стратегических игр с отгрузкой
отложенного состояния игровой
ситуации на диск.
(продолжение следует)
принято решение обсудить
необходимый минимум языка и большее
внимание уделить конкретным
примерам. Мы надеемся, что & этом
случае те, кто знает Форт не
будут слишком скучать, а те кто не
знает смогут его освоить. И еще,
о различных версиях Форта будет
сказано ниже, пока же скажем, что
Вы можете прочесть краткое
руководство по языку Форт в пакете
FORTH под IS-DOS, который найдете
в бланк заказе. У это версии
Форта есть много положительных
аспектов, есть, конечно, и
недостатки, но информация, которая
находится в пакете, несет
необходимые сведения о языке.
ЧТО ТАКОЕ ЯЗЫК FOIcTH.
В отличие от других яэыков
программирования Форт не является
плодом коллективного труда
какого-либо комитета или коллектива
ученых, он родился в голове
одного человека Чарльза X. Мура. В
начале 60-х годов Мура все больше
стало неудовлетворять время и
затраты труда, требовавшиеся для
разработки программ. В течении,
нескольких лет им создавались
основы прототипа языка, и в 1971 г.
- 12 -
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
появилась первая современная
реализация языка Форт.
Язык программирования Форт
это рабочий инструмент многих
высококвалифицированных
программистов. Форт сближает программу с
задачей, сокращая цикл разработки
программ и резко повышая
производительность труда программиста.
Если программу на Паскале или
Фортране можно написать и
отладить за неделю, то такую же
программу на Форте - за несколько
часов. По сравнению с Бейсиком и
некоторыми другими
интерпретаторами Форт позволяет составить
программу в несколько раз более
быстродействующую. Он проигрывает
Ассемблсфу по скорости исполнения
программы не более чем в 1.5-2
раза. Применение же встроенного
Форт-ассемблера позволяет
приблизить быстродействие программы к
скорости программы на Ассемблере.
Более того, программы на
Ассемблере сложны для восприятия,
поэтому, обычно, написаны не
оптимально. Программа же на Форте
легко воспринимается, поэтому
хорошо структуирована и компактно
организована. Все это приводит к
тому, что часто хорошая программа
на Форте занимает места в памяти
меньше,чем аналогичная программа
на ассемблере, да и выполняется
быстрее. Если же программист
хорошо знает ассемблер и начнет
писать на Форте, используя по мере
необходимости Форт-ассемблер, то
достигнет поразительных
результатов.
Используя Форт, нужно не
моделировать понятия задачи через
готовые конструкции языка
программирования, а непосредственно
создавать их из небольшого, но
мощного ядра; в этом главная черта
Форта. В языке Форт имеется
сравнительно небольшой словарь, с
которым можно быстро освоиться и
при помощи его дать машине
задание. В процессе диалога с ЭВМ Вы
можете договориться с ней о
введении новых слов, которые Вы ей
сами объясните с помощью уже
известных. Это дает возможность
каждому человеку формировать свой
лексикон для общения с машиной,
отражающий его собственные
привычки, вкусы и вычислительные
потребности.
Форт - это диалоговый
интерпретирующий компилятор и
компилирующий интерпретатор, в котором
имеется доступ ко всем
возможностям ЭВМ, включая программирование
в кодах. Компактность системы, ее
открытость и слабая зависимость
от аппаратуры позволяют
программисту быстро создавать и
совершенствовать свой личный
инструментарий . Форт - это творческий
еыэов на поиск интересных решений
практических задач.
При всей своей простоте и
компактности (Форт занимает в памяти
5-8 Кб, а при необходимости может
быть упрощен до размрра в 1 Кб и
при этом сохранит все свои
основные свойства, как языка) Форт не
так слаб, как может показаться.
Форт позволяет развивать себя.
Пользователь, используя
изначальный набор слов (так называются
команды или операторы),
называемый ядром Форта, может
конструировать новые образы-объекты и
слова для работы с ними. Кроме
того, что его можно развивать
используя уже готовые процедуры в
машинном коде для этого
достаточно разместить эту процедуру в
свободном месте словаря Форта и
определить слоро запускающее ее и
подсовывающее ей необходимые
данные. В одном из номеров второго
полугодия я намерен показать, что
получится при таком симбиозе
Форта и Лазер-Бейсика. Представьте
себе язык, позволяющий очень
быстро и легко написать
программу, использующую любые
графические возможности Лазер-Бейсика и,
ь тоже время, расходующую меньше
памяти и более быстродействующую
чем откомпилированная программа
аналогичного содержания на
Лазер-Бейсике. Более того программу
не нужно будет компилировать и
отлаживать, все это будет
происходить при наборе ее текста. Не
теряются в Форте и возможности
стандартного Бейсика. Опять же
необходимо описать слова со
ссылками на ПЗУ. Можно, например,
описать используя Форт-Ассемблер
- 13 -
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
слова Editor, действие которого
будет совпадать с действиями
описанными в статье Бориса Курицына
(вызов встроенного редактора из
ПЗУ) .
Благодаря своим грандиозным
возможностям Форт применяется:
при разработке операционных
систем и трансляторов с языков
программирования; для управления
станками, роботами, медицинским
оборудованием, математического
обеспечения космических корабле
типа Шаттл и некоторых
искусственных спутников Земли; в
системах управления базами данных и
карманного переводчика с 20
языков; в задачах машинной графики,
а также для создания телеигр,и
анимационных программ; в системах
искусстьенного интеллекта и
экспертных системах; систем
распознавания образов с целью внедрения
их в роботов с искусственным
зрением и слухом и т.п.
В программировании на Форте
есть одна тонкость. Форт дает
разнообразные средства, но
возлагает на программиста большую, чем
в других языках ответственность
за эффективность и правильность
их использования. Форт настолько
лоялен, что почти не контролирует
программиста. Это развязывает
программисту руки, но и
заставляет следить за тем, что бы не
разрушить систему.
ОСНОВЫ ФОРТА.
Начнем, пожалуй, с памяти. Но
прежде всего рассмотрим
арифметический стек.
Специфика языка Форт
заключается в том, что он содержит
специальный контейнер для
оперативного хранения чисел - стек. Стек
можно сравнить с обоймой
патронов: патрон, который положен туда
первым, может быть извлечен
только последним. Стек введен не
cпpccтa, все слова Форта при
своей работе берут необходимые
данные на стеке и помещают результат
тоже на стек, и ,поэтому, обычно,
не приходится задаваться вопросом
о том, как передать данные, где
их взять, где сохранить (принято,
что промежуточные результаты
всегда должны находиться на
стеке).
Итак, чтобы выполнить какое-то
слово, необходимо поместить на
стек необходимые ему данные. Для
этого необходимо набрать через
пробел числа для стека и нажать
ввод:
2 45 17 <ENTER>
Для вывода на экран числа со
стека служит слово . (просто
точка), для выполнения
арифметических операций - знаки
арифметических операций - + * / . Так,
например, + берет со стека 2 числа,
складывает их и результат
сложения помещает на стек. Так:
20 10 3 + - . даст
7 ok
плюс сложил 10 и 3 и положил 13
на стек, минус из 20 вычел 13 и
положил 7 на стек, а точка
распечатала верхнее значение со стека.
Не следует забывать, что данные
слова максимально приближены к
ассемблеру, и поэтому работают
лишь над целыми числами из
диапазона -32768 .. 32767.
Естественно, что с дробными числами тоже
можно организовать работу.
Теперь о простейших словах,
работающих с памятью.
! - занести двухбайтное число
в память (для этого слова верхним
на стеке должен быть адрес, а под
адресом - число, которое нужно
занести. Например:
0 22528 !
занесет по адресу 22528 (начало
атрибутов экрана: двухбайтное
число 0, в следствие чего в левом
верхнем углу появятся два черных
знакоместа.
@ - считывает значение по
заданному адресу (адрес берется,
естественно со стека и считанное
значение ложится на стек).
Значение можно распечатать точкой:
22528 @ . даст
0 ok
- 14 -
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
Для работы с одним байтом (а
не с двумя сразу) предусмотрены
аналогичные слова С! и С@.
Теперь о циклах (точнее одном
самом простом цикле). Его
конструкция такова:
DO тело цикла LOOP
Слово DO берет со стека 2
числа: начальное значение счетчика и
конечное и выполняет слова до
слова LOOP заданное количество
раз (шаг изменения счетчика в
таком цикле равен 1). Правда циклы
можно использовать только при
построении новых слое. Новые же
слова строятся так:
: имя перечень_слов ;
Слово : создает новое слово с
именем имя и действием
эквивалентным последовательному
действию перечня слов. Для примера
напишем слово для очистки экрана.
Это слово не будет предельно
быстрым (можно на Форте написать
и намного более быстродействующее
слово), но будет демонстрировать
применение цикла.
: CLS 22527 16384 DO О I С!
LOOP ;
В этой определении
присутствует слово I. Оно ложит на стек
значение счетчика.
Если теперь набрать
CLS <ENTER>
то произойдет очистка экранной
области компьютера.
Кстати, еще немного о памяти.
Количество свободной памяти под
словарь сильно зависит от версии
Форта, который Вы используете:
чем компактнее написан сам язык,
тем больше свободной памяти.
Обычно свободной памяти в
различных версиях Форта на ZX-Spectrum
остается около 25 Кб, но есть и
исключения. Так, например, в
Форте под IS-DOS свободной памяти
осталось около 13 Кб (очень много
места занимают программы для
связи с диском). Я же пока не остал-
ся доволен ни одной из известных
мне реализаций Форта (может
как-нибудь поделюсь с Вами своей
реализацией). А пока можете
пользоваться любой версией (Форт тем
и хорош, что в базовой версии он
один и тот же, что на Spectrum-e,
что на IBM. Различия касаются
только аппаратной части).
Стек - очень хорошая вещь, но
у него тоже есть свои недостатки.
Они проявляются тогда, когда
приходится оперировать с большим
количеством чисел. Если Вы помните,
то работать непосредственно можно
только с верхним числом на стеке.
Есть еще некоторые команды:
SWAP - обменять местами два
верхних значения со стека;
DROP - удалить со стека
верхнее значение;
DUP - продублировать на стеке
верхнее значение;
OVER сделать вращение-обмен
трех элементов стека;
Но с количеством элементов на
стеке более 3-х становится
работать затруднительно (имеется
ввиду, что сложности возникают,
когда все эти элементы могут
понадобиться в любой момент. Если же
они выбираются последовательно,
то все нормально). Так вот, что
бы всего этого избежать,
естественно завести переменные,
константы, массивы. Переменная
определяется так:
VARIABLE имя_переменной
Это определение не делает
ничего более, как отводит место в
памяти (2 байта) и отождествляет
адрес этого места с именем
переменной. Так, например, определив:
VARIABLE номер
мы можем сохранить в этой
переменной число простыми командами
работы с памятью:
45 номер !
и извлечь:
номер @ . получим
45 ok
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
15
Теперь мы подошли к тому, что
можем легко описать слово
эквивалентное, например, команде SETV
из LASER BASIC-a (эта команда
заполняет окно экрана установленным
атрибутом).
Определим переменные:
VARIABLE COL
VARIABLE ROW
VARIABLE HGT
VARIABLE LEN
VARIABLE HH
VARIABLE CC
10 COL ! 10 ROW !
10 LEN ! 10 HGT !
169 CC C!
Коорд X левого верхнего угла окна
Коорд Y левого верхнего угла окна
высота окна
длинна окна
служебный адрес
атрибут
заполним переменные
Определим слово LIN,
: LIN LEN @ 0 DO
cc c@
нн @ COL @ + I +
С! LOOP
заполняющее атрибутом строчку окна:
цикл от 0 до значения LEN
положить на стек атрибут
вычисляем адрес позиции, как
смещение НН плюс координата X плюс
смещение в окне
заносим атрибут по адресу и повт.
Определим теперь само слово, как последовательный вызов LIN с
предварительным вычислением НН, как позиция Y плюс номер строчки в
окне умноженные на 32:'
: SETV ATTR ROW @ 32 * + HН ! HGT @ 0 DO LIN НН @ 32 + НН ! LOOP ;
Для начала - все.
(продолжение следует)
ФОРУМ
РЕД: Не угасает интерес к игре
REBEL STAR. Наш читатель из Киева
делится своим опытом в
прохождении этой игры.
КОРР: В описании игры (N1 95)
Винарский Р.В. кое-что упустил:
1) MEDIPROBE - уникальная
штучка. Если выбрать ее и
ткнуться в своего игрока, то у него
прибавится немного CNTITUTION.
Так можно полностью вылечить
раненого, но есть одно замечание -
использование MEDIPROBE забирает
все (!!!) активные очки.
2) В базе есть 3 красно-желтых
DEFENCE LASSER-а. Стоит их
уничтожить, как на следующем ходу
появится подкрепление: TOPPER
MNLEY с фотоном (!) и OLBI VAN
KENN0BI ("Звездные войны") с ружьем
и пистолетом, а петом - и ZEERA
CAMAY с фотоном.
3) В здании есть несколько
DROID MEND-дов, это не дроиды, а
место на которое можно стать (оно
выглядит как красно-белый крес-
- 16 -
ФОРУМ
тик. Если на него стать, то у Вас
будет PROTEC=50 (защита
местности) и Вас невозможно будет
ранить. Однако, на нее может стать
только дроид, но не человек. Этим
свойством очень "круто"
пользоваться противнику в игре REBEL
STAR В (см. ниже).
3) Было ошибочно отмечено, что
самая правая группа не может
пробиться в базу Нужно просто долго
и упорно стараться.
4) В базе есть зеленая
лужайка. Из нее можно попасть в
комнату, где стоит LAWN MOVER
(газонокосилка). Что она дает я не зная,
но она очень эффектно косит
траву.
Советы:
а) из фотона лучше стрелять по
близким целям (да и то в
экстремальных ситуациях).
б) Группе, в которой Курт
Левин, лучше зайти в базу первой,
разбить шкафы саблей и занять
позиции. Позже, когда вы уже
кого-то убьете, будет легче (не
придется ходить по трупам).
в) COMBAT DROID-a можно
использовать, как защиту от PATROL
DROID-ов, т. к. их выстрелы не
приносят ему вреда.
REBEL STAR В
Вышеописанная версия игры
классифицируется как REBEL STAR
А, но есть также и REBEL STAR В,
где играют 2 человека, один - за
компьютер, другой - за людей,
база та же самая, но есть и
различия:
а) исчезают MASTER DROID-y
б) появляются безоружные SERVO
DROID-ы, которые могут поднимать
и носить вещи (они могут быть
использованы как слуги, но могут и
стрелять.
в) появляется MINER DROID. Ему
дают мало активных очков, но CON-
TITUTION=170 (больше чем у MASTER
DROID-ов !). Он так же может
поднимать и опускать вещи, но не
стоит его вооружать - он не может
стрелять.
Различия REBEL STAR А и REBEL
STAR В.
г) есть DROID KEY, которым
нужно неподвижных GENTRY и PATROL
DROID-ов в центре. Даю совет
игроку, который играет в базе: эти
DROID KEY-ем можно так же и
выключать дроидов, в том числе и
COMBAT DROID-об.
д) как известно, MEDIPR03E
лечит только людей, поэтому
появляется DROID PROBE, которая чинит
DROID-ов.
О различиях - все !!!
Некоторые примечания: В обоих
версиях игры ограничено
количество ходов. Ходы не показаны, как и
в REBEL STAR 2, но, когда они
окончатся, RAIDERS проиграют.
Вот и все о REBEL STAR.
REBEL STAR 2
Советы: Если использовать РОКЕ
28599,N, что бы увеличить
количество возможных ходов, то на
55-ом ходу появится еще один Ваш
человек. Это можно использовать,
если некому нести яйца.
В этой игре можно
придерживаться такой тактики: сначала
осторожно убить крыс, затем
отослать маленькую (5 человек) группу
низом, что бы пробиться к базе.
Она должна двигаться не спеша,
прячась за зарослями. Основная
группа должна занять позиции в
зарослях и принять на себя
основной удар. Если хорошо
попрактиковаться, то за 10 ходов вполне
можно разбить основную массу
противника . Далее можно уничтожить
солдат с терминаторами, которые
появляются в кустах. Затем идти
штурмом на базу ...
Один совет по штурму базы:
лучше подойти с основного входа
фотонщикам и, имеея как можно
больше акт. очков., стать на шаг в
базу. При это нужно поставить
OPPORTUNITY FIRE как можно дальше.
P.S. Я нашел РОКЕ для игры
REBEL STAR A (POKE 36067,20). Ища
РОКЕ для установки 255 патронов в
фотон, я случайно "набрел" на
это. Эффект поразителен: враг, не
двигаясь, сразу отдает ход Вам!!!
Но не рекомендую писать его тем,
кто играет в первый раз, т.к.
потом будет играть неинтересно.
Кстати, о стратегических иг-
- 17 -
ФОРУМ
pax. Хоть я пишу о REBEL STAR, но
лучшей игрой считаю LASER SQUAD.
P.P.S. В игре REBEL STAR есть
проблема: нельзя выгрузить игру
ни на кассету, ни на диск. Для
тех, кто не может использовать
MAGIC, сообщаю: когда OPERATIVES
подходят, программа выходит в
BASIC, где строка 50 имеет вид:
50 RANDOMIZE USR xххх : GOTO 50
Это можно использовать для
выгрузки состояния.
Хочу искренне поблагодарить
издательство за "Программирование
в машинных кодах". Отличная
книга! ! !
Я поделюсь интересной
информацией.
253175 г,Киев 175
ул.Славгородская 8 кв. 12
Гусеву Алексею.
РЕД: Спасибо Алексою за
интересную информацию и теплые слова.
Кстати, а все ли приобрели
"Программирование в машинных кодах"?
Если нет, то поторопитесь.
Программирование на Ассемблере без
этой книги просто немыслимо.
РЕД: Нашилов Александр из
г.Хмельницкий задает вопросы и
просит о помощи.
КОРР: У меня есть несколько
просьб о помощи. Возможно,
поможет кто-нибудь из читателей жур-
нала (у меня Ленинград-1):
1. Не поможет ли кто-нибудь с
POKEs к программам "S.A.S.
Operation Thunderflash", "Tilt",
"Skating' USA", а так же к "Savage 2",
"Savage 3" (те POKEs, которые
были опубликованы в "ZX-Ревю" N5,6
за 1993 год, у меня не идут).
2. Странно ведет себя
программа "Butch - Hard Guy". После
загрузки сна стартует, но при входе
в меню по экрану идут равномерные
полосы (как при выгрузке
пилотона), а сама программа произвольно
сбрасывается в любой момент
3. Так случилось, что после
перезаписи программы "Savage 2",
скорость воспроизведения музыки
увеличилась раза в два. Не знает
ли кто, как исправить это?
4. По поводу программы "Robo-
сор". У меня есть в наличии 5
подгружаемых уровней, ко при
прохождении 3-го уровня, программа
снова просит загрузить 1-й
уровень . Почему?
5. У нас на радиорынке имеется
в продаже контроллеры дисковода
"UNICON", которые предназначены
для "Ленинграда-2". Не знает ли
кто, как подключить его к
"Ленинград- 1" и к Харьковскому
варианту "ZX-Spectrum".
Кстати в журнале ни разу не
упоминалось о Харьковском
варианте.
Для справки:
размер платы - 300 х 160 мм,
количество микросхем - 68
есть контроллер Kempston Joystick
раздельные поля памяти
имеется системный разъем
Для возможных ответов даю свой
домашний адрес:
г.Хмельницкий,
ул.Свободы 4А, кв.267,
Нашилову В.И.
РЕД: Интересное письмо прислал
Сизенко А.А. из Луганска.
КОРР: Вы наверное знаете игру
"Eagle Nest", дело в том, что все
описания на не имеют ошибку.
Главной целью игры не является
собирание различных
драгоценностей и реликвий, это скорее
побочные цели, а главная высвечивается
при старте игры, Например.
'Mission one Blow up the caste"-
"Миссия первая - взрывание
замка". Миссии 2 и 3 - "спасение
заложника". Да, его нужно найти и
вывести из замка. Сам он похож на
фигурку, которой Вы управляете и
всегда следует за Вами. Если
нужно пойти в ту сторону, где сейчас
стоит заложник, то в него нужно
стрельнуть. Он ненадолго отойдет
в сторону. Согласитесь, что игра
приобретает совершенно другой
характер, чем простое шатание по
комнатам.
В описании широко известной
игры "Elite" упущена важная
деталь: "Fuel scops" - 525 сr. не
аккумуляторы топлива. Это -
устройство, позволяющее захватывать
контейнера оставшиеся от подбитых
кораблей. Захват нужно
производить нижней частью экрана (до
прицела).
- 18 -
Судя по письмам наших
читателей, очень нравится раздел АДВЕН-
ТЮРНЫХ ИГР. Мы рады развивать
этот раздел и ждем от Вас
содержательные письма по еще не
освещенным играм. А пока, своими
успехами и неудачами в прохождонии
игры HE-MAN делится Никитин
Александр из г. Херсон:
"...Игра выпущена фирмой
ADVENTURE SOFT в 1986 году по
мотивам фильма "Повелители ,
вселенной" . В данной игре Вы управляете
принцем Адамом, который, беря в
руки SWORD OF POWER становится
всемогущим HE-MAN-ом. Ему нужно
освободить свою планету от
свирепого пирата SEELETORA. В данной
игре к каждой локации есть
картинка и довольно подробное
(правда, не всегда) описание.
Итак.. Вы начинаете игру в
тронном зале короля RANDORA
(своего отца). Поговорив с ним, Вы
узнаете, что надо спешить
освобождать планету. Идя на восток, а
затем - на юго-запад. Вы
попадаете в свою спальню. Исследовав
кровать, я узнаю, что ножка
кровати содержит какой-то секрет.
Исследовав ножку,я привожу в
действие механизм, который
открывает потайную дверь в стене.
Войдя в нее, я очутился в своем
скрытом убежище. Исследовав кишу
в стене, я нашел меч, взяв
который, превратился в HE-MAN-а. Я
вышел из замка и очутился во
дворе, где увидел гвардию,
охраняющую замок и обвалившуюся конюшню
с лежащей возле нее мертвой
лошадью. Разговор со стражей ни к
ПЕРЕКРЕСТОК
чему не привел: они несли службу
и не могли отвлекаться. После
недолгих блужданий я пришел в
пивную мужчины по имени Армс.
Исследовав мужчин, стоявших здесь, я
нашел и самого хозяина. Я
поговорил с ним, и он дал мне новое
оружие - молекулятор (MOLECULAT-
ROR). Попытка купить пиво ни к
чему не привела. Затем я вернулся
в замок и пошел в зеркальную
комнату. Немного поразмыслив, я
решил попробовать зайти в зеркало и
это мне удалось: я очутился в
подэемельи, в самом центре Темной
Земли. Побродив, я вышел к
гигантским скорпионам. Атаковав
своим верным мечом, я истребил
их. Мне открылся выход наружу, но
там я недолго прооыл. Меня либо
убивал неизвестно какой прялыщик,
либо я крепко-накрепко застревал
в объятиях некоего TWO-BAG (2
брата сиамских, хотя и абсолютно
непохожих). К сожалению дальше я
не продвинулся.
Могу еще сообщить о различных
предметах непонятного значения *
Итак, Выйдя из самой первой
локации, я замечаю, что на потолке
спит GLOWCOON (светящийся енот?),
который охраняет (?) свое стадо.
При попытке взять его GLOWCOON
вспыхивает, тут же гаснет и
умирает. Идем дальше. Кристальный
пассаж (CRYSTAL PASSAGEWAY). На
стене какая-то мазь (?) (WAX) или
воск. Затем, в саду с небольшой
постройкой на полу валяются
осколки разбитого стекла, а в песке
зарыт какой-то TIMELINK (но о
нем- позже). Фруктовый сад. На
опушке - мусорная куча, рядом
дерево (не очень приятный
пейзаж), на котором растут
очень-очень вкусные и очень
странные фрукты. Только я поел
этих фруктов, как не смог поднять
ни одного предмета (видать
объелся) . От этого есть испытанный
способ- сделать зарядку (выкинуть
все предметы, а потом снова взять
их) и все в порядке. Затем
следует не менее приятная процедура.
Придется покопаться на ...
помойке, где Вы найдете острые кости и
гнилую бумагу, кости можно взять,
а вот с бумагой - загадка. Как
- 19 -
ПЕРВКРЕСТОК
только Вы попытаетесь с ней
что-то сделать, так она сразу
рассыпается в руках (на то она и
гнилая).
Теперь о Темной земле. В одной
из локаций на земле валяются
какие-то камушки. В комнате с MAN-
TEN-ой можно, убив его и осмотрев
сталактиты, найти II TIMELINK.
Так вот насчет его. Судя по
всему, TIMELINK в саду - подделка
(?) (а может и нет), но он
ускоряет время, и через некоторое
время планете приходит конец.
Хотя за вторым такого эффекта не
наблюдалось. Далее, в одной из
локаций нашелся RUNESTCNE, в
другой - MOSS, в третьей - золотая
стрелка от часов и еще что-то, и
еще ... Короче, я нашел кучу
предметов непонятного
назначения. . .
Далее Александр просит помочь
ему в прохождении этой игры.
Надеемся кто-нибудь откликнется. Вы
можете написать нам или
непосредственно Александру по адресу:
325026 г. Херсон, ул. Илюши
Кулика, д. 29, квартал 175
Никитину Александру.
Климус Владимир из г. Львов
предоставил описание VERA CRUZ:
Действие игры разворачивается
во Фракции, в городе Сент-Этьенн
в середине 80-х годов нашего
века . Цель игры - расследовать
убийство некоей Веры Круз не
выходя из своего офиса.
В первой части Зам необходимо
осмотреть место происшествия и
сфотографировать улики. Их
одиннадцать . Это сумочка Веры Круз с
пачкой сигарет "CAMEL", записная
книжка, черная пуговица (левее и
выше от сумочки), черная нитка
под ногтями левой руки Веры,
локоть левой руки со следами от
иглы, магазин от пистолета отмарки-
рованный ТЕ 9 F 3-79 (точка слева
от кресла), пистолет MAC 50 No
G56743, пачка сигарет "ROTHMANS",
коробка спичек с надписью "2
Station Street" (вероятно чей-то
адрес), пепельница с двумя окурками
"ROTHMANS" и "CAMEL" со следами
помады, прощальное письмо Веры.
Вторая часть игры - само
расследование. Сначала Вас спрашива-
ют. какие улики хотите отдать на
экспертизу. Это очень важный
момент игры, потому что, если Вы не
отдадите все важные улики на
экспертизу, то у обвинения не будет
достаточно доказательств против
убийцы. Названия улик вводите
через запятую или пробел, ENTER -
конец ввода.
Теперь Вы видите перед собой
шесть опций: MESSAGE,
EXAMINATION, STATEMENT, ARREST,
COMPARISON, PRINTER, с помощью которых
ведется расследование. Рассмотрим
каждую опцию:
MESSAGE - послать запрос в
следующие учреждения: GIE
-жандармерия, PREF - префектура, PRIS
- тюрьма, CRRJ - архив, BDRJ и
CIAT - главное полицейское
управление (при запросе к названию
учреждения необходимо добавлять
название города, в котором оно
находится).
EXAMINATION - проверить
идентичность пропуска (HANDWRITING)
человека, писавшего прощальное
письмо, с почерком Веры или
кого-нибудь другого из
подозреваемых. Тут же можно узнать
заключение судмедэкспертизы тела Веры
(AYTOPSY OF VER CRUZ).
STATEMENT - допрос свидетелей
(введите имя свидетеля и где его
можно найти). После допроса могут
появиться новые улики против
данной личности (см. ниже).
ARREST - арестовать
подозреваемого, но, если улик против него
будет недостаточно, то он будет
освобожден.
COMPARISON - проверить улики
против той или иной особы.
PRINTKR - все сообщения
выводятся кроме экрана на принтер.
Теперь любители игры 6eз
подсказок может закрыть журнал,
загрузить игру и играть
самостоятельно. Для всех остальных привожу
ход расследования...
РЕД: Мы полностью согласны с
автором в том, что не интересно
играть по полному описанию и
просим впредь составлять описания
так, что бы они несли в себе лишь
намеки, а не ключ к разгадке. Для
этого описания придется сделать
исключение.
- 20 -
ПЕРЕКРЕСТОК
1. Отдайте на экспертизу
следующие улики: черную нитку
(THREAD), пистолет (PISTOL), пуговицу
(BUTTON), сигареты (ROTHMANS),
прощальное письмо Веры (LETTER).
2. Сравните почерк Веры с
почерком в письме - почерк не ее,
версия про самоубийство отпадает.
3. Допросите MADINE LAFEUILLE,
ее адрес взят из записной книжки
- 2DFLAY ST. Оно говорит, что
Вера боялась некоего GYPSY.
4. Узнайте про GYPSY в GRRJ
LYON. Это - ZIEGLER PHILIBERT. Он
был арестован GIE ST-GALMER и
отсидел в PRIS ST-PAUL.
5. Узнайте в ST-PAUL о ZIEGLER
PHILIBERT. В тюрьме у него был
приятель BLANC GILLES, который
сообщил адрес при освобождении:
CARNOT SQUARE.
6. Допросите ZIEGLER
PHILIBERT, адрес см. выше. Он не знает
про смерть Веры.
7. Допросите EVA DELAURE
(адрес в записной книжке: TRAMSPORT
CAFE. Она рассказала, что с Верой
был связан ювелир из Сент-Этьенна
HUBERT DELROCHE.
8. Допросите HUBERT DELROCHE,
адрес которого - ST-ETIENNE. Он
работал на Веру.
9. Узнайте о HUBERT DELROCHE в
CIAT ST-ETIENNE. Недавно была
убита его жена убийцей по кличке
PHIL.
10. Узнайте о FUZZY в CRRJ
LYON. Это - ABDOULAN HOCINE.
11. Допросите ABDOULAN HOCINE,
адрес которого Вы найдете в той
же записной книжке (BAR OF
POPLARS ). Он говорит, что Веру убил
кто-то по имени BLANC.
12. Узнайте о DLANC CILLES в
CRRJ LION. Он был арестован CIAT
LION.
13. Узнайте о нем в CIAT LION.
Замешай в деле о драгоценностях.
14. Допросите BLANC GILLES
(его адрес на коробке спичек: 2
STATION ST. В день убийства он
весь вечер играл в карты у
STANISLAS K0WALSKI по адресу 310 BIS
COURS, E.ZOLA.
15. Узнайте о STANISLAS КO-
WALSKI в CRRJ LION. Он был
арестован GIE M0NTBRISON.
16. Узнайте о нем в GIE M0NT-
BRISON. Был взят за кражу со
взломом (дело о драгоценностях).
17. Допросите STANISLAS КO-
WALSKI. Он не знал Веры и
подтвердил алиби BLANC GILLES.
18. Узнайте о пистолете MAC 50
No G56743 в CRRJ LION. этот
пистолет был украден в CLERMONT.
19. Узнайте о пистолете в GIE
CLERMONT. В деле о его пропаже
замешан BMW, номер которого
заканчивается на CD 69.
20. Допросите соседа
(NEIGHBOUR) Веры. Это - MARTIN NESTOR. В
день убийства он слышал шум в
квартире Веры и кличку PHIL.
21. Допросите дворника
(CARETAKER) дома, где жила Вера. Это
DUPLAT SIMONE. Она видела убийц,
их было двое, и уехали они на
BMW, номер которого начинается на
9111.
22. Узнайте о BMW 9111 CD 69 в
PREF LYON. Его владелец BLANC
PHILIPPE, адрес которого 32 TER-
REAUX SQAURE.
23. Узнайте о нем в CRRJ LYON.
вас отправят дальше, т.е, в CRRJ
ETIENNE.
24. Узнайте о нем в BDRJ STE-
TIENNE. он разыскивается и очень
опасен.
25. Узнайте о BLANC PHLIPPE в
CIAT PARIS. Он сбил полицейского.
26. Допросите BLANC PHLIPPE.
Веры он не знал.
27. Снова допросите STANISLAS
KOWALSKI. Он рассказал, что BLANC
PHLIPPE убил Mme DELROCHE. А еще
сказал, что GILLES попросил
устроить ему алиби.
28. Допросите ZIEGLER
PHILIPPE. Он сказал, что Вера знала кто
убил Mme DELROCHE и хотела
сообщить о этом полиции.
29. Допросите BLANC GILLES. Он
сознался только в соучастии в
убийстве Веры Круз.
30. Допросите BLANC PHILIPPE.
На этот раз он сознался в
убийстве Веры Круз.
Теперь, я думаю Вы догадались
кто убийца. Арестуйте его и игра
окончена.
Мои поздравления !!!
21
ПРОГРАММИСТУ Н А ЗАМЕТКУ
MONITOR 16k
Я. ЛОГАН 1988 Г.
(окончание)
32C5-32DC. Таблица констант
для калькулятора. Пять значений
могут быть найдены в этой
таблице. Значения хранятся в
упакованном виде. Эти значения: 0, 1,
1/2, П/2, 10. эти константы
используются литералами АО-А5 и
помещаются на верх калькуляторного
стека. Стек увеличивается на одно
значение.
32DD-335A. Калькуляторная
таблица адресов. Эта таблица
содержит адреса 66 программ, которые
вызываются использованием кальку-
ляторных литералов.
Информация, содержащаяся в
таблице, показана ниже.
00 368F jump-true
01 343С exchange
02 33А1 delete
03 300F SUBSTRA
04 30СА multiply
05 31AF division
06 3851 to-power
07 351B or
08 3524 ne-B-no
09 253B no-l-eq
0A 353B no-gr-eq
0B 253B nos-neql
0С 353N no-gtr
0D 353B no-less
0E 353D nos-egl
0F 3014 addition
10 352D str-g-no
11 353B str-l-eq
12 353B str-g-ed
13 353B strs-neql
14 353B str-gtr
15 353B str-less
16 353B str-gtr
17 359C strs-add
18 35DE vals
19 34BC usr-s
1A 3645 read-in
1B 346E negate
1С 3669 code
1D 35DE val
1E 3674 len
1F 37B5 sin
20 37AA cos
21 37DA tan
335В-ЗЗА1; Управляющая
программа калькулятора.
ЗЗА2-ЗЗА8. Литерал ЗВ 'fр-
calc-2'. Эта важная подпрограмма
используется вычислителем
выражений при выполнении арифметических
операций. Для того, чтобы
использовать эту программу, литерал
арифметической операции должен
быть помещен в регистр прежде,
чем используется команда "RST
0028"
35DE-361E. Литерал ID-val. В
основном подпрограмма в
калькуляторе достаточно сложна и выходит
за рамки этой книги. Однако эту
частную подпрограмму стоит
рассмотреть более детально.
1. Получает параметры строки
из калькуляторного стека-
2. В рабочей области отводит
достаточное место для строки,
включая и символ "возврат
каретки".
3. Строка копируется в рабочую
область и дополняется символом
22 3633 asn
23 3843 acs
24 37E2 atn
25 3713 in
26 36C4 exp
27 36AF int
28 384A sgr
29 3492 sgn
2A 346 abs
2B 34AC peek
2C 34A5 in
2D 34B3 usr-no
2E 361F strs
2F 35C9 chrs
30 3501 not
31 33C0 duplicate
32 36A0 n-mod-m
33 3686 jmp
34 33C6 stk-data
35 367A dec-jr-nz
36 3506 less-0
37 34F9 greater-0
38 369B end-calo
39 3783 get-argt
ЗА 3214 truncate
ЗВ ЗЗА2 fp-calo-2
3C 2D4F e-to-fp
3D 3297 restack
86 etc 3449 series-a
А0 etc 341B constants
C0 etc 342D st-mem-0 etc
E0 etc 340F get-mtm-0 etc
- 22 -
ПРОГРАММИСТУ НА ЗАМЕТКУ
"возврат каретки".
4. Бит 7FLAGS сбрасывается
(флаг синтаксиса) и вызывается
вычислитель выражений.
5. Далее, если выражение было
числовым, флаг синтаксиса будет
установлен и вычислитель
выражений вызывается еще раз. Последнее
значение в калькуляторном стеке
будет содержать требуемый
результат .
36AF-386D. Подпрограммы
функций . В системе SPECTRUM для
вычислений функций EXP, LN, SIN и
ARN используются полиномы
Чебышева.
Таблицы констант для этих
подпрограмм находятся:
36DC-36F6 - ЕХР - 8 констант
3752-377Е - LN. - 12 констант
37BF-37D6 - SIN - 6 констант
3863-382Е - ATN - 12 констант
Эти константы хранятся з
упакованном виде и могут быть
распакованы подпрограммой " STK-DATA"
(регистровая пара DE загружается
адресом,куда надо поместить
результат, регистровая пара HL
основным адресом константы и
используется "CALL ЗЗСС").
При пользовании упакованной
формы, как внешней, любые пять
байтов могут быть переданы , в
калькуляторный стек. Для этого
байты в упакованном виде
помещаются после литерала 34-stk-data.
Литерал 3D - 'restack' также
стоит рассмртреть. Эта подпрогг
рамма изменяет значение из
интегральной формы в плавающую.
Эта подпрограмма не оказывает
действие на значения, которые уже
находятся в плавающей форме.
386E-3CFF. Набор литер.
ОБЪЯВЛЕНИЯ
Ищу описания следующих
музыкальных редакторов: (ss_120)
"SUPER SONIC" MUSIC EDITOR V1.20;
ASC SOUND MASTER 0.12 (ASM); SO-
UNDDTR.
Условия приобретения
направляйте по адресу:
265230, Ровенская обл.
п.г.т. Гоща,
ул. Маяковского 40
Мисюра Д.А.
Ищем адвентюрные игры фирмы
LEVEL-9, MELBOURNE HOUSE.
Познакомимся с теки, кто хочет
разбирать адвентюрные игры вместе с
нами.
Адрес: 310002, Днепропетровск,
ул.Набережная им.Ленина
д. 39 / 80
Мотурнаку Евгению
Тел. 47-60-38 (Игорь)
Вышлю схему и описание
цветного монитора на 32ЛК2Ц. Собран из
блоков от старых телевизоров.
Адрес: 349163 Луганская обл.,
пос.Чернухино,
ул.пионерская д.10 кв.9
Козлов Л.А.
Обладателю или автору
программы, которая проговаривает текст
через музыкальный процессор
(AY-8910-8912) написать в журнал
или мне лично о возможности
приобретения такой программы.
Адрес: 293260, Львовская обл.,
г.Ходоров, ул.Владимира
Великого д. 13
Стечницкому A.M.
Предлагаю для обмена более
3000 программ для Спектрума на
дискетах и кассетах. Возможен
обмен на радиотехническую
литературу. Продам недорого Спектрум
любой конфигурации (48/128 AY,FDD и
др.), а также окажу помощь в
наладке компьютера.
Адрес: 288600, Винницкая обл.,
г.Бар, ул. Р.Люксембург
д. 72, кв. 86.
Ясинку Алексею.
- 23 -
АЛФАВИТНЫЙ КАТАЛОГ И Г Р
СОДЕРЖАНИЕ ПОЛЕЙ:
1. Название программы (8 символов).
2. Номер диска, где находится программа.
3. Классификация программы :
L - лабиринты, 3 - трехмерные,
S - стрелялки, К - космические,
Н - ходилки, Т - текстовые,
G - гонки, А - адвентюрные,
Е - имитаторы, D - драки,
С - спортивные, М - менеджмент,
W - стратегические, Р - собиралки,
O - логические, Z - XONIX - подобные,
I - традиционные (карты, шахматы и т.д.)
ТТ - TETRIS - подобные, ВВ - BATTY - подобные.
Если программа не укладывается в одну из этих групп
классификации, то указывается две главных группы, соответствующие данной
программе. Например текстовые адвентюрные программы обозначаются
как "ТА", космические стрелялки - "KS" и т.д.
4. Особенности программы : + - игра толъко для компьютеров со 128к
ПРИМЕЧАНИЕ: Практически все игры скомпрессированы.. го есть на диск
помещается на 80% игр больше, чем если бы игры были нескомпресси-
рованы, что приблизительно в 1.7 раза уменьшает стоимость игры.
В среднем на диск помещается 18-20 игр для 48К, или 8-10 игр
для 128К, однако есть игры с дозагружаемыми уровнями, занимающие
половину диска или даже почти' весь диск (например LEMMINGS).
Для того, чтобы заказать игровые или системные программы,
необходимо на отдельном листе бумаги выписать из предлагаемого списка
названия интересующих вас игр и номера дисков. Например:
DIZZY 7 64
KUNG-FU 37
На этом же листе бумаги просим указать количество заказываемых
дисков, а также тип вашего компьютера с указанием объема памяти
(48 или 128 К).
007 SPY 19 GS ADVENT.D 65 ТА ATOM_ANT 03 Р BEVERLY 24 GS
10_FRAME 36 С AFIGHT 54 G ATV 54 G BTGN.USA 21 L
3DGRPRIX 20 3G AFRICA G 07 ТА AZTEC 32 ТА BILLYKID 21 CS
3DSNOOKE 39 С AFTER SH 32 ТА В.СОМ128 49 E + BIO. COM 55 HS
3D_KIT 20 3L AFTER128 59 DS + BADLANDS 58 G BISMARCK 33 WE
720 DEG 30 S AGENT-X 17 G BAGDAD 31 HP BLINKY'S 02 HP
= 180 = 47 С ALIENS 20 LS BALLGAME 28 3 BLOOD BR 41 HS
A.BEAST 18 HD ALIENS+2 45 S BARBAR.1 50 D BLOOD V 12 HS
A.RANGER 42 HS AMAUROTE 35 HS BARBAR.3 49 ID BMX 2 42 G
A.REFLEX 36 H AMC1 09 HS BASEBALL 44 С BMX FREE 42 G
A.SYNDR. 58 LS AMC2 09 HS BASIL 60 LO BOBBY 26 L
ACADEMY* 31 KE ANDROMED 65 ТА BASKET M 04 С BOBO 16 H
ACCOLADE 45 G + ANTIRIAD 35 LP BAT.1917 56 W BOBSLEI 42 С
ACE 2 19 S APB 05 G BATMAN 01 L BOMBJACK 60 L
ACE 2088 19 KS ARC 128 23 L + BATMAN 2 01 L BORED k. 07 ТА
ACEOFACE 29 E ARKAN128 59 BB + BATMAN 3 01 L BOULDER1 35 L
AD ASTRA 22 KS ARKANOID 37 BB BATTLE S 66 S BOULDER2 35 L
ADV.LAND 65 ТА ARKOS 1 06 S BATTY 19 BB BOULDER3 35 L
ADV.SOCC 57 M ARMAGED 35 WT BATTY 3+ 58 BB BOULDER4 35 L
ADVENT.1 65 ТА ARMY 128 51 S + BD-KIT 03 L BOJLDER5 29 L
ADVENT.A 65 ТА ARNHEM 56 W BEACH V. 20 С BOULDER6 29 L
ADVENT.В 65 ТА ATF 11 ES BEAST128 62 LD + BOXEO 14 D
ADVENT.С 65 ТА ATHENA+ 39 HS BENNY H. 41 H BRAT_ATT 04 H
- 24 -
АЛФАВИТНЫЙ КАТАЛОГ ИГР
BREAKER* 37 BB D.SIDE 20 3L ELITE 2 56 KS COVER 2 39 HS
BRIDGE 24 I D.STALK 08 LH ELITErus 56 KS G.PRIX 2 28 G
BROKEN H 54 HP D.WISH 3 26 HS ELITM128 11 KS + GAUNT. 2 22 LS
BRUCE L 14 LD DAMMATA 54 H EM.ISLE 65 ТА GEM.WING 17 GS
BTTF 1 22 HP DAN DARE 54 LS EMILIO F 52 С GENGHIS 32 H
BTTF III 51 HS + DANDARE3 44 LS EMLYN HU 57 С GHILL128 46 ТА +
BUBBLE 1 47 L DANDY 42 LS ENCYCL.W 08 W GHOST' NG 12 HS +
BUBBLE 2 44 L DARK 50 L END ZONE 56 M GLAURUNG 16 L
BUFFBILL 17 S DARK SC. 65 ТА ENDURO R 03 G GO-MOKU 29 I
BUGGY128 25 G + DEACTIV. 21 L ENFIEL 15 S GOLDEN_A 50 D
BUMPY128 59 L + DEAC_128 45 О + ENTERPRI 53 KS GOLF 2 58 E
BURATINO 22 LP DEATH R. 58 HS EQUINOX (5 LS GONZAL 1 27 H
BUSTERS2 13 S DEFENDER 38 W ERIC 128 59 L + GONZAL 2 03 HS
C.CARS 1 10 G DEFLEKTO 33 О ESCAPE 22 H GOODY 26 HL
C.CARS 2 03 G DENIZEN 30 LS + ESPADA_S 40 HP GOONIES 17 LO
C.CIRCUS 16 G + DES.RATS 45 W + EUROP128 66 С + GRAIL 12 ТА
С. DYNAMO 51 HP DESERT R 39 W EUROPE 15 W GREGORY 06 OS
C.FORCE+ 58 S DIZZY 1 36 HP EV CROWN 63 M GREMLINS 37 ТА
C.SHERIF 36 S DIZZY 2 09 HP + EVENING 28 E GRYZOR 55 S +
CAGE M. 42 D DIZZY 2 36 HP EVOLUTIO 02 S GUADAL 37 W
CARLOS S02G DIZZY 3 04 HP EXOLON 41 HS GUMMY 64 L
CASTLE M 48 3L DIZZY 4 04 HP EXPRESS+ 58 HS GUNSHIP+ 43 E +
CAULDR 2 22 L DIZZY 5 30 HP + EXTERMIN 48 3S + H.MAGIC 27 ТА
CEASEFIR 24 HP DIZZY 5 31 HP EYE 31 О H.QUEST 38 LW
CETI III 04 KE + DIZZY 6 30 HP + F-16 128 39 E + H.QUEST1 48 LW +
CHAM RUN 02 G DIZZY 6 01 HP F-19 FB. 14 E H.QUEST2 48 LW +
CHAPLIN 39 О DIZZY 7 64 HP F.BIKE 32 G H.STORM 50 L
CHASE HQ 05 G + DIZZY DR 20 G F.I.R.E. 25 KS H.U.R.G. 26 T
CHASEHQ2 05 G + DIZZY-X 56 HP F. SOCCER 52 С HAMMER 1 54 S
CHESMAST 39 I DIZZY-Y 64 HP F.YEAR1 57 С HAMMER 2 54 S
CHEVY CH 41 G + DIZZY6.5 39 HP F15 S.E. 44 ES HAMPSTEA 20 ТА
CHIRON 60 HS + DNAWARR 31 S FAIR 1 32 LP + HANG-ON1 35 G
CHRONOS 61 KS + DONALD 19 О FAIR II 32 LP + HANG-ON2 35 G
CIRCUS 03 С DONKEY К 58 L FARGO 06 S HATE 54 S
CIS.HEAT 46 G + DOOMD.R. 65 ТА FAST&FUR 29 S HE-MAN 07 Та
CO inUSA 12 LH DOWN 44 L FASTFOOD 42 LP HEAD-OH 54 LP
CLIFF K. 54 H DPBASKET 52 С FAT WORM 20 3L HEARTLND 08 LA
COBRA 42 HS DRACONUS 04 LH FERNANDE 42 HS HELTEDIT 35 H
COBRA F. 59 S DRAUGHT 26 I FEUD 128 59 LP + HELTER S 35 H
CODE THE 65 ТА DRILLER 20 3L FIREFLY 60 S HERCULES 24 D
COLUMNS 10 TT DRUID 47 L FIRELORD 27 LP HEROES 09 TD
COMBAT L 02 E DSPIRIT 25 S FIST 36 D HHAWK128 48 HP +
COMBAT S 38 С + DUB. DARE 37 T FIST 2 41 D HIGE128 61 S +
COMMANDO 47 HS DUCK OUT 43 H FIST 3 36 D HIGH ST. 06 H
CONQUEST 22 W DUET 64S FIZZ 01 LS HIGHWAY 36 HS
CORSAR 1 02 D DUNDARAC 26 ТА FL.SHARK 02 S HIGHWAY2 36 HS
CORSAR 2 02 D DUNGEON 65 ТА FLINSTON 10 L + HIJACK 07 ТА
CRIME 3. 60 A DURAK 29 I FM.MIDNI 65 ТА HOBBIT 07 ТА
CRUX'92 63 О DUSTIN 24 HP FOOTBALL 57 С HOBGOBLI 39 HS
CYBERN.l 47 S DYN.DAN2 53 LP FORMULA1 60 G HOSTAGES 12 HS
CYBERN.2 47 S E-LVEN W 01 HP FOTY2 57 M HOTSPEED 29 G
CYCLONE 26 E E-MOTION 29 P FOX F.B 29 HP HULK 07 ТА
CYRUS II 66 I + EARTH S. 19 L FR.LINE 61 S + HUMPHREY 54 H
C_COM128 62 E + EARTHLIG 11 3S FRUIT Ml 44 I HUNCH 1 03 ТА
D.DRAG-3 46 D + ECHELON 56 E + FRUIT M2 47 I HUNCH 2 03 ТА
D.DRAGON 05 D ELEPHANT 15 L G.ESCAPE 36 LP HUNCH 3 03 ТА
D.FUS128 45 S + ELIT3THD Ы KS + G.FORCE 36 S HUNDRA 21 HP
D.FUSION 60 S ELITE 19 KS G.OVER 1 39 HS HYDROFOL 47 L
- 25 -
АЛФАВИТНЫЙ КАТАЛОГ И Г Р
HYPABALL 42 L LINEFIRE 58 S MTCROSS 54 G POPEYE 54 HP
KYPSR A. 08 KG LIT-PUFF 01 HP MUGSY 57 M POPEYE 2 44 L
H_DRIVN+ 11 3G LIVSTON2 26 HP MUNSTERS 25 LP POPSTAR 40 P
I.MISS.2 58 LH LIVSTONE 26 HP MUTAN128 46 S + PCSTMAN1 30 G
I.T.E.N. 23 LS LMISSION 06 S MYTH 43 LP POSTMAN2 30 LH
ICE PAL. 44 HS LODE 128 23 L MYTH 128 59 LP + POTSWORT 64 L
ID 35 T LODERUN. 23 L N.MASACR 49 LS + POW.PLAY 21 T
IDSOCCER 52 С LODERUN2 19 LP NAPOLEON 29 W POWER B. 47 S
IKARI W. 36 HS LOP EARS 63 HP NARCOPOL 03 HS PPACK 11 HP
IMPOSSAM 55 HS LORNA 10 HD NATO 31 H PRESIDEN 58 W
INDIANA1 09 LH LOTUS T. 09 G NEBOLUS 06 OH PRISON_R 54 HS
INDIANA2 40 L M.BASKET 57 С NETHER E 05 WS PSI-CHES 28 I
INHERIT. 11 T M.D.BASK 62 С + NETHERWO 47 L PTT 01 С
INSIDE 53 L M.MINER1 44 L NEVEREND 02 ТА + PUB TRIV 37 T
IRON MAN 29 G M.MOUNT. 66 ТА NEWZELAN 35 LP PUFFY128 37 LS +
IRON SOL 39 HS M.MOUSE 30 H NIGHTMAR 13 HS PUZZNIC 03 О
IRONLORD 16 ТА M.UNITED 52 CM NIGHTRUN 53 OH PYRACURS 07 ТА
ITALY128 52 CM + MACH 3 02 S NIGHTSHI 10 О PYRAMID 22 S
0.BLADE2 13 HS MAD MIX2 23 L NINJA 36 D QARX 40 S
J.BLADE3 02 LS MADBALLS 50 P NINJA C. 47 D QUAZATRO 05 LS
J.BLADE4 02 LS MADMIX 1 41 L NIPPER 2 28 LP R-TYPE 04 KS
JAWS 35 L MAGIC S. 50 ТА NMGP 128 25 G + R-TYPE 2 04 KS
OONNY R2 56 W MAINBLOW 50 KS NODES128 23 LP < R.A.TIME 28 HP
JUDGE D. 60 L MALTESE 20 31 NORTH_S. 21 WS R. II.SHOW 32 HP +
JUNGLE_W 02 HP MANAG.49 47 M NOSFERAT 35 LP R.KILL.R 39 H
K.FORCE 10 D MANAGER 47 M O.B.R. 56 S R.MAN 40 HD
K.GRAIN 38 M MARAUDER 35 S О.HORMUZ 19 S R.PLEXAR 19 H
KAMIKADZ 17 S MARTHA 2 65 ТА OBLIT128 61 L + R.SPIKE 35 HS
KARATE+ 04 D MASK 2+ 60 S OBLITER. 02 LS R.T.G. 27 G
KARNOV 06 HS MATCH P. 36 С OCEAN CO 54 E RAIDERS2 53 KS
KAYLETH 66 ТА MATCHDAY 52 С + OLLI&L. 01 HP RAINBOW 12 L
KENNY_D 57 С MAXHEAD 35 HS OLLI&L.3 01 KP RAMBO 44 S
KFKNIGHT 54 HS MAZIMANI 25 L OP.GUNSH 30 S RAMPARTS 28 H
KILLED * 19 T MBIKE 10 G OR.GAMES 24 С + RASPUTIN 15 L f
KING QUE 44 ТА MEGABUKS 63 H OUT RUN 15 G RASTAN 14 HS
KING'S В 63 W MEGAXONI 51 Z OVERLORD 37 W RAW REC. 40 CS
KINGKONG 24 L MERCENAR 11 3S + OVLANDER 36 CS REAL GB 33 HS
KLAX 12 TT MERLIN 44 L P.B.I.F. 57 С REAPER 31 LD
KNIGHT 1 29 ТА MERMADN. 31 L P.DIZZY 10 TT REB.T128 61 SL +
KNIGHT 2 29 ТА METAL AR 36 LS P.DRIFT 09 G REBEL 1 38 W
KNIGHT T 20 ТА + MIAMI GT 33 G P.F.Y.L. 20 3C REBEL 1+ 38 W
KOSMOS 58 LP MIC.SOCC 57 С P.MANIA 13 О REBEL 2 38 W
KRAKOUT1 34 BB MICHEL 1 57 С P.SOCCER 52 С REBEL P. 07 ТА
KRAKOUT2 34 BB MICHEL 2 57 С PACLAND 11 HP RED MOON 07 ТА
KULE 17 О MICRONAU 28 3S PANAMA D 22 LH RED OCT. 23 S
KUNG-FU 37 D + MIDN.RES 10 HS PARISDAK 24 С REDHAWK 07 ТА
KWIKSNAX 19 L MIKIE 44 H PETRIS 39 TT RENEGAD3 47 D
L.NINJA2 21 3D MILLION 39 TO PF SIRIU 40 L RENEGADE 15 D +
L.RINGS1 31 ТА MINDSTON 37 ТА PHANTOM1 06 L REPTON 35 L
L.RINGS2 31 ТА MONACO 27 С PHANTOM2 06 L RET.EDEN 65 ТА
L.SQ.128 11 WL + MONOPOLY 33 I PHILEAS 11 S RET.0ED1 29 S
L.SQU-\D 38 WS MONTECAR 21 I PHOENIX 26 S REVENGE 57 M
L.VEGAS2 15 T MONTY R. 53 L PILOT128 59 КЗ + REVERSI 27 I
LED STOR 44 G MOCNWALK 16 HP PINGPONG 25 I RICK DAN 27 LH
LEGDEATH 11 W MORDOR 31 ТА PIXY 2 31 L RIСК128+ 12 HS +
LEMMINGS 18 О MOVIE 60 3L PLANETS 27 КО RIKOSPHE 39 О
LICENCE 01 S MP.SOCC+ 50 M PNEUMATI 24 LO RIPTOFF 24 L
LIGHT F. 22 KS MR. HELI 55 S POLE CH. 64 О ROB.SH.l 07 ТА
- 26 -
АЛФАВИТНЫЙ КАТАЛОГ И Г Р
R0B.SH.2 07 ТА SHORT С. 26 О + SUBWAY+ 53 D TURBOTUR 63 HS
ROB.SH.3 07 ТА SIDEWALK 24 ТА SUP.PIPE 42 О TURTLES 02 LD
ROBIN H. 3>- L SILENT S 33 E SUPER SM 30 P TURTLES2 55 D
rtOBIN SW 32 ТА SILKWORM 26 S SUPER T. 15 С + TUSKER 50 DL
ROBIN128 33 L + SIMCITY-r 11 OM SUPERMAN 63 S TWINZ 47 О
ROBOCOP 01 S SIMPSONS 64 H + SW. BLADE 34 HD TWIN_W. 08 HS
ROBOCOP2 05 HS + SKATE B. 01 CG T.DRINKS 29 OP TYPHOON 55 S
ROBOCOP3 51 HS + SKATE ED 28 CG T.ENGINE 23 L T_CHESS 39 I
ROBOZONE 53 HS SKATE KI 28 CG T.F.HOUR 07 W T_DOUBLE 57 M
ROCKFORD 05 L SKATEBAL 36 С T. MUTER 40 KS ULISES 01 HS
ROCKSTAR 53 M SK'TLL&CB 14 HD T. OUTRUN 34 G UNTOUCH 16 S
RODLAND+ 41 HP + SKY FOX 14 E T.RECALL 03 LD + URBAN UP 65 ТА
ROL.THUN 43 L SLAB AGE 26 LO TAI-PAN 19 LM URIDIUM 44 S
ROLLAROI 25 L SLAINE К 07 ТА TANIUM 61 KS + V 17 LH
ROLLER 60 S SLAP FIG 28 S TARGET R 51 D VIZ 43 H
ROOM TEN 22 3C SNARE 2 01 LO TASK FOR 50 S V. POKER 53 I
RTYPE128 61 KS + SNOW ST. 22 E TAU CETI 60 KE V.RUNNER 42 S
RUGBY 52 С SNOWBALL 66 ТА TBIRDS 1 32 HP VECTOR В 21 I
S FORTUN 66 LP SOKOBAN 03 О TBIRDS 2 32 HP VENDETTA 41 L
S-FIRE 02 S SOLOMON 54 LO TBIRDS 3 32 HP VENOM 15 HS +
S.BLOOD 07 TP SORCERER 08 W TBIRDS 4 32 HP VENTURAM 25 HP
S.BOOM 63 S SOVIET 28 S TCATS 17 LS VERA CRU 41 ТА
S.CRAZY2 34 CG SPACE H. 26 S TECHNO С 20 GS VIAJE AL 25 L
S.D.I. 24 KS SPELLBOU 20 ТА TECH_TED 31 L VIDEO P. 50 I
S.DOO 47 L SPHERIC 02 LO TEMPEST 29 S VIRUS 60 3S
S.DRAGON 33 KS + SPTD.MAN 65 ТА TENNIS 45 3C + VULCAN 45 W +
S.F.SAS 29 HS SPIRITS 44 L TERMIN- 2 15 GD + W.CAULDR 29 ТА
S.FIGHT 50 D SFLITTIN 36 P TERRAMEX 49 LP W.D.W.2 44 S
S.LEAGUE 52 M SPOOKED 06 LH TERRORPO 28 KS WAR GAME 31 W
S.MAGIC 14 LP SPY HUNT 17 GS TETR.2.R 04 TT WAR MACH 66 HS +
S.SOCCER 57 С SQUADRON 13 S TETRIf 1 36 TT WAR++ 60 S
S.TANK 25 S SSCRAMBL 2? G THANAIOS 20 S WARGAME1 56 W
S.U.PHOT 10 О ST.FOOTB 52 С THING 36 ТА WARGAME2 56 W
S.W.I.V. 46 S + ST.LORD2 54 HS THUNDER 44 S WARMIDLE 29 W
SABOTAGE 61 KS + STACK UP 37 TT TIEBREAK 29 I WC CHALL 52 M
SABOTEU2 15 LS + STALINGR 09 W TILT 44 L WC MANAG 57 M
SALAMAND 06 KS STAR PAW US + TINTIN 42 L WC RUGBY 52 С
SAMUR.TR 13 D STARGLID 34 KS + TIRNANOG 54 ТА WCLEADER 38 I
SAMURAI 56 W STARION 54 KS TITANIC2 05 P WCSOCC90 57 С
SANXION 26 KS STARSH.l 65 ТА TOM&JERY 43 HP WELLTRIS 27 TT
SAVAGE 1 06 HS STARSH.2 65 ТА TOMAHAWK 26 ES WERE.128 61 LP +
SAVAGE 2 06 LS STARSH.3 65 ТА TOOBIN 47 L WIZARD 63 L
SAVAGE 3 06 LS STEEL 36 HS TORNADO 26 S WLM 128 13 G +
SCOOTY&S 17 L STEG+ 66 LO T0TAL_E1 20 3L WORM 65 ТА
SCRAML.S 23 S STIFFL.l 11 ТА TOTAL_E2 11 3L WORM+ 65 ТА
3EAGLE++ 62 S STIFFL.2 43 ТА TOUR'91 49 G WULFAN 29 3L
SSX-TET 56 TT STLTH F. 62 E + TOURFORC 28 G WWF 48 D +
SEXMACHI 07 ТА STOCKCAR 24 G TOYOTA С 45 G + X-OUT 40 KS
SEYMOUR! 22 HP STONKERS 56 W TR.ISLND 36 L XARAX 02 S
SEYMOUR2 22 HP STORM BR 20 ТА + TRANS AM 35 G XENO 36 С
SF.COBRA 29 LS STORM LO 11 HS + TROLLEY 28 LP XENON 55 HS
SH.BEAST 27 H STORM2/1 03 HS TROOPER 30 D + XENOPHOB 08 HS
SHAD. 128 26 D + STORM2/>:: 03 HS TRUENO 1 21 L XEVIOUS 39 S
SHADOWFI 31 L STORM2/3 03 HS TRUENO 2 21 L XONIX128 61 Z +
SHARK128 61 S + STR.HAWK 37 S TRUX128 15 G + XOR 02 LO
SHERLOCK 07 ТА STREAKER 66 H TUAREG 42 L XYBOTS 44 HS
SHERLOCK 45 ТА + STRE2T_G 47 HD TUBE THE 17 KS YACHT R. 10 E
SHINOBI 53 HS STUNT CA 60 -1! TURBOCUP 30 G YETI 02 H
- 27 -
АЛФАВИТНЫЙ КАТАЛОГ ИГР
КАТАЛОГ СИСТЕМНЫХ ПРОГРАММ.
Для заказа системных программ на отдельном листе бумаги
необходимо выписать название программы и номер диска. На одном диске
помещается до 50 системных программ, исключая приведенные ниже
программы, каждая из которых занимает отдельный диск.
Текстовый редактор ZX-WORD 2.1.
Пакет программ для создания мультфильмов ANIMATION 2.0.
Англо-русский словарь 20.000 слов.
Русско-английский словарь 23.000 слов.
Музыкальный редактор INSTRUMENT 2.1. (128К)
Музыкальный редактор ASM 1.12 с описанием. (128К)
Сборник гороскопов.
Сборник музыки для музыкального процессора AMS 1.
Сборник музыки для музыкального процессора AMS 2.
Сборник из 49 оцифрованых мелодий для музыкального сопроцессора
Digital Player.
Список остальных системных программ:
* FUT! * 06 DISKVIEW 01 MCOPY128 03 SPEASY-d 04
-CAD= 02 DOCRACK 02 MEGA BAS 03 SPECK128 04
@-COMPR 0 3 DLC 2 03 MOABOOT 01 SPECMAC 04
@-CRACK 01 DOCTOR 01 MON 16 03 SPREDIT2 01
@-VIEW 01 DRIVER 02 MON 48 03 SP_SOUND 04
ADCOPY 05 DTC 2.3- 06 MONIT16 02 SRTTY89 03
ADM 7.08 02 EDITAS 02 MORSE 03 SSTV 03
ADS 2.0 01 EDITOR 06 MPROTEGT 01 STS2HELP 06
ADS 2.01 06 FCOMMAND 01 MiPr2.01 05 STS3.2' 06
ARTIST 03 FDU 2.02 01 NC 05 STUD128 01
ARTIST 2 01 FONGEN1 04 OMNICOPY Q2 SYS.TEST 02
ART_STUD 01 FORTH 02 ON5KN90 03 SpGnV3.0 02
ЬЕТА BAS 02 FP50 02 OSCYLOSK 02 T.COPY 01
BLAST 04 FP50 04 PASCAL D 03 TAPER 01
BLAST-1 04 G1FTU/TV 03 PC-128-T 03 TASM 2.0 05
Beta 3.1 04 GENS2ZXK 02 PCOPIER 01 TASM3.0- 06
С hisoft 04 GENS>T2 06 PCOPY+ 02 TDCCPY 01
CAT BANK 01 GR.BASIi 04 PH TOOLS 02 TEST 01
CAT.SAVE 01 GRAFH 02 PLATA V3 01 TFCOPY87 01
CATALOG 05 HC 3.04 05 POT 1.0 03 TFU2 03
CC 04 INDEX 04 PR.BANK 02 TLW+ rus 01
CONVER 02 IS vl.2 04 PRO-DOS 03 TLW4+ 03
CONVER 01 KSAiJOUND 06 PROLOG 04 TOBOS 04
CONVER R 01 LASER B. 03 RRESTORE 05 TOBOS-FP 04
COPY 86M 01 LAYOUT91 05 RTTY T/R 03 TPACK3/3 06
CW+RTTY1 03 LCY 02 SCP V3.1 05 VU-3D 03
CatBank+ 02 LERM-7 02 SCR.COM 01 WINDOWS 01
DAD 01 LISP 02 SCREENP 05 Z80 SM 02
DCU 2.21 01 LOCATE 1 03 SCRPR256 05 ZEUS 02
DCU 2.31 01 LOG2 0 3 SEARCHER 05 ZXASM2.4 06
15CU2.21M 03 LOGO 02 SOR.COPY 01 ZXUNZIPi 06
DEFORKAT 03 LZPAC4.5 02 SOUND 06 ZXUNZIPa 06
DELPHIN 04 LZPACK 01 SP.SOUND 04 ZXZIPs ! 06
DIAG 02 M.80X128 01 SP4SD 04
DISKNAME 01 MAGIK 01 SPCSOUND 03
YOGI 128 59 H + ZENDOS 07 ТА
YOGI BE. 53 HP ZOLYX 36 Z
YOUNG O. 32 LP ZOMBI 16 LP
ZOMBI128 62 LO + ZYDEX 44 S
ZUB 13 S ZYTHUM 44 HS
ZULU WAR 56 W ZZZZ 07 ТА
28
НАША РЕКЛАМА
10.06.1995.
1.0$ = 160000 КРБ.
Цены на литературу »федлагаемую 000 BIB
Журнал зарегистрирован Госкомиздатом Украины 31.05.1994
Свидетельство КЗ 648 Почтовый индекс 74212
(С) BIB Ltd Днепропетровск 1995
1. 30 часов БЕЙСИКА для начинающих 1.4$ - 224000 КРБ.
2. Языки программирования 1.4$ - 224000 КРБ.
3. Программирование в машинных кодах 1.0$ - 160000 КРБ.
4. TR-DOS для профессионалов и любителей 0.5$ - 80000 КРБ.
5. ZX-ФopyM-l 1.8$ 238000 КРБ.
6. ZX-ФopyM-2 2.4$ - 384000 КРБ.
7. Периферия своими руками 1.4$ - 224000 КРБ.
8. Элементарная графика 1.4$ - 224000 КРБ.
9. Прикладная графика 1.4$ - 224000 КРБ.
10. Динамическая графика 2.4$ - 284000 КРБ.
11. Игры на Бейсике своими руками 1.4$ - 224000 КРБ.
12. Сборник ZX-Ревю 91 2.2$ - 352000 КРБ.
13. Сборник ZX-Ревю 92 2.2$ - 352000 КРБ.
14. Сборник ZX-Ревю 93 1.8$ - 2R3000 КРБ.
15. Сборник ZX-Ревю 94 (вкл. N6 Москва) 3.0$ - 480000 КРБ.
16. ZX-Ревю Москва N6 1994г. 1.0$ - 160000 КРБ.
17 Диалекты Бейсика i.2$ - 19200G КРБ.
18. ZX-Spectrum для пользователей и программистов 1.2$ - 192000 КРБ.
19. Адаптация программ к системе TR-DOS 0.5$ - 80000 КРБ.
20. 8 выпуск Сборник 500 игр 2.0$ - 320000 КРБ.
21. 1-й номер ZXPeвю Москва 1.2$ - 192000 КРБ.
22. 2-й номер ZXPeвю Москва 1.2$ - 1S2000 КРБ.
23. Адвентюрные игоы 1.5$ - 240000 КРБ.
24. TRICKS номер первый 2.0$ - 320000 КРБ.
25. TRICKS номер второй 2.0$ - 320000 КРБ.
26. В.В Луговой Игровые приключенческие программы
англо-русский русско-английский словарь 1.6$ - 240000 КРБ.
Подписка на журнал ZX-Ревю УКРАИНА 1-е пол.1995г. 1.5$ - 24000С КРБ.
Подписка на журнал ZX-Ревю УКРАИНА 2-е пол.1995г. 2.2$ - 354000 КРБ.
i. Электронный журнал SPECTROFON i-10 номера по 1.0$ - 160000 КРБ.
(номера содержат каталоги игрового и системного програьмного
обеспечения, которое мы распространяем на дискетах).
2. Операционная система IS-D0S (базовый набор 1.1$ - 176000 КРБ.
программ и утилит. Версия 5.0)
3. Язык программирования FORTH под IS-DOS 1.0$ - 160000 КРБ.
(содержит краткое описание языка)
4. Игровые и системные программы на дискетах 1.0$ - 160000 КРБ.
(каталог и этом номере)
ВНИИАНИЕ ! К СТОИМОСТИ ЗАКАЗА НЕОБХОДИМО ПРИБАВИТЬ 30000 КРБ. НА
ПОЧТОВЫЕ РАСХОДЫ
ЭТО ВЫЗВАНО С УВЕЛИЧЕНИЕМ В 10 РАЗ С 1-ГО ИЮЛЯ 1995 ГОДА ПОЧТОВЫХ
ТАРИФОВ. МЫ НЕ В СОСТОЯНИИ КОМПЕНСИРОВАТЬ ЕЕ НЕМНОГО ЗАВЫШЕННЫМ КУРСОМ
ДОЛЛАРА. ПРИНОСИМ ВАМ СВОИ ИЗВИНЕНИЯ.