User Tag List

Показано с 1 по 10 из 30

Тема: Формат TZX

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Формат TZX

    Делая утилиту для дампа TZX в компилируемый asm файл в формате zasm (чтобы можно было легко руками подпраивить содержимое и скомпилить обратно в TZX), я заметил одну странность в TZX блоке #19 (generalized data).

    Вот пример с дампом hollywood-poker.tzx из набора тестов для TZX v1.20:
    Код:
    #TZX GENERALIZED, BLOCK10_DATA, 0, *, flag=$21, pause=0
            .tzx-pilot-sym  0, 2168,0            ; symbol#0 for pilot
            .tzx-pilot-sym  0, 667,735           ; symbol#1 for pilot
            .tzx-pilot      0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,256, 1,1, 0,258, 1,1  ; pilot 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 256 x #0, 1 x #1, 258 x #0, 1 x #1
            .tzx-data-sym   0, 855,855           ; symbol#0 for data
            .tzx-data-sym   0, 1710,1710         ; symbol#1 for data
    А именно - в словаре импульсов для пилот-тона, последний импульс 0, что технически некорректно, т.к. такой импульс приведет к смене полярности. В эмуляторах нулевые импульсы в словаре пилот-тона просто игнорируются (стоит проверка на ноль и если она срабатывает, импульс игнорируется), поэтому все работает.

    Кстати, zasm не принимает этот ноль в словаре пилот-тона при компиляции, его нужно удалить, чтобы блок скомпилировался. И, что интересно, он сам добавляет 0 в конец словаря пилот-тона.

    В описании формата TZX v1.20 присутствует этот ноль в примере словаря пилот-тона (судя по данным, пример в документации TZX приведен именно из вышеуказанного блока hollywood-poker.tzx)
    Код:
    0x12 	SYMDEF[0]: ( 0, 2168, 0 ) 	Pilot/sync symbol definitions
     	 SYMDEF[1]: ( 0, 667, 735)
    Однако непонятно - в чем смысл был включать нулевой импульс в словарь пилот-тона? Это ошибка, которую все эмуляторы игнорируют, т.к. она описана в примере блока #19 в самом описании формата? Или я чтото не понимаю?

    В аттачменте сам tzx и два его дампа в архиве - компилируемый asm дамп с проигнорированным импульсом 0 в словаре и асм дамп с префиксом -raw, т.е. в том виде как он записан в tzx.
    Вложения Вложения
    Последний раз редактировалось ZXMAK; 10.12.2024 в 05:28.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

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

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

Похожие темы

  1. Ответов: 5
    Последнее: 06.03.2023, 00:01
  2. Формат файла tzx
    от san010101 в разделе Разный софт
    Ответов: 3
    Последнее: 14.09.2018, 09:31
  3. tzx образ
    от kibertorm в разделе Эмуляторы
    Ответов: 1
    Последнее: 02.03.2013, 08:56
  4. Out-of-TZX v1.03
    от CityAceE в разделе Софт
    Ответов: 3
    Последнее: 26.05.2005, 13:05

Ваши права

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