/kernel/trunk/const.inc |
---|
189,6 → 189,7 |
TASK_DATA equ (OS_BASE+0x0003020) |
TASK_EVENT equ (OS_BASE+0x0003020) |
d_width_calc_area equ (OS_BASE+0x0005000) |
mouseunder equ (OS_BASE+0x0006900) |
CDDataBuf equ (OS_BASE+0x0007000) |
FLOPPY_BUFF equ (OS_BASE+0x0008000) |
/kernel/trunk/kernel.asm |
---|
402,6 → 402,8 |
mul [_display.height] |
mov [_WinMapSize], eax |
call calculate_fast_getting_offset_for_WinMapAddress |
mov esi, BOOT_VAR+0x9080 |
movzx ecx, byte [esi-1] |
mov [NumBiosDisks], ecx |
4793,8 → 4795,23 |
paleholder: |
ret |
;------------------------------------------------------------------------------ |
align 4 |
calculate_fast_getting_offset_for_WinMapAddress: |
; calculate data area for fast getting offset to _WinMapAddress |
mov eax, [_display.width] |
mov ecx, [_display.height] |
inc ecx |
mov edi, d_width_calc_area |
cld |
@@: |
stosd |
add eax, [_display.width] |
dec ecx |
jnz @r |
ret |
;------------------------------------------------------------------------------ |
align 4 |
set_screen: |
cmp eax, [Screen_Max_X] |
jne .set |
4830,6 → 4847,8 |
test eax, eax |
jz .epic_fail |
call calculate_fast_getting_offset_for_WinMapAddress |
popad |
call repos_windows |
/kernel/trunk/memmap.inc |
---|
62,7 → 62,7 |
; 3c dword cpu usage in cpu timer tics |
; |
; |
; 5000 -> 68FF free (6k6) |
; 5000 -> 68FF display width fast calc area (6k6) |
; 6900 -> 6EFF saved picture under mouse pointer (1k5) |
; |
; 6F00 -> 6FFF free (256) |
/kernel/trunk/video/vesa20.inc |
---|
556,14 → 556,10 |
jnz .forced |
; not forced: |
push eax |
mov edx, [_display.width]; screen x size |
imul edx, ebx |
add eax, [_WinMapAddress] |
mov edx, [d_width_calc_area + ebx*4] |
add edx, [_WinMapAddress] |
movzx edx, byte [eax+edx] |
cmp edx, [CURRENT_TASK] |
pop eax |
jne .exit |
;-------------------------------------- |
align 4 |