From Ghost: calls to PCIBIOS services
git-svn-id: svn://kolibrios.org@586 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
93e2c279ba
commit
a4f10b7565
@ -1,23 +1,25 @@
|
||||
$Revision$
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; ;;
|
||||
;; ;;
|
||||
;; Copyright (C) KolibriOS team 2004-2007. All rights reserved. ;;
|
||||
;; Distributed under terms of the GNU General Public License ;;
|
||||
;; ;;
|
||||
;; ;;
|
||||
;; PCI32.INC ;;
|
||||
;; ;;
|
||||
;; 32 bit PCI driver code ;;
|
||||
;; ;;
|
||||
;; Version 0.2 December 21st, 2002 ;;
|
||||
;; ;;
|
||||
;; Author: Victor Prodan, victorprodan@yahoo.com ;;
|
||||
;; Credits: ;;
|
||||
;; Ralf Brown ;;
|
||||
;; Mike Hibbett, mikeh@oceanfree.net ;;
|
||||
;; ;;
|
||||
;; See file COPYING for details ;;
|
||||
;; ;;
|
||||
;; PCI32.INC ;;
|
||||
;; ;;
|
||||
;; 32 bit PCI driver code ;;
|
||||
;; ;;
|
||||
;; Version 0.3 April 9, 2007 ;;
|
||||
;; Version 0.2 December 21st, 2002 ;;
|
||||
;; ;;
|
||||
;; Author: Victor Prodan, victorprodan@yahoo.com ;;
|
||||
;; Mihailov Ilia, ghost.nsk@gmail.com ;;
|
||||
;; Credits: ;;
|
||||
;; Ralf Brown ;;
|
||||
;; Mike Hibbett, mikeh@oceanfree.net ;;
|
||||
;; ;;
|
||||
;; See file COPYING for details ;;
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
|
||||
@ -108,6 +110,7 @@ pci_make_config_cmd:
|
||||
; read a register from the PCI config space into EAX/AX/AL
|
||||
; IN: ah=bus,device+func=bh,register address=bl
|
||||
; number of bytes to read (1,2,4) coded into AL, bits 0-1
|
||||
; (0 - byte, 1 - word, 2 - dword)
|
||||
;***************************************************************************
|
||||
|
||||
align 4
|
||||
@ -238,6 +241,7 @@ pci_read_reg_err:
|
||||
; IN: ah=bus,device+func=bh,register address (dword aligned)=bl,
|
||||
; value to write in ecx
|
||||
; number of bytes to write (1,2,4) coded into AL, bits 0-1
|
||||
; (0 - byte, 1 - word, 2 - dword)
|
||||
;***************************************************************************
|
||||
|
||||
align 4
|
||||
@ -361,3 +365,118 @@ pci_write_reg_err:
|
||||
xor eax,eax
|
||||
dec eax
|
||||
ret
|
||||
|
||||
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
; VendID (2), DevID (2), Revision = 0 (1), Class Code (3), FNum (1), Bus (1)
|
||||
pci_emu_dat: times 30*10 db 0
|
||||
|
||||
;-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
align 4
|
||||
sys_pcibios:
|
||||
cmp [pci_access_enabled], 1
|
||||
jne .unsupported_func
|
||||
mov edi, [pci_bios_entry]
|
||||
test edi, edi
|
||||
jz .emulate_bios
|
||||
xchg ebx, eax
|
||||
xchg ecx, eax
|
||||
xchg edx, eax
|
||||
xchg esi, eax
|
||||
mov edi, eax
|
||||
|
||||
push ds
|
||||
mov ax, pci_data_sel
|
||||
mov ds, ax
|
||||
mov eax, ebp
|
||||
call pword [cs:pci_bios_entry]
|
||||
pop ds
|
||||
|
||||
jmp .return
|
||||
;-=-=-=-=-=-=-=-=
|
||||
.emulate_bios:
|
||||
cmp ebp, 1 ; PCI_FUNCTION_ID
|
||||
jnz .not_PCI_BIOS_PRESENT
|
||||
mov edx, 'PCI '
|
||||
xor ah, ah
|
||||
mov al, [OS_BASE+0x2F0000 + 0x9020]
|
||||
mov bx, [OS_BASE+0x2F0000 + 0x9022]
|
||||
mov cl, [OS_BASE+0x2F0000 + 0x9021]
|
||||
jmp .return
|
||||
|
||||
.not_PCI_BIOS_PRESENT:
|
||||
cmp ebp, 2 ; FIND_PCI_DEVICE
|
||||
jne .not_FIND_PCI_DEVICE
|
||||
mov esi, pci_emu_dat
|
||||
..nxt: cmp [esi], cx
|
||||
jne ..no
|
||||
cmp [esi + 2], bx
|
||||
jne ..no
|
||||
dec dx
|
||||
jns ..no
|
||||
mov bx, [esi + 4]
|
||||
xor ah, ah
|
||||
jmp .return
|
||||
..no: cmp word[esi], 0
|
||||
je ..dev_not_found
|
||||
add esi, 10
|
||||
jmp ..nxt
|
||||
..dev_not_found:
|
||||
mov ah, 0x86 ; DEVICE_NOT_FOUND
|
||||
jmp .return
|
||||
|
||||
.not_FIND_PCI_DEVICE:
|
||||
cmp ebp, 3 ; FIND_PCI_CLASS_CODE
|
||||
jne .not_FIND_PCI_CLASS_CODE
|
||||
mov esi, pci_emu_dat
|
||||
shl ebx, 8
|
||||
..nxt2: cmp [esi], ebx
|
||||
jne ..no2
|
||||
mov bx, [esi]
|
||||
xor ah, ah
|
||||
jmp .return
|
||||
..no2: cmp dword[esi], 0
|
||||
je ..dev_not_found2
|
||||
add esi, 10
|
||||
jmp ..nxt2
|
||||
..dev_not_found2:
|
||||
mov ah, 0x86 ; DEVICE_NOT_FOUND
|
||||
jmp .return
|
||||
|
||||
.not_FIND_PCI_CLASS_CODE:
|
||||
cmp ebp, 8 ; READ_CONFIG_*
|
||||
jb .not_READ_CONFIG
|
||||
cmp ebp, 0x0A
|
||||
ja .not_READ_CONFIG
|
||||
mov ebx, esi
|
||||
mov bh, al
|
||||
mov edx, ebp
|
||||
mov al, dl
|
||||
call pci_read_reg
|
||||
mov ecx, eax
|
||||
xor ah, ah ; SUCCESSFUL
|
||||
jmp .return
|
||||
.not_READ_CONFIG:
|
||||
cmp ebp, 0x0B ; WRITE_CONFIG_*
|
||||
jb .not_WRITE_CONFIG
|
||||
cmp ebp, 0x0D
|
||||
ja .not_WRITE_CONFIG
|
||||
mov ecx, ebx
|
||||
mov ebx, esi
|
||||
mov bh, al
|
||||
mov edx, ebp
|
||||
inc edx
|
||||
mov al, dl
|
||||
call pci_write_reg
|
||||
xor ah, ah ; SUCCESSFUL
|
||||
jmp .return
|
||||
.not_WRITE_CONFIG:
|
||||
.unsupported_func:
|
||||
mov ah, 0x81 ; FUNC_NOT_SUPPORTED
|
||||
.return:mov dword[esp + 8 ], edi
|
||||
mov dword[esp + 12], esi
|
||||
mov dword[esp + 24], ebx
|
||||
mov dword[esp + 28], edx
|
||||
mov dword[esp + 32], ecx
|
||||
mov dword[esp + 36], eax
|
||||
ret
|
||||
|
@ -6,6 +6,7 @@ $Revision$
|
||||
;; ;;
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
dpl0 equ 10010000b ; data read dpl0
|
||||
drw0 equ 10010010b ; data read/write dpl0
|
||||
drw3 equ 11110010b ; data read/write dpl3
|
||||
cpl0 equ 10011010b ; code read dpl0
|
||||
|
@ -196,7 +196,7 @@ iglobal
|
||||
dd user_events ; 54-User events
|
||||
dd sound_interface ; 55-Sound interface
|
||||
dd undefined_syscall ; 56-reserved
|
||||
dd undefined_syscall ; 57-reserved
|
||||
dd sys_pcibios ; 57-reserved
|
||||
dd file_system ; 58-Common file system interface
|
||||
dd undefined_syscall ; 59-reserved
|
||||
dd sys_IPC ; 60-Inter Process Communication
|
||||
|
@ -4,10 +4,10 @@ $Revision$
|
||||
flm db 0
|
||||
preboot_lfb db 0
|
||||
preboot_bootlog db 0
|
||||
|
||||
bx_from_load: dw 'r1' ; структура для хранения параметров- откуда гашрузились, берется ниже из bx ; {SPraid}[13.03.2007]
|
||||
; a,b,c,d - винчестеры, r - рам диск
|
||||
; # диска... символ, а не байт. '1', а не 1
|
||||
boot_drive db 0
|
||||
bx_from_load: dw 'r1' ; структура для хранения параметров- откуда гашрузились, берется ниже из bx ; {SPraid}[13.03.2007]
|
||||
; a,b,c,d - винчестеры, r - рам диск
|
||||
; # диска... символ, а не байт. '1', а не 1
|
||||
|
||||
align 4
|
||||
old_ints_h:
|
||||
|
@ -117,6 +117,8 @@ syslang dd 1
|
||||
|
||||
boot_y dd 10
|
||||
|
||||
pci_bios_entry dd 0
|
||||
dw pci_code_sel
|
||||
|
||||
if __DEBUG__ eq 1
|
||||
include_debug_strings
|
||||
@ -164,6 +166,24 @@ app_data_l:
|
||||
db drw3
|
||||
dw G32+D32+(new_app_base shr 16)+0xF;
|
||||
|
||||
; ------------- PCI BIOS ------------------
|
||||
|
||||
pci_code_32:
|
||||
dw 0 ;lim 0-15
|
||||
dw 0 ;base 0-15
|
||||
db 0 ;base 16-23
|
||||
db cpl0 ;type
|
||||
db D32 ;lim 16-19+props
|
||||
db 0 ;base 24-31
|
||||
|
||||
pci_data_32:
|
||||
dw 0 ;lim 0-15
|
||||
dw 0 ;base 0-15
|
||||
db 0 ;base 16-23
|
||||
db dpl0 ;type
|
||||
db D32 ;lim 16-19+props
|
||||
db 0 ;base 24-31
|
||||
|
||||
; --------------- APM ---------------------
|
||||
apm_code_32:
|
||||
dw 0x0f ; limit 64kb
|
||||
|
@ -41,7 +41,7 @@
|
||||
* esi = 0xXYRRGGBB - 梥⠧ £®«®¢ª
|
||||
* RR, GG, BB ®¯à¥¤¥«ïîâ á ¬ 梥â
|
||||
* Y=0 - ®¡ë箥 ®ª®, Y=1 - ¥¯¥à¥¬¥é ¥¬®¥ ®ª®
|
||||
* X ®¯à¥¤¥«ï¥â £à ¤¨¥â § £®«®¢ª : X=0 - ¥â £à ¤¨¥â ,
|
||||
* X ®¯à¥¤¥«ï¥â £à ¤¨¥â § £®«®¢ª : X=0 - ¥â £à ¤¨¥â ,
|
||||
X=8 - ®¡ëçë© £à ¤¨¥â,
|
||||
¤«ï ®ª® ⨯ II X=4 - ¥£ â¨¢ë© £à ¤¨¥â
|
||||
* ¯à®ç¨¥ § 票ï X ¨ Y § १¥à¢¨à®¢ ë
|
||||
@ -67,7 +67,7 @@
|
||||
ª®®à¤¨ â (¨«¨, ¢®§¬®¦®, ®¡¥) áç¨â ¥âáï ã«¥¬, ¥á«¨ ¨ íâ®
|
||||
¥ ¯®¬®£ ¥â, ⮠ᮮ⢥âáâ¢ãî騩 à §¬¥à (¨«¨, ¢®§¬®¦®, ®¡ )
|
||||
ãáâ ¢«¨¢ ¥âáï ¢ à §¬¥à íªà .
|
||||
|
||||
|
||||
„ «¥¥ ®¡®§ 稬 xpos,ypos,xsize,ysize - § 票ï, ¯¥à¥¤ ¢ ¥¬ë¥
|
||||
¢ ebx,ecx. Š®®à¤¨ âë ¯à¨¢®¤ïâáï ®â®á¨â¥«ì® «¥¢®£® ¢¥à奣®
|
||||
㣫 ®ª , ª®â®àë©, â ª¨¬ ®¡à §®¬, § ¤ ¥âáï ª ª (0,0), ª®®à¤¨ âë
|
||||
@ -675,7 +675,7 @@
|
||||
* “§ âì, ª ª®¥ ®ª® ï¥âáï ªâ¨¢ë¬, ¬®¦® ¢ë§®¢®¬ ¯®¤äãªæ¨¨ 7.
|
||||
|
||||
======================================================================
|
||||
”ãªæ¨ï 18, ¯®¤äãªæ¨ï 4 - ¯®«ãç¨âì áçñâ稪 ¯ãáâëå ⠪⮢ ¢ ᥪã¤ã.
|
||||
”ãªæ¨ï 18, ¯®¤äãªæ¨ï 4 - ¯®«ãç¨âì áçñâ稪 ¯ãáâëå ⠪⮢ ¢ ᥪã¤ã.
|
||||
======================================================================
|
||||
<EFBFBD>®¤ ¯ãáâ묨 ⠪⠬¨ ¯®¨¬ ¥âáï ¢à¥¬ï, ¢ ª®â®à®¥ ¯à®æ¥áá®à ¯à®áâ ¨¢ ¥â
|
||||
¢ ®¦¨¤ ¨¨ ¯à¥àë¢ ¨ï (¢ ¨áâàãªæ¨¨ hlt).
|
||||
@ -696,7 +696,7 @@
|
||||
* eax = ⠪⮢ ï ç áâ®â (¯® ¬®¤ã«î 2^32 ⠪⮢ = 4ƒƒæ)
|
||||
|
||||
======================================================================
|
||||
”ãªæ¨ï 18, ¯®¤äãªæ¨ï 6 - á®åà ¨âì à ¬¤¨áª ¢ ä ©« ¦ñá⪮¬ ¤¨áª¥.
|
||||
”ãªæ¨ï 18, ¯®¤äãªæ¨ï 6 - á®åà ¨âì à ¬¤¨áª ¢ ä ©« ¦ñá⪮¬ ¤¨áª¥.
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 18 - ®¬¥à äãªæ¨¨
|
||||
@ -786,7 +786,7 @@
|
||||
‡ ¬¥ç ¨ï:
|
||||
* Œ¨¨¬¨§¨à®¢ ®¥ ®ª® á â®çª¨ §à¥¨ï äãªæ¨¨ 9 á®åà ï¥â ¯®«®¦¥¨¥
|
||||
¨ à §¬¥àë.
|
||||
* ‚®ááâ ®¢«¥¨¥ ®ª ¯à¨«®¦¥¨ï ¯à®¨á室¨â ¯à¨ ªâ¨¢¨§¨à®¢ ¨¨
|
||||
* ‚®ááâ ®¢«¥¨¥ ®ª ¯à¨«®¦¥¨ï ¯à®¨á室¨â ¯à¨ ªâ¨¢¨§¨à®¢ ¨¨
|
||||
¯®¤äãªæ¨¥© 3.
|
||||
* Ž¡ëç® ¥â ¥®¡å®¤¨¬®á⨠ ᢮à 稢 âì/à §¢®à 稢 âì ᢮ñ ®ª®:
|
||||
᢮à 稢 ¨¥ ®ª ®áãé¥á⢫ï¥âáï á¨á⥬®© ¯à¨ ¦ ⨨ ª®¯ªã
|
||||
@ -1039,7 +1039,7 @@ dd 533
|
||||
* eax = 0 - ãᯥè®
|
||||
* eax = 1 - ¥ ®¯à¥¤¥«ñ ¡ §®¢ë© ¯®àâ
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ®¯à¥¤¥«ñ ¡ §®¢ë© ¯®à⠢맮¢®¬
|
||||
* <20>।¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ®¯à¥¤¥«ñ ¡ §®¢ë© ¯®à⠢맮¢®¬
|
||||
¯®¤äãªæ¨¨ 1 äãªæ¨¨ 21.
|
||||
|
||||
======================================================================
|
||||
@ -1055,7 +1055,7 @@ dd 533
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>®¬¥à ¯®àâ ¤®«¦¥ 㤮¢«¥â¢®àïâì ãá«®¢¨ï¬ 0x100<=ecx<=0xFFFF.
|
||||
* “áâ ®¢ª ¡ §ë 㦠¤«ï à ¡®âë äãªæ¨¨ 20.
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ë© ¡ §®¢ë© ¯®àâ ¬®¦® ¢ë§®¢®¬
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ë© ¡ §®¢ë© ¯®àâ ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 1 äãªæ¨¨ 26.
|
||||
|
||||
======================================================================
|
||||
@ -1085,7 +1085,7 @@ dd 533
|
||||
®à¬ «ì ï à ᪫ ¤ª , ¯®á«¥ 祣® ¨§ ª®¤ ¢ëç¨â ¥âáï 0x60;
|
||||
¥á«¨ ¥ ¦ â ¨ ®¤ ¨§ ã¯à ¢«ïîé¨å ª« ¢¨è, â® ¨á¯®«ì§ã¥âáï
|
||||
®à¬ «ì ï à ᪫ ¤ª .
|
||||
* <20>®«ãç¨âì à ᪫ ¤ª¨ ¨ ¨¤¥â¨ä¨ª â®à áâà ë ¬®¦® á ¯®¬®éìî
|
||||
* <20>®«ãç¨âì à ᪫ ¤ª¨ ¨ ¨¤¥â¨ä¨ª â®à áâà ë ¬®¦® á ¯®¬®éìî
|
||||
¯®¤äãªæ¨¨ 2 äãªæ¨¨ 26.
|
||||
* ˆ¤¥â¨ä¨ª â®à áâà ë - £«®¡ «ì ï á¨á⥬ ï ¯¥à¥¬¥ ï, ª®â®à ï
|
||||
á ¬¨¬ ï¤à®¬ ¥ ¨á¯®«ì§ã¥âáï; ®¤ ª® ¯à¨«®¦¥¨¥ @panel ®â®¡à ¦ ¥â
|
||||
@ -1103,7 +1103,7 @@ dd 533
|
||||
* eax = 0
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20> § CD ¨á¯®«ì§ã¥âáï äãªæ¨¥© 24.
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ãî ¡ §ã CD ¬®¦® ¢ë§®¢®¬
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ãî ¡ §ã CD ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 3 äãªæ¨¨ 26.
|
||||
|
||||
======================================================================
|
||||
@ -1119,7 +1119,7 @@ dd 533
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>®¬¥à ¯®àâ ¤®«¦¥ 㤮¢«¥â¢®àïâì ãá«®¢¨ï¬ 0x100<=ecx<=0xFFFF.
|
||||
* “áâ ®¢ª ¡ §ë 㦠¤«ï à ¡®âë äãªæ¨© 25, 28, 55.
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ë© ¡ §®¢ë© ¯®àâ ¬®¦® ¢ë§®¢®¬
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ë© ¡ §®¢ë© ¯®àâ ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 4 äãªæ¨¨ 26.
|
||||
|
||||
======================================================================
|
||||
@ -1157,7 +1157,7 @@ dd 533
|
||||
* <20>¥ á«¥¤ã¥â ¨§¬¥ïâì ¡ §ã, ª®£¤ ª ª®¥-¨¡ã¤ì ¯à¨«®¦¥¨¥ à ¡®â ¥â
|
||||
á ¦ñá⪨¬ ¤¨áª®¬. …᫨ ¥ å®â¨â¥ £«îª®¢ á¨á⥬ë.
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ãî ¡ §ã ¬®¦® ¢ë§®¢®¬ ¯®¤äãªæ¨¨ 7 äãªæ¨¨ 26.
|
||||
* ‘«¥¤ã¥â â ª¦¥ ®¯à¥¤¥«¨âì ¨á¯®«ì§ã¥¬ë© à §¤¥« ¦ñá⪮£® ¤¨áª
|
||||
* ‘«¥¤ã¥â â ª¦¥ ®¯à¥¤¥«¨âì ¨á¯®«ì§ã¥¬ë© à §¤¥« ¦ñá⪮£® ¤¨áª
|
||||
¯®¤äãªæ¨¥© 8.
|
||||
|
||||
======================================================================
|
||||
@ -1180,9 +1180,9 @@ dd 533
|
||||
* <20>®«ãç¨âì ãáâ ®¢«¥ë© à §¤¥« ¬®¦® ¢ë§®¢®¬ ¯®¤äãªæ¨¨ 8
|
||||
äãªæ¨¨ 26.
|
||||
* <20>஢¥à®ª ª®à४â®áâì ¥ ¤¥« ¥âáï.
|
||||
* “§ âì ç¨á«® à §¤¥«®¢ ¦ñá⪮¬ ¤¨áª¥ ¬®¦® ¢ë§®¢®¬
|
||||
* “§ âì ç¨á«® à §¤¥«®¢ ¦ñá⪮¬ ¤¨áª¥ ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 11 äãªæ¨¨ 18.
|
||||
* ‘«¥¤ã¥â â ª¦¥ ®¯à¥¤¥«¨âì ¨á¯®«ì§ã¥¬ãî ¡ §ã ¦ñá⪮£® ¤¨áª
|
||||
* ‘«¥¤ã¥â â ª¦¥ ®¯à¥¤¥«¨âì ¨á¯®«ì§ã¥¬ãî ¡ §ã ¦ñá⪮£® ¤¨áª
|
||||
¯®¤äãªæ¨¥© 7.
|
||||
|
||||
======================================================================
|
||||
@ -1198,7 +1198,7 @@ dd 533
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>®¬¥à ª « DMA ¨á¯®«ì§ã¥âáï ¢
|
||||
¯®¤äãªæ¨¨ 1 äãªæ¨¨ 55.
|
||||
* <20>®«ãç¨âì ª « DMA ¤«ï §¢ãª ¬®¦® ¢ë§®¢®¬
|
||||
* <20>®«ãç¨âì ª « DMA ¤«ï §¢ãª ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 10 äãªæ¨¨ 26.
|
||||
|
||||
======================================================================
|
||||
@ -1284,13 +1284,13 @@ dd 533
|
||||
* ebx = ç áâ®â ¢¥à⨪ «ì®© à §¢ñà⪨ (¢ ƒæ)
|
||||
* ecx = ®¬¥à ⥪ã饣® ¢¨¤¥®à¥¦¨¬
|
||||
‡ ¬¥ç ¨ï:
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
äãªæ¨¨ ¤à ©¢¥à 1.
|
||||
* …᫨ ã¦ë ⮫쪮 à §¬¥àë íªà , 楫¥á®®¡à §¥© ¨á¯®«ì§®¢ âì
|
||||
äãªæ¨î 14 á ãçñ⮬ ⮣®, çâ® ® ¢®§¢à é ¥â à §¬¥àë 1 ¬¥ìè¥.
|
||||
|
||||
======================================================================
|
||||
= ”ãªæ¨ï 21, ¯®¤äãªæ¨ï 13, ¯®¤¯®¤äãªæ¨ï 3 - ãáâ ®¢¨âì ¢¨¤¥®à¥¦¨¬.
|
||||
= ”ãªæ¨ï 21, ¯®¤äãªæ¨ï 13, ¯®¤¯®¤äãªæ¨ï 3 - ãáâ ®¢¨âì ¢¨¤¥®à¥¦¨¬.
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 21 - ®¬¥à äãªæ¨¨
|
||||
@ -1303,7 +1303,7 @@ dd 533
|
||||
* eax = 0 - ãᯥè®
|
||||
* ebx, ecx à §àãè îâáï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
äãªæ¨¨ ¤à ©¢¥à 1.
|
||||
* <20>®¬¥à ¢¨¤¥®à¥¦¨¬ ¨ ç áâ®â ¤®«¦ë ¡ëâì ¢ â ¡«¨æ¥, ¢®§¢à é ¥¬®©
|
||||
äãªæ¨¥© ¤à ©¢¥à 1.
|
||||
@ -1322,7 +1322,7 @@ dd 533
|
||||
* eax = 0 - ãᯥè®
|
||||
* ebx, ecx à §àãè îâáï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
äãªæ¨¨ ¤à ©¢¥à 1.
|
||||
|
||||
======================================================================
|
||||
@ -1342,7 +1342,7 @@ dd 533
|
||||
* eax = 0 - ãᯥè®
|
||||
* ebx, ecx à §àãè îâáï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
* „à ©¢¥à ¯à¥¤¢ à¨â¥«ì® ¤®«¦¥ ¡ëâì ¨¨æ¨ «¨§¨à®¢ ¢ë§®¢®¬
|
||||
äãªæ¨¨ ¤à ©¢¥à 1.
|
||||
* ”ãªæ¨ï ¢«¨ï¥â ⮫쪮 䨧¨ç¥áª¨© à §¬¥à ¨§®¡à ¦¥¨ï
|
||||
¬®¨â®à¥; «®£¨ç¥áª¨© à §¬¥à (ç¨á«® ¯¨ªá¥«¥©) ¥ ¬¥ï¥âáï.
|
||||
@ -1423,7 +1423,7 @@ dd 533
|
||||
* eax = 0 - ãᯥè®
|
||||
* eax = 1 - ¥ ®¯à¥¤¥«¥ ¡ § CD
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ CD ¢ë§®¢®¬
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ CD ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 3 äãªæ¨¨ 21.
|
||||
* ‚ ᥪ㤥 75 ä३¬®¢, ¢ ¬¨ã⥠60 ᥪã¤.
|
||||
* ”ãªæ¨ï á¨åà® (¢®§¢à é ¥â ã¯à ¢«¥¨¥, ª®£¤ ç «®áì
|
||||
@ -1444,7 +1444,7 @@ dd 533
|
||||
* ”®à¬ â â ¡«¨æë á ¨ä®à¬ 樥© ® ¤®à®¦ª å â ª®© ¦¥, ª ª ¨ ¤«ï
|
||||
ATAPI-CD ª®¬ ¤ë 43h (READ TOC), ®¡ë箩 â ¡«¨æë (¯®¤ª®¬ ¤ 00h).
|
||||
€¤à¥á ¢®§¢à é îâáï ¢ ä®à¬ ⥠MSF.
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ CD ¢ë§®¢®¬
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ CD ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 3 äãªæ¨¨ 21.
|
||||
* ”ãªæ¨ï ¢®§¢à é ¥â ¨ä®à¬ æ¨î ⮫쪮 ® ¥ ¡®«¥¥ 祬 100
|
||||
¯¥à¢ëå ¤®à®¦ª å. ‚ ¡®«ìè¨á⢥ á«ãç ¥¢ í⮣® ¤®áâ â®ç®.
|
||||
@ -1459,7 +1459,7 @@ dd 533
|
||||
* eax = 0 - ãᯥè®
|
||||
* eax = 1 - ¥ ®¯à¥¤¥«¥ ¡ § CD
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ CD ¢ë§®¢®¬
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ CD ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 3 äãªæ¨¨ 21.
|
||||
|
||||
======================================================================
|
||||
@ -1477,7 +1477,7 @@ dd 533
|
||||
* eax = 1 - ¥ ®¯à¥¤¥«¥ ¡ § SB
|
||||
* eax = 2 - ¥¢¥à ï ¯®¤äãªæ¨ï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ SB ¢ë§®¢®¬
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ SB ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 4 äãªæ¨¨ 21.
|
||||
* ‘¬®âਠ⠪¦¥ äãªæ¨î 28
|
||||
ãáâ ®¢ª¨ §¢ãª ¤«ï ¡®«¥¥ ¯®§¤¥£® áâ ¤ àâ SB16.
|
||||
@ -1491,7 +1491,7 @@ dd 533
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = ®¬¥à ¯®àâ
|
||||
‡ ¬¥ç ¨ï:
|
||||
* “áâ ®¢¨âì ¡ §®¢ë© ¯®àâ ¬®¦® ¢ë§®¢®¬
|
||||
* “áâ ®¢¨âì ¡ §®¢ë© ¯®àâ ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 1 äãªæ¨¨ 21.
|
||||
|
||||
======================================================================
|
||||
@ -1524,7 +1524,7 @@ dd 533
|
||||
®à¬ «ì ï à ᪫ ¤ª , ¯®á«¥ 祣® ¨§ ª®¤ ¢ëç¨â ¥âáï 0x60;
|
||||
¥á«¨ ¥ ¦ â ¨ ®¤ ¨§ ã¯à ¢«ïîé¨å ª« ¢¨è, â® ¨á¯®«ì§ã¥âáï
|
||||
®à¬ «ì ï à ᪫ ¤ª .
|
||||
* “áâ ®¢¨âì à ᪫ ¤ª¨ ¨ ¨¤¥â¨ä¨ª â®à áâà ë ¬®¦® á ¯®¬®éìî
|
||||
* “áâ ®¢¨âì à ᪫ ¤ª¨ ¨ ¨¤¥â¨ä¨ª â®à áâà ë ¬®¦® á ¯®¬®éìî
|
||||
¯®¤äãªæ¨¨ 2 äãªæ¨¨ 21.
|
||||
* ˆ¤¥â¨ä¨ª â®à áâà ë - £«®¡ «ì ï á¨á⥬ ï ¯¥à¥¬¥ ï, ª®â®à ï
|
||||
á ¬¨¬ ï¤à®¬ ¥ ¨á¯®«ì§ã¥âáï; ®¤ ª® ¯à¨«®¦¥¨¥ @panel ®â®¡à ¦ ¥â
|
||||
@ -1644,7 +1644,7 @@ dd 533
|
||||
* eax = 0/1 - § ¯à¥éñ/à §à¥èñ
|
||||
‡ ¬¥ç ¨ï:
|
||||
* ˆá¯®«ì§ã¥âáï ¯à¨ LBA-ç⥨¨ (¯®¤äãªæ¨ï 8 äãªæ¨¨ 58).
|
||||
* “áâ ®¢¨âì ⥪ã饥 á®áâ®ï¨¥ ¬®¦® ¢ë§®¢®¬
|
||||
* “áâ ®¢¨âì ⥪ã饥 á®áâ®ï¨¥ ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 11 äãªæ¨¨ 21.
|
||||
|
||||
======================================================================
|
||||
@ -1659,7 +1659,7 @@ dd 533
|
||||
‡ ¬¥ç ¨ï:
|
||||
* ˆá¯®«ì§ã¥âáï ¯à¨ à ¡®â¥ á 訮© PCI (äãªæ¨ï 62).
|
||||
* ’¥ªãé ï ॠ«¨§ æ¨ï ¨á¯®«ì§ã¥â ⮫쪮 ¬« ¤è¨© ¡¨â ecx.
|
||||
* “áâ ®¢¨âì ⥪ã饥 á®áâ®ï¨¥ ¬®¦® ¢ë§®¢®¬
|
||||
* “áâ ®¢¨âì ⥪ã饥 á®áâ®ï¨¥ ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 12 äãªæ¨¨ 21.
|
||||
|
||||
======================================================================
|
||||
@ -1676,7 +1676,7 @@ dd 533
|
||||
* eax = 1 - ¥ ®¯à¥¤¥«¥ ¡ § SB
|
||||
* eax = 2 - ¥¢¥à ï ¯®¤äãªæ¨ï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ SB ¢ë§®¢®¬
|
||||
* <20>।¢ à¨â¥«ì® 㦮 ®¯à¥¤¥«¨âì ¡ §®¢ë© ¯®àâ SB ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¨ 4 äãªæ¨¨ 21.
|
||||
* <20>â äãªæ¨ï ¯à¥¤®áâ ¢«ï¥â ¡®«ìè¥ ¢ ਠ⮢ ¤«ï £à®¬ª®áâ¨,
|
||||
祬 äãªæ¨ï 25.
|
||||
@ -1913,7 +1913,7 @@ dd 533
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* eax = [è¨à¨ ]*65536 + [¢ëá®â ]
|
||||
‡ ¬¥ç ¨ï:
|
||||
* …áâì ¯ à ï ª®¬ ¤ ãáâ ®¢ª¨ à §¬¥à®¢ ä®®¢®£® ¨§®¡à ¦¥¨ï -
|
||||
* …áâì ¯ à ï ª®¬ ¤ ãáâ ®¢ª¨ à §¬¥à®¢ ä®®¢®£® ¨§®¡à ¦¥¨ï -
|
||||
¯®¤äãªæ¨ï 1 äãªæ¨¨ 15. <20>®á«¥ ª®â®à®©, à §ã¬¥¥âáï, á«¥¤ã¥â
|
||||
§ ®¢® ®¯à¥¤¥«¨âì á ¬® ¨§®¡à ¦¥¨¥.
|
||||
|
||||
@ -1932,7 +1932,7 @@ dd 533
|
||||
* <20>¥ á«¥¤ã¥â ¯®« £ âìáï ¢®§¢à é ¥¬®¥ § 票¥ ¢ á«ãç ¥ ¥¢¥à®£®
|
||||
ᬥ饨ï, ®® ¬®¦¥â ¨§¬¥¨âìáï ¢ á«¥¤ãîé¨å ¢¥àá¨ïå ï¤à .
|
||||
* ‘¬¥é¥¨¥ â®çª¨ á ª®®à¤¨ â ¬¨ (x,y) ¢ëç¨á«ï¥âáï ª ª (x+y*xsize)*3.
|
||||
* …áâì ¯ à ï äãªæ¨ï ãáâ ®¢ª¨ â®çª¨ ä®®¢®¬ ¨§®¡à ¦¥¨¨ -
|
||||
* …áâì ¯ à ï äãªæ¨ï ãáâ ®¢ª¨ â®çª¨ ä®®¢®¬ ¨§®¡à ¦¥¨¨ -
|
||||
¯®¤äãªæ¨ï 2 äãªæ¨¨ 15.
|
||||
|
||||
======================================================================
|
||||
@ -1945,7 +1945,7 @@ dd 533
|
||||
* eax = 1 - § ¬®áâ¨âì
|
||||
* eax = 2 - à áâïãâì
|
||||
‡ ¬¥ç ¨ï:
|
||||
* …áâì ¯ à ï äãªæ¨ï ãáâ ®¢ª¨ ०¨¬ ®âà¨á®¢ª¨ ä® -
|
||||
* …áâì ¯ à ï äãªæ¨ï ãáâ ®¢ª¨ ०¨¬ ®âà¨á®¢ª¨ ä® -
|
||||
¯®¤äãªæ¨ï 4 äãªæ¨¨ 15.
|
||||
|
||||
======================================================================
|
||||
@ -2079,7 +2079,7 @@ dd 533
|
||||
¢á¥ § १¥à¢¨à®¢ ë¥ ¨¬ IRQ.
|
||||
|
||||
======================================================================
|
||||
= ”ãªæ¨ï 46 - § १¥à¢¨à®¢ âì/®á¢®¡®¤¨âì £à㯯㠯®à⮢ ¢¢®¤ /¢ë¢®¤ .
|
||||
= ”ãªæ¨ï 46 - § १¥à¢¨à®¢ âì/®á¢®¡®¤¨âì £à㯯㠯®à⮢ ¢¢®¤ /¢ë¢®¤ .
|
||||
======================================================================
|
||||
Š § १¥à¢¨à®¢ ë¬ ¯®àâ ¬ ¬®¦® ®¡à é âìáï ¯àï¬ãî ¨§ ¯à¨«®¦¥¨ï
|
||||
ª®¬ ¤ ¬¨ in/out (४®¬¥¤ã¥¬ë© ᯮᮡ) ¨ ¢ë§®¢®¬ äãªæ¨¨ 43
|
||||
@ -2171,7 +2171,7 @@ dd 533
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>®á«¥ ¢ë§®¢ ®¯¨áë¢ ¥¬®© äãªæ¨¨ á«¥¤ã¥â ¯¥à¥à¨á®¢ âì íªà
|
||||
* <20>®á«¥ ¢ë§®¢ ®¯¨áë¢ ¥¬®© äãªæ¨¨ á«¥¤ã¥â ¯¥à¥à¨á®¢ âì íªà
|
||||
¯®¤äãªæ¨¥© 0.
|
||||
* ’¨¯ ª®¯®ª ¢«¨ï¥â ⮫쪮 ¨å ¯à®à¨á®¢ªã äãªæ¨¥© 8.
|
||||
|
||||
@ -2188,7 +2188,7 @@ dd 533
|
||||
‚®§¢à é ¥¬®¥ § 票¥:
|
||||
* äãªæ¨ï ¥ ¢®§¢à é ¥â § 票ï
|
||||
‡ ¬¥ç ¨ï:
|
||||
* <20>®á«¥ ¢ë§®¢ ®¯¨áë¢ ¥¬®© äãªæ¨¨ á«¥¤ã¥â ¯¥à¥à¨á®¢ âì íªà
|
||||
* <20>®á«¥ ¢ë§®¢ ®¯¨áë¢ ¥¬®© äãªæ¨¨ á«¥¤ã¥â ¯¥à¥à¨á®¢ âì íªà
|
||||
¯®¤äãªæ¨¥© 0.
|
||||
* ’ ¡«¨æ áâ ¤ àâëå 梥⮢ ¢«¨ï¥â ⮫쪮 ¯à¨«®¦¥¨ï,
|
||||
ª®â®àë¥ íâã â ¡«¨æã ï¢ë¬ ®¡à §®¬ ¯®«ãç îâ (¯®¤äãªæ¨¥© 3) ¨
|
||||
@ -2302,7 +2302,7 @@ dword-
|
||||
€ «®£¨ç® ¯® ®á¨ y.
|
||||
* ‘¬®âਠ⠪¦¥ äãªæ¨î 14,
|
||||
¯®§¢®«ïîéãî ®¯à¥¤¥«¨âì à §¬¥àë ¢á¥£® íªà .
|
||||
* …áâì ¯ à ï äãªæ¨ï ¯®«ã票ï à ¡®ç¥© ®¡« á⨠-
|
||||
* …áâì ¯ à ï äãªæ¨ï ¯®«ã票ï à ¡®ç¥© ®¡« á⨠-
|
||||
¯®¤äãªæ¨ï 5.
|
||||
* <20>â äãªæ¨ï ¢â®¬ â¨ç¥áª¨ ¯¥à¥à¨á®¢ë¢ ¥â íªà , ¯® 室㠤¥«
|
||||
®¡®¢«ï¥â ª®®à¤¨ âë ¨ à §¬¥àë ¬ ªá¨¬¨§¨à®¢ ëå ®ª®.
|
||||
@ -2426,7 +2426,7 @@ dword-
|
||||
* ¨ ç¥ eax = TID - ¨¤¥â¨ä¨ª â®à ¯®â®ª
|
||||
|
||||
======================================================================
|
||||
= ”ãªæ¨ï 52, ¯®¤äãªæ¨ï 0 - ¯®«ãç¨âì ª®ä¨£ãà æ¨î á¥â¥¢®£® ¤à ©¢¥à .
|
||||
= ”ãªæ¨ï 52, ¯®¤äãªæ¨ï 0 - ¯®«ãç¨âì ª®ä¨£ãà æ¨î á¥â¥¢®£® ¤à ©¢¥à .
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 52 - ®¬¥à äãªæ¨¨
|
||||
@ -2451,7 +2451,7 @@ dword-
|
||||
* ‹®ª «ìë© IP- ¤à¥á ãáâ ¢«¨¢ ¥âáï ¯®¤äãªæ¨¥© 3.
|
||||
|
||||
======================================================================
|
||||
”ãªæ¨ï 52, ¯®¤äãªæ¨ï 2 - ãáâ ®¢¨âì ª®ä¨£ãà æ¨î á¥â¥¢®£® ¤à ©¢¥à .
|
||||
”ãªæ¨ï 52, ¯®¤äãªæ¨ï 2 - ãáâ ®¢¨âì ª®ä¨£ãà æ¨î á¥â¥¢®£® ¤à ©¢¥à .
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 52 - ®¬¥à äãªæ¨¨
|
||||
@ -2799,7 +2799,7 @@ dword-
|
||||
* <20>஢¥àª¨ ¯à ¢¨«ì®áâì åí¤« ¥ ¤¥« ¥âáï.
|
||||
|
||||
======================================================================
|
||||
”ãªæ¨ï 53, ¯®¤äãªæ¨ï 255 - ®â« ¤®ç ï ¨ä®à¬ æ¨ï á¥â¥¢®£® ¤à ©¢¥à .
|
||||
”ãªæ¨ï 53, ¯®¤äãªæ¨ï 255 - ®â« ¤®ç ï ¨ä®à¬ æ¨ï á¥â¥¢®£® ¤à ©¢¥à .
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 53 - ®¬¥à äãªæ¨¨
|
||||
@ -2916,6 +2916,18 @@ dword-
|
||||
* „ ë¥ ¤®«¦ë á®åà ïâìáï ¢ ¯ ¬ï⨠¯® ªà ©¥© ¬¥à¥
|
||||
¤® ª®æ ¯à®¨£àë¢ ¨ï.
|
||||
|
||||
======================================================================
|
||||
============================ ”ãªæ¨ï 57 ==============================
|
||||
====================== ‚맮¢ á¥à¢¨á®¢ PCIBIOS ========================
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 57
|
||||
* ebp = ᮮ⢥âáâ¢ã¥â ॣ¨áâàã al ¯® ᯥæ¨ä¨ª 樨 PCIBIOS
|
||||
* ®áâ «ìë¥ à¥£¨áâàë ¯® ᯥæ¨ä¨ª 樨 PCIBIOS
|
||||
‚®§¢à é ¥¬ë¥ § 票ï:
|
||||
* CF ¥ ®¯à¥¤¥«ñ
|
||||
* ®áâ «ìë¥ à¥£¨áâàë ¯® ᯥæ¨ä¨ª 樨 PCIBIOS
|
||||
|
||||
======================================================================
|
||||
============== ”ãªæ¨ï 58 - à ¡®â á ä ©«®¢®© á¨á⥬®©. ==============
|
||||
======================================================================
|
||||
@ -3076,8 +3088,8 @@ dword-
|
||||
* <20> §¬¥à ¡«®ª - 512 ¡ ©â; ç¨â ¥âáï ®¤¨ ¡«®ª.
|
||||
* <20>¥ á«¥¤ã¥â ¯®« £ âìáï ¢®§¢à é ¥¬®¥ § 票¥,
|
||||
®® ¬®¦¥â ¨§¬¥¨âìáï ¢ á«¥¤ãîé¨å ¢¥àá¨ïå.
|
||||
* ’ॡã¥âáï, çâ®¡ë ¡ë« à §à¥èñ LBA-¤®áâ㯠ª ãáâனá⢠¬
|
||||
¯®¤äãªæ¨¥© 11 äãªæ¨¨ 21. “§ âì íâ® ¬®¦® ¢ë§®¢®¬
|
||||
* ’ॡã¥âáï, çâ®¡ë ¡ë« à §à¥èñ LBA-¤®áâ㯠ª ãáâனá⢠¬
|
||||
¯®¤äãªæ¨¥© 11 äãªæ¨¨ 21. “§ âì íâ® ¬®¦® ¢ë§®¢®¬
|
||||
¯®¤äãªæ¨¥© 11 äãªæ¨¨ 26.
|
||||
* LBA-ç⥨¥ ¤¨áª¥âë ¥ ¯®¤¤¥à¦¨¢ ¥âáï.
|
||||
* ”ãªæ¨ï áç¨âë¢ ¥â ¤ ë¥ ä¨§¨ç¥áª®£® ¦ñá⪮£® ¤¨áª ;
|
||||
@ -3091,7 +3103,7 @@ dword-
|
||||
íâ® ¡ã¤¥â áç¨â âìáï ãᯥ宬 (eax=0).
|
||||
|
||||
======================================================================
|
||||
= ”ãªæ¨ï 58, ¯®¤äãªæ¨ï 15 - ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«®¢®© á¨á⥬¥.
|
||||
= ”ãªæ¨ï 58, ¯®¤äãªæ¨ï 15 - ¯®«ãç¨âì ¨ä®à¬ æ¨î ® ä ©«®¢®© á¨á⥬¥.
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 58 - ®¬¥à äãªæ¨¨
|
||||
@ -3978,7 +3990,7 @@ Architecture Software Developer's Manual, Volume 3, Appendix B);
|
||||
®¡é¥¬ ®¯¨á ¨¨).
|
||||
|
||||
======================================================================
|
||||
”ãªæ¨ï 69, ¯®¤äãªæ¨ï 7 - § ¯¨á âì ¢ ¯ ¬ïâì ®â« ¦¨¢ ¥¬®£® ¯à®æ¥áá .
|
||||
”ãªæ¨ï 69, ¯®¤äãªæ¨ï 7 - § ¯¨á âì ¢ ¯ ¬ïâì ®â« ¦¨¢ ¥¬®£® ¯à®æ¥áá .
|
||||
======================================================================
|
||||
<EFBFBD> à ¬¥âàë:
|
||||
* eax = 69 - ®¬¥à äãªæ¨¨
|
||||
|
@ -159,6 +159,69 @@ proc init_page_map
|
||||
ret
|
||||
endp
|
||||
|
||||
align 4
|
||||
|
||||
init_BIOS32:
|
||||
mov edi, 0xE0000
|
||||
.pcibios_nxt:
|
||||
cmp dword[edi], '_32_' ; "magic" word
|
||||
je .BIOS32_found
|
||||
.pcibios_nxt2:
|
||||
add edi, 0x10
|
||||
cmp edi, 0xFFFF0
|
||||
je .BIOS32_not_found
|
||||
jmp .pcibios_nxt
|
||||
.BIOS32_found: ; magic word found, check control summ
|
||||
|
||||
movzx ecx, byte[edi + 9]
|
||||
shl ecx, 4
|
||||
mov esi, edi
|
||||
xor eax, eax
|
||||
cld ; paranoia
|
||||
@@: lodsb
|
||||
add ah, al
|
||||
loop @b
|
||||
jnz .pcibios_nxt2 ; control summ must be zero
|
||||
; BIOS32 service found !
|
||||
mov ebp, [edi + 4]
|
||||
mov [bios32_entry], ebp
|
||||
; check PCI BIOS present
|
||||
mov eax, '$PCI'
|
||||
xor ebx, ebx
|
||||
push cs ; special for 'ret far' from BIOS
|
||||
call ebp
|
||||
test al, al
|
||||
jnz .PCI_BIOS32_not_found
|
||||
|
||||
; çäåñü ñîçäàþòñÿ äèñêðèïòîðû äëÿ PCI BIOS
|
||||
|
||||
add ebx, OS_BASE
|
||||
dec ecx
|
||||
mov [(pci_code_32-OS_BASE)], cx ;limit 0-15
|
||||
mov [(pci_data_32-OS_BASE)], cx ;limit 0-15
|
||||
|
||||
mov [(pci_code_32-OS_BASE)+2], bx ;base 0-15
|
||||
mov [(pci_data_32-OS_BASE)+2], bx ;base 0-15
|
||||
|
||||
shr ebx, 16
|
||||
mov [(pci_code_32-OS_BASE)+4], bl ;base 16-23
|
||||
mov [(pci_data_32-OS_BASE)+4], bl ;base 16-23
|
||||
|
||||
shr ecx, 16
|
||||
and cl, 0x0F
|
||||
mov ch, bh
|
||||
add cx, D32
|
||||
mov [(pci_code_32-OS_BASE)+6], cx ;lim 16-19 &
|
||||
mov [(pci_data_32-OS_BASE)+6], cx ;base 24-31
|
||||
|
||||
mov [(pci_bios_entry-OS_BASE)], edx
|
||||
; jmp .end
|
||||
.PCI_BIOS32_not_found:
|
||||
; çäåñü äîëæíà çàïîëíÿòñÿ pci_emu_dat
|
||||
.BIOS32_not_found:
|
||||
.end:
|
||||
|
||||
|
||||
align 4
|
||||
proc test_cpu
|
||||
locals
|
||||
|
@ -74,6 +74,8 @@ graph_data equ (3+graph_data_l-gdts)
|
||||
tss0 equ (tss0_l-gdts)
|
||||
app_code equ (3+app_code_l-gdts)
|
||||
app_data equ (3+app_data_l-gdts)
|
||||
pci_code_sel equ (pci_code_32-gdts)
|
||||
pci_data_sel equ (pci_data_32-gdts)
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
@ -237,6 +239,7 @@ B32:
|
||||
call test_cpu
|
||||
bts [cpu_caps-OS_BASE], CAPS_TSC ;force use rdtsc
|
||||
|
||||
call init_BIOS32
|
||||
; MEMORY MODEL
|
||||
call mem_test
|
||||
call init_mem
|
||||
@ -255,7 +258,9 @@ B32:
|
||||
jmp pword os_code:high_code
|
||||
|
||||
align 4
|
||||
bios32_entry dd ?
|
||||
tmp_page_tabs dd ?
|
||||
|
||||
use16
|
||||
org $-0x10000
|
||||
include "boot/shutdown.inc" ; shutdown or restart
|
||||
|
Loading…
Reference in New Issue
Block a user