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

Discussion in 'WASM.OS.DEVEL' started by ruextra, Jan 4, 2011.

  1. ruextra

    ruextra New Member

    Blog Posts:
    0

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



    Code (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

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

    Phantom_84 New Member

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

    Phantom_84 New Member

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

    ruextra New Member

    Blog Posts:
    0
    все сам разобрался...
    org $7c00;забыл написать
    а вообще, хз зачем этот орг нужен я и так сегменты сам настраивал, и вроде как биос передает управление на $7c00
     
  6. max7C4

    max7C4 New Member

    Blog Posts:
    0
    А чтобы не гадать - возьмите борщ!
     
  7. ruextra

    ruextra New Member

    Blog Posts:
    0
    И вылейте его на парашу...
     
  8. Phantom_84

    Phantom_84 New Member

    Blog Posts:
    0
    Зачем его выливать. Он хороший. Я прежде чем что-то съесть окунаю это в борщ.