fix: correction d'un bogue dans la fonction "detect" Suppression de l'appel en "enablea20","flatmode" et "detectvmware" suspecté de causer des plantages sur de vrais PC (pas emulé)

This commit is contained in:
Nicolas Hordé 2007-04-11 19:06:02 +00:00
parent 101a2f1b11
commit 04437364c4
1 changed files with 17 additions and 16 deletions

View File

@ -99,8 +99,8 @@ suite:
push eax push eax
call [cs:print],offset msg_pci_info call [cs:print],offset msg_pci_info
call [cs:print],offset msg_pci_enum call [cs:print],offset msg_pci_enum
xor bx,bx xor ebx,ebx
xor cx,cx xor ecx,ecx
xor si,si xor si,si
searchpci: searchpci:
call [cs:getcardinfo],bx,cx,si,offset temp call [cs:getcardinfo],bx,cx,si,offset temp
@ -145,24 +145,25 @@ stopthis:
nopci: nopci:
call [cs:print],offset msg_echec2 call [cs:print],offset msg_echec2
next: next:
call [cs:detectvmware] ;call [cs:detectvmware]
jne novirtual ;jne novirtual
call [cs:print],offset msg_vmware ;call [cs:print],offset msg_vmware
novirtual: novirtual:
call [cs:print],offset msg_flat ;call [cs:print],offset msg_flat
call enablea20 ;call enablea20
call flatmode ;call flatmode
xor ax,ax ;xor ax,ax
mov fs,ax ;mov fs,ax
mov esi,0100000h ;mov esi,0100000h
mov [dword ptr fs:esi],"OKIN" ;mov [dword ptr fs:esi],"OKIN"
call [cs:print],offset msg_ok2 call [cs:print],offset msg_ok2
call [cs:print],offset msg_disk_init call [cs:print],offset msg_disk_init
call [cs:initdrive] call [cs:initdrive]
jc error2 jc error2
call [cs:print],offset msg_ok2 call [cs:print],offset msg_ok2
call [cs:print],offset msg_launchcommand
call [cs:execfile],offset shell call [cs:execfile],offset shell
jc error2
error2: error2:
call [cs:print],offset msg_error2 call [cs:print],offset msg_error2
call bioswaitkey call bioswaitkey
@ -189,12 +190,12 @@ msg_cpu_detect_inf db " -Fondeur : %0\l -Modele : %0\l -Revision : %u\l -
msg_pci db "Detection des systemes PCI",0 msg_pci db "Detection des systemes PCI",0
msg_pci_info db " -Version : %yB.%yB\l -Numero bus max: %u\l",0 msg_pci_info db " -Version : %yB.%yB\l -Numero bus max: %u\l",0
msg_pci_enum db " -Enumeration des peripheriques PCI:\l" msg_pci_enum db " -Enumeration des peripheriques PCI:\l"
db " |Vendeur|Modele|Bus |Dev.|Func|Classe.Sous-classe\l",0 db " | Vendeur | Modele |Bus |Dev.|Func|Classe.Sous-classe\l",0
msg_pci_card db " | %hW | %hW |%w|%w|%w|%0P.%0P\l",0 msg_pci_card db " | 0x%hW | 0x%hW |%w|%w|%w|%0P.%0P\l",0
msg_vmware db "\c04 VMWare a ete detecte !!!\c07\l",0 msg_vmware db "\c04 VMWare a ete detecte !!!\c07\l",0
msg_flat db "Initialisation du Flat Real Mode\l",0 msg_flat db "Initialisation du Flat Real Mode\l",0
msg_disk_init db "Initialisation du pilote DISQUE\l",0 msg_disk_init db "Initialisation du pilote DISQUE\l",0
msg_launchcommand db "Execution du SHELL\l",0
msg_error db " [Erreur]",0dh,0ah,"<Pressez une touche pour redemarrer le systeme>",0 msg_error db " [Erreur]",0dh,0ah,"<Pressez une touche pour redemarrer le systeme>",0
msg_ok db " [ Ok ]",0dh,0ah,0 msg_ok db " [ Ok ]",0dh,0ah,0