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 кБ ассемблеровского кода - очень сомнительное удовольствие. Но, это крутейший ребус, и каких-то готовых рецептов мне нагуглить не удалось.

Date: 2023-02-17 12:45 pm (UTC)
From: [identity profile] lubezniy.livejournal.com

С биосом вообще не всё просто: он порой завязан на аппаратные особенности материнской платы. Хотя, не спорю, много и общих вещей.

Date: 2023-02-17 03:11 pm (UTC)
From: [identity profile] fostral2.livejournal.com
трёшка DLC, четыре мега памяти
Как вчера))))

Date: 2023-02-22 12:00 pm (UTC)
From: [identity profile] Николай Замотаев (from livejournal.com)

Я подозреваю, что для этой материнки/биоса стоило выбрать isapc в ключе -machine у qemu

Date: 2023-02-22 02:40 pm (UTC)

Date: 2023-02-22 03:53 pm (UTC)
From: [identity profile] Николай Замотаев (from livejournal.com)

Уже попробовал — и так, и с лимитом по процессору и с указанием -vga std (там пожаловалось на vga bios)

Edited Date: 2023-02-22 04:13 pm (UTC)

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 01:11 pm
Powered by Dreamwidth Studios