emm386 et ordinateur portable : Impossible de créer de l'EMS :(

Réduire
X
 
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages
  • Sockart
    Compte archivé

    • mars 2005
    • 7

    #1

    emm386 et ordinateur portable : Impossible de créer de l'EMS :(

    Salut,

    En découvrant Abandonware, je me suis remis à ce bon vieux Master of Magic.
    (sous Dos car la Dosbox commence à ramer assez vite, même en montant à 12000 cycles).
    Par contre, sous dos, royal ! Rapide (une demi-seconde à chaque tour) malgré l'absence de son : impossible de lui faire reconnaitre mon Realtek AC'97 intégré).

    Mais en voulant l'installer sur mon portable (Acer 1522WLMI), ma ligne emm386 de mon config.sis (device=emm386.exe ram) n'arrive pas à créer de l'EMS et me donne ce message d'erreur :

    "Attention : Incapable de définir l'adresse de base du cadre de page.
    EMS non disponible"

    J'ai joué à l'apprenti sorcier avec Highscan, frame, plein de formules au pif trouvées sur le net mais rien n'y fait.

    Quelqu'un connait-il le systeme d'adresse pour un portable, ou plus simplement la formule qui marche dans ce cas là ?

    Merci à vous.

    PS : Ci dessous un copier-coller de mon config.sys, qui a toujours tres bien marché sur toutes mes autres machines :

    DEVICE=setver.exe
    device=himem.sys
    dos=high
    device=emm386.exe ram
    dos=umb
    files=40
    Country=033,850,country.sys
  • Soteen
    Compte archivé

    • mai 2004
    • 2545

    #2
    Salut,

    Au temps du dos, j'avais fait une disquette boot multi menu pour pouvoir jouer à certains jeux genre wing commander qui demandent de la mémoire EMS, je crois.
    Si tu veux, je peux te zipper la disquette.
    Tu n'auras plus qu'à modifier quelques lignes comme la ligne pour la carte son.
    [center]" Mieux vaut être saoûl que con, ça dure moins longtemps !! " [/center]

    Commentaire

    • Victor
      Nettoyeur


      • mars 2004
      • 5316

      #3
      Va faire un tour sur le site de shino, tu pourras utiliser la shinoA4 déjà configurée pour jouer en ms-dos.
      www.shinod7.net
      Pour ce qui concerne le son, il y a 98% de chance qu'il te soit impossible de le faire marcher sous dos.
      Si tu as bien un chipset VIA KN800, alors tu n'auras pas de son.

      Je crois apr contre qu'il y a un problème dans ton config.sys
      Toutes les lignes avec device doivent commencer par
      device=c:\windows\himem.sys
      (si himem.sys est dans c:\windows)
      Dans l'ordre, à partir d'une disquette de boot:

      devicehigh=a:\himem.sys
      dos=high,umb
      devicehigh=a:\emm386.exe ram
      devicehigh=a:\setver.exe
      fileshigh=40
      buffershigh=30
      stackshigh=9,256

      rien de plus.
      Surtout ne pas utiliser le highscan ou autre bidouille, ça marche très très mal avec les portables.
      Dans le autoexec.bat, pas besoin des lignes avec mode ..., c'est juste pour l'affichage 80 lignes (inutile dans les jeux).

      Tous les fichiers dans config.sys et autoexec.bat doivent être présents sur la disquette.
      Bon ben je vais aller nettoyer les pc !

      Commentaire

      • Sockart
        Compte archivé

        • mars 2005
        • 7

        #4
        Soteen : J'ai surtout besoin de la ligne de commande particuliere d'emm386 qui trouve l'adresse de base du cadre de page sur un portable (les mémoires ne sont pas les mêmes sur un portable que sur un PC). Je pense que la commande que je cherche a rapport avec la commande frame mais j'en sais pas plus...

        Pour le son, ca n'a aucune importance, ca m'mempêche pas de jouer à Magic, alors que l'absence de mémoire EMS, si

        Victor : Je m'en va essyaer la diquette de ShinoD7
        je vous tiens au courant...

        Commentaire

        • Soteen
          Compte archivé

          • mai 2004
          • 2545

          #5
          Je ne sais pas les différences entre un portable et un PC bureau.
          Au tant que je m'en souvienne du "emm", c'est qu'on mettait RAM + un chiffre derrière, chiffre correspondant à la taille mémoire désirée.
          J'avais fait une disquette boot multi-menu pour différents jeux avec ou sans CD-Rom et/ou avec mémoire paginée.
          [center]" Mieux vaut être saoûl que con, ça dure moins longtemps !! " [/center]

          Commentaire

          • Victor
            Nettoyeur


            • mars 2004
            • 5316

            #6
            Par défaut, si tu ne mets pas de valeur à emm386, il utilise toute la mémoire xms (gérée par himem.sys) pour créer de l'ems.
            Le paramètre ram sert à activer les umb où l'on peut charger des programmes plutôt que dans les 640Ko de base (c'est le pourquoi des devicehigh au lieu de device et loadhigh ou lh au début des commandes de l'autoexec).
            Le paramètre équilvalent pour ne pas avoir d'ems est noems.
            Il ne faut pas utiliser les deux en même temps, bien entendu.

            Le problème de beaucoup de portables, c'est l'architecture isa/pci et mémoire.
            En effet, on ne peut pas changer les irq/dma/hexa des périphériques isa/pci sur un portable. Pareil pour le video/bios shadow (stockage en ram du bios système et vidéo).
            De même, les adresses mémoire entre 640Ko et 1Mo sont différentes d'un pc de bureau (moins d'espace mémoire place disponible). Ce qui fait que emm386 est un peu "paumé" quand on se sert du highscan.
            C'est encore pire si on dispose d'un chip graphique avec mémoire uma (mémoire partagée).
            Bon ben je vais aller nettoyer les pc !

            Commentaire

            • Sockart
              Compte archivé

              • mars 2005
              • 7

              #7
              Envoyé par victor
              De même, les adresses mémoire entre 640Ko et 1Mo sont différentes d'un pc de bureau (moins d'espace mémoire place disponible). Ce qui fait que emm386 est un peu "paumé" quand on se sert du highscan.
              C'est encore pire si on dispose d'un chip graphique avec mémoire uma (mémoire partagée).
              C'est exactement mon problème !!

              Par contre, ma mémoire graphique est dédiée.
              Connais-tu un moyen pour connaitre les adresses mémoires d'un ordinateur, et à fortiori d'un portable ?

              J'ai bien ca mais ca ne marche pas car ce sont les données par défaut pour un ordi classique : (en fait, je ne suis même pas sur de ce que c'est )

              C000 C400 X=C000-C7FF
              C000 C800 X=C000-C3FF X=C800-CBFF
              C000 CC00 X=C000-C3FF X=CC00-CFFF
              C000 D000 X=C000-C3FF X=D000-D3FF
              C000 D400 X=C000-C3FF X=D400-D7FF
              C000 D800 X=C000-C3FF X=D800-DBFF
              C000 DC00 X=C000-C3FF X=DC00-DFFF
              C000 E400 X=C000-C3FF X=E400-E7FF
              C000 EC00 X=C000-C3FF X=EC00-EFFF
              C400 C800 X=C400-CBFF
              C400 CC00 X=C400-C7FF X=CC00-CFFF
              C400 D000 X=C400-C7FF X=D000-D3FF
              C400 D400 X=C400-C7FF X=D400-D7FF
              C400 D800 X=C400-C7FF X=D800-DBFF
              C400 DC00 X=C400-C7FF X=DC00-DFFF
              C400 E000 X=C400-C7FF X=E000-E3FF
              C400 E400 X=C400-C7FF X=E400-E7FF
              C400 E800 X=C400-C7FF X=E800-EBFF
              C400 EC00 X=C400-C7FF X=EC00-EFFF
              C800 CC00 X=C800-CFFF
              C800 D000 X=C800-CBFF X=D000-D3FF
              C800 D400 X=C800-CBFF X=D400-D7FF
              C800 D800 X=C800-CBFF X=D800-DBFF
              C800 DC00 X=C800-CBFF X=DC00-DFFF
              C800 E000 X=C800-CBFF X=E000-E3FF
              C800 E400 X=C800-CBFF X=E400-E7FF
              C800 E800 X=C800-CBFF X=E800-EBFF
              C800 EC00 X=C800-CBFF X=EC00-EFFF
              CC00 D000 X=CC00-D3FF
              CC00 D400 X=CC00-CFFF X=D400-D7FF
              CC00 D800 X=CC00-CFFF X=D800-DBFF
              CC00 DC00 X=CC00-CFFF X=DC00-DFFF
              CC00 E000 X=CC00-CFFF X=E000-E3FF
              CC00 E400 X=CC00-CFFF X=E400-E7FF
              CC00 E800 X=CC00-CFFF X=E800-EBFF
              CC00 EC00 X=CC00-CFFF X=EC00-EFFF
              D000 D400 X=D000-D7FF
              D000 D800 X=D000-D3FF X=D800-DBFF
              D000 DC00 X=D000-D3FF X=DC00-DFFF
              D000 E000 X=D000-D3FF X=E000-E3FF
              D000 E400 X=D000-D3FF X=E400-E7FF
              D000 E800 X=D000-D3FF X=E800-EBFF
              D000 EC00 X=D000-D3FF X=EC00-EFFF
              D400 D800 X=D400-DBFF
              D400 DC00 X=D400-D7FF X=DC00-DFFF
              D400 E000 X=D400-D7FF X=E000-E3FF
              D400 E400 X=D400-D7FF X=E400-E7FF
              D400 E800 X=D400-D7FF X=E800-EBFF
              D400 EC00 X=D400-D7FF X=EC00-EFFF
              D800 DC00 X=D800-DFFF
              D800 E000 X=D800-DBFF X=E000-E3FF
              D800 E400 X=D800-DBFF X=E400-E7FF
              D800 E800 X=D800-DBFF X=E800-EBFF
              D800 EC00 X=D800-DBFF X=EC00-EFFF
              DC00 E000 X=DC00-E3FF
              DC00 E800 X=DC00-DFFF X=E800-EBFF
              E000 E400 X=E000-E7FF
              E000 EC00 X=E000-E3FF X=EC00-EFFF
              E400 E800 X=E400-EBFF
              E800 EC00 X=E800-EFFF


              Bon, ca ne marche pas avec ShinoD7, c'est normal, le problème ne se situe qu'au niveau de emm386 et sa ligne de commande est basique et est faite pour marcher pour des adresses normales...

              damned damned...

              Commentaire

              • Victor
                Nettoyeur


                • mars 2004
                • 5316

                #8
                Est-ce que ton portable est à jour niveau drivers/bios?

                Le problème supplémentaire de shinod7 par rapport à ta config, c'est qu'il cherche à récupérer une partie de la mémoire supérieure (les 1Mo) avec emm386.
                Il faut éditer le fichier config.sys de la disquette et virer le paramètre I=B000-B7FF (de mémoire), le I pour Include.
                A ta place, j'essayerai même de le remplacer par X=C000-C7FF (X pour eXclude).
                Cette plage d'adresse est par défaut (sic) celle du bios vidéo.
                Puis regarde ce que ça donne.

                Sinon, comme tu possèdes un athlon64 avec la protection nxbit contre les virus, il se pourrait que ça soit ça qui bloque, même si ça me semble peu probable sous ms-dos.
                Autrement, il y a un paramètre à modifier dans le bios.
                J'éspère que c'est indiqué dans le manuel, je vais regarder.

                Edit: que dalle dans le manuel, je m'en doutais
                Dernière modification par Victor, 25 mars 2005, 12h34.
                Bon ben je vais aller nettoyer les pc !

                Commentaire

                • Sockart
                  Compte archivé

                  • mars 2005
                  • 7

                  #9
                  Victor : Merci du coup de main

                  X=C000-C7FF n'a pas marché, toujours le même message d'erreur.

                  Je tente le coup avec memmaker

                  argh, comment trouver l'adresse de base du cadre de page de ce foutu portable ?!?

                  Elle existe forcement !

                  Commentaire

                  • Victor
                    Nettoyeur


                    • mars 2004
                    • 5316

                    #10
                    A mon avis, ça vient du bios qui bloque/dérègle quelque chose.
                    Normalement, il n'y a pas besoin de préciser la plage d'adresse où démarrer, emm386 la trouve automatiquement.

                    Le cadre de page, c'est autre chose, avec l'option frame=none, tu peux récupérer un peu plus de mémoire supérieure que noems mais il ne marche pas avec toutes les configurations.

                    Essaye la ligne
                    devicehigh=emm386.exe on frame=none novcpi nomovexbda verbose

                    Le paramètre verbose donnera plus d'infos sur ce qui ne va pas.
                    Bon ben je vais aller nettoyer les pc !

                    Commentaire

                    • Sockart
                      Compte archivé

                      • mars 2005
                      • 7

                      #11
                      Je me suis empressé d'essayer ta ligne emm386 :
                      Il me crée de l'EMS (YES !) mais... (ce bougre de DOS lutte toujours)
                      MOM me signifie qu'il me faut 2700K d'expanded memory.
                      En essayant sur mon ordi de salon, pareil...(!)
                      As tu essayé de lancer MOM chez toi en gardant frame=none parce que ici, j'ai bidouillé jusqu'à plus soif, methode "avec...sans" et c'est soit pas assez d'expanded memory, soit MOM se lance sans memoire superieure (avec EMS toujours) mais comme la memoire superieure ne soulage plus la conventionnelle, je plafonne à 570K... pas assez pour MOM.

                      Je seche, c'est rageant quand je pense qu'il a enfin de l'EMS, c'est à se bouffer les c...

                      Je continue. Tiens moi au courant si ca marche chez toi

                      Commentaire

                      • Victor
                        Nettoyeur


                        • mars 2004
                        • 5316

                        #12
                        Fais une copie intégrale du contenu de tes fichiers autoexec.bat et config.sys dans ton prochain message.

                        Je crois aussi que tu confonds certaines choses mais je me trompe peut-être.
                        Si tu as de l'ems, alors tu ne peux pas avoir moins de 2700Ko sauf si tu as spécifié une valeur inférieure ou si ta mémoire de ton pc n'est que de 3Mo (GASP!).
                        Il faut mettre au chois dans la ligne un de ces paramètres
                        ram
                        noems
                        frame=none
                        rien
                        Les 3 premiers permettent d'activer les UMB, le 2e est le seul qui n'active pas de mémoire EMS.
                        Pour avoir plus de 600Ko sur un portable c'est très très chaud.
                        J'y arrive à peine avec le mien en chargeant le minimum de trucs (souris, emm et lecteur cd).
                        Je vais essayer le jeu quand j'aurais le temps.

                        Edit de victor
                        Suite à ton message privé du fait que tu n'arrives pas à poster:

                        Pour éviter de taper des copies de captures d'écran ou de fichiers texte, tu peux utiliser le paramètre de redirection de sortie.
                        Exemple:
                        dir c:\
                        liste tous les fichiers de c:\ vers la sortie par défaut, l'écran
                        mais
                        dir c:\>nom_de_fichier
                        fait la même chose mais vers un fichier texte (le nom qu'on veut).
                        Rien ne sera affiché à l'écran mais tout sera dans le fichier.
                        Donc pour faire un mem, tu tapes:
                        mem /d>c:\mem.txt
                        ça créera un fichier mem.txt dans c:\ que tu pourras recopier ici sans fatigue.

                        Si tu as windows 98, tu peux taper à l'invite de commande
                        help
                        qui te donnera toutes les informations sur les paramètres, les commandes, etc de ms-dos (pour la signification de novcpi et nomovexba).
                        Si le fichier n'est pas dans c:\windows\command, tu peux le copier à partir du cd de windows 98 dans other\oldmsdos, de mémoire.

                        Ta disquette devrait contenir ces fichiers autoexec.bat et config.sys:
                        CONFIG.SYS
                        DOS=HIGH,UMB
                        DEVICEHIGH=A:\HIMEM.SYS
                        DEVICEHIGH=A:\EMM386.EXE RAM NOVCPI VERBOSE
                        FILESHIGH=40
                        BUFFERSHIGH=20
                        LASTDRIVEHIGH=Z
                        STACKSHIGH=9,256

                        AUTOEXEC.BAT
                        @ECHO OFF
                        PROMPT $p$g
                        LH KEYB FR,, A:\KEYBOARD.SYS
                        LH A:\MOUSE.COM

                        Pas besoin d'en mettre plus (country ne sert à rien pour les jeux, setver non plus sauf très vieux jeux).

                        J'ai essayé le jeu sous dosbox (10000 cycles, frameskip 1) et ça ne me semble pas particulièrement lent ou saccadé (je n'ai qu'un modeste xp 1500+).
                        Je ne suis pas allé très loin non plus, je ne comprends rien mais ça allait (l'intro, les dépalcements, les batailles, tout quoi).
                        Bon ben je vais aller nettoyer les pc !

                        Commentaire

                        • ZeusTheBeagle
                          Swordsman


                          • décembre 2003
                          • 230

                          #13
                          Quelques précisions qui t'aideront peut-être à régler ton problème :

                          Le Page Frame dont tu cherches l'adresse n'existe pas dans ton cas. EMM386 n'a pas réussi à le créer.

                          EMM386 cherche, entre les 640k et 1024k une zone de 64 ko où il mappera des pages à la demande du programmeur. Il semblerait qu'il n'arrive pas à trouver, sur ta machine, 64 ko de mémoire contiguë dans cette zone.

                          L' option I sert à lui dire de chercher dans des zones où il ne regarde normalement pas parce que quelque chose d'autre y est normalement.

                          L'option X sert à lui dire ne ne pas regarder dans certaines zones. Elle n'est à utiliser que s'il ne détecte pas qu'une zone est déjà utilisée, et qu'il se l'approprie.

                          Normalement, on obtient l'adresse du Page Frame en utilisant la fonction 41h de l'interruption 67h
                          Si en retour AH=0, alors BX contient cette adresse.
                          Sinon, elle n'existe pas...

                          Tu peux facilement vérifier, avec debug, en entrant :

                          a 100
                          mov ah,41
                          int 67
                          int 3
                          <return>
                          g=100


                          Il devrait alors t'afficher tous les registres, dont AH et BX.

                          En refaisant la même manip avec 40 au lieu de 41 dans AH, tu obtiendras en retour dans AH un code d'erreur plus précis que le texte qu'affiche EMM386 au démarrage...

                          Commentaire

                          • Sockart
                            Compte archivé

                            • mars 2005
                            • 7

                            #14
                            C'est saoulant parce que des que je veux poster un log ou le contenu d'un autoexec et d'un config.sys, le forum me jette :
                            "Les erreurs suivantes sont survenues quand ce message a été envoyé:
                            Votre message contient une ou plusieures URL's, retirez les avant de pouvoir le soumettre".

                            Du coup, je poste ma réponse là :
                            argh, j'peux même pas mettre le lien, ni même de smileys (!!)

                            Bon, ma réponse est sur le forum de ShinoD7 dans Aide technique...

                            Edit de Sockart
                            Victor : Essaye MOM sous Dos. Avec la dosbox, au début, c'est rapide mais au bout d'une centaine de tours(ce qui est rien sous MOM), ca commence à ramer drolement (20 secondes entre chaque tours). Tandis que sous Dos, en deux secondes maxi, c'est plié.

                            Zeus : (Que dire...)

                            Je me lance avec Debug et je te fais un topo vu que les résultats que j'en tirerai seront comme du chinois pour moi (je le crains).

                            Normalement, on obtient l'adresse du Page Frame en utilisant la fonction 41h de l'interruption 67h
                            Si en retour AH=0, alors BX contient cette adresse.
                            BX a l'air prometteur mais ou apparait-il ?

                            Commentaire

                            • Victor
                              Nettoyeur


                              • mars 2004
                              • 5316

                              #15
                              OK, après savoir regardé ton fichier de config mémoire sur le forum Shino, j'ai compris d'où vient l'embrouille.
                              C'est quoi ce système d'exploitation que tu utilises??
                              La version de pilote XMS est 3.95 pour windows 98, la tienne 3.16 date de je ne sais quand (dos 6.22?).

                              La première chose à faire, c'est de créer une disquette de boot potable, avec les derniers fichiers si possible (windows 98 se).
                              Tu recommences les manips et ça devrait mieux se passer ensuite.
                              Si tu n'as pas windows 98se, tu peux utiliser les fichiers de la shinoA4.

                              Quand je fais un mem /d sur mon portable:
                              himem.sys ne prend QUE 1Ko, chez toi 34Ko !!!
                              Résultat à config équivalente, j'ai 596Ko de libre contre 572 chez toi.

                              PS: pour que tu puisses à nouveau poster ici, vide le cache de ton navigateur, ça devrait marcher.
                              Bon ben je vais aller nettoyer les pc !

                              Commentaire

                              Chargement...