Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet
15 окт 2024 Вт
Контроллер прерываний
Вчера я начал делать, а сегодня утром смог успешно закончить контроллер прерываний и даже его проверил. При нажатии на клавишу на клавиатуре теперь вызывается IRQ #1, который отсылает на прерывание 9, а при истечении таймера (в течении примерно 1/18 сек), вызывается прерывание IRQ #0. Теперь мне осталось доделать установку курсора в текстовом режиме, и программирование контроллера прерываний, а именно программирование скорости вызова IRQ #0, чтобы настроить его на значение 10 мс хотя бы, что будет вызывать прерывание раз в 250к тактов или 100 раз в секунду. Этого вообще хватит. И еще надо сделать IRQ #2 — VRetrace сигнал, чтобы знать момент, когда луч только что закончил рисование картинки. Это нужно для того, чтобы начать обновлять картинку на экране, чтобы в следующий раз, когда луч будет проходить по картинке, там уже все было бы готово и не было бы заметного разрыва, как это обычно бывает, если луч рисует, а на середине уже другой кадр. Помню такие времена, когда играл в Куаку, и там вот именно так разрыв кадра и был.
Еще сегодня сделал выбор палитры из заданной палитры DAC, что позволяет (и я это проверил) программировать цветовую палитру через регистры VGA 968 и 969. О, когда я в детстве о них узнал, я был просто поражен и восхищен и тут же начал использовать их для создания графики. Да... хорошо было тогда!
Работы еще очень много над процессором.
Пока проверял контроллер прерываний, наткнулся, что у меня POP r16 не работает, починил. Надо же так пропустить. Еще вот очень важная штука, это сохранение и выгрузка всех регистров, это очень удобно. Надо бы сделать эту вещь тоже в процессоре, помимо средних переходов, которые кодируются 0Fh инструкциями.
Думаю, что пора бы мне заканчивать как с процессором и начать уже делать что-то на ассемблере.
Еще сегодня сделал выбор палитры из заданной палитры DAC, что позволяет (и я это проверил) программировать цветовую палитру через регистры VGA 968 и 969. О, когда я в детстве о них узнал, я был просто поражен и восхищен и тут же начал использовать их для создания графики. Да... хорошо было тогда!
Работы еще очень много над процессором.
- Установка курсора — почти сделано
- Добавить VRetrace — сделано
- Программирование таймера
- Инструкции jmp near
- PUSHA / POPA
Пока проверял контроллер прерываний, наткнулся, что у меня POP r16 не работает, починил. Надо же так пропустить. Еще вот очень важная штука, это сохранение и выгрузка всех регистров, это очень удобно. Надо бы сделать эту вещь тоже в процессоре, помимо средних переходов, которые кодируются 0Fh инструкциями.
Думаю, что пора бы мне заканчивать как с процессором и начать уже делать что-то на ассемблере.
<< Ранние записи |
Поздние записи >>