User Tag List

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

Тема: Программирование

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

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

    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    408
    Спасибо Благодарностей отдано 
    590
    Спасибо Благодарностей получено 
    340
    Поблагодарили
    109 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski,
    Если главная программа читает данные из стека для например рисования на экране или любых других случаев когда sp указывает не на стек главной программы, а на некие данные мы всегда читаем так pop B. Это гарантирует что bc можно использовать в прерывании для восстановления стека. Если же прерывание случилось когда главная программа использовала обычный стек, то push b в прерывании ничего не делает полезного, но и ничего не портит.
    Не помню чей именно это метод изначально, но впервые я прочитал о нем от Jerry на этом форуме.

    Кажется я нашел в чем была проблема. После того как в основной программе я делал xra a, out $10, я восстанавливал стек lxi sp, xxxx. Если прерывание происходило после out $10, то стек указывал на адрес в квазидиске где-то в районе 4k, это как раз попадало на музыку в основной памяти.
    Поменял местами восстановление стека и выключение квазидиска и все стало работать как нужно. Можно двигаться дальше

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

    Лечение не идеальное, так как прерывание будет корраптить данные квазидиска в этот момент и восстановить не получится, но в моем текущем случае это не страшно так как стек основной программы находиться в диапазоне $7ff80-$8000 и по эти адресам ничего полезного в квазидиске нет.

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

    Лучше всего наверное использовать квазидиск для стека в основной программе. Это наверное упростит инициализацию данных после старта если программа будет больше 32к. Можно будет не боятся что стек запортит основную программу.

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

    Если программа запускается из под операционной системы, может ли она менять данные ниже $100? Или они зарезервированы под систему?

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

    Цитата Сообщение от svofski Посмотреть сообщение
    Про время удержания запроса прерывания боюсь соврать. Надо в схему заглянуть, но там не всегда очевидно.
    Было бы интересно узнать, но не супер важно сейчас, так как основная программа не делает di
    Последний раз редактировалось parallelno; 26.08.2022 в 12:20.

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

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

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

Похожие темы

  1. Программирование на ассемблере
    от shuran33 в разделе Вектор
    Ответов: 341
    Последнее: 05.11.2025, 20:00
  2. Программирование на ассемблере
    от tnt23 в разделе Океан-240
    Ответов: 6
    Последнее: 30.10.2025, 12:56
  3. Программирование графики MSX
    от CityAceE в разделе MSX
    Ответов: 57
    Последнее: 23.10.2025, 08:53
  4. Программирование NES
    от Tronix в разделе Nintendo
    Ответов: 6
    Последнее: 08.07.2015, 21:21
  5. Программирование на пентеве.
    от Kakos_nonos в разделе Программирование
    Ответов: 2
    Последнее: 23.03.2013, 14:08

Ваши права

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