Comment construire un ordinateur rétro? ... se lancer avec RC2014

Bonjour à tous, 

Dans l'article Wiki L'informatique rétro (apprendre et comprendre) j'étalais mon parcours dans la découverte des "nouvelles" machines rétros... principalement architecturées autour du processeur Z80.
Le seul processeur d'époque (1976) que l'on fabrique encore aujourd'hui!

Sélection du Projet RC2014 Pro

RC2014 est un projet modulaire autour du Z80, le projet que je vais prochainement explorer. 

Source: RC2014.co.uk

RC2014 est un projet qui remonte très régulièrement sur le Net dès lors que l'on fait des recherches sur le Z80 et/ou CP/M.

Par contre, il n'est pas toujours facile de s'y retrouver aux premiers contacts et sans un minimum de connaissance. C'est aussi le piège de la modularité et de la grande diversité des retours d'informations disponible sur le Net.

Se familiariser avec RC2014

Après en avoir appris assez sur le Z80 avec mes différentes lectures : l'informatique rétro (apprendre et comprendre, c'est finalement la série de vidéo suivante qui m'aura finalement décidé.

Ces vidéos sont axées autour du modèle RC2040 Mini (un modèle plus compact du RC2040) mais très proches concernant les fonctionnalités.

RC2014 mini - Z80 modular system - part 1


RC2014 mini - Z80 modular system - part 2 - Compact Flash

RC2014 mini - Z80 modular system - part 3

RC2014 mini - Z80 modular system - part 4 - Assembly coding


RC2014 mini - Z80 modular system - part 5 - CP/M

RC2014 mini - Z80 modular system - part 6 - Accessing the compact Flash storage from applications


Le kit RC2014 Pro

Pour commencer, c'est un kit qui a assembler... cela fait aussi partie des plaisirs d'un kit.

Le kit RC2014 Pro est un kit modulaire articulé autour d'une carte de fond (améliorée pour une meilleure stabilité du signal) équipée de 12 rangées de connecteurs.C'est assurément un kit orienté vers la découverte grâce aux cartes d'extensions disponibles.

Modules inclus dans le Kit

Le kit contient un CPU Z80 @ 7.3 MHz, 64 Kio de RAM et La ROM pageable qui permet l'exécution de Microsoft Basic, d'un Moniteur (SCM: outils de développement assembleur) ou le démarrage de CP/M 2.2 (ancêtre du DOS conçu par Digital Research et bien adapté à cet environnement).

Le kit est accompagné d'une carte avec double port série (SIO/2), un module d'horloge (double horloge), un module de stockage sur carte Compact Flash.

L'ensemble du système est accessible depuis un ordinateur via un terminal par l'intermédiaire d'un câble FTDI (branché sur le premier port SIO)

Il est possible de trouver plus d'information sur les liens suivants:

J'y ai ajouté deux autres modules vraiment très intéressant:

Module Digital I/O

Module qui propose 8 lignes en sorties et 8 lignes en entrées.
Module avec lequel il est possible d'interagir en Basic et en Assembleur.

Plus d'information sur cette page

Module Pico VGA Terminal

Ce module n'a pas manqué de retenir mon intérêt. Il utilise un Raspberry-Pi Pico avec PicoTerm (que je ne connaissais pas encore) pour créer un terminal autonome avec un moniteur VGA et un clavier USB.


Intéressant n'est-ce pas?

Plus d'information sur cette page

Mes prévisions à courts termes

Mise en place Pico Terminal 

Ce  qui sera certainement l'une des premières tâches que je réaliserais une fois le système opérationnel. C'est créer une machine autonome qui m'intéresse le plus... quoi qu'une liaison avec un PC risque d'être indispensable pendant un temps pour transférer des logiciels.

C'est par ailleurs la première fois que je rencontre PicoTerm... il faudra que je m'y penche pour voir ce que l'on peut en faire :-)

Peut-on aussi en faire une version LCD 80x24?
Ce serait pratique pour avoir un système totalement portable sur un PowerBank.

Apprendre l'assembleur Z80

Processeur très répandu, le Zilog  Z80 qui date de 1976 fût très utilisé dans les machines rétro (Gamme MSX, Sinclair ZX et copies, Commodore 128 qui a deux processeur dont un Z80, la gamme Amstrad CPCxxx, le TRS80 et même la Gameboy).

Il est facile de trouver des ressources pour apprendre à programmer le Z80 en assembleur. Il y a même une chaîne YouTube autour du Sinclair Spectrum (mais les fondamentaux restent les mêmes).

Je crois que cela m'occupera déjà un bon moment :-)

Si vous avez des recommandations... elles seront les bienvenues.

Exploiter le module I/O

Commander des entrées et des sorties, c'est fort intéressant mais surtout, cela permettra d'apprendre comment interfacer des cartes avec le RC2014.
Tout à fait dans la lignée des activités de MCHobby.

Module I2C

Parce que l'intérêt direct de pouvoir interfacer un module IO, c'est de pouvoir utiliser des capteurs I2C.
Faisant déjà de nombreux portage d'Arduino vers MicroPython, rien ne m'empêche d'envisager de faire de même avec le Z80 (et en basic).

Exploration CP/M sur Z80

CP/M est disponible en version 2.2 pour RC2014 (et nombreuses autres machines Z80)
J'ai déjà rencontré CP/M du temps de mon Commodore 128 (que j'ai revendu étant jeune). A l'époque Internet n'existait pas et il était donc impossible de trouver des logiciels.

Pourtant, il existe une assez vaste logithèque CP/M pour le Z80, il suffit de saisir les mots "Z80 CPM Archive" sur Google pour démarrer sa recherche.

Parmi les nombreux logiciels, il existe Turbo Pascal 3 que je me souvent avoir utilisé sur mes premiers ordinateurs PC.

Le projet Z80 Retro permet d'en apprendre énormément sur le fonctionnement interne d'une machine Z80 et le fonctionnement interne de CP/M 2.2 . De nombreuses vidéos très instructives. Mes principales connaissances Z80 et CP/M proviennent de cette chaîne.

N'hésitez pas a jeter un oeil sur The Unofficial CP/M website (www.cpm.z80.de)

Compiler du code Z80 sur PC / Raspberry-Pi

Il est également possible de compiler du code pour Z80 depuis un PC sous Linux... cela pourrait également être très intéressant.
L'article "My Z80 Linux Development Stack" de Jean-Phillipe Gravel est très intéressant.
Le projet Z80 Retro et son dépôt GitHub met aussi en place un environnement de développement Linux sur un Raspberry-Pi.

Mes prévisions à longs termes

L'une des principales mise-à-jour du RC2014 est l'ajout du module 512 Kio ROM + 512 Kio RAM qui utilise un système de paging/banking. 

Module 512 Kio ROM + 512 Kio RAM

Ce module ouvre de nombreuses autres voies d'explorations autour du Z80.

RomWBW 

ROM incluse sur ce module, RomWBW (https://github.com/wwarthen/RomWBW) permet de détecter et supporter des éléments matériels tels que Disquettes, Disque sur interface IDE (interface également créée par digital Research) et une horloge RTC. Avec le système de banque, il est aussi possible d'avoir un disque RAM.

Cette ROM propose l'implémentation de CP/M-80 et Z-System. Elle utilise également un module compact flash comme système de stockage. Offrant ainsi un accès persistant. L'introduction de la notion de sclice permet d'étendre l'espace de stockage au delà de la limite des 8Mio de CP/M. C'est ainsi que l'on obtient de multiples lecteurs de 8 Mio (  C:=IDE0:0 , D:=IDE0:1 ) sur un seul support physique (IDE0).

Certains logiciels peuvent être démarré directement depuis la ROM:

  • System Monitor
  • Operating Systems (CP/M 2.2, ZSDOS)
  • ROM BASIC (Nascom BASIC and Tasty BASIC)
  • ROM Forth

Il faut vraiment allez lire le fichier readme sur le dépôt... c'est rempli de détails utiles.

CP/M 3

Digital Research à continué ses développements de CP/M et c'est iansi que CP/M 3 est né (Aussi appelé CP/M plus).
Cette version de CP/M est capable d'exploiter des banques mémoires (Bank) permettant ainsi de gérer jusqu'à 1 Mio de mémoire RAM.
J'ai même croisé un article concernant CP/M 3 sur Commodore 128.

ZSDOS et Z-System

C'est depuis RomWBW que l'on découvre ZSDos. ZSDos est la version CP/M (non-DRI, non produite par Digital Research Inc.) visiblement la plus populaire. Souvent appelée Z-System, c'est une version améliorée de CP/M qui permet d'exécuter les applications CP/M 2.2 et spécialement optimisé pour le Z80.
Parmi les améliorations les plus notables, il y a:

  • l'ajout de date (timestamp) sur les fichiers.
  • Gestion de répertoire DOS (inexistant dans CPM 2.2).

ZSDOS est destiné à remplacer la section Disk Operating System de CP/M2.2 (aussi connue comme BDOS, cette section qui s'occupe sur le BIOS pour assurer les opérations sur les périphériques d'entrées/sortie... le BIOS s'occupant uniquement des échanges avec l'électronique/aspect matériel).

Il permet donc d'interagir avec les périphériques, y compris le moniteur/terminal et le clavier. Il permet d'obtenir des informations sur les périphériques de stockage mais aussi de charger un programme.

Le Dépôt RowWBM/Doc contient les manuels utilisation de ZSDOS et ZCPR.
Pour plus d'informations, voir les notes de Z-System.

ZCPR 3 et Z-System

Il existe plusieurs versions permettant de remplacer l'interpréteur de commande (appelé CPP dans la version original de CP/M) . ZCPR3 en est un également et s'appuie sur la couche BDOS (avec son remplaçant ZSDOS) .

ZCPR : Z80 Command Processor Replacement est par ailleurs documenté sur cette page WikiPedia

J'ai trouvé des guides d'utilisation sur cette page https://oldcomputers.dyndns.org/public/pub/manuals/zcpr/

C'est surtout dans le Dépôt RowWBM/Doc que l'on trouvera les manuels utilisation de ZSDOS et ZCPR. C'est très instructif.

Voir aussi ces notes de Z-System.

Autres systèmes d'exploitation?

Figurez-vous que CP/M n'est pas le seul système d'exploitation disponible pour Z80. En voici une belle liste disponible sur http://www.z80.info/z80os.htm

Processeur Z80180 et compagnies

La Z80 aura aussi connu une évolution vers le Z80180 (et apparenté), un processeur incluant des périphériques complémentaires en son coeur (Timer, I/O, MMU, DMA, UARTs) avec des fréquences d'horloges de 6 à 33 MHz.

Ressources

Je crois que je ne suis pas prêt de m'ennuyer... même avec un processeur aussi vieux qu'un Z80.

A tout bientôt pour d'autres aventures.

1 commentaire: