Rabu, 29 Juni 2016

Contoh 25 (Coding) dan Gambarnya

#include <stdlib.h>
#include "screen.cpp"
#include "keyboard.cpp"
#define MOUSE_INT 0x33 /* Nomor interupsi mouse */
#define MOUSE_LEFT_BUTTON 0x00 /* Pilihan tombol kiri */
#define MOUSE_RIGHT_BUTTON 0x01 /* Pilihan tombol kanan */
#define USHORT unsigned short int
UCHAR detectMouse(UCHAR *btn);
USHORT getButtonClick(UCHAR btn, USHORT *row,
USHORT *col, USHORT maxclick);
void showMouse(void);

int main(void)
{
Screen *layar = new Screen();
Keyboard *tombol = new Keyboard(layar);
USHORT jumlah, baris, kolom;
UCHAR status, button, str[5];
status = detectMouse(&button);
layar->setMode(0x03); layar->setCursorPos(4, 14);
showMouse();
if (!status)
{
layar->writeString("Mouse tidak siap! Tekan ENTER ...");
tombol->getString(str, 0);
delete layar; delete tombol;
exit(EXIT_FAILURE);
}
layar->writeString("Klik kiri 5 kali untuk berhenti");
tombol->hideCursor();
jumlah = getButtonClick(MOUSE_LEFT_BUTTON,
&baris, &kolom, 5);
delete tombol; 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;
}
USHORT getButtonClick(UCHAR btn, USHORT *row,
USHORT *col, USHORT maxclick)
{
USHORT click, nclick, x, y;
click = nclick = x = y = 0;
while (nclick < maxclick)
{
asm mov ah, 0x00; /* Register AH = 0 */

asm mov al, 0x05; /* Register AL = 0, AH:AL = AX = 0 */
asm mov bh, 0x00; /* Register BH = 0 */
asm mov bl, btn; /* Register BL = tombol yang dipilih */
asm int MOUSE_INT; /* Lakukan interupsi 0x33 */
asm mov click, bx; /* Salin nilai di BX ke click */
asm mov x, cx; /* Posisi kolom terakhir */
asm mov y, dx; /* Posisi baris terakhir */
nclick += click;
}
*row = y; *col = x;
return nclick;
}
void showMouse(void)
{
asm mov ax, 0x00001; /* AH = 0, AL = 1, AX = 1 */
asm int MOUSE_INT; /* Tampilkan pointer mouse */
return;
}


Gambarnya Sebagai Berikut : 



Penjelasannya :


Fungsi getButtonClick pada program contoh25.cpp digunakan untuk mendeteksi penekanan tombol sebanyak beberapa kali. Parameter btn yang bertipe unsigned character digunakan untuk menentukan tombol mouse (tombol kiri atau kanan) yang akan dibatasi penekanannya. Parameter col dan row bertipe unsigned integer yang dikirimkan secara referensi digunakan untuk mengetahui posisi baris dan kolom pointer mouse ketika tombol mouse terakhir kali ditekan. Parameter maxclick bertipe unsigned integer digunakan untuk menentukan banyak penekanan tombol mouse.

0 komentar:

Posting Komentar

Posting Lebih Baru Posting Lama Beranda

Diberdayakan oleh Blogger.

Facebook

Popular Posts

Formulir Kontak

Nama

Email *

Pesan *

Subscribe Here

Ad Home

Random Posts

Recent Posts

Recent

Header Ads

Popular Posts

Flickr

Newsletter

Subscribe Our Newsletter

Enter your email address below to subscribe to our newsletter.

Ad Banner

About Us

Random Posts

Popular Posts

 

Followers

 

Social Share Icons

Templates by Nano Yulianto | CSS3 by David Walsh | Powered by {N}Code & Blogger