Win3x.Org http://www.win3x.org/win3board/ |
|
Win386 en mode AHCI – si, c'est possible ! http://www.win3x.org/win3board/viewtopic.php?t=27668 |
Page 1 of 1 |
Author: | PluMGMK [ 13 Mar 2023 20:31 ] |
Post subject: | Win386 en mode AHCI – si, c'est possible ! |
Je n'ai pas été seul ici à essayer de faire tourner Windows 3.1 sur du matériel moderne, et à constater que ce système d'exploitation, en Mode Étendue 386, n'est pas compatible avec les contrôleurs SATA en mode AHCI. Je présumais que c'était à cause de quelques incompatibilités fondamentales entre la spécification AHCI et les codes de gestion de disques de Win3.1. Mais j'ai fait quelques investigations, et j'ai trouvé qu'en fait (au moins sur mon PC), cette incompatibilité vient d'un simple bug de firmware dans les contrôleurs AHCI d'Intel ! ![]() Lors d'un int 13h, si le système tourne sous Windows ou sous EMM386, le firmware du contrôleur AHCI se sert de int 4Bh pour traduire les adresses virtuelles. Mais malheureusement, il fait systématiquement des appels invalides à int 4Bh AX=8104h, où la structure DDS se trouve à DS:DI au lieu de ES:DI. Sous EMM386, ceci ne pose pas de problème, pour n'importe quelle raison, mais sous Windows 3.1 en Mode Étendue 386, ça provoque un crash du système. Heureusement, je suis en train d'écrire un petit VxD, qui intercepte int 4Bh, et détecte et règle ces appels invalides. En ce moment, ce VxD ne fonctionne qu'avec un DOS démarré avec EMM386, et pour quelque raison la souris ne fonctionne pas avec. ![]() ![]() Et comment j'ai trouvé tout ça ? J'ai utilisé le débugueur WDEB386, qui vient avec le DDK Win16. Je ne sais pas si c'est déjà connu, mais pour faire fonctionner ce débugueur j'ai dû faire un petit patch :
![]() |
Author: | PluMGMK [ 18 Mar 2023 02:10 ] |
Post subject: | Re: Win386 en mode AHCI – si, c'est possible ! |
Désolé de double-poster, mais je voudrais annoncer que c'est fait : https://github.com/PluMGMK/ahcifix.386/ ![]() On peut télécharger le VxD directement ici : https://github.com/PluMGMK/ahcifix.386/ ... HCIFIX.386 |
Page 1 of 1 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited |