/kernel/trunk/blkdev/cdrom.inc |
---|
18,7 → 18,7 |
cmp eax,2 |
jnz nocdtl |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add ebx,[edi] |
call sys_cdtracklist |
/kernel/trunk/blkdev/flp_drv.inc |
---|
5,7 → 5,7 |
; Àäàïòàöèÿ è äîðàáîòêà Mario79 |
give_back_application_data: ; ïåðåñëàòü ïðèëîæåíèþ |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov edi,[edi+TASKDATA.mem_start] |
add edi,ecx |
give_back_application_data_1: |
16,8 → 16,8 |
rep movsd |
ret |
take_data_from_application: ; âçÿòü èç ïðèëîæåíèÿ |
mov esi,[0x3010] |
take_data_from_application: ; âçÿòü èç ïðèëîæåíè |
mov esi,[TASK_BASE] |
mov esi,[esi+TASKDATA.mem_start] |
add esi,ecx |
take_data_from_application_1: |
66,7 → 66,7 |
FDC_H DB ? |
FDC_R DB ? |
FDC_N DB ? |
; Ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ÷òåíèÿ |
; Ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ÷òåíè |
ReadRepCounter DB ? |
; Ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè |
RecalRepCounter DB ? |
174,7 → 174,7 |
;* ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÊÎÍÒÐÎËËÅÐÀ ÍÃÌÄ * |
;********************************************* |
FDCInterrupt: |
; Óñòàíîâèòü ôëàã ïðåðûâàíèÿ |
; Óñòàíîâèòü ôëàã ïðåðûâàíè |
mov [FDD_IntFlag],1 |
ret |
194,7 → 194,7 |
pusha |
; Ñáðîñèòü áàéò ñîñòîÿíèÿ îïåðàöèè |
mov [FDC_Status],FDC_Normal |
; Ñáðîñèòü ôëàã ïðåðûâàíèÿ |
; Ñáðîñèòü ôëàã ïðåðûâàíè |
mov [FDD_IntFlag],0 |
; Îáíóëèòü ñ÷åò÷èê òèêîâ |
mov eax,[timer_ticks] |
352,7 → 352,7 |
; Ïîäàòü êîìàíäó "Ïîèñê" |
mov AL,0Fh |
call FDCDataOutput |
; Ïåðåäàòü áàéò íîìåðà ãîëîâêè/íàêîïèòåëÿ |
; Ïåðåäàòü áàéò íîìåðà ãîëîâêè/íàêîïèòåë |
mov AL,[FDD_Head] |
shl AL,2 |
call FDCDataOutput |
467,7 → 467,7 |
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè |
mov [RecalRepCounter],0 |
@@TryAgain: |
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ÷òåíèÿ |
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ÷òåíè |
mov [ReadRepCounter],0 |
@@ReadSector_1: |
call ReadSector |
475,7 → 475,7 |
je @@Exit_2 |
cmp [FDC_Status],1 |
je @@Err_3 |
; Òðîåêðàòíîå ïîâòîðåíèå ÷òåíèÿ |
; Òðîåêðàòíîå ïîâòîðåíèå ÷òåíè |
inc [ReadRepCounter] |
cmp [ReadRepCounter],3 |
jb @@ReadSector_1 |
565,7 → 565,7 |
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè |
mov [RecalRepCounter],0 |
@@TryAgain_1: |
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ÷òåíèÿ |
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ÷òåíè |
mov [ReadRepCounter],0 |
@@WriteSector_1: |
call WriteSector |
573,7 → 573,7 |
je @@Exit_4 |
cmp [FDC_Status],1 |
je @@Err_4 |
; Òðîåêðàòíîå ïîâòîðåíèå ÷òåíèÿ |
; Òðîåêðàòíîå ïîâòîðåíèå ÷òåíè |
inc [ReadRepCounter] |
cmp [ReadRepCounter],3 |
jb @@WriteSector_1 |
/kernel/trunk/core/debug.inc |
---|
19,7 → 19,7 |
debug_set_event_data: |
; in: ebx = pointer |
; destroys eax |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
mov [eax+0x80000+APPDATA.dbg_event_mem], ebx |
ret |
36,7 → 36,7 |
jz .ret_bad |
shl eax, 5 |
push ebx |
mov ebx, [0x3000] |
mov ebx, [CURRENT_TASK] |
cmp [0x80000+eax*8+APPDATA.debugger_slot], ebx |
pop ebx |
jnz .ret_bad |
72,13 → 72,13 |
; destroys eax,ebx |
call get_debuggee_slot |
jc .ret |
mov bl, [0x3000+eax+TASKDATA.state] ; process state |
mov bl, [CURRENT_TASK+eax+TASKDATA.state] ; process state |
test bl, bl |
jz .1 |
cmp bl, 5 |
jnz .ret |
mov bl, 2 |
.2: mov [0x3000+eax+TASKDATA.state], bl |
.2: mov [CURRENT_TASK+eax+TASKDATA.state], bl |
.ret: |
sti |
ret |
87,13 → 87,13 |
jmp .2 |
do_resume: |
mov bl, [0x3000+eax+TASKDATA.state] |
mov bl, [CURRENT_TASK+eax+TASKDATA.state] |
cmp bl, 1 |
jz .1 |
cmp bl, 2 |
jnz .ret |
mov bl, 5 |
.2: mov [0x3000+eax+TASKDATA.state], bl |
.2: mov [CURRENT_TASK+eax+TASKDATA.state], bl |
.ret: ret |
.1: dec ebx |
jmp .2 |
380,7 → 380,7 |
pop ecx |
pop ecx |
pop ecx |
cmp dword [0x3000], 1 |
cmp dword [CURRENT_TASK], 1 |
jnz .notos |
cmp [timer_ticks], edi |
jae .ret |
430,7 → 430,7 |
jns @f |
; this is exception from task switch |
; set DRx registers for task and continue |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
add eax, 0x80000+APPDATA.dbg_regs |
mov ecx, [eax+0] |
453,7 → 453,7 |
mov dr6, eax |
; test if debugging |
cli |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
mov eax, [0x80000+eax+APPDATA.debugger_slot] |
test eax, eax |
463,7 → 463,7 |
add esp, 28h+4 |
mov [error_interrupt], 1 |
call show_error_parameters |
mov edx, [0x3010] |
mov edx, [TASK_BASE] |
mov byte [edx+TASKDATA.state], 4 |
jmp change_task |
.debug: |
483,7 → 483,7 |
cmp cl, not 10h |
jnz .l1 |
push edx ; DR6 image |
mov ecx, [0x3010] |
mov ecx, [TASK_BASE] |
push dword [ecx+TASKDATA.pid] ; PID |
push 12 |
pop ecx |
492,7 → 492,7 |
pop ecx |
pop ecx |
pop ecx |
mov edx, [0x3010] |
mov edx, [TASK_BASE] |
mov byte [edx+TASKDATA.state], 1 ; suspended |
call change_task |
restore_ring3_context |
/kernel/trunk/core/memory.inc |
---|
395,7 → 395,7 |
mov edx, LFB_BASE |
mov esi, [LFBAddress] |
mov edi, [LFBSize] |
mov dword [exp_lfb+4], esi |
mov dword [exp_lfb+4], edx |
shr edi, 12 |
mov [pg_count], edi |
/kernel/trunk/core/sched.inc |
---|
67,11 → 67,11 |
jne .find_next_task |
mov [dma_task_switched], 0 |
mov ebx, [dma_process] |
cmp [0x3000], ebx |
cmp [CURRENT_TASK], ebx |
je .return |
mov edi, [dma_slot_ptr] |
mov [0x3000], ebx |
mov [0x3010], edi |
mov [CURRENT_TASK], ebx |
mov [TASK_BASE], edi |
jmp @f |
.find_next_task: |
; \end{Mario79} |
103,7 → 103,7 |
update_counters: |
mov edi, [0x3010] |
mov edi, [TASK_BASE] |
mov ebx, [edi+TASKDATA.counter_add] ; time stamp counter add |
call _rdtsc |
sub eax, ebx |
119,8 → 119,8 |
; [0x3000] = ebx and [0x3010] = edi |
; corrupts other regs |
find_next_task: |
mov ebx, [0x3000] |
mov edi, [0x3010] |
mov ebx, [CURRENT_TASK] |
mov edi, [TASK_BASE] |
mov [prev_slot], ebx |
.waiting_for_termination: |
127,9 → 127,9 |
.waiting_for_reuse: |
.waiting_for_event: |
.suspended: |
cmp ebx, [0x3004] |
cmp ebx, [TASK_COUNT] |
jb @f |
mov edi, 0x3000 |
mov edi, CURRENT_TASK |
xor ebx, ebx |
@@: |
150,8 → 150,8 |
cmp al, 9 |
je .waiting_for_reuse |
mov [0x3000],ebx |
mov [0x3010],edi |
mov [CURRENT_TASK],ebx |
mov [TASK_BASE],edi |
cmp al, 5 |
jne .noevents |
162,8 → 162,8 |
mov [edi+TASKDATA.state], byte 0 |
.noevents: |
.found: |
mov [0x3000],ebx |
mov [0x3010],edi |
mov [CURRENT_TASK],ebx |
mov [TASK_BASE],edi |
call _rdtsc |
mov [edi+TASKDATA.counter_add],eax |
191,8 → 191,8 |
mov eax,[idleuse] |
mov [idleusesec],eax |
mov [idleuse],dword 0 |
mov ecx, [0x3004] |
mov edi, 0x3020 |
mov ecx, [TASK_COUNT] |
mov edi, TASK_DATA |
.newupdate: |
mov ebx,[edi+TASKDATA.counter_sum] |
mov [edi+TASKDATA.cpu_usage],ebx |
/kernel/trunk/core/sync.inc |
---|
26,7 → 26,7 |
jmp start_wait |
ok=$ |
push eax |
mov eax,dword [0x3010+second_base_address] |
mov eax,dword [TASK_BASE+second_base_address] |
mov eax,[eax+TASKDATA.pid] |
mov [name],eax |
pop eax |
60,7 → 60,7 |
{ |
local start_wait,first_wait,inc_counter,end_wait |
push eax |
mov eax,[0x3010+second_base_address] |
mov eax,[TASK_BASE+second_base_address] |
mov eax,[eax+TASKDATA.pid] |
start_wait=$ |
cli |
92,7 → 92,7 |
macro TryWaitSimpleCriticalSection name ;result in eax and in flags |
{ |
local ok,try_end |
mov eax,[0x3000+second_base_address] |
mov eax,[CURRENT_TASK+second_base_address] |
mov eax,[eax+TASKDATA.pid] |
cmp [name],eax |
jz ok |
/kernel/trunk/core/sys32.inc |
---|
120,7 → 120,7 |
; test if debugging |
cli |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
mov eax, [0x80000+eax+APPDATA.debugger_slot] |
test eax, eax |
132,7 → 132,7 |
mov [error_interrupt], eax |
call show_error_parameters |
mov edx, [0x3010] |
mov edx, [TASK_BASE] |
mov [edx + TASKDATA.state], byte 4 |
jmp change_task |
143,7 → 143,7 |
cld |
movzx ecx, bl |
push ecx |
mov ecx, [0x3010] |
mov ecx, [TASK_BASE] |
push dword [ecx+TASKDATA.pid] ; PID of current process |
push 12 |
pop ecx |
152,7 → 152,7 |
pop ecx |
pop ecx |
pop ecx |
mov edx, [0x3010] |
mov edx, [TASK_BASE] |
mov byte [edx+TASKDATA.state], 1 ; suspended |
call change_task |
restore_ring3_context |
196,9 → 196,9 |
show_error_parameters: |
mov [write_error_to],process_pid+43 |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax, 5 |
mov eax,[0x3000+TASKDATA.pid+eax] |
mov eax,[CURRENT_TASK+TASKDATA.pid+eax] |
call writehex |
mov [write_error_to],process_error+43 |
433,9 → 433,9 |
set_application_table_status: |
push eax |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax, 5 |
add eax,0x3000+TASKDATA.pid |
add eax,CURRENT_TASK+TASKDATA.pid |
mov eax,[eax] |
mov [application_table_status],eax |
448,9 → 448,9 |
clear_application_table_status: |
push eax |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax, 5 |
add eax,0x3000+TASKDATA.pid |
add eax,CURRENT_TASK+TASKDATA.pid |
mov eax,[eax] |
cmp eax,[application_table_status] |
737,7 → 737,7 |
jz .nodebug |
push 8 |
pop ecx |
push dword [0x3000+edi+TASKDATA.pid] ; PID |
push dword [CURRENT_TASK+edi+TASKDATA.pid] ; PID |
push 2 |
call debugger_notify |
pop ecx |
764,7 → 764,7 |
; activate window |
movzx eax, word [0xC000 + esi*2] |
cmp eax, [0x3004] |
cmp eax, [TASK_COUNT] |
jne .dont_activate |
pushad |
.check_next_window: |
774,7 → 774,7 |
lea esi, [0xc400+eax*2] |
movzx edi, word [esi] ; edi = process |
shl edi, 5 |
cmp [0x3000 + edi + TASKDATA.state], byte 9 ; skip dead slots |
cmp [CURRENT_TASK + edi + TASKDATA.state], byte 9 ; skip dead slots |
je .check_next_window |
add edi, window_data |
; \begin{diamond}[19.09.2006] |
789,7 → 789,7 |
push esi ; remove hd1 & cd & flp reservation |
shl esi, 5 |
mov esi, [esi+0x3000+TASKDATA.pid] |
mov esi, [esi+CURRENT_TASK+TASKDATA.pid] |
cmp [hd1_status], esi |
jnz @f |
call free_hd_channel |
809,7 → 809,7 |
pusha ; remove all irq reservations |
mov eax,esi |
shl eax, 5 |
mov eax,[eax+0x3000+TASKDATA.pid] |
mov eax,[eax+CURRENT_TASK+TASKDATA.pid] |
mov edi,irq_owner |
mov ecx,16 |
newirqfree: |
823,7 → 823,7 |
pusha ; remove all port reservations |
mov edx,esi |
shl edx, 5 |
add edx,0x3000 |
add edx,CURRENT_TASK |
mov edx,[edx+TASKDATA.pid] |
rmpr0: |
867,12 → 867,12 |
popa |
mov edi,esi ; do not run this process slot |
shl edi, 5 |
mov [edi+0x3000 + TASKDATA.state],byte 9 |
mov [edi+CURRENT_TASK + TASKDATA.state],byte 9 |
; debugger test - terminate all debuggees |
mov eax, 2 |
mov ecx, 0x80000+2*0x100+APPDATA.debugger_slot |
.xd0: |
cmp eax, [0x3004] |
cmp eax, [TASK_COUNT] |
ja .xd1 |
cmp dword [ecx], esi |
jnz @f |
/kernel/trunk/drivers/infinity.asm |
---|
342,7 → 342,7 |
.test_ok: |
mov ebx, [CURRENT_TASK] ;hack: direct accsess |
shl ebx, 5 ;to kernel data |
mov ebx, [0x3000+ebx+4] |
mov ebx, [CURRENT_TASK+ebx+4] |
mov eax, STREAM_SIZE |
call CreateObject |
/kernel/trunk/fs/fat12.inc |
---|
31,9 → 31,9 |
reserve_flp_ok: |
push eax |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,5 |
mov eax,[eax+0x3000+TASKDATA.pid] |
mov eax,[eax+CURRENT_TASK+TASKDATA.pid] |
mov [flp_status],eax |
pop eax |
sti |
/kernel/trunk/fs/fat32.inc |
---|
124,9 → 124,9 |
reserve_ok1: |
push eax |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,5 |
mov eax,[eax+0x3000+TASKDATA.pid] |
mov eax,[eax+CURRENT_TASK+TASKDATA.pid] |
mov [hd1_status],eax |
pop eax |
sti |
/kernel/trunk/fs/fs.inc |
---|
85,7 → 85,7 |
cmp dword [eax+0],15 ; GET_DISK_INFO |
je fs_info |
cmp dword [0x3000],1 ; no memory checks for kernel requests |
cmp dword [CURRENT_TASK],1 ; no memory checks for kernel requests |
jz no_checks_for_kernel |
mov edx,eax |
cmp dword [eax+0],1 |
/kernel/trunk/fs/iso9660.inc |
---|
23,9 → 23,9 |
reserve_ok2: |
push eax |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,5 |
mov eax,[eax+0x3000+TASKDATA.pid] |
mov eax,[eax+CURRENT_TASK+TASKDATA.pid] |
mov [cd_status],eax |
pop eax |
sti |
377,7 → 377,7 |
cd_get_parameters_of_file_1: |
; ïîëó÷àåì àòðèáóòû ôàéëà |
xor eax,eax |
; ôàéë íå àðõèâèðîâàëñÿ |
; ôàéë íå àðõèâèðîâàëñ |
inc al |
shl eax,1 |
; ýòî êàòàëîã? |
/kernel/trunk/gui/button.inc |
---|
68,7 → 68,7 |
shr eax,16 |
shr ebx,16 |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
add eax,[edx-twdw + WDATA.box.left] |
add ebx,[edx-twdw + WDATA.box.top] |
164,7 → 164,7 |
sys_button: |
push edi |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,8 |
rol eax,16 |
add ax,word[edi+0x80000+APPDATA.wnd_clientbox.left] |
197,7 → 197,7 |
push ebx |
shr eax,16 |
shr ebx,16 |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
mov esi,[edx-twdw + WDATA.box.left] |
mov edi,[edx-twdw + WDATA.box.top] |
add eax,esi |
247,7 → 247,7 |
shl eax,4 |
add eax,edi |
mov bx,[0x3000] |
mov bx,[CURRENT_TASK] |
mov [eax],bx |
add eax,2 ; save button id number |
298,7 → 298,7 |
add eax,0x10 |
mov dx,[0x3000] |
mov dx,[CURRENT_TASK] |
cmp dx,[eax] |
jnz rnewba |
504,7 → 504,7 |
movzx ebx,word [eax] |
movzx ecx,word [0xC000 + ebx * 2] |
cmp ecx,[0x3004] |
cmp ecx,[TASK_COUNT] |
jne buttonnewcheck |
; check that button start is inside window x/y end |
/kernel/trunk/gui/event.inc |
---|
101,7 → 101,7 |
mov ebx, [CURRENT_TASK] |
shl ebx, 5 |
mov ebx, [0x3000+ebx+4] |
mov ebx, [CURRENT_TASK+ebx+4] |
mov [eax+APPOBJ.pid], ebx |
mov edx, [.flags] |
mov [eax+EVENT.state], edx |
274,7 → 274,7 |
call destroy_event.force |
ret |
.switch: |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], byte 5 |
call change_task |
jmp .wait |
339,7 → 339,7 |
ret |
.switch: |
or [eax+EVENT.state], EVENT_WATCHED |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], byte 5 |
call change_task |
mov eax, [.event] |
497,7 → 497,7 |
jne eventoccur |
newwait: |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov [eax+TASKDATA.state], byte 5 |
call change_task |
511,10 → 511,10 |
pushad |
mov edi,[0x3010] ; WINDOW REDRAW |
mov edi,[TASK_BASE] ; WINDOW REDRAW |
test [edi+TASKDATA.event_mask],dword 1 |
jz no_eventoccur1 |
;mov edi,[0x3010] |
;mov edi,[TASK_BASE] |
cmp [edi-twdw+WDATA.fl_redraw],byte 0 |
je no_eventoccur1 |
popad |
522,12 → 522,12 |
ret |
no_eventoccur1: |
;mov edi,[0x3010] ; KEY IN BUFFER |
;mov edi,[TASK_BASE] ; KEY IN BUFFER |
test [edi+TASKDATA.event_mask],dword 2 |
jz no_eventoccur2 |
mov ecx, [0x3000] |
mov ecx, [CURRENT_TASK] |
movzx edx,word [0xC000+ecx*2] |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
cmp eax,edx |
jne no_eventoccur2x |
cmp [0xf400],byte 0 |
546,14 → 546,14 |
jb @b |
no_eventoccur2: |
;mov edi,[0x3010] ; BUTTON IN BUFFER |
;mov edi,[TASK_BASE] ; BUTTON IN BUFFER |
test [edi+TASKDATA.event_mask],dword 4 |
jz no_eventoccur3 |
cmp [0xf500],byte 0 |
je no_eventoccur3 |
mov ecx, [0x3000] |
mov ecx, [CURRENT_TASK] |
movzx edx, word [0xC000+ecx*2] |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
cmp eax,edx |
jnz no_eventoccur3 |
popad |
572,10 → 572,10 |
no_eventoccur3: |
;mov edi,[0x3010] ; mouse event |
;mov edi,[TASK_BASE] ; mouse event |
test [edi+TASKDATA.event_mask],dword 00100000b |
jz no_mouse_event |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 00100000b |
jz no_mouse_event |
586,7 → 586,7 |
no_mouse_event: |
;mov edi,[0x3010] ; DESKTOP BACKGROUND REDRAW |
;mov edi,[TASK_BASE] ; DESKTOP BACKGROUND REDRAW |
test [edi+TASKDATA.event_mask],dword 16 |
jz no_eventoccur5 |
cmp [0xfff0],byte 2 |
596,10 → 596,10 |
ret |
no_eventoccur5: |
;mov edi,[0x3010] ; IPC |
;mov edi,[TASK_BASE] ; IPC |
test [edi+TASKDATA.event_mask],dword 01000000b |
jz no_ipc |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 01000000b |
jz no_ipc |
610,10 → 610,10 |
no_ipc: |
;mov edi,[0x3010] ; STACK |
;mov edi,[TASK_BASE] ; STACK |
test [edi+TASKDATA.event_mask],dword 10000000b |
jz no_stack_event |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
test [eax+0x80000+APPDATA.event_mask],dword 10000000b |
jz no_stack_event |
625,7 → 625,7 |
test byte [edi+TASKDATA.event_mask+1], 1 ; DEBUG |
jz .test_IRQ |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
test byte [eax+0x80000+APPDATA.event_mask+1], byte 1 |
jz .test_IRQ |
635,7 → 635,7 |
ret |
;.test_ext: |
; mov eax, [0x3000] |
; mov eax, [CURRENT_TASK] |
; shl eax, 8 |
; test dword [eax+0x80000+APPDATA.event_mask], EVENT_EXTENDED |
; jz .test_IRQ |
651,7 → 651,7 |
mov ebx,0x00010000 |
xor ecx, ecx |
irq_event_test: |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
test [edi+TASKDATA.event_mask],ebx |
jz no_irq_event |
mov edi,ecx |
658,7 → 658,7 |
shl edi,2 |
add edi,irq_owner |
mov edx,[edi] |
mov eax,[0x3010] |
mov eax,[TASK_BASE] |
mov eax,[eax+TASKDATA.pid] |
cmp edx,eax |
jne no_irq_event |
/kernel/trunk/gui/skincode.inc |
---|
365,7 → 365,7 |
shl eax,4 |
add eax,edi |
mov bx,[0x3000] |
mov bx,[CURRENT_TASK] |
mov [eax],bx |
add eax,2 ; save button id number |
404,7 → 404,7 |
shl eax,4 |
add eax,edi |
mov bx,[0x3000] |
mov bx,[CURRENT_TASK] |
mov [eax],bx |
add eax,2 ; save button id number |
/kernel/trunk/gui/window.inc |
---|
60,7 → 60,7 |
mov esi, 1 |
call setscreen |
mov ebp, [0x3004] ; number of processes |
mov ebp, [TASK_COUNT] ; number of processes |
cmp ebp, 1 |
jbe .finish |
align 4 |
68,7 → 68,7 |
movzx edi, word [0xC400 + esi * 2] |
shl edi, 5 |
cmp [0x3000+edi+TASKDATA.state], byte 9 |
cmp [CURRENT_TASK+edi+TASKDATA.state], byte 9 |
je .not_wnd |
add edi, window_data |
375,7 → 375,7 |
cmp eax,2 ; set common window colours |
jne no_com_colours |
mov [windowtypechanged],dword 1 |
mov esi,[0x3010] |
mov esi,[TASK_BASE] |
add esi,TASKDATA.mem_start |
add ebx,[esi] |
mov esi,ebx |
389,7 → 389,7 |
cmp eax,3 ; get common window colours |
jne no_get_com |
mov esi,[0x3010] |
mov esi,[TASK_BASE] |
add esi,TASKDATA.mem_start |
add ebx,[esi] |
mov edi,ebx |
468,7 → 468,7 |
cmp eax,8 ; set window skin |
jne no_set_skin |
mov eax,ebx |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ebx,[edi+TASKDATA.mem_start] ; abs start of info block |
pushd [ebx+0] [ebx+4] [ebx+8] [ebx+12] |
mov dword[ebx+0],0 ; read |
515,7 → 515,7 |
repos_windows: |
mov ecx,[0x3004] |
mov ecx,[TASK_COUNT] |
mov edi,0x20*2 |
mov byte[0x0000fff0],1 |
dec ecx |
911,7 → 911,7 |
; if type of current active window is 3, |
; it must be redrawn |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
movzx eax, word [0xC400 + eax*2] |
shl eax, 5 |
add eax, window_data |
928,7 → 928,7 |
xor esi, esi ; drop others |
waloop: |
cmp esi, dword [0x3004] |
cmp esi, dword [TASK_COUNT] |
jae wacont |
inc esi |
lea edi, [0xC000 + esi*2] |
944,13 → 944,13 |
pop esi ; esi = pointer at 0xC400 |
movzx eax, word [esi] |
mov bx, [0x3004] ; number of processes |
mov bx, [TASK_COUNT] ; number of processes |
mov [0xC000+eax*2], bx ; this is the last (and the upper) |
; update on screen -window stack |
xor esi, esi |
waloop2: |
mov edi, [0x3004] |
mov edi, [TASK_COUNT] |
cmp esi, edi |
jae wacont2 |
inc esi |
992,7 → 992,7 |
add esi, 2 |
push esi |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
lea eax, word [0xC400 + eax * 2] ; number of the upper window |
cmp esi, eax |
1000,7 → 1000,7 |
movzx eax, word [esi] |
shl eax, 5 |
cmp [0x3000 + eax + TASKDATA.state], byte 9 |
cmp [CURRENT_TASK + eax + TASKDATA.state], byte 9 |
je .new_check ; skip dead windows |
lea esi, [eax+window_data] |
1058,7 → 1058,7 |
; update screen info |
pushad |
mov edi, [0x3004] ; the last process (number) |
mov edi, [TASK_COUNT] ; the last process (number) |
movzx esi, word [0xC400 + edi * 2] |
shl esi, 5 |
add esi, window_data |
1072,7 → 1072,7 |
add ecx, eax ; ecx = x_end |
add edx, ebx ; edx = y_end |
mov edi, [0x3004] |
mov edi, [TASK_COUNT] |
movzx esi, word [0xC400 + edi * 2] |
call setscreen |
popad |
1137,7 → 1137,7 |
jz .skip_redrawings |
mov [edi+WDATA.fl_redraw], 1 |
and [edi+WDATA.fl_wstate], not WSTATE_MINIMIZED |
cmp eax, [0x3004] ; the uppermost window |
cmp eax, [TASK_COUNT] ; the uppermost window |
jnz .no_uppermost |
mov eax, [edi+WDATA.box.left] |
mov ebx, [edi+WDATA.box.top] |
1174,7 → 1174,7 |
cmp [window_minimize], 0 |
je .no_minimizing |
mov eax, [0x3004] ; the uppermost window |
mov eax, [TASK_COUNT] ; the uppermost window |
mov bl, 0 |
xchg [window_minimize], bl |
cmp bl, 1 |
1192,7 → 1192,7 |
ret |
.mouse_buttons_pressed: |
mov esi,[0x3004] |
mov esi,[TASK_COUNT] |
inc esi |
cwloop: |
1228,7 → 1228,7 |
pushad |
mov eax, esi |
mov ebx, [0x3004] |
mov ebx, [TASK_COUNT] |
cmp eax, ebx ; is this window active? |
jz .move_resize_window |
1751,7 → 1751,7 |
test eax, eax |
jne rsw_no_address |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
mov [eax+0x80000+APPDATA.wnd_shape],ebx |
1759,7 → 1759,7 |
cmp eax,1 |
jne rsw_no_scale |
mov eax,[0x3000] |
mov eax,[CURRENT_TASK] |
shl eax,8 |
mov byte [eax+0x80000+APPDATA.wnd_shape_scale], bl |
rsw_no_scale: |
/kernel/trunk/hid/keyboard.inc |
---|
91,7 → 91,7 |
; mov ds, ax |
; mov es, ax |
movzx eax,word[0x3004] ; top window process |
movzx eax,word[TASK_COUNT] ; top window process |
movzx eax,word[0xC400+eax*2] |
shl eax,8 |
mov al,[0x80000+eax+APPDATA.keyboard_mode] |
/kernel/trunk/hid/mousedrv.inc |
---|
265,9 → 265,9 |
ret |
@@: |
pushad |
cmp [0x3000],dword 1 |
cmp [CURRENT_TASK],dword 1 |
je disable_m |
mov edx,[0x3000] |
mov edx,[CURRENT_TASK] |
shl edx,5 |
add edx,window_data |
movzx eax, word [0xfb0a] |
277,7 → 277,7 |
imul ecx,ebx |
add ecx,eax |
add ecx, display_data |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
movzx ebx, byte [ecx] |
cmp eax,ebx |
je yes_mouse_disable |
296,7 → 296,7 |
je yes_mouse_disable |
jmp no_mouse_disable |
yes_mouse_disable: |
mov edx,[0x3000] |
mov edx,[CURRENT_TASK] |
shl edx,5 |
add edx,window_data |
movzx eax, word [0xfb0a] |
/kernel/trunk/kernel.asm |
---|
504,9 → 504,9 |
; LOAD FONTS I and II |
mov [0x3000],dword 1 |
mov [0x3004],dword 1 |
mov [0x3010],dword 0x3020 |
mov [CURRENT_TASK],dword 1 |
mov [TASK_COUNT],dword 1 |
mov [TASK_BASE],dword TASK_DATA |
mov esi,char |
xor ebx,ebx |
636,9 → 636,9 |
mov dword [0x80000+256+APPDATA.bk_obj], ebx |
; task list |
mov [0x3020+TASKDATA.wnd_number], 1 ; on screen number |
mov [0x3020+TASKDATA.pid], 1 ; process id number |
mov [0x3020+TASKDATA.mem_start], 0 ; process base address |
mov [TASK_DATA+TASKDATA.wnd_number], 1 ; on screen number |
mov [TASK_DATA+TASKDATA.pid], 1 ; process id number |
mov [TASK_DATA+TASKDATA.mem_start], 0 ; process base address |
mov edi,tss_data+tss_step |
mov ecx, (tss_step)/4 |
719,8 → 719,8 |
call load_skin |
; LOAD FIRST APPLICATION |
mov [0x3000],dword 1 |
mov [0x3004],dword 1 |
mov [CURRENT_TASK],dword 1 |
mov [TASK_COUNT],dword 1 |
cli |
cmp byte [0x2f0000+0x9030],1 |
jne no_load_vrr_m |
744,8 → 744,8 |
first_app_found: |
cli |
;mov [0x3004],dword 2 |
mov [0x3000],dword 1 ; set OS task fisrt |
;mov [TASK_COUNT],dword 2 |
mov [CURRENT_TASK],dword 1 ; set OS task fisrt |
; SET KEYBOARD PARAMETERS |
1061,7 → 1061,7 |
ret |
sopl8: |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
mov edx,[edx+0x4] |
and ebx,65535 |
cld |
1326,7 → 1326,7 |
; edx length |
; edi 1 force |
; mov edi,[0x3000] |
; mov edi,[CURRENT_TASK] |
; shl edi,8 |
; add ax,word[edi+0x80000+APPDATA.wnd_clientbox.top] |
; rol eax,16 |
1339,12 → 1339,12 |
add ecx,esp |
mov eax,[esp+64+32-8+4] |
push edx ; add window start x & y |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
mov ebx,[edx-twdw+WDATA.box.left] |
add ebx, [(edx-0x3000)*8+0x80000+APPDATA.wnd_clientbox.left] |
add ebx, [(edx-CURRENT_TASK)*8+0x80000+APPDATA.wnd_clientbox.left] |
shl ebx,16 |
add ebx,[edx-twdw+WDATA.box.top] |
add ebx, [(edx-0x3000)*8+0x80000+APPDATA.wnd_clientbox.top] |
add ebx, [(edx-CURRENT_TASK)*8+0x80000+APPDATA.wnd_clientbox.top] |
add eax,ebx |
pop edx |
mov ebx,[esp+64+32-12+4] |
1405,7 → 1405,7 |
jnz nsyse2 |
cmp ebx,1 |
jnz kbnobase |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ecx,[edi+TASKDATA.mem_start] |
mov eax,ecx |
mov ebx,keymap |
1415,7 → 1415,7 |
kbnobase: |
cmp ebx,2 |
jnz kbnoshift |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ecx,[edi+TASKDATA.mem_start] |
mov eax,ecx |
mov ebx,keymap_shift |
1425,7 → 1425,7 |
kbnoshift: |
cmp ebx,3 |
jne kbnoalt |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ecx,[edi+TASKDATA.mem_start] |
mov eax,ecx |
mov ebx,keymap_alt |
1608,7 → 1608,7 |
jne ngsyse2 |
cmp ebx,1 |
jnz kbnobaseret |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ecx,[edi+TASKDATA.mem_start] |
mov ebx,ecx |
mov eax,keymap |
1618,7 → 1618,7 |
kbnobaseret: |
cmp ebx,2 |
jnz kbnoshiftret |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ecx,[edi+TASKDATA.mem_start] |
mov ebx,ecx |
mov eax,keymap_shift |
1628,7 → 1628,7 |
kbnoshiftret: |
cmp ebx,3 |
jne kbnoaltret |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add ecx,[edi+TASKDATA.mem_start] |
mov ebx,ecx |
mov eax,keymap_alt |
1733,7 → 1733,7 |
mov eax,[0xfb0a] |
shl eax,16 |
mov ax,[0xfb0c] |
mov esi,[0x3010] |
mov esi,[TASK_BASE] |
mov bx, word [esi-twdw+WDATA.box.left] |
shl ebx,16 |
mov bx, word [esi-twdw+WDATA.box.top] |
1884,7 → 1884,7 |
sys_end: |
mov eax,[0x3010] |
mov eax,[TASK_BASE] |
mov [eax+TASKDATA.state], 3 ; terminate this program |
waitterm: ; wait here for termination |
1931,7 → 1931,7 |
mov [0x2f0000+0x9030],byte 0 |
for_shutdown_parameter: |
mov eax,[0x3004] |
mov eax,[TASK_COUNT] |
add eax,2 |
mov [shutdown_processes],eax |
mov [0xFF00],al |
1944,13 → 1944,13 |
sysfn_terminate: ; 18.2 = TERMINATE |
cmp ebx,2 |
jb noprocessterminate |
mov edx,[0x3004] |
mov edx,[TASK_COUNT] |
cmp ebx,edx |
ja noprocessterminate |
mov eax,[0x3004] |
mov eax,[TASK_COUNT] |
shl ebx,5 |
mov edx,[ebx+0x3000+TASKDATA.pid] |
add ebx,0x3000+TASKDATA.state |
mov edx,[ebx+CURRENT_TASK+TASKDATA.pid] |
add ebx,CURRENT_TASK+TASKDATA.state |
cmp byte [ebx], 9 |
jz noprocessterminate |
1995,13 → 1995,13 |
sysfn_activate: ; 18.3 = ACTIVATE WINDOW |
cmp ebx,2 |
jb .nowindowactivate |
cmp ebx,[0x3004] |
cmp ebx,[TASK_COUNT] |
ja .nowindowactivate |
mov [window_minimize], 2 ; restore window if minimized |
movzx esi, word [0xC000 + ebx*2] |
cmp esi, [0x3004] |
cmp esi, [TASK_COUNT] |
je .nowindowactivate ; already active |
mov edi, ebx |
2029,7 → 2029,7 |
;!!!!!!!!!!!!!!!!!!!!!!!! |
sysfn_getactive: ; 18.7 = get active window |
mov eax, [0x3004] |
mov eax, [TASK_COUNT] |
movzx eax, word [0xC400 + eax*2] |
mov [esp+36],eax |
ret |
2070,7 → 2070,7 |
rep movsb |
ret |
for_all_tables: |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov edi,[edi+TASKDATA.mem_start] |
add edi,ecx |
mov esi,0x40000 |
2089,7 → 2089,7 |
ret |
sysfn_getversion: ; 18.13 = get kernel ID and version |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov edi,[edi+TASKDATA.mem_start] |
add edi,ebx |
mov esi,version_inf |
2285,7 → 2285,7 |
cmp eax,5 ; BLOCK MOVE TO BGR |
jnz nosb5 |
; bughere |
mov edi, [0x3010] |
mov edi, [TASK_BASE] |
add ebx, [edi+TASKDATA.mem_start] |
; mov esi, ebx |
; mov edi, ecx |
2347,9 → 2347,9 |
sys_getkey: |
mov [esp+36],dword 1 |
; test main buffer |
mov ebx, [0x3000] ; TOP OF WINDOW STACK |
mov ebx, [CURRENT_TASK] ; TOP OF WINDOW STACK |
movzx ecx,word [0xC000 + ebx * 2] |
mov edx,[0x3004] |
mov edx,[TASK_COUNT] |
cmp ecx,edx |
jne .finish |
cmp [0xf400],byte 0 |
2395,10 → 2395,10 |
sys_getbutton: |
mov ebx, [0x3000] ; TOP OF WINDOW STACK |
mov ebx, [CURRENT_TASK] ; TOP OF WINDOW STACK |
mov [esp+36],dword 1 |
movzx ecx, word [0xC000 + ebx * 2] |
mov edx, [0x3004] ; less than 256 processes |
mov edx, [TASK_COUNT] ; less than 256 processes |
cmp ecx,edx |
jne .exit |
movzx eax,byte [0xf500] |
2427,12 → 2427,12 |
; +30 dword PID , process idenfification number |
; |
mov edi,[0x3010] ; eax = return area |
mov edi,[TASK_BASE] ; eax = return area |
add eax,[edi + TASKDATA.mem_start] |
cmp ebx,-1 ; who am I ? |
jne no_who_am_i |
mov ebx,[0x3000] |
mov ebx,[CURRENT_TASK] |
no_who_am_i: |
push eax ; return area |
2447,7 → 2447,7 |
xor edx,edx |
mov eax,0x20 |
mul ebx |
add eax,0x3000+TASKDATA.cpu_usage |
add eax,CURRENT_TASK+TASKDATA.cpu_usage |
mov ebx,eax |
pop eax |
mov ecx,[ebx] |
2486,7 → 2486,7 |
mov eax,[esp] |
shl eax,5 |
add eax,0x3000+TASKDATA.pid |
add eax,CURRENT_TASK+TASKDATA.pid |
mov eax,[eax] |
mov [ebx+20],eax |
2505,7 → 2505,7 |
mov eax,[esp] |
shl eax,5 |
add eax,0x3000+TASKDATA.state |
add eax,CURRENT_TASK+TASKDATA.state |
mov eax,[eax] |
mov [ebx+40],ax |
2531,7 → 2531,7 |
; return number of processes |
mov eax,[0x3004] |
mov eax,[TASK_COUNT] |
mov [esp+36],eax |
ret |
2618,7 → 2618,7 |
; buttons away |
mov ecx,[0x3000] |
mov ecx,[CURRENT_TASK] |
sys_newba2: |
2661,8 → 2661,8 |
cmp eax,2 |
jnz srl1 |
mov edx,[0x3010] ; return whole screen draw area for this app |
add edx,draw_data-0x3000 |
mov edx,[TASK_BASE] ; return whole screen draw area for this app |
add edx,draw_data-CURRENT_TASK |
mov [edx+RECT.left], 0 |
mov [edx+RECT.top], 0 |
mov eax,[0xfe00] |
2670,7 → 2670,7 |
mov eax,[0xfe04] |
mov [edx+RECT.bottom],eax |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
or [edi-twdw+WDATA.fl_wdrawn], 1 ; no new position & buttons from app |
call sys_window_mouse |
2731,9 → 2731,9 |
; parameter for drawwindow_IV |
push 0 |
mov edi, [0x3004] |
mov edi, [TASK_COUNT] |
movzx edi, word [0xC400 + edi*2] |
cmp edi, [0x3000] |
cmp edi, [CURRENT_TASK] |
jne @f |
inc dword [esp] |
@@: |
2757,12 → 2757,12 |
call [disable_mouse] |
xor eax,eax |
mov edx,[0x3004] |
mov edx,[TASK_COUNT] |
movzx edx,word[0xC400+edx*2] |
cmp edx,[0x3000] |
cmp edx,[CURRENT_TASK] |
jne @f |
inc eax |
@@: mov edx,[0x3000] |
@@: mov edx,[CURRENT_TASK] |
shl edx,5 |
add edx,window_data |
movzx ebx,[edx+WDATA.fl_wstyle] |
2790,7 → 2790,7 |
;-------------------------------------------------------------- |
.2: ;jmp @f |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,5 |
test [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION |
jz @f |
2913,7 → 2913,7 |
sys_set_window: |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,5 |
add edi,window_data |
2996,7 → 2996,7 |
; NOTE: only window owner thread can set its caption, |
; so there's no parameter for PID/TID |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,5 |
; have to check if caption is within application memory limit |
3031,7 → 3031,7 |
sys_window_move: |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,5 |
add edi,window_data |
3299,7 → 3299,7 |
jne mouse_not_active |
mov [mouse_active], 0 |
xor edi, edi |
mov ecx, [0x3004] |
mov ecx, [TASK_COUNT] |
set_mouse_event: |
add edi, 256 |
or [edi+0x80000+APPDATA.event_mask], dword 00100000b |
3357,8 → 3357,8 |
noshutdown: |
mov eax,[0x3004] ; termination |
mov ebx,0x3020+TASKDATA.state |
mov eax,[TASK_COUNT] ; termination |
mov ebx,TASK_DATA+TASKDATA.state |
mov esi,1 |
newct: |
3475,7 → 3475,7 |
pop ecx |
cmp ecx,[0x3004] |
cmp ecx,[TASK_COUNT] |
jle newdw2 |
pop eax |
3545,7 → 3545,7 |
set_app_param: |
push edi |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov [edi+TASKDATA.event_mask],eax |
pop edi |
3634,7 → 3634,7 |
;; 5 file not found |
;; ebx = size of file |
; |
; mov edi,[0x3010] |
; mov edi,[TASK_BASE] |
; add edi,0x10 |
; add esi,[edi] |
; add eax,[edi] |
3662,12 → 3662,12 |
sys_programirq: |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add eax,[edi+TASKDATA.mem_start] |
cmp ebx,16 |
jae .not_owner |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov edi,[edi+TASKDATA.pid] |
cmp edi,[irq_owner+ebx*4] |
je spril1 |
3696,7 → 3696,7 |
shl edx,2 |
add edx,irq_owner |
mov edx,[edx] |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov edi,[edi+TASKDATA.pid] |
cmp edx,edi |
je gidril1 |
3736,7 → 3736,7 |
pushad |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
imul edi,tss_step |
add edi,tss_data+128 |
; add edi,128 |
3844,7 → 3844,7 |
mov [0x2d0000],edi |
shl edi,4 |
add edi,0x2d0000 |
mov esi,[0x3010] |
mov esi,[TASK_BASE] |
mov esi,[esi+TASKDATA.pid] |
mov [edi],esi |
mov [edi+4],ebx |
3860,7 → 3860,7 |
mov esi,[0x2d0000] ; no reserved areas ? |
test esi,esi |
je frpal2 |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
mov edx,[edx+TASKDATA.pid] |
frpal3: |
mov edi,esi |
3934,7 → 3934,7 |
lea edi,[irq_owner+ebx*4] |
mov edx,[edi] |
mov eax,[0x3010] |
mov eax,[TASK_BASE] |
cmp edx,[eax+TASKDATA.pid] |
jne fril1 |
dec ecx |
3949,7 → 3949,7 |
cmp dword [edi], 0 |
jnz ril1 |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
mov edx,[edx+TASKDATA.pid] |
mov [edi],edx |
dec ecx |
4001,7 → 4001,7 |
.exit: |
ret |
@@: |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,8 |
add dx,word[edi+0x80000+APPDATA.wnd_clientbox.top] |
rol edx,16 |
4043,7 → 4043,7 |
; esi = number of bits per pixel, must be 8, 24 or 32 |
; edi = pointer to palette |
; ebp = row delta |
mov eax, [0x3000] |
mov eax, [CURRENT_TASK] |
shl eax, 8 |
add dx, word [eax+0x80000+APPDATA.wnd_clientbox.top] |
rol edx, 16 |
4104,7 → 4104,7 |
; edi color |
__sys_drawbar: |
mov esi,[0x3000] |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ecx,[esi+0x80000+APPDATA.wnd_clientbox.left] |
4474,7 → 4474,7 |
sys_process_def: |
mov edi, [0x3000] |
mov edi, [CURRENT_TASK] |
dec eax ; 1 = set keyboard mode |
jne no_set_keyboard_setup |
4635,10 → 4635,10 |
syscall_setpixel: ; SetPixel |
mov edx,[0x3010] |
mov edx,[TASK_BASE] |
add eax,[edx-twdw+WDATA.box.left] |
add ebx,[edx-twdw+WDATA.box.top] |
mov edi,[0x3000] |
mov edi,[CURRENT_TASK] |
shl edi,8 |
add eax,[edi+0x80000+APPDATA.wnd_clientbox.left] |
add ebx,[edi+0x80000+APPDATA.wnd_clientbox.top] |
4651,10 → 4651,10 |
syscall_writetext: ; WriteText |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
mov ebp,[edi-twdw+WDATA.box.left] |
push esi |
mov esi,[0x3000] |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left] |
shl ebp,16 |
4671,7 → 4671,7 |
syscall_openramdiskfile: ; OpenRamdiskFile |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add eax,[edi] |
add edx,[edi] |
4694,7 → 4694,7 |
shr eax,16 |
movzx edx,bx |
shr ebx,16 |
mov esi,[0x3000] |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add ebx,[esi+0x80000+APPDATA.wnd_clientbox.top] |
4726,7 → 4726,7 |
syscall_delramdiskfile: ; DelRamdiskFile |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add eax,[edi] |
call filedelete |
4737,7 → 4737,7 |
syscall_writeramdiskfile: ; WriteRamdiskFile |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add eax,[edi] |
add ebx,[edi] |
4762,7 → 4762,7 |
syscall_readstring: ; ReadString |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add eax,[edi] |
call read_string |
4773,10 → 4773,10 |
syscall_drawline: ; DrawLine |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
movzx edx,word[edi-twdw+WDATA.box.left] |
mov ebp,edx |
mov esi,[0x3000] |
mov esi,[CURRENT_TASK] |
shl esi,8 |
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left] |
add dx,word[esi+0x80000+APPDATA.wnd_clientbox.left] |
4860,7 → 4860,7 |
read_from_hd: ; Read from hd - fn not in use |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add eax,[edi] |
add ecx,[edi] |
4924,7 → 4924,7 |
; push edi |
; mov edi,[0x3000] ; restore processes tss pointer in gdt, busyfl? |
; mov edi,[CURRENT_TASK] ; restore processes tss pointer in gdt, busyfl? |
; imul edi,8 |
; mov [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b |
/kernel/trunk/memmap.inc |
---|
212,7 → 212,7 |
; |
; 0x0098B000 -> kernel heap |
; |
; 0x01FFFFFF heam min limit |
; 0x01FFFFFF heap min limit |
; 0x7DBFFFFF heap max limit |
; 0x7DC00000 -> 0x7FBFFFFF LFB 32Mb |
; 0x7DC00000 -> 0x7E3FFFFF application available LFB 8Mb |
/kernel/trunk/network/socket.inc |
---|
215,7 → 215,7 |
mov [eax + SOCKET.RemoteIP], edx |
mov [eax + SOCKET.rxDataCount], dword 0 ; recieved data count |
mov esi, [0x3010] |
mov esi, [TASK_BASE] |
mov ebx, [esi+TASKDATA.pid] |
mov [eax + SOCKET.PID], ebx ; save the process ID |
pop eax ; Get the socket number back, so we can return it |
279,7 → 279,7 |
sot_001: |
mov [eax + SOCKET.TCBState], ebx ; Indicate the state of the TCB |
mov esi, [0x3010] |
mov esi, [TASK_BASE] |
mov ecx, [esi+TASKDATA.pid] |
mov [eax + SOCKET.PID], ecx ; save the process ID |
709,7 → 709,7 |
pop eax ; get callers ptr to data to send |
; Get the address of the callers data |
mov edi, [0x3010] |
mov edi, [TASK_BASE] |
add edi, TASKDATA.mem_start |
add eax, [edi] |
mov esi, eax |
824,7 → 824,7 |
mov bl, 0x10 ; ACK |
; Get the address of the callers data |
mov edi, [0x3010] |
mov edi, [TASK_BASE] |
add edi, TASKDATA.mem_start |
add edx, [edi] |
mov esi, edx |
/kernel/trunk/network/stack.inc |
---|
929,7 → 929,7 |
push eax ; save address of IP data |
; Get the address of the callers data |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add edx,[edi] |
mov edi, edx |
992,7 → 992,7 |
pop eax ; get callers ptr to data to send |
; Get the address of the callers data |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add eax,[edi] |
mov esi, eax |
/kernel/trunk/network/tcp.inc |
---|
1057,7 → 1057,7 |
; flag an event to the application |
pop eax |
mov ecx,1 |
mov esi,0x3020+TASKDATA.pid |
mov esi,TASK_DATA+TASKDATA.pid |
news: |
cmp [esi],eax |
1064,7 → 1064,7 |
je foundPID1 |
inc ecx |
add esi,0x20 |
cmp ecx,[0x3004] |
cmp ecx,[TASK_COUNT] |
jbe news |
foundPID1: |
/kernel/trunk/network/udp.inc |
---|
141,7 → 141,7 |
; flag an event to the application |
pop eax |
mov ecx,1 |
mov esi,0x3020+TASKDATA.pid |
mov esi,TASK_DATA+TASKDATA.pid |
newsearch: |
cmp [esi],eax |
148,7 → 148,7 |
je foundPID |
inc ecx |
add esi,0x20 |
cmp ecx,[0x3004] |
cmp ecx,[TASK_COUNT] |
jbe newsearch |
foundPID: |
/kernel/trunk/sound/sb16.inc |
---|
30,7 → 30,7 |
cmp eax,0 ; Load data |
jne no_SB16_load_music |
mov edi,[0x3010] |
mov edi,[TASK_BASE] |
add edi,TASKDATA.mem_start |
add ebx,[edi] |
call code_SB16_load_music |
72,12 → 72,12 |
movzx eax, byte [countDelayNote] |
or al, al ; player is busy ? |
jnz retFunc55 ; return counter delay Note |
; mov eax, [0x3010] |
; mov eax, [TASK_BASE] |
; mov eax, [eax+0x10] ; address application im memory |
; add eax, edx ; add offset Delay-Note string |
; mov [memAdrNote], eax |
mov [memAdrNote],edx |
mov eax,[0x3010] |
mov eax,[TASK_BASE] |
mov eax,[eax+TASKDATA.pid] |
mov [pidProcessNote],eax |
xor eax, eax ; Ok! EAX = 0 |
/kernel/trunk/video/cursors.inc |
---|
361,7 → 361,7 |
@@: |
mov eax, [CURRENT_TASK] |
shl eax, 5 |
mov eax, [0x3000+eax+4] |
mov eax, [CURRENT_TASK+eax+4] |
mov ebx, [src] |
mov ecx, [flags] |
call [create_cursor] ;eax, ebx, ecx |
394,7 → 394,7 |
mov ebx, [CURRENT_TASK] |
shl ebx, 5 |
mov ebx, [0x3000+ebx+4] |
mov ebx, [CURRENT_TASK+ebx+4] |
cmp ebx, [esi+CURSOR.pid] |
jne .fail |
/kernel/trunk/video/vesa12.inc |
---|
364,7 → 364,7 |
push ebx |
push ecx |
push edx |
mov ecx,[0x3010] |
mov ecx,[TASK_BASE] |
add eax,[ecx-twdw+WDATA.box.left] |
add ebx,[ecx-twdw+WDATA.box.top] |
push eax |
402,17 → 402,17 |
push eax |
push ecx |
mov eax,[0x3010] |
mov ecx,[eax+draw_data-0x3000+RECT.left] |
mov eax,[TASK_BASE] |
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.left] |
cmp ecx,0 |
jnz dbcblimitlset12 |
mov ecx,[eax+draw_data-0x3000+RECT.top] |
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.top] |
cmp ecx,0 |
jnz dbcblimitlset12 |
mov ecx,[eax+draw_data-0x3000+RECT.right] |
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.right] |
cmp ecx,[0xfe00] |
jnz dbcblimitlset12 |
mov ecx,[eax+draw_data-0x3000+RECT.bottom] |
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.bottom] |
cmp ecx,[0xfe04] |
jnz dbcblimitlset12 |
pop ecx |
462,7 → 462,7 |
mov ebx,3 |
div ebx |
add eax,WinMapAddress |
mov ebx,[0x3000] |
mov ebx,[CURRENT_TASK] |
cld |
dbnp2412: |
553,7 → 553,7 |
sub eax,[0xfe80] |
shr eax,2 |
add eax,WinMapAddress |
mov ebx,[0x3000] |
mov ebx,[CURRENT_TASK] |
cld |
dbnp3212: |
731,7 → 731,7 |
push edx |
movzx eax,word [esp+2] |
movzx ebx,word [esp+0] |
mov ecx,[0x3010] |
mov ecx,[TASK_BASE] |
add eax,[ecx-twdw+WDATA.box.left] |
add ebx,[ecx-twdw+WDATA.box.top] |
push eax |
760,15 → 760,15 |
; check limits while draw ? |
push ecx |
mov eax,[0x3010] |
cmp dword [eax+draw_data-0x3000+RECT.left], 0 |
mov eax,[TASK_BASE] |
cmp dword [eax+draw_data-CURRENT_TASK+RECT.left], 0 |
jnz dbcblimitlset212 |
cmp dword [eax+draw_data-0x3000+RECT.top], 0 |
cmp dword [eax+draw_data-CURRENT_TASK+RECT.top], 0 |
jnz dbcblimitlset212 |
mov ecx,[eax+draw_data-0x3000+RECT.right] |
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.right] |
cmp ecx,[0xfe00] |
jnz dbcblimitlset212 |
mov ecx,[eax+draw_data-0x3000+RECT.bottom] |
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.bottom] |
cmp ecx,[0xfe04] |
jnz dbcblimitlset212 |
pop ecx |
798,7 → 798,7 |
mov ebx,3 |
div ebx |
add edx,WinMapAddress |
mov ebx,[0x3000] |
mov ebx,[CURRENT_TASK] |
mov bh,[esp+4*3] |
np2412: |
867,7 → 867,7 |
sub edx,[0xfe80] |
shr edx,2 |
add edx,WinMapAddress |
mov ebx,[0x3000] |
mov ebx,[CURRENT_TASK] |
mov bh,[esp+4*3] |
np3212: |
/kernel/trunk/video/vesa20.inc |
---|
122,7 → 122,7 |
mov [putimg.image_cy], edx |
; calculate absolute (i.e. screen) coordinates |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
mov ebx, [eax-twdw + WDATA.box.left] |
add ebx, [putimg.image_cx] |
mov [putimg.abs_cx], ebx |
211,7 → 211,7 |
xchg eax, ebp |
; get process number |
mov ebx, [0x3000] |
mov ebx, [CURRENT_TASK] |
cmp byte [ScreenBPP], 32 |
je put_image_end_32 |
619,7 → 619,7 |
mov [drbar.bar_cx], eax |
mov [drbar.bar_cy], ebx |
mov edi, [0x3010] |
mov edi, [TASK_BASE] |
add eax, [edi-twdw + WDATA.box.left] ; win_cx |
add ebx, [edi-twdw + WDATA.box.top] ; win_cy |
mov [drbar.abs_cx], eax |
701,7 → 701,7 |
xchg eax, ebp |
; get process number |
mov ebx, [0x3000] |
mov ebx, [CURRENT_TASK] |
cmp byte [ScreenBPP], 24 |
jne draw_bar_end_32 |
/kernel/trunk/video/vga.inc |
---|
409,7 → 409,7 |
VGA_draw_bar_1: |
mov [temp.cx],eax |
mov eax, [0x3010] |
mov eax, [TASK_BASE] |
add ebx, [eax-twdw + 4] |
mov eax, [eax-twdw + 0] |
add eax, [temp.cx] |