; Sample full screen DOS application [org 100h] [segment .text] mov al, 13h int 10h ; FULL screen xor dx, dx xor cx, cx mov ax, 13h ; mode 13h int 10h mov si, Colors xor ah, ah CreatePalette: mov dx,03C8h mov al, ah out dx, al inc dx mov al, [si] out dx, al mov al, [si+1] out dx, al mov al, [si+2] out dx, al add si, 3 inc ah cmp si, ColorEnd jbe CreatePalette xor edi, edi xor cx, cx xor ebx, ebx BuildScreen: lea si, [di+bx] call DrawSquare add di, 40 cmp di, 320 jb BuildScreen xor di, di add ebx, 6420 ; 20 lines inc cx cmp cx, 10 jnz BuildScreen xor edi, edi push word 0A000h pop es mov al, 1 LineBuild: mov [es:di], al inc di cmp di, 320 jnz LineBuild ; xor di, di LineBuild2: mov [es:di], al add di, 319 mov [es:di], al inc di cmp di, 63680 jnz LineBuild2 ; mov di, 63680 LineBuild3: mov [es:di], al inc di cmp di, 64000 jnz LineBuild3 xor ax, ax xor bl, bl MainLoop: mov ah, 01 ; Exit if a key is pressed int 16h jz MainLoop ; //////// mov ax,4C00h ; EXIT int 21h DrawSquare: ; draw a 20x20 white square pushad mov di, si mov dx, di add dx, 20 mov al, 1 push word 0A000h pop es xor cx, cx xor bx, bx SquareLoop: mov [es:bx+si], al inc si cmp si, dx jnz SquareLoop mov si, di add bx, 320 inc cx cmp cx, 20 jnz SquareLoop popad retn Colors db 0,0,0 ; Black db 0FFh,0FFh,0FFh ; White ColorEnd: