CPM / Z80 / 8080 – Introduction

14 juillet 2020

Cette page est un retour vers un passé heureux dans lequel l’ordinateur restait un environnement compréhensible. Cet environnement j’en ai usé, abusé à la fin des années 70 jusqu’au milieu des années 80. Cette époque heureuse s’est terminée lorsque IBM a réussi à imposer un environnement construit autour d’un 8086 et que Microsoft a inondé la planète avec Windows. Cet environnement heureux, le premier O.S. Hardware Indépendant, se nommait CP/M, il avait été développé par Gary Kildall, le fondateur de la société Digital Research.

Sans Gary Kildall, un vrai visionnaire et non un profiteur de plagiats honteux, jamais la micro-informatique n’aurait pu s’ouvrir à l’universalité qu’elle connaît depuis plus de trente ans.

Dans ces années heureuses j’avais développé en F80, un FORTRAN Microsoft à cheval entre le FORTRAN IV et le FORTRAN 77, un progiciel de gestion graphique dédié à un terminal à balayage cavalier rafraîchi vendu par la CSEE. C’était le bon temps où avec 64ko oui kilo, pas méga ou giga, 64ko il était possible de réaliser de belles applications efficaces, compactes, compréhensibles donc maintenables.

Aujourd’hui, avec les processeurs ultra rapides, des mémoire illimitées, chouchoutés par des environnements graphiques, on perd complètement de vue les éléments qui font tourner une machine nommée ordinateur. Heureusement quelques fêlés pointus ont développé un émulateur construit pour faire tourner les processeurs mythiques que sont les Z80 de Zilog et le 8080 d’Intel. Plus fort encore ces émulateurs intègrent un O.S. simple et efficace CP/M.

Un site décrit l’ensemble des opérations pour installer un environnement opérationnel. Comme tous les processus d’installation, entre ce qui est écrit et disponible, des adaptations sont à prévoir. Ce qui suit récapitule les opérations et modifications que j’ai exécutées pour arriver à une émulation fonctionnelle.


Page racine de l’émulateur en cliquant ICI.


Installation de l’environnement sous LINUX

Pour info le fichier original est en anglais, mes adaptations et commentaires sont en français/italique.

Dans votre répertoire utilisateur créer un répertoire destination. Par convention, nous le nommerons Z80. Passer les commandes suivantes :
cd
mkdir Z80

  • Download the z80pack source archive
    Choisir la version la plus récente qui est contenue dans le lien suivant : z80pack-1.36.tgz
    Copier le fichier téléchargé dans le répertoire Z80
  • Unpack the source archive in your home directory:
    tar xzvf z80pack-1.36.tgz
  • Compile the CP/M emulation:
    1. cd ~/z80pack-1.36/cpmsim/srcsim
    2. make -f Makefile.linux
    3. make -f Makefile.linux clean
  • Compile support programs, some are needed for the emulation:
    1. cd ~/z80pack-1.36/cpmsim/srctools
    2. Dans le répertoire il FAUT modifier le fichier Makefile comme suit pour définir le répertoire d’installation :
      #INSTALLDIR=${HOME}/GED/Informatique/Z80/bin
      INSTALLDIR=/usr/local/bin
      Pour éviter de poursuivre l’installation en tant que root, il faut ouvrir les droits d’accès au répertoire /usr/local/bin en passant la commande suivante :
      sudo chmod 777 /usr/local/bin
    3. make
      Cette commande génère quelques warnings que l’on peut ignorer.
    4. make install
    5. make clean
    6. Restaurer les droits standards du répertoire /usr/local/bin
      sudo chmod 755 /usr/local/bin/
  • MAKE BACKUPS OF THE BOOTABLE DISK IMAGES:
    1. cd ~/z80pack-1.36/cpmsim/disks/library
    2. cp -p * ../backups
  • To run CP/M 2.2:
    1. cd ~/z80pack-1.36/cpmsim
    2. ./cpm2
    3. To leave the emulation type a:bye. This program executes a Z80 HALT instruction which terminates the emulator.

A cet instant vous disposez d’un micro ordinateur avec deux Floppies 8″, respectivement A: et B:, de 256ko chacun. Plus bas vous trouverez la procédure pour ajouter deux autres Floppies 8″, les disques C: et D:.


Exemple de session

Avant l’installation de disques image, l’ensemble des logiciels à minima est déjà disponible.


Création d’un environnement spécifique

Les limitations imposées par la taille des disques (256ko) au format IBM3740 conduit a ouvrir un espace de travail supplémentaire avec deux disques supplémentaires. Il est profitable de définir à cette occasion un environnement spécifique.

Rappel sur l’affectation des répertoires

Le répertoire utilisateur Linux /home/mon_compte est considéré comme la racine. L’ensemble de l’environnement est contenu dans le répertoire créé plus haut, à savoir z80pack-1.36
Ce répertoire contient de nombreux outils qui ne seront pas décrits ici.
La partie de arborescence qui nous intéresse est contenue dans le répertoire cpmsim

cpmsim

Création des disques C: et D: dans mon répertoire de travail

Les disques C: et D: sont des floppies 8″ au format IBM3740
Pour créer deux unités contenant chacune un disque dans le répertoire library, on passe les commandes suivantes :
cd $HOME/z80pack-1.36/cpmsim/disk
mkdir my-directory
cp -p backup/* my-directory
cp -p library/cpm2-2.dsk my-directory/wrk-drivec.dsk
cp -p library/cpm2-2.dsk my-directory/wrk-drived.dsk

Création d’un script de lancement

Le script de lancement se trouve dans le répertoire cpmsim
Dans ce répertoire passer la commande
vim mon-script
Puis insérer les lignes suivantes

#!/bin/sh
# Effacement des liens
rm -f disks/drive[abcd].dsk
# Création des liens entre disques virtuels et disques de données
ln disks/my-directory/drivea.dsk disks/drivea.dsk
ln disks/my-directory/driveb.dsk disks/driveb.dsk
ln disks/my-directory/wrk-drivec.dsk disks/drivec.dsk
ln disks/my-directory/wrk-drived.dsk disks/drived.dsk
# Lancement de ma session avec les disques de my-directory
./cpmsim $*

une fois le script sauvé rendre le script exécutable avec
chmod 700 mon-script

La machine virtuelle est disponible, elle démarre avec la commande suivante
./mon-script


Si vous souhaitez prendre contact avec moi, cliquez ICI.

()