Rabu, 03 Desember 2014

MEMBUAT PROGRAM MENU SOROT


NAMA : ONA ANISA
KELAS : 1CB
NIM: 061430700545
assalamualakum wr.wb

LANGKAH-LANGKAH KERJA

1. Buatlah folder di D terlebih dahulu dan sudah terdapat aplikasi RTM (download disini  ) TASM (download  disini) dan TLINK (download disini)
2. bukalah aplikasi Command Prompt
3. masukkan perintah berikut seperti pada gambar
C:\user\notebook>cd..(enter)
C:\user>cd.. (enter)
C:\>d: (enter)
D:\>cd ona (enter)
D:\ona>edit (enter)

maka akan keluar layar biru ketiklah perintah berikut seperti pada gambar


      

DELAY MACRO  ; macro untuk menunggu program
                PUSH CX
                XOR CX,CX
LOOP1:
        LOOP LOOP1
        POP CX
        ENDM

GESER MACRO PosY ;macro untuk menggeser tulisan
        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 ; ukuran memori yang digunakan
.CODE ; perintah yang dimasukkan berbentuk code ascii
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 ;sorotan menu 1 dipilih
    je    warna             ;lompot ke warna
    cmp    posy,13       ;sorotan menu 2 dipilih
    je    huruf               ;lompat ke huruf
    cmp    posy,14        ;sorotan nomor 3 dipilih
        je      rontok        ; lompat ke rontok
        cmp     posy,15   ;sorotan nomor 4 dipilih
        jmp     selesai2    ;lompat ke selesai2
       
huruf:  cls                 ;hapus layar
        gotoxy 25 10    ;kursor 25,10
        mov ah,02h     
        mov dl,'A'
        mov cx,26
        huruf2:
        int 21h
        add dl,1
        loop huruf2

    jmp Masukan         ;lompat ke 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) sorotan.asm


 

 setelah disimpan klik file-->exit
kembali kelayar hitam ketiklah perintah-perintah berikut :
D:\ona>tasm sorotan(nama folder yang kita simpan ) lalu enter
D:\ona>tlink sorotan(enter)
D:\ona>tlink/t sorotan(enter)
D:\ona> sorotan

hasilnya seperti ini


jika kita tekan enter di sorotan nomor satu maka akan keluar karakter seperti berikut
 setelah itu tekan tombol down (ke bawah) sorot ke bawah kita akan kembali ke menu sorot dan jika
di enter hasinya
kalau nomor 3,hasilnya semua karakter rontok
 dan nomor 4 ke exit, kita keluar dari menu sorot


oke sekian postingan saya kali ini semoga bermanfaat.

 klik link di bawah ini untuk mendownload tutorial:
download file here

"berani jujur itu baik,memang sulit di jalani tapi yakinlah akan ada kemenangan di balik itu semua, bersabarlah ^_^''

Tidak ada komentar:

Posting Komentar