.286 .model small .code org 100h ;-------------------- startx equ 10 starty equ 10 sizex equ 10 sizey equ 10 ;-------------------- start: mov ax, 13h int 10h push startx push starty push offset face push sizex push sizey call WriteSprite mov ah, 8h int 21h mov ax, 3h int 10h int 20h CoolWait proc near push bp mov bp, sp push cx mov cx, word ptr [bp+4] ggg: push cx mov cx, 0 loop $ pop cx loop ggg pop cx pop bp ret 2 endp WriteSprite proc near ;writesprite(x,y,char *sprt,razmx,razmy) push bp mov bp,sp razmy equ word ptr [bp+4] razmx equ word ptr [bp+6] sprt equ word ptr [bp+8] posy equ word ptr [bp+10] posx equ word ptr [bp+12] pusha push es mov ax, 0A000h mov es, ax mov ax, posy mov bx, ax shl ax, 8 shl bx, 6 add ax, bx add ax, posx mov di, ax mov ax, sprt mov si, ax mov cx, razmy lup: push cx mov cx, razmx repe movsb add di, 320 sub di,razmx pop cx loop lup pop es popa pop bp ret 10 endp ;face db 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0 ; db 0,1,1,1,1,1,1,1,1,0, 0,2,2,0,0,0,0,2,2,0, 0,0,0,3,3,3,3,3,0,0, 0,4,4,0,0,0,4,4,0,0 ; db 0,1,1,1,1,1,1,1,1,0, 0,2,2,0,0,0,0,2,2,0, 0,0,3,3,0,0,0,3,3,0, 0,4,4,0,0,4,4,0,0,0 ; db 0,1,1,0,0,0,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,0,0,0, 0,4,4,0,4,4,0,0,0,0 ; db 0,1,1,1,1,1,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,0,0,0, 0,4,4,4,4,0,0,0,0,0 ; db 0,1,1,1,1,1,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,0,0,0, 0,4,4,4,4,0,0,0,0,0 ; db 0,1,1,0,0,0,0,0,0,0, 0,2,2,0,0,0,0,2,2,0, 0,3,3,0,0,0,0,3,3,0, 0,4,4,0,4,4,0,0,0,0 ; db 0,1,1,0,0,0,0,0,0,0, 0,0,2,2,0,0,2,2,0,0, 0,0,3,3,0,0,3,3,0,0, 0,4,4,0,0,4,4,0,0,0 ; db 0,1,1,0,0,0,0,0,0,0, 0,0,0,2,2,2,2,0,0,0, 0,0,0,3,3,3,3,0,0,0, 0,4,4,0,0,0,4,4,0,0 ; db 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0 face db 0,0,0,0,0,0,0,0,0,0 db 0,2,2,2,2,2,2,2,2,0 db 0,2,0,0,3,3,0,0,2,0 db 0,2,0,0,3,3,0,0,2,0 db 0,2,6,6,3,6,6,6,2,0 db 0,2,6,6,6,3,6,6,2,0 db 0,2,0,0,3,3,0,0,2,0 db 0,2,0,0,3,3,0,0,2,0 db 0,2,2,2,2,2,2,2,2,0 db 0,0,0,0,0,0,0,0,0,0 end start