Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 214 → Rev 221

/kernel/trunk/core/dll.inc
946,11 → 946,13
 
drv_sound db '/rd/1/drivers/unisound.obj', 0
drv_infinity db '/rd/1/drivers/infinity.obj', 0
drv_ati2d db '/rd/1/drivers/ati2d.obj', 0
;drv_ati2d db '/rd/1/drivers/vesa.obj', 0
;drv_cursor db '/rd/1/drivers/vesa.obj',0
 
szSound db 'SOUND',0
szInfinity db 'INFINITY',0
szHMouse db 'ATI2D',0
;szHMouse db 'ATI2D',0
;szCURSOR db 'VESACURSOR',0
 
szSTART db 'START',0
szEXPORTS db 'EXPORTS',0
962,10 → 964,12
 
align 4
set_hw_cursor dd 0
hw_restore dd 0
 
align 16
services:
dd szSound, drv_sound
dd szInfinity, drv_infinity
dd szHMouse, drv_ati2d
; dd szHMouse, drv_ati2d
; dd szCURSOR, drv_cursor
dd 0
/kernel/trunk/core/exports.inc
1,5 → 1,28
 
iglobal
szKernel db 'KERNEL', 0
szAttachIntHandler db 'AttachIntHandler',0
szSysMsgBoardStr db 'SysMsgBoardStr', 0
szPciApi db 'PciApi', 0
szPciRead32 db 'PciRead32', 0
szPciRead8 db 'PciRead8', 0
szPciWrite8 db 'PciWrite8',0
szAllocKernelSpace db 'AllocKernelSpace',0
szMapPage db 'MapPage',0
szRegService db 'RegService',0
szKernelAlloc db 'KernelAlloc',0
szKernelFree db 'KernelFree',0
szGetPgAddr db 'GetPgAddr',0
szGetCurrentTask db 'GetCurrentTask',0
szGetService db 'GetService',0
szServiceHandler db 'ServiceHandler',0
szFpuSave db 'FpuSave',0
szFpuRestore db 'FpuRestore',0
szLoadCursor db 'LoadCursor',0
szSetHwCursor db 'SetHwCursor',0
szHWRestore db 'HWRestore', 0
szLFBAddress db 'LFBAddress',0
szLoadFile db 'LoadFile',0
 
align 16
kernel_export:
20,33 → 43,14
dd szServiceHandler , srv_handler
dd szFpuSave , fpu_save
dd szFpuRestore , fpu_restore
dd szLoadCursor , load_cursor
dd szSetHwCursor , set_hw_cursor
dd szHWRestore , hw_restore
dd szLoadFile , load_file
exp_lfb:
dd szLFBAddress , 0
dd 0
 
szKernel db 'KERNEL', 0
szAttachIntHandler db 'AttachIntHandler',0
szSysMsgBoardStr db 'SysMsgBoardStr', 0
szPciApi db 'PciApi', 0
szPciRead32 db 'PciRead32', 0
szPciRead8 db 'PciRead8', 0
szPciWrite8 db 'PciWrite8',0
szAllocKernelSpace db 'AllocKernelSpace',0
szMapPage db 'MapPage',0
szRegService db 'RegService',0
szKernelAlloc db 'KernelAlloc',0
szKernelFree db 'KernelFree',0
szGetPgAddr db 'GetPgAddr',0
szGetCurrentTask db 'GetCurrentTask',0
szGetService db 'GetService',0
szServiceHandler db 'ServiceHandler',0
szFpuSave db 'FpuSave',0
szFpuRestore db 'FpuRestore',0
szSetHwCursor db 'SetHwCursor',0
szLFBAddress db 'LFBAddress',0
szLoadFile db 'LoadFile',0
 
endg
 
/kernel/trunk/core/fpu.inc
3,8 → 3,8
clts
fninit
 
bt [cpu_caps], CAPS_FXSR
jnc .no_FXSR
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
stdcall kernel_alloc, 512*256
mov [fpu_data], eax
31,7 → 31,7
xorps xmm7, xmm7
fxsave [eax]
ret
.no_FXSR:
.no_SSE:
stdcall kernel_alloc, 112*256
mov [fpu_data], eax
mov ecx, cr0
50,7 → 50,7
mov ebx, [CURRENT_TASK]
mov [fpu_owner], ebx
 
bt [cpu_caps], CAPS_FXSR
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
fxsave [eax]
66,7 → 66,7
mov ebx, [CURRENT_TASK]
shl ebx, 8
mov eax, [ebx+PROC_BASE+0x10]
bt [cpu_caps], CAPS_FXSR
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
fxrstor [eax]
91,7 → 91,7
 
shl ebx, 8
mov eax, [ebx+PROC_BASE+APPDATA.fpu_state]
bt [cpu_caps], CAPS_FXSR
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
fxsave [eax]
/kernel/trunk/core/memory.inc
1053,7 → 1053,7
pop eax
xor eax, ecx
mov [cpu_type], CPU_386
jz .end_cpu
jz .end_cpuid
push ecx
popfd
 
1065,7 → 1065,7
pushfd
pop eax
xor eax, ecx
je .end_cpu
je .end_cpuid
mov [cpu_id], 1
 
xor eax, eax
1091,9 → 1091,7
 
shr eax, 8
and eax, 0x0f
mov [cpu_type], eax
ret
 
.end_cpuid:
mov eax, [cpu_type]
ret
1100,14 → 1098,14
 
.check_AMD:
cmp ebx, dword [AMD_str]
jne .end_cpu
jne .unknown
cmp edx, dword [AMD_str+4]
jne .end_cpu
jne .unknown
cmp ecx, dword [AMD_str+8]
jne .end_cpu
jne .unknown
mov [cpu_AMD], 1
cmp eax, 1
jl .end_cpuid
jl .unknown
mov eax, 1
cpuid
mov [cpu_sign], eax
1116,10 → 1114,17
mov [cpu_caps+4],ecx
shr eax, 8
and eax, 0x0f
mov [cpu_type], eax
.end_cpu:
mov eax, [cpu_type]
ret
.unknown:
mov eax, 1
cpuid
mov [cpu_sign], eax
mov [cpu_info], ebx
mov [cpu_caps], edx
mov [cpu_caps+4],ecx
shr eax, 8
and eax, 0x0f
ret
endp
 
MEM_WB equ 6 ;write-back memory
1263,6 → 1268,27
cpu_sign rd 1
cpu_info rd 1
 
;;;;; cursors data
 
align 16
cur_saved_data rb 4096
 
cursors rb CURSOR_SIZE*64
cursor_map rd 2
cursor_start rd 1
cursor_end rd 1
 
def_cursor rd 1
 
scr_width rd 1
scr_height rd 1
 
cur_def_interl rd 1
cur_saved_base rd 1
cur_saved_interl rd 1
cur_saved_w rd 1
cur_saved_h rd 1
 
endg
 
uglobal
/kernel/trunk/core/sys32.inc
100,7 → 100,7
dd except_16, e17,e18, except_19
times 12 dd unknown_interrupt
 
dd irq0 , irq_serv.irq_1, p_irq2 ,irq_serv.irq_3
dd irq0 , irq_serv.irq_1, p_irq2 , p_irq3 ;irq_serv.irq_3
dd p_irq4 ,irq_serv.irq_5,p_irq6,irq_serv.irq_7
dd irq_serv.irq_8, irq_serv.irq_9, irq_serv.irq_10
dd irq_serv.irq_11,p_irq12,irqD ,p_irq14,p_irq15
638,7 → 638,7
 
mov [fpu_owner],1
mov eax, [256+PROC_BASE+0x10]
bt [cpu_caps], CAPS_FXSR
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
fxrstor [eax]
jmp fpu_ok_1
/kernel/trunk/core/taskman.inc
606,7 → 606,7
 
mov edi, [slot]
mov esi, [fpu_data]
bt [cpu_caps], CAPS_FXSR
bt [cpu_caps], CAPS_SSE
jnc .no_SSE
 
shl edi, 8
639,8 → 639,11
.noinc:
shl ebx,8
mov eax,[app_mem]
mov [PROC_BASE+0x8c+ebx],eax
mov [PROC_BASE+APPDATA.mem_size+ebx],eax
 
mov ecx, [def_cursor]
mov [PROC_BASE+APPDATA.cursor+ebx],ecx
 
shr ebx,3
mov eax, new_app_base
mov dword [CURRENT_TASK+ebx+0x10],eax