.MODEL SMALL .CODE .286 ; you didn't have .286 instructions on .STACK 100h ; thats why shr 2 didn't work you dork put_pixel PROC ; limited pp. bh is y bl is x dl is color mov ax,0A000h mov ES,AX xor AX,AX xchg AH,BH add BX,AX ShR AX,2 add BX,AX mov AL,dl mov ES:[BX],AL ret put_pixel ENDP draw_flac PROC mov ax,0013h ; MCGA is 13 int 10h ; Vid interrupt clearr: xor AX,AX ; I'm paranoid. xor BX,BX xor CX,CX xor DX,DX mainn: push BX mov DX,BX and DL,DH call put_pixel pop BX inc BL cmp BL,0FFh jnz mainn mov BL,00 inc BH cmp BH,199 jnz mainn mov AH,08h int 21h ; Get char mov AX,0003h int 10h mov AX,4c00h int 21h int 20h ; Exit nicely I hope draw_flac ENDP END draw_flac