//OutPuts: //port5 - x ranger //port6 - y ranger //Inputs: //port0 - red - because its gray we only need this. DATA; alloc X,0; alloc Y,0; CODE; mov #X,0; mov #Y,0; loopy: mov #X,0; loopx: mov port0,#X; mov port1,#Y; mov #ebx,#X; mul #ebx,40; mov port5,#ebx; mov #ebx,#Y; mul #ebx,40; mov port6,#ebx; mov eax,#X; // EDI - Screen Byte Number mul eax,32; // EDI = Y * 32 + X add eax,#Y; // EDI = EDI + 65536 (Because screen is linked add eax,65536; // to top of CPU ram, i.e. 65536 and so on) mov #edi,port0; // Screen[EDI] = EDX (Screen's byte EDI) mov port2,port0; inc #X; cmp #X,6; jl loopx; inc #Y; cmp #Y,6; jl loopy;