A few bits of this:
mov [LIMIT1],eax
mov bx,[LOWER esi] ; set LIMIT2 (ddata1 descriptor)
and ebx,0ffffh
jnz exxis
mov ebx,18*12
exxis:
fastimul eax,ebx,96
add eax,[VGASTART]
add eax,[SCREENSTART]
mov ebx,[SCREEN_X]
sar ebx,decimal_places+2
add eax,ebx
mov [ddata1.limit],ax
shr eax,16
and al,0fh
mov [ddata1.gran],al
mov ax,ddata1-gdt ; load descriptor into es
mov es,ax
mov [word idt+8*13],offset print_bound
mov eax,[X esi] ; get coords
mov ebx,[Y esi]
...in the right places could do wonders for plex86 execution speed.
Done right, assembly code can be several times faster than C.
As this is an 80x86 only project, there's no reason why assembly
can not be used.
Small critical sections of the C source code can be commented
out and replace by inline assembly.
Just an idea from a (former) assembly language programmer.
What do you think of it?
Joaquim Carvalho