Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- STACKSG SEGMENT PARA STACK 'Stack'
- DW 32 DUP(?)
- STACKSG ENDS
- ;############ DATA SEGMENT ##########
- DATASG SEGMENT PARA 'Data'
- NAMEPAR LABEL BYTE
- r_end DW 00h
- l_end DW 00h
- DeltaT DW 00h
- DATASG ENDS
- ;############ CODE SEGMENT ##########
- CODESG SEGMENT PARA 'Code'
- BEGIN PROC FAR
- ASSUME CS:CODESG, DS:DATASG, SS:STACKSG
- PUSH DS
- SUB AX, AX
- PUSH AX
- MOV AX, DATASG
- MOV DS, AX
- MOV AH, 0 ; SET DISPLAY MODE FUNCTION.
- MOV AL, 13h ; MODE 13H = 320X200 PIXELS, 256 COLORS.
- INT 10h ; SET IT!
- mov dx,3c8h
- mov al,1 ; color # 1
- out dx,al
- mov dx,3c9h
- mov al,63 ; red value
- out dx,al
- mov al,63 ; green value
- out dx,al
- mov al,63 ; blue value
- out dx,al
- mov dx,3c8h
- mov al,2 ; color # 2
- out dx,al
- mov dx,3c9h
- mov al,0 ; red value
- out dx,al
- mov al,0 ; green value
- out dx,al
- mov al,0 ; blue value
- out dx,al
- mov ax,0a000h
- mov es,ax
- mov ax,100
- mov bx,100
- shl ax,8
- shl bx,6
- add ax,bx
- add ax,29
- mov di,ax
- mov l_end, ax
- mov r_end, ax
- add r_end, 270
- ;mov al, 1
- ;CALL DRAW_SQUARE
- move_right: mov al, 2
- CALL DRAW_SQUARE
- inc di
- mov al, 1
- CALL DRAW_SQUARE
- ;mov al, 2
- ;mov es:[di],al
- mov ah, 0bh
- int 21h
- cmp al, 0
- jne stopm
- cmp di, r_end
- jl move_right
- move_left: mov al, 2
- CALL DRAW_SQUARE
- dec di
- mov al, 1
- CALL DRAW_SQUARE
- ;mov al, 2
- ;mov es:[di+1],al
- mov ah, 0bh
- int 21h
- cmp al, 0
- jne stopm
- cmp di, l_end
- jg move_left
- jmp move_right
- stopm:
- MOV AH,00
- INT 16h
- MOV AH,00
- MOV AL, 2
- INT 10h
- ret
- BEGIN ENDP
- DRAW_SQUARE PROC
- push si
- mov si, di
- push bx
- push cx
- mov bx, 0
- vert: mov cx, 0
- horiz: mov es:[si],al
- inc si
- inc cx
- cmp cx, 4
- jle horiz
- sub si, 5
- add si, 320
- inc bx
- cmp bx, 4
- jle vert
- pop cx
- pop bx
- pop si
- ret
- DRAW_SQUARE ENDP
- CODESG ENDS
- END BEGIN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement