Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Assembly: DOS:in tekstin värin muuttaminen

Juhko [31.12.2008 22:19:35]

#

Tämäkin on luultavasti tyhmä kysymys, eli miten Assemblyllä muutettua sen värin (myös taustan), jolla DOS kirjoittaa tekstin näytölle? Pitäisi toimia myös ilman Windowsia, eikä sanaakaan COLOR-komennosta!

Googlella on etsitty.

Metabolix [01.01.2009 00:41:14]

#

En tiedä DOSista, mutta näyttömuistiin kirjoitettaessa (kuten aidossa DOSissa tai ilman erityistä käyttöjärjestelmääkin voi tehdä) yhtä merkkiä koodaa kaksi tavua, joista toinen kertoo merkin ja toinen sisältää kaksi 4-bittistä värikoodia, tekstin ja taustan. Oletusvärit selviävät helposti kokeilemalla.

Grez [01.01.2009 00:49:13]

#

        org 100h             ;com-ohjelman alku

        ;Kursorin nykyisen paikan kysyminen

        mov bh, 0            ;näyttösivu 0
        mov ah, 03h          ;Kursorin nykyinen paikka ..
        int 10h              ;.. kysytään

                             ;dh on nyt rivinumero
                             ;dl on nyt sarakenumero
                             ;bh on edelleen näyttösivu

        ;Kirjoitetaan värillistä tekstiä

        mov al, 1            ;Päivitetään kursori lopuksi
                             ;tekstissä itsessään ei attribuutteja
        mov bl, 00101110b    ;vihreä tausta, keltainen teksti
        mov cx, msg1end-msg1 ;tekstin pituus.
        mov bp, msg1         ;tekstin alku
        mov ah, 13h          ;Tekstin kirjoitus ..
        int 10h              ;.. suoritetaan

        ;lopetetaan com-ohjelma

        ret

msg1:   db " hello, world! "
msg1end:

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta