Sinclair ZX81

L'ordinateur personnel de Sinclair ZX81 , libéré par la recherche de Sinclair de dans le 1981 , était le suivi au ZX80 de la compagnie. Le cas était noir, avec un clavier de membrane ; l'aspect distinctif de la machine était le travail du industriel Rick Dickinson de concepteur. La sortie vidéo, comme dans le ZX80, était à un téléviseur, et économiser et chargeurs étaient par l'intermédiaire d'un magnétophone audio à la maison ordinaire dans la cassette sonore . Le Timex Corporation a fabriqué des kits aussi bien que les machines assemblées pour la recherche de Sinclair. Dans le Etats-Unis une version avec le double le RAM et une norme de la télévision du NTSC a été lancée sur le marché comme " ; " de Timex Sinclair 1000 ;.

Description générale

Comme avec le ZX80, le processeur était un Zilog Z80 de NEC - compatible, fonctionnement à une fréquence de base de 3.25 mégahertz, mais la ROM de système avait devenu 8192 bytes dans la taille, et le BASIC a maintenant soutenu l'arithmétique de la virgule flottante . C'était une adaptation de la ROM ZX80 par le Steve Vickers sur le contrat de Nine Tiles Ltd, les auteurs du BASIC de Sinclair de . La nouvelle ROM a également fonctionné dans le ZX80 et Sinclair l'a offert comme mise à niveau pour le ZX80 plus ancien pendant un moment.

Comme suggéré, l'ordinateur était semblable au ZX80, mais a été construit autour d'un semi-custom ULA (rangée de logique non engagée ) de Ferranti au lieu de la logique du TTL . Le panneau de système remodelé a donc eu seulement des quatre ou cinq IC : le microprocesseur, l'ULA, la ROM de 8192 bytes, et une pastille à MÉMOIRE VIVE de 1024 bytes, ou deux pastilles à MÉMOIRE VIVE du peu 1024x4.

Le système bas en tant que fourni (au R-U pour approximativement GB£70 entièrement construit et GB£50 comme kit exigeant la soudure

Le ZX81 n'a pas employé le ASCII mais a eu son propre jeu de caractères . Le code de caractère 0 était l'espace, des codes que 1-10 ont été employés pour les graphiques blocky, des codes 11-63 correspondu à la ponctuation, des nombres et des caractères majuscules du . Les codes de caractère 128-191 étaient des versions du vidéo inverse des 64 premiers caractères. D'autres codes ont représenté des mots-clés de BASIC et des codes de commande tels que le CARACTÈRE NL. Il n'y avait aucun caractère minuscule du . Chaque clef a typiquement atteint quatre objectifs (en tant qu'un caractère, une icône graphique et une de deux commandes de BASIC ) avec l'utilisateur choisissant chacun par l'intermédiaire d'une combinaison du " ; shift" ; et " ; alt" ; clefs. Un autre trait du ZX81 était qu'il a fait écho le signal du magnétophone à l'écran tout en chargeant et sauvant des programmes using des cassettes, faisant montrer la TV les modèles zigzaguants.

Puisque l'affichage a été produit principalement par le logiciel dans la ROM ZX81, il était possible de dépasser la routine de service d'interruption et de produire de l'affichage. Plusieurs " ; salut-res" ; (signification, 256×192, plutôt que 64×48) les jeux ont fait ceci, notamment d'une compagnie appelée la ferme de logiciel de .

Il y avait un bogue notoire faisant donner un certain ZX81s au la racine carrée de 0.3591409 plutôt que 0. La réputation de Sinclair pour le contrôle de qualité pauvre était due moins de l'existence du bogue dans des quelques machines, et plus au temps où il a pris pour réagir une fois que le bogue avait été rapporté. Réciproquement, un article en BYTE du temps, comparant l'exactitude mathématique des plusieurs courant principal et ordinateurs beaucoup plus chers du temps, a réfléchi franchement sur le ZX81.

L'interprète du BASIC était entièrement de propriété industrielle, à la différence de la plupart des micro-ordinateurs de cette ère (excepté le original Apple II ) qui a employé une série de variantes semblables mais incompatibles du BASIC de Microsoft de . Ceci a signifié qu'il n'y avait aucun besoin de ne se conformer à l'ASCII ou à aucune autre norme existante.

Succès et successeurs

Le Sinclair ZX81 a été vendu aux États-Unis par Sinclair lui-même (de son dextérité dans Nashua, New Hampshire) et également par Timex comme Timex Sinclair 1000 . Le TS1000 s'est transporté avec deux fois autant RAM (2 KBs)

Le ZX81 s'est vendu dans de grands nombres, jusqu'à ce qu'il ait été remplacé par son successeur considérablement amélioré, le spectre du ZX.

Description technique

< ! -- Le divbox a été enlevé ; on garde habituellement de telles notices hors de l'article, parce que l'article - doit contenir seulement l'information utile et encyclopédique, et dans ce cas, un tel calibre ne serait pas nécessaire. --> Les moyens techniques employés pour mettre en application l'affichage et d'autres parties de ZX81 étaient tout à fait originaux - à un moment où le " entier ; home" ; la classe des ordinateurs était dans sa enfance. Le système actionné comme suit :

Vue d'ensemble de matériel

Les circuits intégrés

Le ZX81 contient (selon le type de RAM) quatre ou cinq morceaux ; ROM, unité centrale de traitement , SRAM , et un réseau prédiffusé de de Ferranti (ou &ndash d'ULA ; rangée de logique non engagée de ). La ROM occupe des adresses 0-8191 (mais adresse également 8192-16383, en raison du matériel minimal de décodage). Le 1  ; KB (ou 2  ; Le KB pour Timex) SRAM est placé à l'adresse 16384 (mais répétitions jusqu'à adresse 32767). A15 est employé pour l'affichage (voir ci-dessous), et le 32  supérieur ; Le KB de zone de mémoire est donc inutilisable pour l'exécution de code. Il peut encore être employé pour stocker des données, telles que des programmes de BASIC ou de grandes rangées, cependant. À moins que plus que 16  ; Le RAM de KB est installé, ce 32  supérieur ; Le KB de secteur reflète le 32  inférieur ; KB (excepté l'exécution de code).

Affichage de caractère

L'ordinateur emploie une signification resizable de montrer-dossier (amortisseur d'écran) qu'il peut être augmenté ou rétréci selon la quantité de mémoire installée et la quantité de l'espace libre à l'heure actuelle.

Il y a également ( non- ASCII ) un jeu de caractères complètement non standard en quels codes 0-63 sont les caractères imprimables et 128-191 les mêmes caractères dans le vidéo inverse. 6 mordus a la signification spéciale ici comme, dans des circonstances normales, la seule valeur avec l'ensemble du peu 6 qui devrait être écrit au dossier d'affichage est 118, qui est un CARACTÈRE NL (et également l'opcode pour la HALTE !). Le placement de n'importe quel autre byte avec l'ensemble du peu 6 dans le montrer-dossier causerait des résultats inattendus et peut faire briser la machine.

Le ZX81 a les cartes binaires (modèles) de du jeu de caractères stocké en 512 bytes les plus élevés de son 8  ; ROM DE BASIC DE KB.

Multiplexage d'autobus

La fonction des résistances en tant que multiplexeurs bon marché et sont placées dans la série avec les lignes de données (unité centrale de traitement et ULA sur un côté, ROM et RAM de l'autre) permettant à l'ULA de dépasser des données quand l'unité centrale de traitement indique de la mémoire (voir ci-dessous).

Il y a également des résistances en série avec les lignes A0-A8 d'adresse, séparant la ROM et l'ULA de l'unité centrale de traitement (et de tout matériel ajouté ) sur ces lignes ; ceci est employé par l'ULA pour lire des modèles du Pixel hors de la ROM en dépassant le peu A0-A8 d'adresse, tout en permettant l'unité centrale de traitement au peu A9-A12 d'adresse de commande (voir ci-dessous).

Le Z80

La conversion des codes de caractère dans des Pixel sur l'écran de TV utilise possibilités bien connues et autres de Z80-specific, spécialement l'utilisation des registres de R et d'I :

Le registre R est prévu pendant qu'un RAM dynamique régénèrent contre ; pendant la dernière partie de chaque effort d'opcode, la valeur de ce compteur est alimentée sur la partie inférieure du bus d'adresses, et le signal de commande de RFSH devient actif. Cependant, aussi le registre de vecteur d'interruption, I, est output* pendant les cycles de régénération, mais sur la partie supérieure du du bus d'adresses.

L'instruction de HALTE est également d'importance centrale dans le ZX81, il est nécessaire de savoir qu'un Z80 arrêté exécute le répété NOPs jusqu'à ce qu'une interruption se produise, et que ces causes de NOPs la régénération à l'opposé du coutil, juste comme NOPs normal font.

* non documenté par le Zilog et d'autres fabricants (tels que NEC ) alors.

Balayage de clavier

Le clavier de membrane est balayé pendant (et à couplage intermédiaire) le vertical retracent l'intervalle. Les modèles de balayage est présentés par les bits de l'upper* huit du bus d'adresses non amorti du et relus par cinq entrées de TTL (8×5 = 40). Il prend ainsi huit lectures pour déterminer quel " ; keys" ; sont pressés. Le décodage et le debounce sont faits dans le logiciel.

* ceci exploite le dispositif non documenté que (par exemple) DANS A, (c) met réellement les paires de registre de totalité AVANT JÉSUS CHRIST sur le bus d'adresses.

Génération d'image de TV

Je m'enregistre est normalement placé pour indiquer la base de la table de carte binaire de jeu de caractères dans la ROM. Le compteur de régénération, R, est employé pour compter les 32 positions d'impression de sur l'écran pendant chaque ligne de balayage. Le compteur de programme , PC (voir ci-dessous), codes de caractère réels de de comptes , qui peuvent être moins de 32 étant donné que le montrer-dossier est dynamiquement classé.

Pendant chaque ligne de balayage, l'unité centrale de traitement entre dans un état de HALTE dès qu'elle rencontrera le CARACTÈRE NL (HALTE) qui termine chaque ligne des caractères dans le montrer-dossier, et quand le registre de R a compté chacune des 32 positions, une interruption de Maskable (international) est produite pour apporter le processeur hors de l'état de HALTE juste à temps de se préparer à une autre ligne de trame.

Mode LENT

Pendant les pièces blanches supérieures et inférieures de l'écran, l'ordinateur exécute le code d'application de (c. BASIC ou code machine), mais une interruption non masquable (ou NMI) interrompt brièvement même ceci, une fois chaque période de HSYNC ; un compteur est mis à jour par la NMI-routine, ainsi il peut décider s'il est temps de retourner et de produire des modèles de caractère encore.

Malheureusement, l'utilisation du LENT (mode multitâche doux) ralentit tout l'autre qui traite approximativement de 75% comparé au RAPIDE (mode de flickery).

Exécution des caractères

Pour produire réellement une ligne à ballayage récurrent de TV de 256 Pixel, le de routine d'interruption littéralement saute à le début de la ligne actuellement balayée des caractères dans le dossier d'affichage, mais avec la ligne l'ensemble d'A15 (c. 32768 d'adresse additionnés) ; la ligne de commande Z80 M1 est également en activité (le témoin opcode-cherchent), et cette combinaison est détectée par l'ULA :

L'unité centrale de traitement cherche les codes de caractère (comme si c'étaient des opcodes), permettant à l'ULA de verrouiller facilement les valeurs ; en forçant un NOP (tous les zéros) sur le bus des données Z80 après que chaque byte recherché, l'ULA assure ce " ; rien happens" ; sauf que le registre de R maintient les positions d'impression sur la ligne, et cela le compteur de programme fonctionne pendant qu'un indicateur de incrémentation automatique dans le dossier d'affichage.

Tant que les données recherchées ont mordu 6 remis à zéro (un caractère), l'unité centrale de traitement continuera le " ; executing" ; les caractères (comme NOPs), aidant les codes de caractère de lecture d'ULA hors de l'affichage classent. Quand l'ULA détecte la HALTE (ensemble 6 mordu), il permet au Z80 de l'exécuter normalement ; le processeur reste arrêté et exécute NOPs jusqu'au R-enregistrent des enveloppes autour à zéro et produisent de ce fait d'un international - ceci fonctionne parce que l'international est câblé à A6.

Ce processus est répété huit fois pour chaque ligne des caractères, et 192 fois pour une pleine armature de TV. Le ZX81 fait l'utilisation étendue du " plutôt complexe ; timing" d'instruction ; , dans le programme de ROM, aussi bien que quelques petites mais sensibles difficultés de matériel pour fine-tune ce système et pour éviter les problèmes et la frousse dans l'image visuelle produite.

Les interruptions
Les routines d'international ne sont pas des routines appropriées d'interruption, du fait elles la plupart du temps ne retournent pas. Au lieu de cela, l'adresse de retour est constamment jetée de sorte que chaque interruption puisse, techniquement, interrompre le précédent sans causer le débordement de pile. Seulement une fois que chaque huit lignes de balayage (lignes de Pixel) est l'adresse poussée utilisée, elle indique alors la prochaine ligne des caractères dans (probablement) le dossier irrégulier d'affichage, directement après l'instruction de HALTE.

L'interruption de NMI, cependant, fait toujours un retour conventionnel au code d'application (c. un interprète en BASIC ou un programme en code machine différent) pendant la plupart de chaque interligne dans les parties supérieures et plus inférieures de l'écran (les frontières supérieures et inférieures). Cependant, quand il est temps de lancer l'affichage de modèle de caractère, elle arrête le générateur de NMI, et la commande de transferts aux routines d'international (et vice versa).

Plus de détails et de synchronisation
En raison du régénérer-mécanisme, Z80 le Opcode - l'effort se compose de quatre rhythmes, que (pendant la génération de huit Pixel) sont dépensé comme suit :

Pendant le premier et le deuxième (l'effort d'opcode), les tentatives de processeur de chercher un code de caractère (comme si c'étaient une instruction), mais l'ULA verrouille les données réelles, tout en forçant un NOP sur le Z80-bus, comme décrit ci-dessus.

Pendant le troisième et le quatrième (la DRACHME régénèrent) l'ULA compose l'adresse au byte réel de Pixel-données ; le peu 0-5 du code verrouillé est alimenté sur le peu 3-8 de l'adresse de ROM (choisissant un des 64 modèles différents de caractère) ; le registre du vecteur d'interruption fournit l'adresse de base (mordue 9-12), alors que le peu 0-3 vient d'un compteur du modulo 8 (dans l'ULA) synchronisé HSYNC et en choisissant de ce fait une des huit Pixel-rangées pour tous les caractères sur une ligne simultanément. Le byte de la ROM est alors introduit dans décaler-s'enregistrent, ont commandé par le même " ; crystal" ; comme unité centrale de traitement, et synchronisé dehors au poste TV deux fois à la fréquence d'unité centrale de traitement (8 Pixel pendant 4 le cycle NOP).

Des impulsions de synchronisation de TV (HSYNC et VSYNC) sont produites par l'ULA et mélangées au signal vidéo tels que white=5V, black=2.5V, et SYNC=0V et alimentées au l'À haute fréquence-modulateur. HSYNC est de façon autonome produit dans le matériel, alors que VSYNC est produit sous la commande d'unité centrale de traitement en liaison avec le balayage de clavier.

7 mordus du byte original de caractère est lus par l'ULA et l'inverse-vidéo de commandes sur une base de par-caractère. Les impulsions de synchronisation visuelles emploie le même peu individuel d'entrée-sortie qu'est employé pour produire du rendement pour l'interface de magnétophone à cassettes de 250 bit/s. C'est la raison des modèles étranges montrés à la TV tout en économisant ou des chargeurs.

Paquet et adjonctions de RAM

I/O-addressing

Les huit peu inférieur d'adresse d'entrée-sortie ont été employés comme le morceau individuel choisit pour différentes unités d'E/S Dans l'ULA. Chaque adresse inférieure a mordu sauf que la sélection du dispositif désiré devrait donc être un, théoriquement permettant jusqu'à huit unités d'E/S. Dans la configuration standard, le seul présent d'entrée-sortie (à moins que l'imprimante facultative de l'external ZX était branchée au connecteur d'autobus de 40 bornes) était un bit pour l'entrée de cassette, un bit pour rendement de cassette/visuel de synchro, un mot five-bit d'entrée du clavier (qui a ressemblé à un adhésif pour pare-chocs de voiture davantage qu'il a ressemblé à un clavier numérique approprié) et des quelque compteurs d'instruction ont été exigés pour permettre l'ULA lui-même pour la génération visuelle du . Ceci a signifié que non chacun des huit bits a été employé, permettant une certaine pièce limitée pour l'expansion externe.

Paquet de RAM de ZX 16K
Le paquet du RAM 16K a attaché la ligne de RAM-CS sur le connecteur de 40 bornes à +5V pour désactiver le RAM interne. Il a employé huit 4116 16 K X des morceaux de 1 RAM dynamique de bit contenus en 16 boîtiers à double rangée de connexions de goupille (1 données goupillent et 7 bornes multiplexées d'adresse avec /RAS, /CAS, /WE, et la puissance). Ces vieux morceaux ont exigé +12 V, +5 V et -5 V ainsi le paquet de RAM a contenu un oscillateur et quelques inducteurs pour convertir +5V en les autres tensions required aussi bien que des circuits pour multiplexer les lignes d'adresse, s'ajoutant de manière significative à sa complexité interne.

La tension interne de ZX81 a été réglée par un régulateur 7805 5V linéaire simple fixé à un petit radiateur. Ceci pourrait est devenu plutôt chaud comme tension dans le 3.5  ; le cric de millimètre pourrait varier dans une marge 9V-18V approximative selon des facteurs tels que la charge réelle (paquet de RAM, imprimeur, etc.) et variations de tension secteur.

Malheureusement le connecteur d'autobus de 40 bornes lui-même n'était pas l'or - plaqué (les contacts ont été couverts de soudure plate ) et était l'oxydation très encline . En outre la conception mécanique du paquet de RAM de Sinclair (hérité du paquet de RAM de ZX80) a eu comme conséquence un raccordement peu sûr au ZX81, qui a rendu le système amélioré très briser-enclin. Ceci deviendrait ennuyant car cela prendrait huit minutes pour recharger le plein 16  ; RAM de KB d'un enregistreur à cassettes (souvent-incertain). " de Maison-brew ; kludge" ; les solutions à ce problème ont varié de boulonner physiquement l'ordinateur et RAMpack à un substrat plein à placer le tout fonctionne dans un plus grand cas avec un clavier en surplus approprié au lieu de l'original.

Caractères définis pour l'utilisateur et graphiques à haute résolution

Une autre mise à niveau moins-commune faite par quelques utilisateurs était de relier la MÉMOIRE RAM statique (comme " ; pseudo-ROM" ;) au lieu de la ROM reflétée aux adresses 8192-16383. Ce RAM devrait être relié au même côté des résistances de bus de données comme ROM lui-même de sorte qu'il ait pu être employé pour stocker un jeu de caractères défini pour l'utilisateur de jusqu'à 64 caractères. Une variante sur ce thème a ajouté un verrou d'un-peu pour verrouiller le bit d'informations élevé du caractère original (quand M1 et A15 étaient deux active) afin de l'employer pour conduire un du peu d'adresse, permettant à chacune des 128 cartes binaires de caractère d'être redéfinies.

Pendant que le RAM principal était du mauvais côté des données et des résistances de bus d'adresses pour que ceci travaille, la MÉMOIRE RAM statique supplémentaire a été exigée pour cette approche. Chargement je m'enregistre pour indiquer le RAM principal ne produirais pas le résultat désiré, au lieu de cela montrant des ordures comme Pixel.

Clones

Le ZX81 a été copié en vente en dehors de l'Europe, avec le Timex Sinclair , d'un en participation, produisant le TS1000 pour le marché des États-Unis.

Le ZX81 a été également copié sur le marché brésilien par beaucoup de compagnies locales, parmi elles : Appliquer, Ritas, Microdigital et Prológica (ces deux étant les concurrents principaux pour le marché). Microdigital a produit plusieurs clones du ZX80 (TK  ; 80 et TK  ; 82/ 82C ), un clone ZX81 (le TK  ; 83), un clone du TS1500 (TK  ; 85), et deux clones du spectre du ZX ( TK  ; 90X et TK  ; 95 ). Prológica a produit NE-Z80 (clone ZX80), NEZ-8000, CP-200 et CP-200S (version meilleur marché en retard).

Random links:Langue féroïenne | Abbaye de Ramsey | Format de données extensible | Aube (journal) | Monde de ralentissement