include irvine16.inc .data snakestart dw ? forecolor byte 0ffh backcolor byte 01010101b Video equ 0b800h .code start proc mov ax, @data mov ds, ax mov ax, Video mov es, ax ;set to medium resolution mov ax, 4 int 10h background: mov di, 07D0h mov cx, 6000 mov al, 01010101b rep stosb mov di, 27D0h mov cx, 6000 rep stosb mov snakestart, 1C20h mov di, snakestart mov al,forecolor ;;;white call draw_snake mov eax, 10000 call delay mov al,backcolor mov di, snakestart call draw_snake mov eax, 10000 call delay ;mov cx,100 ;top: call Move_snake ; loop top mov ah, 1 int 21h mov ax, 2 int 10h mov ax, 4c00h int 21h start endp draw_snake proc ;draw even lines (bottom) push di ; mov al, 11111111b mov cx, 14 rep stosb pop di push di add di,80 mov cx, 14 rep stosb ;draw odd lines (bottom) ; mov al, 00001111b pop di add di, 2000h push di mov cx, 14 rep stosb pop di add di,80 ; mov al, 11111111b mov cx, 14 rep stosb ret draw_snake endp end start