L'école RAM Disponible Sous MSXDOS2 ?
ericb59
Membre non connecté
Conseiller Municipal
Bonjour,
J'ai beau chercher je ne trouve pas l'information, ou je m'y prend mal ...
J'ai besoin de savoir quelles sont les zones mémoires libre sur un MSX2
après que MSX-DOS 2 soit chargé.
Quels sont les plages dispo dans les pages 0 à 3 des 64K de base.
merci d'avance.
J'ai beau chercher je ne trouve pas l'information, ou je m'y prend mal ...
J'ai besoin de savoir quelles sont les zones mémoires libre sur un MSX2
après que MSX-DOS 2 soit chargé.
Quels sont les plages dispo dans les pages 0 à 3 des 64K de base.
merci d'avance.
En voulant utiliser le DOS ou pas ?
Parce que si c'est seulement pour assurer le chargement d'un programme, après lancement de celui-ci, toute la RAM est dispo, de la page 0 à la page 3.
Parce que si c'est seulement pour assurer le chargement d'un programme, après lancement de celui-ci, toute la RAM est dispo, de la page 0 à la page 3.
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
ericb59
Membre non connecté
Conseiller Municipal
J'utilises des fonctions DOS pour le chargement de fichier en interne du programme.
J'ai voulu placer des DATAs en Page 3, et mon programme ne fonctionne plus. En y regardant de plus prêt avec le Debugger d'OpenMSX, je vois qu'il y a des données apparemment du MSXDOS en page 3 à partir de 0xC000
J'y vois N M S , Boot error press a key ... (J'utilise une emulation Turbo-r)
Si possible j'aimerai aussi savoir à quel adresse se trouve le Stack. Edité par ericb59 Le 13/10/2018 à 17h52
J'ai voulu placer des DATAs en Page 3, et mon programme ne fonctionne plus. En y regardant de plus prêt avec le Debugger d'OpenMSX, je vois qu'il y a des données apparemment du MSXDOS en page 3 à partir de 0xC000
J'y vois N M S , Boot error press a key ... (J'utilise une emulation Turbo-r)
Si possible j'aimerai aussi savoir à quel adresse se trouve le Stack. Edité par ericb59 Le 13/10/2018 à 17h52
la page 3 est utilisée pour les variables systéme de F380 a FFFF
la zone en dessous dépend du nombre de controleurs de disk
avec un controleur donc 2 disques elle commence a D87C avec un MSX DOS 2.3 visible avec Blue MSX
on voisle registre SP avec Blue MSX
il y a plusieurs version de MSX DOS 2 regarde ici pour le 2.40 http://www.msxcomputermagazine.nl/mccw/93/dos240/en.html
a priori il réserve 16k de plus dans la mémoire
l'en tête N M S veux dire New Media System c'est donc une disquette formatée avec un philips
la zone en dessous dépend du nombre de controleurs de disk
avec un controleur donc 2 disques elle commence a D87C avec un MSX DOS 2.3 visible avec Blue MSX
on voisle registre SP avec Blue MSX
il y a plusieurs version de MSX DOS 2 regarde ici pour le 2.40 http://www.msxcomputermagazine.nl/mccw/93/dos240/en.html
a priori il réserve 16k de plus dans la mémoire
l'en tête N M S veux dire New Media System c'est donc une disquette formatée avec un philips
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
j'ai retrouvé un utilitaire VMAP.COM par Ryoga
avec mon dos 2.30 voici les résultats
ADDR SIZE OWNER/PARAMETER
0000 256 <SYSTEM>
0100 54278 <FREE>
D506 4676 <CONFIG>
E74A 6326 <SYSTEM>
la mémoire libre est donc de 0100 a D506
avec mon dos 2.30 voici les résultats
ADDR SIZE OWNER/PARAMETER
0000 256 <SYSTEM>
0100 54278 <FREE>
D506 4676 <CONFIG>
E74A 6326 <SYSTEM>
la mémoire libre est donc de 0100 a D506
ericb59
Membre non connecté
Conseiller Municipal
Saut,
J'ai consulté les documentations que vous m'avez indiqué. Alors, il est tout a fait probable que je ne comprenne pas tout, et donc j'en suis toujours au même point.
Voici ma problématique.
Je charge un .com qui fait environs 20KO
une fois le programme execution j'ai besoin de connaitre jusque quelle adresse j'ai la possibilité de charger des DATAS.
Je connais la taille de mon programme, je sais qu'il va débuter en 0x0100.
Je sais que la taille de la TPA Dépend des MSX et des cartouches ou extensions qui sont déjà pluguées
J'ai lu que l'adresse haute de la TPA se trouve en 0x0006 et 0X007, mais à ces adresses, j'ai toujours 98h et 98h
L'adresse haute de la TPA ne peut pas être 9898h que je sache ! Elle est forcément en 0xC... quelque chose
Alors, pouvez vous me dire de façon concrète comment connaitre l'adresse du dernier octet libre de la TPA ?
Sur l'image ci-dessus, le contenu de la mémoire lorsque je suis sous MSXDOS, sans rien d'autre de chargé.
Le contenu est identique une fois mon programme chargé.
Toute fois les adresses 06h et 07h semblent changer lors du chargement d'un .com, mais reviennent à 98h 98h une fois le chargement terminé
Ca c'est le contenu de 0xC000 après un boot à froid. Il n'y a que le DOS2.33 de chargé. rien d'autre
C'est quoi cette daube en C000 ?
Emulation avec MSX Turbo-r sans options. juste Une disquette chargée et le Dos 2.33 chargé
Edité par ericb59 Le 16/10/2018 à 13h33
J'ai consulté les documentations que vous m'avez indiqué. Alors, il est tout a fait probable que je ne comprenne pas tout, et donc j'en suis toujours au même point.
Voici ma problématique.
Je charge un .com qui fait environs 20KO
une fois le programme execution j'ai besoin de connaitre jusque quelle adresse j'ai la possibilité de charger des DATAS.
Je connais la taille de mon programme, je sais qu'il va débuter en 0x0100.
Je sais que la taille de la TPA Dépend des MSX et des cartouches ou extensions qui sont déjà pluguées
J'ai lu que l'adresse haute de la TPA se trouve en 0x0006 et 0X007, mais à ces adresses, j'ai toujours 98h et 98h
L'adresse haute de la TPA ne peut pas être 9898h que je sache ! Elle est forcément en 0xC... quelque chose
Alors, pouvez vous me dire de façon concrète comment connaitre l'adresse du dernier octet libre de la TPA ?
Sur l'image ci-dessus, le contenu de la mémoire lorsque je suis sous MSXDOS, sans rien d'autre de chargé.
Le contenu est identique une fois mon programme chargé.
Toute fois les adresses 06h et 07h semblent changer lors du chargement d'un .com, mais reviennent à 98h 98h une fois le chargement terminé
Ca c'est le contenu de 0xC000 après un boot à froid. Il n'y a que le DOS2.33 de chargé. rien d'autre
C'est quoi cette daube en C000 ?
Emulation avec MSX Turbo-r sans options. juste Une disquette chargée et le Dos 2.33 chargé
Edité par ericb59 Le 16/10/2018 à 13h33
ce que tu vois c'est l'image des secteurs de la disquette
le dos 2 travaille avec des segment de pages 16k
suivant la mémoire disponible sur ta machine il faut bien un buffer pour passer du disque a la ram
c'est certainement ce que tu vois en C000
le dos 2 travaille avec des segment de pages 16k
suivant la mémoire disponible sur ta machine il faut bien un buffer pour passer du disque a la ram
c'est certainement ce que tu vois en C000
Visiteur
Vagabond
Message : 0
Les adresses 0x0006 et 0X007 contiennent les ports de lecture et premier port d'écriture du VDP (au passage les développeurs qui prennent par défaut 0x98 c'est pas bien!).
Les variables systèmes commencent à l'adresse 0xf380
Les variables et zones de travail MSX-DOS se trouvent entre 0xf1C1 et 0xf37f
Les variables du Basic et de la pile sont entre MEMSIZ (lire 0xf672) et HIMEM (lire 0xfc4a)
Donc je dirai que la mémoire vive disponible est donnée par :
BOTTOM (lire 0xfc48) et MEMSIZ (lire 0xf672)
Je pense qu'il faut que tu utilises, comme en Basic, la plage 2 de 0x8000 à 0xbfff et tu switches avec les pages RAM disponibles si tu as besoin de plus de 16 ko. Et au delà tu peux utiliser 0xc000 à MEMSIZ.
Edité par Visiteur Le 16/10/2018 à 15h05
Les variables systèmes commencent à l'adresse 0xf380
Les variables et zones de travail MSX-DOS se trouvent entre 0xf1C1 et 0xf37f
Les variables du Basic et de la pile sont entre MEMSIZ (lire 0xf672) et HIMEM (lire 0xfc4a)
Donc je dirai que la mémoire vive disponible est donnée par :
BOTTOM (lire 0xfc48) et MEMSIZ (lire 0xf672)
Je pense qu'il faut que tu utilises, comme en Basic, la plage 2 de 0x8000 à 0xbfff et tu switches avec les pages RAM disponibles si tu as besoin de plus de 16 ko. Et au delà tu peux utiliser 0xc000 à MEMSIZ.
Edité par Visiteur Le 16/10/2018 à 15h05
ericb59
Membre non connecté
Conseiller Municipal
sylvain :
Les adresses 0x0006 et 0X007 contiennent les ports de lecture et premier port d'écriture du VDP (au passage les développeurs qui prennent par défaut 0x98 c'est pas bien!).
Ben non, pas dans l'environnement MSX-DOS entre 0h et 0100h il y a plein de données
voir ici : http://map.grauw.nl/resources/dos2_environment.php#c2_5
2.3 PAGE ZERO USAGE
ericb59
Membre non connecté
Conseiller Municipal
@jipe Je veux bien. Mais est-ce que cela veut dire que toute la page 3 sert à MSX-DOS pour travailler ?
Je ne pense pas ...
Alors comment déterminer ce que j'ai le droit d'utiliser comme RAM ?
Je ne pense pas ...
Alors comment déterminer ce que j'ai le droit d'utiliser comme RAM ?
Visiteur
Vagabond
Message : 0
Ha, ok, je me suis fait avoir par tes copies d'écran. Tu montres la mémoire principale est là c'est bien ce que j'ai dit (Les adresses 0x0006 et 0X007 contiennent les ports de lecture et premier port d'écriture du VDP) c'est à dire le BIOS.
Une fois ton .com lancé tu devrais le voir en 0xc000 avec ce type de debug, et là oui les adresses 0xc006 et 0xc007 correspondent à la TPA.
Sinon demande à SHEM, il te la montrera dans la mémoire paginée :
Edité par Visiteur Le 16/10/2018 à 17h40
Une fois ton .com lancé tu devrais le voir en 0xc000 avec ce type de debug, et là oui les adresses 0xc006 et 0xc007 correspondent à la TPA.
Sinon demande à SHEM, il te la montrera dans la mémoire paginée :
Edité par Visiteur Le 16/10/2018 à 17h40
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie