Apa itu Program rontok?
Oh ya, jika ingin mendownload tutorial ini, silakan klik Program Rontok (ke kanan, ke kiri)
Program
rontok adalah program yang akan membersihkan layar dengan cara menjatuhkan atau
merontokkan huruf pada layar satu persatu.
Bagaimana
cara membuatnya?
Pada
program ini, kita menggunakan bentuk program macro.
Pada
postingan sebelumnya, pada win 7, kita bisa langsung membuat programnya dengan
command prompt, dan untuk win 8, kita menggunakan dosbox. Namun untuk program
kali ini hanya bisa di jalankan dengan menggunakan dosbox.
Rontok ke bawah
1. Buka dosbox, lalu
ketiklah edit
2. Maka akan muncul layar biru, pada layar biru tersebut ketiklah
seperti berikut (saya menscreenshoot saya membukanya dengan notepad++)
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.
3. Jika
sudah di ketik pada layar, simpanlah dengan file .ASM
4. Pilih file> exit untuk
kembali ke layar hitam
5. Ketiklah seperti di bawah
Rontok ke Atas
1. Pada layar biru tersebut ketiklah
seperti berikut (saya menscreenshoot saya membukanya dengan notepad++)
2. Pada bagian programnya (dari .model small sampai end) tidak ada yang diubah, sama seperti rontok ke bawah
3. Jalankan program di atas
4. Maka hasil yang akankita lihat seperti gambar dibawah
Ok, sekian dulu y...
Wassalamu'alaikum
0 komentar:
Posting Komentar