OSDev
http://osdev.su/

Эмуляторы
http://osdev.su/viewtopic.php?f=6&t=164
Страница 3 из 3

Автор:  sadko [ 06 ноя 2007, 01:11 ]
Заголовок сообщения:  Re: Эмуляторы

Цитата:
Если юзать бутлодер из рассылки, то образ должен быть размером как минимум столько цилиндров, сколько указано в бутсекторе.
//grindars 5.11.2007, 20:07

Хрень. У меня ОСька спокойно эмулируется на нужном мне количестве секторов. И в bochs, и в qemu.

Автор:  izzz32 [ 06 ноя 2007, 07:03 ]
Заголовок сообщения:  Re: Эмуляторы

Дело в том, что если QEMU не удаётся прочитать из образа сектор целиком, она заполняет его нулями (у меня, по крайней мере). Bochs же читает, сколько сможет, а остальное заполняет нулями.

Автор:  vkos [ 06 ноя 2007, 12:35 ]
Заголовок сообщения:  Re: Эмуляторы

Понял. Значит это всё же не моя ошибка. А несовместимость QEMU с 1-байтовыми дискетами ;)

Автор:  vkos [ 06 ноя 2007, 15:45 ]
Заголовок сообщения:  Re: Эмуляторы

Цитата:
Это легко проверить

Интересно, а где я её возьму?

Да кстати, если бы в биосе был бы хороший встроенный архиватор, то можно сжать ОСь до 1 байта и загрузиться. ;) Жаль, что таких архиваторов нет...

Автор:  phantom-84 [ 06 ноя 2007, 16:56 ]
Заголовок сообщения:  Re: Эмуляторы

В bochs'е есть настройка "проверять сигнатуру бутсектора". Если ее отключить, думаю, и с "однобайтовой дискеты" можно загрузиться. Точно знаю, что образы для bochs не обязаны иметь размер, кратный размеру сектора. Да и при записи в образ со стороны эмулируемого кода он расширяется только по мере необходимости, правда, здесь кратность по понятным причинам уже будет присутствовать.

Автор:  phantom-84 [ 06 ноя 2007, 17:35 ]
Заголовок сообщения:  Re: Эмуляторы

К месту... Кто хочет делать образы дискет путем компиляции fasm'ом, обращайтесь! Вот вам пример исходника:
Код:
include "mkfloppy.inc"

file "bootcode.bin", 512

; fat1
db 0F0h, 0FFh, 0FFh, 9*512-3 dup 0

; fat2
db 0F0h, 0FFh, 0FFh, 9*512-3 dup 0

; root
dent io,        "IO      SYS", FA_RO or FA_HID or FA_SYS or FA_ARC
dent msdos,     "MSDOS   SYS", FA_RO or FA_HID or FA_SYS or FA_ARC
dent command,   "COMMAND COM", FA_ARC
dent drvspace,  "DRVSPACEBIN", FA_RO or FA_HID or FA_SYS or FA_ARC
dent autoexec,  "AUTOEXECBAT", FA_ARC
dent command2,  "COMMAND",     FA_DIR
rb 33*512-$

; data
stof io,        "content/IO.SYS"
stof msdos,     "content/MSDOS.SYS"
stof command,   "content/COMMAND.COM"
stof drvspace,  "content/DRVSPACE.BIN"
stof autoexec,  "content/AUTOEXEC.BAT"

defdir command2
{
dent fdisk,     "FDISK   EXE", FA_ARC
dent format,    "FORMAT  COM", FA_ARC
dent sys,       "SYS     COM", FA_ARC
dent defrag,    "DEFRAG  EXE", FA_ARC
dent scandisk1, "SCANDISKEXE", FA_ARC
dent scandisk2, "SCANDISKINI", FA_ARC
dent keyrus,    "KEYRUS  COM", FA_ARC
}

stod command2,  root
stof fdisk,     "content/COMMAND/FDISK.EXE"
stof format,    "content/COMMAND/FORMAT.COM"
stof sys,       "content/COMMAND/SYS.COM"
stof defrag,    "content/COMMAND/DEFRAG.EXE"
stof scandisk1, "content/COMMAND/SCANDISK.EXE"
stof scandisk2, "content/COMMAND/SCANDISK.INI"
stof keyrus,    "content/COMMAND/KEYRUS.COM"
rb 2*80*18*512-$

Автор:  sadko [ 08 ноя 2007, 23:16 ]
Заголовок сообщения:  Re: Эмуляторы

А кто-то (не помню, кто) кричал, что у фасма хилые прагмы...

Страница 3 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/