FUNGSI / MAKRO SISTEM INTERUPSI DOS & AKSES PORT

dokumen-dokumen yang mirip
Modul Praktikum. Disusun oleh Tim Konsorsium Teknik Komputer. Akademi Manajemen Informatika dan Komputer

Pemrograman Terstruktur. Pemrosesan File Teks dan File Biner

Object Oriented Programming (OOP)

PRAKTIKUM 6 PENGULANGAN PROSES 2

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

Struktur Program Bahasa C

Tipe Data, Variabel, Input/Output

Tipe Data dan Operator

Struct Lanjutan: Studi Kasus

Achmad Solichin.

PERTEMUAN XI OPERASI FILE

PERTEMUAN 3 KONSEP TIPE DATA

Dasar Pemrograman Mikrokontroler dengan Bahasa C

Teknik Pemrograman Terstruktur 1

PENGENALAN BAHASA C DAN C++

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain :

BAB IV PENGULANGAN PROSES

Algoritma & Pemrograman

Achmad Solichin.

Sejarah C. Dirancang oleh Denis M. Ritchie tahun 1972 di Bell Labs.

3. Struktur Perulangan dalam C++

KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C

OPERASI FILE DASAR PEMROGRAMAN

Chapter 1 KONSEP DASAR C

Mata Kuliah : Bahasa Rakitan Materi ke-3

BAHASA PEMROGRAMAN C

OPERASI PERNYATAAN KONDISI

DASAR PEMROGRAMAN C UNTUK MIKROKONTROLER

Seharusnya. if (antrian.tail==max-1) return 0;

Struktur Kontrol. 1.Pemilihan (Selection) 2.Pengulangan (Repetition)

Bahasa C-M6 By Jamilah, Skom 1

MENAMPILKAN HASIL Operasi Keluaran (Output)

Daftar Isi. Daftar Isi Pertemuan 6: Perintah Masukkan dari Keyboard P6.1. Teori Masukkan dari Keyboard... 3

MODUL 7 FILE. namafile adalah nama dari file yang akan dibuka/diaktifkan. mode adalah jenis operasi file yang akan dilakukan terhadap file.

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

BAB VI BAHASA C Pendahuluan

BAHASA PEMROGRAMAN C LANGUAGE

Materi 3. Komponen Mikrokomputer SYSTEM HARDWARE DAN SOFTWARE DADANG MULYANA

BAB XII OPERASI FILE

MODUL I PENGENALAN ASSEMBLY

Looping : break, continue, nested loop

VIII MANIPULASI STRING

INPUT DAN OUTPUT BAHASA C

Modul V Pemrograman Bahasa C ( bagian II )

Pada prinsipnya operasi yang dilakukan pada file terdiri dari 3 tahapan : 1. Membuka file 2. Melakukan pemrosesan pada file 3.

MODUL 1 Alur Seleksi dengan C++

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

Pada bahasa pemrograman C++, dapat dibuat program dengan beberapa sub-program sesuai dengan keinginan dengan menggunakan fungsi.

R E G I S T E R. = Code Segment Register = Data Segment Register = Stack Segment Register = Extra Segment Register. 3.

Kisi-Kisi Ujian Tengah Semester Algoritma dan Pemrograman Lanjut

BAB 4 KONDISI / PEMILIHAN

VI. FUNGSI. Fungsi Main ( ) Fungsi a ( ) Fungsi b ( ) Fungsi c ( ) Fungsi c1 ( ) Fungsi c2 ( ) Fungsi c3 ( ) Bentuk umumnya :

ORGANISASI DAN ARSITEKTUR KOMPUTER. rsp oak informatika

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

DIKTAT MATA KULIAH PEMROGRAMAN I BAB XII FILE

Algoritma & Pemrograman #11. by antonius rachmat c, s.kom, m.cs

Hari : Rabu Pertemuan : 3 Tanggal Praktikum : Oktober 2001 Shift : 4

SATUAN ACARA PERKULIAHAN (SAP)

Pengenalan Bahasa C. 1. Struktur penulisan program. #include < [library2.h] > #define [nama2] [nilai] ;

Algoritma Shell Sort Ascending Dan Binary Sequential Search Menggunakan C

Tujuan : A. Percabangan Percabangan di dalam Java terdapat 2 macam, yaitu dengan memakai if dan switch.

Bahasa Rakitan PENGERTIAN REGISTER

MIKROPROSESOR REGISTER-REGISTER MIKROPROSESOR INTEL

Fungsi : Dasar Fungsi

TUTORIAL BAHASA PEMOGRAMAN C++

BAB 2. FUNGSI INPUT OUTPUT

Keg. Pembelajaran 5 : Perulangan dalam C++ 1. Tujuan Kegiatan Pembelajaran 2. Uraian Materi while do..while for continue dan break go to

Pencipta bahasa C adalah Brian W. Kernighan dan Dennis M. Ritchie pada. sekitar tahun C adalah bahasa pemrograman terstruktur, yang membagi

Mikroprosesor. Bab 3: Arsitektur Mikroprosesor. INTEL 8086 Generasi Awal Prosesor PENTIUM. Arsitektur Mikroprosesor 1

Mikroprosesor. Pertemuan 8. By: Augury

PRAKTIKUM 2. perubah (variabel), konstanta, fungsi, atau obyek lain yang didefinisikan oleh

Dosen : Dede Kurniadi, S.Kom.,M.Kom HP :

1.4 Struktur Program Pada C++ Program C maupun C++ secara umum tersusun dari beberapa bagian utama, yaitu :

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

VARIABEL & TIPE DATA PEMROGRAMAN C++

Perulangan, Percabangan, dan Studi Kasus

PERTEMUAN 7 REVIEW (QUIZ)

PRAKTIKUM 10 STRING A B C D E \0. Gambar 11.1 Komposisi penyimpanan string dalam memori

Konsep Dasar Pemrograman Dan Pengenalan C++

MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PERTEMUAN 1

KENDALI PROSES. 6.1 PENYELEKSIAN KONDISI (Selection)

Pendahuluan Pemrograman Mikrokontroler

MODUL III FLOW CONTROL INSTRUTIONS

UNIVERSITAS WIDYATAMA JURUSAN TEKNIK INFORMATIKA - FAKULTAS TEKNIK Jl. Cikutra No.204 A BAndung UJIAN TENGAH SEMESTER TA.

Ringkasan 32 keyword dalam C

BAB VI. STATEMENT CONTROL

BAHASA C CodeVisionAVR (CVAVR)

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Eksplorasi Prosesor 8086 Dengan Program DEBUG

STRUKTUR DATA Pertemuan 1 s.d 8

MI, KA-D3, SIA, SIB. ADI, S.Kom.

B A B FUNGSI ATAU FUNCTION

PERTEMUAN XI OPERASI FILE

Bahasa C melengkapi fasilitas modular dengan menggunakan fungsi pada setiap SubProgram. Contoh pembagian program menjadi beberapa subprogram.

Algoritma Pemrograman. Fery Updi,M.Kom

1. Konstanta String Kostanta ABCDE disimpan dalam memory secara berurutan, dengan komposisi sebagai berikut : Memory rendah.

KURSUS ONLINE JASA WEBMASTERS

Percabangan & Perulangan

Hari : Rabu Pertemuan : 4 Tanggal Praktikum : 28 November 2001 Shift : 4

Transkripsi:

FUNGSI / MAKRO SISTEM INTERUPSI DOS & AKSES PORT system() Fungsi system() memungkinkan untuk menjalankan perintah DOS dari program C. Fungsi ini akan melibatkan file DOS bernama COMMAND.COM, ketika melaksanakan perintah DOS. Untuk menunjukkan lokasi COMMAND.COM, kita bisa mengaturnya melalui variabel COMSPEC dalam DOS. Bentuk deklarasi Prototipe pada file header int system(const char *perintah) stdlib.h atau process.h Contoh 13.1: Menggambarkan cara melaksanakan berbagai perintah DOS (seperti TYPE, DIR) dari program C. /*----------------------------------------------------------*/ /* contoh pemakaian fungsi system() */ /*---------------------------------------------------------*/ #include <stdio.h> /* prototipe gets() */ #include <conio.h> /* prototipe cprintf(), getch() & clrscr() */ #include <stdlib.h> /* prototipe exit(), system() */ #include <string.h> /* prototipe strchr(), strcpy() & strcat() */ void dir(void); void type(void); void del(void); void ke_dos(void); main() char pilihan; do clrscr(); cprintf( MENGAKSES PERINTAH DOS MELALUI C ); cprintf( 1. Melihat isi direktori\r\n ); cprintf( 2. Melihat isi file\r\n ); cprintf( 3. Menghapus file\r\n ); cprintf( 4. ke DOS sementara\r\n ); cprintf( 5. selesai\r\n\r\n ); cprintf( pilihan ( 1.. 5 )? : ); do pilihan = while (strchr( 12345, pilihan) ==0); switch (pilihan) 1

case 1 : dir(); break; case 2 : type(); break; case 3 : del(); break; case 4 : ke_dos(); break; while (pilihan!= 5 ); void dir(void) clrscr(); system( dir ); cprintf( \r\ntekan sembarang tombol ); void type(void) char perintah[80]; char namafile[80]; clrscr(); cprintf( File yang akan dilihat isinya? : ); gets(namafile); strcpy(perintah, TYPE ); strcat(perintah, namafile); system(perintah); cprintf(\r\ntekan sembarang tombol ); void del(void) char perintah[80]; char namafile[80]; clrscr(); cprintf( File yang akan dihapus? : ); gets(namafile); strcpy(perintah, DEL ); strcat(perintah, namafile); system(perintah); cprintf(\r\ntekan sembarang tombol ); void ke_dos(void) system( ); /* di sistem dos, hingga perintah EXIT diberikan */ 2

int86() Fungsi int86() bermanfaat untuk melakukan interupsi secara software terhadap prosesor komputer. Dalam hal ini : Nmrintr *inregs *outregs Nomor interupsi yang akan dilakukan Berisi data masukan bagi register dari prosessor Berisi data keluaran dari register, setelah interupsi dilaksanakan Keluaran fungsi int86() berupa nilai register AX (nilai dari AX, setelah interupsi dilaksanakan). Namun, jika carry flag (outregs x.cflag) tidak bernilai sama dengan nol, berarti ada suatu kesalahan. Bentuk deklarasi Prototipe pada file header int int86 (int nmrintr, union REGS *inregs, union REGS *outregs ); dos.h Catatan: REGS merupakan tipe union yang definisinya ada pada file judul dos.h. Definisinya adalah sebagai berikut : Struct WORDREGS unsigned int ax, bx, cx, dx, si, di, cflag; Struct BYTEREGS unsigned char al, ah, bl, bh, cl, ch, dl, dh; union REGS struct WORDREGS x; struct BYTEREGS h; Tampak bahwa pada union REGS : 1. h.al adalah byte orde terendah dari x.ax (register AL byte terendah dari register AX). 2. h.ah adalah byte orde tertinggi dari x.ax (register AH byte tertinggi dari register AX). 3. h.bl adalah byte orde rendah dari x.bx. 4. dll. Contoh pemakaian int86(), yaitu untuk mengatur bentuk kursor. Bentuk kursor sesungguhnya dapat diatur dengan menjalankan interupsi nomor 0x10, fungsi nomor 0x01. Caranya, sebelum interupsi, register-register yang perlu diisi adalah : AH, «--- nomor fungsi 0x01 CH, «--- posisi garis awal kursor CL, «--- posisi garis akhir kursor 3

Adapun data untuk pengaturan bentuk kursor adalah sebagai berikut : Untuk Adapter Bentuk Kursor Normal Tersembunyi Besar CGA Posisi garis awal 0x06 0x20 0x00 Posisi garis akhir 0x07 0x20 0x07 Monochrome Posisi garis awal 0x0C 0x20 0x00 Posisi garis akhir 0x0D 0x20 0x0D Contoh 13.2: Program berikut ini dapat digunakan untuk mengatur bentuk kursor baik yang menggunakan adapter CGA maupun monochrome. Untuk mendeteksi mode layar yang sedang aktif, program memanfaatkan fasilitas interupsi nomor 0x10, nomor fungsi 0x0F. Caranya mulamula register AH diisi dengan 0x0F. Setelah interupsi dijalankan, mode layar dapat diperiksa pada register AL. Jika register AL bernilai 7, berarti bahwa mode yang aktif adalah mode monochrome. /* contoh pemakaian fungsi Int86() */ /* untuk mengatur bentuk kursor */ #include <conio.h> #include <dos.h> void kursor_besar(void); void kursor_sembunyi(void); void kursor_normal(void); void mode_video(void); main() clrscr() cputs( DEMO KURSOR\r\n\r\n ); kursor_besar(); cputs( KURSOR BESAR (Tekanlah sembarang tombol) ); clrscr() kursor_sembunyi(); cputs( KURSOR SEMBUNYI (Tekanlah sembarang tombol) ); clrscr() kursor_normal(); cputs( KURSOR NORMAL (Tekanlah sembarang tombol) ); 4

void kursor_besar(void) /* Fungsi untuk membuat kursor berukuran besar */ inregs.h.ah = 0x01; inregs.h.ch = 0x00; if (mode_video() == MONO) inregs.h.cl = 0x0D; else inregs.h.cl = 0x07; int86(0x10, &inregs, &outregs); void kursor_sembunyi(void) /* Fungsi untuk menyembunyikan kursor */ inregs.h.ah = 0x01; inregs.h.ch = 0x20; inregs.h.cl = 0x20; int86(0x10, &inregs, &outregs); void kursor_normal(void) /* Fungsi untuk menormalkan bentuk kursor */ inregs.h.ah = 0x01; if (mode_video() == MONO) inregs.h.ch = 0x0C; inregs.h.cl = 0x0D; else inregs.h.ch = 0x06; inregs.h.cl = 0x07; int86(0x10, &inregs, &outregs); void mode_video(void) /* Fungsi untuk memperoleh mode video */ inregs.h.ah = 0x0F; int86(0x10, &inregs, &outregs); return (outregs.h.al); Catatan : MONO adalah konstanta yang didefinisikan pada file judul conio.h. konstanta ini bernilai 7. 5

intdos() Fungsi intdos() bermanfaat untuk menjalankan interupsi 0x21, yang melibatkan suatu fungsi DOS. Dalam hal ini, fungsi DOS yang dilaksanakan ditentukan melalui register AH (inregs h.ah). Bentuk deklarasi Prototipe pada file header int intdos ( union REGS *inregs, union REGS *outregs ); dos.h Hasil fungsi intdos() berupa isi register AX. Namun, jika carry flag (inregs x.cflag) tidak bernilai sama dengan nol, berarti ada suatu kesalahan. Contoh 13.3: Contoh berikut ini digunakan untuk mencetak string ke printer dengan menggunakan fasilitas fungsi DOS nomor 0x05. /* contoh pemakaian fungsi Intdos */ /* untuk mencetak string ke printer */ #include <dos.h> void cetak_string(char *str); main() char *str = MENCETAK STRING MENGGUNAKAN FUNGSI DOS 0x05 ; cetak_string(str); void cetak_string(char *str) int indeks; inregs.h.ah = 0x05; while (str[indeks]) inregs.h.dl = str[indeks++]; /* karakter yang akan dicetak */ intdos(&inregs, &outregs); /* Cetak karakter */ 6

inportb() inportb() berfungsi untuk mendapatkan data sebuah byte dari port bernomor nmrport. Bentuk deklarasi Unsigned char inportb( int nmrport ); Prototipe pada file header dos.h inportb() dapat berupa fungsi atau makro. Jika file dos.h disertakan, inport() diperlakukan sebagai makro. Inportb() diperlakukan sebagai fungsi, jika file dos.h tidak dilibatkan dalam program, atau bila file dos.h disertakan, tetapi sesudah #include <dos.h> terdapat pengarah preposessor berupa : # undef inportb. outportb() outportb() berfungsi untuk menempatkan nilai (berukuran 1 byte) ke port bernomor nmrport. Bentuk deklarasi void outportb( int nmrport, unsigned char nilai ); Prototipe pada file header dos.h Catatan : outportb() dapat berupa fungsi atau makro. Contoh 13.4 Contoh berikut ini memberikan gambaran pemakaian outportb(). Dalam hal ini, fungsi outportb() dipakai untuk mengatur warna pinggir layar. /* contoh pemakaian fungsi outportb() */ /* untuk mengatur warna pinggir layar. */ /* khusus adapter CGA. */ #include <dos.h> main() int warna; for (warna=15; warna>=0; warna--) outportb(0x3d9, warna); /* Ubah warna pinggir layar */ delay(2000); /* Tunda sebentar */ 7

inport() inport() berfungsi untuk mendapatkan data berukuran dua byte dari port bernomor nmrport. Bentuk deklarasi Unsigned char inport( int nmrport ); Prototipe pada file header dos.h Catatan : Inport() dapat berupa fungsi atau makro. outport() outport() berfungsi untuk menempatkan nilai (berukuran 2 byte) ke port bernomor nmrport. Bentuk deklarasi void outport( int nmrport, unsigned char nilai ); Prototipe pada file header dos.h Catatan : outport() dapat berupa fungsi atau makro. 8