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

Reprise du message précédent
J'ai quelques questions sur le CP/MEst il compatible avec les programme MSX en .COM ?
Gère t'il les répertoires ?
Merci pour tes réponses éclairées
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.
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