LAPORAN PRAKTIKUM
ORGANISASI KOMPUTER
MASUKKAN DARI KEYBOARD
Muhammad Agan Afta Binata
J3C115029
INF 2A-P1
PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA
DIREKTORAT PROGRAM DIPLOMA
INSTITUT PERTANIAN BOGOR
BOGOR
2016
I. TUJUAN
Tujan dari praktikum ini adalah
Mahasiswa dapat melaksanakan maupun memahamai cara memasukan inputan dari keyboard meunuju program emu8086.
Mahasiswa mampu memahami implementasi dan juga penggunaannya.
II. PENDAHULUAN
Masukkan dari Keyboard
Salah satu alat input yang paling mendasar dan menjadi standar bisa disebutnya komputer adalah keyboard. Keyboard adalah suatu alat input yang digunakan untuk manusia agar dapat berinteraksi dengan komputer. Brainware dapat berinteraksi dengan komputer salah satunya dengan menggunakan keyboard sebagai media alat inputnya. Sebuah komputer tanpa adanya keyboard, belum bisa dikatakan komputer dikarenakan komputer belum bisa berinteraksi dengan manusia.
Kode Scan dan ASCII
Prosesor pada keyboard mendeteksi setiap penekanan maupun pelepasan tombol pada keyboard. Prosesor ini menterjemahkan setiap sinyal yang terjadi berdasarkan posisi tertentu menjadi apa yang dinamakan kode Scan. Dengan demikian tombol "A" dan "B" akan mempunyai kode Scan yang berbeda karena posisinya memang berbeda. Lain halnya untuk tombol "A" <A besar> dan "a" <a kecil> yang terdapat pada posisi yang sama, akan mempunyai kode Scan yang sama. Kode Scan ini biasanya tidak berguna bagi kita. Kita biasanya hanya menggunakan kode ASCII dan Extended yang merupakan hasil terjemahan dari kode scan oleh keyboard handler. Kode ASCII adalah kode yang melambangkan suatu karakter baik berupa huruf, angka, maupun simbol-simbol grafik. Misalkan angka "1" akan dilambangkan dengan kode ASCII 49. Untuk kode ASCII ini bisa anda lihat pada lampiran.
Kode Extended
Kode ASCII telah menyediakan sebanyak 256 karakter dengan beberapa karakter kontrol, misalnya #10 untuk pindah baris dan #13 untuk Enter yang akan menggerakkan kursor kesamping kiri. Tetapi fungsi yang telah disediakan ini tidak mampu untuk menampilkan ataupun mendeteksi tombol fungsi misalnya F1, F2, F3 dan Home. Tombol kombisasi juga tidak dapat dideteksi oleh karakter ASCII , misalnya penekan tombol shif disertai tombol F1, penekanan Ctrl disertai tombol Home, dan lain-lain. Penekanan terhadap tombol-tombol fungsi dan tombol kombinasi akan menghasilkan kode ASCII 0 <nil>.
Masukkan Satu Karakter
Interupsi dari BIOS, yaitu interupsi 16h servis 0 dapat digunakan untuk mendapatkan masukan satu karakter dari keyboard. Hasil dari pembacaan karakter fungsi ini akan diletakkan pada register AX. Bila terjadi penekanan pada tombol biasa maka byte rendah dari AX<AL>, akan menunjukkan kode ASCII dari tombol tersebut dan byte tnggi dari AX<AH> akan berisi kode Scan dari tombol tersebut. Bila yang ditekan adalah tombol khusus(extended) yang akan menghasilkan kode ASCII 0 maka byte rendah dari register AX<AL> akan menghasilkan kode ASCII 0 dan byte tinggi dari AX<AH> akan berisi kode extended dari tombol tersebut.
Mendeteksi Penekanan Sembarang Tombol
Dengan fungsi 11h dari Interupsi 16h, kita bisa mendeteksi terhadap penekanan tombol,sama halnya seperti yang dilakukan oleh fungsi keypressed pada bahasa pascal. Fungsi ini akan mendeteksi keyboard buffer, bila pada keyboard buffer terdapat suatu tombol maka ia akan membuat zerro flags menjadi nol <0> dan register AL berisi kode ASCII dari karakter tersebut sedangkan register AH akan berisi kode
Scan dari tombol tersebut. Sebaliknya jika pada keyboard buffer tidak ada karakter maka zerro flags akan bernilai satu <1>. Keyboard buffer adalah suatu penampung yang digunakan untuk menampung setiap penekanan tombol pada keybaord. Daya tampung normal dari keyboard buffer adalah 15 karakter. Jika keyboard buffer telah penuh, speaker akan mengeluarkan tanda berupa suara beep.
Masukkan Kalimat dari Keyboard
Pada program-program sebelumnya kita hanya bisa mendapatkan masukan satu karakter pada keybaord, bagaimana jika diinginkan masukan berupa suatu kalimat? Untuk itu DOS telah menyedikannya.
Interupsi 21h servis ke 0Ah, digunakan untuk mendapatkan masukan dari keyboard lebih dari satu karakter. Adapun aturan pemakainya adalah:
INPUT OUTPUT
AH = 0Ah Buffer yang berisi string
DS:DX= Buffer hasil masukan dari keyboard
Untuk menggunakan fungsi ini anda harus menyediakan sebuah buffer untuk menampung hasil masukan dari keyboard. Anda bisa membuat sebuah buffer seperti:
Buffer DB X,Y,Z DUP(?)
III. PEMBAHASAN
Buatlah program dalam assembly untuk mencetak karakter dari keyboard (150 karakter) dan buatlah dengan mengadopsi fungsi warna untuk mencetak karakter yang akan dicetak tersebut.
Gambar SEQ Gambar \* ARABIC 1 Input & Output dari Program
Pembahasan :
Program menginisialisasi semua data-data mulai dari kalimat yang ingin diinputkan juga menentukan buffer penampung kata yang bisa diinputkan sebanyak beberapa karakter yang bisa ditampungnya dengan menggunakan fungsi “Buffer”. Setelah melakukan inisialisasi program, maka programpun akan dilocat dan lanjut ke label proses.
Dilabel proses untuk mencetak kalimat yaitu menggunakan service “AH, 09h” yang dipergunakan untuk memanggil interupsi pencetakan karakter. Sebelum melakukan pencetakan karakter, sebelumnya program harus mengetahui alamat aktif (efektif) dari kalimat yang akan di cetaknya dengan menggunakan fungsi “LEA”. Untuk menambah warna bisa menggunakan nilai “BL,00000000b” dan untuk masalah bab pencetakan karakter menggunakan warna juga, dan pernah dibahas sebelumnya bahwa dalam kode biner yang diinputkan mengandung makna masing-masing 4 bitnya. 4 bit pertama menandakan background yang akan dicetak pada karakter. Hendak diberi warna background apa dan juga 1 bit pertama paling kanan menandakan keserasian warna dan 3 bit selanjutnya menandakan RGB. Sama penjelasannya dengan 4 bit yang selanjutnya, perbedaanya hanya ada pada titiknya, 4 bit yang satu ini lebih kearah teks.
“Mov bh,00” menandakan nomor halaman dilayar, koordinat garis di vertikal urutan keberapa. “MOV CX,151” menandakan banyaknya karakter yang akan ditampilkan nantinya. Untuk masalah interupsi dengan service “ah,09” adalah int 10h.
service untuk menginputkan nilai kalimat bisa menggunakan service ”MOV AH, 0Ah”. Sebagai penunjuk pada offset buffer bisa menggunakan LEA DX. Selanjutnya interupsi INT 21H digunakan untuk menginputkan kalimatnya.
Langkah terakhir ialah mencetak kalimat yang telah diinputkan. Dengan menggunakan interupsi 21h dan service ah,09h berikut alamat efektif yang telah diinisialisasi di Tdata tadi, kita bisa mencetak karakternya seperti yang tertera digambar tersebut.
Untuk bagian label ulang sendiri dengan menggunakan untuk melompat, kalau semua operasi telah selesai dengan menekan tombol enter maka selesai aktivitas dari program tersebut.
IV Kesimpulan
Dapat disimpulkan bahwa dengan menggunakan kalimat “buffer” sebagai penampung karakter dan juga sebagai tempat memasukan sebuah karakter maupun banyak kalimat sesuai dengan masukan dari keyboard. Masukkan tersebut dapat kita kenali dengan interrupt 21h servis 0Ah.
V Daftar Pustaka
Suheri. A, 2013. “Buku Petunjuk Praktikum Organisasi Komputer”. Direktorat Program Diploma IPB. Bogor.