Pada sub bab sebelumnya sudah dipelajari bagaimana cara menampilkan karakter dan string pada posisi kursor tertentu di layar. Pada sub bab ini akan dipelajari cara mengetahui nilai karakter dan warna karakter yang sudah tercetak dilayar. Seperti telah kita ketahui sebelumnya bahwa layar monitor pada mode teks normal terdiri dari suatu baris dan kolom. Dengan mengarahkan kursor pada baris dan kolom tertentu, dapat kita ketahui karakter/huruf yang tercetak dan warna dari karakter/huruf tersebut.
Nomor interupsi yang digunakan untuk mengetahui karakter dan warna karakter pada posisi tertentu adalah interupsi 10 heksadesimal servis 8 heksadesimal. Berikut ini adalah prosedur untuk menjalankan interupsi tersebut:
Register AH harus bernilai 8 heksadesimal.
Register BH berisi nomor halaman tampilan, halaman pertama nilainya 0.
contoh08.cpp
1: #include <conio.h>
2: #include <dos.h>
3: #include <stdio.h>
4: #include <stdlib.h>
5:
6: #define VIDEO_INT 0x10 // Nomor interupsi video
7: #define UCHAR unsigned char // Tipe data UCHAR
8:
9: UCHAR getCharAttr(UCHAR *attr);
10:
11: int main(void)
12: {
13: UCHAR huruf, warna;
14:
15: clrscr(); // Bersihkan layar
16: gotoxy(10, 3); textcolor(17); // Warna karakter
17: textbackground(3); // Warna dasar karakter
18: cprintf(" Latihan C++ "); // Cetak string
19: gotoxy(17, 3); // Pindah posisi kursor
20:
21: huruf = getCharAttr(&warna); // Baca nilai karakter
22: // dan atributnya
23: gotoxy(1, 7);
24: printf("Karakter pada baris 3 kolom 17: %c\n", huruf);
25: printf("Warna\\atribut dari karakter : %#x\n", warna);
26: getch();
27:
28: return EXIT_SUCCESS;
29: }
30:
31: UCHAR getCharAttr(UCHAR *attr) // Fungsi untuk membaca
32: { // karakter dan atributnya
33: union REGS in, out; // pada posisi kursor
34:
35: in.h.ah = 0x08; // AH = 8 heksadesimal
36: in.h.bh = 0x00; // BH = 0, halaman layar
37: int86(VIDEO_INT, &in, &out); // Lakukan interupsi
38:
39: *attr = out.h.ah; // Salin nilai AH di attr
40:
41: return out.h.al; // Kembalikan nilai AL
42: }
Pada program diatas, fungsi yang dibuat untuk membaca karakter dan warna atributnya adalah fungsi getCharAttr. Fungsi ini mengirimkan parameter dengan tipe data unsigned character secara acuan. Setelah fungsi tersebut dijalankan, parameter attr berisi nilai warna atribut dari karakter sedangkan fungsi getCharAttr sendiri mengembalikan nilai karakter yang dibaca.
Hasil:
Tidak ada komentar:
Posting Komentar