Pada
bagian ini akan kita lihat, bagaimana caranya menggeser tulisan dengan
mengakses memory layar secara langsung dengan program rontok.
Program
rontok adalah program yang akan membersihkan layar dengan cara menjatuhkan atau
merontokkan huruf pada layar satu persatu.
Video
tutorial menuliskan program rontok di cmd:
Untuk lebih
jelas bisa download di link youtube: http://youtu.be/po05y3LcBTU
Penjelasan
program
Delay MACRO
PUSH CX
XOR CX,CX
Loop1:
LOOP Loop1
POP CX
ENDM
|
Macro ini digunakan untuk menunda program. Dengan menolkan CX,
maka looping yang akan didapatkan menjadi FFFFh kali, karena pengurangan 0
dengan 1 akan akan menghasilkan nilai -1 atau FFFFh.
|
Geser MACRO PosY
PUSH AX
PUSH BX
PUSH CX
|
Pada
macro inilah nantinya huruf-huruf pada layar akan digeser. Untuk itu
simpanlah semua register yang digunakan oleh macro ini karena pada program
utama, register-register juga digunakan.
|
XOR
CX,CX
MOV
AL,26
SUB
AL,PosY
MOV
CL,AL
|
Ini
adalah bagian dari macro geser yang akan menghitung banyaknya pergeseran
kebawah yang akan dilakukan, dengan melihat posisi dari huruf yang digeser
pada variabel "PosY".
|
Loop2:
MOV
AL,BYTE PTR ES:[BX]
MOV
BYTE PTR ES:[BX+160],AL
Hilang:
MOV
BYTE PTR ES:[BX],' '
Delay
ADD
BX,160
LOOP
Loop2
|
Bagian
inilah yang akan menggeser tulisan pada layar. Register BX ditambah dengan
160 untuk mengakses baris dibawahnya.
|
POP
CX
POP
BX
POP
AX
ENDM
|
Pada
akhir macro, kembalikanlah semua register yang telah disimpan pada awal
macro. Ingat urutannya harus terbalik. Pada program utama:
|
.MODEL
SMALL
.CODE
ORG 100h
TData : JMP Proses
PosY DB ?
|
Pertama-tama
siapkanlah sebuah variabel untuk menampung posisi dari baris yang sedang
diakses.
|
Proses:
MOV
AX,0B800h
MOV
ES,AX
MOV
BX,3998
MOV
CX,25
|
Register
ES, kita gunakan sebagai penunjuk segment layar, yaitu pada segment B800h.
Register BX yang nantinya akan kita gunakan sebagai penunjuk offset dari ES
diberi nilai 3998. Dengan demikian pasangan ES:BP akan menunjuk pada karakter
dipojok kanan bawah atau posisi 79,24.
|
UlangY
:
MOV
PosY,CL
PUSH
CX
MOV
CX,80
UlangX
:
CMP
BYTE PTR ES:[BX],33
JB
Tdk
Geser
PosY
Tdk
:
SUB
BX,2
LOOP
UlangX
POP
CX
LOOP
UlangY
EXIT:
INT
20h
END
TData
|
Kemudian
lakukanlah proses dengan melihat apakah ada karakter atau tidak. Hal ini
dapat dilakukan dengan membandingkannya dengan kode ASCII 33, bila data pada
buffer layar dibawah ASCII 33 artinya tidak ada karakter pada
layar.
Jika ada karakter pada layar maka proses geser dilakukan,
sebaliknya jika tidak ada karakter proses akan menuju pada posisi selanjutnya
dan melakukan hal yang sama.
|
Setelah
menuliskan program tersebut di command prompt, maka anda cek kesalahan program
memakai TASM dan cetak TLINK dengan menggunakan DOSBOX, apabila tidak ada
softwarenya, maka anda install terlebih dahulu.
Maka
program tersebut tercetak, yaitu program rontok atau huruf yang melayang kebawah,
sehingga huruf-huruf yang ada pada layar hilang satu persatu.
Video program
rontok kebawah:
Untuk lebih
jelas bisa di download di link youtube: https://www.youtube.com/watch?v=ssrL13kNyEU
Perintah
MOV AL ditambah dari sebelumnya, perintah BX+160 diubah menjadi BX-160 itu
artinya program tersebut rontok ke atas, sedangkan perintah ADD BX,160 diubah
menjadi SUB BX,160, agar huruf-hurufnya setelah hilang tidak membuat huruf lagi
diatasnya, jadi program tersebut rontok dari bawah keatas.
Video
program rontok keatas:
Untuk
lebih jelas bisa di download di link youtube: http://youtu.be/-jk1cJk1f_U
Apabila
ingin membuat rontok ke kanan maka yang harus diubah dari program pertama
adalah seperti gambar dibawah ini:
BX+160
diubah menjadi BX+20 dan tidak menggunakan ADD, itulah yang mengakibatkan
huruf-huruf pada layar rontok ke kanan.
Lalu cek
kesalahan menggunakan TASM, dan cetak menggunakan perintah TLINK, maka
programnya akan tercetak, yaitu huruf-huruf pada layar rontok atau melayang ke
kanan.
Video
program rontok kekanan:
Untuk
lebih jelas bisa di download di link youtube: http://youtu.be/Va38_buvU8M
Apabila
ingin membuat program rontok kekiri, maka yang perlu diubah dari program
pertama adalah seperti gambar di bawah ini:
Untuk membuat
huruf-huruf pada layar rontok kekiri atau sama dengan seperti dihapus
menggunakan backspace program tersebut menggunakan BX-20 dan memakai ADD BX,20
seperti gambar diatas.
Lalu cek
kesalahan menggunakan TASM, dan cetak menggunakan perintah TLINK, maka
programnya akan tercetak, yaitu huruf-huruf pada layar rontok kekiri.
Video
program rontok kekiri:
Untuk
lebih jelas bisa di download di link youtube: http://youtu.be/7GVSxOWUmT4