dlinyj: (Default)
[personal profile] dlinyj
Я пообещал, что буду делать заметки на полях по этому проекту.

При попытке запустить ROM BASIC на 386 плате, я понял что сам ROM успешно подхватился, и куда-то случился переход, но всё остальное почему-то не работало.
При этом в qemu с SeaBIOS всё работало отлично. Было понятно, что проблема в инициализации BIOS, передача управлению кода и т.п. Идей, как отладить это на аппаратной платформе у меня не было. Даже подключая логический анализатор, я всё равно не мог добиться выполнения по шагам.

Стало понятно, что надо брать родной BIOS материнской платы. Изначально планировал просто считать биос программатором. Благо, это обычная ПЗУ в DIP.


Материнская плата


Но, потом подумал, что может найду сразу готовый бинарник. И решил погуглить по материнке, и да, он таки есть. Вот что удалось найти по этой мамке. У меня установлен BIOS AMI, его и буду пробовать.

Сторонний BIOS в qemu завести можно просто, одной командой. Работать он, правда, не будет.

qemu-system-i386 -machine pc -bios SER386AD3.BIN -vga cirrus




Сначала я думал, что делаю что-то не так. Написал вопрос на stackoverflow, qna.habr и у себя в телеге. Самое ироничное, что помогли мне в русском сегменте интернета, а на стеке достаточно грубо ответили и минусов напихали.

В общем, причина сильно хитрее, чем кажется на первый взгляд. Я попробовал BIOS другой материнской платы, и мне даже он вывел что-то на экран, но потом тоже наглухо завис - нужна аппаратная поддержка для запуска BIOS.



qemu позволяет подключаться по gdb к целевой машине, для этого нужно запускать с опциями "-s -S", а после в gdb выполнить команду: "target remote localhost:1234". Достаточно подробно всё разжёвывал на вебинаре, можете посмотреть запись.



В общем, запуск BIOS скорее всего потребует изменения кода qemu, либо добавления различных хаков в сам код BIOS. Пошагово ходить в 64 кБ ассемблеровского кода - очень сомнительное удовольствие. Но, это крутейший ребус, и каких-то готовых рецептов мне нагуглить не удалось.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

January 2026

S M T W T F S
    123
456 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 22nd, 2026 03:50 pm
Powered by Dreamwidth Studios