//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;