|
Archéologie: Zoom sur le ZX81. |
|
Mise à jour : Mai 2020 Mise à jour des
composants |
Le Sinclair ZX81. |
Année : Mars 1981 pour sa première version. Taille : 167*175*40 mm Poids : 350g
|
|||||||||||||
|
<=
Carte Mère Version 3 ( ISSUE 3 ) Processeur : IC3 = D780C-1(8236x5) à l'adresse 16384 PIO Programmable : IC1 = ULA 2C210E (8305) Ferranti cadencé à 3,5 MHz ROM Sinclair : IC2 = ZCM38818P Mémoire (1kO) : IC4 = 2x MCM21L14 (Suivant les modèles cf. Références mémoire du tableau)
Rom : 8ko de l'adresse 0000 à 16384.
Mémoire vidéo à adressage variable donné à l'adresse 16398 et 16399. CRT : Modulateur UM1233 Clavier tactile 40 touches.
Son
: Option d'interfaçage (interface « soundbox »
à plus de 3 canaux mono) |
||||||||||||
|
|||||||||||||
|
EAR
: Entrée analogique de lecture de données vers un
lecteur de cassettes. |
||||||||||||
<= Carte Mère Version 3 ( ISSUE 3 ) |
|||||||||||||
|
|||||||||||||
Schéma de câblage de la version française : |
Version française réalisée sur la base du dessin schématique de Ron Reuter (http:/www.mainbyte.com/ts1000) Modifications du circuit vidéo par Xavier Martin (XavSnap) Version Anglaise et US sur http://ts1000.us (« schematics ») |
||||||||||||
|
|||||||||||||
|
|||||||||||||
![]()
|
[1] : Mémoire. (IC4 ou IC4a et IC4b) |
1K
: réf. MCM 21L14P30 : module mémoire de
1Kx4bits. 32K (???) : le 62256 ou le µPD 43256 (à confirmer) |
|||||||||||
[2] : CPU Z80. |
CPU
Nec D780C-1 compatible avec le Z80 d'Intel. |
||||||||||||
[3] : Circuit Sinclair logique ULA. |
Circuit
Logique pour la gestion des entrées/sorties : Ferranti ULA
2C210E.
*
Génération de la fréquence d'horloge
générale (6.5Mhz).
|
||||||||||||
[4] : Rom. |
Rom de 8K x 8bits : ZCM38818P « flashé » avec la rom basic du ZX81. |
||||||||||||
[5] : Modulateur noir et blanc. |
Modulateur
UHF Astec UM1233 (noir et blanc). |
||||||||||||
[6] : Régulateur de tension 5 volts. |
Régulateur
type 78L05 pour descendre la tension de 9v continu à 5
volts. |
||||||||||||
[7] : Connecteur périphériques. |
|
A 1: D7 |
B 1: 5 volts. |
||||||||||
[8] : Connecteur clavier.
|
KB1: (face composants de gauche vers la
droite) KB2:
(face composants de gauche vers la droite) |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
Photos
de la carte mêre
|
![]()
|
![]()
|
|||||||||||
En avance sur son temps ! : Ce génial petit ordinateur ouvrait l'aire de l'informatique familiale ! Petit, fabriqué à l'économie autour d'une architecture basée sur un clone du Z80 (qui avait déjà fait ses preuves en 1981) devait concurrencer les plus gros et les plus chère ... à base 68000 ! Le plus riche ce basés sur le célèbre Commodore 64 avec son M6510, qui lui, avait la couleur et même le son... et surtout 64ko de mémoire. Il était donc à placer dans la catégorie des ordinateurs de « base », de par sa technologie, mais aussi de par son concept évolutif. Des carte d'extensions et périphériques plus ou moins utiles étaient disponibles, le tout au format propriétaire du ZX81. Les astuces en électronique et en programmation, que se sont imposé le constructeur étaient à la mesure du projet ! Utilisation d'ULA (Uncommitted logical Array ou SCL Sincair Computer Logic) reprogrammé par le constructeur et une Rom « non protégée » en était la preuve. Le ULA, était l'ancêtre du Crtc utilisé plus tard. Cet ULA n'était en fait qu'un système constitué de portes Nand programmable par le fabriquant (l'ancêtre de la Rom flash (mais pour les Nand!)) et qui redistribuait le signal de sortie vidéo. Une architecture simpliste, mais efficace qui permettait une programmation simple du système par l'intermédiaire d'un interpréteur Basic prêt à l'emploi. En fait, à l'époque, le ZX81 était disponibles en version montée, mais aussi en kit ! De par le nombre de composants et la simplicité d'assemblage, ce système était le premier système bas de gamme d'initiation à l'informatique logiciel (Basic ou assembleur), mais aussi ... matériel. Pour certains, la passion de l'informatique a commencée avec un fer à souder comme compagnon! Limité en taille mémoire, le plus débrouillard (ou téméraire) des utilisateurs pouvait ce risquer à dessouder le mémoires de la carte mère et de la remplacer par une mémoire compatible, dessouder le « D780-C » et le remplacer par un Z80-A plus stable au niveau de la température, remplacer la plage des 512k de Rom par de la RAM, court-circuiter le circuit ULA afin de reprogrammer les caractères etc. Mais à ce jeu, certains ce sont échaudés! En fait, avec le recule, l'architecture du Z80 révèle déjà son principal problème, défaut qui va l'handicaper durant de longues années et ainsi léguer du terrain à la famille du Motorola 68000, de par sont coût et sa complexité (adressage mémoire et gestion des périphériques entre autre). Par la suite, on ne comparera plus les deux architectures car trop éloignées techniquement, pourquoi comparer un Amiga 500 (1984) à un Amstrad CPC464(1984) ! Et pourquoi comparer un IBM XT cga (1983) quatre couleurs avec un Apple II/c (1983) ... on n'a jamais vu un Apple avec quatre couleurs (Y'en n'a plus... ou y'en a moins), d'où une rivalité partisane des Pc-iste et des Motorol-istes (les Pommes contre les Poires, les Familiaux contre les Professionnels et j'en passe !) du coup, les Pc ont eu du mal à ce positionner dans le domaine commercial où Apple régnait déjà en maître. Sachez que le choix de l'architecture de base du système est primordial au coût de « revient » d'une machine, aussi le choix du M68k pour le QL de Sinclair devait placer, un peu tard, cette machine au rang des ordinateurs professionnels. Pour le ZX81 (ou le Timex/Sinclair 1000; TS1000 pour le intimes), il jetait la base des systèmes futurs. Mais, stigmatisait les différentes limites imposés par le processeur le même. A ce stade, il fallait tout inventer (ou réinventer)! Et à ce jeu, le ZX81 fût un excellent cobaye ! En effet, le succès rencontré par cette petite machine fût un tremplin pour de nombreuse entreprises d'électronique, constructeur d'extensions et d'entreprises de programmation dont ERE Informatique, Loriciels... qui emboîta le pas sur d'autres machines par la suite. Mieux vaux tard que jamais : La programmation, en Basic sur 1 000 octets dans ses débuts, puis en assembleur sur 16k ( ou plus ) devait, durant les années 80, être un élément clé pour consolider l'évolution de la programmation d'une informatique dite « Familiale » (ou de grand public). L'ordinateur n'était plus considéré comme un calculateur, mais comme un outil polyvalent (professionnel, ludique ou d'appoint). Aux premiers logiciels en Basic lent et simples, se sont substitués des routines assembleur rapides et moins gourmandes en mémoire. La maîtrise de la programmation sur le ZX81 à permis des prouesses inimaginable lors de sa sortie ! Notez la qualité des démonstrations présentent dans les cartons de nos bonne vieilles machines ! Programmation académique, simple et non représentative du matériel ... cela suffisait à nous émouvoir ! Mais était aussi le signe que tout rester à faire en programmation, tout restait à inventer sur un système complexe ... l'outil est là, encore faut-il apprendre à s'en servir!, à sa sortie seul le BIOS en ROM est finalisé, la machine prend plus de caractères à l'usage. EXEMPLE : Haute résolution sur un matériel standard (sans carte additionnelle) ou élargissement de l'écran en mode texte (mais cela en 1985), malheureusement en fin de règne pour la machine! (année de sortie du CPC6128) Cela prouve donc une chose, la maîtrise des codes et de la programmation était un élément clef pour apprécier une machine à sa juste valeur.
|
|||||||||||||
Manic Willy ! |
Xtricator ! |
||||||||||||
Jeux disponibles avec l'excellent émulateur « EigthyOne » ( ... et je pèse mes mots! ) cf: « demo.t81 » Avant de taper l'exemple suivant, merci de lire les commentaire qui suivent ... Exemple en mode texte (avec la commutation du D_File) : réinitialiser l'émulateur avec un RESET (Remise A Zéro de la mémoire) hardware pour fixer le D_file ! 1 REM ZX81 .... ABCD.... X.... {Placez ici 32 caractères} 10 for a=16514 to 16546 20 if Peek a=27 then Poke a, 118 {Scan des points dans la ligne REM nota: 118=NewLine} 30 next a (Run puis supprimer la ligne 10,20 et 30) puis tapper : 10 Let A= Peek 16396 {Sauvegarde de D_File actuel} 20 Let B= Peek 16397 {shift +1 pour changer le n° de ligne et l'adresse} 30 Fast 40 Poke 16396,130 {&h82/%130} 50 Poke 16397,64 {&h40/%64 => &h4082 = %16514} 60 Slow 70 Rand sin sin sin sin sin sin sin pi {boucle de ralentissement: ralentir l'émulateur si utile} 80 Fast 90 Poke 16396,A {restitution de l'adresse D_File précédente} 100 Poke 16397,B Puis ... Run ET Là ... Ben ! Là ... ça a planté l'émulateur ... mais dans la théorie, CA Marche! (si on fait reset avant!) C'est toujours quand on fait une démo que ça dysfonctionne ... m'énerve! Ça marchait très bien en 83 ! Ordi-5 n°5 Septembre 1983 de B. Hivet ... alors si tu lis ces lignes ... envoies moi un mail pour me rassurer ! Je vous rassure dès à présent, B.Hivet a voulu bien faire ... et il a eu raison ! En deux mots, j'ai la flemme de retaper le programme une seconde fois pour vérifier, mais la méthode est sûrement la bonne ! Bravo B. Hivet ! Mieux vaut tard que jamais pour reconnaître un tel talent ! Il est fort ce B.Hivet ... (J'attends d'urgence vos mails de confirmation!, merci.). Non, non, ça part d'un bon sentiment car j'étais CERTAIN que ça aller fonctionner du premier coup ! Et ... De nos jours, les émulateurs ne sont plus ce qu'ils étaient, un mauvais contact, on sait pas! (dans le temps on parlait même pas de virus!) (Nota: Je peux aussi citer mes sources quand ça marche ! ... Enfin, lancer « Démo » dans Maxdemo.t81 au lieu de rigoler de mes mésaventures...) Nota de moi même : Après quelques « Poke » bien placés, il semblerait que le typographe (pour ne pas ne pas jeter « l'eau propre » sur la profession des secrétaires spécialisées en programmation informatique) ai confondu le D_File (en 16396 et 16397) avec l'adresse d'offset de la mémoire écran (en 16398 et 16399) car en « pokant » en peek 16398+(peek 16399*256)+n , on n'arrive effectivement à 34 caractères par ligne. Mais, toujours par expérience, cela a pour conséquence une désorganisation de la mémoire écran et à un plantage de l'émulateur. Pour le décalage proprement dit, écran à l'adresse 16398 = 130 et 16399=64 (=16514) le résultat n'est pas concluant ! ... Mais, que fait B.Hivet ? Essais plus chanceux: Texte avec 34 colonnes et 24 lignes! Télécharger le programme test en format *.T81 (format EO) 4Ko
Les émulateurs: L'âge d'or des émulateurs semble être le début des années 1990, car la puissance des machines permettait une émulation sobre, mais efficace. Voyez, les émulateurs ne se valent pas, si le système est correctement émulé, l'interface fait la différence.
|
|||||||||||||
Nom de l'émulateur: |
Formats: |
Sortie son: |
Système: |
Imprimante: |
Niveau: |
Extensions: |
Suivi: MàJ |
||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
« EigthyOne » http://www.chuntey.com/eightyone Le plus complet! |
T81,P,O,Z81 Wav |
Wav, audio |
Windows 32 |
Oui |
Passionnés |
Oui
Grand |
Bon mois. |
||||||
« Xtender » Le plus abouti sous Dos! |
P,O |
sans |
Dos |
Avec PB en format BMP. |
Experts |
Oui
Choix |
Moyen trimestre |
||||||
« Mess V79 » Ne fonctionne pas sur les version supérieurs de Mess! |
Wav,P,81 (Semble ne pas fonctionner!) |
audio |
Windows 32 |
non |
Débutants |
Non |
Mauvais années bissextiles |
||||||
« VB81 » http://freestuff.grok.co.uk/vb81 Le plus simple! |
P |
sans |
Windows 32 |
non |
Débutants |
Non |
Projet finalisé. |
||||||
« VB81 » XuR release. Le couteau Suisse du ZX81! |
T81,P,O,Z81,Wav. |
Wav avec quatre harmoniques différentes. |
Windows 32 |
Oui, avec mode photo-réaliste. |
Rétro-Programmeurs |
Oui. |
Bon mois |
||||||
« No$Cash ZX81 » Le plus polyvalent! |
81,P,O |
Sans, mais avec une possibilité de connection directe. |
Windows 32 |
non |
Experts |
Non |
Moyen trimestre |
||||||
« sZ81 » http://zx81.ordi5.free.fr/sz81 Excellente prise en charge des cartes son! |
P,Z81 |
Sortie HP. |
Windows 32; Linux |
Oui. |
Gammers. |
2
cartes son: |
Projet finalisé. |
||||||
Sous Mess, le clavier ce présente ainsi : (à imprimer et à coller sur votre clavier)
Le clavier:
Une saisie à étages... et au burin. Nous devons nous remémorer le clavier qui nous semble atypique de nos jour ... Sur les émulateurs, nul besoin de ce manucurer avant de programmer ! Vous noterez au passage les traces d'ongles sur le clavier ... à force d'appuyer comme un forcené afin d'obtenir un lettre... des marques déformaient la couche en plastique du clavier et il n'était pas rare de taper plusieurs fois la même lettre. Pour tout dire, les anxieux rongeur d'ongles et les possesseurs de doigts boudinés avaient la possibilité d'adapter un clavier dit « mécanique » afin de s'adonner à une programmation plus rapide ... en fait, ce type de clavier était indispensable pour l'utilisation de plusieurs doigts. Les lettres s'obtiennent directement (notez l'absence de minuscules). Les mnémoniques « print » ... son tapées après l'identifiant de la ligne de manière automatique : P = Print Le « Shift » permet d'obtenir les caractères en rouge sur le clavier. Les caractère en vidéo inversés et graphique sont obtenus en tapant sur « Shift » et 9 ou ALT dans Mess. Pour finir, les fonction du bas « sin », « cos » ... sont obtenus en tapant « Shift » et «New line » avant de taper la touche concernée.
« l'indispensable clavier mécanique ... 100% PCV ! » NNotez la disparition de certains symboles ! Ce clavier sérigraphié n'était pas fait pour durer...
« clavier gomme ! »
|
|||||||||||||
Protocole de chargement « QL ». Le format de sauvegarde le plus courent est le format de type QZ dans sa version 2.0 ou supérieur, format dérivé du gestionnaire de fichier QL pour le ZX81(lancé en 1989 pour sa première version et Août 1991 pour sa version 2.0). A la base, le QL (Quantum Leap) a été conçu pour les machines multi-tâche à base 68000, mis sur le marché par Sinclair en 1984. L'enregistrement et le chargement s'effectue par les commandes : SAVE "<name>" LOAD "<name>"
Pour les commandes QZ : SAVE:P:<name>: LOAD:P:<name>:
Dans les deux cas, le format de fichier est défini par « .p ».
|
|||||||||||||
Cartes d'extension mémoire:
|
|
||||||||||||
Cartes de 16Ko ou 32ko enfichable à l'arrière du ZX81.
|
|
||||||||||||
ou au format PDF : zx16kschematic.pdf
|
|
|
|||||||||||
Carte d'extension 16k A.G.B.
|
|
||||||||||||
Routine de teste pour l'extension mémoire 16ko: 1 POKE 18000,33 2 POKE 18001,11 3 POKE 18002,0 4 POKE 18003,57 5 POKE 18004,68 6 POKE 18005,77 7 POKE 18006,201 8 PRINT (USR (18000) – 16373)/1024; ''K'' Réponses: entre 1 K sans extension et 16 K avec le périphérique. Note: Les valeurs diffèrent selon les émulateurs ! Preuve d'une gestion efficace ou non de la mémoire! Télécharger le programme test en format *.p 2Ko Nota: existe des extensions supérieurs à 32ko (adresse 16384) mais l'adressage de la mémoire pose problème pour le franchissement de l'adresse C000 (limite d'adressage 16bits) supérieur à 48Ko, un patch nommé « Oliger » permet de dépasser cette limite et cumuler près de 57ko, et même 64 ko !
l'imprimante: ![]() L'imprimante thermique de la largeur de l'ordinateur qui la commande, utilisait un rouleau de papier de 11,2 cm dit « thermique » dont l'impression s'effectuée grâce à une tête de 8 électrodes. Cette imprimante commercialisée par Sinclair sous le nom de « ZX Printer », pouvait imprimer les programmes tapés sur le ZX81 sur 32 colonnes. Le format « ticket de caisse » à hauteur variable, n'était pas un problème en soit ... en effet, pourquoi imprimer des carrés noir en format A4 et sur 32 colonnes ? La résolution du micro été donc le principal problème. Une astuce de programmation permettait tout de même une impression en qualité graphique, mais son traitement était long ... et hasardeux car le résultat ne pouvait être affiché sur le micro. Nota: Seul « EightyOne » semble gérer au mieux les imprimantes ... mais pour Xtender, un effet miroir vertical oblige l'édition de chaque image dans un logiciel de dessin, plutôt curieux ou plutôt « renversant »! Schéma de la carte:
Carte couleur : (distributeur : Direco International) la « colour » :
Boîtier d'extension de 16 couleurs avec prise Péritel (deux soudures sur le modulateur et bus arrière). Il Permettait l'affichage des couleurs grâce à un caractère ASCII placé devant le caractère à afficher. Chr$ 161 étant la première couleur (le rose). Soit : 10 PRINT chr$ 161; chr$ 128
Carte Haute résolution: En 1983, apparaît la première carte graphique haute résolution pour le ZX81 ! Ce kit graphique fût présenté par Richard Taylor, qui par la suite commercialisa plusieurs jeux en haut résolution compatible avec ce nouveau matériel. En fait, ce procédé basé sur une matrice de 256 bits ne permettait pas une réelle « haute résolution » car pour le mode en matrice 256 bits, le système rendait possible la programmation sur 8 bits successif (8 pixels), mais seulement la moitié de cette matrice été exploitable (donc 128 bits programmable). Ce résultat, en mode « haute résolution » était amplement satisfaisant pour l'époque. *
Carte Memotech HRG.
U.D.G. (User Definable Graphics) : Ce
mode graphique est un mode pseudo-graphique qui consiste à
redéfinir un à un les caractères
constructeur de la ROM du ZX81. Pour
ce mode, il est indispensable d'ajouter une mémoire vive
de 512 octets, pour accueillir la nouvelle table de caractère.
Plus
d'informations:
Les zones ROMs « AND » 8-16K : La Rom de 8k (« Shadow rom » ou rom fantôme), n'était pas protégée et pouvait être modifiée à loisir par les programmeurs, elle pouvait donc servir à la fois de Rom et de Ram pour la programmation d'utilitaires ou pouvait être chargée à partir d'une cassette (l'instruction POKE pouvait donc modifier la rom de la machine). La rom contenait les instructions d'origine pour le bon fonctionnement de la machine, mais certaines versions de rom à télécharger comme la « ZX-ASSEMBLER-2 », mise à jour du logiciel « Artic » et le « CORAL BASIC INTERPRETER (CBI version 7.0) » pouvait le remplacer avantageusement l'interpréteur Basic existant. Pub ! (Ne vous précipitez pas il y a rupture de stock en magasin!)
|
|||||||||||||
Autres sites sur le ZX81 : André Baune vous présente ses plus belle réalisations (récentes!) ... la programmation sur ZX81 n'est plus laissée à l'abandon ! et mon site pour retrouver ma collection d'Ordi5 scannés : http://zx81.ordi5.free.fr
|
|||||||||||||
|
|||||||||||||