kolorowe literki




wodzik21.01.2008 02:01:27
#
Dołączył: 21.01.2008

pisze sobie "system operacyjny" w nasmie i wymyslilem sobie, ze fajnie by bylo moc wyswietlac kolorowe literki. troche szukania i juz widze, ze zeby zmienic atrybuty tekstu mozna sobie pogrzebac w pamieci od 0B000h. opcja srednio fajna, wiec szukamy dalej. troche wiecej szukania i mam takie oto cos:

INT 10 - VIDEO - WRITE CHARACTER AND ATTRIBUTE AT CURSOR POSITION

    AH = 09h

    AL = character to display

    BH = page number (00h to number of pages - 1) (see #0009)

    BL = attribute (text mode) or color (graphics mode)

         if bit 7 set in graphics mode, character is xor'ed onto screen

    CX = number of times to write character

czyli mniej wiecej to o co mi chodzi. problem w tym ze po wykonaniu sie czegos takiegos kursor nie przechodzi do nastepnej lini. ale latwo mozna zczytac pozycje kursora:

 INT 10 - VIDEO - GET CURSOR POSITION AND SIZE

    AH = 03h

    BH = page number

        0-3 in modes 2&3

        0-7 in modes 0&1

        0 in graphics modes

Return: AX = 0000h (Phoenix BIOS)

    CH = start scan line

    CL = end scan line

    DH = row (00h is top)

    DL = column (00h is left)

i rownie latwo mozna ustawic pozycje:

INT 10 - VIDEO - SET CURSOR POSITION

    AH = 02h

    BH = page number

        0-3 in modes 2&3

        0-7 in modes 0&1

        0 in graphics modes

    DH = row (00h is top)

    DL = column (00h is left)

pomyslalem wiec, ze po prostu zczytam sobie pozycje. zwieksze dl o jeden i ustawie pozycje kurosra. calos ma wygladac mniej wiecej tak:

mov al,070h; male p
mov bl,10100100b ; czerwone na zielonym
mov ah, 09h       
    int 10h  ;wypisujemy

mov AH , 03h ; zczytanie pozycji
inc dl ;przesowamy jedna kolumne dalej 
mov AH , 02h ;ustawiamy kurosor
int 10h

mov al,070h
mov bl,10100100b
mov ah, 09h       
    int 10h 

niestety 2 znaczek pojawia sie kompletnie nie tam gdzie ma byc. tak sie zastanawiam jak to najprosciej/najlepiej zrobic.

tak w ogole witam witam wszystkich na forum i od razu uprzedzam, ze w asemblerze jestem zielony ;]




Kontakt

Jeśli chcesz się z nami skontaktować napisz na adres: info(at)binboy.org lub odwiedź nasz profil na Facebooku!

O Nas

Serwis binboy.org to kopalnia wiedzy dla wszystkich z branży IT, w szczególności dla programistów i webmasterów. To duży zbiór kursów programowania, tutoriali, darmowych ebooków, setki kodów źródłowych itp.

Bądź w kontakcie

Panel użytkownika

Zaloguj się do panelu użytkownika.
Nie masz konta? Zarejestruj się!
Zapomniałeś hasła?