SNA — различия между версиями
Zxdn (обсуждение | вклад) (Новая: '''SNA''' ('''*.sna''') - формат для сохранения состояния эмулируемого ZX Spectrum 48K или 128K. Вероятно, был разраб...) |
Zxdn (обсуждение | вклад) |
||
Строка 43: | Строка 43: | ||
|27 | |27 | ||
|49152 | |49152 | ||
− | |Содержимое ОЗУ по адресам 16384.. | + | |Содержимое ОЗУ по адресам 16384..65535 |
|} | |} | ||
== Версия для 128K == | == Версия для 128K == | ||
+ | Файл имеет размер 131103 или 147487 байт. Содержимое текущего выбранного банка ОЗУ сохраняется в любом случае, даже если это банк 2 или 5 - в этом случае соответствующий банк хранится в файле дважды. Банки в конце файла сохраняются в порядке возрастания номеров, но только если они не сохранены в первой части файла. Например, если в первой части файла сохранены банки 5, 2 и 4 - в конце файла должны быть сохранены банки 0, 1, 3, 6 и 7; если в первой части сохранены банки 5, 2 и 5 - в конце файла должны находится банки 0, 1, 3, 4, 6 и 7. | ||
+ | {| class="standard" | ||
+ | !Смещение | ||
+ | !Размер | ||
+ | !Назначение | ||
+ | |- | ||
+ | |0 | ||
+ | |27 | ||
+ | |Соответствует версии для 48K | ||
+ | |- | ||
+ | |27 | ||
+ | |16384 | ||
+ | |Содержимое 5 банка ОЗУ | ||
+ | |- | ||
+ | |16411 | ||
+ | |16384 | ||
+ | |Содержимое 2 банка ОЗУ | ||
+ | |- | ||
+ | |32795 | ||
+ | |16384 | ||
+ | |Содержимое текущего банка ОЗУ, отображаемого в адресах 49152..65535 | ||
+ | |- | ||
+ | |49179 | ||
+ | |2 | ||
+ | |Регистровая пара PC | ||
+ | |- | ||
+ | |49181 | ||
+ | |1 | ||
+ | |Состояние порта [[Порт 7FFD|#7FFD]] | ||
+ | |- | ||
+ | |49182 | ||
+ | |1 | ||
+ | |Выбор ПЗУ [[TR-DOS]] (0 - неактивно, 1 - активно) | ||
+ | |- | ||
+ | |49183 | ||
+ | |16384*n | ||
+ | |Оставшиеся банки ОЗУ в порядке возрастания номеров | ||
+ | |} | ||
[[Категория:Форматы файлов]] | [[Категория:Форматы файлов]] |
Версия 20:45, 31 марта 2008
SNA (*.sna) - формат для сохранения состояния эмулируемого ZX Spectrum 48K или 128K. Вероятно, был разработан автором эмулятора Spectrum (Rui Ribeiro?). В настоящее время поддерживается большинством эмуляторов.
Исходная версия формата, предназначенная для сохранения состояния только 48K компьютеров, имела недостаток - регистр PC сохранялся на стеке эмулируемого компьютера, таким образом изменяя содержимое двух байт ОЗУ. В версии формата для 128K компьютеров этот недостаток был устранён.
Версия для 48K
Смещение | Размер | Назначение |
---|---|---|
0 | 1 | Регистр I |
1 | 8 | Альтернативные регистровые пары HL, DE, BC, AF |
9 | 10 | Основные регистровые пары HL, DE, BC и пары IY, IX |
19 | 1 | Флаги прерываний. Бит 2 содержит состояние IFF2 (сброшен при DI, установлен при EI) |
20 | 1 | Регистр R |
21 | 4 | Регистровые пары AF, SP |
25 | 1 | Режим прерываний (0..2) |
26 | 1 | Цвет бордюра (0..7) |
27 | 49152 | Содержимое ОЗУ по адресам 16384..65535 |
Версия для 128K
Файл имеет размер 131103 или 147487 байт. Содержимое текущего выбранного банка ОЗУ сохраняется в любом случае, даже если это банк 2 или 5 - в этом случае соответствующий банк хранится в файле дважды. Банки в конце файла сохраняются в порядке возрастания номеров, но только если они не сохранены в первой части файла. Например, если в первой части файла сохранены банки 5, 2 и 4 - в конце файла должны быть сохранены банки 0, 1, 3, 6 и 7; если в первой части сохранены банки 5, 2 и 5 - в конце файла должны находится банки 0, 1, 3, 4, 6 и 7.
Смещение | Размер | Назначение |
---|---|---|
0 | 27 | Соответствует версии для 48K |
27 | 16384 | Содержимое 5 банка ОЗУ |
16411 | 16384 | Содержимое 2 банка ОЗУ |
32795 | 16384 | Содержимое текущего банка ОЗУ, отображаемого в адресах 49152..65535 |
49179 | 2 | Регистровая пара PC |
49181 | 1 | Состояние порта #7FFD |
49182 | 1 | Выбор ПЗУ TR-DOS (0 - неактивно, 1 - активно) |
49183 | 16384*n | Оставшиеся банки ОЗУ в порядке возрастания номеров |