Project #08 ( Membaca Karakter pada Posisi Kursor )

#include <conio.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>

#define VIDEO_INT 0x10 // Nomor interupsi video
#define UCHAR unsigned char // Tipe data UCHAR

UCHAR getCharAttr(UCHAR *attr);

int main(void)
{
UCHAR huruf, warna;

clrscr(); // Bersihkan layar
gotoxy(10, 5); textcolor(15); // Warna karakter
textbackground(5); // Warna dasar karakter
cprintf(" Latihan C++ "); // Cetak string
gotoxy(13, 5); // Pindah posisi kursor

huruf = getCharAttr(&warna); // Baca nilai karakter
// dan atributnya
gotoxy(1, 7);
printf("Karakter pada baris 5 kolom 13: %c\n", huruf);
printf("Warna\\atribut dari karakter : %#x\n", warna);
getch();

return EXIT_SUCCESS;
}

UCHAR getCharAttr(UCHAR *attr) // Fungsi untuk membaca
{ // karakter dan atributnya
union REGS in, out; // pada posisi kursor

in.h.ah = 0x08; // AH = 8 heksadesimal
in.h.bh = 0x00; // BH = 0, halaman layar
int86(VIDEO_INT, &in, &out); // Lakukan interupsi

*attr = out.h.ah; // Salin nilai AH di attr

return out.h.al; // Kembalikan nilai AL
}

Komentar

Postingan populer dari blog ini

Project #05 ( Memanggil Interupsi BIOS Untuk Operasi Layar Pada Modus Teks )

Project #03 ( Memanggil Interupsi BIOS Untuk Operasi Layar Pada Modus Teks )