contoh20.cpp:
#include
<dos.h>
#include
<stdlib.h>
#include
"screen.cpp"
#define
MOUSE_INT 0x33
UCHAR
detectMouse(UCHAR *btn);
void
showMouse(void);
void
hideMouse(void);
int
main (void)
{
UCHAR
state, btn;
layar->setMode(0x03);
layar->setCursorPos(4,
14);
state = detectMouse(&btn);
if (state)
{
layar->writeString("Mouse siap digunakan.");
layar->setCursorPos(6, 14);
layar->writeString("Pointer mouse
ditampilkan.");
showMouse(); delay(7000);
layar->setCursorPos(6, 14);
layar->writeString("Pointer mouse
disembunyikan.");
hideMouse();
}
else
{
layar->writeString("Mouse tidak siap.");
}
delay(5000);
delete layar; return EXIT_SUCCESS;
}
Program
contoh20.cpp menambahkan satu fungsi baru, yaitu fungsi hideMouse 58
untuk
menyembunyikan pointer mouse. Alur program contoh20.cpp adalah sebagai berikut:
1. Deteksi
mouse, jika mouse tidak siap digunakan maka pesan bahwa mouse tidak siap digunakan
ditampilkan. Kemudian program berhenti secara otomatis setelah jeda lima detik.
2. Jika mouse
terdeteksi, maka pointer mouse akan ditampilkan. Setelah jeda selama tujuh
detik pointer mouse akan disembunyikan. Setelah itu program berhenti secara
otomatis setelah jeda lima detik.
B. Mengaktifkan
dan Menonaktifkan Driver Mouse
Mouse dan
driver-nya yang telah terinstal dengan benar dapat diaktifkan dan
dinonaktifkan. Jika suatu driver mouse dinonaktifkan maka pointernya tidak bisa
digerakan dan koordinatnya tidak akan berubah, walaupun mouse digerak-gerakan.
Untuk mengaktifkan driver mouse digunakan interupsi 33 heksadesimal servis 20
heksadesimal. Sedangkan untuk menonaktifkan driver mouse dapat digunakan
interupsi 33 heksadesimal servis 1f heksadesimal. Berikut ini adalah prosedur
untuk mengaktifkan dan menonaktifkan mouse:
Mengaktifkan
driver mouse:
Register AH
harus bernilai 0.
Register AL
harus bernilai 20 heksadesimal.
Laksanakan
interupsi 33 heksadesimal.
Menonaktifkan
driver mouse:
Register AH
harus bernilai 0.
Register AL
harus bernilai 1f heksadesimal.
Laksanakan
interupsi 33 heksadesimal.
Setelah
interupsi 33 heksadesimal servis 1f heksadesimal dijalankan:
Jika interupsi
berhasil dilaksanakan maka register AX bernilai 001f heksadesimal.
Jika interupsi
gagal dilaksanakan maka register AX bernilai ffff heksadesimal.
Untuk
mempraktekkan prosedur mengaktifkan dan menonaktifkan mouse, pelajari kode
program project contoh21.ide berikut ini. Simpan kode programnya pada direktori
yang sama dengan file screen.cpp.
contoh21.
#include <dos.h>
#include <stdlib.h>
#include "screen.cpp"
#define MOUSE_INT 0x33
UCHAR detectMouse(UCHAR *btn);
void showMouse(void);
void enableMouse(void);
UCHAR disableMouse(void);
int main (void)
{
Screen *layar = new Screen();
UCHAR state, btn;
layar->setMode(0x03);
layar->setCursorPos(4, 14); 59
state = detectMouse(&btn);
if (state)
{
layar->writeString("Mouse siap digunakan.");
layar->setCursorPos(6, 14);
layar->writeString("Driver mouse
dinonaktifkan.");
showMouse(); disableMouse();
delay(7000);
layar->setCursorPos(6, 14);
layar->writeString("Driver mouse diaktifkan
kembali.");
enableMouse();
}
Pada
program contoh21.cpp diatas, fungsi enableMouse digunakan untuk mengaktifkan
driver mouse dan fungsi disableMouse digunakan untuk menonaktifkan driver
mouse. Perbedaan fungsi enableMouse dengan fungsi disableMouse yang telah
dibuat adalah fungsi disableMouse mengembalikan nilai unsigned character yang
menunjukan apakah interupsi berhasil dilakukan atau gagal, sedangkan fungsi
enableMouse tidak mengembalikan nilai apapun.


Tidak ada komentar:
Posting Komentar