ASCII Extended Character Set

ASCII Extended Character Set
          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). 
          Gambar-gambar berikut ini menampilkan nomor urut serta karakter ASCII reguler dan extended/perluasan.
Tabel ASCII Regular
Tabel ASCII Extended
          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, 0x1b);
   setCursorPos(4, 74); writeChar(184, 0x1b);
   setCursorPos(20, 4); writeChar(192, 0x1f);
   setCursorPos(20, 74); writeChar(217, 0x1f);

   for (baris = 5; baris < 20; baris++)
   {
      setCursorPos(baris, 4); writeChar(179, 0x1b);
      setCursorPos(baris, 74); writeChar(179, 0x1b);
   }

   for (kolom = 5; kolom < 74; kolom++)
   {
      setCursorPos(4, kolom); writeChar(205, 0x1d);
      setCursorPos(20, kolom); writeChar(196, 0x1d);
   }

   setCursorPos(4, 5); writeChar(181, 0x1d);
   setCursorPos(4, 6);
   writeString("Bingkai dengan ASCII", 0x1c);
   setCursorPos(4, 26); writeChar(198, 0x1d);

   for (baris = 5; baris < 20; baris++)
   {
      for (kolom = 5; kolom < 74; kolom++)
      {
         setCursorPos(baris, kolom);
         writeChar(0x20, 0x1e);
      }
   }

   setCursorPos(12, 25);
   writeString("Berubah Kamen Rider (Y/T)? [ ]", 0x1a);

   for (;;)
   {
      setCursorPos(12, 49);
      pilih = getch();

      writeChar(pilih, 0x1e);

      if ((pilih == 'Y') || (pilih == 'y'))
        break;
   }

   return EXIT_SUCCESS;
}

void setMode(UCHAR mode)
{
   asm mov ah, 0x00;
   asm mov al, mode;
   asm int VIDEO_INT

   return;
}

void getCursorPos(UCHAR *y, UCHAR *x)
{
   UCHAR row, col;

   asm mov ah, 0x03;
   asm mov bh, 0x00;
   asm int VIDEO_INT;
   asm mov row, dh;
   asm mov col, dl;

   *y = row; *x = col;

   return;
}

void setCursorPos(UCHAR y, UCHAR x)
{
   asm mov ah, 0x02;
   asm mov bh, 0x00;
   asm mov dh, y;
   asm mov dl, x;
   asm int VIDEO_INT;

   return;
}

void writeChar(UCHAR letter, UCHAR attr)
{
   asm mov ah, 0x09;
   asm mov al, letter;
   asm mov bh, 0x00;
   asm mov bl, attr;
   asm mov ch, 0x00;
   asm mov cl, 0x01;
   asm int VIDEO_INT;

   return;
}

void writeString(UCHAR *str, UCHAR attr)
{
   UCHAR x, y;

   getCursorPos(&y, &x);

   for (; *str != '\0'; str++)
   {
      if (x > 79)
      {
        y++; x = 0;
      }

      setCursorPos(y, x++);
      writeChar(*str, attr);
   }

   return;
}
          Berikut ini adalah script coding diatas yang dikerjakan pada lembar project Borlan C++:
          Hasil output dari program tersebut saat berhasil running adalah sebagai berikut:
Keterangan:
 Hasil output dari program tersebut adalah tampilan bingkai dengan menggunakan karakter ASCII.