WIDTH equ 640 HEIGHT equ 480 mov al, 11h ; set gfx mode to 640 x 480 x 2 color int 10h ; init gfx mov dx, HEIGHT NEWROW mov cx, WIDTH-1 dec dx mov al, 01h jmp PUTPIX ; always draw first pixel in new row DOPIX inc ah ; set BIOS function to getpixel inc dx ; move cursor y++ int 10h ; get pixel color to AX dec dx ; move cursor back xor al, bl ; calculate new color PUTPIX mov ah, 0Ch ; set BIOS funcion to putpixel mov bl, al ; save color 4 next pass 2 bufer BL int 10h ; draw pixel loop DOPIX test dx, dx ; end test jnz NEWROW xor ah, ah int 16h ; wait 4 key ret ; thx 2 hvge 4 knowhow