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

demo

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

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

Оглавление

1.1 Области памяти
Карта памяти Z-машины представляет собой массив байтов с "байт адресом" работает от 0 вверх. Разделено на три области: "динамический", "статический" и "высокий".  Динамическая память начинается с байта адреса $00000 и работает от байта до байта адреса, хранящегося в слове на $0e в заголовке. (Динамическая память должна содержать по крайней мере 64 байта.) Статическая память немедленно следует далее. Его длительность не определена в заголовке (или в другом месте), хотя она должна закончиться на последнем байте сюжетного файла или с помощью байта адреса $0ffff (в зависимости от того, что меньше). Высокая память начинается с "отметки уровня памяти"( high memory mark) (адрес байта хранится в слове на $04 в заголовке) и продолжается до конца файла рассказа. В нижней части верхней памяти может перекрываться с верхней части статической памяти (но не с динамической памяти).
 
1.1.1
Динамическая память может быть записана или считана (либо непосредственно, используя loadb , loadw , storeb и storew , или косвенно opcode, таких как insert_obj и remove_obj ).
1.1.1.1
По традиции, первые 64 байта известны как "заголовок". Содержание этого приведены ниже, но обратите внимание, что игры не разрешают изменять количество битов внутри него.
1.1.1.2
Это стандарт для игры, чтобы изменить любую из таблиц, хранящихся в динамической памяти в заголовке, при условии, что таблицы в исходном виде.
1.1.2
Статическую память можно считывать с помощью Opcodes(Опкодов) loadb и loadw . Но не по стандарту для игры пытаться что-то записывать в статической памяти.
1.1.3
Для этого (возможно) пересекается со статической памятью. За исключением случаев, с увеличенным объемом памяти, они не могут быть непосредственно доступны для всех с помощью игровой программы. Он содержит процедуры, которые могут быть вызваны и строки, которые могут быть распечатаны с помощью print_paddr .
1.1.4
Максимально допустимая длина сюжетного файла зависит от версии, следующим образом:
    V1-3  V4-5  V6-8
     128     256     512
Есть три вида адреса в Z-машине, все из которых могут быть сохранены в ряде 2-х байт: байт адреса, адреса слов и упакованные адреса.
1.2.1
Адрес байта указывает байт в памяти в диапазоне от 0 до последнего байта статической памяти.
1.2.2
Слово адрес указывает даже адрес в нижней памяти 128К (давая адрес, деленное на 2). (Адреса слова используются только в таблице сокращений.)
1.2.3
*** [1.0] Упакованный адрес определяет, где подпрограмма или строка начинается в верхней памяти. Учитывая упаковочный адрес P, формула для получения соответствующего байта адреса B является:
  2P           Версии 1, 2 и 3
  4P           Версии 4 и 5
  4P + 8R_O    Версии 6 и 7, for routine calls
  4P + 8S_O    Версии 6 и 7, для print_paddr
  8P           Version 8
 R_O и S_O являются обычными и строками Коррекции (указанные в заголовке в виде слов в $28 и $2a , соответственно).

Карта памяти на примере небольшой игры

Динамический

00000

заголовок

 

00040

аббревиатура строки

 

00042

сокращение таблицы

 

00102

свойства по умолчанию

 

00140

объекты

 

002f0

описания объектов и свойств

 

006e3

глобальные переменные

 

008c3

массивы

Статический

00b48

таблица грамматики

 

010a7

таблица действий

 

01153

таблица для совершения действий

 

01201

таблица «прилагательные»

 

0124d

словарь

Высокий

01a0a

Z-код

 

05d56

статические строки

 

06ae6

конец файла

 

Пред. След. »

Rate this item
(0 votes)
Login to post comments