Le TRS-80, un vague à l'âme..

Source : https://fr.wikipedia.org/wiki/TRS-80

TRS-80 Model I - Rechnermuseum Cropped.jpg

Le modèle I

Introduit le 3 août 1977, doté d’un microprocesseur Zilog Z80, cadencé à 1,77 MHz, le modèle I dans sa première version dispose de 4 ko de RAM et de 4 ko de mémoire morte. Une deuxième version est par la suite dotée de 16 ko de RAM et 12 ko de ROM. Il dispose nativement en ROM d’un interpréteur BASIC. Le BASIC « étendu » de la deuxième version était fourni par Microsoft.

Sa mémoire vidéo d’un Ko autorise l’affichage en mode texte monochrome de 64 colonnes pour 16 lignes. Les caractères affichés ne peuvent être que les chiffres et les majuscules (ASCII codé sur 7 bits seulement). Un mode 32 colonnes × 16 lignes est également disponible et un mode « semi-graphique » permet un affichage de 128×48 points : en fait, l’emplacement de chaque caractère du mode texte est divisé en six pixels).

Le modèle de base était fourni sans mémoire de masse à accès direct. Les sauvegardes s’effectuaient sur bande magnétique via un lecteur/enregistreur de cassettes audio. Cette interface d’entrée/sortie audio est également utilisée pour sonoriser certains jeux.

La marque a distribué des périphériques divers, dont des lecteurs simples ou doubles de disquettes 5,25 pouces. Ces périphériques se connectent sur une « interface d’extension » qui permet également de porter la mémoire RAM à 48 ko au total.

Comme la plupart des micro-ordinateurs de cette époque, l’unité centrale et le clavier se présentent sous une forme monobloc. L’alimentation est un transformateur/redresseur externe. Le refroidissement de l’unité centrale ainsi que de l’alimentation sont passifs, c’est-à-dire sans ventilateur, avec seulement des orifices permettant la circulation de l’air.

Ce micro-ordinateur était fourni avec un moniteur spécifique, monochrome (affichage blanc sur fond noir pour les premiers modèles, puis vert sur fond noir).

Ce modèle ayant eu un joli succès dans les années 1980, de nombreux fabricants ont développé des extensions diverses et variées (adaptateurs sonores, cartes couleurs, joystick, etc.). Il était alors en concurrence avec l’Apple II et le PET de Commodore. Il a eu droit aux côtés de l’Apple II à sa rubrique « Trucs & Astuces » de la revue L’Ordinateur individuel, ainsi qu’à plusieurs revues dédiées (en France, la revue Trace éditée par la société Editrace).

Différentes ressources techniques : http://www.colorcomputerarchive.com/coco/Documents/Manuals/Hardware/

Et aujourd’hui ? Bah! Cela devient risible, moi-même, j’ai repris des études mais ayant toujours la trajectoire informatique pour obtenir un master en ingénierie mais mouture 2020. Le but, une CPU 32 qbits quantique avec un compilateur C façon quantique, mais… Mais le vague à l’âme persiste, et un bougre, du fin fond de la Toile s’est penché sur le cas… (ref: http://picatout1.rssing.com/chan-25622776/all_p1.html)

Je me permets de le citer intégralement, tellement, enfin, mon coeur se serre, oky, bientôt les soixantes piges, mais qu’importe.

C’est à la fin des années 70 qu’on a vu apparaître sur le marché les premiers ordinateurs personnels avec un clavier et un interpréteur BASIC, tel que les Apple II, TRS-80 , Commodore PET. Ces premiers ordinateurs personnels utilisaient des microprocesseurs 8 bits tel que les MOS Technologies 6502, Zilog Z80 et Intel 8080. L’acronyme PC (PersonnalComputer) est entré dans le langage courant quelques années plus tard avec le premier IBM-PC. Ces ordinateurs coûtaient chers, en dollars constant le TRS-80 vaudrait aujourd’hui plus de 1200$. Considérant ses faibles capacités c’est ridicule par rapport à ce qu’on pourrait faire avec la technologie d’aujourd’hui.

De nos jours il est possible de fabriquer soi-même son propre ordinateur qui aurait des capacités supérieures à ceux de cette époque pour moins de 50$. Mon projet VPC-32 (Very Personnnal Computer 32 bits) a pour but de fabriquer un ordinateur à très faible coût mais avec des capacités égales ou supérieures à celle du TRS-80 modèle 1 en utilisant un minimum de composants de la technologie moderne. voici un diagramme bloc de l’ordinateur que j’envisage.

Ce diagramme ne représente que l’idée initiale et pourrait évoluer en cours de chemin. A l’époque les programmes étaient enregistrés sur des cassettes audio ou au mieux sur des disquettes 5-1/4″ simple face d’une capacité de 170Ko. Le VPC-32 aura quand à lui un lecteur de carte SD, plus rapide et avec une capacité de stockage représentant plusieurs milliers de disquettes.

Donc pour fixer les idées voici les caractéristiques du VPC-32 tel qu’envisagées à ce moment-ci.

  • Microcontrôleur 32 bits PIC32MX150F128B (DIP-28).
  • 1 clavier PS/2 pour la saisie.
  • 1 interface RS-232.
  • 1 sortie vidéo NTSC Blanc/Noir.
  • 1 sortie audio monophonique (PWM).
  • 1 lecteur de carte SD.
  • Affichage texte 28 lignes de 53 caractères.
  • Affichage graphique 320×230 B/N.
  • Un éditeur de texte simple.
  • 1 interpréteur moderne (pas BASIC), FORTH?, PYTHON?, LUA?, AUTRE…

Je vais utiliser le moins de composants possible et ce seront des composants en format pour montage à travers trou de sorte que n’importe quel amateur pourra le fabriquer sur une carte de prototypage à grille de 100mil. Il sera alimenté à 3,3Volt (3,0-3,6Volt). Il pourra donc être alimenté par 2 piles AA ou CC. J’ai choisi le PIC32MX150F128B car c’est le modèle de PIC32MX disponible en DIP-28 qui possède la plus grande capacité mémoire. 128Ko de flash et 32Ko de RAM. La mémoire vidéo à elle seule occupera 9200 octets.

Donc à l’allumage de l’ordinateur la console va présenté l’invite de commande du langage choisi (à déterminer) et l’utilisateur va entrer du code et des commandes en interactif ou lancer l’éditeur de texte.

Je vais présenter une série de chroniques au fur et à mesure que le projet va évolué. Puisque ces derniers temps j’ai travaillé beaucoup sur la génération de signal vidéo NTSC je vais commencer par ça tandis que c’est frais en mémoire.

A cette époque la mémoire FLASH n’existait pas encore et le langage ‘C’ n’était pas répandu comme aujourd’hui. Le système d’exploitation était entièrement écris en assembleur et inscris dans une mémoire ROM, il n’était donc pas question de flasher une nouvelle version du BIOS(OS). Pour ma part je vais travailler en ‘C’ en évitant l’assembleur autant que possible.

VPC-32, test vidéo ntsc

J’ai débuté ce projet en faisant des tests de génération de signal vidéo NTSC B/N 320×230. Pourquoi pas 320×240 pour être conforme au standard QVGA?. En principe avec la méthode de scan utilisé on devrait obtenir 240 lignes visibles à l’écran, 262 moins les 20 lignes réservés au vertical retrace. Mais en pratique sur les 2 téléviseurs que j’ai essayé seulement 230 lignes sont visibles à l’écran. Je ne gaspillerai donc pas 400 octets de mémoire RAM pour des lignes qui ne sont pas visibles. Donc le tableau représentant le bitmap vidéo occupe 320×230/8 soit 9200 octets de RAM.

Circuit de test

Voici le circuit utilisé pour faire mes test vidéo. Cette partie du circuit ne devrait pas être modifiée en cours de projet. Le signal vidéo généré est conforme à mes attentes.

La diode D1 n’est pas strictement nécessaire, le circuit fonctionne sans elle, sauf que je constate que la réponse en haute fréquence est meilleure avec cette diode installée. Dans mon image test les lignes verticales les plus étroites se confondent lorsque je l’enlève.

RB7 broche 16 est une entrée de synchronisation pour le signal vidéo généré par un périphérique SPI. Ce signal provient d’un OC en sortie sur la broche 11. Les périphériques SPI sur les PIC32MX peuvent fonctionner en mode frame. Dans ce mode le SPI envoie des octets tant que l’entrée sync est active. Le signal de synchronisation en question est généré par un périphérique OC Output Compare et sert à retarder l’envoie du signal vidéo en début de ligne.