mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2024-11-25 02:09:36 +03:00
fixed bug in V86-mode handling of IRQ>=8
git-svn-id: svn://kolibrios.org@724 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
9ad47e87ac
commit
6e65ab7c45
@ -21,7 +21,7 @@ novesa db "Display: EGA/CGA",13,10,0
|
||||
s_vesa db "Version of VESA: "
|
||||
.ver db "?.?",13,10,0
|
||||
|
||||
gr_mode db "Select a vedeomode: ",13,10,0
|
||||
gr_mode db "Select a videomode: ",13,10,0
|
||||
;s_bpp db 13,10,186," ƒ«ã¡¨ 梥â : "
|
||||
; .bpp dw "??"
|
||||
; db 13,10,0
|
||||
|
@ -47,7 +47,7 @@ v86_create:
|
||||
; first half (0x800 bytes) is page table for addresses 0 - 0x100000,
|
||||
; second half is for V86-to-linear translation.
|
||||
; Third and fourth are for I/O permission map.
|
||||
push 8000h ;page block less 8Kb are discontinuous
|
||||
push 8000h ; blocks less than 8 pages are discontinuous
|
||||
call kernel_alloc
|
||||
test eax, eax
|
||||
jz .fail2
|
||||
@ -170,7 +170,7 @@ v86_set_page:
|
||||
; esi=handle
|
||||
; out: eax=V86 address, para-aligned (0x10 multiple)
|
||||
; destroys: nothing
|
||||
; ᠭ!!!
|
||||
; ¥¤®¯¨á !!!
|
||||
;v86_alloc:
|
||||
; push ebx ecx edx edi
|
||||
; lea ebx, [esi+V86_machine.mutex]
|
||||
@ -190,7 +190,7 @@ v86_set_page:
|
||||
; add edx, ecx
|
||||
; cmp dword [edx], 0 ; free block?
|
||||
; jnz .n
|
||||
; cmp dword [edx+4],
|
||||
; cmp dword [edx+4],
|
||||
; and [esi+V86_machine.mutex], 0
|
||||
; pop edi edx ecx ebx
|
||||
; ret
|
||||
@ -390,8 +390,8 @@ v86_exc_c:
|
||||
jnz .nogp
|
||||
; Otherwise we can safely access byte at CS:IP
|
||||
; (because it is #GP, not #PF handler)
|
||||
; 嫮 ᪫祭 ⮫쪮 - ⥭ ⮢ ,
|
||||
; 㦥 嫮⠫ 뫮 #GP
|
||||
; …᫨ ¡ë ¬ë ¬®£«¨ áå«®¯®â âì ¨áª«î票¥ ⮫쪮 ¨§-§ çâ¥¨ï ¡ ©â®¢ ª®¤ ,
|
||||
; ¬ë ¡ë ¥£® 㦥 áå«®¯®â «¨ ¨ íâ® ¡ë«® ¡ë ¥ #GP
|
||||
movzx esi, word [esp+v86_regs.cs]
|
||||
shl esi, 4
|
||||
add esi, [esp+v86_regs.eip]
|
||||
@ -798,7 +798,7 @@ v86_irq2:
|
||||
lea eax, [edi+8]
|
||||
cmp al, 10h
|
||||
jb @f
|
||||
add al, 70h-8
|
||||
add al, 60h
|
||||
@@:
|
||||
jmp v86_exc_c.simulate_int
|
||||
.notcurrent:
|
||||
@ -854,7 +854,7 @@ v86_irq2:
|
||||
lea eax, [edi+8]
|
||||
cmp al, 10h
|
||||
jb @f
|
||||
add al, 70h-8
|
||||
add al, 60h
|
||||
@@:
|
||||
mov cx, [eax*4]
|
||||
mov word [esi-v86_regs.size+v86_regs.eip], cx
|
||||
|
Loading…
Reference in New Issue
Block a user