Assallaummuallaikum.Wr.Wb.
Kali ini saya akan menjelaskan tentang Set Karakter ASCII Perluasan atau bisa disebut ASCII Extended Character Set . Untuk yang penasaran mari kita simak!
ASCII Extended Character Set Pada C++
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).
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.
| 
#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, 0x4e);  
setCursorPos(4, 74); writeChar(184, 0x4e);  
setCursorPos(20, 4); writeChar(192, 0x4e);  
setCursorPos(20, 74); writeChar(217, 0x4e);  
for (baris = 5; baris < 20; baris++)  
{  
setCursorPos(baris, 4); writeChar(179, 0x4e);  
setCursorPos(baris, 74); writeChar(179, 0x4e);  
}  
for (kolom = 5; kolom < 74; kolom++)  
{  
setCursorPos(4, kolom); writeChar(205, 0x17);  
setCursorPos(20, kolom); writeChar(196, 0x17);  
}  
setCursorPos(4, 5); writeChar(181, 0x4e);  
setCursorPos(4, 6);  
writeString("Bingkai dengan ASCII", 0x4e);  
setCursorPos(4, 26); writeChar(198, 0x4e);  
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)? [ ]", 0x4e);  
for (;;)  
{  
setCursorPos(12, 49);  
pilih = getch();  
writeChar(pilih, 0x4e);  
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; | 
Berikut ini contoh foto codingan sepert yang di atas :
sekian yang dapat saya ulas wassallammuallaikum.wr.wb



Komentar spam dilarang
EmoticonEmoticon