Quelques expériences pour le plaisir avec CP / M-86. L'accent est mis sur IBM XT CP / M-86 et les dérivés sur PC. Mais la plupart des outils fonctionnent avec le Just4Fun V20-MBC SBC.
La source de Doc CP / M-86, Sources et Binaires est http://www.cpm.z80.de.
Une distribution nettoyée et un noyau est disponible sur https://github.com/tsupplis/cpm86-kernel. Cette distribution fonctionne bien dans des environnements virtuels, corrigées avec tous les correctifs connus, «Y2K» amicalement (il contient la version de TOD que les sources sont dans ce projet) et chez Friendly.
INF: Usage: ls [-h] | [-a] [-p] [-s|-r] [-l|-b] filepat
INF: File listing utility
INF: where filepat is [user/]filespec with wildcard
INF: -h for help
INF: -a for all files (including system)
INF: -p for for pausing one screen at a time
INF: -s for alphabetic sorting
INF: -r for reverse alphabetic sorting
INF: -l for long listing
INF: -b for basic listing
INF: Usage: rm [-h] | [-a][-i] filepat
INF: File delete utility
INF: where filepat is [user/]filespec with wildcard
INF: -h for help
INF: -a to include both dir and sys files
INF: -i for user validation per file
INF: -f force file deletion even if read only
INF: Usage: more -h | [infile]
INF: File paging utility
INF: where infile is [user/]filespec
INF: -h for help
INF: Usage: write -h | [-a] filename
INF: File write/create utility
INF: where filename is [user/]filespec
INF: -h for help
INF: -a to happen to existing file
(Ctrl-C ou Ctrl-Z utilisé pour terminer l'entrée)
INF: Usage: dump -h | [-p][-r] [infile]
INF: Hexa file dump utility
INF: where infile is [user/]filespec
INF: -h for help
INF: -p pausing every page
INF: -r raw output
INF: Usage: mode -h | option option ...
INF: Console configuration utility
INF: -h for help
INF: and options:
INF: cls Clear screen
INF: cursor=on Show cursor
INF: cursor=off Hide cursor
INF: statln=on Show status line
INF: statln=off Hide status line
INF: status= Set status line message
INF: fg= Set foreground color (1-F)
INF: bg= Set background color (1-F)
INF: Usage: touch [-h] | filespec
INF: Empty file creation utility
INF: -h for help
INF: Usage: wc [-h] | [-a] filepat [filepat] ...
INF: File word/line/character count utility
INF: where filepat is [user/]filespec with wildcard
INF: -h for help
INF: -a to include both dir and sys files
INF: Usage: printenv [-h]
INF: Display environment variables
INF: -h for help
Pour le statut, ( s: espace, \: , u: supérieur, l: inférieur)
Les outils Atinit, Rtcinit et Pceinit fournissent un vidage de configuration rapide équivalent à ce que CP / M-86 1.1 s'affiche sur le démarrage
CP/M-86 1.1, BDO 2.2
Hardware Configuration:
- System Memory: 640Kb
- Available Memory: 607Kb
- Math Coprocessor: No
- Floppy Drive(s): 2
- Hard Disk(s): 1
- Parallel Port(s): 1
- Serial Port(s): 2
Date now: 2021-9-27 22:17:39.0
Tous les outils C (RM, LS, Mode, More, Write, Dump) bénéficient du modèle de spécification de fichier d'Aztec C: [User] / [Drive]: [Filescec]. ainsi que les redirections de base <fichier et> de fichiers sont prises en charge.
Sauf indication contraire, tous les outils fonctionnent sur
Pour les Os suivants, seuls les outils de fichiers fonctionnent bien. L'interaction avec le BIOS est généralement interdite (atinit / attime et pceinit / pCetime) ...
Ces Os fonctionnent incroyablement bien sur le PCE sur les images de disquette et HD. Cet émulateur est simple, petit et fonctionne un régal. Fantastique...


LINK86 Linkage Editor 02/Feb/87 Version 2.02
Cross Linker: DOS -> CPM-86 & CDOS-286 1/2/86
RASM-86 Assembler 12-Mar-87 PC-DOS Version 1.4a
Pour un environnement rudimentaire de développement croisé, regardez (https://github.com/tsupplis/cpm86-crossdev).
Certains scripts de soumission / lots sont fournis pour DOS (Aztec 3.4) et CP / M-86 (Aztec 3.2) sont également disponibles.
Bien qu'il s'agisse d'un système d'exploitation très primitif (dans certains cas, en fait de manière agréable primitive ... pas de gestion du temps du tout en dehors de l'horloge, par exemple), il est possible de faire beaucoup de choses avec quelques bons outils:
La grande chose cool avec ce petit système d'exploitation est à quel point il est petit. Je ne configure jamais plus de 128K sur mon PCE VM et une seule personne peut jouer avec un amateur avec lui. Comme mentionné précédemment, cela fonctionne également très bien avec le Just4Fun V20-MBC SBC (https://hackaday.io/project/170924-v20-mbc-a-v20-8088-8080-cpu-homebrew-cocomputeur). Autre chose cool: il est conforme à Y2K avec le remplacement de TOD au-dessus et un petit piratage visuel. Oui pas de gestion de la date ...
Il rend les premières sources de MS-DOS comme attrayantes. MS-DOS 2.x est beaucoup plus flexible et a un écosystème plus grand que CP / M-86. Cela en fait plus un défi ;-)
Les outils DR sont disponibles via (http://www.cpm.z80.de/binary.html) et de nombreuses autres sources. J'ai trouvé la dernière version de Turbo Pascal et de Poly Pascal sur un site danois très exhaustif axé sur les ordinateurs de la série RC700 qui sont également émulés par PCE. Ils ne sont pas compatibles PC mais les deux Pascal sont génériques et fonctionnent sur la famille CP / M-86 basée sur IBM PC.
Mais les fichiers doivent être extraits des images disques à l'aide de CPMTools en utilisant la définition suivante:
diskdef rc75x
seclen 1024
tracks 154
sectrk 8
blocksize 2048
maxdir 512
boottrk 4
os 3
end
Turbo Pascal 3.01a est la dernière relance sur CP / M-86 (n'oubliez pas de la configurer à l'aide de Tinst) et est en anglais. Poly Pascal est également en anglais, mais le fichier de messages et l'aide en ligne sont en danois. Pas un gros problème pour les traduire. Poly Pascal est vraiment un jumeau, un frère ou une ancêtre de Turbo Pascal. Un peu cool pour jouer avec.
Macro Assembleur, C, Pascal, Structure Basic ... De quoi d'autre avons-nous besoin d'autre?
La compilation croisée peut être effectuée soit en utilisant l'émulation DOS (EMU2, PCE) ou en utilisant un système d'exploitation hybride
... Exécutez tous les outils ci-dessus (à la fois dans leur version DOS et CP / M) et vous pouvez tester directement les binaires CMD.
Il existe quelques émulateurs CP / M-86 pour DOS (ame86.exe, cpm86.exe), malheureusement, leurs sources ne sont pas vues nulle part et ils auraient besoin d'un peu de maintenance. Seuls les programmes rudimentaires fonctionnent.
Enfin, l'assemblage utilisant ASM86 et GENCMD peut également être fait, mais il faut faire sur des environnements CP / M (les dérivés CP / M-80 ou CPM-86 peuvent être utilisés)
Il manque un peu du côté de l'outillage ... donc je vais porter des outils peu à petit pour le confort.
C'est quand même un drôle de découverte et d'archéologie ...