Загрузчик глючит.
Единственная разница что функции ввода/выводы вынесенны в отдельные файлы(include "io.asm"). Причем позиция курсора правильно переводится, а вот выводимый текст теряется. В чём может быть ошибка?
Я написал свой загрузчик, который выводит на экран текст с помощью функций BIOS. После чего этот загрузчик грузит ядро с дискеты(работа с дискетой из GLUKOS). Он[загрузчик] работает правильно. Но вот ядро выводит на экран всякую бяку, хотя в нём содержиться тот же код что и в загрузчеке.
Единственная разница что функции ввода/выводы вынесенны в отдельные файлы(include "io.asm"). Причем позиция курсора правильно переводится, а вот выводимый текст теряется. В чём может быть ошибка?
Попробуй работу ввода/вывода вынести в отдельную программу(временно для тестирования) без ядра и отладить :)
Кидай сюда: [email]Sashusik_EntXXI@Mail.Ru[/email]
И вот ещё, что kernel.com (ядро) у меня в Windows правильно работает. Мож я тебе скину исходники, а ты посмотришь?
О спасибо.
Кидай сюда: [email]Sashusik_EntXXI@Mail.Ru[/email]
И вот ещё, что kernel.com (ядро) у меня в Windows правильно работает. Мож я тебе скину исходники, а ты посмотришь?
Ты случаем там сегменты не забыл установить?:-) При запуске из ОС тем более com программы все сегменты инициируются, а там у тебя, поди-ка полный бред. Проверь ds
Ты случаем там сегменты не забыл установить?:-) При запуске из ОС тем более com программы все сегменты инициируются, а там у тебя, поди-ка полный бред. Проверь ds
Наверняка забыл потому что я не знаю во что их надо ставить.
Покажи пожалуйста :))
И это в загрузчеке делать или в ядре?
Наверняка забыл потому что я не знаю во что их надо ставить.
Покажи пожалуйста :))
И это в загрузчеке делать или в ядре?
Бут-сектор считывается по адресу 7c000h, соответственно, сегменты надо инициировать 0, а лучше так же, как и cs:
mov ax,cs
mov es,ax
mov ds,ax
mov ss,ax
mov sp,7c00h
а потом уже все остальное:-) Что делать в ядре, а что в загрузчике - сам решай. Если загрузчик у тебя на дискете, то он ограничем размером 1 сектора (512 байт) много там не уместишь, можно только ядро считать или вторичный загрузчик, который уже все подготовит для ядра и считает его. А вообще, почитай статейки на http://www.lowlevel.ru/articles