Связь с администрацией сайта:       

demo

Среди толпы я одинок

Administrator

Administrator

10.1 V1-V2 только клавиатура.
В версии 1 и 2, команды игрока могут быть сделаны только с клавиатуры.
10.2 Входные потоки
В версии 3 и более поздних, нажатия клавиш игрока черпаются из текущего "входного потока"(input stream). Есть два входных потока: пронумерованных от 0 (клавиатура) и 1 (файл, содержащий команды). Другие входы (щелчков мыши или пункты меню), если таковые имеются, также реализованы в виде нажатий (смотри ниже).
 

9. Звуковые эффекты в Z-машине

Пятница, 04 Август 2017 08:00
Некоторые игры, начиная с версии 3, начали использовать звуковые эффекты. Они не хранятся в сюжетных файлах (или Z-машины), а интерпретатор просто должен знать, где найти их. Другие игры имеют только один звуковой эффект, годный к употреблению в гораздо более ограниченном варианте: звуковой сигнал или звук, который мы будем называть "бип".
9.1.1
В версии 6, интерпретатор должен установить бит 5 'Flags 1', если он может обеспечить звуковые эффекты, то есть делаем предупреждение.
9.1.2
В версии 5 и более поздних версиях игра должна иметь бит 7 'Flags 2', установленных в его сюжетной файл, если он хочет использовать звуковые эффекты. Интерпретатор должен затем очистить этот бит, если он не обязателен.
 

8. Модель экрана в Z-машине

Понедельник, 31 Июль 2017 09:00
Текст может быть напечатан любым шрифтом интерпретатора, по выбору, с переменным или фиксированным шагом: за исключением того, что, когда бит 1 'Flags 2 " устанавливается в заголовке и шрифт 4 был выбран, или когда стиль текста был установлен Fixed Pitch, то необходимо использовать фиксированные шаги шрифта. С фиксированным шагом – это бит в устаревших версиях 5 и более поздних, а также поддержка интерпретатора не является обязательным в версии 6.
 
7.1 Выходные потоки
В любой момент времени текст выводится через выбор "выходных потоков" (output streams).
7.1.1
Два выходных потока являются общими для всех версий: номер 1 (экран) и 2 (игра стенограммы, как правило, выводимого на принтер или в файл).
7.1.1.1
В версиях от 1 до 5, вход игрока на чтение опкодом, должно быть вторичным выходных потоков 1 и 2 (если поток 2 активен), так что текст набран и появляется в любом транскрипте. В версии 6 вход должен быть присвоен только потоку 1.
 
6.1
"Состояние игры" определяется как следующее:
- содержимое динамической памяти; 
- содержимое стека; 
- значение счетчика программы (PC), и "вызов процедуры" (то есть, цепочка процедур, которые вызывали друг друга в определенной последовательности, передавая значения своих локальных переменных). Обратите внимание, что процедура «состояние вызова», стек и ПК должны быть сохранены за пределами карты памяти Z-машины, в собственной памяти интерпретатора.
 
 5.1 Начальная позиция
Процедура, требуется, чтобы начать программу по адресу в памяти, которая может быть представлена ​​в переполненном адресе (например, в версии 5 оно должно происходить в адресе байта, который делится на 4).
5.2 Заголовок
Подпрограмма начинается с одного байта с указанием количества локальных переменных (от 0 до 15 включительно).
 
We do but teach bloody instructions
Which, being taught, return to plague th' inventor
Shakespeare, Macbeth
4.1 Инструкции
Одна команда Z-машины состоит из следующих разделов (в указанном порядке):
  Opcode 1 или 2 байта
  (типы операндов) 1 или 2 байта: 4 или 8 2-битовых полей
  операнды между 0 и 8 из них: каждый 1 или 2 байта
  (изменяемый) 1 байт
  (Branch offset) 1 или 2 байта
  (Текст для печати) кодированные строки (неограниченной длины)
Разделяющие квадратные скобки не присутствуют во всех Opcode. (Некоторые Opcode принимают как " Store " и " Branch ".)
 
Этот метод аналогичен пятибитному коду Baudot, который был использован вначале телетайпами, прежде чем был изобретен ASCII.
Marc S. Blank и S. W. Galley, как уместить большую программу в небольшой машине
 

2. Числа и арифметика Z-машины

Понедельник, 13 Март 2017 10:00
В Z-машине, номера обычно хранится в 2 байтах (в виде наиболее значащего байта, а затем младшего по статусу) и удерживать любое значение в диапазоне от $0000 до $FFFF ( от 0 до 65535 в десятичных числах).
Эти значения иногда рассматривают как знаковыми, в диапазоне от -32768 до 32767. Эффективно -n хранить в виде 65536 -n и поэтому верхний бит является знаковым битом.
2.2.1
Операции численного сравнения, умножение, сложение, вычитание, деление, остаток после разделения и печати чисел. Побитовые операции без знаков. (В частности, так как сравнение подписано, это небезопасно для сравнения двух адресов с использованием JL и JG)
 

1. Карта памяти Z-машины

Понедельник, 13 Март 2017 09:00
1.1 Области памяти
Карта памяти Z-машины представляет собой массив байтов с "байт адресом" работает от 0 вверх. Разделено на три области: "динамический", "статический" и "высокий".  Динамическая память начинается с байта адреса $00000 и работает от байта до байта адреса, хранящегося в слове на $0e в заголовке. (Динамическая память должна содержать по крайней мере 64 байта.) Статическая память немедленно следует далее. Его длительность не определена в заголовке (или в другом месте), хотя она должна закончиться на последнем байте сюжетного файла или с помощью байта адреса $0ffff (в зависимости от того, что меньше). Высокая память начинается с "отметки уровня памяти"( high memory mark) (адрес байта хранится в слове на $04 в заголовке) и продолжается до конца файла рассказа. В нижней части верхней памяти может перекрываться с верхней части статической памяти (но не с динамической памяти).