Selasa, 09 Desember 2014

Bahasa Rakitan : Membuat Program Sorot


1.       Buka terlebih dahulu notepad untuk membuat program sorot



2.       Lalu tuliskan perintah seperti berikut
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,50
                                           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
                SUB BX,160
                LOOP LOOP2
               
                POP CX
                POP BX
                POP AX
                ENDM

                Cls          MACRO                               
                MOV AX,0600h
                XOR CX,CX
                MOV DX,184Fh
                MOV BH,3     
                INT 10h
                ENDM
                GotoXY                 MACRO X,Y        
                MOV AH,02
                XOR BX,BX
                MOV DH,Y
                MOV DL,X
                INT 10h
                ENDM
                SimpanL MACRO                             
                LOCAL Ulang     
                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
                LOCAL Ulang
                MOV CX,4000
                XOR BX,BX
                Ulang:
                MOV AL,Layar[BX]
                MOV ES:[BX],AL
                INC BX
                LOOP Ulang
                ENDM
                Sorot     MACRO X,Y        
                LOCAL Ulang
                MOV BL,Y
                MOV AL,160
                MUL BL
                MOV BX,AX
                MOV AL,X
                MOV AH,2
                MUL AH
                ADD BX,AX
                INC BX                 
                MOV CX,15
                Ulang:
                MOV BYTE PTR ES:[BX],4Fh
                ADD BX,2
                LOOP Ulang
                ENDM
                Readkey MACRO                            
                MOV AH,00       
                INT 16h                
                ENDM
                MenuL MACRO String  
                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 Warna        |',13,10
                                DB 9,9,'|     2. Cetak Karakter tak warna  |',13,10
                                DB 9,9,'|     3. Melayang                              |',13,10
                                DB 9,9,'|     4. SELESAI                             |',13,10
                                DB 9,9,'|                                                      |',13,10
                                DB 9,9,'+==============================+$' DB 
                PosX      DB          22          
                PosY      DB          12
Panah_Atas        EQU 72                
Panah_Bawah EQU 80  
                TEnter   EQU 0Dh
Proses :
                Cls                                         
                GotoXY                 0 8                         
                MenuL Menu
                SimpanL
Ulang :
                BalikL    
                Sorot     PosX,PosY

Masukan:
                Readkey
                CMP      AH,Panah_Bawah
                JE            Bawah

                CMP      AH,Panah_Atas               
                JE            CekY                     

                CMP      AL,TEnter           

                je      pilihan

                JNE         Masukan            
CekY
                CMP      PosY,12               
                JE            MaxY                    
                DEC        PosY                     
                JMP       Ulang                   
MaxY :
                MOV     PosY,15               
                JMP       Ulang                   
Bawah :
                CMP      PosY,15               
                JE            NolY                      
                INC         PosY                     
                JMP       Ulang                   
NolY :
                MOV     PosY,12               
                JMP       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

3.       Setelas selesai menulisakan perintah seperti di atas simpanlah dengan nama ‘sorotmid.asm’ lalu bukalah dos box.






4.       Setelah buuka does box, cek dengan menggunakan tasm dan tlink/t.





5.       Setelas selesai maka akan muncul seperti gambar berikut ini.



6.       Apabila ditekan enter maka akan keluar karakter A-Z dengan warna yang sama.



7.       Jika ingin kembali seperti gambar nomor 6 maka tekan saja panah ke bawah yang ada di keyboard leptop atau komuter.








8.        lakukan sama seperti langkah sebelumnya lalu tekan enter maka akan tampil berikut.




9.  Apabila ingin keluar dari perogram maka kursor harus ada di menu no 4



Tidak ada komentar:

Posting Komentar