Assalamualaikum wr,wb
NAMA : Putri Rizki Amalia
KELAS :
1CB
NIM : 061730700546
MATA KULIAH : Bahasa Rakitan
Saya akan memposting "Membuat Menu Sorot" Masih
dalam program DOSbox 0,74.
Proses Kerjanya sebagai berikut:
1. Jalankan DOSBox 0.74 dan ketik Mount E C:\TASM
Setelah itu ketik
E: , kemudian ketik edit dan enter
2. Kemudian
ketikan perintah seperti perintah yang ada di gambar tersebut
DELAY MACRO
PUSH CX
XOR CX,CX
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 ; Atribut Hijau diatas hitam
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. Huruf Warna |’,13,10
DB 9,9,’|
2. Huruf tidak berwarna |’,13,10
DB 9,9,’|
3. Rontok
|’,13,10
DB 9,9,’|
4. selesai |’,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
; Sorotan paling atas
JMP Ulang ; Lompat ke ulang
pilihan:cmp posy,12
je warna
cmp posy,13
je huruf
cmp posy,14
je rontok
cmp posy,15
jmp selesai2
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: cls
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
repwarna2:
int 21h
add dl,1
loop repwarna2
jmp Masukan
rontok: JMP Prontok
Prontok:
gotoxy 25 10
mov ah,09h
mov bh,00h
mov bl,1
mov cx,26
repwarna4:
int 10h
add bl,1
loop repwarna4
gotoxy 5 10
mov ah,02h
mov dl,’A’
mov cx,26
repwarna5:
int 21h
add dl,1
loop repwarna5
mov ah,02h
mov dl,’A’
mov cx,26
repwarna3:
int 21h
add dl,1
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 masukan
selesai2 : jmp
selesai
Selesai:cls
INT 20h
END TData
setelah selesai simpan file (file > save as) sorot.asm
seperti gambar dibawah ini:
Setelah itu pilih
File-exit
3. Kemudian jalankan
program dengan cara seperti berikut:
maka akan tampil menu
seperti:
Dan ketika kita
menyorot no.1 maka akan tampil seperti:
Ketika kita menyorot
pada no.2
Maka akan tampil
seperti berikut:
Ketika kita menyorot
pada no.3
Maka akan tampil
seperti berikut:
Ketika kita menyorot
pada no.4
Maka program akan
menjadi keluar seperti berikut:
Semoga Bermanfaat :)
Tidak ada komentar:
Posting Komentar