Kelas : 1CB
NIM : 061430700541
Mata Kuliah : Praktek Bahasa Rakitan
Langkah - Langkah Membuat Menu Sorot Modifikasi
Berikut ini adalah langkah - langkah yang harus anda lakukan sebelum membuat menu sorot ssebagai berikut ini ;
1. klik ikon Windows kemudian klik program DOSBox 0.74 seperti pada Gambar 1,kemudian hasilnya akn tampil di layar anda seperti pada Gambar 2 dibawah ini ;
Gambar 1
Gambar 2
2. Setelah program DOSBox 0.74 terbuka lalu anda ketik langkah-langkah selanjutnya seperti berikut ini :
- mount e c :\tasm
- e:
- edit
Setelah anda melakukan langkah - langkah diatas hal yang harus anda
lakukan selanjtnya adalah mengetik kata-kata yang ada dibawah ini ;
DELAY MACRO
MOV AX,0600h
XOR CX,CX
MOV DX,184Fh
MOV BH,10
INT 10h
ENDM
LOOP1:
LOOP LOOP1
POP CX
ENDM
GESER MACRO PosY
PUSH AX
PUSH BX
PUSH CX
XOR CX,CX
MOV AL,26
SUB AL,PosY
MOV CL,AL
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
POP CX
POP BX
POP AX
ENDM
Cls MACRO ; Macro untuk menghapus layar
MOV AX,0600h
XOR CX,CX
MOV DX,184Fh
MOV BH,10
INT 10h
ENDM
GotoXY MACRO X,Y ; Macro untuk memindahkan kursor
MOV AH,02 \
XOR BX,BX
MOV DH,Y
MOV DL,X
INT 10h
ENDM
SimpanL MACRO ; Macro untuk menyimpan seluruh
LOCAL Ulang ; isi layar monitor
MOV AX,0B800h
MOV ES,AX
MOV CX,4000
XOR BX,BX
Ulang:
MOV AL,ES:[BX]
MOV Layar[BX],AL
INC BX
LOOP Ulang
ENDM
BalikL MACRO ; Macro untuk mengembalikan semua
LOCAL Ulang ; isi layar yang telah disimpan
MOV CX,4000
XOR BX,BX
Ulang:
MOV AL,Layar[BX]
MOV ES:[BX],AL
INC BX
LOOP Ulang
ENDM
Sorot MACRO X,Y ; Macro untuk membuat sorotan
LOCAL Ulang ; pada menu
MOV BL,Y
MOV AL,160
MUL BL
MOV BX,AX
MOV AL,X
MOV AH,2
MUL AH
ADD BX,AX
INC BX ; Alamat warna pada posisi X,Y
MOV CX,15 ; Panjangnya sorotan
Ulang:
MOV BYTE PTR ES:[BX],4Fh ; Atribut sorotan
; putih diatas merah
ADD BX,2
LOOP Ulang
ENDM
Readkey MACRO ; Macro untuk membaca masukan dari
MOV AH,00 ; keyboard
INT 16h ; hasilnya AH= Extended, AL=ASCII
ENDM
MenuL MACRO String ; Macro untuk mencetak menu
MOV AH,09
LEA DX,String
INT 21h
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Layar DB 4000 DUP (?)
Menu DB 9,9,'+=============================+',13,10
DB 9,9,'| »»» MENU SOROT ««« |',13,10
DB 9,9,'+=============================+',13,10
DB 9,9,'| |',13,10
DB 9,9,'| 1. Pilihan Pertama |',13,10
DB 9,9,'| 2. Pilihan Kedua |',13,10
DB 9,9,'| 3. Pilihan Ketiga |',13,10
DB 9,9,'| 4. Pilihan Keempat |',13,10
DB 9,9,'| |',13,10
DB 9,9,'+=============================+$'
PosX DB 22 ; Posisi kolom mula-mula
PosY DB 12 ; Posisi baris mula-mula
Panah_Atas EQU 72 ; Kode tombol panah atas
Panah_Bawah EQU 80 ; Kode tombolpanah bawah
TEnter EQU 0Dh ; Kode tombol Enter
Proses :
Cls ; Hapus Layar
GotoXY 0 8 ; kursor = 0,8
MenuL Menu ; Gambar menu
SimpanL ; Simpan isi layar
Ulang :
BalikL ; Tampilkan isi layar yang
; disimpan
Sorot PosX,PosY ; Sorot posisi X,Y
Masukan :
Readkey ; Baca masukan dari keyboard
CMP AH,Panah_Bawah ; Panah bawah yang ditekan ?
JE Bawah ; Ya! lompat bawah
CMP AH,Panah_Atas ; Panah atas yang ditekan ?
JE CekY ; Ya, lompat CekY
CMP AL,TEnter ; Tombol enter yang ditekan ?
je pilihan
JNE Masukan ; Bukan, lompat ke ulangi
CekY :
CMP PosY,12 ; Apakah sorotan paling atas ?
JE MaxY ; Ya! lompat ke MaxY
DEC PosY ; Sorotkan ke atas
JMP Ulang ; Lompat ke ulang
MaxY :
MOV PosY,15 ; PosY=Sorotan paling bawah
JMP Ulang ; lompat ke ulang
Bawah :
CMP PosY,15 ; Apakah sorotan paling bawah ?
JE NolY ; Ya! lompat ke NolY
INC PosY ; Sorotkan ke bawah
JMP Ulang ; Lompat ke ulang
NolY :
MOV PosY,12 ; Sorotkan paling atas
JMP Ulang ; Lompat ke ulang
Pilihan : CMP PosY,12
JE Huruf
CMP PosY,13
JE Warna
CMP PosY,14
JE Rontok
CMP PosY,15
JMP SELESAI
Huruf : CLS
GotoXY 25 10
MOV AH,02h
MOV DL,'A'
MOV CX,26
Huruf2 :
INT 21h
ADD DL,1
Loop Huruf2
JMP Masukan
Warna :
gotoxy 25 10
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna :
int 10h
add bl,1
loop repwarna
mov ah,02h
mov dl,'A'
mov cx,26
repwarna :
int 21h
loop repwarna2
jmp Masukan
rontok: JMP Prontok
Prontok:cls
gotoxy 25 15
mov ah,02h
mov dl,'A'
mov cx,26
huruf3:
int 21h
add dl,1
loop huruf3
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna1:
int 10h
add bl,1
loop repwarna1
mov ah,02h
mov dl,'A'
mov cx,26
repwarna3:
int 21h
loop repwarna3
MOV AX,0B800H
MOV ES,AX
MOV BX,3998
MOV CX,25
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
jmp Selesai
Selesai :
INT 20h
END TData
Hasilnya bisa anda lihat seperti pada gambar dibawah ini ;
Kalau anda sudah selesai hal yang harus anda lakukan selanjutnya adalah dicek sekali lagi agar tidak terdapatnya kesalahan,setelah sudah anda cek kemudian klik File lalu klik Save dan berilah nama file nya xxx.asm atau seperti contoh diatas mid3.asm
Bila anda tekan Enter pada tulisan Kata Bewarna maka yang akan tampil pada layar anda seperti pada gambar dibawah ini ;
Sedangkan bila anda menekan tombol Enter pada tulisan Kata tidak bewarna maka hasil yang akan tampil dilayar anda seperti pada gambar dibawah ini ;
Sedangkan bila anda menekan tombol Enter pada tulisan Rontok maka hasil yang akan tampil pada layar anda seperti pada gambar dibawah ini ;
Keterangan :
MOV AX,0600h
XOR CX,CX
MOV DX,184Fh
MOV BH,10
INT 10h
ENDM
GotoXY MACRO X,Y ; Macro untuk memindahkan kursor
MOV AH,02 \
XOR BX,BX
MOV DH,Y
MOV DL,X
INT 10h
ENDM
SimpanL MACRO ; Macro untuk menyimpan seluruh
LOCAL Ulang ; isi layar monitor
MOV AX,0B800h
MOV ES,AX
MOV CX,4000
XOR BX,BX
Ulang:
MOV AL,ES:[BX]
MOV Layar[BX],AL
INC BX
LOOP Ulang
ENDM
BalikL MACRO ; Macro untuk mengembalikan semua
LOCAL Ulang ; isi layar yang telah disimpan
MOV CX,4000
XOR BX,BX
Ulang:
MOV AL,Layar[BX]
MOV ES:[BX],AL
INC BX
LOOP Ulang
ENDM
Sorot MACRO X,Y ; Macro untuk membuat sorotan
LOCAL Ulang ; pada menu
MOV BL,Y
MOV AL,160
MUL BL
MOV BX,AX
MOV AL,X
MOV AH,2
MUL AH
ADD BX,AX
INC BX ; Alamat warna pada posisi X,Y
MOV CX,15 ; Panjangnya sorotan
Ulang:
MOV BYTE PTR ES:[BX],4Fh ; Atribut sorotan
; putih diatas merah
ADD BX,2
LOOP Ulang
ENDM
Readkey MACRO ; Macro untuk membaca masukan dari
MOV AH,00 ; keyboard
INT 16h ; hasilnya AH= Extended, AL=ASCII
ENDM
MenuL MACRO String ; Macro untuk mencetak menu
MOV AH,09
LEA DX,String
INT 21h
ENDM
.MODEL SMALL
.CODE
ORG 100h
TData : JMP Proses
Layar DB 4000 DUP (?)
Menu DB 9,9,'+=============================+',13,10
DB 9,9,'| »»» MENU SOROT ««« |',13,10
DB 9,9,'+=============================+',13,10
DB 9,9,'| |',13,10
DB 9,9,'| 1. Pilihan Pertama |',13,10
DB 9,9,'| 2. Pilihan Kedua |',13,10
DB 9,9,'| 3. Pilihan Ketiga |',13,10
DB 9,9,'| 4. Pilihan Keempat |',13,10
DB 9,9,'| |',13,10
DB 9,9,'+=============================+$'
PosX DB 22 ; Posisi kolom mula-mula
PosY DB 12 ; Posisi baris mula-mula
Panah_Atas EQU 72 ; Kode tombol panah atas
Panah_Bawah EQU 80 ; Kode tombolpanah bawah
TEnter EQU 0Dh ; Kode tombol Enter
Proses :
Cls ; Hapus Layar
GotoXY 0 8 ; kursor = 0,8
MenuL Menu ; Gambar menu
SimpanL ; Simpan isi layar
Ulang :
BalikL ; Tampilkan isi layar yang
; disimpan
Sorot PosX,PosY ; Sorot posisi X,Y
Masukan :
Readkey ; Baca masukan dari keyboard
CMP AH,Panah_Bawah ; Panah bawah yang ditekan ?
JE Bawah ; Ya! lompat bawah
CMP AH,Panah_Atas ; Panah atas yang ditekan ?
JE CekY ; Ya, lompat CekY
CMP AL,TEnter ; Tombol enter yang ditekan ?
je pilihan
JNE Masukan ; Bukan, lompat ke ulangi
CekY :
CMP PosY,12 ; Apakah sorotan paling atas ?
JE MaxY ; Ya! lompat ke MaxY
DEC PosY ; Sorotkan ke atas
JMP Ulang ; Lompat ke ulang
MaxY :
MOV PosY,15 ; PosY=Sorotan paling bawah
JMP Ulang ; lompat ke ulang
Bawah :
CMP PosY,15 ; Apakah sorotan paling bawah ?
JE NolY ; Ya! lompat ke NolY
INC PosY ; Sorotkan ke bawah
JMP Ulang ; Lompat ke ulang
NolY :
MOV PosY,12 ; Sorotkan paling atas
JMP Ulang ; Lompat ke ulang
Pilihan : CMP PosY,12
JE Huruf
CMP PosY,13
JE Warna
CMP PosY,14
JE Rontok
CMP PosY,15
JMP SELESAI
Huruf : CLS
GotoXY 25 10
MOV AH,02h
MOV DL,'A'
MOV CX,26
Huruf2 :
INT 21h
ADD DL,1
Loop Huruf2
JMP Masukan
Warna :
gotoxy 25 10
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna :
int 10h
add bl,1
loop repwarna
mov ah,02h
mov dl,'A'
mov cx,26
repwarna :
int 21h
loop repwarna2
jmp Masukan
rontok: JMP Prontok
Prontok:cls
gotoxy 25 15
mov ah,02h
mov dl,'A'
mov cx,26
huruf3:
int 21h
add dl,1
loop huruf3
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna1:
int 10h
add bl,1
loop repwarna1
mov ah,02h
mov dl,'A'
mov cx,26
repwarna3:
int 21h
loop repwarna3
MOV AX,0B800H
MOV ES,AX
MOV BX,3998
MOV CX,25
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
jmp Selesai
Selesai :
INT 20h
END TData
Hasilnya bisa anda lihat seperti pada gambar dibawah ini ;
Kalau anda sudah selesai hal yang harus anda lakukan selanjutnya adalah dicek sekali lagi agar tidak terdapatnya kesalahan,setelah sudah anda cek kemudian klik File lalu klik Save dan berilah nama file nya xxx.asm atau seperti contoh diatas mid3.asm
Setelah selesai anda Save dan diberi nama,kemudian klik File lalu klik Exit,setelah itu hal yang harus anda lakukan selanjutnya anda ketik tasm mid3(nama file.asm) lalu anda tekan Enter maka akan tampil dilayar anda seperti pada gambar dibawah ini ;
Hal yang harus anda lakukan selanjutnya adalah sebagai berikut :
- ketik tlink nama file(nama file tugas yang anda simpan) lalu tekan Enter
- ketik tlink/t Nama file(nama file yang anda simpan) lalu tekan Enter
- ketik nama file(nama file yang anda simpan) lalu tekan Enter
Bila anda tekan Enter pada tulisan Kata Bewarna maka yang akan tampil pada layar anda seperti pada gambar dibawah ini ;
Sedangkan bila anda menekan tombol Enter pada tulisan Kata tidak bewarna maka hasil yang akan tampil dilayar anda seperti pada gambar dibawah ini ;
Sedangkan bila anda menekan tombol Enter pada tulisan Rontok maka hasil yang akan tampil pada layar anda seperti pada gambar dibawah ini ;
Keterangan :
- Cls MACRO ; Macro untuk menghapus layar
- MOV BH,10 ; Atribut Hijau diatas hitam
- GotoXY MACRO X,Y ; Macro untuk memindahkan kursor
- SimpanL MACRO ; Macro untuk menyimpan seluruh
- LOCAL Ulang ; isi layar monitor
- BalikL MACRO ; Macro untuk mengembalikan semua
- LOCAL Ulang ; isi layar yang telah disimpan
- Sorot MACRO X,Y ; Macro untuk membuat sorotan
- LOCAL Ulang ; pada menu
- INC BX ; Alamat warna pada posisi X,Y
- MOV CX,25 ; Panjangnya sorotan
- MOV BYTE PTR ES:[BX],4Fh ; Atribut sorotan putih diatas merah
- Readkey MACRO ; Macro untuk membaca masukan dari
- INT 16h ; hasilnya AH=Extended, AL=ASCII
- MenuL MACRO String ; Macro untuk mencetak menu
- MOV DH ; Posisi Baris(00-24)
- MOV DL ; Posisi Kolom(00-79)
- MOV BH,0 ; Halaman Layar(0=default)
0 comments:
Post a Comment