PROGRAM C++ PROGRES BAR

 #include <conio.h>

#include <stdio.h>

#include <dos.h>

#include <stdlib.h>

#include <iostream>

#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);

void writeString(UCHAR *str, UCHAR attr);


int main(void)

{

   unsigned short int i, jeda;


    setCursorPos(3,10);

    writeString("Contoh Progress Bar , 0x0f"); // Cetak String

    setCursorPos(4,10);

    writeString("-------------------", 0x0f); // Cetak String Garis

    setCursorPos(5,10);

   writeString("Waktu Jeda (maks. 3) :    Detik", 0x0f); // Cetak String

   setCursorPos(5,34);


   scanf("%hu",&jeda);

   jeda *= 100;


    setCursorPos(8,10);

    writeChar(0xda, 0x0f); // Cetak Sudut kiri atas

    setCursorPos(8,34);

    writeChar(0xbf, 0x0f); // Cetak sudut kanan atas

    setCursorPos(10,10);

    writeChar(0xc0, 0x0f); // Cetak sudut kiri bawah

    setCursorPos(10,34);

    writeChar(0xd9, 0x0f); // Cetak sudut kanan bawah

    setCursorPos(9,10);

    writeChar(0xb3, 0x0f); // Cetak garis tegak kiri

    setCursorPos(9,34);

    writeChar(0xb3, 0x0f); // Cetak garis tegak kanan


    for(i=11; i<=33; i++)

    {

        setCursorPos(8,i);

        writeChar(0xc4, 0x0f); // Cetak Character

        setCursorPos(10,i); // Pindahkan kursor

        writeChar(0xc4, 0x0f); // Cetak Character

    }


      for (i = 11; i <= 33; i++)

   {

       setCursorPos(9, i);

      writeChar(0xdb,0x0e);

      delay(jeda);

   }


   setCursorPos(9, 36);

   writeString("SELESAI",0x0f);

   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;

}


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 sampaikolom

            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;

}

Subscribe to receive free email updates:

0 Response to "PROGRAM C++ PROGRES BAR"

Post a Comment