/kernel/trunk/blkdev/flp_drv.inc |
---|
9,7 → 9,7 |
mov edi,[edi+TASKDATA.mem_start] |
add edi,ecx |
give_back_application_data_1: |
mov esi,0xD000 ;FDD_DataBuffer ;0x40000 |
mov esi,FDD_BUFF ;FDD_DataBuffer ;0x40000 |
xor ecx,ecx |
mov cx,128 |
cld |
21,7 → 21,7 |
mov esi,[esi+TASKDATA.mem_start] |
add esi,ecx |
take_data_from_application_1: |
mov edi,0xD000 ;FDD_DataBuffer ;0x40000 |
mov edi,FDD_BUFF ;FDD_DataBuffer ;0x40000 |
xor ecx,ecx |
mov cx,128 |
cld |
/kernel/trunk/const.inc |
---|
134,108 → 134,109 |
SSE_INIT equ (SSE_IM+SSE_DM+SSE_ZM+SSE_OM+SSE_UM+SSE_PM) |
OS_BASE equ 0; 0x80400000 |
OS_BASE equ 0 |
window_data equ OS_BASE+0x0000000 |
window_data equ (OS_BASE+0x0000000) |
CURRENT_TASK equ OS_BASE+0x0003000 |
TASK_COUNT equ OS_BASE+0x0003004 |
TASK_BASE equ OS_BASE+0x0003010 |
TASK_DATA equ OS_BASE+0x0003020 |
TASK_EVENT equ OS_BASE+0x0003020 |
CURRENT_TASK equ (OS_BASE+0x0003000) |
TASK_COUNT equ (OS_BASE+0x0003004) |
TASK_BASE equ (OS_BASE+0x0003010) |
TASK_DATA equ (OS_BASE+0x0003020) |
TASK_EVENT equ (OS_BASE+0x0003020) |
;mouseunder equ OS_BASE+0x0006900 |
FLOPPY_BUFF equ OS_BASE+0x0008000 |
ACTIVE_PROC_STACK equ OS_BASE+0x000A400 |
idts equ OS_BASE+0x000B100 |
WIN_STACK equ OS_BASE+0x000C000 |
WIN_POS equ OS_BASE+0x000C400 |
FDD_DATA equ OS_BASE+0x000D000 |
mouseunder equ (OS_BASE+0x0006900) |
FLOPPY_BUFF equ (OS_BASE+0x0008000) |
ACTIVE_PROC_STACK equ (OS_BASE+0x000A400) |
idts equ (OS_BASE+0x000B100) |
WIN_STACK equ (OS_BASE+0x000C000) |
WIN_POS equ (OS_BASE+0x000C400) |
FDD_BUFF equ (OS_BASE+0x000D000) |
FDD_DATA equ (OS_BASE+0x000D000) |
ENABLE_TASKSWITCH equ OS_BASE+0x000E000 |
PUTPIXEL equ OS_BASE+0x000E020 |
GETPIXEL equ OS_BASE+0x000E024 |
BANK_SWITCH equ OS_BASE+0x000E030 |
ENABLE_TASKSWITCH equ (OS_BASE+0x000E000) |
PUTPIXEL equ (OS_BASE+0x000E020) |
GETPIXEL equ (OS_BASE+0x000E024) |
BANK_SWITCH equ (OS_BASE+0x000E030) |
MOUSE_PICTURE equ OS_BASE+0x000F200 |
MOUSE_VISIBLE equ OS_BASE+0x000F204 |
XY_TEMP equ OS_BASE+0x000F300 |
KEY_COUNT equ OS_BASE+0x000F400 |
KEY_BUFF equ OS_BASE+0x000F401 |
MOUSE_PICTURE equ (OS_BASE+0x000F200) |
MOUSE_VISIBLE equ (OS_BASE+0x000F204) |
XY_TEMP equ (OS_BASE+0x000F300) |
KEY_COUNT equ (OS_BASE+0x000F400) |
KEY_BUFF equ (OS_BASE+0x000F401) |
BTN_COUNT equ OS_BASE+0x000F500 |
BTN_BUFF equ OS_BASE+0x000F501 |
BTN_COUNT equ (OS_BASE+0x000F500) |
BTN_BUFF equ (OS_BASE+0x000F501) |
CPU_FREQ equ OS_BASE+0x000F600 |
MOUSE_PORT equ OS_BASE+0x000F604 |
CPU_FREQ equ (OS_BASE+0x000F600) |
MOUSE_PORT equ (OS_BASE+0x000F604) |
PS2_CHUNK equ OS_BASE+0x000FB00 |
MOUSE_X equ OS_BASE+0x000FB0A |
MOUSE_Y equ OS_BASE+0x000FB0C |
PS2_CHUNK equ (OS_BASE+0x000FB00) |
MOUSE_X equ (OS_BASE+0x000FB0A) |
MOUSE_Y equ (OS_BASE+0x000FB0C) |
MOUSE_COLOR_MEM equ OS_BASE+0x000FB10 |
COLOR_TEMP equ OS_BASE+0x000FB30 |
BTN_DOWN equ OS_BASE+0x000FB40 |
MOUSE_DOWN equ OS_BASE+0x000FB44 |
X_UNDER equ OS_BASE+0x000FB4A |
Y_UNDER equ OS_BASE+0x000FB4C |
ScreenBPP equ OS_BASE+0x000FBF1 |
MOUSE_BUFF_COUNT equ OS_BASE+0x000FCFF |
LFBAddress equ OS_BASE+0x000FE80 |
MEM_AMOUNT equ OS_BASE+0x000FE8C |
;LFBSize equ OS_BASE+0x02f9050 |
MOUSE_COLOR_MEM equ (OS_BASE+0x000FB10) |
COLOR_TEMP equ (OS_BASE+0x000FB30) |
BTN_DOWN equ (OS_BASE+0x000FB40) |
MOUSE_DOWN equ (OS_BASE+0x000FB44) |
X_UNDER equ (OS_BASE+0x000FB4A) |
Y_UNDER equ (OS_BASE+0x000FB4C) |
ScreenBPP equ (OS_BASE+0x000FBF1) |
MOUSE_BUFF_COUNT equ (OS_BASE+0x000FCFF) |
LFBAddress equ (OS_BASE+0x000FE80) |
MEM_AMOUNT equ (OS_BASE+0x000FE8C) |
;LFBSize equ (OS_BASE+0x02f9050) |
SCR_X_SIZE equ OS_BASE+0x000FE00 |
SCR_Y_SIZE equ OS_BASE+0x000FE04 |
SCR_BYTES_PER_LINE equ OS_BASE+0x000FE08 |
SCR_MODE equ OS_BASE+0x000FE0C |
SCR_X_SIZE equ (OS_BASE+0x000FE00) |
SCR_Y_SIZE equ (OS_BASE+0x000FE04) |
SCR_BYTES_PER_LINE equ (OS_BASE+0x000FE08) |
SCR_MODE equ (OS_BASE+0x000FE0C) |
BTN_ADDR equ OS_BASE+0x000FE88 |
SYS_SHUTDOWN equ OS_BASE+0x000FF00 |
TASK_ACTIVATE equ OS_BASE+0x000FF01 |
BTN_ADDR equ (OS_BASE+0x000FE88) |
SYS_SHUTDOWN equ (OS_BASE+0x000FF00) |
TASK_ACTIVATE equ (OS_BASE+0x000FF01) |
REDRAW_BACKGROUND equ OS_BASE+0x000FFF0 |
BANK_RW equ OS_BASE+0x000FFF2 |
MOUSE_BACKGROUND equ OS_BASE+0x000FFF4 |
DONT_DRAW_MOUSE equ OS_BASE+0x000FFF5 |
DONT_SWITCH equ OS_BASE+0x000FFFF |
REDRAW_BACKGROUND equ (OS_BASE+0x000FFF0) |
BANK_RW equ (OS_BASE+0x000FFF2) |
MOUSE_BACKGROUND equ (OS_BASE+0x000FFF4) |
DONT_DRAW_MOUSE equ (OS_BASE+0x000FFF5) |
DONT_SWITCH equ (OS_BASE+0x000FFFF) |
STACK_TOP equ OS_BASE+0x003EC00 |
STACK_TOP equ (OS_BASE+0x003EC00) |
FONT_II equ OS_BASE+0x003EC00 |
FONT_I equ OS_BASE+0x003F600 |
DISK_DATA equ OS_BASE+0x0040000 |
PROC_BASE equ OS_BASE+0x0080000 |
TMP_BUFF equ OS_BASE+0x0090000 |
FONT_II equ (OS_BASE+0x003EC00) |
FONT_I equ (OS_BASE+0x003F600) |
DISK_DATA equ (OS_BASE+0x0040000) |
SLOT_BASE equ (OS_BASE+0x0080000) |
TMP_BUFF equ (OS_BASE+0x0090000) |
VGABasePtr equ OS_BASE+0x00A0000 |
VGABasePtr equ (OS_BASE+0x00A0000) |
RAMDISK equ OS_BASE+0x0100000 |
RAMDISK_FAT equ OS_BASE+0x0280000 |
FLOPPY_FAT equ OS_BASE+0x0282000 |
SB16_Status equ OS_BASE+0x02B0000 |
BUTTON_INFO equ OS_BASE+0x02C0000 |
RESERVED_PORTS equ OS_BASE+0x02D0000 |
IRQ_SAVE equ OS_BASE+0x02E0000 |
SYS_VAR equ OS_BASE+0x02f0000 |
IMG_BACKGROUND equ OS_BASE+0x0300000 |
WinMapAddress equ OS_BASE+0x0460000 |
display_data equ OS_BASE+0x0460000 |
HD_CACHE equ OS_BASE+0x0600000 |
stack_data_start equ OS_BASE+0x0700000 |
eth_data_start equ OS_BASE+0x0700000 |
stack_data equ OS_BASE+0x0704000 |
stack_data_end equ OS_BASE+0x071ffff |
VMODE_BASE equ OS_BASE+0x0760000 |
resendQ equ OS_BASE+0x0770000 |
RAMDISK equ (OS_BASE+0x0100000) |
RAMDISK_FAT equ (OS_BASE+0x0280000) |
FLOPPY_FAT equ (OS_BASE+0x0282000) |
SB16_Status equ (OS_BASE+0x02B0000) |
BUTTON_INFO equ (OS_BASE+0x02C0000) |
RESERVED_PORTS equ (OS_BASE+0x02D0000) |
IRQ_SAVE equ (OS_BASE+0x02E0000) |
SYS_VAR equ (OS_BASE+0x02f0000) |
IMG_BACKGROUND equ (OS_BASE+0x0300000) |
WinMapAddress equ (OS_BASE+0x0460000) |
display_data equ (OS_BASE+0x0460000) |
HD_CACHE equ (OS_BASE+0x0600000) |
stack_data_start equ (OS_BASE+0x0700000) |
eth_data_start equ (OS_BASE+0x0700000) |
stack_data equ (OS_BASE+0x0704000) |
stack_data_end equ (OS_BASE+0x071ffff) |
VMODE_BASE equ (OS_BASE+0x0760000) |
resendQ equ (OS_BASE+0x0770000) |
;skin_data equ OS_BASE+0x0778000 |
;skin_data equ (OS_BASE+0x0778000) |
tss_data equ 0x780000 |
draw_data equ 0x988000 |
tss_data equ (OS_BASE+0x780000) |
draw_data equ (OS_BASE+0x988000) |
HEAP_BASE equ 0x98B000 |
HEAP_BASE equ (OS_BASE+0x98B000) |
LFB_BASE equ 0x7DC00000 |
/kernel/trunk/core/debug.inc |
---|
21,7 → 21,7 |
; destroys eax |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
mov [eax+0x80000+APPDATA.dbg_event_mem], ebx |
mov [eax+SLOT_BASE+APPDATA.dbg_event_mem], ebx |
ret |
get_debuggee_slot: |
37,7 → 37,7 |
shl eax, 5 |
push ebx |
mov ebx, [CURRENT_TASK] |
cmp [0x80000+eax*8+APPDATA.debugger_slot], ebx |
cmp [SLOT_BASE+eax*8+APPDATA.debugger_slot], ebx |
pop ebx |
jnz .ret_bad |
; clc ; automatically |
51,7 → 51,7 |
; destroys eax,ebx |
call get_debuggee_slot |
jc .ret |
and dword [eax*8+0x80000+APPDATA.debugger_slot], 0 |
and dword [eax*8+SLOT_BASE+APPDATA.debugger_slot], 0 |
call do_resume |
.ret: |
sti |
227,7 → 227,7 |
call get_debuggee_slot |
jc .errret |
mov ebp, eax |
lea eax, [eax*8+0x80000+APPDATA.dbg_regs] |
lea eax, [eax*8+SLOT_BASE+APPDATA.dbg_regs] |
; [eax]=dr0, [eax+4]=dr1, [eax+8]=dr2, [eax+C]=dr3 |
; [eax+10]=dr7 |
add edx, std_application_base_address |
358,7 → 358,7 |
.1: |
mov eax, ebp |
shl eax, 8 |
mov edx, [0x80000+eax+APPDATA.dbg_event_mem] |
mov edx, [SLOT_BASE+eax+APPDATA.dbg_event_mem] |
test edx, edx |
jz .ret |
; read buffer header |
414,7 → 414,7 |
; new debug event |
mov eax, ebp |
shl eax, 8 |
or byte [0x80000+eax+APPDATA.event_mask+1], 1 ; set flag 100h |
or byte [SLOT_BASE+eax+APPDATA.event_mask+1], 1 ; set flag 100h |
.ret: |
ret |
432,7 → 432,7 |
; set DRx registers for task and continue |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
add eax, 0x80000+APPDATA.dbg_regs |
add eax, SLOT_BASE+APPDATA.dbg_regs |
mov ecx, [eax+0] |
mov dr0, ecx |
mov ecx, [eax+4] |
455,7 → 455,7 |
cli |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
mov eax, [0x80000+eax+APPDATA.debugger_slot] |
mov eax, [SLOT_BASE+eax+APPDATA.debugger_slot] |
test eax, eax |
jnz .debug |
sti |
/kernel/trunk/core/dll.inc |
---|
156,12 → 156,12 |
.wait: |
mov ebx,[CURRENT_TASK] |
shl ebx,8 |
test dword [ebx+PROC_BASE+0xA8],EVENT_NOTIFY |
test dword [ebx+SLOT_BASE+0xA8],EVENT_NOTIFY |
jz @f |
and dword [ebx+PROC_BASE+0xA8], not EVENT_NOTIFY |
and dword [ebx+SLOT_BASE+0xA8], not EVENT_NOTIFY |
mov edi, [p_ev] |
mov dword [edi], EV_INTR |
mov eax, [ebx+PROC_BASE+APPDATA.event] |
mov eax, [ebx+SLOT_BASE+APPDATA.event] |
mov dword [edi+4], eax |
ret |
@@: |
998,7 → 998,7 |
mov ecx,[CURRENT_TASK] |
shl ecx,8 |
add ecx, PROC_BASE+APP_OBJ_OFFSET |
add ecx, SLOT_BASE+APP_OBJ_OFFSET |
pushfd |
cli |
/kernel/trunk/core/fpu.inc |
---|
57,7 → 57,7 |
jne .save |
.copy: |
shl eax, 8 |
mov esi, [eax+PROC_BASE+APPDATA.fpu_state] |
mov esi, [eax+SLOT_BASE+APPDATA.fpu_state] |
mov ecx, 512/4 |
cld |
rep movsd |
72,7 → 72,7 |
mov [fpu_owner], eax |
shl ecx, 8 |
mov ecx, [ecx+PROC_BASE+APPDATA.fpu_state] |
mov ecx, [ecx+SLOT_BASE+APPDATA.fpu_state] |
bt [cpu_caps], CAPS_SSE |
jnc .no_SSE |
117,7 → 117,7 |
ret |
.copy: |
shl eax, 8 |
mov edi, [eax+PROC_BASE+APPDATA.fpu_state] |
mov edi, [eax+SLOT_BASE+APPDATA.fpu_state] |
mov ecx, 512/4 |
cld |
rep movsd |
139,7 → 139,7 |
je .exit |
shl ebx, 8 |
mov eax, [ebx+PROC_BASE+APPDATA.fpu_state] |
mov eax, [ebx+SLOT_BASE+APPDATA.fpu_state] |
bt [cpu_caps], CAPS_SSE |
jnc .no_SSE |
147,7 → 147,7 |
mov ebx, [CURRENT_TASK] |
mov [fpu_owner], ebx |
shl ebx, 8 |
mov eax, [ebx+PROC_BASE+APPDATA.fpu_state] |
mov eax, [ebx+SLOT_BASE+APPDATA.fpu_state] |
fxrstor [eax] |
.exit: |
restore_ring3_context |
158,7 → 158,7 |
mov ebx, [CURRENT_TASK] |
mov [fpu_owner], ebx |
shl ebx, 8 |
mov eax, [ebx+PROC_BASE+APPDATA.fpu_state] |
mov eax, [ebx+SLOT_BASE+APPDATA.fpu_state] |
frstor [eax] |
restore_ring3_context |
iret |
186,7 → 186,7 |
mov ebx, [ss:CURRENT_TASK] |
shl ebx, 8 |
mov eax, [ss:ebx+PROC_BASE+APPDATA.fpu_handler] |
mov eax, [ss:ebx+SLOT_BASE+APPDATA.fpu_handler] |
test eax, eax |
jz .default |
230,7 → 230,7 |
mov ebx, [ss:CURRENT_TASK] |
shl ebx, 8 |
mov eax, [ss:ebx+PROC_BASE+APPDATA.sse_handler] |
mov eax, [ss:ebx+SLOT_BASE+APPDATA.sse_handler] |
test eax, eax |
jz .default |
/kernel/trunk/core/heap.inc |
---|
616,20 → 616,20 |
mov ebx,[CURRENT_TASK] |
shl ebx,8 |
mov eax, [PROC_BASE+APPDATA.heap_top+ebx] |
mov eax, [SLOT_BASE+APPDATA.heap_top+ebx] |
test eax, eax |
jz @F |
sub eax,[PROC_BASE+APPDATA.heap_base+ebx] |
sub eax,[SLOT_BASE+APPDATA.heap_base+ebx] |
sub eax, 4096 |
ret |
@@: |
mov esi, [PROC_BASE+APPDATA.mem_size+ebx] |
mov esi, [SLOT_BASE+APPDATA.mem_size+ebx] |
add esi, 4095 |
and esi, not 4095 |
mov [PROC_BASE+APPDATA.mem_size+ebx], esi |
mov [SLOT_BASE+APPDATA.mem_size+ebx], esi |
mov eax, HEAP_TOP |
mov [PROC_BASE+APPDATA.heap_base+ebx], esi |
mov [PROC_BASE+APPDATA.heap_top+ebx], eax |
mov [SLOT_BASE+APPDATA.heap_base+ebx], esi |
mov [SLOT_BASE+APPDATA.heap_top+ebx], eax |
sub eax, esi |
add esi, new_app_base |
653,8 → 653,8 |
mov ebx, [CURRENT_TASK] |
shl ebx, 8 |
mov esi, dword [ebx+PROC_BASE+APPDATA.heap_base]; heap_base |
mov edi, dword [ebx+PROC_BASE+APPDATA.heap_top]; heap_top |
mov esi, dword [ebx+SLOT_BASE+APPDATA.heap_base]; heap_base |
mov edi, dword [ebx+SLOT_BASE+APPDATA.heap_top]; heap_top |
add esi, new_app_base |
add edi, new_app_base |
l_0: |
695,7 → 695,7 |
mov ebx, [alloc_size] |
add ebx, 0xFFF |
and ebx, not 0xFFF |
add ebx, [PROC_BASE+APPDATA.mem_size+edx] |
add ebx, [SLOT_BASE+APPDATA.mem_size+edx] |
call update_mem_size |
mov eax, esi |
752,9 → 752,9 |
.not_used: |
mov edx, [CURRENT_TASK] |
shl edx, 8 |
mov esi, dword [edx+PROC_BASE+APPDATA.heap_base]; heap_base |
mov edi, dword [edx+PROC_BASE+APPDATA.heap_top]; heap_top |
sub ebx, [edx+PROC_BASE+APPDATA.mem_size] |
mov esi, dword [edx+SLOT_BASE+APPDATA.heap_base]; heap_base |
mov edi, dword [edx+SLOT_BASE+APPDATA.heap_top]; heap_top |
sub ebx, [edx+SLOT_BASE+APPDATA.mem_size] |
neg ebx |
call update_mem_size |
add esi, new_app_base |
/kernel/trunk/core/memory.inc |
---|
458,10 → 458,10 |
mov edx,[CURRENT_TASK] |
shl edx,8 |
cmp [PROC_BASE+APPDATA.heap_base+edx],0 |
cmp [SLOT_BASE+APPDATA.heap_base+edx],0 |
jne .exit |
mov esi, [PROC_BASE+APPDATA.mem_size+edx] |
mov esi, [SLOT_BASE+APPDATA.mem_size+edx] |
add esi, 4095 |
and esi, not 4095 |
562,10 → 562,10 |
; ebx = new memory size |
; destroys eax,ecx,edx |
mov [PROC_BASE+APPDATA.mem_size+edx],ebx |
mov [SLOT_BASE+APPDATA.mem_size+edx],ebx |
;search threads and update |
;application memory size infomation |
mov ecx,[PROC_BASE+APPDATA.dir_table+edx] |
mov ecx,[SLOT_BASE+APPDATA.dir_table+edx] |
mov eax,2 |
.search_threads: |
579,9 → 579,9 |
cmp word [CURRENT_TASK+edx+TASKDATA.state],9 ;if slot empty? |
jz .search_threads_next |
shl edx,3 |
cmp [PROC_BASE+edx+APPDATA.dir_table],ecx ;if it is our thread? |
cmp [SLOT_BASE+edx+APPDATA.dir_table],ecx ;if it is our thread? |
jnz .search_threads_next |
mov [PROC_BASE+edx+APPDATA.mem_size],ebx ;update memory size |
mov [SLOT_BASE+edx+APPDATA.mem_size],ebx ;update memory size |
.search_threads_next: |
inc eax |
jmp .search_threads |
838,7 → 838,7 |
mov eax,[CURRENT_TASK] |
shl eax,8 |
add eax, PROC_BASE |
add eax, SLOT_BASE |
pushf |
cli |
mov [eax+0xA0],ebx ;set fields in extended information area |
876,7 → 876,7 |
mov [dst_slot], eax |
shl eax,8 |
mov edi,[eax+PROC_BASE+0xa0] ;is ipc area defined? |
mov edi,[eax+SLOT_BASE+0xa0] ;is ipc area defined? |
test edi,edi |
jz .no_ipc_area |
885,10 → 885,10 |
and ebx, 0xFFF |
mov [dst_offset], ebx |
mov esi, [eax+PROC_BASE+0xa4] |
mov esi, [eax+SLOT_BASE+0xa4] |
mov [buf_size], esi |
stdcall map_mem, [ipc_tmp], [PROC_BASE+eax+0xB8],\ |
stdcall map_mem, [ipc_tmp], [SLOT_BASE+eax+0xB8],\ |
edi, esi |
mov edi, [dst_offset] |
942,7 → 942,7 |
mov eax, [dst_slot] |
shl eax, 8 |
or [eax+PROC_BASE+0xA8],dword 0x40 |
or [eax+SLOT_BASE+0xA8],dword 0x40 |
cmp dword [check_idle_semaphore],20 |
jge .ipc_no_cis |
1039,8 → 1039,8 |
ja @f |
mov ecx, [CURRENT_TASK] |
shl ecx, 8 |
mov eax, [ecx+PROC_BASE+APPDATA.fpu_handler] |
mov [ecx+PROC_BASE+APPDATA.fpu_handler], ebx |
mov eax, [ecx+SLOT_BASE+APPDATA.fpu_handler] |
mov [ecx+SLOT_BASE+APPDATA.fpu_handler], ebx |
mov [esp+36], eax |
ret |
@@: |
1066,8 → 1066,8 |
ja @f |
mov ecx, [CURRENT_TASK] |
shl ecx, 8 |
mov eax, [ecx+PROC_BASE+APPDATA.sse_handler] |
mov [ecx+PROC_BASE+APPDATA.sse_handler], ebx |
mov eax, [ecx+SLOT_BASE+APPDATA.sse_handler] |
mov [ecx+SLOT_BASE+APPDATA.sse_handler], ebx |
mov [esp+36], eax |
ret |
@@: |
/kernel/trunk/core/sys32.inc |
---|
10,7 → 10,6 |
idtreg: |
dw 8*0x41-1 |
dd idts+8 |
;label idts at 0xB100-8 |
build_process_gdt_tss_pointer: |
122,7 → 121,7 |
cli |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
mov eax, [0x80000+eax+APPDATA.debugger_slot] |
mov eax, [SLOT_BASE+eax+APPDATA.debugger_slot] |
test eax, eax |
jnz .debug |
sti |
582,7 → 581,7 |
push esi ;save .slot |
shl esi, 8 |
cmp [PROC_BASE+esi+APPDATA.dir_table], 0 |
cmp [SLOT_BASE+esi+APPDATA.dir_table], 0 |
jne @F |
add esp, 4 |
ret |
601,7 → 600,7 |
mov esi, [.slot] |
shl esi,8 |
add esi, PROC_BASE+APP_OBJ_OFFSET |
add esi, SLOT_BASE+APP_OBJ_OFFSET |
@@: |
mov eax, [esi+APPOBJ.fd] |
test eax, eax |
619,7 → 618,7 |
@@: |
mov eax, [.slot] |
shl eax, 8 |
mov eax,[PROC_BASE+eax+APPDATA.dir_table] |
mov eax,[SLOT_BASE+eax+APPDATA.dir_table] |
stdcall destroy_app_space, eax |
mov esi, [.slot] |
627,7 → 626,7 |
jne @F |
mov [fpu_owner],1 |
mov eax, [256+PROC_BASE+APPDATA.fpu_state] |
mov eax, [256+SLOT_BASE+APPDATA.fpu_state] |
clts |
bt [cpu_caps], CAPS_SSE |
jnc .no_SSE |
732,7 → 731,7 |
pushad |
mov edi, esi |
shl edi, 5 |
mov eax, [0x80000+edi*8+APPDATA.debugger_slot] |
mov eax, [SLOT_BASE+edi*8+APPDATA.debugger_slot] |
test eax, eax |
jz .nodebug |
push 8 |
747,13 → 746,13 |
mov ebx, [.slot] |
shl ebx, 8 |
mov ebx,[PROC_BASE+ebx+APPDATA.pl0_stack] |
mov ebx,[SLOT_BASE+ebx+APPDATA.pl0_stack] |
stdcall kernel_free, ebx |
mov edi, [.slot] |
shl edi,8 |
add edi,0x80000 |
add edi,SLOT_BASE |
mov eax, 0x20202020 |
stosd |
stosd |
763,7 → 762,7 |
rep stosd |
; activate window |
movzx eax, word [0xC000 + esi*2] |
movzx eax, word [WIN_STACK + esi*2] |
cmp eax, [TASK_COUNT] |
jne .dont_activate |
pushad |
771,7 → 770,7 |
dec eax |
cmp eax, 1 |
jbe .nothing_to_activate |
lea esi, [0xc400+eax*2] |
lea esi, [WIN_POS+eax*2] |
movzx edi, word [esi] ; edi = process |
shl edi, 5 |
cmp [CURRENT_TASK + edi + TASKDATA.state], byte 9 ; skip dead slots |
870,7 → 869,7 |
mov [edi+CURRENT_TASK + TASKDATA.state],byte 9 |
; debugger test - terminate all debuggees |
mov eax, 2 |
mov ecx, 0x80000+2*0x100+APPDATA.debugger_slot |
mov ecx, SLOT_BASE+2*0x100+APPDATA.debugger_slot |
.xd0: |
cmp eax, [TASK_COUNT] |
ja .xd1 |
/kernel/trunk/core/syscall.inc |
---|
54,7 → 54,7 |
push eax |
mov eax, [ss:CURRENT_TASK] |
shl eax, 8 |
mov eax, [ss:PROC_BASE + eax + APPDATA.pl0_stack] |
mov eax, [ss:SLOT_BASE + eax + APPDATA.pl0_stack] |
lea esp, [ss:eax + RING0_STACK_SIZE] ; configure ESP |
mov eax, [ss:sysenter_stack - 4] ; eax - original eax, from app |
sti |
99,7 → 99,7 |
mov [ss:sysenter_stack - 4], eax |
mov eax, [ss:CURRENT_TASK] |
shl eax, 8 |
mov eax, [ss:PROC_BASE + eax + APPDATA.pl0_stack] |
mov eax, [ss:SLOT_BASE + eax + APPDATA.pl0_stack] |
lea esp, [ss:eax + RING0_STACK_SIZE] ; configure ESP |
mov eax, [ss:sysenter_stack - 4] ; eax - original eax, from app |
sti |
/kernel/trunk/core/taskman.inc |
---|
159,7 → 159,7 |
mov [slot], eax |
shl eax, 8 |
add eax, PROC_BASE |
add eax, SLOT_BASE |
mov [slot_base], eax |
mov edi, eax |
_clear_ 256 ;clean extended information about process |
487,7 → 487,7 |
mov esi, [CURRENT_TASK] |
mov ebx, esi |
shl esi,8 |
mov [PROC_BASE+esi+0xB8],eax |
mov [SLOT_BASE+esi+0xB8],eax |
imul ebx,tss_step |
add ebx,tss_data |
mov [ebx+28], eax |
531,7 → 531,7 |
cmp byte [CURRENT_TASK+ecx+0xa],9 ;if process running? |
jz @f ;skip empty slots |
shl ecx,3 |
cmp [PROC_BASE+ecx+0xB8],ebx ;compare page directory addresses |
cmp [SLOT_BASE+ecx+0xB8],ebx ;compare page directory addresses |
jnz @f |
inc edx ;thread found |
@@: |
635,7 → 635,7 |
cmp word [CURRENT_TASK+eax+0xa],0 |
jnz .failed |
shl eax,3 |
mov eax,[PROC_BASE+eax+0xb8] |
mov eax,[SLOT_BASE+eax+0xb8] |
test eax,eax |
jz .failed |
738,7 → 738,7 |
add ebx, new_app_base |
push ecx |
stdcall map_memEx, [proc_mem_map],\ |
[PROC_BASE+eax+0xB8],\ |
[SLOT_BASE+eax+0xB8],\ |
ebx, ecx |
pop ecx |
804,7 → 804,7 |
add ebx, new_app_base |
push ecx |
stdcall map_memEx, [proc_mem_map],\ |
[PROC_BASE+eax+0xB8],\ |
[SLOT_BASE+eax+0xB8],\ |
ebx, ecx |
pop ecx |
868,12 → 868,12 |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add esi,PROC_BASE |
add esi,SLOT_BASE |
mov ebx,esi ;ebx=esi - pointer to extended information about current thread |
mov edi, eax |
shl edi,8 |
add edi,PROC_BASE |
add edi,SLOT_BASE |
mov edx,edi ;edx=edi - pointer to extended infomation about new thread |
mov ecx,256/4 |
xor eax, eax |
950,9 → 950,9 |
mov ebx, eax |
shl eax, 8 |
mov [eax+PROC_BASE+APPDATA.fpu_state], edi |
mov [eax+PROC_BASE+APPDATA.fpu_handler], 0 |
mov [eax+PROC_BASE+APPDATA.sse_handler], 0 |
mov [eax+SLOT_BASE+APPDATA.fpu_state], edi |
mov [eax+SLOT_BASE+APPDATA.fpu_handler], 0 |
mov [eax+SLOT_BASE+APPDATA.sse_handler], 0 |
mov esi, fpu_data |
mov ecx, 512/4 |
963,18 → 963,18 |
inc dword [TASK_COUNT] ;update number of processes |
.noinc: |
shl ebx,8 |
lea edx, [ebx+PROC_BASE+APP_EV_OFFSET] |
mov [PROC_BASE+APPDATA.fd_ev+ebx],edx |
mov [PROC_BASE+APPDATA.bk_ev+ebx],edx |
lea edx, [ebx+SLOT_BASE+APP_EV_OFFSET] |
mov [SLOT_BASE+APPDATA.fd_ev+ebx],edx |
mov [SLOT_BASE+APPDATA.bk_ev+ebx],edx |
add edx, APP_OBJ_OFFSET-APP_EV_OFFSET |
mov [PROC_BASE+APPDATA.fd_obj+ebx],edx |
mov [PROC_BASE+APPDATA.bk_obj+ebx],edx |
mov [SLOT_BASE+APPDATA.fd_obj+ebx],edx |
mov [SLOT_BASE+APPDATA.bk_obj+ebx],edx |
mov ecx, [def_cursor] |
mov [PROC_BASE+APPDATA.cursor+ebx],ecx |
mov [SLOT_BASE+APPDATA.cursor+ebx],ecx |
mov eax, [pl0_stack] |
mov [PROC_BASE+APPDATA.pl0_stack+ebx],eax |
mov [SLOT_BASE+APPDATA.pl0_stack+ebx],eax |
shr ebx,3 |
mov eax, new_app_base |
990,7 → 990,7 |
add eax, 256 |
jc @f |
cmp eax, [PROC_BASE+APPDATA.mem_size+ebx*8] |
cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8] |
ja @f |
add edx, new_app_base |
1003,7 → 1003,7 |
mov eax, edx |
add eax, 1024 |
jc @f |
cmp eax, [PROC_BASE+APPDATA.mem_size+ebx*8] |
cmp eax, [SLOT_BASE+APPDATA.mem_size+ebx*8] |
ja @f |
add edx, new_app_base |
stdcall k_strncpy, edx, [app_path], 1024 |
1050,7 → 1050,7 |
;set cr3 register in TSS of application |
mov ecx, [slot] |
shl ecx, 8 |
mov eax,[PROC_BASE+ecx+APPDATA.dir_table] |
mov eax,[SLOT_BASE+ecx+APPDATA.dir_table] |
mov [edi+TSS._cr3],eax |
mov esi,[params] |
1104,7 → 1104,7 |
jz .no_debug |
mov [CURRENT_TASK+ebx+0xa],byte 1 ;set process state - suspended |
mov eax,[CURRENT_TASK] |
mov [PROC_BASE+ebx*8+0xac],eax ;set debugger PID - current |
mov [SLOT_BASE+ebx*8+0xac],eax ;set debugger PID - current |
.no_debug: |
mov esi,new_process_running |
call sys_msg_board_str ;output information about succefull startup |
/kernel/trunk/drivers/ati2d.asm |
---|
67,7 → 67,7 |
OS_BASE equ 0 |
new_app_base equ 0x80000000 |
PROC_BASE equ 0x0080000 |
SLOT_BASE equ 0x0080000 |
PG_SW equ 0x003 |
PG_NOCACHE equ 0x018 |
/kernel/trunk/drivers/infinity.asm |
---|
29,7 → 29,7 |
OS_BASE equ 0 |
new_app_base equ 0x80000000 |
PROC_BASE equ OS_BASE+0x0080000 |
SLOT_BASE equ OS_BASE+0x0080000 |
CAPS_SSE2 equ 26 |
PG_SW equ 0x003 |
/kernel/trunk/drivers/sis.asm |
---|
244,7 → 244,7 |
EVENT_NOTIFY equ 0x00000200 |
OS_BASE equ 0; 0x80400000 |
PROC_BASE equ OS_BASE+0x0080000 |
SLOT_BASE equ OS_BASE+0x0080000 |
new_app_base equ 0x80000000 |
public START |
/kernel/trunk/drivers/sound.asm |
---|
271,7 → 271,7 |
EVENT_NOTIFY equ 0x00000200 |
OS_BASE equ 0; |
PROC_BASE equ OS_BASE+0x0080000 |
SLOT_BASE equ OS_BASE+0x0080000 |
new_app_base equ 0x80000000 |
public START |
/kernel/trunk/fs/fat12.inc |
---|
104,7 → 104,7 |
mov edi,edx |
dec ebx |
shl ebx,9 |
mov esi,0x8000 |
mov esi,FLOPPY_BUFF |
add esi,ebx |
shl ecx,9 |
cld |
147,7 → 147,7 |
cmp [FDC_Status],0 |
jne fdc_status_error_3_1 |
mov dl,16 |
mov edi,0xD000 |
mov edi,FDD_BUFF |
inc [FDD_Sector] |
l.21_1: |
mov esi,eax ;Name of file we want |
274,7 → 274,7 |
mov [FDD_Track],0 ; ÖèëèÃäð |
mov [FDD_Head],1 ; ÑòîðîÃà |
mov [FDD_Sector],2 ; Ñåêòîð |
mov edi,0x8000 |
mov edi,FLOPPY_BUFF |
call SeekTrack |
read_flp_root_1: |
call ReadSectWithRetr |
303,7 → 303,7 |
mov [FDD_Track],0 ; ÖèëèÃäð |
mov [FDD_Head],0 ; ÑòîðîÃà |
mov [FDD_Sector],2 ; Ñåêòîð |
mov edi,0x8000 |
mov edi,FLOPPY_BUFF |
call SeekTrack |
read_flp_fat_1: |
call ReadSectWithRetr |
332,7 → 332,7 |
calculatefatchain_flp: |
pushad |
mov esi,0x8000 |
mov esi,FLOPPY_BUFF |
mov edi,0x282000 |
fcnew_1: |
384,7 → 384,7 |
cmp [FDC_Status],0 |
jne fdc_status_error |
mov esi,flp_label |
mov edi,0xD000+39 |
mov edi,FDD_BUFF+39 |
mov ecx,15 |
cld |
rep cmpsb |
392,7 → 392,7 |
mov [root_read],0 |
mov [flp_fat],0 |
same_label: |
mov esi,0xD000+39 |
mov esi,FDD_BUFF+39 |
mov edi,flp_label |
mov ecx,15 |
cld |
413,7 → 413,7 |
mov [FDD_Track],0 ; ÖèëèÃäð |
mov [FDD_Head],1 ; ÑòîðîÃà |
mov [FDD_Sector],2 ; Ñåêòîð |
mov esi,0x8000 |
mov esi,FLOPPY_BUFF |
call SeekTrack |
save_flp_root_1: |
push esi |
442,7 → 442,7 |
mov [FDD_Track],0 ; ÖèëèÃäð |
mov [FDD_Head],0 ; ÑòîðîÃà |
mov [FDD_Sector],2 ; Ñåêòîð |
mov esi,0x8000 |
mov esi,FLOPPY_BUFF |
call SeekTrack |
save_flp_fat_1: |
push esi |
472,7 → 472,7 |
pushad |
mov esi,0x282000 |
mov edi,0x8000 |
mov edi,FLOPPY_BUFF |
fcnew2_1: |
mov eax,dword [esi] |
489,11 → 489,11 |
add edi,2 |
add esi,8 |
cmp edi,0x8000+0x1200 ;4274 bytes - all used FAT |
cmp edi,FLOPPY_BUFF+0x1200 ;4274 bytes - all used FAT |
jb fcnew2_1 |
mov esi,0x8000 ; duplicate fat chain |
mov edi,0x8000+0x1200 |
mov esi,FLOPPY_BUFF ; duplicate fat chain |
mov edi,FLOPPY_BUFF+0x1200 |
mov ecx,0x1200/4 |
cld |
rep movsd |
534,7 → 534,7 |
cmp [FDC_Status],0 |
jne fdc_status_error_4 |
mov dl,16 |
mov edi,0xD000 |
mov edi,FDD_BUFF |
inc [FDD_Sector] |
l.21_2: |
mov esi,eax ;Name of file we want |
662,7 → 662,7 |
call read_flp_root |
cmp [FDC_Status],0 |
jne fdc_status_error_7 |
mov edi,0x8000 ;Point at directory |
mov edi,FLOPPY_BUFF ;Point at directory |
mov edx,224 +1 |
; find an empty spot for filename in the root dir |
l20ds_1: |
689,7 → 689,7 |
cmp [FDC_Status],0 |
jne fdc_status_error_7 |
mov dl,16 |
mov edi,0xD000 |
mov edi,FDD_BUFF |
inc [FDD_Sector] |
l.21_3: |
mov esi,eax ;Name of file we want |
920,7 → 920,7 |
jne not_found_file_analyze_flp |
mov ecx,512/32 |
mov ebx,0xD000 |
mov ebx,FDD_BUFF |
adr1_analyze_flp: |
mov esi,edx ;[esp+16] |
985,7 → 985,7 |
jne error_found_file_analyze1 |
mov ecx,512/32 |
mov ebx,0xD000 |
mov ebx,FDD_BUFF |
adr1_analyze1: |
cmp byte [ebx],0x00 |
1020,7 → 1020,7 |
pusha |
mov ecx,512/4 |
xor eax,eax |
mov edi,0xD000 |
mov edi,FDD_BUFF |
cld |
rep stosd |
popa |
1032,7 → 1032,7 |
popa |
cmp [FDC_Status],0 |
jne error_found_file_analyze1 |
mov ebx,0xD000 |
mov ebx,FDD_BUFF |
found_file_analyze1: |
1145,7 → 1145,7 |
popa |
cmp [FDC_Status], 0 |
jnz .readerr |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
ret ; CF=0 |
.readerr: |
stc |
1152,12 → 1152,12 |
ret |
flp_rootmem_first: |
mov edi, 0x8000 |
mov edi, FLOPPY_BUFF |
clc |
ret |
flp_rootmem_next: |
add edi, 0x20 |
cmp edi, 0x8000+14*0x200 |
cmp edi, FLOPPY_BUFF+14*0x200 |
cmc |
flp_rootmem_next_write: |
flp_rootmem_begin_write: |
1195,7 → 1195,7 |
add eax, 31 |
call read_chs_sector |
popa |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
cmp [FDC_Status], 0 |
jnz .err |
ret ; CF=0 |
1242,12 → 1242,12 |
mov [0x282000+ecx*2], di |
mov [eax], edi |
xor eax, eax |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
mov ecx, 128 |
rep stosd |
popa |
call flp_notroot_end_write |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
clc |
ret |
.notfound: |
1358,7 → 1358,7 |
popa |
cmp [FDC_Status], 0 |
jnz .err |
lea eax, [0xD000+ebx+512] |
lea eax, [FDD_BUFF+ebx+512] |
neg ebx |
push ecx |
cmp ecx, ebx |
1452,7 → 1452,7 |
popa |
cmp [FDC_Status], 0 |
jnz .error |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
push eax |
.l1: |
call fat_get_name |
1480,7 → 1480,7 |
popa |
cmp [FDC_Status], 0 |
jnz .error |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
push eax |
.do_bdfe: |
inc dword [edx+8] ; new file found |
1911,7 → 1911,7 |
jae @f |
mov ecx, [esp+20] |
@@: |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
cmp byte [esp+24+28+28], 0 |
jnz .writedir |
push ecx |
2160,7 → 2160,7 |
mov ecx, 0x200 |
sub ecx, [esp+4+12] |
jbe @f |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
add edi, [esp+4+12] |
rep stosb |
@@: |
2168,7 → 2168,7 |
mov ecx, 0x200 |
sub ecx, esi |
jbe @f |
mov edi, 0xD000 |
mov edi, FDD_BUFF |
add edi, esi |
rep stosb |
@@: |
2178,7 → 2178,7 |
mov eax, edx |
neg ebx |
jecxz @f |
add ebx, 0xD000+0x200 |
add ebx, FDD_BUFF+0x200 |
call memmove |
xor ebx, ebx |
@@: |
2412,7 → 2412,7 |
mov ecx, [esp+4] |
neg ecx |
push edi |
mov edi, 0xD000+0x200 |
mov edi, FDD_BUFF+0x200 |
add edi, [esp+8] |
xor eax, eax |
mov [esp+8], eax |
2491,8 → 2491,8 |
pusha |
call read_chs_sector |
popa |
add edi, 0xD000 |
mov ecx, 0xD000+0x200 |
add edi, FDD_BUFF |
mov ecx, FDD_BUFF+0x200 |
sub ecx, edi |
push eax |
xor eax, eax |
2625,7 → 2625,7 |
cmp [FDC_Status], 0 |
jnz .err |
pop edi |
mov esi, 0xD000 |
mov esi, FDD_BUFF |
push edi |
mov ecx, 512/4 |
rep movsd |
2705,7 → 2705,7 |
add eax, 31 |
call read_chs_sector |
popa |
mov ebx, FDD_DATA + 2*0x20 |
mov ebx, FDD_BUFF + 2*0x20 |
.checkempty: |
cmp byte [ebx], 0 |
jz .empty |
2712,7 → 2712,7 |
cmp byte [ebx], 0xE5 |
jnz .notempty |
add ebx, 0x20 |
cmp ebx, FDD_DATA + 0x200 |
cmp ebx, FDD_BUFF + 0x200 |
jb .checkempty |
movzx eax, word [FLOPPY_FAT + eax*2] |
pusha |
2719,7 → 2719,7 |
add eax, 31 |
call read_chs_sector |
popa |
mov ebx, FDD_DATA |
mov ebx, FDD_BUFF |
jmp .checkempty |
.notempty: |
pop ebx |
2741,7 → 2741,7 |
mov byte [edi], 0xE5 |
; delete LFN (if present) |
.lfndel: |
cmp edi, FDD_DATA |
cmp edi, FDD_BUFF |
ja @f |
cmp [fd_prev_sector], 0 |
jz .lfndone |
2756,7 → 2756,7 |
pusha |
call read_chs_sector |
popa |
mov edi, FDD_DATA+0x200 |
mov edi, FDD_BUFF+0x200 |
@@: |
sub edi, 0x20 |
cmp byte [edi], 0xE5 |
/kernel/trunk/gui/button.inc |
---|
167,10 → 167,10 |
mov edi,[CURRENT_TASK] |
shl edi,8 |
rol eax,16 |
add ax,word[edi+0x80000+APPDATA.wnd_clientbox.left] |
add ax,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
rol eax,16 |
rol ebx,16 |
add bx,word[edi+0x80000+APPDATA.wnd_clientbox.top] |
add bx,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
rol ebx,16 |
pop edi |
.forced: |
503,7 → 503,7 |
; check that button is at top of windowing stack |
movzx ebx,word [eax] |
movzx ecx,word [0xC000 + ebx * 2] |
movzx ecx,word [WIN_STACK + ebx * 2] |
cmp ecx,[TASK_COUNT] |
jne buttonnewcheck |
/kernel/trunk/gui/event.inc |
---|
116,7 → 116,7 |
@@: |
mov ecx, [CURRENT_TASK] |
shl ecx,8 |
add ecx, PROC_BASE+APP_OBJ_OFFSET |
add ecx, SLOT_BASE+APP_OBJ_OFFSET |
pushfd |
cli |
173,7 → 173,7 |
jz .fail |
shl eax, 8 |
cmp [PROC_BASE+eax+APPDATA.ev_count], 32 |
cmp [SLOT_BASE+eax+APPDATA.ev_count], 32 |
ja .fail |
mov [slot], eax |
189,7 → 189,7 |
rep movsd |
mov ecx, [slot] |
add ecx, PROC_BASE+APP_EV_OFFSET |
add ecx, SLOT_BASE+APP_EV_OFFSET |
mov [eax+APPOBJ.magic], 'EVNT' |
mov [eax+APPOBJ.destroy], destroy_event |
219,10 → 219,10 |
.wait: |
mov edx,[CURRENT_TASK] |
shl edx,8 |
; cmp [PROC_BASE+edx+APPDATA.ev_count], 0 |
; cmp [SLOT_BASE+edx+APPDATA.ev_count], 0 |
; je .switch |
add edx, PROC_BASE+APP_EV_OFFSET |
add edx, SLOT_BASE+APP_EV_OFFSET |
mov eax, [edx+APPOBJ.fd] |
cmp eax, edx |
302,7 → 302,7 |
mov edx,[CURRENT_TASK] |
shl edx,8 |
add edx, PROC_BASE |
add edx, SLOT_BASE |
pushfd |
cli ;remove event from events |
387,7 → 387,7 |
jz .done |
@@: |
shl eax, 8 |
add eax, PROC_BASE+APP_EV_OFFSET |
add eax, SLOT_BASE+APP_EV_OFFSET |
pushfd |
cli |
431,7 → 431,7 |
jz .fail |
shl eax, 8 |
add eax, PROC_BASE+APP_EV_OFFSET |
add eax, SLOT_BASE+APP_EV_OFFSET |
mov edx, [.event] |
pushfd |
cli ;remove event from events |
526,7 → 526,7 |
test [edi+TASKDATA.event_mask],dword 2 |
jz no_eventoccur2 |
mov ecx, [CURRENT_TASK] |
movzx edx,word [0xC000+ecx*2] |
movzx edx,word [WIN_STACK+ecx*2] |
mov eax, [TASK_COUNT] |
cmp eax,edx |
jne no_eventoccur2x |
552,7 → 552,7 |
cmp [0xf500],byte 0 |
je no_eventoccur3 |
mov ecx, [CURRENT_TASK] |
movzx edx, word [0xC000+ecx*2] |
movzx edx, word [WIN_STACK+ecx*2] |
mov eax, [TASK_COUNT] |
cmp eax,edx |
jnz no_eventoccur3 |
577,9 → 577,9 |
jz no_mouse_event |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 00100000b |
test [eax+SLOT_BASE+APPDATA.event_mask],dword 00100000b |
jz no_mouse_event |
and [eax+0x80000+APPDATA.event_mask],dword 0xffffffff-00100000b |
and [eax+SLOT_BASE+APPDATA.event_mask],dword 0xffffffff-00100000b |
popad |
mov eax,6 |
ret |
601,9 → 601,9 |
jz no_ipc |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 01000000b |
test [eax+SLOT_BASE+APPDATA.event_mask],dword 01000000b |
jz no_ipc |
and [eax+0x80000+APPDATA.event_mask],dword 0xffffffff-01000000b |
and [eax+SLOT_BASE+APPDATA.event_mask],dword 0xffffffff-01000000b |
popad |
mov eax,7 |
ret |
615,9 → 615,9 |
jz no_stack_event |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 10000000b |
test [eax+SLOT_BASE+APPDATA.event_mask],dword 10000000b |
jz no_stack_event |
and [eax+0x80000+APPDATA.event_mask],dword 0xffffffff-10000000b |
and [eax+SLOT_BASE+APPDATA.event_mask],dword 0xffffffff-10000000b |
popad |
mov eax,8 |
ret |
627,9 → 627,9 |
jz .test_IRQ |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
test byte [eax+0x80000+APPDATA.event_mask+1], byte 1 |
test byte [eax+SLOT_BASE+APPDATA.event_mask+1], byte 1 |
jz .test_IRQ |
and byte [eax+0x80000+APPDATA.event_mask+1], not 1 |
and byte [eax+SLOT_BASE+APPDATA.event_mask+1], not 1 |
popad |
mov eax, 9 |
ret |
637,7 → 637,7 |
;.test_ext: |
; mov eax, [CURRENT_TASK] |
; shl eax, 8 |
; test dword [eax+0x80000+APPDATA.event_mask], EVENT_EXTENDED |
; test dword [eax+SLOT_BASE+APPDATA.event_mask], EVENT_EXTENDED |
; jz .test_IRQ |
; popad |
; mov eax, 10 |
/kernel/trunk/gui/mouse.inc |
---|
1,9 → 1,7 |
;mouseunder: |
; times 16*24 dd 0 |
label mouseunder dword at 0x6900 |
iglobal |
align 4 |
mousepointer: |
db 0x00,0x00,0x00,0x74,0x74,0x74,0x6e,0x6e,0x6e,0x6f |
db 0x6f,0x6f,0x71,0x71,0x71,0x75,0x75,0x75,0x79,0x79 |
/kernel/trunk/gui/window.inc |
---|
28,13 → 28,13 |
pushad |
xor eax,eax |
mov ecx,0xc000 |
mov ecx,WIN_STACK |
@@: |
inc eax |
add ecx,2 |
mov [ecx+0x000],ax ; process no |
mov [ecx+0x400],ax ; positions in stack |
cmp ecx,0xc400-2 ; the more high, the more surface |
cmp ecx,WIN_POS-2 ; the more high, the more surface |
jnz @b |
popad |
65,7 → 65,7 |
jbe .finish |
align 4 |
.new_wnd: |
movzx edi, word [0xC400 + esi * 2] |
movzx edi, word [WIN_POS + esi * 2] |
shl edi, 5 |
cmp [CURRENT_TASK+edi+TASKDATA.state], byte 9 |
108,7 → 108,7 |
@@: |
push esi |
movzx esi, word [0xC400 + esi * 2] |
movzx esi, word [WIN_POS + esi * 2] |
call setscreen |
pop esi |
156,9 → 156,9 |
jz .ret |
@@: |
; \end{diamond}[29.08.2006] |
mov edi, esi ;;;word [esi*2+0xc400] |
mov edi, esi ;;;word [esi*2+WIN_POS] |
shl edi, 8 |
add edi, 0x80000 ; address of random shaped window area |
add edi, SLOT_BASE ; address of random shaped window area |
cmp [edi+APPDATA.wnd_shape], dword 0 |
jne .free_form |
912,7 → 912,7 |
; if type of current active window is 3, |
; it must be redrawn |
mov eax, [TASK_COUNT] |
movzx eax, word [0xC400 + eax*2] |
movzx eax, word [WIN_POS + eax*2] |
shl eax, 5 |
add eax, window_data |
mov ebx, [eax + WDATA.cl_workarea] |
924,7 → 924,7 |
push esi |
movzx eax, word [esi] ; ax <- process no |
movzx eax, word [0xC000+eax*2] ; ax <- position in window stack |
movzx eax, word [WIN_STACK+eax*2] ; ax <- position in window stack |
xor esi, esi ; drop others |
waloop: |
931,7 → 931,7 |
cmp esi, dword [TASK_COUNT] |
jae wacont |
inc esi |
lea edi, [0xC000 + esi*2] |
lea edi, [WIN_STACK + esi*2] |
mov bx, [edi] ; position of the current process |
cmp bx, ax |
jbe @f |
945,7 → 945,7 |
movzx eax, word [esi] |
mov bx, [TASK_COUNT] ; number of processes |
mov [0xC000+eax*2], bx ; this is the last (and the upper) |
mov [WIN_STACK+eax*2], bx ; this is the last (and the upper) |
; update on screen -window stack |
xor esi, esi |
954,8 → 954,8 |
cmp esi, edi |
jae wacont2 |
inc esi |
movzx ebx, word [esi*2 + 0xC000] |
mov [ebx*2 + 0xC400], si |
movzx ebx, word [esi*2 + WIN_STACK] |
mov [ebx*2 + WIN_POS], si |
jmp waloop2 |
wacont2: |
mov [0xf400], byte 0 ; empty keyboard buffer |
981,8 → 981,8 |
; esi = process number |
movzx eax, word [0xC000 + esi * 2] ; get value of the curr process |
lea esi, [0xC400 + eax * 2] ; get address of this process at 0xC400 |
movzx eax, word [WIN_STACK + esi * 2] ; get value of the curr process |
lea esi, [WIN_POS + eax * 2] ; get address of this process at 0xC400 |
push esi |
993,7 → 993,7 |
push esi |
mov eax, [TASK_COUNT] |
lea eax, word [0xC400 + eax * 2] ; number of the upper window |
lea eax, word [WIN_POS + eax * 2] ; number of the upper window |
cmp esi, eax |
ja .all_wnds_to_top |
1059,7 → 1059,7 |
; update screen info |
pushad |
mov edi, [TASK_COUNT] ; the last process (number) |
movzx esi, word [0xC400 + edi * 2] |
movzx esi, word [WIN_POS + edi * 2] |
shl esi, 5 |
add esi, window_data |
1073,7 → 1073,7 |
add edx, ebx ; edx = y_end |
mov edi, [TASK_COUNT] |
movzx esi, word [0xC400 + edi * 2] |
movzx esi, word [WIN_POS + edi * 2] |
call setscreen |
popad |
1096,7 → 1096,7 |
; eax = window number on screen |
; corrupts registers and [dl*] |
minimize_window: |
movzx eax, word [0xC400+eax*2] |
movzx eax, word [WIN_POS+eax*2] |
shl eax, 5 |
add eax, window_data |
test [eax+WDATA.fl_wstate], WSTATE_MINIMIZED |
1129,7 → 1129,7 |
restore_minimized_window: |
pushfd |
cli |
movzx esi, word [0xC400+eax*2] |
movzx esi, word [WIN_POS+eax*2] |
mov edi, esi |
shl edi, 5 |
add edi, window_data |
1200,7 → 1200,7 |
jb .exit |
dec esi |
movzx edi, word [0xC400 + esi * 2] ; ebx |
movzx edi, word [WIN_POS + esi * 2] ; ebx |
shl edi, 5 |
add edi, window_data |
; mov edi, ebx |
1234,7 → 1234,7 |
; eax = position in windowing stack |
; redraw must ? |
lea esi, [0xC400 + esi * 2] |
lea esi, [WIN_POS + esi * 2] |
call waredraw |
add esp, 32 |
1413,7 → 1413,7 |
;shr edx,5 |
;shl edx,8 |
;add edx,0x80000 ; process base at 0x80000+ |
lea edx, [0x80000 + edx*8] |
lea edx, [SLOT_BASE + edx*8] |
movzx eax,word [0xfb0a] |
cmp eax,[edi + WDATA.box.left] |
1485,7 → 1485,7 |
@@: sub edi,window_data |
shr edi,5 |
shl edi,8 |
add edi,0x80000+APPDATA.saved_box |
add edi,SLOT_BASE+APPDATA.saved_box |
cld |
rep movsd |
pop ecx edi esi |
1499,7 → 1499,7 |
sub edx,window_data |
shr edx,5 |
shl edx,8 |
add edx,0x80000 ; process base at 0x80000+ |
add edx,SLOT_BASE ; process base at 0x80000+ |
cmp [do_resize],2 ; window shade ? |
jne no_window_shade |
1754,7 → 1754,7 |
mov eax,[CURRENT_TASK] |
shl eax,8 |
mov [eax+0x80000+APPDATA.wnd_shape],ebx |
mov [eax+SLOT_BASE+APPDATA.wnd_shape],ebx |
rsw_no_address: |
cmp eax,1 |
1761,7 → 1761,7 |
jne rsw_no_scale |
mov eax,[CURRENT_TASK] |
shl eax,8 |
mov byte [eax+0x80000+APPDATA.wnd_shape_scale], bl |
mov byte [eax+SLOT_BASE+APPDATA.wnd_shape_scale], bl |
rsw_no_scale: |
ret |
/kernel/trunk/hid/keyboard.inc |
---|
92,9 → 92,9 |
; mov es, ax |
movzx eax,word[TASK_COUNT] ; top window process |
movzx eax,word[0xC400+eax*2] |
movzx eax,word[WIN_POS+eax*2] |
shl eax,8 |
mov al,[0x80000+eax+APPDATA.keyboard_mode] |
mov al,[SLOT_BASE+eax+APPDATA.keyboard_mode] |
mov [keyboard_mode],al |
in al,0x60 |
/kernel/trunk/hid/mousedrv.inc |
---|
102,7 → 102,7 |
mul ecx |
movzx edx, byte [display_data+ebx+eax] |
shl edx, 8 |
mov ecx, [edx+PROC_BASE+APPDATA.cursor] |
mov ecx, [edx+SLOT_BASE+APPDATA.cursor] |
cmp [ecx+CURSOR.magic], 'CURS' |
jne .fail |
114,7 → 114,7 |
ret |
.fail: |
mov ecx, [def_cursor] |
mov [edx+PROC_BASE+APPDATA.cursor], ecx |
mov [edx+SLOT_BASE+APPDATA.cursor], ecx |
push ecx |
call [set_hw_cursor] |
popad |
/kernel/trunk/kernel.asm |
---|
258,6 → 258,7 |
rep stosd |
; CLEAR 0x80000-0x90000 |
; xor eax,eax |
mov edi,0x80000 |
mov ecx,(0x90000-0x80000)/4 |
; cld |
607,18 → 608,18 |
call boot_log |
mov eax, fpu_data |
mov dword [0x80000+APPDATA.fpu_state], eax |
mov dword [0x80000+APPDATA.fpu_handler], 0 |
mov dword [0x80000+APPDATA.sse_handler], 0 |
mov dword [SLOT_BASE+APPDATA.fpu_state], eax |
mov dword [SLOT_BASE+APPDATA.fpu_handler], 0 |
mov dword [SLOT_BASE+APPDATA.sse_handler], 0 |
; name for OS/IDLE process |
mov dword [0x80000+256+APPDATA.app_name], dword 'OS/I' |
mov dword [0x80000+256+APPDATA.app_name+4], dword 'DLE ' |
mov dword [SLOT_BASE+256+APPDATA.app_name], dword 'OS/I' |
mov dword [SLOT_BASE+256+APPDATA.app_name+4], dword 'DLE ' |
mov edi, [os_stack] |
mov dword [0x80000+256+APPDATA.pl0_stack], edi |
mov dword [SLOT_BASE+256+APPDATA.pl0_stack], edi |
add edi, 0x2000-512 |
mov dword [0x80000+256+APPDATA.fpu_state], edi |
mov dword [SLOT_BASE+256+APPDATA.fpu_state], edi |
mov esi, fpu_data |
mov ecx, 512/4 |
625,15 → 626,15 |
cld |
rep movsd |
mov dword [0x80000+256+APPDATA.fpu_handler], 0 |
mov dword [0x80000+256+APPDATA.sse_handler], 0 |
mov dword [SLOT_BASE+256+APPDATA.fpu_handler], 0 |
mov dword [SLOT_BASE+256+APPDATA.sse_handler], 0 |
mov ebx, [def_cursor] |
mov dword [0x80000+256+APPDATA.cursor], ebx |
mov dword [SLOT_BASE+256+APPDATA.cursor], ebx |
mov ebx, PROC_BASE+256+APP_OBJ_OFFSET |
mov dword [0x80000+256+APPDATA.fd_obj], ebx |
mov dword [0x80000+256+APPDATA.bk_obj], ebx |
mov ebx, SLOT_BASE+256+APP_OBJ_OFFSET |
mov dword [SLOT_BASE+256+APPDATA.fd_obj], ebx |
mov dword [SLOT_BASE+256+APPDATA.bk_obj], ebx |
; task list |
mov [TASK_DATA+TASKDATA.wnd_number], 1 ; on screen number |
1328,9 → 1329,9 |
; mov edi,[CURRENT_TASK] |
; shl edi,8 |
; add ax,word[edi+0x80000+APPDATA.wnd_clientbox.top] |
; add ax,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
; rol eax,16 |
; add ax,word[edi+0x80000+APPDATA.wnd_clientbox.left] |
; add ax,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
; rol eax,16 |
mov edx,eax |
1341,10 → 1342,10 |
push edx ; add window start x & y |
mov edx,[TASK_BASE] |
mov ebx,[edx-twdw+WDATA.box.left] |
add ebx, [(edx-CURRENT_TASK)*8+0x80000+APPDATA.wnd_clientbox.left] |
add ebx, [(edx-CURRENT_TASK)*8+SLOT_BASE+APPDATA.wnd_clientbox.left] |
shl ebx,16 |
add ebx,[edx-twdw+WDATA.box.top] |
add ebx, [(edx-CURRENT_TASK)*8+0x80000+APPDATA.wnd_clientbox.top] |
add ebx, [(edx-CURRENT_TASK)*8+SLOT_BASE+APPDATA.wnd_clientbox.top] |
add eax,ebx |
pop edx |
mov ebx,[esp+64+32-12+4] |
1741,9 → 1742,9 |
mov edi,[CURRENT_TASK] |
shl edi,8 |
sub ax,word[edi+PROC_BASE+APPDATA.wnd_clientbox.top] |
sub ax,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
rol eax,16 |
sub ax,word[edi+PROC_BASE+APPDATA.wnd_clientbox.left] |
sub ax,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
rol eax,16 |
mov [esp+36],eax |
ret |
2000,7 → 2001,7 |
mov [window_minimize], 2 ; restore window if minimized |
movzx esi, word [0xC000 + ebx*2] |
movzx esi, word [WIN_STACK + ebx*2] |
cmp esi, [TASK_COUNT] |
je .nowindowactivate ; already active |
2007,8 → 2008,8 |
mov edi, ebx |
shl edi, 5 |
add edi, window_data |
movzx esi, word [0xC000 + ebx * 2] |
lea esi, [0xC400 + esi * 2] |
movzx esi, word [WIN_STACK + ebx * 2] |
lea esi, [WIN_POS + esi * 2] |
call waredraw |
.nowindowactivate: |
ret |
2030,7 → 2031,7 |
sysfn_getactive: ; 18.7 = get active window |
mov eax, [TASK_COUNT] |
movzx eax, word [0xC400 + eax*2] |
movzx eax, word [WIN_POS + eax*2] |
mov [esp+36],eax |
ret |
2348,7 → 2349,7 |
mov [esp+36],dword 1 |
; test main buffer |
mov ebx, [CURRENT_TASK] ; TOP OF WINDOW STACK |
movzx ecx,word [0xC000 + ebx * 2] |
movzx ecx,word [WIN_STACK + ebx * 2] |
mov edx,[TASK_COUNT] |
cmp ecx,edx |
jne .finish |
2397,7 → 2398,7 |
mov ebx, [CURRENT_TASK] ; TOP OF WINDOW STACK |
mov [esp+36],dword 1 |
movzx ecx, word [0xC000 + ebx * 2] |
movzx ecx, word [WIN_STACK + ebx * 2] |
mov edx, [TASK_COUNT] ; less than 256 processes |
cmp ecx,edx |
jne .exit |
2453,14 → 2454,14 |
mov ecx,[ebx] |
mov [eax],ecx |
pop ebx |
mov cx, [0xC000 + ebx * 2] |
mov cx, [WIN_STACK + ebx * 2] |
mov [eax+4],cx |
mov cx, [0xC400 + ebx * 2] |
mov cx, [WIN_POS + ebx * 2] |
mov [eax+6],cx |
push eax |
mov eax,ebx |
shl eax,8 |
add eax,0x80000+APPDATA.app_name |
add eax,SLOT_BASE+APPDATA.app_name |
pop ebx |
add ebx,10 |
mov ecx,11 |
2474,7 → 2475,7 |
cmp ecx,1 |
je os_mem |
shl ecx,8 |
mov edx,[0x80000+ecx+APPDATA.mem_size] ;0x8c |
mov edx,[SLOT_BASE+ecx+APPDATA.mem_size] ;0x8c |
mov eax,std_application_base_address |
; eax run base -> edx used memory |
os_mem: |
2513,7 → 2514,7 |
mov esi,[esp] |
shl esi,8 |
add esi,0x80000+APPDATA.wnd_clientbox |
add esi,SLOT_BASE+APPDATA.wnd_clientbox |
lea edi,[ebx+44] |
mov ecx,4 |
rep movsd |
2732,7 → 2733,7 |
; parameter for drawwindow_IV |
push 0 |
mov edi, [TASK_COUNT] |
movzx edi, word [0xC400 + edi*2] |
movzx edi, word [WIN_POS + edi*2] |
cmp edi, [CURRENT_TASK] |
jne @f |
inc dword [esp] |
2758,7 → 2759,7 |
xor eax,eax |
mov edx,[TASK_COUNT] |
movzx edx,word[0xC400+edx*2] |
movzx edx,word[WIN_POS+edx*2] |
cmp edx,[CURRENT_TASK] |
jne @f |
inc eax |
2794,7 → 2795,7 |
shl edi,5 |
test [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION |
jz @f |
mov ecx,[edi*8+0x80000+APPDATA.wnd_caption] |
mov ecx,[edi*8+SLOT_BASE+APPDATA.wnd_caption] |
or ecx,ecx |
jz @f |
add ecx,[edi+twdw+TASKDATA.mem_start] |
2880,21 → 2881,21 |
movzx eax,[ecx+WDATA.fl_wstyle] |
and eax,0x0F |
mov eax,[eax*8+window_topleft+0] |
mov [edi+0x80000+APPDATA.wnd_clientbox.left],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.left],eax |
shl eax,1 |
neg eax |
add eax,[ecx+WDATA.box.width] |
mov [edi+0x80000+APPDATA.wnd_clientbox.width],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.width],eax |
movzx eax,[ecx+WDATA.fl_wstyle] |
and eax,0x0F |
push [eax*8+window_topleft+0] |
mov eax,[eax*8+window_topleft+4] |
mov [edi+0x80000+APPDATA.wnd_clientbox.top],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.top],eax |
neg eax |
sub eax,[esp] |
add eax,[ecx+WDATA.box.height] |
mov [edi+0x80000+APPDATA.wnd_clientbox.height],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.height],eax |
add esp,4 |
pop edi ecx eax |
2901,12 → 2902,12 |
ret |
@@: |
xor eax,eax |
mov [edi+0x80000+APPDATA.wnd_clientbox.left],eax |
mov [edi+0x80000+APPDATA.wnd_clientbox.top],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.left],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.top],eax |
mov eax,[ecx+WDATA.box.width] |
mov [edi+0x80000+APPDATA.wnd_clientbox.width],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.width],eax |
mov eax,[ecx+WDATA.box.height] |
mov [edi+0x80000+APPDATA.wnd_clientbox.height],eax |
mov [edi+SLOT_BASE+APPDATA.wnd_clientbox.height],eax |
pop edi ecx eax |
ret |
2950,7 → 2951,7 |
sub edi,window_data |
shl edi,3 |
add edi,0x80000 |
add edi,SLOT_BASE |
and cl,0x0F |
mov [edi+APPDATA.wnd_caption],0 |
3004,12 → 3005,12 |
; caption still can become over bounds |
; diamond, 31.10.2006: check removed because with new memory manager |
; there can be valid data after APPDATA.mem_size bound |
; mov ecx,[edi*8+0x80000+APPDATA.mem_size] |
; mov ecx,[edi*8+SLOT_BASE+APPDATA.mem_size] |
; add ecx,255 ; max caption length |
; cmp ebx,ecx |
; ja .exit_fail |
mov [edi*8+0x80000+APPDATA.wnd_caption],ebx |
mov [edi*8+SLOT_BASE+APPDATA.wnd_caption],ebx |
or [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION |
call draw_window_caption |
3072,7 → 3073,7 |
sub edi,window_data |
shr edi,5 |
shl edi,8 |
add edi, 0x80000 + APPDATA.saved_box |
add edi, SLOT_BASE + APPDATA.saved_box |
mov ecx,4 |
cld |
rep movsd |
3302,7 → 3303,7 |
mov ecx, [TASK_COUNT] |
set_mouse_event: |
add edi, 256 |
or [edi+0x80000+APPDATA.event_mask], dword 00100000b |
or [edi+SLOT_BASE+APPDATA.event_mask], dword 00100000b |
loop set_mouse_event |
mouse_not_active: |
4003,9 → 4004,9 |
@@: |
mov edi,[CURRENT_TASK] |
shl edi,8 |
add dx,word[edi+0x80000+APPDATA.wnd_clientbox.top] |
add dx,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
rol edx,16 |
add dx,word[edi+0x80000+APPDATA.wnd_clientbox.left] |
add dx,word[edi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
rol edx,16 |
.forced: |
push ebp esi 0 |
4045,9 → 4046,9 |
; ebp = row delta |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
add dx, word [eax+0x80000+APPDATA.wnd_clientbox.top] |
add dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.top] |
rol edx, 16 |
add dx, word [eax+0x80000+APPDATA.wnd_clientbox.left] |
add dx, word [eax+SLOT_BASE+APPDATA.wnd_clientbox.left] |
rol edx, 16 |
.forced: |
push ebp esi ebp |
4106,10 → 4107,10 |
__sys_drawbar: |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ecx,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ebx,[esi+0x80000+APPDATA.wnd_clientbox.top] |
add edx,[esi+0x80000+APPDATA.wnd_clientbox.top] |
add eax,[esi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
add ecx,[esi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
add ebx,[esi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
add edx,[esi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
.forced: |
inc [mouse_pause] |
; call [disable_mouse] |
4480,7 → 4481,7 |
jne no_set_keyboard_setup |
shl edi,8 |
mov [edi+0x80000 + APPDATA.keyboard_mode],bl |
mov [edi+SLOT_BASE + APPDATA.keyboard_mode],bl |
ret |
4490,7 → 4491,7 |
jne no_get_keyboard_setup |
shl edi,8 |
movzx eax, byte [0x80000+edi + APPDATA.keyboard_mode] |
movzx eax, byte [SLOT_BASE+edi + APPDATA.keyboard_mode] |
mov [esp+36],eax |
4640,8 → 4641,8 |
add ebx,[edx-twdw+WDATA.box.top] |
mov edi,[CURRENT_TASK] |
shl edi,8 |
add eax,[edi+0x80000+APPDATA.wnd_clientbox.left] |
add ebx,[edi+0x80000+APPDATA.wnd_clientbox.top] |
add eax,[edi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
add ebx,[edi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
xor edi,edi ; no force |
; mov edi,1 |
call [disable_mouse] |
4656,10 → 4657,10 |
push esi |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ebp,[esi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
shl ebp,16 |
add ebp,[edi-twdw+WDATA.box.top] |
add bp,word[esi+0x80000+APPDATA.wnd_clientbox.top] |
add bp,word[esi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
pop esi |
add ecx,[edi+TASKDATA.mem_start] |
add eax,ebp |
4696,8 → 4697,8 |
shr ebx,16 |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ebx,[esi+0x80000+APPDATA.wnd_clientbox.top] |
add eax,[esi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
add ebx,[esi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
add ecx,eax |
add edx,ebx |
jmp [drawbar] |
4778,15 → 4779,15 |
mov ebp,edx |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add dx,word[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ebp,[esi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
add dx,word[esi+SLOT_BASE+APPDATA.wnd_clientbox.left] |
shl edx,16 |
add ebp,edx |
movzx edx,word[edi-twdw+WDATA.box.top] |
add eax,ebp |
mov ebp,edx |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.top] |
add dx,word[esi+0x80000+APPDATA.wnd_clientbox.top] |
add ebp,[esi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
add dx,word[esi+SLOT_BASE+APPDATA.wnd_clientbox.top] |
shl edx,16 |
xor edi,edi |
add edx,ebp |
/kernel/trunk/network/tcp.inc |
---|
1069,7 → 1069,7 |
foundPID1: |
shl ecx,8 |
or dword [ecx+0x80000+APPDATA.event_mask],dword 10000000b ; stack event |
or dword [ecx+SLOT_BASE+APPDATA.event_mask],dword 10000000b ; stack event |
pop ecx |
/kernel/trunk/network/udp.inc |
---|
153,7 → 153,7 |
foundPID: |
shl ecx,8 |
or dword [ecx+0x80000+APPDATA.event_mask],dword 10000000b ; stack event |
or dword [ecx+SLOT_BASE+APPDATA.event_mask],dword 10000000b ; stack event |
mov [check_idle_semaphore],200 |
/kernel/trunk/video/cursors.inc |
---|
269,13 → 269,13 |
; jne .fail |
mov ebx, [CURRENT_TASK] |
shl ebx, 8 |
xchg eax, [ebx+PROC_BASE+APPDATA.cursor] |
xchg eax, [ebx+SLOT_BASE+APPDATA.cursor] |
ret |
.fail: |
mov eax, [def_cursor] |
mov ebx, [CURRENT_TASK] |
shl ebx, 8 |
xchg eax, [ebx+PROC_BASE+APPDATA.cursor] |
xchg eax, [ebx+SLOT_BASE+APPDATA.cursor] |
ret |
endp |
400,10 → 400,10 |
mov ebx, [CURRENT_TASK] |
shl ebx, 8 |
cmp esi, [ebx+PROC_BASE+APPDATA.cursor] |
cmp esi, [ebx+SLOT_BASE+APPDATA.cursor] |
jne @F |
mov eax, [def_cursor] |
mov [ebx+PROC_BASE+APPDATA.cursor], eax |
mov [ebx+SLOT_BASE+APPDATA.cursor], eax |
@@: |
mov eax, [hcursor] |
call [eax+APPOBJ.destroy] |