* 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:
Ivan Poddubny 2005-10-27 12:40:46 +00:00
parent b98147a6a3
commit 905bbcc1fa
4 changed files with 18 additions and 44 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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