#include <dos.h>
void ekransil() /* bu rutin, ekrani siler */
{
union REGS gir;
gir.h.ah = 6; /* ekrani yukari kaydir: servis no su 6
ekrani asagi kaydir: servis no 7 dir. */
gir.h.al = 0; /* kac satir scroll edecegi 'donecegi'
sifir olunca, butun ekrani siler */
gir.h.ch = 0; /* sol ust kosenin satir no su */
gir.h.cl = 0; /* sol ust kosenin kolon no su */
gir.h.dh = 23; /* sag alt kosenin satir no su */
gir.h.dl = 79; /* sag alt kosenin kolon no su */
gir.h.bh = 7; /* yeni yaratilacak satirlar icin renk degeri */
int86(16,&gir,&gir);
}
==============================================
Altinci BIOS servisi sayesinde, ekrani yukari kaydirma metodu ile
silmekteyiz. Ayni servis sayesinde, CX ve DX de gordugunuz degerleri
degistirerek, ekranin sadece bir parcasini 'scroll' etmek yani
kaydirmak mumkundur. Kaydirma yonunu servis numarasini 6 yada 7
yaparak degistirebilirsiniz. Burada gordugunu gir.h.bh deki deger ise,
yeni acilacak satirlarin 'attribute' yani, rengi ve ozellikleri
(parlak, yanip sonen, vs.) dir. Ayrica, yukaridaki ornekte,
gir.h.ch = 0;
gir.h.cl = 0;
yerine, sadece
gir.x.cx = 0;
diyebilirdik.
Baska Interruptlar
Bu orneklerde dikkat etmisinizdir - her int86() yi cagirisimizda, ilk
parametre olarak 16 yi belirttik. Bu istedigimiz interrupt'un
numarasidir. Daha once soyledigim gibi BIOS un ekran fonksiyonlarinin
hepsi interrupt 16 ile cagirilir. Fakat tabi, programlarimiz bununla
sinirli kalmak zorunda degildir, kullanabilecegimiz daha bircok interrupt vardir