Browse Source

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é)

develop
Nicolas Hordé 17 years ago
parent
commit
04437364c4
  1. 33
      noyau/systeme.asm

33
noyau/systeme.asm

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

Loading…
Cancel
Save