kolorowe literki
| wodzik | 21.01.2008 02:01:27 | |
![]() | 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 ;] | |

