Kompilasi oleh : Reza Ervani bin Asmanu
Dalam dunia pengembangan sistem operasi (OS Development) dan pemrograman tingkat rendah (low-level programming), kita sering mendengar istilah Interrupt. Salah satu interupsi yang paling legendaris dan fundamental dalam arsitektur x86 adalah Interrupt 0x10 (atau INT 10h).
Artikel ini akan mengupas apa itu Interrupt 0x10, bagaimana cara kerjanya, dan mengapa ia menjadi elemen kunci dalam proses booting komputer kita.
Apa Itu Interrupt?
Secara sederhana, Interrupt adalah sebuah sinyal yang dikirimkan ke prosesor (CPU) untuk menangguhkan aktivitasnya saat ini dan mengerjakan tugas tertentu. Bayangkan Interrupt seperti sebuah bel pintu. Saat bel berbunyi, penghuni rumah (CPU) berhenti sejenak dari pekerjaannya untuk melayani tamu di depan pintu.
Dalam konteks bootloader, karena kita belum memiliki sistem operasi yang canggih (seperti Windows atau Linux) untuk mengendalikan perangkat keras secara langsung, kita harus meminjam layanan dari BIOS (Basic Input/Output System). Di sinilah Interrupt berperan sebagai bahasa komunikasi antara kode kita dan BIOS.
Fokus Utama: Interrupt 0x10 (Video Services)
Setiap interupsi memiliki nomor pengenal yang berbeda. Interrupt 0x10 secara khusus dialokasikan untuk Video Services. Tugas utamanya adalah menangani segala hal yang berkaitan dengan tampilan di layar monitor, mulai dari mencetak teks, mengubah warna latar belakang, hingga mengatur resolusi grafis.
Cara Kerja: “Kontrak” Antara Programmer dan BIOS
Agar BIOS mengerti apa yang kita inginkan, kita harus mengikuti aturan main atau “protokol” yang sudah ditetapkan. Protokol ini melibatkan penggunaan Register (tempat penyimpanan data sementara di dalam CPU), khususnya register AX yang terbagi menjadi dua bagian: AH (High) dan AL (Low).
Prosedurnya biasanya terdiri dari tiga langkah:
- Mengisi Register AH: Menentukan jenis layanan atau “perintah” apa yang ingin dijalankan.
- Mengisi Register AL (dan register lainnya): Menentukan data atau “bahan” yang ingin diproses (misalnya karakter huruf).
- Memanggil INT 0x10: Menekan “tombol eksekusi” agar BIOS menjalankan perintah tersebut.
Daftar Layanan Umum pada Interrupt 0x10
BIOS menyediakan puluhan fungsi di dalam INT 0x10. Berikut adalah beberapa yang paling sering digunakan oleh pengembang sistem operasi pemula:
| Kode di Register AH | Nama Layanan | Fungsi |
| 0x0E | Teletype Output | Mencetak satu karakter dan otomatis memajukan kursor (seperti mesin tik). |
| 0x00 | Set Video Mode | Mengubah mode layar (misalnya dari mode teks ke mode grafis). |
| 0x02 | Set Cursor Position | Mengatur letak kursor di koordinat baris dan kolom tertentu. |
| 0x0B | Set Color Palette | Mengatur warna latar belakang atau palet warna di layar. |
| 0x13 | Write String | Mencetak satu kalimat utuh sekaligus ke layar. |
Mengapa Kita Menggunakannya?
Mungkin muncul pertanyaan: “Mengapa kita tidak langsung saja mengirim perintah ke kartu grafis?”
Jawabannya adalah kompatibilitas. Setiap produsen kartu grafis (NVIDIA, AMD, Intel) memiliki cara kerja hardware yang berbeda-beda. Menulis kode yang mendukung semua jenis hardware tersebut secara langsung adalah tugas yang sangat rumit dan memakan waktu.
Dengan menggunakan Interrupt 0x10, kita membiarkan BIOS yang menangani kerumitan tersebut. Kita cukup memberikan perintah standar, dan BIOS-lah yang akan menerjemahkannya agar sesuai dengan hardware yang terpasang di komputer tersebut. Ini disebut dengan abstraksi perangkat keras.
Penutup
Interrupt 0x10 adalah gerbang pertama bagi setiap sistem operasi untuk “berbicara” dengan penggunanya melalui tampilan visual. Meskipun saat ini sistem operasi modern sudah memiliki driver video sendiri yang jauh lebih canggih, memahami INT 0x10 tetap menjadi fondasi penting bagi siapa saja yang ingin mempelajari cara kerja komputer dari tingkat yang paling dasar.