0,0 → 1,103 |
;---------------------------------------------------------------------- |
draw_rectangle: |
; in |
; ebx = [coordinate on axis x]*65536 + [size on axis x] |
; ecx = [coordinate on axis y]*65536 + [size on axis y] |
push edx eax |
;-------------------------------------- |
; top |
push ebx ecx |
mov eax,ebx |
shr eax,16 |
add bx,ax |
|
mov eax,ecx |
shr eax,16 |
mov cx,ax |
|
sub ecx,1 shl 16 +1 |
sub ebx,1 shl 16 |
mcall 38,,,0xffffff |
|
sub ecx,1 shl 16 +1 |
sub ebx,1 shl 16 |
inc ebx |
xor edx,edx ; color black |
mcall |
pop ecx ebx |
;-------------------------------------- |
; bottom |
push ebx ecx |
mov eax,ebx |
shr eax,16 |
add bx,ax |
|
mov eax,ecx |
shr eax,16 |
add cx,ax |
|
mov eax,ecx |
ror ecx,16 |
mov cx,ax |
rol ecx,16 |
|
sub ebx,1 shl 16 |
mcall 38,,,0xffffff |
|
add ecx,1 shl 16 +1 |
sub ebx,1 shl 16 |
inc ebx |
xor edx,edx |
mcall |
pop ecx ebx |
;-------------------------------------- |
; left |
push ebx ecx |
|
mov eax,ebx |
shr eax,16 |
mov bx,ax |
|
mov eax,ecx |
shr eax,16 |
add cx,ax |
|
sub ebx,1 shl 16 +1 |
sub ecx,1 shl 16 |
mcall 38,,,0xffffff |
|
sub ebx,1 shl 16 +1 |
xor edx,edx |
mcall |
pop ecx ebx |
;-------------------------------------- |
; right |
push ebx ecx |
|
mov eax,ebx |
shr eax,16 |
add bx,ax |
|
mov eax,ebx |
ror ebx,16 |
mov bx,ax |
rol ebx,16 |
|
mov eax,ecx |
shr eax,16 |
add cx,ax |
|
sub ecx,1 shl 16 |
mcall 38,,,0xffffff |
|
add ebx,1 shl 16 +1 |
sub ecx,1 shl 16 |
inc ecx |
xor edx,edx |
mcall |
pop ecx ebx |
;-------------------------------------- |
pop eax edx |
ret |
;---------------------------------------------------------------------- |
|