Важная информация

User Tag List

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

Тема: Эмулятор ДВК

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,003
    Спасибо Благодарностей отдано 
    287
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    перфоленточный загрузчик берёт из LDA-файла информацию о длине данных и загружает с ленты ровно столько данных, сколько там указано
    Не скажу за вышеуказанный загрузчик (но подозреваю, что ведёт себя так же), но,..

    Уточнения

    Вводная часть

    Формат абсолютного загрузчика (тот самый LDA) - это некоторое количество записей. Структура записи - слово-заголовок (фиксированно - 1, а по байтово - 0 и 1), слово-счетчик байт, слово-адрес загрузки, байты (без проблем может быть нечетное количество), байт контрольной суммы. В счетчик входят - заголовок, сам счётчик и адрес загрузки, но не входит контрольная сумма - то есть количество байт данных - это счётчик-6.

    Но есть нюансы.

    Если счётчик равен шести - это запись о стартовом адресе (может быть нечётным - традиционно - 1, тогда будет останов, с выходом в пульт, если он есть).

    Если счётчик равен пяти (по документации, реально я таких файлов пока не видел и вроде как стандартный absloader это не поймёт) - адрес будет в один байт и там будут содержаться биты 16 и 17 (вроде, в битах 0 и 1) адреса - для загрузки больше 64 кб (понятно, пойдёт в расширенную) или (просто) в расширенную память.

    Про absloader

    Absloader написан так, что он грузит данные, пока не дойдет до записи с длиной 6 байт, после чего переходит (или не переходит, если адрес нечётный) по адресу из этой записи, а остаток ленты, соотвественно - absloader-ом просто игнорируется.

    Из замеченного - перед заголовком или после байта контрольной суммы может идти сколько угодно нулей (главное, что бы был считан хотя бы один нулевой байт) - они просто игнорируется, пока не попадём на байт, равный 1.

    И я встречал варианты LDA файлов, которые разные по длине, но если очистить вот от этих лишних нулей - будут один в один. Поэтому в DisAsm-11 неожиданно (он не планировался, но остался от исследований) получился функционал - он создаёт "очищенный" вариант LDA файла, в котором нет этих нулей и - нет хвоста файла за стартовой записью.

    Ну и DisAsm-11 не обрабатывает запись с длиной 5 - пока не понятно - чего с ней и как - в доках очень краткий абзац на эту тему. Попадётся или кто пришлёт - тогда и посмотрим - чего там

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

    Вдогонку. Посмотрел по исходника - уточнение - DisAsm-11 создаёт "очишенный" LDA - если что то удалось почистить - то есть или встретились "лишние" нули или за стартовой записью что-то было
    Последний раз редактировалось Hunta; 17.06.2023 в 16:24.

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

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

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

Похожие темы

  1. Эмулятор
    от vladimir53 в разделе Орион
    Ответов: 19
    Последнее: 24.06.2022, 08:02
  2. Эмулятор ПЗУ.
    от ALKO в разделе Память
    Ответов: 8
    Последнее: 17.05.2011, 13:41
  3. Эмулятор AY на AVR
    от serkiri в разделе Звук
    Ответов: 52
    Последнее: 10.06.2010, 09:01
  4. Эмулятор для Mac
    от AlexBel в разделе Эмуляторы
    Ответов: 11
    Последнее: 02.05.2010, 18:53

Ваши права

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