A. Membaca Karakter pada Posisi
Kursor
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.
Setelah interupsi dijalankan maka
register AH akan berisi nilai warna dari karakter dan register AL akan berisi
karakter/huruf yang ditampilkan. Berikut ini adalah contoh sederhana untuk
membaca karakter pada posisi tertentu dilayar. Untuk menyederhanakan kode
program, contoh berikut akan menggunakan fungsi standar gotoxy, textcolor,
textbackground, cprintf dan int86. Simpan contoh program berikut ini dengan
nama project contoh08.ide dan file kode program contoh08.cpp.
Contoh 8:
#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
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.
B. ASCII Extended Character Set
ASCII
Extended Character Set (set karakter ASCII perluasan)
adalah karakter ASCII dengan kode atau nomor urut 128 sampai dengan 255
desimal. Umumnya set karakter perluasan ini digunakan agar tampilan program
yang berbasis teks menjadi lebih menarik karena dapat digunakan untuk menampilkan
bingkai, tabel, simbol-simbol khusus dalam aksara Yunani (seperti alpha,
beta, gamma dan seterusnya) dan simbol-simbol khusus matematika
(seperti integral, akar kuadrat dan pangkat dua). Gambar-gambar berikut ini
menampilkan nomor urut serta karakter ASCII reguler dan perluasan.
Berikut
ini adalah contoh program yang sangat sederhana untuk membuat sebuah bingkai.
Program ini akan menggunakan fungsi writeChar, writeString, setCursorPos yang
telah dibuat pada program sebelumnya.
Contoh 9:
#include <conio.h>
#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#define VIDEO_INT 0x10
#define UCHAR unsigned char
void setMode(UCHAR mode);
void getCursorPos(UCHAR *y, UCHAR *x);
void setCursorPos(UCHAR y, UCHAR x);
void writeChar(UCHAR letter, UCHAR attr);
void writeString(UCHAR *str, UCHAR attr);
int main(void)
{
UCHAR baris, kolom;
UCHAR pilih;
setMode(3);
setCursorPos(4, 4); writeChar(213, 0x17);
setCursorPos(4, 74); writeChar(184, 0x17);
setCursorPos(20, 4); writeChar(192, 0x17);
setCursorPos(20, 74); writeChar(217, 0x17);


Tidak ada komentar:
Posting Komentar