CONTOH CPP 6

CONTOH CPP 6 

#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
writeChar('J', 0x1f); // Cetak huruf J
setCursorPos(baris, ++kolom); // Pindahkan kursor
writeChar('O', 0x1f); // Cetak huruf O
setCursorPos(baris, ++kolom); // Pindahkan kursor
writeChar('S', 0x1f); // Cetak huruf S
setCursorPos(baris, ++kolom); // Pindahkan kursor
writeChar('U', 0x1f); // Cetak huruf U
setCursorPos(baris, ++kolom); // Pindahkan kursor
writeChar('A', 0x1f); // Cetak huruf A
setCursorPos(baris, ++kolom); // Pindahkan kursor
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
https://www.blogger.com/blogger.g?blogID=5168921208512921011#editor/target=post;postID=1516495478056765584asm mov bl, attr; // Register BL = warna huruf biru
asm mov ch, 0x00; // Register CH dan CL menentukan
asm mov cl, 0x01; // banyak pencetakan
asm int VIDEO_INT; // Lakukan interupsi

return;
}







Register AH berisi nilai 9 heksadesimal.
: Register AL berisi kode ASCII dari huruf/karakter yang akan dicetak.
: Register BH berisi halaman layar, halaman pertama nilainya 0.
: Register BL berisi nilai warna huruf/karakter (warna asal adalah 7).
: Register CH dan CL menentukan banyaknya karakter pada AL akan dicetak.


Register AH harus bernilai 2 heksadesimal.
: Register BH berisi nomor halaman tampilan, halaman pertama nilainya 0.
: Register DH berisi nomor baris (dimulai dari 0 sampai 24).
: Register DL berisi nomor kolom (dimulai dari 0 sampai batas akhir dikurangi 1).
 
Berikut ini adalah contoh program untuk menampilkan huruf J,O,S,U dan A dengan warna dasar biru dan warna huruf putih. Simpan project berikut ini dengan nama file contoh06.ide dan nama file kode program.
 
 
 

Komentar