Modifications

Sauter à la navigation Sauter à la recherche
Ligne 13 : Ligne 13 :  
Et l'aventure MC Hobby m'a aussi apporté son lot de savoir plutôt orienté "électronique" (voyez l'article "[[Origine_des_connaissances|Origine des connaissances]]" si cela vous intéresse).
 
Et l'aventure MC Hobby m'a aussi apporté son lot de savoir plutôt orienté "électronique" (voyez l'article "[[Origine_des_connaissances|Origine des connaissances]]" si cela vous intéresse).
   −
Ces derniers moi, j'ai agrémenté mon savoir d'informations {{underline|techniques}} sur ces technologies d'un autre age. J'ai découvert que l'on pouvait re-concevoir un ordinateur 8-bits ou 16 bits.
+
Ces derniers mois, j'ai agrémenté mon savoir d'informations {{underline|techniques}} sur ces technologies d'un autre age. J'ai découvert que l'on pouvait re-concevoir un ordinateur 8-bits ou 16 bits a partant de rien (ou presque).
    
== Un parcours initiatique ==
 
== Un parcours initiatique ==
Ligne 19 : Ligne 19 :  
Il n'est pas question ici de détailler le fonctionnement d'un Commodore 64, d'un Amiga ou toute autre machine ayant existé.
 
Il n'est pas question ici de détailler le fonctionnement d'un Commodore 64, d'un Amiga ou toute autre machine ayant existé.
   −
Nous allons faire de la rétro-informatique dans son aspect le plus fondamental... pour recréer un ordinateur en partant de rien... puis voir comment faire évoluer ces connaissances pour en faire d'autres choses tout aussi intéressante.
+
Nous allons faire de la "'''rétro-informatique moderne'''" dans son aspect le plus fondamental... pour recréer un ordinateur en partant de rien avec les technologies d'antan.
   −
Je vous invite donc dans mon parcours initiatique pour re-créer/re-concevoir un ordinateur 8 ou 16bit à la mode "retro" en repartant de rien!
+
[[Fichier:Intro-retro-informatique-moderne.png|480px]]
 +
 
 +
Je vous invite dans parcours initiatique que j'ai suivit.
 +
 
 +
Le but étant re-créer/re-concevoir un ordinateur 8 ou 16bit à la mode "retro" en repartant de rien (ou presque).
 +
 
 +
{{ambox|text=Les tutoriels et Vlogs ne manquent pas sur internet (surtout autour du Z80. Nulle doute qu'il y a certainement des références dignes d'être présentées ici.<br />Je me suis seulement contenté de résumé le parcours suivi dans ce domaine.}}
    
== Ch 1: La curiosité ==
 
== Ch 1: La curiosité ==
Ligne 47 : Ligne 53 :  
J'ai gardé un oeil sur ce projet tout en le trouvant assez extravagant. Sur le plan technique, c'est captivant!
 
J'ai gardé un oeil sur ce projet tout en le trouvant assez extravagant. Sur le plan technique, c'est captivant!
   −
A la fin de ce projet, il y a bien une machine capable de fonctionner et de faire des opérations. C'est un ordinateur rudimentaire mais c'est quand même un ordinateur.
+
A la fin de ce projet, il y a bien une machine capable de fonctionner et de faire des opérations. Il est à la source de nombreux autres projets du même type, certains beaucoup plus avancés.
 +
 
 +
Certes c'est un ordinateur rudimentaire mais c'est quand même un ordinateur!
    
* [https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU Building an 8-bit breadboard computer] de Ben Eater
 
* [https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU Building an 8-bit breadboard computer] de Ben Eater
Ligne 55 : Ligne 63 :     
Maintenant ça devient sérieux.  
 
Maintenant ça devient sérieux.  
 +
 +
[[Fichier:Bravo-8bit-computer.png|960px]]
    
Sur base du projet de Ben Eater, Config IO à re-créer un ordinateur 8 bits plus évolué que celui de Ben Eater. Il utilise toujours exclusivement des composants logiques.
 
Sur base du projet de Ben Eater, Config IO à re-créer un ordinateur 8 bits plus évolué que celui de Ben Eater. Il utilise toujours exclusivement des composants logiques.
   −
Ce projet avancé permet de découvrir:
+
Cet ordinateur est constitué d'une série de cartes empilées. Chaque carte reprenant une ou deux fonctionnalités de base. Chaque fonctionnalité expliquée en détail et complètement testée grâce à un Arduino Mega (c'est comme un ''test script'' hardware).
 +
 
 +
[[Fichier:Bravo-8bit-computer2.png]]
 +
 
 +
Ce projet avancé et ses vidéos détaillées permettent de découvrir:
 
* le bus de données,  
 
* le bus de données,  
 
* le bus d'adresse,  
 
* le bus d'adresse,  
Ligne 69 : Ligne 83 :  
* les opérations au niveau binaire/bus,
 
* les opérations au niveau binaire/bus,
 
* le MicroCode en ROM, sortie, etc
 
* le MicroCode en ROM, sortie, etc
 +
* la sélection de banques
 
* l'UART (interface principale)
 
* l'UART (interface principale)
   −
Le projet "[[https://www.youtube.com/c/ConfigIOI Bravo 8bit computer]]" (14 vidéos YouTube) est constitué d'une série de cartes empilées.  
+
Le projet "[https://www.youtube.com/c/ConfigIOI Bravo 8bit computer]" est développé en 14 vidéos YouTube.
 +
 
 +
A la fin du projet, plus besoin de l'Arduino Mega et l'ordinateur est fonctionnel.
 +
 
 +
<div style="margin: 15px 0; background: rgba(229,229,229,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #7f7f7f;" >Seul un terminal est nécessaire pour dialoguer avec la machine par l'intermédiaire du port série. Celle-ci dispose également d'un mini OS (rien à voir avec un DOS) mais déjà assez pour charger un jeu pong et l'exécuter dans un terminal.</div>
 +
 +
C'est, en gros, la même information que le projet de Ben Eater mais avec améliorations et résultat plus professionnel.
 +
 
 +
8bit bravo computer est même possible d'acheter un kit!
 +
* [https://www.youtube.com/watch?v=J8g5JJFWRPA&list=PLGAKSr7ldWJGOftDSv8rVRprKX-267lCA Bravo Project : playlist YouTube]
 +
* [https://github.com/config101/Bravo Bravo Project : Github]<br />Contient la BOM, schéma, croquis Arduino (de test) et tout ce qu'il faut pour faire fonctionner cet ordinateur.
 +
* [http://www.8bitkits.com/ 8bitkits.com]
 +
 
 +
== Ch 4: Assembleur Z80 ==
 +
Comme indiqué dans le projet "Z80 Retro" un peu plus loin, ce processeur est encore largement employé aujourd'hui. La force du Z80 c'est sa simplicité assorti de nombreuses fonctionnalités.
 +
 
 +
Faut-il encore savoir comment aborder l'assembleur Z80 avant de se lancer dans le projet "Z80 rétro" décris plus bas.
 +
 
 +
J'ai promis de faire l'impasse sur la plateformes Rétro habituelles mais il faut reconnaître que c'est plus facile d'apprendre l'assembleur Z80 sur une plateforme existante.  
   −
Chaque carte reprend une ou deux fonctionnalités de base, fonctionnalité expliquée en détails et complètement testée grâce à un Arduino Mega (c'est comme un ''test script'' hardware).
+
Voici donc le "[https://www.youtube.com/playlist?list=PLPSrOWYluVLJyKIIDxlBtwkFC5lCE3xnY Z80 Assembly language tutorial]" de Matt Heffernan
   −
A la fin du projet, plus besoin de l'Arduino Mega.  
+
[[Fichier:Z80-assembly.png|960px]]
   −
<div style="margin: 15px 0; background: rgba(229,229,229,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #7f7f7f;" >Seul un terminal est nécessaire pour dialoguer avec la machine par l'intermédiaire du port série. Celle-ci dispose également d'un mini OS (rien à voir avec un DOS) mais déjà assez pour charger un jeu pong et l'exécuter dans un terminal.</div>
+
Derrière cette série en 12 épisodes YouTube, il est possible d'apprendre et comprendre les rudiments de l'assembleur Z80 sur "ZX Spectrum".
 +
 
 +
La grande idée de la série de tutoriels en 12 épisodes (12 leçons) est d'utiliser un émulateur "ZX Spectrum" pour tester les programmes assemblés. Du coup, on ne quitte pas son PC pour cette partie de l'apprentissage.
 +
 
 +
Voici ce que l'on y apprend:
 +
* Les bases
 +
* Les modes d'adressage
 +
* Déplacement des données
 +
* Exécution conditionnelles
 +
* Arithmétique
 +
* La pile (''Stack'' en anglais)
 +
* Les opérations binaires et décalages (à droite et à gauche)
 +
* Opérations IN et OUT
 +
* Complément d'informations
 +
* La ROM
 +
* Introduction au Graphisme
 +
* Les interruptions
 +
 
 +
Ressources:
 +
* [https://www.youtube.com/playlist?list=PLPSrOWYluVLJyKIIDxlBtwkFC5lCE3xnY Z80 Assembly language tutorial] de Matt Heffernan
 +
* [https://github.com/SlithyMatt/zxs-assembly-tutorial GitHub avec les codes d'exemple] de Matt Heffernan
 +
 
 +
== Ch 5: projets avancés ==
 +
A partir d'ici, il y a deux projets vraiment très intéressant mais d'un niveau nettement supérieur.
 +
 
 +
Pour moi, ils sont tout deux sur le même piédestal. Ils présentent tout deux un intérêt majeur dans leur domaine respectif.
 +
* x86 breadboard computer de Saldor
 +
* Z80 Retro de John's basement
 +
 
 +
=== Ch 5.1: x86 Breadboard computer ===
 +
 
 +
<div style="margin: 15px 0; background: rgba(204,14,14,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #CCC;" >Là il faut s'accrocher mais cela vaut le coup!
 +
 
 +
A ne pas aborder sans connaissances préalable!</div>
 +
 
 +
Le monde x86 est celui qui à succédé à la première génération d'ordinateur 8 bits familiaux. Après mon commodore 128 et mon Amiga 500, je suis passez sous x86 comme beaucoup d'entre-nous. J'utilise toujours du X86 même si c'est Linux. Difficile donc d'ignorer cette partie de notre histoire.
 +
 
 +
L'aventure commence avec le 8086 et 8088 (PC XT) ayant fait une timide percée, c'est le 80286, 80386 et 80486 qui aurons surtout fait une percée dans l'informatique domestique.
 +
 
 +
Quoi qu'il en soit, n'importe quel x86 ne fonctionne pas vraiment différemment d'un 8086/8088 et ce que l'on apprend avec un 8086/8088 (qui tient encore sur un breadboard) sera toujours d'application avec les processeurs suivants.
 +
 
 +
[[Fichier:x86-breaboard-computer.png|960px]]
 
   
 
   
C'est, en gros, la même information que le projet de Ben Eater mais avec améliorations et résultat plus professionnel. Il est même possible d'acheter un kit!
+
Ecrire un programme pour x86 (en assembleur ''off-course'') demande nettement plus de préparation que pour les autres ordinateurs 8bit présentés ci-avant (ou Z80). On passe aussi à 16 bits.
 +
 
 +
C'est en cela que les vidéos de Slador sont vraiment intéressantes. Elles sont détaillées et contiennent assez d'informations pour pourvoir les suivre à condition d'avoir un minimum .
 +
 
 +
Au moment de l'écriture de ces lignes (juin 2022), j'attends la 7ième vidéos avec impatiente mais Saldor m'a informé qu'elle demande beaucoup de préparatifs.
 +
 
 +
Que découvre ton dans ces vidéos:
 +
* Créer un premier programme 16-bit pour un Intel x86
 +
* Memory Map (carte mémoire) et interruptions
 +
* Plus d'interruptions et afficheur LCD
 +
* Conventions d'appels et exécution pas-à-pas
 +
* Contrôleur d'interruption et timers (partie 6)
 +
 
 +
=== Ch 5.1: Z80 Retro ===
 +
<div style="margin: 15px 0; background: rgba(204,14,14,.3); display: block; padding: 15px 15px 15px 15px; -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; border: 1px solid #CCC;" >Ceci n'est pas un projet pour débutant!</div>
 +
 
 +
Le Z80 est l'un des processeurs les plus populaires de tous les temps avec le 6512. Il était abondement utilisés dans l'aire pré-x86 et est resté très populaire aujourd'hui (le Z80 est toujours fabriqué et vendus en 2022).
 +
 
 +
[[Fichier:Z80-Retro.png|960px]]
 +
 
 +
[https://www.youtube.com/watch?v=oekucjDcNbA&list=PL3by7evD3F51Cf9QnsAEdgSQ4cz7HQZX5 Z80 Retro] est la série de vidéo Youtube concernant la '''re-création''' d'un ordinateur plus périphériques autour d'un processeur Z80. Le support physique de stockage est ici un lecteur de carte SD, ce qui l'écriture d'un pilote SPI en assembleur.
 +
 
 +
Ce n'est pas tout, John implémente le bios nécessaire pour faire fonctionner un CP/M 2.2 pour cet ordinateur. CP/M c'est l'ancêtre du DOS (disons que DOS s'en ai largement inspiré).
 +
 
 +
John partage avec nous les documentations dont il dispose et son expérience.
 +
 
 +
[[Fichier:Z80-Retro2.png]]
 +
 
 +
 
 +
C'est un '''très long projet''' avec des explications très détaillées. John papote trop mais, comme pour les autres références, cela en vaut la peine.
 +
 
 +
Parmi les plus belles vidéos, il y a "[https://youtu.be/UVdl6oD7q7Y How the CPU controls everything]". J'étais tombé sur cette vidéo un peu part hasard et ce qui m'a incité à poursuivre l'exploration du projet.
 +
 
 +
Ressources:
 +
* [https://www.youtube.com/watch?v=oekucjDcNbA&list=PL3by7evD3F51Cf9QnsAEdgSQ4cz7HQZX5 Z80 Retro]
 +
* [https://github.com/johnwinans/2063-Z80 Github du projet - Z80 Retro]
 +
 
 +
== Ch 6: Ressources complémentaires ==
 +
* [https://www.youtube.com/c/weirdboyjim Homebrew CPU de James Sharman] : un autre projet avec un CPU capable de faire un pre-fetch de plusieurs instructions instructions et réalisation d'une carte VGA. Le système 8bit le plus puissant de tous les temps.... Aussi un référence de choix.
 +
* [https://rc2014.co.uk/ RC2040 (Z80Kits)] Plateforme autour du Z80 mais c'est tellement touffu et avec tellement de configuration que je m'interroge sur un tel achat pour un utilisateur peu expérimenté.
 +
* [https://zeal8bit.com/ Zeal 8 Bit computer] : pour moi l'intérêt réside dans le module VGA réalisé avec un FPGA et prenant en charge des tiles (''tuiles'', donc orienté jeu). Les quelques vidéo YouTube présentent peu d'informations pratiques, ce qui est bien regrettable.
 +
* [https://medium.com/@formix/my-z80-linux-development-stack-2a4f32727fa2 My Z80 Linux Development stack]
 +
* [http://retro.hansotten.nl/z80/ Z80 Retro Computing] avec des extraits utiles du livre "Z80 Assembly Language Programming" de Lance A. Leventhal paru aux éditions Aosborne.
 +
* [http://www.z80.info/z80sdt.htm#SDT_ASM_UNIX Software Developent Tools for Z80 Family] (for Windows, Unix, CP/M, DOS, ...)
 +
* [http://www.z80.info/index.htm Z80.info] Nombreuses ressources autour du Z80 ('''Pépite''').
 +
* [http://www.z80.info/zaks.html Programming the Z80] 630 pages with all the fundamentals Rodnay zaks @ Sybex editions (see http://www.z80.info/zaks.html)
29 917

modifications

Menu de navigation