MSX Village forum

La Place des Développeurs Nestor Basic problemes de memoire ? !

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 26/03/2016 à 21h06
hello,


je viens de m'apercevoir de quelque chose de tres ennuyeux pour la suite de la programmation de mon jeu...

Sur un Msx2 de 128k de ram, Nestor Basic permet d'acceder à toute la ram libre par le biais de segments de memoires de 16k

ainsi, la fonction e=usr(1):print p(2) , retourne le chiffre 8
pour 8 segments de 16K

si je lance nestor Basic depuis une cartouche SD qui demarre sous Msxdos,
la mêmem fonction me retourne 5 segments de 16k de libres

et si je demarre le Msx2 avec la cartouche SD sans passer par MSDoS, alors il me retourne
6 segments 16k de libres.

donc mon probleme c'est de savoir pourquoi 3 ou 2 segments de 16K de la ram ne sont plus accessibles si j'ai une cartouche SD dans le Msx ?
et si il y a moyen de les liberer ?


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 27/03/2016 à 08h37
Si je me trompe pas, c'est le fonctionnement élémentaire du msx qui veut ça.

A savoir que selon le "genre" de cartouches utilisées, le msx réserve une petite partie de ram pour utiliser la rom en "reflet".

Si j'ai bien compris, les cartouches utilisant des pages de 16 ko vont utiliser un reflet sur une surface de ram de 16 ko.

Selon la cartouche les 16 ko de reflet peuvent être utilisés de tel a tel emplacement.. pareil pour les konami 8 ou konami 16, Ascii etc etc..

Je peux me tromper mais je crois que c'est ça :(


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/03/2016 à 09h03
ericb59 :
donc mon probleme c'est de savoir pourquoi 3 ou 2 segments de 16K de la ram ne sont plus accessibles si j'ai une cartouche SD dans le Msx ?


Sans doute parce que le DOS2 rérerve des pages pour lui.
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 27/03/2016 à 09h13
GDX :
ericb59 :
donc mon probleme c'est de savoir pourquoi 3 ou 2 segments de 16K de la ram ne sont plus accessibles si j'ai une cartouche SD dans le Msx ?


Sans doute parce que le DOS2 rérerve des pages pour lui.




Est il possible de zapper cette réservation et de libérer la mémoire ?


banniere-ericb59e
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/03/2016 à 09h23
Il doit y avoir une commande DOS pour parametrer le nombre de page à réserver pour le buffer du DOS2.

Edit : Essaie la commande "Buffers". La commande est expliquée au lien suivant.

http://msx.hansotten.com/uploads/msxdocs/command.txt

Il semble que tu peux mettre 2 minimum au lieu de 5 par défaut. Edité par GDX Le 27/03/2016 à 09h58
   
TurboSEB Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5886

Le 27/03/2016 à 10h03
Le problème serait-il le même avec un Dos2 en cartouche?



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 27/03/2016 à 10h31
@GDX J'ai essayé avec Buffers 2
La commande est bien prise en compte. Mais en revenant au Basic, puis en affichant le nombre de segments libres dans Nestor Basic j'ai toujours 5 :(

@TurboSeb. Je n'ai pas de cartouche uniquement DOS2. Mais le problème est identique avec une cartouche IDE SUNRISE par exemple.


banniere-ericb59e
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 27/03/2016 à 10h38
Rectificatif. J'ai une cartouche DOS2
et j'ai fait le test. Si je boot sur une Disquette Dos2 avec la cartouche DOS2.20
Nestor Basic m'affiche toujours 5 segments libres.

Hors, j'ai besoin de mes 8 Segments libres pour mon jeu :(
bon sang... :moue


banniere-ericb59e
Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 27/03/2016 à 11h14
Nestor Basic ne prend peut-être pas en compte la commande Buffers ou alors ce n'est pas modifiable sous Basic. Il faudrait contacter Konaminan pour en savoir plus.
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 27/03/2016 à 11h22
C'est sans doute un effet normal en fait ...

Je viens de lire dans la doc de NEstor Basic :
"Full access to all te available memory of the computer (all existing memory
in the case of DOS 1, all free memory in the case of DOS 2), up to 4 Mb."

Sous entendu que DOS2 se réserve de la mémoire.


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 27/03/2016 à 11h54
le MSXDOS 2 se reserve des pages de 16k pour travailler
par exemple la gestion d'un CD-ROM demande une page de 16K supplémentaire
il ne faut pas utiliser les pages réservées sous risque de plantage
c'est pour ça aussi qu'il ne faut programmer avec le programme de crack du DOS 2 qui permet de lire les pages mais utiliser les jetons du MSXDOS 2


:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie