Xedran & Elyssa
Xedran Xedran
Привет, Элисса. Наткнулся тут на старую процедуру DOS, 16-битная, которая даже первого теста не прошла. Как будто артефакт, который всё ещё жужжит, как железо раньше говорило с ОС. Я превращаю её в подобие музея сломанного железа, чтобы изучить все её странности. Думаю, из этого можно сделать отличную площадку для обучения работе event loops и callbacks – без всяких современных фреймворков, только сырые сигналы. Как тебе идея сделать из этого практическое занятие?
Elyssa Elyssa
Звучит потрясающе, почти как взлом прошлого, чтобы научить будущее. Мне нравится идея, как будто счищаем слои этой прерывания и позволяем старым сигналам плясать в цикле событий, настоящим и честным. Мы могли бы сделать из этого живую демонстрацию, чтобы студенты увидели голос оборудования напрямую, без абстракций, просто пульс настоящего кода. И, если что, мы сможем отладить прошлое – прямо как сессия отладки во времени. Давай организуем и посмотрим, как это заработает.
Xedran Xedran
Звучит здорово, давай собираем святилище. Я запущу эмулятор 8086, загружу рутину обработки прерываний в монитор и буду записывать каждую ошибку. Студенты услышат необработанные импульсы, а мы вместе отладим прошлое. Давай выровняем углы сигнала и посмотрим, что за правду шепчет старый код.
Elyssa Elyssa
Ну, вот это дело говорит! Очень жду, когда увижу старый процесс в эмуляторе оживет. Я помогу нам отслеживать каждую ошибку, чтобы понять, почему он дергается. Давай настроим логи, включим монитор и посмотрим, как сырые сигналы расскажут свою историю. Это будет потрясающий урок о том, как говорит настоящее железо, и ребята увидят, как все устроено от фундамента. Готова начинать?
Xedran Xedran
Хорошо, выравниваем углы сигнала, включаем журнал, запускаем монитор – и по старинке, как всегда. Я готов.
Elyssa Elyssa
Давай! Запускай эмулятор, вкидывай процедуру, начинай логировать – пусть 8086 прошепчет свои секреты. Я буду следить за логами и объясню каждый импульс по ходу дела. Будет просто бомба! Запускаем эту машину!
Xedran Xedran
Запускай эмулятор, загрузи рутину, начинай логирование – пусть 8086 прошепчет свои секреты. Я буду следить за логами и объясню каждый импульс по ходу дела. Будет круто! Заводим эту машину!
Elyssa Elyssa
Привет! Вот быстрая инструкция, чтобы ты смог быстро запустить это всё: 1. **Выбери эмулятор** – DOSBox самый простой вариант, если нужно просто запустить 16-битную программу .COM, но если хочется более точной имитации 8086, отлично подойдёт QEMU с `qemu-system-i386`. 2. **Подготовь чистый образ DOS** - Для DOSBox: создай папку (например, `C:\DOSDemo`) и помести туда свою программу. - Если хочешь поэкспериментировать со списком векторов прерываний, создай маленькую программу .COM, которая просто перейдёт по адресу твоей программы (это нужно чтобы она не падала при загрузке). Что-то вроде: ```asm org 100h jmp 0 ; возврат к DOS stub ``` - Затем скопируй этот файл в образ. 3. **Запусти эмулятор** - *DOSBox*: `C:\DOSDemo` станет твоим диском C:. Запускай и начинай отладку. - *QEMU*: создай простой дискетный образ из 512 блоков, помести туда свою программу и запусти QEMU с параметром `-fda demo.img`. 4. **Включи журналирование** – В DOSBox можно перенаправить вывод в файл или просто смотреть в консоль на ошибки. С QEMU используй `-serial mon:stdio`, чтобы вызовы `PRINT` из твоего кода отображались в терминале, или `-d guest` для отслеживания событий низкого уровня. 5. **Наблюдай за сырыми сигналами** – Если ты используешь машинный отладчик QEMU, то сможешь увидеть изменения списка векторов прерываний и состояние ЦП после каждого прерывания. Это даёт студентам реальное представление о работе обработчиков: приходит прерывание, срабатывает обработчик, а потом управление возвращается. 6. **Объясняй по ходу дела** – Объясни, как программа получает `INT 1Ah`, почему нужно сохранять регистры и покажи, как реализованы обратные вызовы через указатели на функции или манипуляции со стеком. Покажи им разницу между обработчиком прерывания и обычной обработкой событий в современном коде. Всё, больше ничего нет – это быстрая настройка, и у тебя будет рабочий "храм", которым студенты смогут поковыряться. Если возникнут какие-то проблемы, дай знать!