#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);
for (baris = 5; baris < 20; baris++)
{
setCursorPos(baris, 4); writeChar(179, 0x17);
setCursorPos(baris, 74); writeChar(179, 0x17);
}
for (kolom = 5; kolom < 74; kolom++)
{
setCursorPos(4, kolom); writeChar(205, 0x17);
setCursorPos(20, kolom); writeChar(196, 0x17);
}
setCursorPos(4, 5); writeChar(181, 0x17);
setCursorPos(4, 6);
writeString("Bingkai dengan ASCII", 0x1f);
setCursorPos(4, 26); writeChar(198, 0x17);
for (baris = 5; baris < 20; baris++)
{
for (kolom = 5; kolom < 74; kolom++)
{
setCursorPos(baris, kolom);
writeChar(0x20, 0x1e);
}
}
setCursorPos(12, 25);
writeString("Akhiri program (Y/T)? [ ]", 0x1e);
for (;;)
{
setCursorPos(12, 49);
pilih = getch();
writeChar(pilih, 0x1e);
if ((pilih == 'Y') || (pilih == 'y'))
break;
}
return EXIT_SUCCESS;
}
void setMode(UCHAR mode) // Mengubah mode
{ // tampilan layar
asm mov ah, 0x00; // Register AH = 0
asm mov al, mode; // Register AL = mode
asm int VIDEO_INT // Lakukan interupsi
return;
}
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;
}
void writeString(UCHAR *str, UCHAR attr) // Mencetak
{ // string
UCHAR x, y;
getCursorPos(&y, &x); // Simpan posisi kursor
for (; *str != '\0'; str++) // Loop sampai ditemukan
{ // NULL
if (x > 79)
{ // Jika sudah sampai kolom
y++; x = 0; // ke-80, pindah baris dan
} // pindah ke kolom ke-1
setCursorPos(y, x++); // Pindahkan posisi kursor
writeChar(*str, attr); // Cetak per karakter
}
return;
}
Gambarnya Sebagai Berikut :
Penjelasannya :
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. Dan menggunakan ASCII. 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).
Kamis, 23 Juni 2016
Langganan:
Posting Komentar (Atom)
About Me
Diberdayakan oleh Blogger.
Popular Posts
Formulir Kontak
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
Blog Archive
-
▼
2016
(30)
-
▼
Juni
(30)
- Contoh 27 (Coding) dan Gambarnya
- Contoh Mouse.cpp (Coding)
- Contoh 26 (Coding) dan Gambarnya
- Contoh 25 (Coding) dan Gambarnya
- Contoh 24 (Coding) dan Gambarnya
- Contoh 23 (Coding) dan Gambarnya
- Contoh 22 (Coding) dan Gambarnya
- Contoh 21 (Coding) dan Gambarnya
- Contoh 20 (Coding) dan Gambarnya
- Contoh 19 (Coding) dan Gambarnya
- Contoh 18 (Coding) dan Gambarnya
- Contoh 17 (Coding) dan Gambarnya
- Contoh Keyboard.cpp (Coding)
- Contoh 16 (Coding) dan Gambarnya
- Contoh 15 (Coding) dan Gambarnya
- Contoh 14 (Coding) dan Gambarnya
- Contoh 13 (Coding) dan Gambarnya
- Contoh 12 (Coding) dan Gambarnya
- Contoh 11 (Coding) dan Gambarnya
- Contoh 10 (Coding) dan Gambarnya
- Contoh Screen.cpp (Coding)
- Contoh 9 (Coding) dan Gambarnya
- Contoh 8 (Coding) dan Gambarnya
- Contoh 7 (Coding) dan Gambarnya
- Contoh 6 (Coding) dan Gambarnya
- Contoh 5 (Coding) dan Gambarnya
- Contoh 4 (Coding) dan Gambarnya
- Contoh 3 (Coding) dan Gambarnya
- Contoh 2 (Coding) dan Gambarnya
- Contoh 1 (Coding) dan Gambarnya
-
▼
Juni
(30)
0 komentar:
Posting Komentar