Program Sorot

Program Sorot
1.      Buka Program Dosbox karna jika di jalankan di CMD printah rontok tidak akan berjalan,

Ketikan printah
a.       mount d d:\1ca\asm
b.      d:
 
2.      Maka akan muncul program assembly, seperti gambar di bawah Buka lagi program cmd yang ke dua  untuk melakukan pemrograman atau yang kita sebut coding,  ketikan perintah
a.       cd  \
b.      d:
c.       cd 1ca/asm
d.      edit
atau bisa dilihat di bawah ini :
 

3.      Maka akan muncul program assembly, seperti gambar di bawah ini :
 
4.      Brikut kode program Sorot
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,20       ; 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. Cetak Karakter          |',13,10
                DB      9,9,'|  2. Cetak Karakter warna    |',13,10
                DB      9,9,'|  3. Rontok                  |',13,10
                DB      9,9,'|  4. Exit                    |',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     ; Sorotan 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 8
        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
        loop repwarna2
      jmp Masukan

rontok: JMP Prontok
       
Prontok:cls
        gotoxy 25 12
      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



5.      Sesudah memasukan kode program atau coding, save as file nya dengan format (.ASM)


6.      Buka DOSBOX untuk menguji program yang telah kita buat tadi, dengan mengetikan perintah :
a.       TASM (nama file) cth : TASM sorot.ASM -> untuk melihat apakah program yg kita buat ada yang error dll.
b.      tlink/t sorot-> untuk membuat file objek ke bentuk file yang dapat di eksekusi (EKTENSI   .COM  .EXE)
c.       kemudian untuk melihat karakter yang telah kira buat tinggal mengetikan nama file yang kita buat tadi contoh (sorot) enter,  maka akan tampil karakter yg kita buat.
Seperti di bawah ini :





Jika ingin data di atas silahkan klik
DOWNLOAD

Previous
Next Post »