Загрузка и Кодировка...

Тема в разделе "WASM.OS.DEVEL", создана пользователем ruextra, 4 янв 2011.

  1. ruextra

    ruextra New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2009
    Сообщения:
    14

    Вообщем вот такой нусталшой ТИПА загрузчик, компилируем запускаем *.exe (под виндой),выводит надпись как часы.Ок!
    Убираем Format MZ ,компилируем в *.bin, создаем самозагружаемый образ *.iso, записываем его на диск, перезагружаемся, надпись выводится как часы(только английские символы).Ок!
    Но если этот же ISO-шник запустить под виртуальной машиной, нифига, китай нам машет ероглифами, что не правильно, чего не хватает?
    Да, и как мне выводить русские символы, установить кодировку?
    (думаю нужен массив, но по какому адрессу его посылать тогда?)



    Код (Text):
    1. Format MZ
    2.  
    3. push cs
    4. pop  ds
    5.  
    6. mov ax,$4f03
    7. int 10h;
    8.  
    9. push $B800;
    10. pop  es
    11. mov  si,_str;
    12. mov  di,0;
    13. mov  cx,[str_];
    14. mov  ax,10001111b;
    15.  
    16. cld
    17.  
    18. m1:
    19. movsb;
    20. stosb
    21. loop m1;
    22.  
    23. jmp $
    24.  
    25. _str db 'Loading...'
    26. str_ dw $-_str;
     
  2. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Нормально установи обычный текстовый видеорежим (mov ax,3/int 10h) и регистр ds (при запуске экзешника его инициализация вообще не требуется, а при загрузке с iso нужно смотреть, как именно запускается твой код - если как обычный загрузчик, то предложенный тобой способ имеет право на существование, хотя все-таки надежнее сделать так: push 7C0h/pop ds).
     
  3. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Чтобы использовать русские буквы, ты должен загрузить соответствующий шрифт в память знакогенератора. Это можно сделать двумя способами - с помощью соответствующей функции BIOS или напрямую через порты в/в.
     
  4. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Здесь я ошибся, а точнее перепутал с com-файлами. При запуске экзешника в ds и es находится сегментный адрес psp, поэтому их нужно настраивать явно.
     
  5. ruextra

    ruextra New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2009
    Сообщения:
    14
    все сам разобрался...
    org $7c00;забыл написать
    а вообще, хз зачем этот орг нужен я и так сегменты сам настраивал, и вроде как биос передает управление на $7c00
     
  6. max7C4

    max7C4 New Member

    Публикаций:
    0
    Регистрация:
    17 мар 2008
    Сообщения:
    1.203
    А чтобы не гадать - возьмите борщ!
     
  7. ruextra

    ruextra New Member

    Публикаций:
    0
    Регистрация:
    23 дек 2009
    Сообщения:
    14
    И вылейте его на парашу...
     
  8. Phantom_84

    Phantom_84 New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2007
    Сообщения:
    820
    Зачем его выливать. Он хороший. Я прежде чем что-то съесть окунаю это в борщ.