User Tag List

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

Тема: ROM-disk для Специалиста

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #23
    HardWareMan
    Гость

    По умолчанию

    Цитата Сообщение от PVV Посмотреть сообщение
    надо изменить на:
    C8E2 E5 PUSH H
    тогда работает N
    А, вот куда 10Н девается. Теперь точно всё чётко: 01 => 11, F5 => E5 и контрольная сумма остаётся какой была. Что касается клавиш, там всё прикольнее и проще:
    Код:
    C8FC  CD 03 C8   CALL 0C803H
    C8FF  D1         POP  D
    C900  FE 4E      CPI  4EH
    C902  CA D9 C8   JZ   0C8D9H
    C905  D8         RC
    C906  F9         SPHL
    C907  C1         POP  B
    C908  D1         POP  D
    C909  E1         POP  H
    C90A  31 FD 7F   LXI  SP,7FFDH
    C90D  00         NOP
    C90E  00         NOP
    Сначала вводится символ, он попадает в [A]. Затем восстанавливается уровень стэка, компенсируя первый PUSH по адресу C8E2 а затем считанный код символа сравнивается с 4EH, а это ASCII 'N'. Если код символа равен - то идём на второй круг, если код ASCII меньше 4EH - выходим через RC (RET C). А в остальных случаях идем дальше, где значение в HL заносится как вершина стэка (должно указывать на параметры запускаемой программы), откуда идет прогрузка всех регистров и однократный вызов подпрограммы считывания данных с ROM диска, которая завершаясь через RET выйдет уже в загружаемую программу. Смысл кнопок в том, что по таблице ASCII 'M' < 'N' < 'Y'. Но будут работать все кнопки согласно весу ASCII относительно кода 'N'.

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



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

    А не, автозапуска не происходит, ведь стэк обнуляется до стандартного мониторного адреса. Только загрузка кода в память. Статью надо читать внимательнее:


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

    Цитата Сообщение от PVV Посмотреть сообщение
    Я поправил описатель в образе РОМдиска (последние 4 байта образа FF 46 00 00) , и первую программу загрузил правильно, она запустилась, но надо разбираться дальше.
    Нужно делать строго как описано в статье. Код вычисляет строку от 0000H, делая -0010H за каждый проход цикла вывода имени и свойств файла. Т.е. сначала 7FF0H, затем 7FE0H и так далее (старший бит игнорируется в адресации ROM диска), с каждым нажатием на 'N', но это перед выводом. А на момент запуска этот указатель в начале параметров, откуда уже через серию POP они и попадают в регистры. Это плата за простоту и компактность кода. Порядок же описываемых программ действительно не важен.
    Последний раз редактировалось HardWareMan; 03.10.2019 в 14:46.

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

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

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

Похожие темы

  1. Музыкальная система для Специалиста
    от ivagor в разделе Специалист
    Ответов: 4
    Последнее: 20.07.2022, 21:47
  2. Элита для Специалиста
    от jerri в разделе Специалист
    Ответов: 77
    Последнее: 20.11.2021, 20:22
  3. OriNET для Специалиста ?
    от SYR-ALEX в разделе Специалист
    Ответов: 22
    Последнее: 21.07.2017, 07:40
  4. Advanced ROM Manager (ROM Switvcher + Prof. ROM)
    от Alex_NEMO в разделе Память
    Ответов: 4
    Последнее: 04.10.2010, 11:43
  5. ROM-DISK и Кеш
    от AlexFantasy в разделе Память
    Ответов: 11
    Последнее: 23.02.2010, 19:31

Ваши права

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