ZX Spectrum
Game

Play

Your Computer (Великобритания),

Автор:

Жанр: Утилиты: Ввод-вывод


Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один

Доступные версии

Неофициальное издание
Играть!

Доступные версии

Неофициальное издание
Играть!
  •  Описание (авт.пер.)
  •  Информация
Описание Play (автоматический перевод)

Открытие, закрытие

          Есть две команды, по вашему Spectrum             которые являются для одной только Microdrive.               Ричард Тейлор говорит: “Ну и что?”

Субъект полностью пренебречь в Sinclair ZX Spectrum руководство по программированию является работа открытого # и ЗАКРЫТЬ # команды. Синклер утверждает, что эти команды предназначен для использования с ее Microdrive. Большая часть их власти, Однако, может быть реализован без Microdrive. Для чете только наличие неиспользованный власть я включаю, в качестве примера, подпрограмма, которая будет эмулировать команду Play нашли в одном или иной форме на большинстве компьютеров с звуком генераторы. Это избавит вас от затрат времени работу по конверсии ка музыка в сложных десятичных чисел, необходимых А слабый команда СИГНАЛ Синклера.

  То, каким образом ваша Спектр общался с Устройства в окружающем мире, а именно экран, клавиатура и принтер, является сложным, но чрезвычайно мощный. От страница 165 Основного руководства вы найдете allot- памяти ние называется информационного пространства канала, зажатой между системных переменных и Основного программной области в Карта памяти.

  Эта область содержит информацию о ввода / вывода устройства, подключенные к системе. В этом разделе памяти может быть разбиваются на более мелкие единицы, каждая единица проведения инфор- ция о конкретном устройстве ввода / вывода. Это называется канал.

  Спектр имеет четыре канала, обозначается S, P, K и R. Канал S является сокращением для экрана и, как вы было бы ожидать, обрабатывает выходные данные на дисплее. Канал P стоит для принтера и обрабатывает выход данного устройства, если подключен. Если вы не являетесь владельцем принтера затем эту инфор ция по-прежнему сохраняется, но, очевидно, не используется. Канал K выступает за клавиатурой, но обрабатывает ввод и вывод. Это Входы с клавиатуры, но также выводит на дно экран. Это область, где линии вводятся и отредактированы.

  Канал R не напрямую доступными для пользователя, так как используется Spectrum для своих внутренних целей. Сейчас вот где мощный бит входит. Например, когда вы используете команду PRINT выход проходит через канал S к основной части экрана. Вы можете, однако, изменение их поведение путем осторожного использования командой # ОТКРЫТО которые может сделать его выход пройти любой другой канал.

  В дополнение к каналам есть вещи, называемые потоки которые связаны с конкретным каналом. Есть 16 потоки, каждый из которых представлен уникальным числом от 0 до 15 включительно. При использовании PRINT командовать свою продукцию проходит через поток 2, который направляет ее в сторону канала S. Хитрость заключается в том, чтобы сделать поток 2 пункт на другой канал, не направлять S. Это где # команда ОТКРЫТЬ входит.

  Эта инструкция имеет два аргумента, первый числовой а второй тип строка. Первый говорит компьютер, какой поток вы изменяете и последняя дает один символ аббревиатуру канала вы хочу что поток в succeedingly точку. Например, Тип:         ОТКРЫТОЕ # 2, “к”   Это сделает весь вывод операторы печати через канал K в нижней части экрана. Теперь, чтобы проверить этот тип:         PRINT “привет”: Пауза 0   Команда PAUSE 0 предотвращает выработку ошибки Отчет пока вы не нажмете клавишу, как это бы сразу уничтожить печать. Вы также найдете, что список Кроме того, команда использует поток 2 так он пытается перечислить программу в нижней части экрана, но это не осо бенно успешно. Владельцы принтера может оказаться полезным, чтобы написать программы принтера с выходом изначально собирался экране в то же время, используя LPRINT или LLIST команды, введя:         ОТКРЫТОЕ # 3, “S” Поток 3 аналогично указывает на канал P и используется LPRINT и LLIST. Когда вы уверены, что программа является отлажен можно ввести: –         ОТКРЫТОЕ # 3, “р”   Это будет вернуться поток 3 в норму. Это полезная техника, поскольку это экономит много времени и Принтер бумаги. В переключателя на, только четыре из 16 потоков используются или открыт.

      Поток 0 # 0 Очки для канала K       Поток 1 # 1 Очки для канала K       Поток 2 # 2 Очки для канала S       Поток 3 # 3 Очки для канала P   Операционная Спектр Система защищена от вашего нарушая путь, в котором редактор работает – рутину который позволяет вводить и редактировать линии в программе – и автоматическая Листер. То, что делается для потоков, автоматические списки появятся в основной части Экран и линии будут введены или отредактировать с помощью клавиатуры В нижней части экрана. Поток, который не делает Точка на любой канал вообще называется закрытым.

 Закрытие потока

Один числовой аргумент тесной # командования обозначает

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

  Например, в последнем примере, вместо того, чтобы печатать         ОТКРЫТОЕ # 3, “р” Вы могли бы просто набрали         ЗАКРЫТЬ # 3 что, безусловно, гораздо аккуратнее способ. В PRINT, LPRINT, СПИСОК, LLIST, INPUT и INKEY $ команды вы можете изменить Поток, который используется командой. Например, PRINT обычно выводит на поток 2, его поток по умолчанию. Если вас Тип:         PRINT # 0; “Hello”: Пауза 0 это будет выполнять ту же функцию, что и в первом примере сделал. Хэш – # – символ указывает на компьютер, Вы хотите изменить поток, и должно сопровождаться целое значение от 0 до 15 включительно. Опять же, PAUSE 0, чтобы предотвратить слово быть немедленно уничтожены по производству отчета об ошибке. Печать в потоке 0 дает вам доступ к ранее запретил ниже два строки дисплея. LPRINT # 2 такая же, как PRINT и PRINT # 3 является таким же, как LPRINT.

  Вы не можете использовать потоки, которые закрыты; то есть,         PRINT # 12; “” будет производить ошибку “O Неверный поток”. Вы можете, однако, легко открыть их с помощью ОТКРЫВАТЬ # о. ВХОД команда использует по умолчанию значение 0. потоке Хотя возможно чтобы изменить поток, используемый этой командой, только поток указывая на канале K может быть использован. Любое другое не позволяет ввода с клавиатуры, которая, очевидно, важно. Если Вы попробуйте, потом об ошибке “устройство J Неверный I / O” будет Результат. INKEY $ работает аналогичным образом.

  Как вы можете видеть, использование потоков в I O заявления /, в ОТКРЫТОЕ # команда и ЗАКРЫТЬ # очень poswerful. Возможно Самое полезное, что есть возможность для создания новых каналов и сделать ранее неиспользуемые потоки указывают на них. Это Метод, используемый в примере воспроизведения.

  Машина код Play проводится в линии 1 РЗМ в государственной ния. Это необычно, так как большинство машина Спектр код сохраняется выше RAMTOP но это требует другой Версия для каждого размера памяти машины. Храня машинный код в REM заявлении эта проблема устранена и так эта программа будет работать на обеих машинах 16К и 48К. [Это также означает, что эта процедура зависит от расположения программа в памяти и, следовательно, не очень хорошо работает с Интерфейс 1, но так как это портит о с потоками, что комбинация, вероятно, не был бы надежным в любом случае.] [Это сопровождалось двумя пунктами, объясняющих, как вводить и отлаживать процедуру. Ничего из этого не было особенно исключительным, так я опустил код загрузчика и память Принтер, и только при условии, что в результате REM о однострочник – это на TZX как “Play”. Вернемся к статья, где он начинается, описывающий его использование:]   Для инициализации нового канала А         RANDOMIZE USR 23829 инструкция необходима в начале любой программы который использует Play. Теперь каждый печати через поток 4 – Печать # 4 – подпрограмма Play будет называться. Он ожидает, строка символов, описывающих мелодию для воспроизведения. Это, главным образом, состоит из нот, представленных букв в г. Это, как и другие параметры, могут быть в верхней или нижний регистр, это не имеет значения. Если вы хотите играть в острый обратите внимание, то перед соответствующую ноту с хэш ха- тер, например:          RANDOMIZE USR 23829: PRINT # 4; “# б” Это играет острый, а затем В. Можно изменить октаву путем включения восклицательный знак после чего число от 0 до 9. Ближнем C – в лице ряда 0 в команде звук – это в октаве 5. Только среднего немногие октавы никакой пользы для создания музыки, а остальные так низко по частоте, что вы можете услышать отдельные щелчки или так высоко, что они вряд ли могут быть услышаны на всех. Длительность ние нот контролируется символом звездочка, Также следует ряд от 0 до 9, так как есть

10 определяемых продолжительность. Они определяются как в таблице 1.

 Таблица 1.

 Продолжительность число Длина (секунд)

        0 0,05         1 0.1         2 0.2         3 0,25         4 0.3         5 0,5         6 0,75         7 1         8 1.5

        9 2

  Вы можете изменить эти длительности, если вы хотите, используя

Короткая программа приведена в листинге 4 [и на TZX, в том числе Играть REM заявление, как “длительности”]. Это будет первый запросит числа длительность – от 0 до 9 – Вы хотите изменить. Вам будет предложено ввести новый срок Значение в секундах. Все, начиная от 0 до 10 является законным.   После использования RANDOMIZE USR 23829, число октава установлен в 5, центральной октавы. Продолжительность установлен на 4, который первоначально 0,3 секунды. Примером рутинных годов Использование дается в листинге 5 [который находится на TZX как “Demo”].   Вы увидите, что машинный код REM заявление будет лишь частично перечислить, а затем остановить, предотвращая остальные перечисление. Чтобы обойти эту проблему, типа:           POKE 23660,10 и не намеренно пытаются перечислить первую линию.

  Информация для каждого канала занимает пять байтов. Первые два байта сказать компьютеру адрес рутина, что канал должен использовать для вывода. Это нормально указывает на рутину в ПЗУ. Следующие два байта указывают на адрес подпрограммы, используемой для ввода. Во всех, кроме канала К это указывает на функцию, которая будет производить ошибке J. в систему канал K, однако, это указывает на функцию, которая расчетах нажата рует какой ключ. Остальные байт код символа, который представляет этот канал.

Программа 6 [“каналы” на TZX] печатает информацию о всех четыре канала.

 Выходные обычные адреса

Обратите внимание, как каналы K, S и P имеют одинаковый выход

подпрограмма адрес. [Нет, программа на самом деле не для печати эта информация.] Разница между каждого канала показано флагами, в системных переменных, которые заболе- oned определенным образом для каждого отдельного канала. После все, вывода на двух половинах экрана или в Принтер очень похож на несколько мелких деталей, за исключением. Поток информации проводится в системных переменных между Места 23568 и 23605 включительно.

  Каждый поток занимает два байта. Так как существует 16 потоков можно было бы ожидать в этой области, чтобы быть длиной 32 байт, но вместо этого он 38 байт. Это потому, что есть три дополнительных потоков, которые не доступны для пользователя, но используются редактором и автоматических процедур листинга чтобы убедиться, что их продукция идет в нужном месте.   В любом случае, каждый из этих двух байтов содержит относительный смещение, от байта перед информации канала Область, к каналу, который должен быть использован. Если смещение ния равен 0, то поток закрывается. Спектакль рутинных работ путем создания пять байтов информации для нового канала как раз в начале REM сообщении. Это сделано, чтобы быть, на который указывает поток 4.

  Компьютер невольно думает, что это просто печать к обычному каналу в надлежащей информационной области.

Перспективы применения этого очень мощный.

Краткая информация о Play

Для игры в Play не нужны эмуляторы. Программа для работы с вводом и выводом, которую подарил миру Richard Taylor, была издана компанией Your Computer в 1984 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

  • x1
  • x2
  • x3

Кликни в окно эмулятора, чтобы управлять!
<<<<

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Поделиться
Close
0
Would love your thoughts, please comment.x