forked from KolibriOS/kolibrios
1)fixed wrong exported LFB address
2)replace 0x3000 0x3004 0x3010 0x3020 whith symbolic constants git-svn-id: svn://kolibrios.org@379 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
73c568fb03
commit
04929cf017
@ -18,7 +18,7 @@ sys_cd_audio:
|
|||||||
|
|
||||||
cmp eax,2
|
cmp eax,2
|
||||||
jnz nocdtl
|
jnz nocdtl
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add ebx,[edi]
|
add ebx,[edi]
|
||||||
call sys_cdtracklist
|
call sys_cdtracklist
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
; Àäàïòàöèÿ è äîðàáîòêà Mario79
|
; Àäàïòàöèÿ è äîðàáîòêà Mario79
|
||||||
|
|
||||||
give_back_application_data: ; ïåðåñëàòü ïðèëîæåíèþ
|
give_back_application_data: ; ïåðåñëàòü ïðèëîæåíèþ
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov edi,[edi+TASKDATA.mem_start]
|
mov edi,[edi+TASKDATA.mem_start]
|
||||||
add edi,ecx
|
add edi,ecx
|
||||||
give_back_application_data_1:
|
give_back_application_data_1:
|
||||||
@ -16,8 +16,8 @@ give_back_application_data_1:
|
|||||||
rep movsd
|
rep movsd
|
||||||
ret
|
ret
|
||||||
|
|
||||||
take_data_from_application: ; взять из приложения
|
take_data_from_application: ; взять из приложени
|
||||||
mov esi,[0x3010]
|
mov esi,[TASK_BASE]
|
||||||
mov esi,[esi+TASKDATA.mem_start]
|
mov esi,[esi+TASKDATA.mem_start]
|
||||||
add esi,ecx
|
add esi,ecx
|
||||||
take_data_from_application_1:
|
take_data_from_application_1:
|
||||||
@ -66,7 +66,7 @@ FDC_C DB ?
|
|||||||
FDC_H DB ?
|
FDC_H DB ?
|
||||||
FDC_R DB ?
|
FDC_R DB ?
|
||||||
FDC_N DB ?
|
FDC_N DB ?
|
||||||
; Счетчик повторения операции чтения
|
; Счетчик повторения операции чтени
|
||||||
ReadRepCounter DB ?
|
ReadRepCounter DB ?
|
||||||
; Ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè
|
; Ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè
|
||||||
RecalRepCounter DB ?
|
RecalRepCounter DB ?
|
||||||
@ -174,7 +174,7 @@ FDCDataInput:
|
|||||||
;* ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÊÎÍÒÐÎËËÅÐÀ ÍÃÌÄ *
|
;* ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈß ÎÒ ÊÎÍÒÐÎËËÅÐÀ ÍÃÌÄ *
|
||||||
;*********************************************
|
;*********************************************
|
||||||
FDCInterrupt:
|
FDCInterrupt:
|
||||||
; Установить флаг прерывания
|
; Установить флаг прерывани
|
||||||
mov [FDD_IntFlag],1
|
mov [FDD_IntFlag],1
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -194,7 +194,7 @@ WaitFDCInterrupt:
|
|||||||
pusha
|
pusha
|
||||||
; Ñáðîñèòü áàéò ñîñòîÿíèÿ îïåðàöèè
|
; Ñáðîñèòü áàéò ñîñòîÿíèÿ îïåðàöèè
|
||||||
mov [FDC_Status],FDC_Normal
|
mov [FDC_Status],FDC_Normal
|
||||||
; Сбросить флаг прерывания
|
; Сбросить флаг прерывани
|
||||||
mov [FDD_IntFlag],0
|
mov [FDD_IntFlag],0
|
||||||
; Îáíóëèòü ñ÷åò÷èê òèêîâ
|
; Îáíóëèòü ñ÷åò÷èê òèêîâ
|
||||||
mov eax,[timer_ticks]
|
mov eax,[timer_ticks]
|
||||||
@ -352,7 +352,7 @@ SeekTrack:
|
|||||||
; Ïîäàòü êîìàíäó "Ïîèñê"
|
; Ïîäàòü êîìàíäó "Ïîèñê"
|
||||||
mov AL,0Fh
|
mov AL,0Fh
|
||||||
call FDCDataOutput
|
call FDCDataOutput
|
||||||
; Передать байт номера головки/накопителя
|
; Передать байт номера головки/накопител
|
||||||
mov AL,[FDD_Head]
|
mov AL,[FDD_Head]
|
||||||
shl AL,2
|
shl AL,2
|
||||||
call FDCDataOutput
|
call FDCDataOutput
|
||||||
@ -467,7 +467,7 @@ ReadSectWithRetr:
|
|||||||
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè
|
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè
|
||||||
mov [RecalRepCounter],0
|
mov [RecalRepCounter],0
|
||||||
@@TryAgain:
|
@@TryAgain:
|
||||||
; Обнулить счетчик повторения операции чтения
|
; Обнулить счетчик повторения операции чтени
|
||||||
mov [ReadRepCounter],0
|
mov [ReadRepCounter],0
|
||||||
@@ReadSector_1:
|
@@ReadSector_1:
|
||||||
call ReadSector
|
call ReadSector
|
||||||
@ -475,7 +475,7 @@ ReadSectWithRetr:
|
|||||||
je @@Exit_2
|
je @@Exit_2
|
||||||
cmp [FDC_Status],1
|
cmp [FDC_Status],1
|
||||||
je @@Err_3
|
je @@Err_3
|
||||||
; Троекратное повторение чтения
|
; Троекратное повторение чтени
|
||||||
inc [ReadRepCounter]
|
inc [ReadRepCounter]
|
||||||
cmp [ReadRepCounter],3
|
cmp [ReadRepCounter],3
|
||||||
jb @@ReadSector_1
|
jb @@ReadSector_1
|
||||||
@ -565,7 +565,7 @@ WriteSectWithRetr:
|
|||||||
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè
|
; Îáíóëèòü ñ÷åò÷èê ïîâòîðåíèÿ îïåðàöèè ðåêàëèáðîâêè
|
||||||
mov [RecalRepCounter],0
|
mov [RecalRepCounter],0
|
||||||
@@TryAgain_1:
|
@@TryAgain_1:
|
||||||
; Обнулить счетчик повторения операции чтения
|
; Обнулить счетчик повторения операции чтени
|
||||||
mov [ReadRepCounter],0
|
mov [ReadRepCounter],0
|
||||||
@@WriteSector_1:
|
@@WriteSector_1:
|
||||||
call WriteSector
|
call WriteSector
|
||||||
@ -573,7 +573,7 @@ WriteSectWithRetr:
|
|||||||
je @@Exit_4
|
je @@Exit_4
|
||||||
cmp [FDC_Status],1
|
cmp [FDC_Status],1
|
||||||
je @@Err_4
|
je @@Err_4
|
||||||
; Троекратное повторение чтения
|
; Троекратное повторение чтени
|
||||||
inc [ReadRepCounter]
|
inc [ReadRepCounter]
|
||||||
cmp [ReadRepCounter],3
|
cmp [ReadRepCounter],3
|
||||||
jb @@WriteSector_1
|
jb @@WriteSector_1
|
||||||
|
@ -19,7 +19,7 @@ sys_debug_services_table:
|
|||||||
debug_set_event_data:
|
debug_set_event_data:
|
||||||
; in: ebx = pointer
|
; in: ebx = pointer
|
||||||
; destroys eax
|
; destroys eax
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 8
|
shl eax, 8
|
||||||
mov [eax+0x80000+APPDATA.dbg_event_mem], ebx
|
mov [eax+0x80000+APPDATA.dbg_event_mem], ebx
|
||||||
ret
|
ret
|
||||||
@ -36,7 +36,7 @@ get_debuggee_slot:
|
|||||||
jz .ret_bad
|
jz .ret_bad
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
push ebx
|
push ebx
|
||||||
mov ebx, [0x3000]
|
mov ebx, [CURRENT_TASK]
|
||||||
cmp [0x80000+eax*8+APPDATA.debugger_slot], ebx
|
cmp [0x80000+eax*8+APPDATA.debugger_slot], ebx
|
||||||
pop ebx
|
pop ebx
|
||||||
jnz .ret_bad
|
jnz .ret_bad
|
||||||
@ -72,13 +72,13 @@ debug_suspend:
|
|||||||
; destroys eax,ebx
|
; destroys eax,ebx
|
||||||
call get_debuggee_slot
|
call get_debuggee_slot
|
||||||
jc .ret
|
jc .ret
|
||||||
mov bl, [0x3000+eax+TASKDATA.state] ; process state
|
mov bl, [CURRENT_TASK+eax+TASKDATA.state] ; process state
|
||||||
test bl, bl
|
test bl, bl
|
||||||
jz .1
|
jz .1
|
||||||
cmp bl, 5
|
cmp bl, 5
|
||||||
jnz .ret
|
jnz .ret
|
||||||
mov bl, 2
|
mov bl, 2
|
||||||
.2: mov [0x3000+eax+TASKDATA.state], bl
|
.2: mov [CURRENT_TASK+eax+TASKDATA.state], bl
|
||||||
.ret:
|
.ret:
|
||||||
sti
|
sti
|
||||||
ret
|
ret
|
||||||
@ -87,13 +87,13 @@ debug_suspend:
|
|||||||
jmp .2
|
jmp .2
|
||||||
|
|
||||||
do_resume:
|
do_resume:
|
||||||
mov bl, [0x3000+eax+TASKDATA.state]
|
mov bl, [CURRENT_TASK+eax+TASKDATA.state]
|
||||||
cmp bl, 1
|
cmp bl, 1
|
||||||
jz .1
|
jz .1
|
||||||
cmp bl, 2
|
cmp bl, 2
|
||||||
jnz .ret
|
jnz .ret
|
||||||
mov bl, 5
|
mov bl, 5
|
||||||
.2: mov [0x3000+eax+TASKDATA.state], bl
|
.2: mov [CURRENT_TASK+eax+TASKDATA.state], bl
|
||||||
.ret: ret
|
.ret: ret
|
||||||
.1: dec ebx
|
.1: dec ebx
|
||||||
jmp .2
|
jmp .2
|
||||||
@ -380,7 +380,7 @@ debugger_notify:
|
|||||||
pop ecx
|
pop ecx
|
||||||
pop ecx
|
pop ecx
|
||||||
pop ecx
|
pop ecx
|
||||||
cmp dword [0x3000], 1
|
cmp dword [CURRENT_TASK], 1
|
||||||
jnz .notos
|
jnz .notos
|
||||||
cmp [timer_ticks], edi
|
cmp [timer_ticks], edi
|
||||||
jae .ret
|
jae .ret
|
||||||
@ -430,7 +430,7 @@ debug_exc:
|
|||||||
jns @f
|
jns @f
|
||||||
; this is exception from task switch
|
; this is exception from task switch
|
||||||
; set DRx registers for task and continue
|
; set DRx registers for task and continue
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 8
|
shl eax, 8
|
||||||
add eax, 0x80000+APPDATA.dbg_regs
|
add eax, 0x80000+APPDATA.dbg_regs
|
||||||
mov ecx, [eax+0]
|
mov ecx, [eax+0]
|
||||||
@ -453,7 +453,7 @@ debug_exc:
|
|||||||
mov dr6, eax
|
mov dr6, eax
|
||||||
; test if debugging
|
; test if debugging
|
||||||
cli
|
cli
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 8
|
shl eax, 8
|
||||||
mov eax, [0x80000+eax+APPDATA.debugger_slot]
|
mov eax, [0x80000+eax+APPDATA.debugger_slot]
|
||||||
test eax, eax
|
test eax, eax
|
||||||
@ -463,7 +463,7 @@ debug_exc:
|
|||||||
add esp, 28h+4
|
add esp, 28h+4
|
||||||
mov [error_interrupt], 1
|
mov [error_interrupt], 1
|
||||||
call show_error_parameters
|
call show_error_parameters
|
||||||
mov edx, [0x3010]
|
mov edx, [TASK_BASE]
|
||||||
mov byte [edx+TASKDATA.state], 4
|
mov byte [edx+TASKDATA.state], 4
|
||||||
jmp change_task
|
jmp change_task
|
||||||
.debug:
|
.debug:
|
||||||
@ -483,7 +483,7 @@ debug_exc:
|
|||||||
cmp cl, not 10h
|
cmp cl, not 10h
|
||||||
jnz .l1
|
jnz .l1
|
||||||
push edx ; DR6 image
|
push edx ; DR6 image
|
||||||
mov ecx, [0x3010]
|
mov ecx, [TASK_BASE]
|
||||||
push dword [ecx+TASKDATA.pid] ; PID
|
push dword [ecx+TASKDATA.pid] ; PID
|
||||||
push 12
|
push 12
|
||||||
pop ecx
|
pop ecx
|
||||||
@ -492,7 +492,7 @@ debug_exc:
|
|||||||
pop ecx
|
pop ecx
|
||||||
pop ecx
|
pop ecx
|
||||||
pop ecx
|
pop ecx
|
||||||
mov edx, [0x3010]
|
mov edx, [TASK_BASE]
|
||||||
mov byte [edx+TASKDATA.state], 1 ; suspended
|
mov byte [edx+TASKDATA.state], 1 ; suspended
|
||||||
call change_task
|
call change_task
|
||||||
restore_ring3_context
|
restore_ring3_context
|
||||||
|
@ -395,7 +395,7 @@ proc init_LFB
|
|||||||
mov edx, LFB_BASE
|
mov edx, LFB_BASE
|
||||||
mov esi, [LFBAddress]
|
mov esi, [LFBAddress]
|
||||||
mov edi, [LFBSize]
|
mov edi, [LFBSize]
|
||||||
mov dword [exp_lfb+4], esi
|
mov dword [exp_lfb+4], edx
|
||||||
|
|
||||||
shr edi, 12
|
shr edi, 12
|
||||||
mov [pg_count], edi
|
mov [pg_count], edi
|
||||||
|
@ -67,11 +67,11 @@ change_task:
|
|||||||
jne .find_next_task
|
jne .find_next_task
|
||||||
mov [dma_task_switched], 0
|
mov [dma_task_switched], 0
|
||||||
mov ebx, [dma_process]
|
mov ebx, [dma_process]
|
||||||
cmp [0x3000], ebx
|
cmp [CURRENT_TASK], ebx
|
||||||
je .return
|
je .return
|
||||||
mov edi, [dma_slot_ptr]
|
mov edi, [dma_slot_ptr]
|
||||||
mov [0x3000], ebx
|
mov [CURRENT_TASK], ebx
|
||||||
mov [0x3010], edi
|
mov [TASK_BASE], edi
|
||||||
jmp @f
|
jmp @f
|
||||||
.find_next_task:
|
.find_next_task:
|
||||||
; \end{Mario79}
|
; \end{Mario79}
|
||||||
@ -103,7 +103,7 @@ endg
|
|||||||
|
|
||||||
|
|
||||||
update_counters:
|
update_counters:
|
||||||
mov edi, [0x3010]
|
mov edi, [TASK_BASE]
|
||||||
mov ebx, [edi+TASKDATA.counter_add] ; time stamp counter add
|
mov ebx, [edi+TASKDATA.counter_add] ; time stamp counter add
|
||||||
call _rdtsc
|
call _rdtsc
|
||||||
sub eax, ebx
|
sub eax, ebx
|
||||||
@ -119,17 +119,17 @@ ret
|
|||||||
; [0x3000] = ebx and [0x3010] = edi
|
; [0x3000] = ebx and [0x3010] = edi
|
||||||
; corrupts other regs
|
; corrupts other regs
|
||||||
find_next_task:
|
find_next_task:
|
||||||
mov ebx, [0x3000]
|
mov ebx, [CURRENT_TASK]
|
||||||
mov edi, [0x3010]
|
mov edi, [TASK_BASE]
|
||||||
mov [prev_slot], ebx
|
mov [prev_slot], ebx
|
||||||
|
|
||||||
.waiting_for_termination:
|
.waiting_for_termination:
|
||||||
.waiting_for_reuse:
|
.waiting_for_reuse:
|
||||||
.waiting_for_event:
|
.waiting_for_event:
|
||||||
.suspended:
|
.suspended:
|
||||||
cmp ebx, [0x3004]
|
cmp ebx, [TASK_COUNT]
|
||||||
jb @f
|
jb @f
|
||||||
mov edi, 0x3000
|
mov edi, CURRENT_TASK
|
||||||
xor ebx, ebx
|
xor ebx, ebx
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
@ -150,8 +150,8 @@ find_next_task:
|
|||||||
cmp al, 9
|
cmp al, 9
|
||||||
je .waiting_for_reuse
|
je .waiting_for_reuse
|
||||||
|
|
||||||
mov [0x3000],ebx
|
mov [CURRENT_TASK],ebx
|
||||||
mov [0x3010],edi
|
mov [TASK_BASE],edi
|
||||||
|
|
||||||
cmp al, 5
|
cmp al, 5
|
||||||
jne .noevents
|
jne .noevents
|
||||||
@ -162,8 +162,8 @@ find_next_task:
|
|||||||
mov [edi+TASKDATA.state], byte 0
|
mov [edi+TASKDATA.state], byte 0
|
||||||
.noevents:
|
.noevents:
|
||||||
.found:
|
.found:
|
||||||
mov [0x3000],ebx
|
mov [CURRENT_TASK],ebx
|
||||||
mov [0x3010],edi
|
mov [TASK_BASE],edi
|
||||||
call _rdtsc
|
call _rdtsc
|
||||||
mov [edi+TASKDATA.counter_add],eax
|
mov [edi+TASKDATA.counter_add],eax
|
||||||
|
|
||||||
@ -191,8 +191,8 @@ updatecputimes:
|
|||||||
mov eax,[idleuse]
|
mov eax,[idleuse]
|
||||||
mov [idleusesec],eax
|
mov [idleusesec],eax
|
||||||
mov [idleuse],dword 0
|
mov [idleuse],dword 0
|
||||||
mov ecx, [0x3004]
|
mov ecx, [TASK_COUNT]
|
||||||
mov edi, 0x3020
|
mov edi, TASK_DATA
|
||||||
.newupdate:
|
.newupdate:
|
||||||
mov ebx,[edi+TASKDATA.counter_sum]
|
mov ebx,[edi+TASKDATA.counter_sum]
|
||||||
mov [edi+TASKDATA.cpu_usage],ebx
|
mov [edi+TASKDATA.cpu_usage],ebx
|
||||||
|
@ -26,7 +26,7 @@ start_wait=$
|
|||||||
jmp start_wait
|
jmp start_wait
|
||||||
ok=$
|
ok=$
|
||||||
push eax
|
push eax
|
||||||
mov eax,dword [0x3010+second_base_address]
|
mov eax,dword [TASK_BASE+second_base_address]
|
||||||
mov eax,[eax+TASKDATA.pid]
|
mov eax,[eax+TASKDATA.pid]
|
||||||
mov [name],eax
|
mov [name],eax
|
||||||
pop eax
|
pop eax
|
||||||
@ -60,7 +60,7 @@ macro WaitSimpleCriticalSection name
|
|||||||
{
|
{
|
||||||
local start_wait,first_wait,inc_counter,end_wait
|
local start_wait,first_wait,inc_counter,end_wait
|
||||||
push eax
|
push eax
|
||||||
mov eax,[0x3010+second_base_address]
|
mov eax,[TASK_BASE+second_base_address]
|
||||||
mov eax,[eax+TASKDATA.pid]
|
mov eax,[eax+TASKDATA.pid]
|
||||||
start_wait=$
|
start_wait=$
|
||||||
cli
|
cli
|
||||||
@ -92,7 +92,7 @@ release_end=$
|
|||||||
macro TryWaitSimpleCriticalSection name ;result in eax and in flags
|
macro TryWaitSimpleCriticalSection name ;result in eax and in flags
|
||||||
{
|
{
|
||||||
local ok,try_end
|
local ok,try_end
|
||||||
mov eax,[0x3000+second_base_address]
|
mov eax,[CURRENT_TASK+second_base_address]
|
||||||
mov eax,[eax+TASKDATA.pid]
|
mov eax,[eax+TASKDATA.pid]
|
||||||
cmp [name],eax
|
cmp [name],eax
|
||||||
jz ok
|
jz ok
|
||||||
|
@ -120,7 +120,7 @@ exc_c:
|
|||||||
|
|
||||||
; test if debugging
|
; test if debugging
|
||||||
cli
|
cli
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 8
|
shl eax, 8
|
||||||
mov eax, [0x80000+eax+APPDATA.debugger_slot]
|
mov eax, [0x80000+eax+APPDATA.debugger_slot]
|
||||||
test eax, eax
|
test eax, eax
|
||||||
@ -132,7 +132,7 @@ exc_c:
|
|||||||
mov [error_interrupt], eax
|
mov [error_interrupt], eax
|
||||||
call show_error_parameters
|
call show_error_parameters
|
||||||
|
|
||||||
mov edx, [0x3010]
|
mov edx, [TASK_BASE]
|
||||||
mov [edx + TASKDATA.state], byte 4
|
mov [edx + TASKDATA.state], byte 4
|
||||||
|
|
||||||
jmp change_task
|
jmp change_task
|
||||||
@ -143,7 +143,7 @@ exc_c:
|
|||||||
cld
|
cld
|
||||||
movzx ecx, bl
|
movzx ecx, bl
|
||||||
push ecx
|
push ecx
|
||||||
mov ecx, [0x3010]
|
mov ecx, [TASK_BASE]
|
||||||
push dword [ecx+TASKDATA.pid] ; PID of current process
|
push dword [ecx+TASKDATA.pid] ; PID of current process
|
||||||
push 12
|
push 12
|
||||||
pop ecx
|
pop ecx
|
||||||
@ -152,7 +152,7 @@ exc_c:
|
|||||||
pop ecx
|
pop ecx
|
||||||
pop ecx
|
pop ecx
|
||||||
pop ecx
|
pop ecx
|
||||||
mov edx, [0x3010]
|
mov edx, [TASK_BASE]
|
||||||
mov byte [edx+TASKDATA.state], 1 ; suspended
|
mov byte [edx+TASKDATA.state], 1 ; suspended
|
||||||
call change_task
|
call change_task
|
||||||
restore_ring3_context
|
restore_ring3_context
|
||||||
@ -196,9 +196,9 @@ endg
|
|||||||
show_error_parameters:
|
show_error_parameters:
|
||||||
|
|
||||||
mov [write_error_to],process_pid+43
|
mov [write_error_to],process_pid+43
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
mov eax,[0x3000+TASKDATA.pid+eax]
|
mov eax,[CURRENT_TASK+TASKDATA.pid+eax]
|
||||||
call writehex
|
call writehex
|
||||||
|
|
||||||
mov [write_error_to],process_error+43
|
mov [write_error_to],process_error+43
|
||||||
@ -433,9 +433,9 @@ irqhandler:
|
|||||||
set_application_table_status:
|
set_application_table_status:
|
||||||
push eax
|
push eax
|
||||||
|
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
add eax,0x3000+TASKDATA.pid
|
add eax,CURRENT_TASK+TASKDATA.pid
|
||||||
mov eax,[eax]
|
mov eax,[eax]
|
||||||
|
|
||||||
mov [application_table_status],eax
|
mov [application_table_status],eax
|
||||||
@ -448,9 +448,9 @@ set_application_table_status:
|
|||||||
clear_application_table_status:
|
clear_application_table_status:
|
||||||
push eax
|
push eax
|
||||||
|
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
add eax,0x3000+TASKDATA.pid
|
add eax,CURRENT_TASK+TASKDATA.pid
|
||||||
mov eax,[eax]
|
mov eax,[eax]
|
||||||
|
|
||||||
cmp eax,[application_table_status]
|
cmp eax,[application_table_status]
|
||||||
@ -737,7 +737,7 @@ term9:
|
|||||||
jz .nodebug
|
jz .nodebug
|
||||||
push 8
|
push 8
|
||||||
pop ecx
|
pop ecx
|
||||||
push dword [0x3000+edi+TASKDATA.pid] ; PID
|
push dword [CURRENT_TASK+edi+TASKDATA.pid] ; PID
|
||||||
push 2
|
push 2
|
||||||
call debugger_notify
|
call debugger_notify
|
||||||
pop ecx
|
pop ecx
|
||||||
@ -764,7 +764,7 @@ term9:
|
|||||||
|
|
||||||
; activate window
|
; activate window
|
||||||
movzx eax, word [0xC000 + esi*2]
|
movzx eax, word [0xC000 + esi*2]
|
||||||
cmp eax, [0x3004]
|
cmp eax, [TASK_COUNT]
|
||||||
jne .dont_activate
|
jne .dont_activate
|
||||||
pushad
|
pushad
|
||||||
.check_next_window:
|
.check_next_window:
|
||||||
@ -774,7 +774,7 @@ term9:
|
|||||||
lea esi, [0xc400+eax*2]
|
lea esi, [0xc400+eax*2]
|
||||||
movzx edi, word [esi] ; edi = process
|
movzx edi, word [esi] ; edi = process
|
||||||
shl edi, 5
|
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
|
je .check_next_window
|
||||||
add edi, window_data
|
add edi, window_data
|
||||||
; \begin{diamond}[19.09.2006]
|
; \begin{diamond}[19.09.2006]
|
||||||
@ -789,7 +789,7 @@ term9:
|
|||||||
|
|
||||||
push esi ; remove hd1 & cd & flp reservation
|
push esi ; remove hd1 & cd & flp reservation
|
||||||
shl esi, 5
|
shl esi, 5
|
||||||
mov esi, [esi+0x3000+TASKDATA.pid]
|
mov esi, [esi+CURRENT_TASK+TASKDATA.pid]
|
||||||
cmp [hd1_status], esi
|
cmp [hd1_status], esi
|
||||||
jnz @f
|
jnz @f
|
||||||
call free_hd_channel
|
call free_hd_channel
|
||||||
@ -809,7 +809,7 @@ term9:
|
|||||||
pusha ; remove all irq reservations
|
pusha ; remove all irq reservations
|
||||||
mov eax,esi
|
mov eax,esi
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
mov eax,[eax+0x3000+TASKDATA.pid]
|
mov eax,[eax+CURRENT_TASK+TASKDATA.pid]
|
||||||
mov edi,irq_owner
|
mov edi,irq_owner
|
||||||
mov ecx,16
|
mov ecx,16
|
||||||
newirqfree:
|
newirqfree:
|
||||||
@ -823,7 +823,7 @@ term9:
|
|||||||
pusha ; remove all port reservations
|
pusha ; remove all port reservations
|
||||||
mov edx,esi
|
mov edx,esi
|
||||||
shl edx, 5
|
shl edx, 5
|
||||||
add edx,0x3000
|
add edx,CURRENT_TASK
|
||||||
mov edx,[edx+TASKDATA.pid]
|
mov edx,[edx+TASKDATA.pid]
|
||||||
|
|
||||||
rmpr0:
|
rmpr0:
|
||||||
@ -867,12 +867,12 @@ term9:
|
|||||||
popa
|
popa
|
||||||
mov edi,esi ; do not run this process slot
|
mov edi,esi ; do not run this process slot
|
||||||
shl edi, 5
|
shl edi, 5
|
||||||
mov [edi+0x3000 + TASKDATA.state],byte 9
|
mov [edi+CURRENT_TASK + TASKDATA.state],byte 9
|
||||||
; debugger test - terminate all debuggees
|
; debugger test - terminate all debuggees
|
||||||
mov eax, 2
|
mov eax, 2
|
||||||
mov ecx, 0x80000+2*0x100+APPDATA.debugger_slot
|
mov ecx, 0x80000+2*0x100+APPDATA.debugger_slot
|
||||||
.xd0:
|
.xd0:
|
||||||
cmp eax, [0x3004]
|
cmp eax, [TASK_COUNT]
|
||||||
ja .xd1
|
ja .xd1
|
||||||
cmp dword [ecx], esi
|
cmp dword [ecx], esi
|
||||||
jnz @f
|
jnz @f
|
||||||
|
@ -342,7 +342,7 @@ proc CreateBuffer stdcall, format:dword, size:dword
|
|||||||
.test_ok:
|
.test_ok:
|
||||||
mov ebx, [CURRENT_TASK] ;hack: direct accsess
|
mov ebx, [CURRENT_TASK] ;hack: direct accsess
|
||||||
shl ebx, 5 ;to kernel data
|
shl ebx, 5 ;to kernel data
|
||||||
mov ebx, [0x3000+ebx+4]
|
mov ebx, [CURRENT_TASK+ebx+4]
|
||||||
mov eax, STREAM_SIZE
|
mov eax, STREAM_SIZE
|
||||||
|
|
||||||
call CreateObject
|
call CreateObject
|
||||||
|
@ -31,9 +31,9 @@ reserve_flp:
|
|||||||
reserve_flp_ok:
|
reserve_flp_ok:
|
||||||
|
|
||||||
push eax
|
push eax
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,5
|
shl eax,5
|
||||||
mov eax,[eax+0x3000+TASKDATA.pid]
|
mov eax,[eax+CURRENT_TASK+TASKDATA.pid]
|
||||||
mov [flp_status],eax
|
mov [flp_status],eax
|
||||||
pop eax
|
pop eax
|
||||||
sti
|
sti
|
||||||
|
@ -124,9 +124,9 @@ reserve_hd1:
|
|||||||
reserve_ok1:
|
reserve_ok1:
|
||||||
|
|
||||||
push eax
|
push eax
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,5
|
shl eax,5
|
||||||
mov eax,[eax+0x3000+TASKDATA.pid]
|
mov eax,[eax+CURRENT_TASK+TASKDATA.pid]
|
||||||
mov [hd1_status],eax
|
mov [hd1_status],eax
|
||||||
pop eax
|
pop eax
|
||||||
sti
|
sti
|
||||||
|
@ -85,7 +85,7 @@ file_system:
|
|||||||
cmp dword [eax+0],15 ; GET_DISK_INFO
|
cmp dword [eax+0],15 ; GET_DISK_INFO
|
||||||
je fs_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
|
jz no_checks_for_kernel
|
||||||
mov edx,eax
|
mov edx,eax
|
||||||
cmp dword [eax+0],1
|
cmp dword [eax+0],1
|
||||||
|
@ -23,9 +23,9 @@ reserve_cd:
|
|||||||
reserve_ok2:
|
reserve_ok2:
|
||||||
|
|
||||||
push eax
|
push eax
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,5
|
shl eax,5
|
||||||
mov eax,[eax+0x3000+TASKDATA.pid]
|
mov eax,[eax+CURRENT_TASK+TASKDATA.pid]
|
||||||
mov [cd_status],eax
|
mov [cd_status],eax
|
||||||
pop eax
|
pop eax
|
||||||
sti
|
sti
|
||||||
@ -377,7 +377,7 @@ cd_get_parameters_of_file:
|
|||||||
cd_get_parameters_of_file_1:
|
cd_get_parameters_of_file_1:
|
||||||
; ïîëó÷àåì àòðèáóòû ôàéëà
|
; ïîëó÷àåì àòðèáóòû ôàéëà
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
; файл не архивировался
|
; ôàéë íå àðõèâèðîâàëñ
|
||||||
inc al
|
inc al
|
||||||
shl eax,1
|
shl eax,1
|
||||||
; ýòî êàòàëîã?
|
; ýòî êàòàëîã?
|
||||||
|
@ -68,7 +68,7 @@ drawbuttonframes:
|
|||||||
|
|
||||||
shr eax,16
|
shr eax,16
|
||||||
shr ebx,16
|
shr ebx,16
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
|
|
||||||
add eax,[edx-twdw + WDATA.box.left]
|
add eax,[edx-twdw + WDATA.box.left]
|
||||||
add ebx,[edx-twdw + WDATA.box.top]
|
add ebx,[edx-twdw + WDATA.box.top]
|
||||||
@ -164,7 +164,7 @@ button_dececx:
|
|||||||
sys_button:
|
sys_button:
|
||||||
|
|
||||||
push edi
|
push edi
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,8
|
shl edi,8
|
||||||
rol eax,16
|
rol eax,16
|
||||||
add ax,word[edi+0x80000+APPDATA.wnd_clientbox.left]
|
add ax,word[edi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
@ -197,9 +197,9 @@ sys_button:
|
|||||||
push ebx
|
push ebx
|
||||||
shr eax,16
|
shr eax,16
|
||||||
shr ebx,16
|
shr ebx,16
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
mov esi,[edx-twdw + WDATA.box.left]
|
mov esi,[edx-twdw + WDATA.box.left]
|
||||||
mov edi,[edx-twdw + WDATA.box.top]
|
mov edi,[edx-twdw + WDATA.box.top]
|
||||||
add eax,esi
|
add eax,esi
|
||||||
add ebx,edi
|
add ebx,edi
|
||||||
mov cx,ax
|
mov cx,ax
|
||||||
@ -247,7 +247,7 @@ sys_button:
|
|||||||
shl eax,4
|
shl eax,4
|
||||||
add eax,edi
|
add eax,edi
|
||||||
|
|
||||||
mov bx,[0x3000]
|
mov bx,[CURRENT_TASK]
|
||||||
mov [eax],bx
|
mov [eax],bx
|
||||||
|
|
||||||
add eax,2 ; save button id number
|
add eax,2 ; save button id number
|
||||||
@ -298,7 +298,7 @@ remove_button:
|
|||||||
|
|
||||||
add eax,0x10
|
add eax,0x10
|
||||||
|
|
||||||
mov dx,[0x3000]
|
mov dx,[CURRENT_TASK]
|
||||||
cmp dx,[eax]
|
cmp dx,[eax]
|
||||||
jnz rnewba
|
jnz rnewba
|
||||||
|
|
||||||
@ -504,7 +504,7 @@ checkbuttons:
|
|||||||
|
|
||||||
movzx ebx,word [eax]
|
movzx ebx,word [eax]
|
||||||
movzx ecx,word [0xC000 + ebx * 2]
|
movzx ecx,word [0xC000 + ebx * 2]
|
||||||
cmp ecx,[0x3004]
|
cmp ecx,[TASK_COUNT]
|
||||||
jne buttonnewcheck
|
jne buttonnewcheck
|
||||||
|
|
||||||
; check that button start is inside window x/y end
|
; check that button start is inside window x/y end
|
||||||
|
@ -101,7 +101,7 @@ create_event:
|
|||||||
|
|
||||||
mov ebx, [CURRENT_TASK]
|
mov ebx, [CURRENT_TASK]
|
||||||
shl ebx, 5
|
shl ebx, 5
|
||||||
mov ebx, [0x3000+ebx+4]
|
mov ebx, [CURRENT_TASK+ebx+4]
|
||||||
mov [eax+APPOBJ.pid], ebx
|
mov [eax+APPOBJ.pid], ebx
|
||||||
mov edx, [.flags]
|
mov edx, [.flags]
|
||||||
mov [eax+EVENT.state], edx
|
mov [eax+EVENT.state], edx
|
||||||
@ -274,7 +274,7 @@ proc get_event_ex stdcall, p_ev:dword, timeout:dword
|
|||||||
call destroy_event.force
|
call destroy_event.force
|
||||||
ret
|
ret
|
||||||
.switch:
|
.switch:
|
||||||
mov eax, [0x3010]
|
mov eax, [TASK_BASE]
|
||||||
mov [eax+TASKDATA.state], byte 5
|
mov [eax+TASKDATA.state], byte 5
|
||||||
call change_task
|
call change_task
|
||||||
jmp .wait
|
jmp .wait
|
||||||
@ -339,7 +339,7 @@ wait_event:
|
|||||||
ret
|
ret
|
||||||
.switch:
|
.switch:
|
||||||
or [eax+EVENT.state], EVENT_WATCHED
|
or [eax+EVENT.state], EVENT_WATCHED
|
||||||
mov eax, [0x3010]
|
mov eax, [TASK_BASE]
|
||||||
mov [eax+TASKDATA.state], byte 5
|
mov [eax+TASKDATA.state], byte 5
|
||||||
call change_task
|
call change_task
|
||||||
mov eax, [.event]
|
mov eax, [.event]
|
||||||
@ -497,7 +497,7 @@ sys_waitforevent:
|
|||||||
jne eventoccur
|
jne eventoccur
|
||||||
newwait:
|
newwait:
|
||||||
|
|
||||||
mov eax, [0x3010]
|
mov eax, [TASK_BASE]
|
||||||
mov [eax+TASKDATA.state], byte 5
|
mov [eax+TASKDATA.state], byte 5
|
||||||
call change_task
|
call change_task
|
||||||
|
|
||||||
@ -511,10 +511,10 @@ get_event_for_app:
|
|||||||
|
|
||||||
pushad
|
pushad
|
||||||
|
|
||||||
mov edi,[0x3010] ; WINDOW REDRAW
|
mov edi,[TASK_BASE] ; WINDOW REDRAW
|
||||||
test [edi+TASKDATA.event_mask],dword 1
|
test [edi+TASKDATA.event_mask],dword 1
|
||||||
jz no_eventoccur1
|
jz no_eventoccur1
|
||||||
;mov edi,[0x3010]
|
;mov edi,[TASK_BASE]
|
||||||
cmp [edi-twdw+WDATA.fl_redraw],byte 0
|
cmp [edi-twdw+WDATA.fl_redraw],byte 0
|
||||||
je no_eventoccur1
|
je no_eventoccur1
|
||||||
popad
|
popad
|
||||||
@ -522,12 +522,12 @@ get_event_for_app:
|
|||||||
ret
|
ret
|
||||||
no_eventoccur1:
|
no_eventoccur1:
|
||||||
|
|
||||||
;mov edi,[0x3010] ; KEY IN BUFFER
|
;mov edi,[TASK_BASE] ; KEY IN BUFFER
|
||||||
test [edi+TASKDATA.event_mask],dword 2
|
test [edi+TASKDATA.event_mask],dword 2
|
||||||
jz no_eventoccur2
|
jz no_eventoccur2
|
||||||
mov ecx, [0x3000]
|
mov ecx, [CURRENT_TASK]
|
||||||
movzx edx,word [0xC000+ecx*2]
|
movzx edx,word [0xC000+ecx*2]
|
||||||
mov eax, [0x3004]
|
mov eax, [TASK_COUNT]
|
||||||
cmp eax,edx
|
cmp eax,edx
|
||||||
jne no_eventoccur2x
|
jne no_eventoccur2x
|
||||||
cmp [0xf400],byte 0
|
cmp [0xf400],byte 0
|
||||||
@ -546,14 +546,14 @@ get_event_for_app:
|
|||||||
jb @b
|
jb @b
|
||||||
no_eventoccur2:
|
no_eventoccur2:
|
||||||
|
|
||||||
;mov edi,[0x3010] ; BUTTON IN BUFFER
|
;mov edi,[TASK_BASE] ; BUTTON IN BUFFER
|
||||||
test [edi+TASKDATA.event_mask],dword 4
|
test [edi+TASKDATA.event_mask],dword 4
|
||||||
jz no_eventoccur3
|
jz no_eventoccur3
|
||||||
cmp [0xf500],byte 0
|
cmp [0xf500],byte 0
|
||||||
je no_eventoccur3
|
je no_eventoccur3
|
||||||
mov ecx, [0x3000]
|
mov ecx, [CURRENT_TASK]
|
||||||
movzx edx, word [0xC000+ecx*2]
|
movzx edx, word [0xC000+ecx*2]
|
||||||
mov eax, [0x3004]
|
mov eax, [TASK_COUNT]
|
||||||
cmp eax,edx
|
cmp eax,edx
|
||||||
jnz no_eventoccur3
|
jnz no_eventoccur3
|
||||||
popad
|
popad
|
||||||
@ -572,10 +572,10 @@ get_event_for_app:
|
|||||||
no_eventoccur3:
|
no_eventoccur3:
|
||||||
|
|
||||||
|
|
||||||
;mov edi,[0x3010] ; mouse event
|
;mov edi,[TASK_BASE] ; mouse event
|
||||||
test [edi+TASKDATA.event_mask],dword 00100000b
|
test [edi+TASKDATA.event_mask],dword 00100000b
|
||||||
jz no_mouse_event
|
jz no_mouse_event
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,8
|
shl eax,8
|
||||||
test [eax+0x80000+APPDATA.event_mask],dword 00100000b
|
test [eax+0x80000+APPDATA.event_mask],dword 00100000b
|
||||||
jz no_mouse_event
|
jz no_mouse_event
|
||||||
@ -586,7 +586,7 @@ get_event_for_app:
|
|||||||
no_mouse_event:
|
no_mouse_event:
|
||||||
|
|
||||||
|
|
||||||
;mov edi,[0x3010] ; DESKTOP BACKGROUND REDRAW
|
;mov edi,[TASK_BASE] ; DESKTOP BACKGROUND REDRAW
|
||||||
test [edi+TASKDATA.event_mask],dword 16
|
test [edi+TASKDATA.event_mask],dword 16
|
||||||
jz no_eventoccur5
|
jz no_eventoccur5
|
||||||
cmp [0xfff0],byte 2
|
cmp [0xfff0],byte 2
|
||||||
@ -596,10 +596,10 @@ get_event_for_app:
|
|||||||
ret
|
ret
|
||||||
no_eventoccur5:
|
no_eventoccur5:
|
||||||
|
|
||||||
;mov edi,[0x3010] ; IPC
|
;mov edi,[TASK_BASE] ; IPC
|
||||||
test [edi+TASKDATA.event_mask],dword 01000000b
|
test [edi+TASKDATA.event_mask],dword 01000000b
|
||||||
jz no_ipc
|
jz no_ipc
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,8
|
shl eax,8
|
||||||
test [eax+0x80000+APPDATA.event_mask],dword 01000000b
|
test [eax+0x80000+APPDATA.event_mask],dword 01000000b
|
||||||
jz no_ipc
|
jz no_ipc
|
||||||
@ -610,10 +610,10 @@ get_event_for_app:
|
|||||||
no_ipc:
|
no_ipc:
|
||||||
|
|
||||||
|
|
||||||
;mov edi,[0x3010] ; STACK
|
;mov edi,[TASK_BASE] ; STACK
|
||||||
test [edi+TASKDATA.event_mask],dword 10000000b
|
test [edi+TASKDATA.event_mask],dword 10000000b
|
||||||
jz no_stack_event
|
jz no_stack_event
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,8
|
shl eax,8
|
||||||
test [eax+0x80000+APPDATA.event_mask],dword 10000000b
|
test [eax+0x80000+APPDATA.event_mask],dword 10000000b
|
||||||
jz no_stack_event
|
jz no_stack_event
|
||||||
@ -625,7 +625,7 @@ get_event_for_app:
|
|||||||
|
|
||||||
test byte [edi+TASKDATA.event_mask+1], 1 ; DEBUG
|
test byte [edi+TASKDATA.event_mask+1], 1 ; DEBUG
|
||||||
jz .test_IRQ
|
jz .test_IRQ
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 8
|
shl eax, 8
|
||||||
test byte [eax+0x80000+APPDATA.event_mask+1], byte 1
|
test byte [eax+0x80000+APPDATA.event_mask+1], byte 1
|
||||||
jz .test_IRQ
|
jz .test_IRQ
|
||||||
@ -635,7 +635,7 @@ get_event_for_app:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
;.test_ext:
|
;.test_ext:
|
||||||
; mov eax, [0x3000]
|
; mov eax, [CURRENT_TASK]
|
||||||
; shl eax, 8
|
; shl eax, 8
|
||||||
; test dword [eax+0x80000+APPDATA.event_mask], EVENT_EXTENDED
|
; test dword [eax+0x80000+APPDATA.event_mask], EVENT_EXTENDED
|
||||||
; jz .test_IRQ
|
; jz .test_IRQ
|
||||||
@ -651,14 +651,14 @@ get_event_for_app:
|
|||||||
mov ebx,0x00010000
|
mov ebx,0x00010000
|
||||||
xor ecx, ecx
|
xor ecx, ecx
|
||||||
irq_event_test:
|
irq_event_test:
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
test [edi+TASKDATA.event_mask],ebx
|
test [edi+TASKDATA.event_mask],ebx
|
||||||
jz no_irq_event
|
jz no_irq_event
|
||||||
mov edi,ecx
|
mov edi,ecx
|
||||||
shl edi,2
|
shl edi,2
|
||||||
add edi,irq_owner
|
add edi,irq_owner
|
||||||
mov edx,[edi]
|
mov edx,[edi]
|
||||||
mov eax,[0x3010]
|
mov eax,[TASK_BASE]
|
||||||
mov eax,[eax+TASKDATA.pid]
|
mov eax,[eax+TASKDATA.pid]
|
||||||
cmp edx,eax
|
cmp edx,eax
|
||||||
jne no_irq_event
|
jne no_irq_event
|
||||||
|
@ -365,7 +365,7 @@ drawwindow_IV:
|
|||||||
shl eax,4
|
shl eax,4
|
||||||
add eax,edi
|
add eax,edi
|
||||||
|
|
||||||
mov bx,[0x3000]
|
mov bx,[CURRENT_TASK]
|
||||||
mov [eax],bx
|
mov [eax],bx
|
||||||
|
|
||||||
add eax,2 ; save button id number
|
add eax,2 ; save button id number
|
||||||
@ -404,7 +404,7 @@ drawwindow_IV:
|
|||||||
shl eax,4
|
shl eax,4
|
||||||
add eax,edi
|
add eax,edi
|
||||||
|
|
||||||
mov bx,[0x3000]
|
mov bx,[CURRENT_TASK]
|
||||||
mov [eax],bx
|
mov [eax],bx
|
||||||
|
|
||||||
add eax,2 ; save button id number
|
add eax,2 ; save button id number
|
||||||
|
@ -60,7 +60,7 @@ calculatescreen:
|
|||||||
mov esi, 1
|
mov esi, 1
|
||||||
call setscreen
|
call setscreen
|
||||||
|
|
||||||
mov ebp, [0x3004] ; number of processes
|
mov ebp, [TASK_COUNT] ; number of processes
|
||||||
cmp ebp, 1
|
cmp ebp, 1
|
||||||
jbe .finish
|
jbe .finish
|
||||||
align 4
|
align 4
|
||||||
@ -68,7 +68,7 @@ calculatescreen:
|
|||||||
movzx edi, word [0xC400 + esi * 2]
|
movzx edi, word [0xC400 + esi * 2]
|
||||||
shl edi, 5
|
shl edi, 5
|
||||||
|
|
||||||
cmp [0x3000+edi+TASKDATA.state], byte 9
|
cmp [CURRENT_TASK+edi+TASKDATA.state], byte 9
|
||||||
je .not_wnd
|
je .not_wnd
|
||||||
|
|
||||||
add edi, window_data
|
add edi, window_data
|
||||||
@ -375,7 +375,7 @@ display_settings:
|
|||||||
cmp eax,2 ; set common window colours
|
cmp eax,2 ; set common window colours
|
||||||
jne no_com_colours
|
jne no_com_colours
|
||||||
mov [windowtypechanged],dword 1
|
mov [windowtypechanged],dword 1
|
||||||
mov esi,[0x3010]
|
mov esi,[TASK_BASE]
|
||||||
add esi,TASKDATA.mem_start
|
add esi,TASKDATA.mem_start
|
||||||
add ebx,[esi]
|
add ebx,[esi]
|
||||||
mov esi,ebx
|
mov esi,ebx
|
||||||
@ -389,7 +389,7 @@ display_settings:
|
|||||||
|
|
||||||
cmp eax,3 ; get common window colours
|
cmp eax,3 ; get common window colours
|
||||||
jne no_get_com
|
jne no_get_com
|
||||||
mov esi,[0x3010]
|
mov esi,[TASK_BASE]
|
||||||
add esi,TASKDATA.mem_start
|
add esi,TASKDATA.mem_start
|
||||||
add ebx,[esi]
|
add ebx,[esi]
|
||||||
mov edi,ebx
|
mov edi,ebx
|
||||||
@ -468,7 +468,7 @@ display_settings:
|
|||||||
cmp eax,8 ; set window skin
|
cmp eax,8 ; set window skin
|
||||||
jne no_set_skin
|
jne no_set_skin
|
||||||
mov eax,ebx
|
mov eax,ebx
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ebx,[edi+TASKDATA.mem_start] ; abs start of info block
|
add ebx,[edi+TASKDATA.mem_start] ; abs start of info block
|
||||||
pushd [ebx+0] [ebx+4] [ebx+8] [ebx+12]
|
pushd [ebx+0] [ebx+4] [ebx+8] [ebx+12]
|
||||||
mov dword[ebx+0],0 ; read
|
mov dword[ebx+0],0 ; read
|
||||||
@ -515,7 +515,7 @@ display_settings:
|
|||||||
|
|
||||||
|
|
||||||
repos_windows:
|
repos_windows:
|
||||||
mov ecx,[0x3004]
|
mov ecx,[TASK_COUNT]
|
||||||
mov edi,0x20*2
|
mov edi,0x20*2
|
||||||
mov byte[0x0000fff0],1
|
mov byte[0x0000fff0],1
|
||||||
dec ecx
|
dec ecx
|
||||||
@ -911,7 +911,7 @@ windowactivate:
|
|||||||
|
|
||||||
; if type of current active window is 3,
|
; if type of current active window is 3,
|
||||||
; it must be redrawn
|
; it must be redrawn
|
||||||
mov eax, [0x3004]
|
mov eax, [TASK_COUNT]
|
||||||
movzx eax, word [0xC400 + eax*2]
|
movzx eax, word [0xC400 + eax*2]
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
add eax, window_data
|
add eax, window_data
|
||||||
@ -928,7 +928,7 @@ windowactivate:
|
|||||||
|
|
||||||
xor esi, esi ; drop others
|
xor esi, esi ; drop others
|
||||||
waloop:
|
waloop:
|
||||||
cmp esi, dword [0x3004]
|
cmp esi, dword [TASK_COUNT]
|
||||||
jae wacont
|
jae wacont
|
||||||
inc esi
|
inc esi
|
||||||
lea edi, [0xC000 + esi*2]
|
lea edi, [0xC000 + esi*2]
|
||||||
@ -944,13 +944,13 @@ windowactivate:
|
|||||||
pop esi ; esi = pointer at 0xC400
|
pop esi ; esi = pointer at 0xC400
|
||||||
|
|
||||||
movzx eax, word [esi]
|
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)
|
mov [0xC000+eax*2], bx ; this is the last (and the upper)
|
||||||
|
|
||||||
; update on screen -window stack
|
; update on screen -window stack
|
||||||
xor esi, esi
|
xor esi, esi
|
||||||
waloop2:
|
waloop2:
|
||||||
mov edi, [0x3004]
|
mov edi, [TASK_COUNT]
|
||||||
cmp esi, edi
|
cmp esi, edi
|
||||||
jae wacont2
|
jae wacont2
|
||||||
inc esi
|
inc esi
|
||||||
@ -992,7 +992,7 @@ checkwindowdraw:
|
|||||||
add esi, 2
|
add esi, 2
|
||||||
push esi
|
push esi
|
||||||
|
|
||||||
mov eax, [0x3004]
|
mov eax, [TASK_COUNT]
|
||||||
lea eax, word [0xC400 + eax * 2] ; number of the upper window
|
lea eax, word [0xC400 + eax * 2] ; number of the upper window
|
||||||
|
|
||||||
cmp esi, eax
|
cmp esi, eax
|
||||||
@ -1000,7 +1000,7 @@ checkwindowdraw:
|
|||||||
|
|
||||||
movzx eax, word [esi]
|
movzx eax, word [esi]
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
cmp [0x3000 + eax + TASKDATA.state], byte 9
|
cmp [CURRENT_TASK + eax + TASKDATA.state], byte 9
|
||||||
je .new_check ; skip dead windows
|
je .new_check ; skip dead windows
|
||||||
|
|
||||||
lea esi, [eax+window_data]
|
lea esi, [eax+window_data]
|
||||||
@ -1058,7 +1058,7 @@ waredraw: ; if redraw necessary at activate
|
|||||||
|
|
||||||
; update screen info
|
; update screen info
|
||||||
pushad
|
pushad
|
||||||
mov edi, [0x3004] ; the last process (number)
|
mov edi, [TASK_COUNT] ; the last process (number)
|
||||||
movzx esi, word [0xC400 + edi * 2]
|
movzx esi, word [0xC400 + edi * 2]
|
||||||
shl esi, 5
|
shl esi, 5
|
||||||
add esi, window_data
|
add esi, window_data
|
||||||
@ -1072,7 +1072,7 @@ waredraw: ; if redraw necessary at activate
|
|||||||
add ecx, eax ; ecx = x_end
|
add ecx, eax ; ecx = x_end
|
||||||
add edx, ebx ; edx = y_end
|
add edx, ebx ; edx = y_end
|
||||||
|
|
||||||
mov edi, [0x3004]
|
mov edi, [TASK_COUNT]
|
||||||
movzx esi, word [0xC400 + edi * 2]
|
movzx esi, word [0xC400 + edi * 2]
|
||||||
call setscreen
|
call setscreen
|
||||||
popad
|
popad
|
||||||
@ -1137,7 +1137,7 @@ restore_minimized_window:
|
|||||||
jz .skip_redrawings
|
jz .skip_redrawings
|
||||||
mov [edi+WDATA.fl_redraw], 1
|
mov [edi+WDATA.fl_redraw], 1
|
||||||
and [edi+WDATA.fl_wstate], not WSTATE_MINIMIZED
|
and [edi+WDATA.fl_wstate], not WSTATE_MINIMIZED
|
||||||
cmp eax, [0x3004] ; the uppermost window
|
cmp eax, [TASK_COUNT] ; the uppermost window
|
||||||
jnz .no_uppermost
|
jnz .no_uppermost
|
||||||
mov eax, [edi+WDATA.box.left]
|
mov eax, [edi+WDATA.box.left]
|
||||||
mov ebx, [edi+WDATA.box.top]
|
mov ebx, [edi+WDATA.box.top]
|
||||||
@ -1174,7 +1174,7 @@ checkwindows:
|
|||||||
|
|
||||||
cmp [window_minimize], 0
|
cmp [window_minimize], 0
|
||||||
je .no_minimizing
|
je .no_minimizing
|
||||||
mov eax, [0x3004] ; the uppermost window
|
mov eax, [TASK_COUNT] ; the uppermost window
|
||||||
mov bl, 0
|
mov bl, 0
|
||||||
xchg [window_minimize], bl
|
xchg [window_minimize], bl
|
||||||
cmp bl, 1
|
cmp bl, 1
|
||||||
@ -1192,7 +1192,7 @@ checkwindows:
|
|||||||
ret
|
ret
|
||||||
.mouse_buttons_pressed:
|
.mouse_buttons_pressed:
|
||||||
|
|
||||||
mov esi,[0x3004]
|
mov esi,[TASK_COUNT]
|
||||||
inc esi
|
inc esi
|
||||||
|
|
||||||
cwloop:
|
cwloop:
|
||||||
@ -1228,7 +1228,7 @@ checkwindows:
|
|||||||
|
|
||||||
pushad
|
pushad
|
||||||
mov eax, esi
|
mov eax, esi
|
||||||
mov ebx, [0x3004]
|
mov ebx, [TASK_COUNT]
|
||||||
cmp eax, ebx ; is this window active?
|
cmp eax, ebx ; is this window active?
|
||||||
jz .move_resize_window
|
jz .move_resize_window
|
||||||
|
|
||||||
@ -1751,7 +1751,7 @@ random_shaped_window:
|
|||||||
|
|
||||||
test eax, eax
|
test eax, eax
|
||||||
jne rsw_no_address
|
jne rsw_no_address
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,8
|
shl eax,8
|
||||||
|
|
||||||
mov [eax+0x80000+APPDATA.wnd_shape],ebx
|
mov [eax+0x80000+APPDATA.wnd_shape],ebx
|
||||||
@ -1759,7 +1759,7 @@ random_shaped_window:
|
|||||||
|
|
||||||
cmp eax,1
|
cmp eax,1
|
||||||
jne rsw_no_scale
|
jne rsw_no_scale
|
||||||
mov eax,[0x3000]
|
mov eax,[CURRENT_TASK]
|
||||||
shl eax,8
|
shl eax,8
|
||||||
mov byte [eax+0x80000+APPDATA.wnd_shape_scale], bl
|
mov byte [eax+0x80000+APPDATA.wnd_shape_scale], bl
|
||||||
rsw_no_scale:
|
rsw_no_scale:
|
||||||
|
@ -91,7 +91,7 @@ irq1:
|
|||||||
; mov ds, ax
|
; mov ds, ax
|
||||||
; mov es, 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]
|
movzx eax,word[0xC400+eax*2]
|
||||||
shl eax,8
|
shl eax,8
|
||||||
mov al,[0x80000+eax+APPDATA.keyboard_mode]
|
mov al,[0x80000+eax+APPDATA.keyboard_mode]
|
||||||
|
@ -265,9 +265,9 @@ __sys_disable_mouse:
|
|||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
pushad
|
pushad
|
||||||
cmp [0x3000],dword 1
|
cmp [CURRENT_TASK],dword 1
|
||||||
je disable_m
|
je disable_m
|
||||||
mov edx,[0x3000]
|
mov edx,[CURRENT_TASK]
|
||||||
shl edx,5
|
shl edx,5
|
||||||
add edx,window_data
|
add edx,window_data
|
||||||
movzx eax, word [0xfb0a]
|
movzx eax, word [0xfb0a]
|
||||||
@ -277,7 +277,7 @@ __sys_disable_mouse:
|
|||||||
imul ecx,ebx
|
imul ecx,ebx
|
||||||
add ecx,eax
|
add ecx,eax
|
||||||
add ecx, display_data
|
add ecx, display_data
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
movzx ebx, byte [ecx]
|
movzx ebx, byte [ecx]
|
||||||
cmp eax,ebx
|
cmp eax,ebx
|
||||||
je yes_mouse_disable
|
je yes_mouse_disable
|
||||||
@ -296,7 +296,7 @@ __sys_disable_mouse:
|
|||||||
je yes_mouse_disable
|
je yes_mouse_disable
|
||||||
jmp no_mouse_disable
|
jmp no_mouse_disable
|
||||||
yes_mouse_disable:
|
yes_mouse_disable:
|
||||||
mov edx,[0x3000]
|
mov edx,[CURRENT_TASK]
|
||||||
shl edx,5
|
shl edx,5
|
||||||
add edx,window_data
|
add edx,window_data
|
||||||
movzx eax, word [0xfb0a]
|
movzx eax, word [0xfb0a]
|
||||||
|
@ -504,9 +504,9 @@ include 'vmodeld.inc'
|
|||||||
|
|
||||||
; LOAD FONTS I and II
|
; LOAD FONTS I and II
|
||||||
|
|
||||||
mov [0x3000],dword 1
|
mov [CURRENT_TASK],dword 1
|
||||||
mov [0x3004],dword 1
|
mov [TASK_COUNT],dword 1
|
||||||
mov [0x3010],dword 0x3020
|
mov [TASK_BASE],dword TASK_DATA
|
||||||
|
|
||||||
mov esi,char
|
mov esi,char
|
||||||
xor ebx,ebx
|
xor ebx,ebx
|
||||||
@ -636,9 +636,9 @@ include 'vmodeld.inc'
|
|||||||
mov dword [0x80000+256+APPDATA.bk_obj], ebx
|
mov dword [0x80000+256+APPDATA.bk_obj], ebx
|
||||||
|
|
||||||
; task list
|
; task list
|
||||||
mov [0x3020+TASKDATA.wnd_number], 1 ; on screen number
|
mov [TASK_DATA+TASKDATA.wnd_number], 1 ; on screen number
|
||||||
mov [0x3020+TASKDATA.pid], 1 ; process id number
|
mov [TASK_DATA+TASKDATA.pid], 1 ; process id number
|
||||||
mov [0x3020+TASKDATA.mem_start], 0 ; process base address
|
mov [TASK_DATA+TASKDATA.mem_start], 0 ; process base address
|
||||||
|
|
||||||
mov edi,tss_data+tss_step
|
mov edi,tss_data+tss_step
|
||||||
mov ecx, (tss_step)/4
|
mov ecx, (tss_step)/4
|
||||||
@ -719,8 +719,8 @@ include 'vmodeld.inc'
|
|||||||
call load_skin
|
call load_skin
|
||||||
|
|
||||||
; LOAD FIRST APPLICATION
|
; LOAD FIRST APPLICATION
|
||||||
mov [0x3000],dword 1
|
mov [CURRENT_TASK],dword 1
|
||||||
mov [0x3004],dword 1
|
mov [TASK_COUNT],dword 1
|
||||||
cli
|
cli
|
||||||
cmp byte [0x2f0000+0x9030],1
|
cmp byte [0x2f0000+0x9030],1
|
||||||
jne no_load_vrr_m
|
jne no_load_vrr_m
|
||||||
@ -744,8 +744,8 @@ no_load_vrr_m:
|
|||||||
first_app_found:
|
first_app_found:
|
||||||
cli
|
cli
|
||||||
|
|
||||||
;mov [0x3004],dword 2
|
;mov [TASK_COUNT],dword 2
|
||||||
mov [0x3000],dword 1 ; set OS task fisrt
|
mov [CURRENT_TASK],dword 1 ; set OS task fisrt
|
||||||
|
|
||||||
|
|
||||||
; SET KEYBOARD PARAMETERS
|
; SET KEYBOARD PARAMETERS
|
||||||
@ -1061,7 +1061,7 @@ sys_outport:
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
sopl8:
|
sopl8:
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
mov edx,[edx+0x4]
|
mov edx,[edx+0x4]
|
||||||
and ebx,65535
|
and ebx,65535
|
||||||
cld
|
cld
|
||||||
@ -1326,7 +1326,7 @@ draw_num_text:
|
|||||||
; edx length
|
; edx length
|
||||||
; edi 1 force
|
; edi 1 force
|
||||||
|
|
||||||
; mov edi,[0x3000]
|
; mov edi,[CURRENT_TASK]
|
||||||
; shl edi,8
|
; shl edi,8
|
||||||
; add ax,word[edi+0x80000+APPDATA.wnd_clientbox.top]
|
; add ax,word[edi+0x80000+APPDATA.wnd_clientbox.top]
|
||||||
; rol eax,16
|
; rol eax,16
|
||||||
@ -1339,12 +1339,12 @@ draw_num_text:
|
|||||||
add ecx,esp
|
add ecx,esp
|
||||||
mov eax,[esp+64+32-8+4]
|
mov eax,[esp+64+32-8+4]
|
||||||
push edx ; add window start x & y
|
push edx ; add window start x & y
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
mov ebx,[edx-twdw+WDATA.box.left]
|
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
|
shl ebx,16
|
||||||
add ebx,[edx-twdw+WDATA.box.top]
|
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
|
add eax,ebx
|
||||||
pop edx
|
pop edx
|
||||||
mov ebx,[esp+64+32-12+4]
|
mov ebx,[esp+64+32-12+4]
|
||||||
@ -1405,7 +1405,7 @@ endg
|
|||||||
jnz nsyse2
|
jnz nsyse2
|
||||||
cmp ebx,1
|
cmp ebx,1
|
||||||
jnz kbnobase
|
jnz kbnobase
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ecx,[edi+TASKDATA.mem_start]
|
add ecx,[edi+TASKDATA.mem_start]
|
||||||
mov eax,ecx
|
mov eax,ecx
|
||||||
mov ebx,keymap
|
mov ebx,keymap
|
||||||
@ -1415,7 +1415,7 @@ endg
|
|||||||
kbnobase:
|
kbnobase:
|
||||||
cmp ebx,2
|
cmp ebx,2
|
||||||
jnz kbnoshift
|
jnz kbnoshift
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ecx,[edi+TASKDATA.mem_start]
|
add ecx,[edi+TASKDATA.mem_start]
|
||||||
mov eax,ecx
|
mov eax,ecx
|
||||||
mov ebx,keymap_shift
|
mov ebx,keymap_shift
|
||||||
@ -1425,7 +1425,7 @@ endg
|
|||||||
kbnoshift:
|
kbnoshift:
|
||||||
cmp ebx,3
|
cmp ebx,3
|
||||||
jne kbnoalt
|
jne kbnoalt
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ecx,[edi+TASKDATA.mem_start]
|
add ecx,[edi+TASKDATA.mem_start]
|
||||||
mov eax,ecx
|
mov eax,ecx
|
||||||
mov ebx,keymap_alt
|
mov ebx,keymap_alt
|
||||||
@ -1608,7 +1608,7 @@ sys_getsetup:
|
|||||||
jne ngsyse2
|
jne ngsyse2
|
||||||
cmp ebx,1
|
cmp ebx,1
|
||||||
jnz kbnobaseret
|
jnz kbnobaseret
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ecx,[edi+TASKDATA.mem_start]
|
add ecx,[edi+TASKDATA.mem_start]
|
||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
mov eax,keymap
|
mov eax,keymap
|
||||||
@ -1618,7 +1618,7 @@ sys_getsetup:
|
|||||||
kbnobaseret:
|
kbnobaseret:
|
||||||
cmp ebx,2
|
cmp ebx,2
|
||||||
jnz kbnoshiftret
|
jnz kbnoshiftret
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ecx,[edi+TASKDATA.mem_start]
|
add ecx,[edi+TASKDATA.mem_start]
|
||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
mov eax,keymap_shift
|
mov eax,keymap_shift
|
||||||
@ -1628,7 +1628,7 @@ sys_getsetup:
|
|||||||
kbnoshiftret:
|
kbnoshiftret:
|
||||||
cmp ebx,3
|
cmp ebx,3
|
||||||
jne kbnoaltret
|
jne kbnoaltret
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add ecx,[edi+TASKDATA.mem_start]
|
add ecx,[edi+TASKDATA.mem_start]
|
||||||
mov ebx,ecx
|
mov ebx,ecx
|
||||||
mov eax,keymap_alt
|
mov eax,keymap_alt
|
||||||
@ -1733,7 +1733,7 @@ mswin:
|
|||||||
mov eax,[0xfb0a]
|
mov eax,[0xfb0a]
|
||||||
shl eax,16
|
shl eax,16
|
||||||
mov ax,[0xfb0c]
|
mov ax,[0xfb0c]
|
||||||
mov esi,[0x3010]
|
mov esi,[TASK_BASE]
|
||||||
mov bx, word [esi-twdw+WDATA.box.left]
|
mov bx, word [esi-twdw+WDATA.box.left]
|
||||||
shl ebx,16
|
shl ebx,16
|
||||||
mov bx, word [esi-twdw+WDATA.box.top]
|
mov bx, word [esi-twdw+WDATA.box.top]
|
||||||
@ -1884,7 +1884,7 @@ include 'detect/ps2mouse.inc'
|
|||||||
|
|
||||||
sys_end:
|
sys_end:
|
||||||
|
|
||||||
mov eax,[0x3010]
|
mov eax,[TASK_BASE]
|
||||||
mov [eax+TASKDATA.state], 3 ; terminate this program
|
mov [eax+TASKDATA.state], 3 ; terminate this program
|
||||||
|
|
||||||
waitterm: ; wait here for termination
|
waitterm: ; wait here for termination
|
||||||
@ -1931,7 +1931,7 @@ sysfn_shutdown: ; 18.1 = BOOT
|
|||||||
mov [0x2f0000+0x9030],byte 0
|
mov [0x2f0000+0x9030],byte 0
|
||||||
for_shutdown_parameter:
|
for_shutdown_parameter:
|
||||||
|
|
||||||
mov eax,[0x3004]
|
mov eax,[TASK_COUNT]
|
||||||
add eax,2
|
add eax,2
|
||||||
mov [shutdown_processes],eax
|
mov [shutdown_processes],eax
|
||||||
mov [0xFF00],al
|
mov [0xFF00],al
|
||||||
@ -1944,13 +1944,13 @@ sysfn_shutdown: ; 18.1 = BOOT
|
|||||||
sysfn_terminate: ; 18.2 = TERMINATE
|
sysfn_terminate: ; 18.2 = TERMINATE
|
||||||
cmp ebx,2
|
cmp ebx,2
|
||||||
jb noprocessterminate
|
jb noprocessterminate
|
||||||
mov edx,[0x3004]
|
mov edx,[TASK_COUNT]
|
||||||
cmp ebx,edx
|
cmp ebx,edx
|
||||||
ja noprocessterminate
|
ja noprocessterminate
|
||||||
mov eax,[0x3004]
|
mov eax,[TASK_COUNT]
|
||||||
shl ebx,5
|
shl ebx,5
|
||||||
mov edx,[ebx+0x3000+TASKDATA.pid]
|
mov edx,[ebx+CURRENT_TASK+TASKDATA.pid]
|
||||||
add ebx,0x3000+TASKDATA.state
|
add ebx,CURRENT_TASK+TASKDATA.state
|
||||||
cmp byte [ebx], 9
|
cmp byte [ebx], 9
|
||||||
jz noprocessterminate
|
jz noprocessterminate
|
||||||
|
|
||||||
@ -1995,13 +1995,13 @@ sysfn_terminate2:
|
|||||||
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
|
sysfn_activate: ; 18.3 = ACTIVATE WINDOW
|
||||||
cmp ebx,2
|
cmp ebx,2
|
||||||
jb .nowindowactivate
|
jb .nowindowactivate
|
||||||
cmp ebx,[0x3004]
|
cmp ebx,[TASK_COUNT]
|
||||||
ja .nowindowactivate
|
ja .nowindowactivate
|
||||||
|
|
||||||
mov [window_minimize], 2 ; restore window if minimized
|
mov [window_minimize], 2 ; restore window if minimized
|
||||||
|
|
||||||
movzx esi, word [0xC000 + ebx*2]
|
movzx esi, word [0xC000 + ebx*2]
|
||||||
cmp esi, [0x3004]
|
cmp esi, [TASK_COUNT]
|
||||||
je .nowindowactivate ; already active
|
je .nowindowactivate ; already active
|
||||||
|
|
||||||
mov edi, ebx
|
mov edi, ebx
|
||||||
@ -2029,7 +2029,7 @@ sysfn_getcpuclock: ; 18.5 = GET TSC/SEC
|
|||||||
;!!!!!!!!!!!!!!!!!!!!!!!!
|
;!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
|
||||||
sysfn_getactive: ; 18.7 = get active window
|
sysfn_getactive: ; 18.7 = get active window
|
||||||
mov eax, [0x3004]
|
mov eax, [TASK_COUNT]
|
||||||
movzx eax, word [0xC400 + eax*2]
|
movzx eax, word [0xC400 + eax*2]
|
||||||
mov [esp+36],eax
|
mov [esp+36],eax
|
||||||
ret
|
ret
|
||||||
@ -2070,7 +2070,7 @@ sysfn_getdiskinfo: ; 18.11 = get disk info table
|
|||||||
rep movsb
|
rep movsb
|
||||||
ret
|
ret
|
||||||
for_all_tables:
|
for_all_tables:
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov edi,[edi+TASKDATA.mem_start]
|
mov edi,[edi+TASKDATA.mem_start]
|
||||||
add edi,ecx
|
add edi,ecx
|
||||||
mov esi,0x40000
|
mov esi,0x40000
|
||||||
@ -2089,7 +2089,7 @@ sysfn_lastkey: ; 18.12 = return 0 (backward compatibility)
|
|||||||
ret
|
ret
|
||||||
|
|
||||||
sysfn_getversion: ; 18.13 = get kernel ID and version
|
sysfn_getversion: ; 18.13 = get kernel ID and version
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov edi,[edi+TASKDATA.mem_start]
|
mov edi,[edi+TASKDATA.mem_start]
|
||||||
add edi,ebx
|
add edi,ebx
|
||||||
mov esi,version_inf
|
mov esi,version_inf
|
||||||
@ -2285,7 +2285,7 @@ draw_background_temp:
|
|||||||
cmp eax,5 ; BLOCK MOVE TO BGR
|
cmp eax,5 ; BLOCK MOVE TO BGR
|
||||||
jnz nosb5
|
jnz nosb5
|
||||||
; bughere
|
; bughere
|
||||||
mov edi, [0x3010]
|
mov edi, [TASK_BASE]
|
||||||
add ebx, [edi+TASKDATA.mem_start]
|
add ebx, [edi+TASKDATA.mem_start]
|
||||||
; mov esi, ebx
|
; mov esi, ebx
|
||||||
; mov edi, ecx
|
; mov edi, ecx
|
||||||
@ -2347,9 +2347,9 @@ align 4
|
|||||||
sys_getkey:
|
sys_getkey:
|
||||||
mov [esp+36],dword 1
|
mov [esp+36],dword 1
|
||||||
; test main buffer
|
; test main buffer
|
||||||
mov ebx, [0x3000] ; TOP OF WINDOW STACK
|
mov ebx, [CURRENT_TASK] ; TOP OF WINDOW STACK
|
||||||
movzx ecx,word [0xC000 + ebx * 2]
|
movzx ecx,word [0xC000 + ebx * 2]
|
||||||
mov edx,[0x3004]
|
mov edx,[TASK_COUNT]
|
||||||
cmp ecx,edx
|
cmp ecx,edx
|
||||||
jne .finish
|
jne .finish
|
||||||
cmp [0xf400],byte 0
|
cmp [0xf400],byte 0
|
||||||
@ -2395,10 +2395,10 @@ align 4
|
|||||||
|
|
||||||
sys_getbutton:
|
sys_getbutton:
|
||||||
|
|
||||||
mov ebx, [0x3000] ; TOP OF WINDOW STACK
|
mov ebx, [CURRENT_TASK] ; TOP OF WINDOW STACK
|
||||||
mov [esp+36],dword 1
|
mov [esp+36],dword 1
|
||||||
movzx ecx, word [0xC000 + ebx * 2]
|
movzx ecx, word [0xC000 + ebx * 2]
|
||||||
mov edx, [0x3004] ; less than 256 processes
|
mov edx, [TASK_COUNT] ; less than 256 processes
|
||||||
cmp ecx,edx
|
cmp ecx,edx
|
||||||
jne .exit
|
jne .exit
|
||||||
movzx eax,byte [0xf500]
|
movzx eax,byte [0xf500]
|
||||||
@ -2427,12 +2427,12 @@ sys_cpuusage:
|
|||||||
; +30 dword PID , process idenfification number
|
; +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]
|
add eax,[edi + TASKDATA.mem_start]
|
||||||
|
|
||||||
cmp ebx,-1 ; who am I ?
|
cmp ebx,-1 ; who am I ?
|
||||||
jne no_who_am_i
|
jne no_who_am_i
|
||||||
mov ebx,[0x3000]
|
mov ebx,[CURRENT_TASK]
|
||||||
no_who_am_i:
|
no_who_am_i:
|
||||||
|
|
||||||
push eax ; return area
|
push eax ; return area
|
||||||
@ -2447,7 +2447,7 @@ sys_cpuusage:
|
|||||||
xor edx,edx
|
xor edx,edx
|
||||||
mov eax,0x20
|
mov eax,0x20
|
||||||
mul ebx
|
mul ebx
|
||||||
add eax,0x3000+TASKDATA.cpu_usage
|
add eax,CURRENT_TASK+TASKDATA.cpu_usage
|
||||||
mov ebx,eax
|
mov ebx,eax
|
||||||
pop eax
|
pop eax
|
||||||
mov ecx,[ebx]
|
mov ecx,[ebx]
|
||||||
@ -2486,7 +2486,7 @@ sys_cpuusage:
|
|||||||
|
|
||||||
mov eax,[esp]
|
mov eax,[esp]
|
||||||
shl eax,5
|
shl eax,5
|
||||||
add eax,0x3000+TASKDATA.pid
|
add eax,CURRENT_TASK+TASKDATA.pid
|
||||||
mov eax,[eax]
|
mov eax,[eax]
|
||||||
mov [ebx+20],eax
|
mov [ebx+20],eax
|
||||||
|
|
||||||
@ -2505,7 +2505,7 @@ sys_cpuusage:
|
|||||||
|
|
||||||
mov eax,[esp]
|
mov eax,[esp]
|
||||||
shl eax,5
|
shl eax,5
|
||||||
add eax,0x3000+TASKDATA.state
|
add eax,CURRENT_TASK+TASKDATA.state
|
||||||
mov eax,[eax]
|
mov eax,[eax]
|
||||||
mov [ebx+40],ax
|
mov [ebx+40],ax
|
||||||
|
|
||||||
@ -2531,7 +2531,7 @@ sys_cpuusage:
|
|||||||
|
|
||||||
; return number of processes
|
; return number of processes
|
||||||
|
|
||||||
mov eax,[0x3004]
|
mov eax,[TASK_COUNT]
|
||||||
mov [esp+36],eax
|
mov [esp+36],eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
@ -2618,7 +2618,7 @@ sys_redrawstat:
|
|||||||
|
|
||||||
; buttons away
|
; buttons away
|
||||||
|
|
||||||
mov ecx,[0x3000]
|
mov ecx,[CURRENT_TASK]
|
||||||
|
|
||||||
sys_newba2:
|
sys_newba2:
|
||||||
|
|
||||||
@ -2661,8 +2661,8 @@ sys_redrawstat:
|
|||||||
cmp eax,2
|
cmp eax,2
|
||||||
jnz srl1
|
jnz srl1
|
||||||
|
|
||||||
mov edx,[0x3010] ; return whole screen draw area for this app
|
mov edx,[TASK_BASE] ; return whole screen draw area for this app
|
||||||
add edx,draw_data-0x3000
|
add edx,draw_data-CURRENT_TASK
|
||||||
mov [edx+RECT.left], 0
|
mov [edx+RECT.left], 0
|
||||||
mov [edx+RECT.top], 0
|
mov [edx+RECT.top], 0
|
||||||
mov eax,[0xfe00]
|
mov eax,[0xfe00]
|
||||||
@ -2670,7 +2670,7 @@ sys_redrawstat:
|
|||||||
mov eax,[0xfe04]
|
mov eax,[0xfe04]
|
||||||
mov [edx+RECT.bottom],eax
|
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
|
or [edi-twdw+WDATA.fl_wdrawn], 1 ; no new position & buttons from app
|
||||||
|
|
||||||
call sys_window_mouse
|
call sys_window_mouse
|
||||||
@ -2731,9 +2731,9 @@ sys_drawwindow:
|
|||||||
|
|
||||||
; parameter for drawwindow_IV
|
; parameter for drawwindow_IV
|
||||||
push 0
|
push 0
|
||||||
mov edi, [0x3004]
|
mov edi, [TASK_COUNT]
|
||||||
movzx edi, word [0xC400 + edi*2]
|
movzx edi, word [0xC400 + edi*2]
|
||||||
cmp edi, [0x3000]
|
cmp edi, [CURRENT_TASK]
|
||||||
jne @f
|
jne @f
|
||||||
inc dword [esp]
|
inc dword [esp]
|
||||||
@@:
|
@@:
|
||||||
@ -2757,12 +2757,12 @@ draw_window_caption:
|
|||||||
call [disable_mouse]
|
call [disable_mouse]
|
||||||
|
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov edx,[0x3004]
|
mov edx,[TASK_COUNT]
|
||||||
movzx edx,word[0xC400+edx*2]
|
movzx edx,word[0xC400+edx*2]
|
||||||
cmp edx,[0x3000]
|
cmp edx,[CURRENT_TASK]
|
||||||
jne @f
|
jne @f
|
||||||
inc eax
|
inc eax
|
||||||
@@: mov edx,[0x3000]
|
@@: mov edx,[CURRENT_TASK]
|
||||||
shl edx,5
|
shl edx,5
|
||||||
add edx,window_data
|
add edx,window_data
|
||||||
movzx ebx,[edx+WDATA.fl_wstyle]
|
movzx ebx,[edx+WDATA.fl_wstyle]
|
||||||
@ -2790,7 +2790,7 @@ draw_window_caption:
|
|||||||
|
|
||||||
;--------------------------------------------------------------
|
;--------------------------------------------------------------
|
||||||
.2: ;jmp @f
|
.2: ;jmp @f
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,5
|
shl edi,5
|
||||||
test [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION
|
test [edi+window_data+WDATA.fl_wstyle],WSTYLE_HASCAPTION
|
||||||
jz @f
|
jz @f
|
||||||
@ -2913,7 +2913,7 @@ set_window_clientbox:
|
|||||||
|
|
||||||
sys_set_window:
|
sys_set_window:
|
||||||
|
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,5
|
shl edi,5
|
||||||
add edi,window_data
|
add edi,window_data
|
||||||
|
|
||||||
@ -2996,7 +2996,7 @@ syscall_windowsettings:
|
|||||||
; NOTE: only window owner thread can set its caption,
|
; NOTE: only window owner thread can set its caption,
|
||||||
; so there's no parameter for PID/TID
|
; so there's no parameter for PID/TID
|
||||||
|
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,5
|
shl edi,5
|
||||||
|
|
||||||
; have to check if caption is within application memory limit
|
; have to check if caption is within application memory limit
|
||||||
@ -3031,7 +3031,7 @@ syscall_windowsettings:
|
|||||||
|
|
||||||
sys_window_move:
|
sys_window_move:
|
||||||
|
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,5
|
shl edi,5
|
||||||
add edi,window_data
|
add edi,window_data
|
||||||
|
|
||||||
@ -3299,7 +3299,7 @@ checkmisc:
|
|||||||
jne mouse_not_active
|
jne mouse_not_active
|
||||||
mov [mouse_active], 0
|
mov [mouse_active], 0
|
||||||
xor edi, edi
|
xor edi, edi
|
||||||
mov ecx, [0x3004]
|
mov ecx, [TASK_COUNT]
|
||||||
set_mouse_event:
|
set_mouse_event:
|
||||||
add edi, 256
|
add edi, 256
|
||||||
or [edi+0x80000+APPDATA.event_mask], dword 00100000b
|
or [edi+0x80000+APPDATA.event_mask], dword 00100000b
|
||||||
@ -3357,8 +3357,8 @@ checkmisc:
|
|||||||
noshutdown:
|
noshutdown:
|
||||||
|
|
||||||
|
|
||||||
mov eax,[0x3004] ; termination
|
mov eax,[TASK_COUNT] ; termination
|
||||||
mov ebx,0x3020+TASKDATA.state
|
mov ebx,TASK_DATA+TASKDATA.state
|
||||||
mov esi,1
|
mov esi,1
|
||||||
|
|
||||||
newct:
|
newct:
|
||||||
@ -3475,7 +3475,7 @@ redrawscreen:
|
|||||||
|
|
||||||
pop ecx
|
pop ecx
|
||||||
|
|
||||||
cmp ecx,[0x3004]
|
cmp ecx,[TASK_COUNT]
|
||||||
jle newdw2
|
jle newdw2
|
||||||
|
|
||||||
pop eax
|
pop eax
|
||||||
@ -3545,7 +3545,7 @@ delay_ms: ; delay in 1/1000 sec
|
|||||||
set_app_param:
|
set_app_param:
|
||||||
push edi
|
push edi
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov [edi+TASKDATA.event_mask],eax
|
mov [edi+TASKDATA.event_mask],eax
|
||||||
|
|
||||||
pop edi
|
pop edi
|
||||||
@ -3634,7 +3634,7 @@ memmove: ; memory move in bytes
|
|||||||
;; 5 file not found
|
;; 5 file not found
|
||||||
;; ebx = size of file
|
;; ebx = size of file
|
||||||
;
|
;
|
||||||
; mov edi,[0x3010]
|
; mov edi,[TASK_BASE]
|
||||||
; add edi,0x10
|
; add edi,0x10
|
||||||
; add esi,[edi]
|
; add esi,[edi]
|
||||||
; add eax,[edi]
|
; add eax,[edi]
|
||||||
@ -3662,12 +3662,12 @@ align 4
|
|||||||
|
|
||||||
sys_programirq:
|
sys_programirq:
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add eax,[edi+TASKDATA.mem_start]
|
add eax,[edi+TASKDATA.mem_start]
|
||||||
|
|
||||||
cmp ebx,16
|
cmp ebx,16
|
||||||
jae .not_owner
|
jae .not_owner
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov edi,[edi+TASKDATA.pid]
|
mov edi,[edi+TASKDATA.pid]
|
||||||
cmp edi,[irq_owner+ebx*4]
|
cmp edi,[irq_owner+ebx*4]
|
||||||
je spril1
|
je spril1
|
||||||
@ -3696,7 +3696,7 @@ get_irq_data:
|
|||||||
shl edx,2
|
shl edx,2
|
||||||
add edx,irq_owner
|
add edx,irq_owner
|
||||||
mov edx,[edx]
|
mov edx,[edx]
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov edi,[edi+TASKDATA.pid]
|
mov edi,[edi+TASKDATA.pid]
|
||||||
cmp edx,edi
|
cmp edx,edi
|
||||||
je gidril1
|
je gidril1
|
||||||
@ -3736,7 +3736,7 @@ set_io_access_rights:
|
|||||||
|
|
||||||
pushad
|
pushad
|
||||||
|
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
imul edi,tss_step
|
imul edi,tss_step
|
||||||
add edi,tss_data+128
|
add edi,tss_data+128
|
||||||
; add edi,128
|
; add edi,128
|
||||||
@ -3844,7 +3844,7 @@ r_f_port_area:
|
|||||||
mov [0x2d0000],edi
|
mov [0x2d0000],edi
|
||||||
shl edi,4
|
shl edi,4
|
||||||
add edi,0x2d0000
|
add edi,0x2d0000
|
||||||
mov esi,[0x3010]
|
mov esi,[TASK_BASE]
|
||||||
mov esi,[esi+TASKDATA.pid]
|
mov esi,[esi+TASKDATA.pid]
|
||||||
mov [edi],esi
|
mov [edi],esi
|
||||||
mov [edi+4],ebx
|
mov [edi+4],ebx
|
||||||
@ -3860,7 +3860,7 @@ free_port_area:
|
|||||||
mov esi,[0x2d0000] ; no reserved areas ?
|
mov esi,[0x2d0000] ; no reserved areas ?
|
||||||
test esi,esi
|
test esi,esi
|
||||||
je frpal2
|
je frpal2
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
mov edx,[edx+TASKDATA.pid]
|
mov edx,[edx+TASKDATA.pid]
|
||||||
frpal3:
|
frpal3:
|
||||||
mov edi,esi
|
mov edi,esi
|
||||||
@ -3934,7 +3934,7 @@ reserve_free_irq:
|
|||||||
|
|
||||||
lea edi,[irq_owner+ebx*4]
|
lea edi,[irq_owner+ebx*4]
|
||||||
mov edx,[edi]
|
mov edx,[edi]
|
||||||
mov eax,[0x3010]
|
mov eax,[TASK_BASE]
|
||||||
cmp edx,[eax+TASKDATA.pid]
|
cmp edx,[eax+TASKDATA.pid]
|
||||||
jne fril1
|
jne fril1
|
||||||
dec ecx
|
dec ecx
|
||||||
@ -3949,7 +3949,7 @@ reserve_free_irq:
|
|||||||
cmp dword [edi], 0
|
cmp dword [edi], 0
|
||||||
jnz ril1
|
jnz ril1
|
||||||
|
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
mov edx,[edx+TASKDATA.pid]
|
mov edx,[edx+TASKDATA.pid]
|
||||||
mov [edi],edx
|
mov [edi],edx
|
||||||
dec ecx
|
dec ecx
|
||||||
@ -4001,7 +4001,7 @@ sys_putimage:
|
|||||||
.exit:
|
.exit:
|
||||||
ret
|
ret
|
||||||
@@:
|
@@:
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,8
|
shl edi,8
|
||||||
add dx,word[edi+0x80000+APPDATA.wnd_clientbox.top]
|
add dx,word[edi+0x80000+APPDATA.wnd_clientbox.top]
|
||||||
rol edx,16
|
rol edx,16
|
||||||
@ -4043,7 +4043,7 @@ sys_putimage_palette:
|
|||||||
; esi = number of bits per pixel, must be 8, 24 or 32
|
; esi = number of bits per pixel, must be 8, 24 or 32
|
||||||
; edi = pointer to palette
|
; edi = pointer to palette
|
||||||
; ebp = row delta
|
; ebp = row delta
|
||||||
mov eax, [0x3000]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 8
|
shl eax, 8
|
||||||
add dx, word [eax+0x80000+APPDATA.wnd_clientbox.top]
|
add dx, word [eax+0x80000+APPDATA.wnd_clientbox.top]
|
||||||
rol edx, 16
|
rol edx, 16
|
||||||
@ -4104,7 +4104,7 @@ putimage_get32bpp:
|
|||||||
; edi color
|
; edi color
|
||||||
|
|
||||||
__sys_drawbar:
|
__sys_drawbar:
|
||||||
mov esi,[0x3000]
|
mov esi,[CURRENT_TASK]
|
||||||
shl esi,8
|
shl esi,8
|
||||||
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
add ecx,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
add ecx,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
@ -4474,7 +4474,7 @@ sys_msg_board:
|
|||||||
|
|
||||||
|
|
||||||
sys_process_def:
|
sys_process_def:
|
||||||
mov edi, [0x3000]
|
mov edi, [CURRENT_TASK]
|
||||||
|
|
||||||
dec eax ; 1 = set keyboard mode
|
dec eax ; 1 = set keyboard mode
|
||||||
jne no_set_keyboard_setup
|
jne no_set_keyboard_setup
|
||||||
@ -4635,10 +4635,10 @@ align 4 ; system functions
|
|||||||
syscall_setpixel: ; SetPixel
|
syscall_setpixel: ; SetPixel
|
||||||
|
|
||||||
|
|
||||||
mov edx,[0x3010]
|
mov edx,[TASK_BASE]
|
||||||
add eax,[edx-twdw+WDATA.box.left]
|
add eax,[edx-twdw+WDATA.box.left]
|
||||||
add ebx,[edx-twdw+WDATA.box.top]
|
add ebx,[edx-twdw+WDATA.box.top]
|
||||||
mov edi,[0x3000]
|
mov edi,[CURRENT_TASK]
|
||||||
shl edi,8
|
shl edi,8
|
||||||
add eax,[edi+0x80000+APPDATA.wnd_clientbox.left]
|
add eax,[edi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
add ebx,[edi+0x80000+APPDATA.wnd_clientbox.top]
|
add ebx,[edi+0x80000+APPDATA.wnd_clientbox.top]
|
||||||
@ -4651,10 +4651,10 @@ align 4
|
|||||||
|
|
||||||
syscall_writetext: ; WriteText
|
syscall_writetext: ; WriteText
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
mov ebp,[edi-twdw+WDATA.box.left]
|
mov ebp,[edi-twdw+WDATA.box.left]
|
||||||
push esi
|
push esi
|
||||||
mov esi,[0x3000]
|
mov esi,[CURRENT_TASK]
|
||||||
shl esi,8
|
shl esi,8
|
||||||
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
shl ebp,16
|
shl ebp,16
|
||||||
@ -4671,7 +4671,7 @@ align 4
|
|||||||
syscall_openramdiskfile: ; OpenRamdiskFile
|
syscall_openramdiskfile: ; OpenRamdiskFile
|
||||||
|
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add eax,[edi]
|
add eax,[edi]
|
||||||
add edx,[edi]
|
add edx,[edi]
|
||||||
@ -4694,7 +4694,7 @@ syscall_drawrect: ; DrawRect
|
|||||||
shr eax,16
|
shr eax,16
|
||||||
movzx edx,bx
|
movzx edx,bx
|
||||||
shr ebx,16
|
shr ebx,16
|
||||||
mov esi,[0x3000]
|
mov esi,[CURRENT_TASK]
|
||||||
shl esi,8
|
shl esi,8
|
||||||
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
add eax,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
add ebx,[esi+0x80000+APPDATA.wnd_clientbox.top]
|
add ebx,[esi+0x80000+APPDATA.wnd_clientbox.top]
|
||||||
@ -4726,7 +4726,7 @@ align 4
|
|||||||
|
|
||||||
syscall_delramdiskfile: ; DelRamdiskFile
|
syscall_delramdiskfile: ; DelRamdiskFile
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add eax,[edi]
|
add eax,[edi]
|
||||||
call filedelete
|
call filedelete
|
||||||
@ -4737,7 +4737,7 @@ align 4
|
|||||||
|
|
||||||
syscall_writeramdiskfile: ; WriteRamdiskFile
|
syscall_writeramdiskfile: ; WriteRamdiskFile
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add eax,[edi]
|
add eax,[edi]
|
||||||
add ebx,[edi]
|
add ebx,[edi]
|
||||||
@ -4762,7 +4762,7 @@ align 4
|
|||||||
|
|
||||||
syscall_readstring: ; ReadString
|
syscall_readstring: ; ReadString
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add eax,[edi]
|
add eax,[edi]
|
||||||
call read_string
|
call read_string
|
||||||
@ -4773,10 +4773,10 @@ align 4
|
|||||||
|
|
||||||
syscall_drawline: ; DrawLine
|
syscall_drawline: ; DrawLine
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
movzx edx,word[edi-twdw+WDATA.box.left]
|
movzx edx,word[edi-twdw+WDATA.box.left]
|
||||||
mov ebp,edx
|
mov ebp,edx
|
||||||
mov esi,[0x3000]
|
mov esi,[CURRENT_TASK]
|
||||||
shl esi,8
|
shl esi,8
|
||||||
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
add ebp,[esi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
add dx,word[esi+0x80000+APPDATA.wnd_clientbox.left]
|
add dx,word[esi+0x80000+APPDATA.wnd_clientbox.left]
|
||||||
@ -4860,7 +4860,7 @@ align 4
|
|||||||
|
|
||||||
read_from_hd: ; Read from hd - fn not in use
|
read_from_hd: ; Read from hd - fn not in use
|
||||||
|
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add eax,[edi]
|
add eax,[edi]
|
||||||
add ecx,[edi]
|
add ecx,[edi]
|
||||||
@ -4924,7 +4924,7 @@ undefined_syscall: ; Undefined system call
|
|||||||
|
|
||||||
; push edi
|
; 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
|
; imul edi,8
|
||||||
; mov [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b
|
; mov [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@
|
|||||||
;
|
;
|
||||||
; 0x0098B000 -> kernel heap
|
; 0x0098B000 -> kernel heap
|
||||||
;
|
;
|
||||||
; 0x01FFFFFF heam min limit
|
; 0x01FFFFFF heap min limit
|
||||||
; 0x7DBFFFFF heap max limit
|
; 0x7DBFFFFF heap max limit
|
||||||
; 0x7DC00000 -> 0x7FBFFFFF LFB 32Mb
|
; 0x7DC00000 -> 0x7FBFFFFF LFB 32Mb
|
||||||
; 0x7DC00000 -> 0x7E3FFFFF application available LFB 8Mb
|
; 0x7DC00000 -> 0x7E3FFFFF application available LFB 8Mb
|
||||||
|
@ -215,7 +215,7 @@ socket_open:
|
|||||||
mov [eax + SOCKET.RemoteIP], edx
|
mov [eax + SOCKET.RemoteIP], edx
|
||||||
mov [eax + SOCKET.rxDataCount], dword 0 ; recieved data count
|
mov [eax + SOCKET.rxDataCount], dword 0 ; recieved data count
|
||||||
|
|
||||||
mov esi, [0x3010]
|
mov esi, [TASK_BASE]
|
||||||
mov ebx, [esi+TASKDATA.pid]
|
mov ebx, [esi+TASKDATA.pid]
|
||||||
mov [eax + SOCKET.PID], ebx ; save the process ID
|
mov [eax + SOCKET.PID], ebx ; save the process ID
|
||||||
pop eax ; Get the socket number back, so we can return it
|
pop eax ; Get the socket number back, so we can return it
|
||||||
@ -279,7 +279,7 @@ socket_open_tcp:
|
|||||||
sot_001:
|
sot_001:
|
||||||
mov [eax + SOCKET.TCBState], ebx ; Indicate the state of the TCB
|
mov [eax + SOCKET.TCBState], ebx ; Indicate the state of the TCB
|
||||||
|
|
||||||
mov esi, [0x3010]
|
mov esi, [TASK_BASE]
|
||||||
mov ecx, [esi+TASKDATA.pid]
|
mov ecx, [esi+TASKDATA.pid]
|
||||||
mov [eax + SOCKET.PID], ecx ; save the process ID
|
mov [eax + SOCKET.PID], ecx ; save the process ID
|
||||||
|
|
||||||
@ -709,7 +709,7 @@ socket_write:
|
|||||||
pop eax ; get callers ptr to data to send
|
pop eax ; get callers ptr to data to send
|
||||||
|
|
||||||
; Get the address of the callers data
|
; Get the address of the callers data
|
||||||
mov edi, [0x3010]
|
mov edi, [TASK_BASE]
|
||||||
add edi, TASKDATA.mem_start
|
add edi, TASKDATA.mem_start
|
||||||
add eax, [edi]
|
add eax, [edi]
|
||||||
mov esi, eax
|
mov esi, eax
|
||||||
@ -824,7 +824,7 @@ socket_write_tcp:
|
|||||||
mov bl, 0x10 ; ACK
|
mov bl, 0x10 ; ACK
|
||||||
|
|
||||||
; Get the address of the callers data
|
; Get the address of the callers data
|
||||||
mov edi, [0x3010]
|
mov edi, [TASK_BASE]
|
||||||
add edi, TASKDATA.mem_start
|
add edi, TASKDATA.mem_start
|
||||||
add edx, [edi]
|
add edx, [edi]
|
||||||
mov esi, edx
|
mov esi, edx
|
||||||
|
@ -929,7 +929,7 @@ stack_get_packet:
|
|||||||
push eax ; save address of IP data
|
push eax ; save address of IP data
|
||||||
|
|
||||||
; Get the address of the callers data
|
; Get the address of the callers data
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add edx,[edi]
|
add edx,[edi]
|
||||||
mov edi, edx
|
mov edi, edx
|
||||||
@ -992,7 +992,7 @@ stack_insert_packet:
|
|||||||
pop eax ; get callers ptr to data to send
|
pop eax ; get callers ptr to data to send
|
||||||
|
|
||||||
; Get the address of the callers data
|
; Get the address of the callers data
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add eax,[edi]
|
add eax,[edi]
|
||||||
mov esi, eax
|
mov esi, eax
|
||||||
|
@ -1057,14 +1057,14 @@ ste_data:
|
|||||||
; flag an event to the application
|
; flag an event to the application
|
||||||
pop eax
|
pop eax
|
||||||
mov ecx,1
|
mov ecx,1
|
||||||
mov esi,0x3020+TASKDATA.pid
|
mov esi,TASK_DATA+TASKDATA.pid
|
||||||
|
|
||||||
news:
|
news:
|
||||||
cmp [esi],eax
|
cmp [esi],eax
|
||||||
je foundPID1
|
je foundPID1
|
||||||
inc ecx
|
inc ecx
|
||||||
add esi,0x20
|
add esi,0x20
|
||||||
cmp ecx,[0x3004]
|
cmp ecx,[TASK_COUNT]
|
||||||
jbe news
|
jbe news
|
||||||
|
|
||||||
foundPID1:
|
foundPID1:
|
||||||
|
@ -141,14 +141,14 @@ udprx_002:
|
|||||||
; flag an event to the application
|
; flag an event to the application
|
||||||
pop eax
|
pop eax
|
||||||
mov ecx,1
|
mov ecx,1
|
||||||
mov esi,0x3020+TASKDATA.pid
|
mov esi,TASK_DATA+TASKDATA.pid
|
||||||
|
|
||||||
newsearch:
|
newsearch:
|
||||||
cmp [esi],eax
|
cmp [esi],eax
|
||||||
je foundPID
|
je foundPID
|
||||||
inc ecx
|
inc ecx
|
||||||
add esi,0x20
|
add esi,0x20
|
||||||
cmp ecx,[0x3004]
|
cmp ecx,[TASK_COUNT]
|
||||||
jbe newsearch
|
jbe newsearch
|
||||||
|
|
||||||
foundPID:
|
foundPID:
|
||||||
|
@ -30,7 +30,7 @@ sound_interface:
|
|||||||
|
|
||||||
cmp eax,0 ; Load data
|
cmp eax,0 ; Load data
|
||||||
jne no_SB16_load_music
|
jne no_SB16_load_music
|
||||||
mov edi,[0x3010]
|
mov edi,[TASK_BASE]
|
||||||
add edi,TASKDATA.mem_start
|
add edi,TASKDATA.mem_start
|
||||||
add ebx,[edi]
|
add ebx,[edi]
|
||||||
call code_SB16_load_music
|
call code_SB16_load_music
|
||||||
@ -72,12 +72,12 @@ sound_interface:
|
|||||||
movzx eax, byte [countDelayNote]
|
movzx eax, byte [countDelayNote]
|
||||||
or al, al ; player is busy ?
|
or al, al ; player is busy ?
|
||||||
jnz retFunc55 ; return counter delay Note
|
jnz retFunc55 ; return counter delay Note
|
||||||
; mov eax, [0x3010]
|
; mov eax, [TASK_BASE]
|
||||||
; mov eax, [eax+0x10] ; address application im memory
|
; mov eax, [eax+0x10] ; address application im memory
|
||||||
; add eax, edx ; add offset Delay-Note string
|
; add eax, edx ; add offset Delay-Note string
|
||||||
; mov [memAdrNote], eax
|
; mov [memAdrNote], eax
|
||||||
mov [memAdrNote],edx
|
mov [memAdrNote],edx
|
||||||
mov eax,[0x3010]
|
mov eax,[TASK_BASE]
|
||||||
mov eax,[eax+TASKDATA.pid]
|
mov eax,[eax+TASKDATA.pid]
|
||||||
mov [pidProcessNote],eax
|
mov [pidProcessNote],eax
|
||||||
xor eax, eax ; Ok! EAX = 0
|
xor eax, eax ; Ok! EAX = 0
|
||||||
|
@ -361,7 +361,7 @@ proc load_cursor stdcall, src:dword, flags:dword
|
|||||||
@@:
|
@@:
|
||||||
mov eax, [CURRENT_TASK]
|
mov eax, [CURRENT_TASK]
|
||||||
shl eax, 5
|
shl eax, 5
|
||||||
mov eax, [0x3000+eax+4]
|
mov eax, [CURRENT_TASK+eax+4]
|
||||||
mov ebx, [src]
|
mov ebx, [src]
|
||||||
mov ecx, [flags]
|
mov ecx, [flags]
|
||||||
call [create_cursor] ;eax, ebx, ecx
|
call [create_cursor] ;eax, ebx, ecx
|
||||||
@ -394,7 +394,7 @@ proc delete_cursor stdcall, hcursor:dword
|
|||||||
|
|
||||||
mov ebx, [CURRENT_TASK]
|
mov ebx, [CURRENT_TASK]
|
||||||
shl ebx, 5
|
shl ebx, 5
|
||||||
mov ebx, [0x3000+ebx+4]
|
mov ebx, [CURRENT_TASK+ebx+4]
|
||||||
cmp ebx, [esi+CURSOR.pid]
|
cmp ebx, [esi+CURSOR.pid]
|
||||||
jne .fail
|
jne .fail
|
||||||
|
|
||||||
|
@ -364,7 +364,7 @@ vesa12_drawbar:
|
|||||||
push ebx
|
push ebx
|
||||||
push ecx
|
push ecx
|
||||||
push edx
|
push edx
|
||||||
mov ecx,[0x3010]
|
mov ecx,[TASK_BASE]
|
||||||
add eax,[ecx-twdw+WDATA.box.left]
|
add eax,[ecx-twdw+WDATA.box.left]
|
||||||
add ebx,[ecx-twdw+WDATA.box.top]
|
add ebx,[ecx-twdw+WDATA.box.top]
|
||||||
push eax
|
push eax
|
||||||
@ -402,17 +402,17 @@ vesa12_drawbar:
|
|||||||
|
|
||||||
push eax
|
push eax
|
||||||
push ecx
|
push ecx
|
||||||
mov eax,[0x3010]
|
mov eax,[TASK_BASE]
|
||||||
mov ecx,[eax+draw_data-0x3000+RECT.left]
|
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.left]
|
||||||
cmp ecx,0
|
cmp ecx,0
|
||||||
jnz dbcblimitlset12
|
jnz dbcblimitlset12
|
||||||
mov ecx,[eax+draw_data-0x3000+RECT.top]
|
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.top]
|
||||||
cmp ecx,0
|
cmp ecx,0
|
||||||
jnz dbcblimitlset12
|
jnz dbcblimitlset12
|
||||||
mov ecx,[eax+draw_data-0x3000+RECT.right]
|
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.right]
|
||||||
cmp ecx,[0xfe00]
|
cmp ecx,[0xfe00]
|
||||||
jnz dbcblimitlset12
|
jnz dbcblimitlset12
|
||||||
mov ecx,[eax+draw_data-0x3000+RECT.bottom]
|
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.bottom]
|
||||||
cmp ecx,[0xfe04]
|
cmp ecx,[0xfe04]
|
||||||
jnz dbcblimitlset12
|
jnz dbcblimitlset12
|
||||||
pop ecx
|
pop ecx
|
||||||
@ -462,7 +462,7 @@ dbpi24bit12:
|
|||||||
mov ebx,3
|
mov ebx,3
|
||||||
div ebx
|
div ebx
|
||||||
add eax,WinMapAddress
|
add eax,WinMapAddress
|
||||||
mov ebx,[0x3000]
|
mov ebx,[CURRENT_TASK]
|
||||||
cld
|
cld
|
||||||
|
|
||||||
dbnp2412:
|
dbnp2412:
|
||||||
@ -553,7 +553,7 @@ dbpi24bit12:
|
|||||||
sub eax,[0xfe80]
|
sub eax,[0xfe80]
|
||||||
shr eax,2
|
shr eax,2
|
||||||
add eax,WinMapAddress
|
add eax,WinMapAddress
|
||||||
mov ebx,[0x3000]
|
mov ebx,[CURRENT_TASK]
|
||||||
cld
|
cld
|
||||||
|
|
||||||
dbnp3212:
|
dbnp3212:
|
||||||
@ -731,7 +731,7 @@ vesa12_putimage:
|
|||||||
push edx
|
push edx
|
||||||
movzx eax,word [esp+2]
|
movzx eax,word [esp+2]
|
||||||
movzx ebx,word [esp+0]
|
movzx ebx,word [esp+0]
|
||||||
mov ecx,[0x3010]
|
mov ecx,[TASK_BASE]
|
||||||
add eax,[ecx-twdw+WDATA.box.left]
|
add eax,[ecx-twdw+WDATA.box.left]
|
||||||
add ebx,[ecx-twdw+WDATA.box.top]
|
add ebx,[ecx-twdw+WDATA.box.top]
|
||||||
push eax
|
push eax
|
||||||
@ -760,15 +760,15 @@ vesa12_putimage:
|
|||||||
; check limits while draw ?
|
; check limits while draw ?
|
||||||
|
|
||||||
push ecx
|
push ecx
|
||||||
mov eax,[0x3010]
|
mov eax,[TASK_BASE]
|
||||||
cmp dword [eax+draw_data-0x3000+RECT.left], 0
|
cmp dword [eax+draw_data-CURRENT_TASK+RECT.left], 0
|
||||||
jnz dbcblimitlset212
|
jnz dbcblimitlset212
|
||||||
cmp dword [eax+draw_data-0x3000+RECT.top], 0
|
cmp dword [eax+draw_data-CURRENT_TASK+RECT.top], 0
|
||||||
jnz dbcblimitlset212
|
jnz dbcblimitlset212
|
||||||
mov ecx,[eax+draw_data-0x3000+RECT.right]
|
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.right]
|
||||||
cmp ecx,[0xfe00]
|
cmp ecx,[0xfe00]
|
||||||
jnz dbcblimitlset212
|
jnz dbcblimitlset212
|
||||||
mov ecx,[eax+draw_data-0x3000+RECT.bottom]
|
mov ecx,[eax+draw_data-CURRENT_TASK+RECT.bottom]
|
||||||
cmp ecx,[0xfe04]
|
cmp ecx,[0xfe04]
|
||||||
jnz dbcblimitlset212
|
jnz dbcblimitlset212
|
||||||
pop ecx
|
pop ecx
|
||||||
@ -798,7 +798,7 @@ vesa12_putimage:
|
|||||||
mov ebx,3
|
mov ebx,3
|
||||||
div ebx
|
div ebx
|
||||||
add edx,WinMapAddress
|
add edx,WinMapAddress
|
||||||
mov ebx,[0x3000]
|
mov ebx,[CURRENT_TASK]
|
||||||
mov bh,[esp+4*3]
|
mov bh,[esp+4*3]
|
||||||
|
|
||||||
np2412:
|
np2412:
|
||||||
@ -867,7 +867,7 @@ vesa12_putimage:
|
|||||||
sub edx,[0xfe80]
|
sub edx,[0xfe80]
|
||||||
shr edx,2
|
shr edx,2
|
||||||
add edx,WinMapAddress
|
add edx,WinMapAddress
|
||||||
mov ebx,[0x3000]
|
mov ebx,[CURRENT_TASK]
|
||||||
mov bh,[esp+4*3]
|
mov bh,[esp+4*3]
|
||||||
|
|
||||||
np3212:
|
np3212:
|
||||||
|
@ -122,7 +122,7 @@ vesa20_putimage:
|
|||||||
mov [putimg.image_cy], edx
|
mov [putimg.image_cy], edx
|
||||||
|
|
||||||
; calculate absolute (i.e. screen) coordinates
|
; calculate absolute (i.e. screen) coordinates
|
||||||
mov eax, [0x3010]
|
mov eax, [TASK_BASE]
|
||||||
mov ebx, [eax-twdw + WDATA.box.left]
|
mov ebx, [eax-twdw + WDATA.box.left]
|
||||||
add ebx, [putimg.image_cx]
|
add ebx, [putimg.image_cx]
|
||||||
mov [putimg.abs_cx], ebx
|
mov [putimg.abs_cx], ebx
|
||||||
@ -211,7 +211,7 @@ vesa20_putimage:
|
|||||||
xchg eax, ebp
|
xchg eax, ebp
|
||||||
|
|
||||||
; get process number
|
; get process number
|
||||||
mov ebx, [0x3000]
|
mov ebx, [CURRENT_TASK]
|
||||||
|
|
||||||
cmp byte [ScreenBPP], 32
|
cmp byte [ScreenBPP], 32
|
||||||
je put_image_end_32
|
je put_image_end_32
|
||||||
@ -619,7 +619,7 @@ vesa20_drawbar:
|
|||||||
mov [drbar.bar_cx], eax
|
mov [drbar.bar_cx], eax
|
||||||
mov [drbar.bar_cy], ebx
|
mov [drbar.bar_cy], ebx
|
||||||
|
|
||||||
mov edi, [0x3010]
|
mov edi, [TASK_BASE]
|
||||||
add eax, [edi-twdw + WDATA.box.left] ; win_cx
|
add eax, [edi-twdw + WDATA.box.left] ; win_cx
|
||||||
add ebx, [edi-twdw + WDATA.box.top] ; win_cy
|
add ebx, [edi-twdw + WDATA.box.top] ; win_cy
|
||||||
mov [drbar.abs_cx], eax
|
mov [drbar.abs_cx], eax
|
||||||
@ -701,7 +701,7 @@ vesa20_drawbar:
|
|||||||
xchg eax, ebp
|
xchg eax, ebp
|
||||||
|
|
||||||
; get process number
|
; get process number
|
||||||
mov ebx, [0x3000]
|
mov ebx, [CURRENT_TASK]
|
||||||
|
|
||||||
cmp byte [ScreenBPP], 24
|
cmp byte [ScreenBPP], 24
|
||||||
jne draw_bar_end_32
|
jne draw_bar_end_32
|
||||||
|
@ -409,7 +409,7 @@ VGA_draw_bar:
|
|||||||
|
|
||||||
VGA_draw_bar_1:
|
VGA_draw_bar_1:
|
||||||
mov [temp.cx],eax
|
mov [temp.cx],eax
|
||||||
mov eax, [0x3010]
|
mov eax, [TASK_BASE]
|
||||||
add ebx, [eax-twdw + 4]
|
add ebx, [eax-twdw + 4]
|
||||||
mov eax, [eax-twdw + 0]
|
mov eax, [eax-twdw + 0]
|
||||||
add eax, [temp.cx]
|
add eax, [temp.cx]
|
||||||
|
Loading…
Reference in New Issue
Block a user