User Tag List

Показано с 1 по 6 из 6

Тема: загрузка файлов SNA-128

  1. #1

    Регистрация
    11.08.2020
    Адрес
    г. Одинцово
    Сообщений
    95
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию загрузка файлов SNA-128

    Подскажите плиз, как правильнее восстанавливать регистры для файлов в формате SNA-128 в железном ZX с Z80 на борту (не FPGA или эмуль!). Для SNA-48 все ясно, хидер из 27 байт впереди файла содержит регистры Z80 и прочие настройки. Но в SNA-128 добавлены еще 4 байта: PC (2), port 0x7ffd setting (1), TR-DOS rom paged (1). Вот насчет PC у меня вопрос...
    Насколько я знаю, Z80 не умеет загружать PC напрямую (в отличии от эмулей и FPGA) - надо использовать SP и команды ret/retn. Но тогда выходит что это лишняя сущность: PC и так загружается корректно без этих 2 байт по первому хидеру (там есть SP, а сам адрес в дампе памяти). Я проверил - вроде работает и без PC, но возникает вопрос: как сделать правильнее, чтобы избежать возможных глюков? Вообще зачем он?
    Если можно то черкните кусок кода для этого.
    Спасибо!

    Описание форматов брал отсюда:
    https://worldofspectrum.org/faq/reference/formats.htm

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в программах иногда используют стек не совсем по назначению (для быстрого переноса данных)
    и если ты сделаешь sna48 (в этот момент) то эти данные запорются.
    .............
    а где предполагается хранить значения регистров и кусок кода для их установки ?

  4. #3

    Регистрация
    11.08.2020
    Адрес
    г. Одинцово
    Сообщений
    95
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy Посмотреть сообщение
    в программах иногда используют стек не совсем по назначению (для быстрого переноса данных)
    и если ты сделаешь sna48 (в этот момент) то эти данные запорются.
    Про это в курсе, но снимок делаю эмулем (а он просто срисовывает регистры и дамп памяти). К тому же снятые снапы проверяю. Но повторюсь, вопрос про формат sna-128. Зачем там кроме SP (и его содержимого в дампе памяти), добавили содержимое регистра PC? В чем смысл? Восстановление/загрузка PC возможна лишь через ret/retn, а значит через SP. Просто избыточные данные? Но как лучше действовать? Восстанавливать значение из первого хидера +дамп или второго (что явно дольше и как то ... коряво)?
    .............
    а где предполагается хранить значения регистров и кусок кода для их установки ?
    С этим проблем нет. Теневая область ОЗУ (лишняя память), которая на время операции открывается на месте ПЗУ.

  5. #4

    Регистрация
    16.01.2005
    Адрес
    Ekaterinburg
    Сообщений
    2,082
    Записей в дневнике
    11
    Спасибо Благодарностей отдано 
    173
    Спасибо Благодарностей получено 
    493
    Поблагодарили
    343 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от coffee Посмотреть сообщение
    Восстановление/загрузка PC возможна лишь через ret/retn
    Ещё JP при условии некоторой поддержки со стороны маппера памяти.
    Но вообще SNA128 - это же чисто эмуляторный формат, поэтому не стоит искать логику в том, как там что внутри хранится. Сохранить такой файл на немодифицированном аппаратно реале тоже не получится (состояние 7ffd не достать, он же write-only).

    - - - Добавлено - - -

    Цитата Сообщение от coffee Посмотреть сообщение
    Я проверил - вроде работает и без PC
    А не должно. Там же в описании формата
    fixes the problem with the PC being pushed onto the stack - now it is located in an extra variable in the file (and is not pushed onto the stack at all)
    Граф Дракула наш кумир, патамушта он вомпир!
    VKINK 9 : BORDER NOT PI YTINK 9 Channel

  6. #5

    Регистрация
    11.08.2020
    Адрес
    г. Одинцово
    Сообщений
    95
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Eltaron Посмотреть сообщение
    Ещё JP при условии некоторой поддержки со стороны маппера памяти.
    интересный вариант. Во всяком случае и SP и PC пойдут в дело.
    вообще SNA128 - это же чисто эмуляторный формат, поэтому не стоит искать логику в том, как там что внутри хранится. Сохранить такой файл на немодифицированном аппаратно реале тоже не получится (состояние 7ffd не достать, он же write-only).
    У меня можно . Но тем не менее для меня основной источник SNA128 - это эмули. Сам буду записывать их лишь для сэйвов в игре.
    А не должно. Там же в описании формата
    Не знаю, может случайно, но в диззи5 запустился корректно. А робокоп2 нет.
    Пожалуй JP универсальное решение для железного Z80. Спасибо за подсказку!

  7. #6

    Регистрация
    11.08.2020
    Адрес
    г. Одинцово
    Сообщений
    95
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    8 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, в общем неплохо работает JP для загрузки PC с образов SNA-128. Не работают только снапы с ТР-Дос (и не должны). И ещё с некоторыми другими играми непонятки, но похоже это мои заморочки с INT - не стоило переходить на 60 Гц видео.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 13
    Последнее: 02.02.2021, 14:23
  2. Шрифты и загрузка файлов
    от STD в разделе Программирование
    Ответов: 16
    Последнее: 25.03.2016, 20:43
  3. Ответов: 18
    Последнее: 01.11.2015, 00:41
  4. Загрузка файлов с расширением <C>
    от Руслан в разделе Программирование
    Ответов: 27
    Последнее: 17.10.2011, 21:09
  5. Загрузка больших файлов!
    от breeze в разделе Форум
    Ответов: 10
    Последнее: 19.05.2009, 12:48

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •