Senin, 08 Desember 2014

Membuat Menu Sorot

Diposting oleh Unknown di 00.57
Nama       : Marini Ayu Pangestika
Kelas        : 1 CB
NIM        : 061430700537
Mata Kuliah : Praktek 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:


Artikel ini dapat didownload Disini
Semoga Bermanfaat :)

0 komentar:

Posting Komentar

 

Marini Sudharmono Copyright © 2012 Design by Antonia Sundrani Vinte e poucos