MSX Village forum

La Place des Développeurs Transférer des programmes CP/M sur un PC ou sur un CPC 6128 CP/M MSX 2

Fabf Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 24/08/2010 à 20h55

Messages: 4833

Le 11/05/2012 à 17h56

Reprise du message précédent

J'ai quelques questions sur le CP/M

Est il compatible avec les programme MSX en .COM ?

Gère t'il les répertoires ?

Merci pour tes réponses éclairées
spoke Membre non connecté

Vagabond

Rang

Avatar

Inscrit le : 07/05/2012 à 09h15

Messages: 23

Le 11/05/2012 à 23h53
Salut Fabf,

Oui, le MSX 2 bénéficie de CP/M Plus, donc pratiquement tous les programmes CP/M tournent dessus.
Sauf de rares exceptions qui ne respectent pas la programmation CP/M.

Respecter les impératifs CP/M, ça veut dire ne pas utiliser le hardware spécifique ni le système de l'ordinateur hôte.
Par exemple, on appelle toujours une fonction CP/M par un CALL 5 sur n'importe quel ordinateur : que ce soit pour écrire à l'écran, imprimer, charger un fichier, etc...

En désassemblant CP/M, on voit que sur un Amstrad CPC6128, le CALL 5 renvoie à l'adresse &DB00.
Sur Amstrad on peut donc appeller les fonctions CP/M directement par un CALL &DB00 et gagner un rebond : mais en fait c'est stupide,
car le programme ne fonctionnera pas sur les autres ordinateurs.

Si tu respectes le CALL 5 et les autres numéros de fonctions, ton programme est assuré de fonctionner partout, sur plus de 200 ordinateurs.

Mais quelquefois, le constructeur fait réaliser des programmes CP/M spécifiques à son ordinateur, pour profiter d'une particularité.
S'il ne respecte pas les conditions ci-dessus, ça peut ne pas tourner sur les autres machines. Mais ce sont des exceptions.

Quand aux répertoires, c'est le point faible de CP/M : Il n'y en a pas.
Seulement 16 zones utilisateurs, beaucoup moins pratiques.
MS-DOS a amené de ce côté-là une très bonne chose.

Tu peux néanmoins créer tes propres comandes "CD" et "MD" ou "MKDIR" comme sur MS-DOS et créer toi-même tes répertoires,
en mettant un flag sur les fichiers qui utilise les 200 n° de User non utilisés et une table index dans un fichier système.
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie