Comme je suis toujours à la recherche d'une version CP/M Plus 3.0 qui aurait existé...
J'ai enfin trouvé une véritable version 3.0 de CP/M !!! Elle a bien existé comme je le pensais!!
J'ai fait appel à un spécialiste mondial de CP/M pour pouvoir la lire (si elle fonctionne encore!) car je ne possède bien évidemment pas de lecteur de disquette 8 pouces!
Si j'arrive à tester mon programme sur l'ordinateur hôte, ce sera la cerise sur le gateau. Mais je considère mes recherches d'une v3.0 authentique dores et déjà abouties! Patience et persévérance finissent toujours par payer.
Inscription : 13 Jan 2010, 14:25 Message(s) : 2273
C'est beau !
Au passage, c'est (de mémoire) la première fois que je vois écrit le terme DISKETTE en anglais. Je me disais aussi, qu'on avait pas pu l'inventer en français...
Le code source de MS-DOS v1.1 venant d'être publié par Microsoft, il est intéressant d'aller y jeter un coup d'oeil :
Le site web "Computerhistory" qui publie le code source (en contact avec Jim Paterson) finit son article en nous affirmant que MS-DOS n'est absolument pas copié sur CP/M, dixit un pseudo-expert... ^___^
Regardons plutôt le code source par nous-même : Il utilise les même noms de fonctions que CP/M! il a gardé les mêmes numéros!
Code :
;System call function codes PRINTMES: EQU 9 // pompage de : CP/M BDOS function 9 (C_WRITESTR) - Output string OPEN: EQU 15 // pompage de : CP/M BDOS function 15 (F_OPEN) - Open file CLOSE: EQU 16 // pompage de : CP/M BDOS function 16 (F_CLOSE) - Close file READ: EQU 20 // pompage de CP/M BDOS function 20 (F_READ) - read next record SETDMA: EQU 26 // pompage de CP/M BDOS function 26 (F_DMAOFF) - Set DMA address MAKE: EQU 22 // pompage de CP/M BDOS function 22 - create directory
Regardons le début du code :
Code :
ORG 100H ; tiens, tiens... ça me rappelle quelque chose! hahaha ^^ PUT 100H
JMPS BEGIN
HEADER: DB 13,10,'Seattle Computer Products 8086 Assembler Version 2.44' DB 13,10,'Copyright 1979-1983 by Seattle Computer Products, Inc.' DB 13,10,13,10,'$' BEGIN:
Il utilise le même délimiteur que CP/M, le signe $. Très original ce Tim Paterson. Bon, j'arrête, j'ai assez ri pour aujourd'hui...
J'ai montré plusieurs fois la routine en langage machine pour détecter la vraie version de CP/M, mais on peut le faire sans lancer CP/M : il suffit de dumper son fichier CPM3.SYS
Les machines Amstrad (et Sinclair+3) n'ont pas ce fichier car Locomotive Software l'a renommé C10CPM3.EMS C signifie CPC, 10 signifie v1.0 (de Loco, pas de DRI), CPM3 veut dire CP/M Plus, et EMS "Early Morning Start". Sur PCW c'est donc J14FCPM3.EMS pour Joyce version Locomotive1.4 French CPM+ (German=J14GCPM3.EMS) Sur ZX Sinclair+3 c'est S10CPM3.EMS pour Sinclair version Locomotive 1.0 CPM+ (si c'est en anglais pas de lettre E)
Un fichier EMS est un fichier SYS avec un mini "Loader" dans la première "page" (256 octets).
Pour l'Osborne Executive par exemple, en faisant un DUMP Hexa-Ascii de son fichier CPM3.SYS, on voit tout simplement ceci à l'offset 2B2A1h : C'est ici que la fonction 12 du BDOS vient chercher le numéro de version.
La fonction 12 du BDOS en fait, charge dans l'Accumulateur un octet se trouvant à l'adresse 1EA1
On démarre ce bon vieux SID, et on lui demande, poliment, de nous calculer combien fait 1EA1 plus ou moins 0200. (Pourquoi 0200? parce que le BDOS se trouve dans un fichier SPR, qui contient une "page" avant le code.
Dans notre cas, on ajoute. Donc, 1EA1 + 200 = 20A1. On dumpe alors le contenu de cette adresse (le fichier SPR ayant été chargé en mémoire au préalable) et on voit, effectivement, un octet 31H à cette adresse...
Inscription : 13 Jan 2010, 14:25 Message(s) : 2273
A propos d'EMS, voici une petite capture d'écran de mon CPC après un |EMS. J'ai ajouté la "ROM Accessory" mais je n'en connait pas le contenu et pas de doc à ce sujet... J'imagine qu'elle ajoute des commandes en plus des 6 résidentes, mais lesquelles ?
Tu n'auras pas manqué de remarquer que ma X-MEM est vu comme un RAM drive DK'Tronics de 444K !!! Il est résidant au reset et même à un power OFF/ON du CPC ! Sais-tu si l'on peut le paramétrer pour n'utiliser que les 256 dernier Ko par exemple ?
Inscription : 13 Jan 2010, 14:25 Message(s) : 2273
Merci, je vais essayer les commandes de la page pour voir. Sinon, ils ne parlent pas du RAD probablement parce qu'ils n'avaient pas plus de 128K à l'époque lors de l'article.
Je recherche le programme RPED.BAS (c'est un éditeur de texte écrit par Roland Perry en BASIC MALLARD protégé par la protection Mallard Basic SAVE,P que j'ai crackée.
Il se trouve sur le disk CP/M système du PCW et je n'en ai pas. Rien trouvé sur cpc p0wer.
J'ai un SDK avec CP/M pour PCW mais je n'arrive pas a le lire avec mon émulateur CPC. Read error disk...
Je mets ci-joint le dsk pour PCW 8256 contenant CP/M et RPED.BAS illisible sur mon émulateur CPC.
SI vous pouvez le mettre sur un DSK pour Amstrad CPC, je pourrai l'utiliser dans mon émulateur CPC. Merci
sPOKE
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Très pratique pour créer une disquette de type DSK, insérer des fichiers, les renommer, les supprimer, extraire des fichiers d'un DSK, voir le contenu au niveau HEXA ou ASCII, etc.
Vous n’êtes pas autorisé(e) à consulter les fichiers insérés à ce message.
Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 1 invité
Vous ne pouvez pas publier de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas insérer de pièces jointes dans ce forum