#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);
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();
}
else
{
layar->writeString("Mouse tidak siap.");
}
delay(5000);
delete layar; return EXIT_SUCCESS;
}
UCHAR detectMouse(UCHAR *btn)
{
UCHAR state, button;
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x00; /* Register AL = 0, AH:AL = 0:0 */
asm int MOUSE_INT; /* Laksanakan interupsi 0x33 */
asm mov state, al; /* Salin nilai AL ke state */
asm mov button, bl; /* Salin nilai BL ke button */
*btn = button;
return state;
}
void showMouse(void)
{
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x01; /* Register AL = 1, AH:AL = AX = 1 */
asm int MOUSE_INT; /* Tampilkan pointer mouse */
return;
}
void enableMouse(void)
{
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x20; /* Register AL = 0x20, AX = 0x0020 */
asm int MOUSE_INT; /* Aktifkan driver mouse */
return;
}
UCHAR disableMouse(void)
{
UCHAR state;
asm mov ah, 0x00; /* Register AH = 0 */
asm mov al, 0x1f; /* Register AL = 0x1f, AX = 0x001f */
asm int MOUSE_INT; /* Non-aktifkan driver mouse */
asm mov state, al; /* Salin isi AL ke state */
return state;
}
Gambarnya Sebagai Berikut :
Penjelasannya :
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 enable Mouse tidak mengembalikan nilai apapun.
0 komentar:
Posting Komentar