forked from KolibriOS/kolibrios
remove fn 41,42,44,45
git-svn-id: svn://kolibrios.org@2089 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
@@ -1021,7 +1021,6 @@ end if
|
||||
|
||||
jmp osloop
|
||||
|
||||
; jmp $ ; wait here for timer to take control
|
||||
|
||||
; Fly :)
|
||||
|
||||
@@ -1056,8 +1055,8 @@ boot_log:
|
||||
align 32
|
||||
osloop:
|
||||
call [draw_pointer]
|
||||
call window_check_events
|
||||
call mouse_check_events
|
||||
call window_check_events
|
||||
call mouse_check_events
|
||||
call checkmisc
|
||||
call checkVga_N13
|
||||
call stack_handler
|
||||
@@ -1121,58 +1120,31 @@ include "kernel32.inc"
|
||||
|
||||
reserve_irqs_ports:
|
||||
|
||||
push eax
|
||||
xor eax,eax
|
||||
inc eax
|
||||
mov byte [irq_owner+4*0],al ;1 ; timer
|
||||
;mov [irq_owner+4*1], 1 ; keyboard
|
||||
mov byte [irq_owner+4*6],al ;1 ; floppy diskette
|
||||
mov byte [irq_owner+4*13],al ;1 ; math co-pros
|
||||
mov byte [irq_owner+4*14],al ;1 ; ide I
|
||||
mov byte [irq_owner+4*15],al ;1 ; ide II
|
||||
pop eax
|
||||
|
||||
; RESERVE PORTS
|
||||
push 4
|
||||
pop dword [RESERVED_PORTS] ;,edi
|
||||
mov eax, RESERVED_PORTS
|
||||
mov ecx, 1
|
||||
|
||||
push 1
|
||||
pop dword [RESERVED_PORTS+16+0] ;,dword 1
|
||||
and dword [RESERVED_PORTS+16+4],0 ;,dword 0x0
|
||||
mov dword [RESERVED_PORTS+16+8],0x2d ;,dword 0x2d
|
||||
mov [eax], dword 4
|
||||
|
||||
push 1
|
||||
pop dword [RESERVED_PORTS+32+0] ;,dword 1
|
||||
push 0x30
|
||||
pop dword [RESERVED_PORTS+32+4] ;,dword 0x30
|
||||
push 0x4d
|
||||
pop dword [RESERVED_PORTS+32+8] ;,dword 0x4d
|
||||
mov [eax+16], ecx
|
||||
mov [eax+16+4], dword 0
|
||||
mov [eax+16+4], dword 0x2D
|
||||
|
||||
push 1
|
||||
pop dword [RESERVED_PORTS+48+0] ;,dword 1
|
||||
push 0x50
|
||||
pop dword [RESERVED_PORTS+48+4] ;,dword 0x50
|
||||
mov dword [RESERVED_PORTS+48+8],0xdf ;,dword 0xdf
|
||||
mov [eax+32], ecx
|
||||
mov [eax+32+4], dword 0x30
|
||||
mov [eax+32+8], dword 0x4D
|
||||
|
||||
push 1
|
||||
pop dword [RESERVED_PORTS+64+0] ;,dword 1
|
||||
mov [eax+48], ecx
|
||||
mov [eax+48+4], dword 0x50
|
||||
mov [eax+28+8], dword 0xDF
|
||||
|
||||
mov dword [RESERVED_PORTS+64+4],0xe5 ;,dword 0xe5
|
||||
mov dword [RESERVED_PORTS+64+8],0xff ;,dword 0xff
|
||||
mov [eax+64], ecx
|
||||
mov [eax+64+4], dword 0xE5
|
||||
mov [eax+64+8], dword 0xFF
|
||||
|
||||
ret
|
||||
|
||||
setirqreadports:
|
||||
|
||||
mov [irq12read+0],dword 0x60 + 0x01000000 ; read port 0x60 , byte
|
||||
and dword [irq12read+4],0 ; end of port list
|
||||
; mov [irq12read+4],dword 0 ; end of port list
|
||||
;mov [irq04read+0],dword 0x3f8 + 0x01000000 ; read port 0x3f8 , byte
|
||||
;mov [irq04read+4],dword 0 ; end of port list
|
||||
;mov [irq03read+0],dword 0x2f8 + 0x01000000 ; read port 0x2f8 , byte
|
||||
;mov [irq03read+4],dword 0 ; end of port list
|
||||
|
||||
ret
|
||||
|
||||
iglobal
|
||||
process_number dd 0x1
|
||||
@@ -1254,7 +1226,7 @@ sys_outport:
|
||||
mov [esp+32],eax
|
||||
ret
|
||||
|
||||
|
||||
|
||||
.sopl4:
|
||||
|
||||
mov dx,cx ; read
|
||||
@@ -1563,13 +1535,13 @@ cd_base db 0
|
||||
|
||||
endg
|
||||
nsyse4:
|
||||
|
||||
|
||||
sub ebx,2 ; SYSTEM LANGUAGE
|
||||
jnz nsyse5
|
||||
mov [syslang],ecx
|
||||
ret
|
||||
nsyse5:
|
||||
|
||||
|
||||
sub ebx,2 ; HD BASE
|
||||
jnz nsyse7
|
||||
|
||||
@@ -1776,7 +1748,7 @@ ngsyse12:
|
||||
mov [esp+32],dword 1
|
||||
ret
|
||||
|
||||
|
||||
|
||||
get_timer_ticks:
|
||||
mov eax,[timer_ticks]
|
||||
ret
|
||||
@@ -2950,7 +2922,7 @@ sheduler:
|
||||
dd sys_sheduler.03
|
||||
dd sys_sheduler.04
|
||||
endg
|
||||
sys_sheduler:
|
||||
sys_sheduler:
|
||||
;rewritten by <Lrz> 29.12.2009
|
||||
jmp dword [sheduler+ebx*4]
|
||||
;.shed_counter:
|
||||
@@ -2963,7 +2935,7 @@ sys_sheduler:
|
||||
;.perf_control:
|
||||
inc ebx ;before ebx=2, ebx=3
|
||||
cmp ebx,ecx ;if ecx=3, ebx=3
|
||||
jz cache_disable
|
||||
jz cache_disable
|
||||
|
||||
dec ebx ;ebx=2
|
||||
cmp ebx,ecx ;
|
||||
@@ -2979,7 +2951,7 @@ sys_sheduler:
|
||||
|
||||
ret
|
||||
|
||||
.03:
|
||||
.03:
|
||||
;.rdmsr_instr:
|
||||
;now counter in ecx
|
||||
;(edx:eax) esi:edi => edx:esi
|
||||
@@ -3480,103 +3452,6 @@ memmove: ; memory move in bytes
|
||||
|
||||
|
||||
align 4
|
||||
|
||||
sys_programirq:
|
||||
|
||||
mov eax, [TASK_BASE]
|
||||
add ebx, [eax + TASKDATA.mem_start]
|
||||
|
||||
cmp ecx, 16
|
||||
jae .not_owner
|
||||
mov edi, [eax + TASKDATA.pid]
|
||||
cmp edi, [irq_owner + 4 * ecx]
|
||||
je .spril1
|
||||
.not_owner:
|
||||
xor ecx, ecx
|
||||
inc ecx
|
||||
jmp .end
|
||||
.spril1:
|
||||
|
||||
shl ecx, 6
|
||||
mov esi, ebx
|
||||
lea edi, [irq00read + ecx]
|
||||
push 16
|
||||
pop ecx
|
||||
|
||||
cld
|
||||
rep movsd
|
||||
.end:
|
||||
mov [esp+32], ecx
|
||||
ret
|
||||
|
||||
|
||||
align 4
|
||||
|
||||
get_irq_data:
|
||||
movzx esi, bh ; save number of subfunction, if bh = 1, return data size, otherwise, read data
|
||||
xor bh, bh
|
||||
cmp ebx, 16
|
||||
jae .not_owner
|
||||
mov edx, [4 * ebx + irq_owner] ; check for irq owner
|
||||
|
||||
mov eax,[TASK_BASE]
|
||||
|
||||
cmp edx,[eax+TASKDATA.pid]
|
||||
je gidril1
|
||||
.not_owner:
|
||||
xor edx, edx
|
||||
dec edx
|
||||
jmp gid1
|
||||
|
||||
gidril1:
|
||||
|
||||
shl ebx, 12
|
||||
lea eax, [ebx + IRQ_SAVE] ; calculate address of the beginning of buffer + 0x0 - data size
|
||||
mov edx, [eax] ; + 0x4 - data offset
|
||||
dec esi
|
||||
jz gid1
|
||||
test edx, edx ; check if buffer is empty
|
||||
jz gid1
|
||||
|
||||
mov ebx, [eax + 0x4]
|
||||
mov edi, ecx
|
||||
|
||||
mov ecx, 4000 ; buffer size, used frequently
|
||||
|
||||
cmp ebx, ecx ; check for the end of buffer, if end of buffer, begin cycle again
|
||||
jb @f
|
||||
|
||||
xor ebx, ebx
|
||||
|
||||
@@:
|
||||
|
||||
lea esi, [ebx + edx] ; calculate data size and offset
|
||||
cld
|
||||
cmp esi, ecx ; if greater than the buffer size, begin cycle again
|
||||
jbe @f
|
||||
|
||||
sub ecx, ebx
|
||||
sub edx, ecx
|
||||
|
||||
lea esi, [eax + ebx + 0x10]
|
||||
rep movsb
|
||||
|
||||
xor ebx, ebx
|
||||
@@:
|
||||
lea esi, [eax + ebx + 0x10]
|
||||
mov ecx, edx
|
||||
add ebx, edx
|
||||
|
||||
rep movsb
|
||||
mov edx, [eax]
|
||||
mov [eax], ecx ; set data size to zero
|
||||
mov [eax + 0x4], ebx ; set data offset
|
||||
|
||||
gid1:
|
||||
mov [esp+32], edx ; eax
|
||||
ret
|
||||
|
||||
|
||||
set_io_access_rights:
|
||||
push edi eax
|
||||
mov edi, tss._io_map_0
|
||||
@@ -3588,13 +3463,13 @@ set_io_access_rights:
|
||||
; shl ebx,cl
|
||||
test ebp,ebp
|
||||
; cmp ebp,0 ; enable access - ebp = 0
|
||||
jnz siar1
|
||||
jnz .siar1
|
||||
; not ebx
|
||||
; and [edi],byte bl
|
||||
btr [edi], eax
|
||||
pop eax edi
|
||||
ret
|
||||
siar1:
|
||||
.siar1:
|
||||
bts [edi], eax
|
||||
; or [edi],byte bl ; disable access - ebp = 1
|
||||
pop eax edi
|
||||
@@ -3605,7 +3480,7 @@ siar1:
|
||||
; * ecx = number start arrea of ports
|
||||
; * edx = number end arrea of ports (include last number of port)
|
||||
;Return value:
|
||||
; * eax = 0 - succesful
|
||||
; * eax = 0 - succesful
|
||||
; * eax = 1 - error
|
||||
; * The system has reserve this ports:
|
||||
; 0..0x2d, 0x30..0x4d, 0x50..0xdf, 0xe5..0xff (include last number of port).
|
||||
@@ -3749,66 +3624,7 @@ no_mask_io:
|
||||
ret
|
||||
|
||||
|
||||
reserve_free_irq:
|
||||
|
||||
xor esi, esi
|
||||
inc esi
|
||||
cmp ecx, 16
|
||||
jae ril1
|
||||
|
||||
push ecx
|
||||
lea ecx, [irq_owner + 4 * ecx]
|
||||
mov edx, [ecx]
|
||||
mov eax, [TASK_BASE]
|
||||
mov edi, [eax + TASKDATA.pid]
|
||||
pop eax
|
||||
dec ebx
|
||||
jnz reserve_irq
|
||||
|
||||
cmp edx, edi
|
||||
jne ril1
|
||||
dec esi
|
||||
mov [ecx], esi
|
||||
|
||||
jmp ril1
|
||||
|
||||
reserve_irq:
|
||||
|
||||
cmp dword [ecx], 0
|
||||
jne ril1
|
||||
|
||||
mov ebx, [f_irqs + 4 * eax]
|
||||
|
||||
stdcall attach_int_handler, eax, ebx, dword 0
|
||||
|
||||
mov [ecx], edi
|
||||
|
||||
dec esi
|
||||
ril1:
|
||||
mov [esp+32], esi ; return in eax
|
||||
ret
|
||||
|
||||
iglobal
|
||||
f_irqs:
|
||||
dd 0x0
|
||||
dd 0x0
|
||||
dd p_irq2
|
||||
dd p_irq3
|
||||
dd p_irq4
|
||||
dd p_irq5
|
||||
dd p_irq6
|
||||
dd p_irq7
|
||||
dd p_irq8
|
||||
dd p_irq9
|
||||
dd p_irq10
|
||||
dd p_irq11
|
||||
dd 0x0
|
||||
dd 0x0
|
||||
dd 0x0
|
||||
dd 0x0
|
||||
|
||||
endg
|
||||
|
||||
align 4
|
||||
drawbackground:
|
||||
inc [mouse_pause]
|
||||
cmp [SCR_MODE],word 0x12
|
||||
@@ -4820,27 +4636,27 @@ syscall_getarea:
|
||||
dec ebx
|
||||
; eax - x, ebx - y
|
||||
mov edx,ecx
|
||||
|
||||
|
||||
shr ecx,16
|
||||
and edx,0xffff
|
||||
mov esi,ecx
|
||||
; ecx - size x, edx - size y
|
||||
|
||||
|
||||
mov ebp,edx
|
||||
dec ebp
|
||||
lea ebp,[ebp*3]
|
||||
|
||||
|
||||
imul ebp,esi
|
||||
|
||||
|
||||
mov esi,ecx
|
||||
dec esi
|
||||
lea esi,[esi*3]
|
||||
|
||||
|
||||
add ebp,esi
|
||||
add ebp,edi
|
||||
|
||||
add ebx,edx
|
||||
|
||||
|
||||
.start_y:
|
||||
push ecx edx
|
||||
.start_x:
|
||||
@@ -4848,7 +4664,7 @@ syscall_getarea:
|
||||
add eax,ecx
|
||||
|
||||
call dword [GETPIXEL] ; eax - x, ebx - y
|
||||
|
||||
|
||||
mov [ebp],cx
|
||||
shr ecx,16
|
||||
mov [ebp+2],cl
|
||||
@@ -4894,26 +4710,9 @@ syscall_drawline: ; DrawLine
|
||||
mov ecx, edx
|
||||
jmp [draw_line]
|
||||
|
||||
align 4
|
||||
|
||||
syscall_getirqowner: ; GetIrqOwner
|
||||
|
||||
cmp ebx,16
|
||||
jae .err
|
||||
|
||||
cmp [irq_rights + 4 * ebx], dword 2
|
||||
je .err
|
||||
|
||||
mov eax,[4 * ebx + irq_owner]
|
||||
mov [esp+32],eax
|
||||
|
||||
ret
|
||||
.err:
|
||||
or dword [esp+32], -1
|
||||
ret
|
||||
|
||||
align 4
|
||||
|
||||
syscall_reserveportarea: ; ReservePortArea and FreePortArea
|
||||
|
||||
call r_f_port_area
|
||||
@@ -4921,7 +4720,6 @@ syscall_reserveportarea: ; ReservePortArea and FreePortArea
|
||||
ret
|
||||
|
||||
align 4
|
||||
|
||||
syscall_threads: ; CreateThreads
|
||||
; eax=1 create thread
|
||||
;
|
||||
|
Reference in New Issue
Block a user