Untuk
mencetak kalimat, bisa digunakan interupsi 21 fungsi 9 dengan aturan:
INPUT
AH = 9
DS:DX = Alamat String tersebut
CATATAN = Karakter '$' dijadikan tanda akhir tulisan
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;
; Program: kal0.asm ;
; Oleh : S’to ;
; Fungsi : Mencetak String ;
; dengan Int 21 servis 9 ;
;=====================================;
.MODEL SMALL
.CODE
ORG 100h
Tdata : JMP Proses
Kal0 DB 'PROSES PENCETAKAN STRING ',13,10,'$'
Kal1 DB 'DIBELAKANG
TANDA $ TIDAK BISA DICETAK '
Proses :
MOV AH,09h ; Servis ke 9
MOV DX,OFFSET Kal0 ; Ambil Alamat Offset Kal0
INT 21h ; Cetak perkarakter sampai tanda $
LEA DX,Kal0 ; Ambil Alamat Offset Kal0
INT 21h ; Cetak perkarakter
sampai tanda $
LEA DX,Kal0+7 ; Ambil Alamat Offset KAl0+7
INT 21h ; Cetak perkarakter
sampai tanda $
LEA DX,KAL1 ; Ambil Offset kal1
INT 21h ; Cetak perkarakter
sampai ketemu $
INT 20h ; Selesai, kembali
ke DOS
END Tdata
Program 12.1. Mencetak kalimat dengan fungsi DOS
Pada
saat program 12.1. anda jalankan, maka dilayar akan ditampilkan:
PROSES
PENCETAKAN STRING
DIBELAKANG TANDA
Pada
saat pendefinisian untuk variabel "KAL0" kita menambahkan tanda 13
dan 10. Kedua tanda ini merupakan karakter kontrol untuk pindah baris(tanda10)
dan menuju kolom 0(tanda 13). Pada akhir dari setiap kalimat yang ingin dicetak
harus kita tambahkan dengan karakter "$". Karakter ini akan dipakai
sebagai tanda akhir dari kalimat.
Karena
karakter "$" dijadikan sebagai tanda akhir dari kalimat yang ingin
dicetak, maka pada proses pencetakan karakter yang kedua hanya kalimat "DIBELAKANG TANDA" yang tercetak.
Sisa kalimatnya, yaitu "TIDAK BISA
DICETAK" tidak tercetak keluar, karena terletak dibelakang tanda
"$".
Dengan
demikian, bila kita ingin mencetak kalimat yang mengandung tanda "$",
harus digunakan fungsi yang lain, misalnya mencetak kalimat dengan perkarakter
melalui interupsi 21 fungsi 2.
12.2. KARAKTER KONTROL
Pada
program 12.1. kita telah menggunakan 2 buah karakter kontrol, yaitu 10(LF) dan
13(CR). Karakter kontrol yang tersedia untuk operasi pada video yang sering
digunakan terdapat 5, yaitu 07, 08, 09, 10 dan 13(Gambar 12.1).
------------------------------------------------------------------------------------------------------------
CODE NAMA FUNGSI
------------------------------------------------------------------------------------------------------------
07 Bel Memberikan suara BEEP
08 Backspace(BS) Memindahkan kursor 1 kolom ke
belakang
09 Horisontal Tab Memindahkan kursor 8 kolom ke kanan
10 Line Feed(LF) Memindahkan kursor 1 baris ke bawah
13 Carriage Return(CR) Memindahkan kursor menuju awal baris
------------------------------------------------------------------------------------------------------------
Gambar 12.1. Karakter Kontrol Yang Sering Digunakan
Selain
dari karakter kontrol pada gambar 12.1, masih terdapat karakterkarakter kontrol
lain, yang sebagian besar digunakan untuk keperluan komunikasi komputer dengan
periferalnya. Karakter kontrol yang tersedia pada ASCII secara lengkap bisa
anda lihat pada gambar 12.2.
------------------------------------+----------------------------------
CODE NAMA | CODE NAMA
------------------------------------+----------------------------------
00 Nul |
16 Data Link Escape
01 Start Of Heading | 17 Device Control
02 Start Of Text | 18 Negative Acknowledge
03 End Of Text | 19 Synchronous Idle
04 End Of Transmission | 20 End Of Transmission Block
05 Enquiry | 21 Cancel
06 Acknowledge | 22 End Of Medium
07 Bel | 23 Substitute
08 Backspace | 24 Escape
09 Horisontal Tabulation | 25 File Separator
10 Line Feed | 26 Group Separator
11 Vertical Tabulation | 27 Record Separator
12 Form Feed | 28 Unit Separator
13 Carriage Return | 29 Space
14 Shift Out | 30 Delete
15 Shift In |
------------------------------------+----------------------------------
Gambar 12.2. Karakter Kontrol Pada ASCII
12.3. MENCETAK KALIMAT
DENGAN ATRIBUTNYA
Pada
bagian sebelumnya kita mencetak kalimat dengan fungsi DOS yang mencetak kalimat
tanpa atribut. Untuk mencetak kalimat dengan atributnya bisa digunakan fungsi
dari BIOS, melalui interupsi 10h. Adapun yang harus anda persiapkan adalah:
register AX diisi dengan 1300h, BL diisi dengan atribut yang ingin ditampilkan,
BH diisi dengan halaman tampilan, DL diisi dengan posisi X tempat kalimat
tersebut akan tercetak sedangkan DH diisi dengan posisi Y-nya. Karena fungsi
ini tidak mengenal batas tulisan "$" seperti interupsi 21h servis 9,
maka kita harus mengisikan CX dengan banyaknya karakter dalam kalimat. Register
ES:BP digunakan untuk mencatat alamat dari kalimat yang ingin dicetak.
;/================================================\;
; Program
: ATTR-KLM.ASM ;
; Author
: S’to ;
; Fungsi
: Mencetak kalimat disertai ;
; atributnya
;
;-----------------------------------------------------------------------------------------;
; INT
10h ;
;-----------------------------------------------------------------------------------------;
; Input
: ;
; AX = 1300h ;
; BL = Atribut ;
; BH = Halaman tampilan ;
; DL = Posisi X ;
; DH = Posisi Y ;
; CX = Panjang kalimat<dalam karakter> ;
; ES:BP = Alamat awal
string ;
; ;
;\============================================
===/;
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Kal0 DB ' Menulis kalimat dengan Atributnya '
Proses:
MOV AX,1300h ;
Servis 13h subfungsi 00
MOV BL,10010101b ;
Atribut tulisan
MOV BH,00 ;
Halaman tampilan 0
MOV DL,20 ;
Posisi X
MOV DH,12
; Posisi Y
MOV CX,35
; Banyaknya karakter dalam string
LEA BP,Kal0 ; ES:BP alamat string
INT 10h ; Cetak kalimat !
INT 20h ;
Selesai, kembali ke DOS
END TData
Program 12.2. Mencetak Kalimat Dengan Atributnya
Bila
program 12.2. dijalankan, maka layar pada posisi kolom ke 20 dan baris ke 12
akan terdapat tulisan:
Menulis kalimat dengan Atributnya
Tulisan
ditampilkan dengan warna tulisan putih dan warna dasar jingga. Mengenai halaman
layar akan dibahas pada bagian yang lain, sedangkan mengenai atribut akan
segera kita bahas.
12.4. PENGATURAN ATRIBUT
Atribut
atau warna menggunakan 1 byte
memory, yang akan menandakan warna tulisan dan warna dasar dari karakter yang
akan tercetak. Byte atribut ini digunakan dengan masing-masing bitnya, dimana
setiap bit mencatat warnanya masing-masing. Adapun spesifikasinya adalah:
Warna Dasar
Warna Tulisan
+------+-------+
+--------+--------+
Bit-ke 7
6 5 4 3 2 1 0
_
_ _ _ _ _ _ _
BL R
G B I R G B
Catatan: BL = Blink atau
berkedip
R = Merah
G = Hijau
B = Biru
I = Intensitas warna
Untuk
menghidupkan warna yang diinginkan anda tinggal menjadikan bit tersebut menjadi
satu. Sebagai contohnya bila anda menginginkan warna tulisan Biru dengan warna
dasar Hijau, maka anda tinggal menghidupkan bit ke 0 dan 5 atau dengan angka
00100001b(21h). Untuk menjadikannya berintensitas tinggi dan berkedip anda juga
tinggal menjadikan bit ke 3 dan 7 menjadi satu(10101001b). Bila anda menghidupkan bit ke 0,1 dan 2 menjadi satu dan mematikan
bit-bit lainnya maka anda akan mendapatkan campuran dari ketiga warna
tersebut(Putih) untuk warna tulisan dan warna hitam untuk warna dasar. Inilah
warna normal yang biasa digunakan, yaitu warna dengan atribut 7.


0 komentar:
Posting Komentar