Selasa, 16 April 2013

Membuat Bingkai (1)


Ingin mendapatkan tampilan seperti diatas? Ini listingnya:

#include <conio.h>
#include <dos.h>
#include <stdlib.h>
 
#define VIDEO_INT 0x10
#define UCHAR unsigned char
  
void getCursorPos(UCHAR *y, UCHAR *x);
void setCursorPos(UCHAR y, UCHAR x);
void writeChar(UCHAR letter, UCHAR attr);
 
int main(void)
{
UCHAR baris, kolom;
  
getCursorPos(&baris, &kolom); // Baca posisi kursur
setCursorPos(5,10);
writeChar(0xc9, 0x1f); // Cetak Character
setCursorPos(5,69); // Pindahkan kursor
writeChar(0xbb, 0x1f); // Cetak Character
setCursorPos(19,10);
writeChar(0xc8, 0x1f); // Cetak Character
setCursorPos(19,69); // Pindahkan kursor
writeChar(0xbc, 0x1f); // Cetak Character

for(baris=6; baris<19; baris++)
{
setCursorPos(baris,10);
writeChar(0xba, 0x1f); // Cetak Character
setCursorPos(baris,69); // Pindahkan kursor
writeChar(0xba, 0x1f); // Cetak Character
}

for(kolom=11; kolom<69; kolom++)
{
setCursorPos(5,kolom);
writeChar(0xcd, 0x1f); // Cetak Character
setCursorPos(19,kolom); // Pindahkan kursor
writeChar(0xcd, 0x1f); // Cetak Character
}

getch();

return EXIT_SUCCESS;
}

void getCursorPos(UCHAR *y, UCHAR *x) // Baca posisi
{ // kursor
UCHAR row, col;

asm mov ah, 0x03; // Register AH = 3 heksadesimal
asm mov bh, 0x00; // Register BH = 0 heksadesimal
asm int VIDEO_INT; // Lakukan interupsi
asm mov row, dh; // Salin register DH ke row
asm mov col, dl; // Salin register DL ke col

*y = row; *x = col; // Salin row ke y, col ke x

return;
}

void setCursorPos(UCHAR y, UCHAR x) // Memindahkan
{ // Posisi kursor
asm mov ah, 0x02; // Register AH = 3 heksadesimal
asm mov bh, 0x00; // Register BH = 0 heksadesimal
asm mov dh, y; // Register DH = letak baris
asm mov dl, x; // Register DL = letak kolom
asm int VIDEO_INT; // Lakukan interupsi

return;
}

void writeChar(UCHAR letter, UCHAR attr) // Mencetak
{ // huruf
asm mov ah, 0x09; // Register AH = 9 heksadesimal
asm mov al, letter; // Register AL = hurufnya
asm mov bh, 0x00; // Register BH = 0 heksadesimal
asm mov bl, attr; // Register BL = warna huruf
asm mov ch, 0x00; // Register CH dan CL menentukan
asm mov cl, 0x01; // banyak pencetakan
asm int VIDEO_INT; // Lakukan interupsi

return;
}
 

Tidak ada komentar:

Posting Komentar

Pengenalan HTML

 Pengenalan HTML Hypertext   Markup   Language   (HTML)   adalah   sebuah   bahasa   untuk menampilkan konten di web. HTML sendiri adalah ba...