forked from KolibriOS/kolibrios
* A bug with esp0 of processes has been fixed.
* Some minor corrections for memmap.inc and others git-svn-id: svn://kolibrios.org@14 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
b98147a6a3
commit
905bbcc1fa
@ -498,7 +498,7 @@ new_start_application_fl:
|
|||||||
mov [l.ss0],os_data
|
mov [l.ss0],os_data
|
||||||
mov ebx,[new_process_place]
|
mov ebx,[new_process_place]
|
||||||
shl ebx,12
|
shl ebx,12
|
||||||
add ebx,sysint_stack_data
|
add ebx,sysint_stack_data+4096
|
||||||
mov [l.esp0],ebx
|
mov [l.esp0],ebx
|
||||||
|
|
||||||
;copy tss to it place
|
;copy tss to it place
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
label next_usage_update dword at 0xB008
|
|
||||||
label timer_ticks dword at 0xFDF0
|
|
||||||
|
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
;; IRQ0 HANDLER (TIMER INTERRUPT) ;;
|
;; IRQ0 HANDLER (TIMER INTERRUPT) ;;
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
@ -73,8 +70,8 @@ irq0:
|
|||||||
shl ebx, 3
|
shl ebx, 3
|
||||||
xor eax, eax
|
xor eax, eax
|
||||||
add ebx, tss0
|
add ebx, tss0
|
||||||
mov word [0xB004], bx ; selector
|
mov word [far_jump.sel], bx ; selector
|
||||||
mov dword [0xB000], eax ; offset
|
mov dword [far_jump.offs], eax ; offset
|
||||||
|
|
||||||
mov al,0x20 ; send End Of Interrupt signal
|
mov al,0x20 ; send End Of Interrupt signal
|
||||||
mov dx,0x20
|
mov dx,0x20
|
||||||
@ -85,7 +82,7 @@ irq0:
|
|||||||
dec byte [0xffff]
|
dec byte [0xffff]
|
||||||
jz @f
|
jz @f
|
||||||
.switch:
|
.switch:
|
||||||
jmp pword [0xB000]
|
jmp pword [far_jump]
|
||||||
inc [context_counter] ;noname & halyavin
|
inc [context_counter] ;noname & halyavin
|
||||||
@@:
|
@@:
|
||||||
|
|
||||||
@ -94,9 +91,13 @@ irq0:
|
|||||||
iret
|
iret
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
uglobal
|
uglobal
|
||||||
context_counter dd 0 ;noname & halyavin
|
far_jump:
|
||||||
|
.offs dd ?
|
||||||
|
.sel dw ?
|
||||||
|
context_counter dd ? ;noname & halyavin
|
||||||
|
next_usage_update dd ?
|
||||||
|
timer_ticks dd ?
|
||||||
endg
|
endg
|
||||||
|
|
||||||
|
|
||||||
|
@ -3277,10 +3277,6 @@ redrawscreen:
|
|||||||
|
|
||||||
cmp ecx,[0x3004]
|
cmp ecx,[0x3004]
|
||||||
jle newdw2
|
jle newdw2
|
||||||
; jg newdw3
|
|
||||||
; jmp newdw2
|
|
||||||
|
|
||||||
; newdw3:
|
|
||||||
|
|
||||||
pop eax
|
pop eax
|
||||||
popad
|
popad
|
||||||
@ -3455,11 +3451,6 @@ no_com1_mouse:
|
|||||||
|
|
||||||
cmp bl,3 ; full packet of three bytes ?
|
cmp bl,3 ; full packet of three bytes ?
|
||||||
jnz decm
|
jnz decm
|
||||||
; jz ps2mouse
|
|
||||||
; jmp decm
|
|
||||||
|
|
||||||
|
|
||||||
; ps2mouse:
|
|
||||||
|
|
||||||
mov [0xfb00],byte 0 ; zero mouse block count
|
mov [0xfb00],byte 0 ; zero mouse block count
|
||||||
|
|
||||||
@ -5372,17 +5363,10 @@ syscall_reserveportarea: ; ReservePortArea and FreePortArea
|
|||||||
mov [esp+36],eax
|
mov [esp+36],eax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
;align 4
|
||||||
|
|
||||||
syscall_appints: ; AppInts
|
syscall_appints: ; AppInts
|
||||||
|
; mov [esp+36],dword -1
|
||||||
test eax,eax
|
|
||||||
jnz unknown_app_int_fn
|
|
||||||
mov edi,[0x3010]
|
|
||||||
mov [edi+draw_data-0x3000+0x1c],ebx
|
|
||||||
ret
|
|
||||||
unknown_app_int_fn:
|
|
||||||
mov [esp+36],dword -1
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
align 4
|
align 4
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
;
|
;
|
||||||
; Runtime:
|
; Runtime:
|
||||||
;
|
;
|
||||||
; 0000 -> 2FFF window_data - 256 entries
|
; 0000 -> 1FFF window_data - 256 entries
|
||||||
;
|
;
|
||||||
; 0000 dword x start
|
; 0000 dword x start
|
||||||
; 0004 dword y start
|
; 0004 dword y start
|
||||||
@ -32,6 +32,8 @@
|
|||||||
; 0018 dword color of frames
|
; 0018 dword color of frames
|
||||||
; 001C dword window flags, +30 = window drawn, +31 redraw flag
|
; 001C dword window flags, +30 = window drawn, +31 redraw flag
|
||||||
;
|
;
|
||||||
|
; 2000 -> 2FFF free
|
||||||
|
;
|
||||||
; 3000 -> 4FFF task list - 256 entries
|
; 3000 -> 4FFF task list - 256 entries
|
||||||
;
|
;
|
||||||
; 00 dword process count
|
; 00 dword process count
|
||||||
@ -56,12 +58,7 @@
|
|||||||
;
|
;
|
||||||
; 8000 -> A3FF used FLOPPY driver
|
; 8000 -> A3FF used FLOPPY driver
|
||||||
;
|
;
|
||||||
; A400 -> AFFF free
|
; A400 -> B0FF free
|
||||||
;
|
|
||||||
; B000 -> B005 jump address for irq0 (task switch)
|
|
||||||
; B008 -> B00B count of ticks remaining to updating CPU usage info
|
|
||||||
|
|
||||||
; B060 -> B0FF free
|
|
||||||
|
|
||||||
; B100 -> B2FF IDT
|
; B100 -> B2FF IDT
|
||||||
|
|
||||||
@ -73,16 +70,9 @@
|
|||||||
; D200 -> D3FF FDC controller for Fat12
|
; D200 -> D3FF FDC controller for Fat12
|
||||||
; D400 -> DFFF free
|
; D400 -> DFFF free
|
||||||
; E000 byte multitasking started
|
; E000 byte multitasking started
|
||||||
; E004 dword save for boot mem 0x24
|
|
||||||
; E010 dword pm bank switch address
|
|
||||||
; E014 dword window multiplier
|
|
||||||
; E020 dword putpixel address
|
; E020 dword putpixel address
|
||||||
; E024 dword getpixel address
|
; E024 dword getpixel address
|
||||||
; E030 dword Vesa 1.2 pm bank switch address
|
; E030 dword Vesa 1.2 pm bank switch address
|
||||||
; F000 dword hd partition 1 start
|
|
||||||
; F004 dword root start at partition 1
|
|
||||||
; F008 dword root start at hd
|
|
||||||
; F100 byte 1=only os draw on screen
|
|
||||||
; F200 dword mousepicture -pointer
|
; F200 dword mousepicture -pointer
|
||||||
; F204 dword mouse appearance counter
|
; F204 dword mouse appearance counter
|
||||||
; F300 dword x & y temp for windowmove
|
; F300 dword x & y temp for windowmove
|
||||||
@ -103,11 +93,9 @@
|
|||||||
; FB40 byte buttons down
|
; FB40 byte buttons down
|
||||||
; FB44 byte 0 mouse down -> do not draw
|
; FB44 byte 0 mouse down -> do not draw
|
||||||
; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under
|
; FB4A -> FB4D FB4A-B x-under - FB4C-D y-under
|
||||||
; FBF0 byte multiplied window
|
|
||||||
; FBF1 byte bits per pixel
|
; FBF1 byte bits per pixel
|
||||||
; FC00 -> FCFE com1/ps2 buffer
|
; FC00 -> FCFE com1/ps2 buffer
|
||||||
; FCFF com1/ps2 buffer count starting from FC00
|
; FCFF com1/ps2 buffer count starting from FC00
|
||||||
; FDF0 -> FDF3 timer tick inc every 1/100 sec 4 bytes
|
|
||||||
; FE00 dword screen x size
|
; FE00 dword screen x size
|
||||||
; FE04 dword screen y size
|
; FE04 dword screen y size
|
||||||
; FE08 dword screen y multiplier
|
; FE08 dword screen y multiplier
|
||||||
@ -211,7 +199,8 @@
|
|||||||
; 04 dword draw limit - y start
|
; 04 dword draw limit - y start
|
||||||
; 08 dword draw limit - x end
|
; 08 dword draw limit - x end
|
||||||
; 0C dword draw limit - y end
|
; 0C dword draw limit - y end
|
||||||
; 1C dword app int vector
|
;
|
||||||
|
; C02000 -> C02fff free (4 Kb)
|
||||||
;
|
;
|
||||||
; C03000 -> D02fff sysint_stack_data
|
; C03000 -> D02fff sysint_stack_data
|
||||||
; - ring0 stacks for ring3 processes
|
; - ring0 stacks for ring3 processes
|
||||||
|
Loading…
Reference in New Issue
Block a user