Brevet FR2487095A1 — publié le 19820122

La présente invention se rapporte au domaine des - calculateurs numériques et concerne en particulier des microcalculateurs ou micro- ordinateurs comportant des possibilités d'affichage vidéo. - Au cours de ces quelques dernières années, il a s'est produit un accroissement rapide dans l'utilisation de calculateurs numériques à la maison par des amateurs de passe-temps divers, pour l'artisanat ou le petit com- merce et pour des applications technologiques et scienti- fiques de routine. Dans leur majeure partie, ces besoins ont été satisfaits par des microcalculateurs ou micro- processeurs autonomes relativement-peu coûteux, munis de périphériques essentiels, y compris des unités de disques et des programmes de calculateur relativement faciles à gérer. La conception de calculateurs destinés à satis- faire à ces besoins exige une ingéniosité considérable, étant donné que chaque calculateur doit se prêter à une large gamme d'applications et en raison du Lait que ce marché est particulièrement sensible au coût. Un calculateur domestique ou pour petit commerce doit, par exemple, fonctionner avec un certain nombre-de langages de programmation différents, y compris ceux qui exigent des mémoires relativement grandes, tels que le Pascal. Le calculateur doit être relié à un affichage balayé à trame standard et offrir une large gamme de pos- sibilités d'affichage, tels que les affichages de carac- - tères alphanumériques à forte densité nécessaires pour le traitement de mots en plus d'affichages graphiques à haute définition. La satisfaction de ces besoins de calculateurs spé- cialisés exige généralement l'utilisation d'un micropro- cesseur relativement peu coûteux et l'amélioration des possibilités de ce processeur par des techniques de monta- ge. Cela abaisse le coût total du calculateur en rédui- sant par exemple, les besoins en énergie, les structures de bus, etc. Une autre considération importante réside en ce que les nouveaux calculateurs doivent être capables d'utiliser des programmes mis au point pour des modèles antérieurs. Comme on le verra plus loin, le microcalculateur décrit ici convient de manière idéale aux applications domestiques et de petit commerce. Il offre une large gamme de possibilités, y compris des possibilités d'af- fichage d'avant-garde qu'on ne trouve pas dans les cal- culateurs comparables de la technique antérieure. Le calculateur de la technique antérieure le plus voisin connu du Déposant est disponible dans le commerce sous la marque de fabrique Apple- II. Certaines parties de ce calculateur sont décrites dans le brevet US nO - 4 136 359. Un calculateur numérique comprenant une unité centrale de traitement (CPU) et une mémoire à accès di- rect (RAM) avec un bus d'adresses et un bus de données d'interconnexion. L'un des aspects de la présente in- vention réside en ce qu'on a augmenté les possibilités de l'unité centrale en permettant le stockage de données de page de base ou page zéro dans toute la mémoire. Des emplacements de pile de variante et une possibilité amé-- liorée d'accès direct à la mémoire sont également assurés par le même montage. Le-moyen, de détection est utilisé pour détecter une zone d'adresses prédéterminée telle que la page zéro. Ce moyen de détection provoque le couplage d'un registre spécial (recistre "Z") avec le bus d'adres- ses. Le contenu de ce registre "Z" fournit, par exemple, un pointeur au cours de l'accès direct à la mémoire ou des emplacements de pile de variante pour enregistrer des données normalement stockées sur la page une. La mémoire du calculateur suivant l'invention est organisée d'une manière inhabituelle pour assurer une com- patibilité avec le bus de données à huit bits tout-en as- surant les débits binaires élevés (16 bits/lVHz) nécessai- res pour des affichages à haute définition. Une première pluralité de dispositifs de mémoire sont connectés à un premier bus de sortie de mémoire; ces dispositifs de mémoire sont également connectés au bus de données. La mémoire comprend encore une seconde pluralité de disposi- tifs de mémoire qui sont également connectés au bus de données; toutefois, les sorties de ces seconds disposi- tifs sont couplées avec un second bus de mémoire de sor- tie. Des premiers moyens de commutation permettent aux premier et second bus de mémoire d'être connectés à l'af- fichage pour assurer des transferts à un débit binaire éle vé. Des seconds moyens de commutation permettent à l'un ou l'autre des bus de mémoire d'être connecté au bus de données -aut cours de modes de non-affichage. La capacité d'adressage de la mémoire est considé- rablement élargie, non seulement grâce à une commutation par bloc mais encore grâce à une restauration nouvelle, qui n'exige pas la commande d'unité.centrale associée à la commutation par bloc. En effet, les bits "inutilisés" provenant de l'un des premier et second bus de mémoire sont utilisés*à des fins de restructuration. Ce mode de fonctionnement est particulièrement efficace pour assurer une inversion entre deux parties séparées de la mémoire. Le sous-ensemble d'affichage-du calculateur décrul engendre un signal douleur vidéo d'une manière originale. Un code de couleur de quatre bits déjà utilisé dans la technique antérieure est également utilisé avec le sous- ensemble d'affichage décrit. Toutefois, dans ce dernier, ce code est utilisé pour engendrer un signal de chrominan- ce de courant alternatif et un signal de luminance de cou- rant continu séparé. Cela permet des possibilités de cou- leur élargies par rapport aux affichages en couleur analo- gues de la technique antérieure. L'invention sera mieux comprise à la lecture de la description détaillée qui suit et à l'examen des des- sins joints qui en représentent, à titre d'exemple non limitatif, un mode de réalisation. Sur ces dessins: la figure 1 est un schéma symbolique représentant les organes et sous-ensembles principaux de l'ensemble de microcalculateur suivant l'invention décrit ci-après; les figures 2 et 3 représentent ensemble l'unité centrale et l'architecture associée à celle-ci, en parti- culier le bus d'adresses et le bus de données. La figure 2 est un schéma de montage représentant principalement le bus d'adresses et les-moyens logiques associés à ce bus. La figure 3 est un schéma de montage-représentant princi- palement le bus de données et son interconnexion avec les bus de mémoire (bus A et bus B), une mémoire morte "d'ini- -tialisation" et des bornes d'entrée/sortie; les figures 4, 5 et 6 représentent le sous-ensemble de mémoire. La figure 4 est un schéma de montage repré- sentant principalement les circuits de sélection entre des signaux-d'adresse provenant du bus d'adresses et des si- gnaux de compteur d'affichage. La figure-5 est un schéma de montage représentant principalement la génération de divers signaux de sélection pour les dispositifs de mémoi- -re. La figure 6 est un schéma de montage représentant l'organisation de la mémoire à accès direct et son inter- connexion avec le bus de données et les bus de sortie de la mémoire;, Les figures 7 et 8 représentent le sous-système d'affichage du calculateur suivant l'invention. La fi- gure 7 est un schéma de montage représentant les circuits de génération des signaux numériques utilisés pour l'af-- fichage vidéo. La figure 8 est un schéma de montage des circuits utilisés pour convertir les signaux numériques en signaux vidéo analogiques, et la figure 9 est un graphique de plusieurs formes d'onde utilisé pour décrire un montage de la technique an- térieure et le montage de la figure 8. Un ensemble de microcalculateur capable de comman- der un affichage vidéo balayé à trame est décrit ci-après. Dans la description qui va suivre, de nombreux détails - spécifiques, tels que des numéros d'article particuliers, des fréquences d'horloge, etc., sont indiqués pour per- mettre une compréhension totale de l'invention. Toute- - fois, il est clair pour un spécialiste de cette techni- que que les concepts inventifs décrits ici peuvent être mis en pratique sans ces détails spécifiques. Dans d'autres cas, des circuits bien connus ont été réalisés sous forme de schéma symbolique afin de ne pas noyer la - description de l'invention dans des détails inutiles. On va tout d'abord se référer à la figure 1, sur laquelle on peut voir que le calculateur décrit comprend essentiellement une unité centrale 65, son bus de don- nées associé 42, un bus d'adresses 46, un sous-ensemble de mémoire et un sous-ensemble d'affichage 58. Le bus d'adresses 46 partant de l'unité centrale est couplé avec le sous-ensemble de mémoire pour permet- tre la sélection d'emplacements dans la mémoire. Cer- tains des signaux d'adresse traversent un multiplexeur 47. Pour certains modes de fonctionnement, des signaux prove- nant d'un registre 52 sont appliqués par l'intermédiaire du multiplexeur 47, au bus 46. Le- registre 52 est égale- ment désigné sous le nom de registre "Z" et est couplé avec le multiplexeur 47 par le bus "Z". La description générale du multiplexeur 47 et de sa commande par le cir- cuit logique 41 est donnée plus loin de façon détaillée en référence à la figure 2. D'une manière générale, le montage représenté à gauche de la ligne en trait interrom- pu 53 est inclus dans la figure 2, tandis que l'unité centrale 65, la mémoire 50, le bus de données 42 et le multiplexeur 43 sont représentés de façon détaillée sur la figure 3. Le bus d'adresses Ni est couplé avec la mémoire morte 50. La sortie de cette mémoire est couplée avec le bus de données 42 du calculateur. La mémoire morte (ROM) , comme décrit plus loin, stocke des sous-programmes de test, et autres données de nature générale "initiale" en vue de l'initialisation de l'ensemble. Le bus de données 42 transmet des données à la mémoire à accès direct (RP) 60 ainsi que vers des bor- -- nes d'entrée-sortie et à partir de telles bornes. Ce bus applique également des données au registre Z, 52 -et à d'autres registres couramment utilisés, non représentés. Le bus de données 42 reçoit des données de la mémoire RAM 60 par l'intermédiaire du bus A et du bus B, dont la sélection est assurée par le multiplexeur 43. Le bus de périphériques N2 est utilisé, comme représenté clairement sur la:igure 3, pour un couplage avec des périphériques. Le sous-ensemble de mémoire est représenté de fa- çon détaillée sur les figures 4, 5 et 6. Le moyen de com- mande d'adresse, qui reçoit des adresses sur le bus 46, effectue la sélection finale d'emplacements de mémoire dans la mémoire RAM 60. La commutation par bloc, l'a- dressage à des fins d'affichage, le défilement et autres opérations de structuration de la mémoire sont commandés par le moyen de commande d'adresse 59, comme décrit plus loin de façon plus détaillée en référence aux figures 4 et 5.- La mémoire RAM 60 est représentée de façon détail- lée sur la figure 6. Le compteur 58, qui est synchroni- sé avec les signaux d'affichage horizontaux et verticaux, transmet des signaux à la fois au moyen de commande d'a- dresse 59 et au sous-ensemble d'affichage 48. Le sous-ensemble d'affichage reçoit des données de la mémoire RAM 60 sur le bus A et sur le bus B et con- vertit ces signaux numériques en signaux vidéo, qui com- mandent un affichage balayé à trame standard. Un signal couleur NTSC standard est engendré sur le conducteur 197 et un signal vidéo noir et blanc est engendré sur le con- ducteur 198. Les signaux utilisés pour engendrer ces si- gnaux vidéo peuvent également être utilisés pour engendrer des signaux vidéo de rouge, de vert et de-bleu (RGB) sépa- rés. Le sous-ensemble d'affichage 48 reçoit de nombreux signaux de temporisation, y compris le signal de référence couleur standard représenté comme étant à 3,5 MHz (C3.5m). Ce sous-ensemble est décrit de façon détaillée sur les fi- gures 7 et 8. On va maintenant décrire l'architecture du calcu-. lateur. Dans le mode de réalisation actuellement préféré, l'unité centrale 65 (microprocesseur) utilisée avec le calculateur décrit est un organe disponible dans le com- merce, le 6502A. Ce processeur à huit bits (bus de données à huit bits), qui comporte un bus d'adresses à seize bits. est représenté sur la figure 3 avec ses interconnexions avec le reste du calculateur. Le numéro de broche associÉ à chaque interconnexion est indiqué près du conducteur correspondant. Dans de nombreux cas, la nomenclature associée au 6502A (unité centrale 65) est utilisée dans la présente description. Par exemple, la broche 6 reçoit le signal d'interruption non masquable (NiMI) et la broche 4 est couplée de manière à recevoir le signal de demande d'interruption (IRQ). Certains des signaux utilisés avec l'unité centrale 65, qui sont bien connus dans cette tech- nique et-qui ne sont pas nécessaires à la compréhension de l'invention, ne sont pas décrits de façon détaillée ici; il en est ainsi, par exemple, des divers signaux de synchronisation et des divers signaux d'horloge. Les signaux d'adresse provenant de l'unité centrale 65 sont identifiés par Ao-A7 et A8-A15. Les signaux de données associés à l'unité centrale 65 sont indiqués par D0-D7. Comme il apparaîtra clairement au spécialiste de cette technique, les concepts inventifs décrits ici peuvent être utilisés avec d'autres microprocesseurs. On va maintenant se référer aux figures 2 et 3, o l'on voit clairement l'architecture générale, en particu- lier l'architecture associée à l'unité centrale 65. Les signaux d'adresse AO-A7 sont couplés avec un tampon 103 par le bus représenté principalement sur la figure 2. Ce signaux d'adresse sont également couplés avec la mémoire ROM 50. Les signaux Ao-, après avoir traversé le tappon -103, sont appliqués au sous-ensemble de mémoire. Les signaux d'adresse A8-A15 (bits d'adresse de plus fort poids) sont appliqués, par l'intermédiaire de conducteurs représentés sur la figure 2, aux multiplexeurs 47a et 47b. Le contenu du registre Z, 52 de la figure 1 est é- galement transmis aux multiplexeurs 47a et 47b par 1'in- termédiaire du bus Z (Z1-Z7). Les multiplexeurs 47a et 47b permettent la sélection, soit des signaux A8-A15 pro- venant de l'unité centrale 65, soit du contenu du registre Z (Z1-z7) pour adresser la mémoire RAM 60. Les sorties de ces multiplexeurs sont désignées.par A8-A15; cette dé- signation est utilisée même lorsque c'est le bus Z qui est choisi par la sélection. On remarquera que, dans le cas du signal Z0, ce signal est appliqué au multiplexeur 47a par l'intermédiaire de la porte OU EXCLUSIF 90 pour des raisons qui seront expliquées plus loin. Les signaux d'adresse A8-A11 sont également transmis à la mémoire ROM 50 et, par conséquent, les signaux AO-A11l sont utili- ses pour adresser la mémoire ROM 50. Les signaux A8-A15 sont appliqués au circuit logique représenté dans l'angle inférieur de gauche de la figure 2; ce circuit logique correspond au circuit logique 41 de la figure 1. Les signaux de données d'entrée et de sortie de l'unité centrale 65 sont couplés par un bus directionnel avec le tampon bidirectionnel 99 (figure 3). Ce tampon est sélectivement mis hors d'action par la porte 100 pour permettre à la sortie de la mémoire ROM 50 d'être mise en communication avec l'unité centrale 65 et pendant d'au- tres périodes qui sortent du cadre du présent exposé. Le sens de circulation des données à travers le tampon 99 est commandé par un signal lecture/écriture ap- pliqué-à ce tampon par l'intermédiaire de la porte d'in- version 101 (ce type de porte sera dit ci-après simplement "inverseur"). Les données provenant de l'unité centrale sont transmises, par l'intermédiaire du tampon 99 et du bus 42, à la mémoire RAM 60 ou à des bornes d'entrée- sortie. Les données provenant de la mémoire RAM 60 sont communiquées à l'unité centrale 65 ou au bus N2 à partir du bus A et du bus B par l'intermédiaire du tampon 99. Quatre des conducteurs du bus A et quatre des conduc- teurs du bus B sont couplés avec le multiplexeur 43a. D'une manière analogue, les quatre autres conducteurs du bus A et les quatre autres conducteurs du bus B sont couplés avec le multiplexeur 43b. Les multiplexeurs 43a et 43b choisissent, soit les huit conducteurs du bus A, soit les huit conducteurs du bus B, et communiquent les -données, par l'intermédiaire de ces bus, au tampon 99 et au bus 42. Ces multiplexeurs sont sélectivement mis hors d'action (par exemple pendant l'écriture) par la porte 102. Comme décrit plus loin, les seize conducteurs des bus A et B permettent la lecture de seize bits à la fois dans la mémoire-RAM. Cela assure un débit binaire de 16 bits/MHz qui est nécessaire, par exemple, pour un affichage de 80 caractères par ligne. Les données sont chargées dans la mémoire RAM 60 à raison de huit bits à la fois. - La mémoire ROM 50, comme décrit précédemment, stocke des programmes de test, des données nécessaires à l'initialisation de divers registres, des données de génération de caractères (pour la mémoire RAM 162 de la figure 7) et d'autres données apparentées. Des program- mes spécifiques utilisés dans le mode de réalisation ac- tuellement préféré du calculateur sont indiqués dans le tableau 1. La mémoire ROM 50 est choisie par des signaux de commande appliqués à ses broches 18 et 20 et désignés sous le nom de "signal ROM SEL" et "signal T ROM SEL". On peut utiliser comme mémoire ROM 50 l'une quelconque d'une pluralité de mémoires mortes disponibles dans le commerce. Dans le mode de réalisation actuellement préféré, on utilise l'article no SY2333 disponible dans le commerce. On va maintenant examiner ce circuit logique -10 (angle inférieur gauche de la figure 2); comme on peu -le voir sur cette figure, la porte NON ET 81 reçoit le signal d'adresse A8 ainsi que le signal de pile de va- riante désigné par ALT STK. La sortie de cette porte alimente l'une des entrées de la porte ET 87. Le signal A8 est également appliqué, par l'intermédiaire de l'in- verseur 82,' à l'une des bornes d'entrée de chacune des portes NON ET 85 et 86. Les signaux d'adresse A9 et Aio sont appliqués aux bornes d'entrée de la porte NON OU 83. La sortie de cette porte est couplée avec l'une des bor- nes d'entrée de chacune des portes NON ET 85 et 86 et de la porte ET 87. Les signaux d'adresse A11-A15 sont appli- qués aux bornes d'entrée de la porte NON OU 84. Le si- gnal:.A1 est également appliqué à une borne d'entrée de la porte NON ET 85. Les sorties des portes ET 87 et 88 (par l'inte-ré- diaire de la porte NON OU 89) commandent les multiplexeurs 47a et 47b. Lorsque la sortie de la porte 89 est basse, le bus "Z" est choisi, sinon ce sont les signaux d'adresse provenant de l'unité centrale 65 qui sont choisis. Le circuit logique décrit ci-dessus, conjointement avec le bus "Z" et le registre "Z", assure une perforance améliorée du calculateur. En premier lieu, ce circuit permet le stockage de données de page zéro ou page de base dans toute la mémoire RAPI 60 et non plus seulement sur la page zéro. En second lieu, ce circuit permet d'a- dresser des emplacements de pile de variante (autres que la page une). Enfin, ce circuit établit, par l'intermeé- diaire du registre "Z", un pointeur de mémoire RAM pour l'accès direct à la mémoire (DMA). On supposera pour les besoins de l'exposé que l'unité centrale 65 est en train d'adresser la page zéro de la mémoire. En d'autres termes, dans cette hypothèse, les bits d'adresse de plus fort poids A8-A15 sont tous des zéros. Les zéros des bits A9-A15 sont détectés poar- les portes-83 et 84. Si toutes les entrées de ces portes sont des zéros, les sorties de ces portes sont hautes, éta - qui est communiqué à la porte 87. Le bit A8, qui est éga- lement bas, assure un niveau haut à la sortie de la porte 81. Par conséquent, toutes les entrées de la porte 87 sont hautes, ce.qui fait tomber au niveau bas le signal de sortie de la porte 89. Lorsque cela se produit, le bus "Z" est choisi. Au lieu que tous les zéros binaires provenant de l'unité centrale soient transmis à la mémoirE centrale (mémoire RAM 60), le contenu du registre "Z" - fait partie de l'adresse d'accès à la mémoire. En consé- quence, même si l'unité centrale 65 a choisi la page zéro, des données peuvent néanmoins être-écrites à un emplace- ment quelconque ou à partir d'un emplacement quelconque dE la mémoire RAM 60 (y compris la page zéro). Cela améliorE la performance de l'unité centrale étant donné que, par exemple, le temps nécessaire au décalage de données vers une unique page zéro ou à partir de celle-ci est réduit au minimum. Normalement, l'unité centrale 65 choisit la page une pour les emplacements de pile. Cela se produit lors- que A8 est haut et que A9-A15 sont bas. On supposera tou d'abord que les emplacements de pile de variante n'ont pa été choisis. Dans ces conditions, les deux entrées de la porte 81 sont hautes et sa sortie est basse. L'entrée basse de la porte 87 empêche la sélection du bus "Z". En conséquence, dans cecas, les signaux d'adresse AO-A7 choisissent des emplacements de pile sur la page une. On supposera ensuite que la page une a été choi- nie par l'unité centrale et que le signal ALT STK est bae ce qui indique que les emplacements de pile de variante doivent être choisis. (Un drapeau est mis par l'unité centrale pour modifier le signal AL SK). Etant donné que le signal ALT STK est bas et que A8 est haut, un nivE haut apparaît à la sortie de la porte 81. Toutes les en- trées des portes 83 et 84 sont basses et, par conséquent des niveaux hauts apparaissent aux sorties de ces deux p( tes. Les conditions d'ouverture de la porte 87 sont - remplies, ce qui provoque un niveau haut à la sortie de cette porte et un abaissement du niveau de sortie de la porte 89. Le bus I"Z" est, par suite, choisi par les- multiplexeurs 47a et 47b. Cela permet à l'utilisation du contenu du registre I"Z" comme emplacements de varian- te. Des emplacements de page non-zéro sont obtenus en inversant A8. La porte OU EXCLUSIF 90 se comporte com-me un inverseur sélectif. Si A8 est haut et E0 bas, alors A8 est bas à la sortie du multiplexeur 47a. On remar- quera que, pendant la sélection de.. la page zéro, alors que A8 est bas, le signal Z0 est directement transmis par la porte 90 à la sortie du multiplexeur 47a. On voit donc que le circuit logique, conjointement avec le signal ALT STK, permet la sélection d'emplacements de pile de variante par l'intermédiaire du bus "Z". Cela améliore encore la performance de l'unité centrale qui, autrement, serait limitée à la page une pour les emplace- ments de pile. Le montage logique de la figure 2 est également utilisé, conjointement avec le registre Z, pour établir un pointeur lors de l'accès direct à la mémoire (D.iA). On va maintenant supposer qu'un accès direct à la mémoire du calculateur est demandé par un appareil périphérique. * Pour déclencher le mode DMA, l'unité centrale établit une adresse comprise entre F800 et F8FF. Par l'intermé- diaire d'un circuit logique non représenté sur les figu- res 2 et 3, le signal ROM SEL est rendu bas pour les adresses comprises entre F000 et FFFF.- Ce signal est com- muniqué à la porte 93 et provoque une élévation-du niveau de sortie de la porte 92 (DMA1 est haut à ce moment). Cette élévation de potentiel est communiquée à l'une des entrées de la porte 85. En outre, la porte 85 détecte que les bits d'adresse A8; A9 et A10 sont bas. Cette informa- tion est transmise à la porte 85par l'intermédiaire de l'inverseur 82 et de la porte NON-OU 83, sous forme de si- 1 5 gnaux hauts. De plus, le fait que Ail est haut est direc- tement communiqué à la porte 85. Par conséquent, pour une adresse comprise entre F800 et F8FF, le signal DMAOK subit une chute de potentiel. Cela est détecté par l'ap- pareil périphérique, qui provoque à son tour une chute du signal DMA 1 et transmet un signal "prêt" à l'unité cen - - trale 65. Une fois que ce "colloque" est terminé, des données peuvent commencer à être transférées à la mémoire RAM. Le signal DAM 1, transmis par l'intermédiaire de la porte 92 et de l'inverseur 93, rend bas le signal v ROI SEt. Ce signal, en plus d'être communiqué à la mé- moire ROM 50, est appliqué au tampon 99 par l'intermédiaire de la porte 100, ce qui met ce tampon hors d'action (pen - dant la lecture de la mémoire ROM 50). En outre, le signal "prêt" provoque un arrêt brutal de l'unité centrale. Point important, le signal DK.A 1, après avoir traversé l'inverseur 94 et les portes 88 et 89, assure la sélection du registre Z. Le contenu du registre Z est fixe et four- nit un pointeur indiquant une page de la mémoire RAM. - Dans les conditions ci-dessus, l'unité centrale in- crémente les huit bits inférieurs du signal d'adresse. La mémoire ROM 50 fournit les instructions d'incrémentation de l'adresse, à savoir SBC n I et BEQ. L'appareil péri- phérique émet ou reçoit les données en synchronisme avec le fonctionnement de l'unité centrale. Le périphérique fournit également un signal lecture/écriture pour préci- ser l'opération à effectuer. Des données sont alors dé- crites dans la mémoire RAM par l'intermédiaire du bus N2 et du bus 42, ou lues dans la mémoire RAM2 par l'intermé- diaire des bus A et B et du bus N2. Point important, dans le mode DMA décrit ci-dessus, des adresses provenant de l'appareil périphérique ne sont pas nécessaires et le registre Z est utilisé pour fournir un pointeur indiquant une page de la mémoire RAM 60. On va maintenant décrire le sous-ensemble de mémoi- re. Le sous-ensemble de mémoire, indiqué sur la figure -1 sous la forme du moyen de commande d'adresse 59 et de la mémoire RAM 60, est représenté de façon détaillée sur les figures 4, 5 et 6, comme indiqué précédemment. Le moyen de commande de la mémoire est représenté sur les figures 4 et 5, tandis que la figure 6 représente les dis- positifs de mémoire et leur organisation. Le moyen de commande d'adresse des figures 4 et 5 reçoit les signaux d'adresse de l'unité centrale 65(AO-A15), les comptes des compteurs vertical et horizontal (compteur 58 de la figu- re 1), qui sont utilisés au cours des modes d'affichage, des signaux de commande de l'unité-centrale et d'autres signaux. Essentiellement, ce moyen de commande engendre les signaux d'adresse qui sont appliqués à la mémoire RAMU de la figure 6 et qui comprennent les signaux d adresse de colonne et les signaux d'adresse de rangée (ou de li- gne), respectivement dénommés ci-après "signaux CAS" et signaux D'autres fonctions associées sont égale- ment représentées sur les figures 4 et 5, telles que le montage qui assure le défilement de l'affichage, l'adres- sage indirect de la mémoire RAM et la structuration du sous-ensemble de mémoire. L'unité centrale 65 de la figure 3 produit une adresse de 16 bits permettant d'adresser la mémoire. Dans les circonstances ordinaires, cette adresse limite la ca- pacité de la mémoire à 64K. multiplets. Cette capacité de mémoire est insuffisante dans de nombreuses applica- tions, par exemple lorsqu'on désire utiliser effectivement le langage de programmation Pascal. Comme décrit plus loin de façon plus détaillée, le moyen de commande d'a- dresse des figures 4 et 5 permet l'utilisation d'une mé- moire d'une capacité de 96K multiplets ou de 128K.multi- plets. Une technique particulière bien connue, qui est utilisée avec l'invention pour augmenter cette capacité, est la commutation par bloc; cette commutation s'effec- tue sous la commande de l'unité centrale. En outre, le moyen de commande d'adresse utilise un mode d'adressage -indirect original qui, tout en procurant les bénéfices de la commutation par bloc, n'exige pas la commande u- suelle par l'unité centrale. Cela améliore considérable- ment le fonctionnement de l'unité centrale avec la mé- moire de capacité élargie (comme décrit plus loin) par rapport à la commutation par bloc commandée par l'unité centrale. On va tout d'abord se référer à la figure 6, sur - laquelle la configuration de la mémoire RAM est représen- tée pour une capacité de 96K.multiplets. La mémoire est organisée en six rangées ou lignes, comprenant chacune huit dispositifs de mémoire 16K, telles que les rangées 111 et 112. Dans le mode de réalisation actuellement préféré, on utilise des mémoires RAM dynamiques MOS (ar- ticle no 4116). (Les désignations de broches et de si- gnaux se réfèrent à ce dispositif de mémoire particulier), Toutefois, il est bien évident qu'on peut utiliser éga- lement d'autres dispositifs de mémoire. Les données d'entrée de ces dispositifs de mémoir 106 sont appliquées à partir du bus 42. Chaque conducteu du bus-42 est connecté à la borne d'entrée de données d'u dispositif 106 particulier de chaque rangée. L'intercon- nexion de ce bus avec chacun des dispositifs de mémoire n'est pas représentée sur la figure 6 afin de ne pas com- pliquer excessivement le dessin. Toutefois, à titre-d'e- xemple, on a indiqué que le conducteur 107 applique le bit de donnée D7 à la borne d'entrée de données de l'un des dispositifs de mémoire de chacune des six rangées. Trois rangées de dispositifs 106 oht leurs bornes de sortie couplées avec le bus A et les trois autres ran- gées sont couplées d'une manière analogue avec le bus B. A titre d'exemple, on a indiqué que le conducteur 108 cor necte trois bornes de sortie de dispositifs 106 au conduc teur DB7 du-bus B, tandis que le conducteur 109 connecte trois bornes de sortie de dispositifs 106 au conducteur DA7 du bus A. Les dispositifs de mémoire 106 décrits sont orga- -nisés chacun sous la forme d'une mémoire 16K x 1. En conséquence, chacun de ces dispositifs reçoit une adresse de quatorze bits qui est multiplexée temporellement en deux adresses de sept bits. Ce multiplexage s'effectue sous la commande des signaux CA- et M,comme il est bien connu. Les conducteurs couplant les signaux d'a- dresse avec les divers dispositifs de la figure 6 ne sont pas représentés. Toutefois dans l'angle inférieur droit de la figure 6, les divers signaux appliqués à chaque dis- positif (y compris les signaux d'adresse) sont indiqués conjointement avec les numéros de broche correspondants. Un autre montage non représenté est le montage de com- mande de régénération, qui fonctionne d'une manière bien connue, conjointement avec les signaux Ai et RS et avec les signaux d'adresse, pour régénérer les dispositifs dy- namiques. Chaque rangée de dispositifs de mémoire 106 reçoit une combinaison spécifique exclusive de signaux - et -. Par exemple, la rangée 111 reçoit les signaux AS 5, 7 et TM 4, 5; d'une manière analogue, la rangée 112 reçoit les signaux TAS O et RA 0, 3. La génération de ces si- gnaux CAS et M est décrite en référence à la figure 5. Ces signaux (conjointement avec les signaux d'adresse de quatorze bits) permettent la sélection d'un emplacement de huit bits particulier dans la mémoire à 96K.multiplets (pour l'écriture) et également la sélection (pour la lec- ture) d'emplacements de seize bits. On peut développer la mémoire de la figure 6 en une mémoire à 128K. multiplets en utilisant des dispositifs de mémoire 32K tels que l'article nO 4132. Dans ce cas, on utilise quatre rangées de huit dispositifs de mémoire 32K, chacune de ces rangées recevant deux signaux CA et Avant de passer en revue la figure 4, il est utile de posséder une compréhension générale de l'organisation de l'affichage. L'affichage, au cours de certains modes, est organisé en 80 segments horizontaux et 24 segments verticaux pour un total de 1920 blocks. Onze bits du compteur 58 de la figure 1 sont utilisés en tant que par- tie des signaux d'adresse pour que la mémoire puisse ac- céder à des données destinées à être affichées au cours de ces modes. Ces signaux de compteur sont désignés sur la figure 4 par H0-H5 et VO-V4. Au cours d'autres modes d'affichage, chaque segment horizontal est en outre subdi- -10 visé en huit segments (par exemple pour l'affichage de 80 caractères alphanumériques par ligne). Cela exige trois signaux de temporisation verticaux supplémentaires dési- gnés par VA, VB et VC sur les figures 4 et 7. Dans la technique antérieure, on utilise souvent deux compteurs séparés pour produire les signaux de tem- porisation et d'adresse nécessaires pour accéder à une mémoire lors de l'affichage des données contenues dans celle-ci. Le compte de l'un de ces compteurs représente les lignes horizontales de l'écran (compte vertical) et l'autre la position le long de chaque ligne (compte ho- rizontal ou compte de points). Dans de nombreux affi- chages de la technique antérieure, le bit de plus fort poids du compteur de points est utilisé pour incrémenter le compteur de lignes. -Les données de la mémoire desti- nées à l'affichage sont structurées avec une corrélation biunivoque avec les comptes de ces compteurs. Dans un autre dispositif de la technique antérieure (réalisé sous la forme du calculateur Apple-II vendu par Apple Computer, Inc.), cette corrélation biunivoque n'est pas utilisée. Au lieu de cela, pour économiser des circuits, on utilise un unique compteur et l'on prévoit une structuration plus dispersée dans la mémoire. (A noter que lorsqu'on utilise un compte horizontal maximal de 80, ce nombre ne peut pas être représenté uniquement par des "uns" dans un compteur numérique, de sorte que le compteur-vertical ne peut pas être aisément incrémenté par le bit de plus fort poids du compteur horizontal). Etant donné qu'une telle structura- -tion plus dispersée fait partie de la technique anté- rieure et n'est pas critique pour la compréhension de l'invention, elle ne sera pas décrite ici de façon dé- taillée. Toutefois, la manière dont elle est réalisée sera discutée à propos de l'additionneur 114 de la fi- gure 4. Pour les besoins de la discussion, les signaux provenant du compteur 58 de la figure 1 sont désignés soit par V (signaux verticaux), soit par H (signaux ho- rizontaux). On va maintenant se référer à la figure 4, sur la- quelle on peut voir que la sélection, soit des signaux de compteur, soit des signaux d'adresse provenant de l'unité centrale, est assurée par les multiplexeurs 116, -117, 118 et 119. Chacun de ces multiplexeurs disponibles dans le commerce (article nO 153) couple l'un de quatre conducteurs d'entrée avec un conducteur de sortie. Les multiplexeurs 116, 117 et 118 comportent huit entrées et les sorties de ces multiplexeurs engendrent les signaux d'adresse pour les mémoires (ARO à ARS). Le multiplexeur 119 comporte quatre entrées sur ses broches 3, 4, 5, 6 et produit une unique sortie sur la broche 7, le signal d'adresse 1R6. (Les signaux appliqués aux broches 11, 12 et 13 du multi- plexeur 119 ne sont destinés qu'à des fins de verrouillage). Le signal E est appliqué à la broche 14 de chacun des multiplexeurs. Le signal de ce conducteur et le si- gnal appliqué à la broche 2 déterminent laquelle des qua- tre entrées est couplée avec chacune des sorties des mul- tiplexeurs. Le signal 2 est un signal de temporisation de mémoire RAM destiné à rythmer les sept premiers bits et les sept derniers bits de l'adresse de 14 bits multi- plexée appliquée à chacun des dispositifs de mémoire 106. L'autre signal de commande des multiplexeurs est établi par l'intermédiaire de la porte ET 123. Les entrées de cette porte sont le signal d'affichage (DSPLY), qui indi- que que le calculateur est sur un mode d'affichage, et un signal d'horloge, à savoir un signal de temporisation de I MHz (C-M). La sortie de la porte ET 123 détermine la sélection, soit des signaux d'adresse provenant de l'u- nité centrale, soit des signaux associés au compteur 58 de la figure 1. On supposera pour les besoins de la discussion que l'affichage n'a pas été choisi par la sélection et que, par conséquent, la sortie de la porte 123 est basse. Le signal M assure alors la sélection, pour la broche 7 du multiplexeur 116, d'abord du signal d'adresse A0 puis du signal d'adresse A6. D'une manière analogue, chacun des multiplexeurs choisit un signal d'adresse (à l'exception de ceux qui sont associés aux portes OU EXCLUSIF 124 et 125, ce qui sera décrit plus loin). Si le signal d'affichage est haut, et si une sortie de la porte 123 est présente, alors, par exemple, le signal M provoque tout d'abord l'application du signal H1, puis du signal V1, au conducteur d'adresse AR1. D'une manièrE analogue, des signaux correspondant aux comptes vertical et horizontal sont appliqués aux autres conducteurs d'a- dresse au cours de modes d'affichage. L'additionneur 114 est un additionneur numérique ordinaire, capable d'additionner deux courts mots numéri- ques de quatre bits et de produire un signal-somme numé- rique. On utilise un additionneur disponible dans le commerce (article n0 283). La borne de report à partir de l'extérieur (broche 7) est mise à la masse et aucun rapport vers l'extérieur ne se produit étant donné que l'une des entrées (broche 12) est également mise à la masse. L'additionneur additionne le signal numérique co: respondant à H3, H4 et H5 avec le signal numérique cor- respondant à V3, V4, V3, V4. Le signal-somme résultant est transmis aux multiplexeurs 116, 117 et 118 comme re- présenté. L'addition de ces signaux de compteur horizon taux et verticaux est utilisée pour assurer la structura tion plus dispersée précédemment mentionnée. L'additionneur 121 est identique à tl'additionneur -114 et est monté de manière à-additionner les trois bits de compteur verticaux de plus faible poids provenant du compteur-58 (figure 2) avec les signaux VA1, VB1 et VC1. La somme est choisie par le multiplexeur 120 au cours des modes d'affichage.à haute définition et également pendant le défilement, comme décrit plus loin. Ces signaux-somme sont appliqués aux multiplexeurs 117, 118 et 119.. Au cours des modes d'affichage à faible définition, le multiplexeur 120 applique des signaux de masse ou bien le signal de page 2 (M2) aux multiplexeurs 117, 118 et 119.(Le signal M2 est utilisé à des fins de structuration spéciales qui ne font pas partie de l'invention). Au cours des modes à haute définition pendant lesquels l'affichage ne défile pas, les signaux VA1, VB2 et VB3 sont au potentiel de la masse et, par conséquent, aucrure addition ne se produit dans l'additionneur 121 et les signaux VA, VB et VC sont directement transmis aux multiplexeurs 117, 118 et 119. Les signaux d'adresse A10, Ail et A13 provenant de l'unité centrale sont appliqués aux multiplexeurs 117, 118 et 119, respectivement, par l'intermédiaire de portes OU EXCLUSIF 124, 125 et 126, respectivement. Les autres bornes d'entrée des portes 124 et 125 reçoivent le signal C3, tandis que l'autre borne d'entrée de la porte 126 re- çoit le signal C1. (La génération des signaux C1 et C3 est représentée sur la figure 5). Les portes 124, 125 et 126 assurent une compensation de structuration à l'in- térieur de la mémoire. Tels que le calculateur et la mé- moire sont actuellement réalisés, la séquence suivant la-. quelle les diverses parties de l'affichage sont engendrées n'est pas la même que la séquence suivant laquelle les données sont extraites de la mémoire en vue de l'affichage. Ces portes fournissent des adresses de compensation et, en fait, provoquent une restructuration de façon que la sé- quence convenable soit maintenue lors de la lecture de don- nées dans la mémoire en vue de l'affichage. Ces portes sont représentées afin de donner une description complète du --mode de réalisation actuellement préféré, mais elles ne sont pas critiques pour ce qui concerne l'invention. En fonctionnement, le montage de la figure 4, com- me décrit précédemment, assure la sélection des signaux d'adresse qui sont appliqués à chacun des dispositifs de mémoire, soit à partir de l'unité centrale, soit à par- tir du compteur, si'le mode d'affichage est choisi. Il est à noter que tous les bits d'adresse provenant de l'unité centrale ne sont pas appliqués aux multiplexeurs 116 à 119. Certains de ces bits d'adresse, comme décrit plus loin en référence à la Figure-5, sont utilisés pour créer les divers signaux CAS et RAS et assurer ainsi la sélection de différentes rangées dans la mémoire de la figure 6. -L'opération de défilement qui est utilisée est quelque peu inhabituelle en ce sens que chaque ligne de l'affichage est déplacée vers le haut séparément (ligne par ligne) une unique ligne de données de la mémoire é- tant déplacée pour chaque image. Cette technique assure un défilement uniforme esthétiquement plaisant. On peut - obtenir un défilement de l'écran à raison d'une ligne par image en amenant toutes les données contenues dans la mémoire à une nouvelle position pour chaque image. Tou- tefois, cela demanderait beaucoup de temps et serait peu pratique. Avec la technique décrite, une huitième seule- ment des données contenues dans la mémoire sont déplacées pour chaque nouvelle image. Pour revenir à l'additionneur 121, comme décrit précédemment, les signaux VA, VB et V0 sont les trois bits de compteur verticaux de plus faible poids provenant du compteur 58. Ces bits ou comptes représentent, par exem- ple, les huit lignes horizontales de chaque caractère. Dans l'additionneur 121, le signal numérique de trois bits VA1, VB1 et VC1 est ajouté au compte du compteur 58. Ce signal de trois bits est constant pendant chaque image; en revanche, il est incrémenté pour chaque nouvelle image. Au cours d'une première image, 000 est ajouté au compte vertical. Au cours d'une seconde image, 001 est ajouté; au cours d'une troisième image, 010 est ajouté, et ainsi de suite. En ajoutant ce signal numérique au compte provenant du compteur 58, les adresses d'accès à la mémoire sont modifiées dans le sens vertical. Au-cours de la première image, pendant laquelle 000 est ajouté, l'affichage n'est pas affecté. Au cours.de l'image sui- vante, pendant laquelle 001 est ajouté au comptë vertical, au lieu que la première ligne d'un caractère soit tout d'a- bord affichée, la seconde ligne de chaque caractère est affichée au sommet de chaque espace de caractère et chaque ligne suivante du caractère est de mâme remontée d'une ligne. Si les données contenues dans la mémoire n'étaient pas déplacées, la première ligne du caractère apparaîtrait à la base de chaque caractère. On remarquera que, lors- que 001 est ajouté à 111 provenant du compteur, le résul- tat est 000. En conséquence, la première ligne des carac- tères serait donc adressée lors du balayage par le faisceau de la huitième ligne des caractères. Pour empêcher cela, les données correspondant à la première ligne'de chaque ca- ractère sont déplacées dans -la mémoire pour cette image. La première ligne d'un caractère donné est déplacée vers le haut et devient la ligne de base du caractère situé im- médiatement au-dessus. Lorsqu'on ajoute 010, le processus se répète. Par exemple, la troisième ligne de chaque ca- ractère est tout d'abord affichée dans chaque espace de caractère et la seconde ligne de-chaque caractère est re- montée pour devenir la ligne de base du caractère situé immédiatement au-dessus. Ce processus se répète pour fai- re défiler les données. Le mouvement des données dans la mémoire est commandé par l'unité centrale d'une manière bien connue. Ainsi, grâce à l'utilisation de l'additionneur 121, on obtient un défilement uniforme et continu sans déplacer toutes les données dans la mémoire pour chaque image. Au lieu de cela, un huitième seulement des données sont dé- placées pour chaque image. On va maintenant se référer à la figure 5, sur laquelle est représenté le montage utilisé pour assurer l'adressage à partir de l'unité centrale. En général, les signaux CAS sont engendrés par les mémoires ROM 127 et 128. Les signaux Z sont engendrés par la mémoire ROM 132. Le multiplexeur 130 permet la sélection, soit des signaux de commutation par bloc, soit du mode d'a- dressage indirect original lorsque la "commutation par bloc". se produit sans ordres directs de l'unité centrale. La mémoire ROM CAS 127 reçoit comme adresse les signaux suivants: PRAS, $3, PRAS 1,2, -T, DHIRES, R/W, A11, A13, A14 et A15. Les signaux PRASe, 3 et PRAS 1, 2 représentent les signaun RAS utilisés. Ces signaux sont hauts lorsque les signaux RAS correspondants sont actifs. Comme décrit précédemment, le signal AY est haut pour les modes d'affichage et le signal DHIRES est haut pour des modes d'affichage à haute définition: La mémoire ROM CAS 128 reçoit comme signaux d'adresse les signaux ABK1, ABK2 et ABK3 et également les signaux DHIRES, 7F, I] A11, A13, A14 et A15. Les mémoires ROM 127 et 128 sont programmées de - manière à vérifier les équations suivantes: (1) PCASO = (PRASO, 3. (DHIRES. Y+ AY. (iTF. A. -Al RIW +?T5 À. Ai.13 R/WN + A15. A A13 Al + 5 A14. A13. Ali))) (2)- PCAS = (DHIRES ' ? + AY. (AKI ' AK ' * + ABK * ABK2 ' ABK3) - (7'-15 A14) + AY ' IND ' ABK1 B3 ' ' (A14'' A13 + A14 ' A13)) (3) PCAS3 =PRAS0, 3 ' (IRET ' -' AY (?Tj '7 1 *X' -3 Al1 + A15 A14 ' Ai3 ' T1 + A15 A14 ')) _. (4) PCAS4,6 = (AY-'TI ' ' (ABK1 + ABK1) ' ABK2) ' (14 ' A13 + A14 ' P3) + AY ' INDr À A ( À ]TA15 + -72 ' ABK1 + ABK2 *5 l) ' A +I AY ' 3 'ABK1 ' ABK2 ' 1 ' (A15' ' A13 + A15 * A1 'T3) + AY IND ABK3 ' ABK2 (T'5 ABK1 + A15 - ]Ir) * (A4T À T3 + A14 ' A3)) (5) PCAS5, 7, = (AY T ' - (ABKI * + T-1 TMK) ' (T-5 ' A14 A13 +A15 * 1 * T3) + AY IND M * (AB2 * =1 Ai5 + = ABK1 + '2 ABK2 ABK I - À]5) Al4 + AY MM ABK1 ABK2 ' ABK ( Ai4) + AY ' IND ' ' ABK2 ' (5 * ABK1 + A15. Z-) '* (;7F ' A13 + A14 ' A13)) En fait, ces mémoires ROM sont programmées de manière à permettre la sélection de rangées prédéterminées dans la mémoire, sur la base des signaux d'adresse Ao, A13, A14 et A15 (en négligeant pour le moment la contribution des signaux TM et des autres signaux apparaissant dans les équations). Les sorties des mémoires ROM 127 et 128 sont * couplées avec le registre 131. Le registre 131 est un re- gistre disponible dans le commerce qui permet l'activation de signaux de sortie (article n 374). Pendant l'accès à la mémoire, les divers signaux CAS ( CASO à CAS 7) sont appliqués à la mémoire de la figure 6 pour permettre la sélection des dispositifs de mémoire appropriés. Le signal USELB provenant de la mémoire ROM CAS 127 par l'intermé- diaire du registre 131 assure la sélection, soit du bus A, soit du bus B. Ce signal est transmis aux multiplexeurs 43a et 43b de la figure 3. Au cours du fonctionnement normal, le multiplexeur choisit les signaux de commutation par bloc BCKSW 1 à BCKSW 4. Ces quatre signaux (ou selon une variante quatre signaux provenant du bus A) fournissent quatre des entrées (signaux d'adresse) de la mémoire ROM 132. Les autres entrées de cette mémoire ROM sont les signaux DHIRES, Z PAGE, PA8, PAl5, RFSH (régénération)et --. Ces signaux d'adresse assurent la sélection des signaux RAS O, 3; RAS 1, 2; RAS 4, 5 et RAS 6, 7. La mémoire ROM 132 est programmée de telle manière que les quatre équations suivantes soient vérifiées: PRASO, "=] (DHIRES + RFSH) + (ABK4 (Z Page. PA8) ) + ABK1 ABK2 - ABK3) AY (6) PRAS1, 2 = (DHIRES + RFSH) + AY ([VK1 ' - A (ABK4' (ZPAGE' PA8) ' P-AI) + ABK1 ' ABK2 ABK3) + AY ' A (-l '. ABK2 ' ABK4 * (ZPAGE--) PA15 + ABK1 ABK2 ' (ABK4 ' (ZPAGE'PA8) PA5) (7) PRAS4, 5 = RFSH ' d+ AY' ' (] ABK4 (ZPAGE ' P) PA15 + ABK1 ' (ABK4 (ZPAGE PA-I) (8) PRAS6, 7 = RFSH * 1 + AY ' (ABK1 * *ABK4 (ZPAGE ' P)PA15 + A ABK2 ' (ABK4 (ZPAGE P8) *A-1-5) (9) Ainsi, les signaux de-commutation par bloc (concurremment aux autres signaux d'entrée de la mémoire ROM 132) assu- rent la sélection de rangées prédéterminées dans la mé- moire conjointement avec les signaux M. Les signaux de sortie de la mémoire ROM 132 sont transmis à la mémoire par l'intermédiaire des portes NON ET 142, 143, 144 et 145. Les autres bornes d'entrée de ces portes reçoivent le signal de temporisation RAS. De cette manière, les signaux de sortie de la mémoire ROM 132 sont transmis de façon rythmée à travers les portes 142 à 145, pour produire les signaux RAS représentés sur les figures 5 et 6. Une importante caractéristique du calculateur dé- crit ici est assurée par le montage représenté dans le cadre en trait interrompu 146. La porte ET 148 reçoit à ses bornes d'entrée les signaux DA7, A12 et C3. La porte NON OU 149 reçoit le signal de page zéro et le signal A15. La sortie de la porte 149 alimente une des entrées de la porte 148 ainsi qu'une des entrées de la porte 150. La sortie de la porte 148 applique un autre signal d'entrée à la porte 150 et ce signal (conducteur 153) est l'un des deux signaux de commande appliqués au multiplexeur 130. Les portes ET 150 et 151 reçoivent également un signal SYNC (de synchronisation) et le signal e0o Les sorties respectives des portes 150 et 151 sont couplées avec une porte NON OU 152, la sortie de celle-ci (conducteur 154) étant à son tour couplée avec l'autre borne de commande du multiplexeur 130. Les portes 150, 151 et 152 forment en fait une horloge pour le multiplexeur/registre 130 (le multiple- xeur 130 est un article commercial, article n0 399, qui est effectivement un multiplexeur/registre). Cela assu- re la sélection des quatre conducteurs d'entrée infé- rieurs du multiplexeur 130. Toutefois, en raison du si- gnal de synchronisation appliqué à la porte 151, le multi- plexeur 130 choisit les signaux de commutation par bloc chaque fois qu'un code OP est extrait par l'unité centrale. Pour comprendre le fonctionnement du montage re- présenté dans le cadre en trait interrompu 146, il y a lieu de se rappeler que la mémoire de la figure 6 produit une sortie de 16 bits. Comme décrit précédemment, au cours de certains modes d'affichage, 16 bits/ms sont né- cessaires pour l'affichage. Dans les modes de non-affi- chage, huit bits seulement sont nécessaires, en particu- lier pour l'interaction avec l'unité centrale. Lorsque la mémoire est adressée par l'unité centrale au cours des modes d'adressage indirect, les données présentes sur le bus A ne sont ordinairement pas utilisées. En revanche, avec le montage représenté dans le cadre en trait inter- rompu 146, ces données, autrement "inutilisées", sont em- ployées pour former l'équivalent des signaux de commuta- tion par bloc à traversle multiplexeur 130. Chaque fois que l'unité centrale choisit une gamme prédéterminée d'adresses, le multiplexeur 130 choisit l'é- quivalent des signaux de commutation par bloc provenant du bus A, à condition que le signal DA7 soit haut. (Cela se - produit lorsqu'on adresse comme page zéro la zone d'adres- ses -1800 à 1FFF). Une fois que le signal présent sur le conducteur 153 est haut, il est verrouillé par l'intermé- diaire des portes 150, 151 et 152, ce qui provoque la sé- lection par le multiplexeur 130 des quatre bits provenant du bus A (en supposant que les signaux de temporisation soient hauts). Même si la référence suivante provenant de l'unité centrale ne vise pas cette gamme d'adresses, -spéciale, le multiplexeur 130 reste néanmoins verrouillé avec les quatre bits provenant du bus de données.- Toute- fois, lorsquel'impulsion SYN retombe, ce qui est une in- dication du fait qu'un code OP est en train d'être extrait le potentiel de signal présent sur le conducteur 154 s'é- lève, ce qui provoque une recommutation du multiplexeur sur les signaux de commutation par bloc. - Ce qui se produit en fait est que, lorsque l'unité centrale choisit cette gamme d'adresses spéciale, (et à condition que le signal DA7 soit haut) les bits DAO à DA3 qui sont stockés en mémoire provoquent une restructuration c'est-à-dire que l'adresse provenant de l'unité centrale- accède à une partie différente de la mémoire. Avec l'ex- traction de chaque code OP, la structuration repasse au- tomatiquement sur les signaux de commutation par bloc. Point important, la restructuration qui se produit est com mandée par les bits stockés dans la mémoire RAM (DA$ à DA3 Ainsi, avec l'information de restructuration stockée dans la mémoire RAM, une inversion peut se produire entre dif- férentes parties de la mémoire sans que cela exige des si- 28 2487095 gnaux de commutation par bloc, ou analogues, de l'unité centrale. Cela améliore la performance de l'unité centrale étant donné que du temps defonctionnement de celle-ci n'est pas utilisé pour-la restructuration. En outre, ce- la constitue un outil de programmation commode. Pour certains langages de programmation, il est désirable de ranger les données et le programme dans des parties séparées de la mémoire. Par exemple, la mémoire 128K peut être subdivisée en deux mémoires 64K, l'une pour le programme et l'autre pour les données. Une commu- tation peut se produire entre ces parties de mémoire sans génération de signaux de commutation par bloc par l'unité centrale avec le montage décrit ci-dessus. Cette-disposi- tion est particulièrement utile lorsqu'on utilise le lan- gage de programmation Pascal. On va maintenant décrire le sous-ensemble d'affi- chage. Le sous-ensemble d'affichage 48 de la figure 1 re- çoit des données du bus A et du bus B et convertit ces- données en signaux vidéo, qui peuvent être utilisés pour afficher des caractères alphanumériques ou d'autres ima- ges sur un affichage à tube à rayons cathodiques balayé à trame standard. Le sous-ensemble d'affichage 48 engen- dre spécifiquement sur le conducteur 197-un signal vidéo couleur NTSC standard et un signal vidéo en noir et blanc sur le conducteur 198 (figure 8). Ce sous-ensemble d'af- fichage reçoit, en plus d'autres entrées, un signal de synchronisation et plusieurs signaux d'horloge. Par sim- plification, le signal de référence couleur standard de - 3,57945 MHz est indiqué par l'abréviation C3.5m. Le dou- ble ét le quadruple de cette fréquence sont indiqués, res- pectivement, par les abréviations C7m et C14m. Avant de décrire les détails du sous-ensemble d'af- fichage 48, un exposé d'un dispositif d'affichage de la technique antérieure facilitera la compréhension du sous- ensemble d'affichage suivant l'invention. Dans le brevet 29 2487095 US 4 136 359 est décrit un dispositif d'affichage vidéo, qui est réalisé dans un calculateur disponible dans le commerce, Apple-II, vendu par Apple Computer Inc., Cuper- tino, Californie, E.U.A. Dans ce dispositif, des mots numériques de quatre bits sont décalés en parallèle jus- que dans un registre à décalage. Ces mots circulent a- lors dans ce registre à 14 MHz pour définir une forme d'onde ayant des composantes à 3,5 MHz. En se référant à la figure 9, ligne 206, on va maintenant supposer que le - mot numérique 0001 est placé dans le registre à décalage et circule à une fréquence de 14 MHz. Le signal résul- tant qui a une composante de 3,5 MHz est représenté sur le conducteur 206. La relation de phase entre cette com- posante et le signal de référence à 3,5 MHz détermine la '"couleur" du signal vidéo résultant. On modifie cette rela- tion en changeant le mot de quatre bits placé dans le re- gistre à décalage. Comme expliqué dans le brevet cité ci-dessus, si le signal 1000 est placé dans le registre et y circule, la relation de phase résultante de la com- posante à-3,5 MHz produit la couleur marron; ce signal est représenté sur la ligne 208. Dans cette technique an- térieure, la luminance était déterminée par la composante de courant continu des signaux tels que ceux qui sont représentés sur les lignes 206 et 208. Le sous-ensemble d'affichage 48 de la figure 1 utilise également des mots de quatre bits pour engendrer les divers signaux couleur de manière assez analogue à ce qui se passe dans le dispositif décrit ci-dessus. En se référant à la figure 8, on voit que des mots de quatre bits représentatifs de couleurs (seize couleurs possi- bles) sont appliqués au bus 180. (La génération de ces mots sera décrite plus loin de façon détaillée en référen- ce à la figure 7). Au lieu d'utiliser un registre à déca- lage qui fait circuler le mot de quatre bits, on obtient le même résultat en utilisant un multiplexeur 205 qui as- sure une sélection séquentielle de chacun des conducteurs du bus 180. Les signaux présents sur le bus 180 fournis- -sent également un signal de luminance et un signal vidéo noir et bland avec une échelle de gris. Les quatre conducteurs du bus 180 sont couplés avec un multiplexeur 205; ce multiplexeur reçoit égale- ment-les signaux de temporisation C7m et C3.5m. Ces deux signaux de temporisation provoquent la sélection séquen- tielle de chacun des quatre conducteurs et leur couplage avec le conducteur 191. (On remarquera que l'ordre dans lequel les divers conducteurs du bus 180 sont choisis ne change pas). En fait, le multiplexeur fonctionne de manière à mettre en série le signal parallèle provenant du bus 180. On supposerapour les besoins de l'explication que les signaux numériques du bus 180 sont 1000, comme indiqué- sur la figure 8. Le signal du conducteur 191 sera alors 10001000.... La sortie du multiplexeur 205 couplée avec l'entrée de l'inverseur 204 reçoit également dans un or- dre séquentiel les signaux provenant du bus 180, mais, toutefois, dans un ordre différent. DUans l'exemple repré- senté, l'entrée de l'inverseur 204 est 00100010.... A- près inversion, il en résulte le signal 11011101... sur le conducteur 192. En fait les signaux des conducteurs 191 et 192 sont additionnés par des résistances 199 et 200. La forme d'onde résultante est un signal de courant alter- natif (pas de composante de courant continu) représenté - sur la figure 9, ligne 209. On voit donc qu'avec le mon- tage décrit est engendré un signal de chrominance qui est dans une relation de phase prédéterminée avec le signal de référence couleur à 3,5 MHz. Cette relation de phase qu'on fait varier en changeant les signaux du bus 180 détermine la "couleur" du signal vidéo sur le conducteur 197. Dans l'affichage de la technique antérieure décrit ci-dessus, la composante de courant continu du signal couleur détermine la luminance. Suivant l'invention, les signaux du bus.180 sont appliqués à la base d'un transis- 24870 9! tor 195, qui reçoit également un signal de courant alternE tif de chacune des résistances 199 et 200, et le niveau dE luminance également déterminé par les signaux du bus 180. Ces entrées du transistor 195, conjointement avec le si- gnal C35m engendrent sur le conducteur 197 un signal cou- leur NTSC de qualité améliorée par rapport à celui que produit le dispositif de la technique antérieure mentionn ci-dessus. Dans certains cas, les signaux du bus 18G sont toi des "uns" binaires ou tous des zéros binaires. Lorsque cela se produit, il n'y a pas de composante de courant al- ternatif provenant des résistances-199 et 200 (pas de si- gnal couleur) et le signal résultant sur le conducteur 19' est "noir" ou "blanc". Les conducteurs du bus 180 sont également couplés par l'intermédiaire de résistances, avec la base d'un transistor 196. Chacune de ces résistances a une valeur différente pour assurer une "pondération" du signal bi- naire. Cette pondération est utilisée pour des afficha- ges non en couleur pour produire des nuances"de gris" par opposition à un affichage en noir et blanc pur. Les si- gnaux binaires du bus 180 excitent le transistor 196 pour produire un signal vidéo sur le conducteur 198. Le signa RGB-est engendré au moyen de sommes pondérées de ces même cinq signaux. On va maintenant se référer à la figure 7 sur la- quelle on peut voir que des donLnées provenant de la mémoi sont appliquées à partir du bus A et du bus B à des re- gistres 159 et 158, respectivement. Ces registres sont "rythmés" par le signal d'horloge à 1 MHz et son complé- ment, ce qui permet le transfert séquentiel de mots de ht bits toutes les demi-millisecondes. Comme décrit plus loin, dans certains modes d'affichage, les données sont transférées à la fréquence de 2 MNz et dans d'autres mode d'affichage, à une fréquence de 1 MHz. Les registres 158 et 159 sont couplés avec un bus d'affichage 160 à huit conducteurs. Ce bus d'affichage transfère des. données aux registres 164 et 173 ainsi que des adresses à une mémoire 162. Les registres 164 et 173 et la mémoire 162 sont activés au cours de modes d'affi- chage spécifiques, comme on le verra plus loin. La mémoire de caractères 162, dans le mode de réa- lisation actuellement préféré, est une mémoire à accès di- rect qui stocke des profils binaires représentatifs de caractères alphanumériques. Chaque fois que le calcula- teur est mis sous tension, l'information de caractères est transférée de la mémoqire ROM 50 -dans la mémoire de ca- ractères 162 au cours d'une période d'initialisation. Au cours de modes d'affichage de caractères, les signaux pro- venant du bus d'affichage 160 sont des-adresses identifiant des caractères alphanumériques particuliers stockés dans la mémoire de caractères 160. Les signaux de compteur verti- caux VA, VB et VC (précédemment décrits conjointement avec 'l'additionneur 121 de la figure 4) identifient la li- gne particulière de chaque caractère qui doit être affichée. En conséquence, la génération des signaux numériques repré- sentatifs de chacun des caractères s'effectue d'une manière ordinaire. Le signal de sept bits représentatif de chaque ligne de chaque caractère (sortie de mémoire) est appliqué au registre à décalage 167. Au moyen de signaux de tempo- risation non indiqués, une sélection, soit duregistre 164, soit de la mémoire de caractères 162 a lieu pour permettre au registre à décalage 167 de recevoir soit des données directement du bus A ou du bus B, soit une information de caractères alphanumériques de la mémoire 162. Les sept bits d'information provenant, soit de la mémoire 162, soit du registre 164, sont mis en série par le registre à décalage 167, soit à une fréquence de 7 PEHz, soit à une fréquence de-14 MHz, selon le mode d'affichage. Les données mises en série sont appliquées par le conduc- teur 185 au multiplexeur 169, broches 1 et 4. L'inverse de ces données est également appliqué au multiplexeur 169, broche 3. Le conducteur 185 est également couplé en tant qu'entrée avec le multiplexeur 166 et avec le registre (entrée 1). La sortie 1 du registre 170 (conducteur 186) est couplée avec le multiplexeur 169, broche 1; avec le registre 170 (entrée 2); et avec le multiplexeur 166. La sortie 2 du registre 170 (conducteur 187) est couplée avec l'entrée 3 du registre 170 et également avec le multiplexeur 166. La sortie 3 du registre 170 (conduc- teur 187) constitue une troisième entrée pour le multi- plexeur 166. L'entrée 4 du registre 170 est alimentée par la sortie du multiplexeur 169 (conducteur 189). La sortie 4 du registre 170 (conducteur 190) fournit l'un des signaux de commande du multiplexeur 171. Le multiplexeur 171 choisit, soit les quatre con- ducteurs du bus 183, soit les quatre conducteurs du bus 184. La sortie du multiplexeur 171, bus 180, engendre le signal de quatre bits décrit à propos de la figure 8. Pendant l'un des modes d'affichage à haute définition (AHIRES), le multiplexeur 171 est commandé par un si- gnal de temporisation provenant de la sortie de la porte 178. Le multiplexeur 166 choisit, soit les conducteurs du bus 181, soit ceux du bus 182. La sortie de ce mul- tiplexeur produit les signaux pour le bus 184. Dans tous les modes d'affichage, sauf le mode AMHIRES, le multiple- xeur 166 choisit le bus 181. Par conséquent, le multi- plexeur 171 reçoit généralement les signaux du bus 174. Pour les besoins de la description ci-dessus, et en vue de l'explication donnée ci-après de certains des - modes d'affichage, on a fait une hypothèse simplificatri- ce. Les signaux appliqués au bus 180 par le multiplexeur 171 sont commandés, pour la plupart des modes, par le si- gnal mis en série du conducteur 190. Ce signal mis en série est en synchronisme avec les signaux d'horloge C7m ou C14m. Le multiplexeur 205 de la figure 8 qui, comme décrit précédemment, assure "l'assemblage" du signal numé- - rique en parallèle présent sur le bus 180, fonctionne en synchronisme avec le multiplexeur 171. Dans la descrip- tion ci-dessus, ainsi que ci-après sauf indication con- traire, on a supposé que,-par exemple, si le multiplexeur 171 applique des "uns" ou des zéros binaires partout sur le bus 180, le signal du conducteur 191 sera formé soit de "uns", soit de zéros. De même, pour cette condition, le signal du conducteur 192 ne comprendra-que des zéros ou des "uns" binaires et, par conséquent, aucun signal de sourant alternatif ne sera engendré à la base du transis- tor 195. Toutefois, dans la réalisation effective, il existe unedifférence "de phase" entre le fonctionnement rythmé du multiplexeur 171 et l'échantillonnage des si- gnaux du bus 180 par le multiplexeur 205. Cela se tra- - duit par un premier signal de courant alternatif cons- tant sur la base du transistor 195, même lorsqu'il ap- paraît que des "uns" binaires sont partout présents sur le bus-180, et par un second signal de courant alternatif constant lorsque des-zéros binaires sont partout présents sur le bus 180. En conséquence, dans la présente des- cription, lorsque celle-ci indique que des signaux "noirs" ou "blancs" sont engendrés, en fait dans la réalisation courante deux couleurs constantes sont engendrées sur un affichage en couleur. Lorsqu'on désire obtenir vraiment du noir et blanc, on procède à une suppression de la cou- leur, par exemple au moyen du signal de salve couleur. Le montage de la figure 7, conjointement avec ce- lui de la-figure 8, permet plusieurs modes d'affichage dis- tincts. Le premier de ces modes assure un affichage com- prenant 40 caractères (ou espaces) par ligne horizontale. Cela exige un débit binaire de 8 bits/MHz, soitla moitié du débit binaire que la mémoire est capable d'assurer. Dans ce mode, une donnée est chargée à partir du bus A pendant une période de 0,5 ms sur deux (le bus B n'est pas utilisé pendant ce mode). Cette donnée adresse la * mémoire de caractères 162 et, conjointement avec les si- gnaux VA, VB et VC, transmet la ligne de caractère, appro- priée (sept bits) au registre à décalage 167. Pendant ce mode, les registres 164 et 173 sont désactivés. Pour ce mode, le registre-à décalage 167 décale les données à une fréquence de 7 MHz (à noter que le signal Cest haut, ce qui permet au signal à 7 MHz provenant de la por- te 175, de commander le registre à décalage 167). Chaque signal de sept bits est décalé séquentiellement jusque sur le conducteur 185 puis jusqu'au conducteur 189, étant donné que le multiplexeur 169 choisit.la broche 4. Les données sont décalées à travers le-registre 170 jusque sur le conducteur 190. Le signal binaire séquentiel du con- ducteur 190 provoque la sélection de l'un des bus 183,184. Pendant ce mode, les quatre conducteurs du bus 182 sont reliés à +V (le registre 173 est désactivé); en con- séquence, la sélection du bus 184 produit quatre "uns"' bi- naires. La sélection du bus 184 produit quatre zéros bi- naires par l'intermédiaire du bus 181. Le signal binaire séquentiel du conducteur 190 produit donc, soit des "uns" binaires partout, soit des zéros binaires partout, sur le bus 180. Tel qu'il est décrit ci-dessus, le montage de la figure 8 assure un affichage en noir et blanc à 40 carac- tères par ligne. - 25. Si le moyen de temporisation d'inversion et de clignotement 172 est choisi, chaque fois que le registre à décalage 167 est chargé, le multiplexeur 169 commute sa sortie entre les broches 3 et 4. Cela provoque une nin- version" des caractères: des caractères blancs sur fond noir deviennent des caractères noirs/ sur fond blanc, et vice versa. Au cours du mode d'affichage à 80 caractères par ligne, les registres 158 et 159 sont respectivement char- gés pendant des périodes séquentielles de 0,5 ps (cela utilise la fréquence de cycle de 2 MHz précédemment men- tionnée). Le registre à décalage 167 décale les données de caractères à partir de la mémoire 162 à une fréquence -de 14 MHz. Les données mises en série à la fréquence de- 14 MHz sont décalées à travers le registre 170 et comman- dent, ici encore, le multiplexeur 171, comme décrit pré- cédemment. (A noter que le registre 170 est toujours rythmé à la fréquence de 14 MHiz). Un clignotement peut ici encore être obtenu, comme décrit précédemment. Dans un autre mode d'affichage de caractères alpha- numériques, le fond ou arrière-plan de chaque caractère peut être d'une couleur donnée et le caractère lui-même (-ou avant-plan) d'une autre couleur. Ce mode assure l'affichage de 40 caractères par ligne. L'identification des caractères (adresse pour la mémoire RAM 162) est trans- mise sur le bus A au registre 159 à une fréquence de 1 MHz. L'information couleurs (couleur d'arrière-plan et couleur d'avant-plan) est transmise sur le bus B sous la forme de-deux mots de quatre bits au registre 158. De la manière précédemment décrite, l'adresse provenant du registre 159 choisit le caractère approprié dans la mémoire 162 et transmet cette information au registre à décalage 167. L'information couleur provenant du bus B est trans- férée au registre 173. Pour les besoins de l'explication, on supposera que les quatre bits identifiant la couleur rouge pour l'arrière-plan se trouvent sur le bus 184 (en provenance du registre 173 et du multiplexeur 166) et que quatre bits représentant la couleur bleue pour l'avant-plan se trouvent sur le bus 183. (A noter que lorsque le re- gistre 173 est activé, les signaux provenant de ce re- gistre ont priorité sur les "uns" et zéros binaires qui, autrement, apparaissent sur les conducteurs du bus 174). Le signal binaire séquentiel représentatif du caractère lui-même sur le conducteur 190 choisit soit la couleur bleue à partir du bus 183 pour le caractère lui-même, soit la couleur rouge à partir du bus 184 pour le fond. Les signaux numériques représentatifs de ces couleurs sont transférés au bus 180 et transmettent les données de cou- leur au montage de la figure 8. Pour les affichages en -noir et blanc, une échelle "de gris" est obtenue par l'intermédiaire du circuit de pondération associé au transistor 196 de la figure 8. Ici encore, le multiple- xeur 169 peut, par l'intermédiaire du moyen de temporisa- tion 172, alterner entre le signal du conducteur 185 et son inverse, ce qui a pour effet d'interchanger les cou- leurs d'avant-plan et d'arrière-plan. Au cours des modes graphiques à haute définition, la mémoire de caractères 162 n'est pas utilisée mais, au - lieu de cela, des données provenant de la mémoire four- nissent directement l'information de configuration pour l'affichage. Cela exige davantage de structuration de données à partir de l'intérieur de la mémoire centrale, du fait que de nouvelles données sont nécessaires pour chaque ligne de l'affichage. (A noter que lorsque des caractères sont affichés, la mémoire de caractères 162 fournit les différents signaux nécessaires pour les huit lignes de chaque rangée de caractères). Au cours de ces modes à haute définition, le registre 164 est activé et la mémoire de caractères 162 désactivée. En conséquence, les données provenant du bus A et du bus B sont décalées jusque dans le registre à décalage 167. Dans ces modes, le signal "HRES" appliqué au multiplexeur 169 provoque une sélection par celui-ci entre les broches 1 et 2. La broche 2 fournit le signal directement à partir du re- gistre à décalage 167, tandis que le signal de la broche l'est en fait le signal du conducteur 185 retardé d'une -période par le signal Cl4m. Ce retard se produit à tra- vers le registre 170 de l'entrée 2 à la sortie 2, étant donné que ce registre est rythmé à C14m. Au cours d'un premier mode graphique, des données provenant du bus d'affichage 160 sont chargées dans le re- gistre à décalage 167 avec un débit binaire de 7 bits/MHz. Les données sont mises en série sur le conducteur 185 et, de la manière précédemment décrite en ce qui concerne l'af- 38 2487095 fichage de caractères, elles commandent la sélection de "uns" binaires partout ou de zéros binaires partout par l'intermédiaire du multiplexeur 171. Il est à noter que, comme décrit précédemment, dans le mode de réalisation actuellement préféré, sauf si l'on utilise une suppression de la couleur, cela ne se traduit pas par un affichage en noir et blanc, mais bien par un affichage en deux cou- leurs;..-Si un bit haut est présent sur le conducteur 140 du bus d'affichage, le moyen de temporisation d'inversion et de clignotement 172 fait alterner le multiplexeur 169 entre les broches 1 et 2. Cette commutation se produit à une fréquence de 1 MHz et assure un déphasage d'une série de sept bits de données sur deux séries de ce genre am- pliquées au multiplexeur 171 sur le conducteur 190. Cela se traduit par la génération d'une couleur supplémentaire sur l'affichage pour une série de sept bits de données sur deux. Pour les modes graphiques décrits ci-dessus, lors- que le registre à décalage 161 assure un décalage à une fréquence de 7 MHz, huit bits peuvent 8tre appliqués au bus pendant chaque période. Plus précisément, comme dans' le cas des couleurs d'arrière-plan et d'avant-plan diffé- rentes pour le mode d'affichage à 40 caractères par ligne, deux mots couleur de quatre bits sont introduits par déca- lage dans le registre 173 à une fréquence de 1 Mz. Le multiplexeur 171 assure alors, une sélection entre deux couleurs prédéterminées présentes sur les bus 183 et 184. Il est à noter que ces couleurs peuvent être changées à une fréquence de 1 MHz. Dans un mode couleur supplémentaire désigné par "AHIRES", le multiplexeur 171 fonctionne sous la commande des portes 176, 177 et 178.- En fait, le multiplexeur 171 choisit le bus 184-et verrouille les signaux sur ce bus tous les quatre cycles de l'horloge à C14m. Des données sont introduites par décalage dans le registre à décalage 167 à partir du bus A et du bus B toutes les demi-micro- 24870O secondes; le registre 167 fonctionne sous la commande du -signal à C14m. Chaque bit de donnée du conducteur 185 est décalé, tout d'abord jusqu'au conducteur 186, puis jusqu'au conducteur 187 et enfin jusqu'au conducteur 188. Ces conducteurs sont couplés avec le multiplexeur 171 par l'intermédiaire'du multiplexeur 166 qui choisit le bus 182, étant donné que le signal AHIRES est haut. En fait, ce qui se produit est que des mots couleur de quatre bits sont mis en série sur le conducteur 185 puis remis en pa- -rallèle sur le bus 182. Etant donné que le multiplexeur 171 verrouille les signaux présents sur le bus 184 tous les quatre cycles du-signal à C14m, un nouveau mot couleur est engendré à une fréquence de 3,5 MHz sur le bus 180. L'affichage résultant est formé de blocs colorés de 140 x 192, chacun de ces blocs pouvant être de l'une quelconque de seize couleurs différentes. Dans le dernier mode d'affichage,généralement uti- lisé avec une suppression de la couleur, des données sont introduites par décalage dans le registre à décalage 167 à partir du bus d'affichage, avec un débit binaire de 14 bits/MHz. Les données sont mises en série sur le conduc- teur 185 et commandent la sélection, soit de-"uns" binai- res partout, soit de zéros binaires partout par l'intermé- diaire du multiplexeur 171. Cela assure un affichage gra- phique de définition maximale pour l'ensemble. On voit qu'on a décrit ci-dessus un microcalcula- teur offrant des possibilités d'affichage vidéo. Le cal- culateur est fabriqué à partir d'articles disponibles dans le commerce et assure une utilisation rationnelle de ces $0 articles. De nombreux programmes existants, y compris beaucoup de ceux qui fonctionnent sur le calculateur Apple-II, peuvent 8tre utilisés dans le calculateur dé- crit ci-dessus. Endis -,is 2487095 - TABLEAU I - Ce tableau comprend - un programme de lecture/écriture disque (pages 40 à 69)- - un programme de-diagnostic (pages 70 à 82) - un programme de moniteur (pages 83 à 111). Bien qu'il s'agisse d'un langage essentielle- ment symbolique, universellement utilisé tel quel, certaines parties en semblent traduisibles. En pareil cas, la traduction est donnée en annexe, par référence au numéro de ligne dans le tableau (seconde colonne de celui-ci). SAFpA RWTSI DISK READ/WRITE TRACK/SECTOR (16) 13 l********** *******" *4***X e ** 14 * CRITICAL TIMIIG * t15 * REQUIRES PAGE BOUND * 16 * CONSIDERATIONS FOR * 17 * CODE AND DATA * 18 * -----CODE---*- * 19 * VIRTUALLY THE Er4TIRE * * 'WRITE' ROUTINE * 21 * mrusr NOT CROSS * 22 * PAGE BOUNDARIES. * 23 * CRITICAL BRANCHPS IN * 24 * THE 'WRITE'. 'RFAD', * * AND 'READ ADR' S'JBRS * 26 * WHICH MUST NOT CROSS * 27 * PAGE BOUNDARIES ARE * 28 * NOTED IN COMMENTS. * 29* * ************************** 3t1* * 32 * EGUATES * 33* * 34 NBUFI EGU $200 NDUF2 EGU $302 36 * 37 HRDERRS EOU tS0 38 DVMOT EOU $EO 39 * ISLOT EOU 41 IBDRVN EOU 42 IBTRK EQU 43 IBSECT ESOU 44 I1DUFP EOU IBCMD EOU 46 IBSTAT EQU 47 IBSMOD EOU 48 CSUM EGU 49 IOBPDN EOU. IMtASK EOU 51 CURTRK EOU 52 DRVOTRK EOU 53; SL]T 4. DRIVE t 54;SLOT 4, DRIVE 2 ;SLOT 5, DRIVE 1 56;SLOT 5, DRIVE 2 57;SLOT 6, DRIVE t 58;SLOT 6, DRIVE 2 59 RETRYCNT EGU SEEKCNT EOU 61 BUF EOU 62 ENVTEMP EOU 63 *IDSLOT+$tF HOT U 64 " $91 IDSLOT+I 1BSLOT+2 I3SLOT+3 IDSLOT+4 I3SLOT+6 IDSLOT+7 IBSLOT+8 IStMOD 1DSLOT+9 IrSLOT+$A IDSLOT+$D, CUNTRK-7 (ZERO PAGE AT $300) iUSED ALSO FOR ADDRESS HEADER CKSUM I USED ALSO FOR ADDRESS HEADER CKSUM 1DSLOT+$12 13SLOT+$13 IDSLOT+IlA IBSLOTflE U9ED. F000: FODO: F000: F000: F000: F000: F000: FOOO: FOCO' F000: FODOO: FOOO: FOO0: FOO0: FOO0: FOO0: FOOO0- FOCIO: FO0: F5000 FO0: F0302: FO0: F000: FOOO: FOOO: FOOO: : F000:' 0302: F-OO: ooeo: 00EO: FOOO. 00D3 0CS0 COD8 C009 Gose 003A: 000i: 00-3: OO0C: FOOO: FOO0: F00: F,'--CO: FOO0: FOO: 0093: 00F4: 909B FOCO FOOD,0 r- PO r%> -tI Co U1 17-APR-81 #000252 PAGE 2 rDISK; READ/Wi]7E TFA,;./SúCT;.R (1,) 67C >**1 ***,s *4**** *****4# +************ *4** * COUNT EQU I BSLOT+$14 LAST EQU IDSLOT+$14 CKSUM EQU IBSLOC+$15 CSSTV EQU IBSLOT+$16 * CHECKSUM, SECTORr TRACK, *,**********-****** 4X** 78 * 79 * * 81 * 82 * 83 * 84 * * 86 * 88 * 89 * * 91 * 92* 94 * * 96 * 98 * * 101 * 102 * 103 * 104 TR PR 106 TR 107 * 108 ** 109 * * 111 * 113 MO 114 MO * -. WRITE---- 'MJST FIND' COUNT. i 'ODD BIT' NI2LS. CH-'CKSUMt BYTE. FOUR BYTES, ANiD VOLUME. * * * USES ALL NBUFS * AND 32-BYTE DATA TABLE 'NIBL' * * ---- READ----. * USES ALL NBUFS USES LAST 54 BYTES * OF A CODE PAgE FOR SIGNIFICANT BYTES * OF DNIBL TABLE. * **********.( ************ * SEEK ---- * **************** KCNT EQU COUNT IOR EQU IBSLOT+$1C KN EGU IBSLOT+$1D ---- MSWAIT ---- i HALFTRKS MOVED COUNT. * * >******+*********** >**** INTIMEL EGU'J CSSTV+2 ]NTIMEH EGU.ONTIMEL+1 iMOTOR-ON TIME COUNTERS. 1 - C p L MT Q ú -. : '- P;. ' -O FC.:.0 F C. 0' F 0.. FOOO. CC=5: '-,5: 00G.6: *r D7: F;D:O: F 000: F000: FO0: FOOO: F000: FO0O: -F000: FOe00: F000: F000: F 0.l0: F0OO: FOOO: FOOO: FOOO: FOO0: F 000: FO0: FOOO: Fo.>O: FOOO: F300: FO0: FOOO: FOO0: F000: FOOO: FOO0: FO00: : 00'D: OOZE: FOOO: FO0: FOC0: FOO: FOOO: FO00: 0099: 009A: FOOO: DISK PEAD/W,'ITE TPAC)/SEZTOR (1;) 117 **4 118 * - 119 * DEVICE ADDREES * * ASSIGrINMENTS 121 * 12 **************** *** EGU $C080 EGU $C081 EGU $C08C EGU $C08D EGU C'08E EGU $C08F EQU - $FFEF EGU $FFDF EGU. BSO EGU $7F STEPPER PHASE [ STEPPER PHASE C 07L, G6L=READ 67L,GbH=SENSE t G7H, G6L=WRITE G7H,G6H=WRITE I 133 ***************** ****** 134 * * EGUATES FOR RWTS AND BLOCK 136 * 137 ******** ****** EGU EQU EGU EGU EGU EGU EGU EQU EGU EQlJ EGU EQU EGU EGU EGU EQU- $Co088 $C089 *COSA 0CO08B $C0o81 $6080 CSTV TE:IP CSUMi+i SECT+i 1RACK TRACK+1 HRDERRS+3 HRDERRS+2 HRDERRS+1 MRDERRS PUT ADDRESS IN DISK READ/WRITE TRACK/SECTOR (16) 17-APR-81 #0002' 12'5 PHASEOFF PHASEON 06L G6H Q7L î7H INTERUPT ENVIRON ONEMEG TWOMEG FI020: F'oO0: FOC'O: F020: F 000: FPof0: Ft:r CISC FOQ..O: CODF: Cg OD'C: Q08E: CQ8F: FFEF: FFIF: : 007F: F000: F000: FOO0: FO5O: FO'O0: F 000: C088: CC.9: COSA: G0BA: COBD: C081: COSO: 0097: 0097: 0098: 0099: 0099: 009A: 0083: 0082: 0081: : MOTOROFF MOTORON DRVOEN DRV1EN PHASON PHSOFF TEMP CSUM1 SECT TRACIK TRKN1 VOLUME IBRERR IBDERR IBWPER IBNODRV t:A RWTS1 17-e-FR-G 2 4'9-1'È'9 Y SARA RWTSI DISK READ/WRITE TRACK/SECTOR (16- 17-APR-81 #000252 PAGE S FOOO: FOO: FOO0: FOOO: FO0: FOO0: FOiO: FOOO:AO 01 FC02:A6 81 F004:84 94 F006: OS F007.-8 F008:6A FO59:6A FO-A: 6A FOOB:6A FOCC:85 8B FC0E:AD DF FF FOI1:85 9F F013: F013: F013; F013:20 2B Ft FO: OS8 FO17:AS 85 F019:85 9B FOld:A5 86 FOID:85 9C FOtF:A9 EO F021-85 9A FO03: A5 82 F025:C5 SA F027:85 8A F029:08 F2OA:6A F02:D BD 89 CO FO2E:90 01 F00:E8 F.Zt:.SD SA CO F034:20 4C F3 F027:28 FO8S:FO OA FO3A: 28 FO3D:AO 07 FOD'20 56 F4 F040: 88 F041:DO FA F0:08 CS F044'A5 83 F,46:A6 81 F048 20 0S FI F-'4 F04. F04D-28 F-4C.DO 17 FO.E. S55 ****************+***.*** 156 * + 157 * READ/WRITE A * 158 * TRACK AND SECTOR * 159 * ******* 161 * 162 REGRWTS LDY #1 163 LDX IBSLOT 164 STY ESEKCNT PHP 166 PLA 167: ROR A 168 ROR A 169 ROR A ROR A 171, STA IHA.SK 172 LDA ENVIRON 173 STA -NVTEMP 174 * * NOW CHECKI IF THE MOTOR IE 176 * 177 JSR CHKDRV 178 PHP 179 LDA ISBUFP STA DUr 181 LDA IYSUFP+t 182 STA 5UF+t 183 LDA #DVMOT 184 STA MONTIMEH LDA IDDRVN 186 CMP IODPDNI 187 STA IOPDoN 188 PHP 189 ROR A LDA MOTORON, X 191 BCC DRIVSEL 192 INX 193 DRIVSEL LDA DRVOENX 194 JSR SETlMEG PLP t196 13BEO 0 197 PLP 198 LDY #7 199 DRVWAIT JSR MS!IAIT DEY 201 ONE DRVWAIT 202 PHP 203 OK LDA 1DTR$K 204 LDX ISSLOT 205 USR MYSEEK 206 *NOW AT THE DESIREO TRACK. 207 * ON'TO START WITH? 208 PLP 209 DNE TRYTR;A 210* RETRY COUNT iGET SLOT # FOR THIS OPERATION iONLY ONE RECALIBRATE PER CALL DCTERMINE INTERUPT STATUS iGET INTERUPT FLAG INTO BIT 7 PRESERVE ENVIRONMENT ON, THEN START IT SEI ZERO FLAC IF MOTOR STOPPED iSAVE TEST RESULTS MOVE OUT POINTER TO BUFFER INTO ZPACE i DETERMINE DRIVE ONE OR TWO iSAME DRIVE USED DEFORE? iSAVE IT FOR NEXT TIME JEEP RESULTS OF COMPARE i;GET DRIVE NUMDER INTO CARRY TURN ON THE DRIVE iBRANCH IF DRIVE 1 SELECTED SELECT DRIVE 2 INSURE ONE MEGAHERTZ OPERATION WAS IT SAME DRIVE? iMUST INDICATEDRIVE OFF BY SETTING ZERO FLAG) iDLAY 150 t1iS DEFORE STEPPINO À;(ON RETURN A=0) JNOW ZERO FLAO SET iGET DESTINATION TRACK îRE$T0RE PROPER X (SL T*16) iANO GO TO IT. WAS THE MOTOR iWAS MOTOR ON? IF 80, DON'T DELAY, G T IT TODAY! M Co vij SEAA RWTSt DISK READ/WRITE TRACK/SECTOR (16) 211 * MOTOR 212 * 12 213 MOTOF 214 CONWAIT FD 215 9 216 F7 217 9A 218 F3 219 NAS OFF, WAIT FOR IT TO SPEED UP. LDY DEY BNE INC BNE INC BNE #4 12 CG;,IA I T MOi'T I NEL IOTOF MONTIMEH IMOTOF WAIT EXACTLY 10p US FOR EACH COUNT IN MONTIE i FOR EACH COVNT IN PIONTIME COUNT UP TO 0000 Ai:A RWT FC4E. FC4 E: FOD4E: AO F050: s8 F051: DO F05'3: E6 F055: DO F057: E6 F%359: DO S:- Co o ni 17-APR-81 #000252 PAQE rs! SARA RWT1S FOSD: F05D: *F0503: FOSt3-: F056: F03B: FO.3:20 2B Ft FOSE: DO 05 F060:A9 sO F06b2 4C ES FO FO65: F065: F065: FO45: FO5: AS 87 F07: FO 77 F6O9:C9 03 F06: O30 73 F06D: 6A FO6E: S0 OB0 F070: AD DF FF F,73; 29 7F F075:SD DF FF F078: O20 C6 F2 FO7D: AO 7F FO.D: 84 93 FO7F. Ab 81 FC'II:20 PD FI F.C.4 90 Z1 F.:'6. 24 2B FO8: GO 01 FO3A 58 FDSO Cà 93 FZ;'D 10 FO F,.SF. AS eC FO I: 48 F02: C6 94 F094: DO 4F FO96; A9 40 FOqs:20 25 FI FOSD: A9 0o F39D:20 05 Fl FOAO- 68 FOA'I:-0 05 FI FZD4: 4C 703 FO FOA7: Fo.;7 FOA7 FA7. A41 99 F0,9':94 ec FO^AU FO OE FC,D AS C FC,.F 4e FOLO 95 DISK READ/WRITE TRACK/SECTCR (16) 17-APR-81 *000252 PAGE 7 221 ***********************+** 223 * MOTOR SHOULD DE UP TO SPEED. 224 * IF IT STILL LOOKS STOPPED THEN 225 * THE DRIVE IS NOT PRESENT. 226 * 227 ******** *****, ***** 228 JSR CH/,DRV;IS DRIVE PRESENT? 229 UNE TRYTRK; YES, CONTINUE 230 NODRIVERR LDA #IRNOORV;NO, GET TELL EM NO DRIVE! 231 JMP HINDLERR 232 * 233 * NOW CHECK: IF IT IS NOT THE FORMAT DISK COMMAND, 234 * LOCATE THE CORRECT SECTOR FOR THIS OPERATION. 235 * 236 TRYTRK LDA ISCM1D;OEr COMMAND CODE # 237 BEO ALLDONE;IF NULL COMMAND. GO HOME TO BED. 238 CMP #3; COMMAND IN RANGE? 239 RCS ALL DONE;NO. DO NOTHINQ! 240 ROR A * SET CARRY=I FOR READ. 0 FOR WRITE 241 [CS TRYTRK2;MUST PRENIBOLIZE FOR WRITE. 242 LDA ENVIRON 243 AND #TLJOMEG;SHIFT TO HIGH SPEED! e.-t 26t JSR PRENIDI6 TRYTRK2 LDY #S7F;CNLY 127 RETRIES OF ANY KIND STY RETRYCNr TRYADR LDX I.3SLOr;GET SLOT NUtI INTO X-REG JSR RDADRt6;READ NEXT ADDRESS FIELD aCC RDRIOHT IF READ IT RIGHT, HURRAH! TRYADRZ BIT IlM.; SK SHOULD INTERUPTS SE ALLOWED? B1t NOINTRI;NO, DON'T ALLOW THEM. CLI;RE-ENABLEO AFTER READ/READADR/WRITE FAILURE. NOINTRI DEC RETRYCNT;ANOTHER MISTAEK!! DPL IRYADR; WELL, LET IT GO THIS TIME., LDA CURTRK PHA;SAVE TRACK WE REALLY WANT DEC SEFKCNT; oNI Y RECALIBRATE ONCE! UNE DRVERR;TRIED TO RECALIDRATE A SECOND TIME, ERROR! LDA #$60;RECALIHRATE ALL OVER AOAIN! JSR SEITRK;iPRETEND TO DE ON TRACK 80 LDA *00 JSR MYSEEK;M OVE TO TRACK O0 GOCALI PLA GOCAL JSR;OYSEEK;GO TO CORRECT TRACK THIS TIME! JMP IRYTRK2 LOODP ACK., TRY AGAIN ON THIS TRACK * HAVE NOW READ AN ADbRESS FIELD CORRECTLY. * MAZE SURE THIS IS rHE TRrC:. SECTOR, AND VOLUME DESIRED RDRIGHT LDY 7RACK;OiN THE RIGHT TRACK? CPY CUH TrRK OEO RrFRK * IF SO, 000D * RECALIORATING FROM rHIlS rRACK LDA CUR TRRI,PRESERVE DESTINATION TRACK PHA TYA 0z- rO O 4-. Co -- DISK READ/WRITE TRACK/SECTOR (16) FOD!:20 25 F1 FOS4: 68 FOE5: 20'05 Fi FOIlS: 4C 86 F0 JSR PLA JSR dMP SETTRK MYSEEK TRYADR2 GQ0 AHEAD AND RECALIBR ATE rO Co nO 0A 17-APR-81 #000252 PAGE P SAPA RWTS1 DISK READ/WRITE TRACK/SECTOR (16) 17-APR-81 #000252 PAGE 9 FOCtD: FOBD: FOB:D: FDB0: AS 9A FODD: a5 99 OrF. A5 98 FO-:1: C5 84 F0O3: FO 02 FOCS: DO EF FOC7:AS 87 FOC9:4A FOCA:90 2D FOQC:20 48 F1 FOCF: DO D5 FODI:AD DF FF FOD4:29 7F FOD6: 8D DF Fi FOD9:20 Il Fl FODC:DO As8 FODE:A6 81 FOEO: 18 FOEt:A9 O0 FOE3 90 04 FES. 5.68 FOE6-A9 32 FOE: 28 Foe9.85 8s FOEB-BD 88 C FOEE:24 8B FOFO -iO O1 FOrF2 58 FOR3 A5 9F FO FOF8: 60 iO.F9:20 19 Fc FOFC.90 E2 FOFE: A9 81 FI.O: 50 E6 PlJO2:4C 86 Ff F105: F i5: F Ic05 FtO5: FI05. F105: F 105: VA F106- 95 99 F L,8.20 19 F: F ';B 20 SE F: FIt-E D5 5 F110 85 8C Ftl2 AS 99 F114.05 e5 FtIl6.220 O0 F4 F119 AO. 03 FIl3B S6 282 * 283 * DRIVE IS ON RIGHT TRACK, CHECK VOL 284 * 285 RTTRK LDA VOLUME; 286 STA IDSMOD l 287 CORRECTVOL LDA SECT;C 288 CMP IESECT 289 DEG CO.RRECTSECT iI 290 BNE TRYADR2;N 291 CORRECTSECT LDA IECMD 292 LSR A J 293 DCC WRIT;C 294 JSR READ16; C 295 BCS TRYADR2 C F 296 LDA E4VIRON 297 AND #TtbOMEG F298 STA 1-NVIRON 3 299 JSR POSTNID16 iD 300 DCS IRYADR2 iC 301 LDX IDSLOT;R 302 ALLDONE CLC 303 LDA #0i 304 BCC ALDONEi;S 305 DRVERR PLA;R 306 LDA #IBDERR 307 HNDLERR SEC I 308 ALDONEI STA IDSTAT iG 0 309 LDA MiOTOROFF, X T 310 BIT I1ASK 311 BMi N.OINTR2 312 CLI 313 NOINTR2 LDA tiVrJrENP 314 STA ENVIRON 315 RTS 316 WRIT JSR 4RITE16;, 317 DCC ALLDONE; I 313 LDA #IDWPER; D 319 BVC IMiI)LERR; T 0 320 UMP fRYADR2; 321 * 322 * THIS IS THE 'SEEK' ROUTINt 323 * SEEKS TRACK 'NI IN SLOT #X/SO10 324 * IF DRIVNO IS NEQATIVE, Oft DRIVE O 325 * IF DRIViO S19 POSITIVE. ON DRIVE I 326 * 327 MYSEE$K ASL A;A 328 SEEKI STA IRKM 1 S 329 JSR ALLOFF; 330 JSR ORVINDX; 331 LDA GRVO FrRK. X 332 8rA CUTRK, T 333 LDA TrK.Nl A 334. STA DRVOTPR. X 4 333 GOSEEK USR SEK 336 ALLOFF LDV 3; 337 NXOFF TYA i UME MISMATCH ET ACTUAL VOLUME HERE ELL OPSYS WHAT VOLUME WAS THERE HECK IF THIS IS THE RIGHT SECTOR F SO, DO WHATEVER WANTED O TRY ANOTHER SECTOR READ OR WRITE? THE CARRY WILL TELL. ARRY WAS SET FOR READ OPERATION. LEARED FOR WRITE ARRY SET UPON RETURN: IF BAD READ SET TWO MEGAHERTZ MODE 0O PARTIAL POSTNIDBLE CONVERSION HEKSUM ERROR ESTORE SLOTNUM INTO X NO ERROR KIP OVER NEXT BYTE WITH BIT OPCODE EMOVE CURTRK BAD DRIVE NOICATE AN ERROR i IVE HIM ERROR i UNN IT OFF... SHOULoD INTERUPTS BE ENABLED? BRANCH IF NOT RESTORE ORIGINAL ENV;IRONtIENT RITE NYDBLES NOW F iaO ERRORS5 ISK IS WRITE PROTECTED!! AKEN IF TRULY WRITE pROTECT ERROR OTHERIISE ASSUME AN INTERUPT NESSED THINGS UP SSUIME TWO PHASE STEP AVE DESTINATION TRAC URN ALL PHASES OFF T: GET INDEX ro PPEVIOU HIS 1S WHERE I A | ND WHERE l 'M GOCIO T O THERE' TURN OFF ALL PHASES (SEND PHASE IN ACC.)J It ER. c *.2) 3 BE SURE. TRACK FOR CURRENT DRIVE EFORE RETURNINO ro CO v0 Vt SABA RWTS1 SARA RWTS1 FlIC: 20 4A F4 FIIF:88 F120:10 F9 F122:46 8C F124: 60 DISK READ/WRITE TRACK/SECTOR (16) 333 JSR CLRPHASE 339 DEY 340 BPL N:OFF 341 LSR CURTRK 342 RTS 17-APR-81 #000252 PAGE CARRY IS CLEAR, PHAS DIVIDE DACK DOWN ALL OFF...]NO 1 IT'S *S SHOLD DE TURNED OFF 4- o J4 n0 U1 r ISk F EA D/Wh.I.E TFA-', k!-- L - (i 6) i -- %. 15. 1_5:20 3E Fl 11 8: 5 85 1 2A: 60 lc-E l 2E: -eB: I ZR.:AO0 12B3: ID: 1213- 1213: 11B: I 213: 12B3: I'-B AO 0O 1.l: iD 8C CO 1-t0:20 3D F1 133: 48 134: 68 :DD 8C CO 138: DO 03 1L3A: 88 13B: DO FO 13D: 60 13E: 13E: 48 13F: SA : 4A 11: 4A 142: 4A 143:05 82 : AA 1.46:68 147:60 [48: [48: L48: L '8: L48: 34 -- - 345 * THIS 346 * LOCAT 348 SETTRK 350C 351 *****- 352 * 353 * SUDR 354 * 355 * IF MO' 356 * SHIFT 357 * 358 * RETURi 359 * 360 *******- 361 CHKDRV 362 CHKDRV1 370 CKDRTS 371 * 372 DRVINDX 381 - 382 * 383 * NOTE: 384 * 385 * 386 ******* SU'2OUI" It'TE SElS THE SLOT DEhEt;4DEE4T Th:AkV I CI. JSR DRVINDX STA DRVOTRK, X RTS F*.*-%******. *.********** CET INDEX TO DRIVE NUMrBER TO TELL IF ?lOTOR IS STOPPED TOR IS STOPPED, CONTROLLER'S REG WILL NOT BE CHANQINO. N Y=O AND ZERO FLAg SET IF IT IS STOPPED. LDY #0 LDA Q06L, X JSR CKDRTS PHA PLA CMP O6L, X BNE CKnRTS DEY BNE CHKDRV1 RTS PHA TXA LSR LSR LSR ORA TAX PLA RTS INIIT LOOP COUNTER READ THE SHIFT REG DELAY MORE DELAY H.'S SHIF1 REQ CHANGED? YES, NOTOR IS MOVING NOt, DEC RETRY COUNTER ANI TRY 256 TIIES THEN RETURN PRESERVE ACC. GET SLOT(*$10>/8 A A A IlDDRVNJ FOR DRIVE 0 OR 1 INTO X FOR INDEX TO TABL RESTORE ACC. FORMATTINg ROUTINES NOT INCLUDED FOR SOS if- -. t- -il :?F;I.'T 1 r4A DiSK READ/WPiTE TFAC/SECT C-R ( lt-) 1 7-AFR-F-1 P.C.CC.5. P, ql:.,. F1'8 F i - F. - F14G: F148: F148: F148: Fi 8: F148: F148: F1 -8: Fl:8. FI'-8: F148: F148: F148: F148: F148: F148: Fl8: F148: F 148: F148: F148: F148: F1-8: F148: F148: F148: F148: F14 8: F148: F I.48: F148: FI48: F 1 -- ú: F148: F 148: F148: F148: F148: F148: F148:AO 20 F14A: 88 F 148: FO 6B FI4D:BD 8C CO F150:10 FB F152:49 DO F 154: nO F4 F156: EA F157: BD BC CO FLSA: 10 FB F15C: C9 AA F15E: DO F2 FlbO:AO 55 *38E ****-** 389 4 390 * :391 * ( 1 392 * 393 ****** 394 * 395 * REI 396 * iNT( 397 * 398 * FIR' 399 * 400 * THEI 401 * 402 * 403* 404 * 405 * X-RE 406 * 407 * 408 * REAI 409 * 410 * 411 * 412 * CARF 413 * 414 * IF 415 * 416 *) 417 * 418 * ( 419 * 420 * 421 * 422* '* 423 * 424 * SC 425 * 426 * --- 427 * 428 * 1 l 429 * 430 ******i 431 READ16 432 RSYNC 434 RDI 436 RSYNC1 439 RD2 READ SUDROUT INE 6S-SECTOR FORAiT > ** *** * ***** 4*4* ** * 44 ADS ENCODED BYTES 0 NBUF1 AND NDUF2 ST READS N4BUF2 HI H TO LOW, N READS NBUFI1 LON TO HIGH. -- O: ENTRY EG: SLOTNUti TIMES $10. D MODE t06L, 07L) -- ON EXIT RY SET IF ERROR. NO ERROR: A-REG HOLDS $AA. X-REC UNCHANGED. (-REG HOLDS $00. CARRY CLEAR. -- CAUTION * * * * * * * * * * * * * * * * * OBSERVE * NO PAGE CROSS' WARNINOS ON * DME BRANCHES!! * -- ASSUMES ---- * USEC CYCLE TItlE * .***. ***,**+*** ***X** LDY DEY BEG LDA BPL EOR BNE NOP LDA BPL CMP BNE LDY #$20 RDERR G6L, X RDI #$D5 RSYNC 06L, X RD2 #ZAA RSYNC1 #e55 M.UST FIND' COUNT. IF CAN'T FIND MARP IHEN EXIT WITH C4 HEAD NJIBL. *** NO PAGE CROSS! DATA MARK 1? LOOP IF NOT. DELAY BETWEEN NIBI **4 NO PAGE CROSS DATA MARK 2? (IF NOT, IS IT DMi INIT NBUF2 INDEX. e e *- 4- -$:- *- * Il- 11, -> 1 *- * -r- * * i- * * 4- DISK READ/WRITE TRACK/SECTOR (16> F1lt2: 444 * Flc2:DD 8C CO 445 RD3 Flb5:10 F13 446 Flo17:C9 AD 447 Flit9:DO E7 448 F16D: 449 * FlaB:)D SC CO 450 RD4 FltE: 10 F13 451 F170:99 02 03 452 Fi73: AD EF FF 453 F176&: 05 8B 454 FITS: lO 40 455 F17A:88 456 F1713: 10 EE 457 F17D:CB 458 RD5 F17E:2D SC CO 459 RD5A FiBl: 10 FB13 460 F153:99 00 02 461 F156:AD EF FF 462 F1i9: 05 83 463 F1t3D:10 2D 464 FlSD:CO E4 465 F1aF:DO EC 466 F191:C8 467 FI92:1D SC CO 468 RD6 F195:10 FB13 469 F197:99 00 02 470 Fi9A:C8 471 Fl9B:DO F5 472 FiiD:BD 8C CO 473 RDCKSUtlH F FIAO: 10 FB 474 F1.2:85 96 475 F1iA4:EA 476 FIA5:BD 8C CO 477 RD7 Fl8: 10 FB13 478 FIAA:C9 DE 479 F1AC;DO OA 480 F1AE:EA 481 FIAF:DD SC CO 482 RD8 Fic2: 10 F13 483 F1 4:C9 AA 484 F1Er6:FO 5F 485 FIl8: 38 486 RDERR F I1 L: 60 487 F ILA: 4s8 * iz- i: ',.z r 71 d 00 mm} o o ep>t (ADDED NIBL DELAY)> LDA C6L, X BPL RD3 CMP #$AD BNE RSYNC1 *(CARRY Sî_T IF DN3!) LDA Q6L, X BPL RDq STA NRUF2, Y LDA INIERUPT ORA Ir1l/!SK BPL GOSERV DEY BPL RD4 INY LDA Q&Li, X DPL RD5A STA NWUF1,Y LDA INIERUPT ORA IMA.'SK BPL GOSERV CPY. #E4 BNE RDS I NY LDA Ce6L X BPL RD6 STA NBUF1oY INY BNE RD6 LDA Q6L,X 3PL RDCKSUM STA CKSUM NOP LDA C6LoX BPL RD7 CMP #*DE 3NE RD=RR NOP LDA 06L, X BPL RD8 CMP #$AA BEG RUCXIT SEC' RTS Ir-I ccrwwr r I 17-APR-81 #0002b2 PAGE i3 i*** NO PAOE CROSS! *** JDATA HARK 3? (IF NOT, IS IT DMI?) *4* NO PAGE CROSS! *** JSTORE BYTES DIRECTLY JPOLL INTERUPT LINE i(THIS MAY BE USED TO INVALIDATE POLL) INDEX TO NEXT (FIRST TIME Y=O) iGET ENCODED BYTES OF NBUF1 iPOLL INTERUPT LINE (THIS MAY SE USEr TO INVALIDATE POLL) IITHIN 1 MS OF COMPLETION? NO POLL FROM NOW ON. sFINISH OUT NBUF1 PAGE GET CHECKSUM BYTE. EXTRA DELAY BETWEEN BYTES *** NO PAGE CROSS! *** FIRST BIT SLIP MARK? (ERR IF NOT) DELAY BEIWEEN NIBLS. *** NO PAGE CROSS! ** SECOND DIT SLIP MARK? (DONE IF IT IS) iINDICATE 'ERROR EXIT'. RETURN FROM READ16 OR RDADR16. rl m&7tpirrmrr l: w Z'AAA RWTS1 ro Lo vi DISK READ/WRITE TRACK/SECTOR (16) FleD: FleSD: FILD: FIDD: F12D: F150: Ft5. F 1 0,3D: FIBD: FleD: FI.2D: F13iD: FiDD: FLúED: Fle3D: FIDD: FIBD: FIDD: FISD: FIDD: F13D: F150: FLND: F1BD: F1iDD: F1DD: FI2D: FID: F1eD: FIDD: F113D; FIDD: FISD: F 1 0:_ FIDD: F 1 30: F1DD: F t D: FIDD: FIZD: FltD: FIDD: F13G: FI0D: F 1 Z D: F1BD: F10D: FIDD: F 1 a D: F I I D: F1'- D: F 1C':D: Fi3XD: F1LD FirtD: FIrD FI' D AO FC FI.F 4 "5 49-5 i*******4******** 4 ********* * * * * * * * * READ ADDRESS FIELD SUBROUTINE (16-SECTOR FORM1AT> * u.* ** **** *** ** *** * *4* ** * * READS VOLUME, TRACK * AND SECTOR * d* * --- ON ENTRY ---- * * XREG: SLOTNUM TIlMES $10 * * * * READ MODE (Q6L, Q7L) * * * --- ON EXIT - * * * * CARRY SET IF ERROR. * *.* * IF NO ERROR: * A-REG HOLDS $AA. * Y-REG HOLDS OO. * * X-REG UNCHANGED. * * CARRY CLEAR. * * * CSSTV HOLDS C-SM, * SECTOR, TRACK, AND * * VOLUME READ. *. * USES TEMPS COUN4T, * LAST, CSUiM, AND * 4 BYTES AT CSSTV. * * * ---- EXPECTS ---- * *.* * ORIGINA.L 10-SECTOR * NORMAL DENSITY NIBLS * * (4-BIT), ODD BITS, * * THEN EVEN. * * - * ---- CAUTION -..- * * * OBSERVE * NO PAGE CRO'SS' * WARNINGS ON * * SOME BRANCHES!! * * * ---- ASSUMES ---- * * 1 USEC CYCLE TIME -* *F * *44*****4* ±****-*+ 4-4: t**# *4* RDADR16 LDY;.tFC ST? COUN T "'UST Fi":D' COUJNT St,) SARA RWTS1 17-APR-81 #0002152 F DISK READ/WRITE TRACK/SECTOR (16) FICI:C8 FIC2:DO 04 FIC4: E6 95 FIC6:FO FO FlC8:BD SC CO FICD: 10 FB FICD:C9 D5 FICF:DO FO FIDi: EA FID2:BD 8C CO FID5: 10O FB F10D7:C9 AA FID9: DO F2 FtDB:AO 03 F!DD: FI0D: BD aC CO FiEO: 10t FB F1E2:C9 96 FIE4:00 DO E7 FIES: FIE6:A9 00 FtES: 85 89 FlEA. SD C CO FIED: O10 FB FIEF. 2A FIFO' S5 95 FIF2:DD SC CO FIF5 10 FB F1F7 25 95 FIF9 99 97 00 FIFO 45 89 FIFE 88 FIFF 10 E7 FOl' As8 Fr-'2. 10 84 F2,04 4:D aC CO F207 10 FB F2C9:C9 DE i,:0. DO AD F2CD: 78 F2'E:DD SC CO F211:10 FU F213:C9 AA F215:DO Ai F217:18 F218:60 F219: 547 RDASYN 551 RDAI 553 RDASNI 556 RDA2 561 * 562 RDA3 S65 566 * 568 RDAFLD 569 RDA4 573 RDA5 582 RDA6 587 RDA7 58s 59t RDEXIT 592 WEXIT INY DNE RDAt;LOW ORDER OF COUNT. INC COUNT (2cK NIBLS TO FIND i DEG RDCRR; ADR MARK, ELSE ERR) LDA C6L,X;READ N1DL. DPL NDAI;*** NO PAGE CROSS! ** CMP #$D5 iADR MARK 1? DNC RDASYN;(iLOOP IF NOT) NOP;ADDED NIDL DELAY. LDA 06LX 3PL RDA2;*- NO PAGE CROSS! *4 ClIP #tAA;ADR MARK 2? SNE RDA.SNI; (IF NOT, IS IT AMI?) LDY 4$3 iINUEX FOR 4-BYTE READO. (ADDED NIBL DELAY) LDA 06L, X BPL RDA3;**4 NO PAGE CROSS! *** CMP #*96;ADR MAhK 3? BNE RDASNt; (IF NOT, IS IT AMI?) (LEAVES CARRY SET!) LDA &$O s;INIT CHECKSUM. STA CSUM LDA Q6L.X;READ 'ODD BIT' NIBL. DPL RDA4;*** NO PAGE CROSS! ** ROL A ALIGN ODD BITS, '1' INITO LSD. STA IAST i (SAVE THEM" LDA S6LX;READ EVEN BIT' NIBL. DPL RA5;,**r NO PAGE CROSS! *** AND LAST;MrRGE ODD AND EVEN BITS. STA CSSTV, Y;STORE DATA BYTE. EOR CSUM DEY BPL RD:FLD iLOOP ON 4 DATA BYTES. TAY;IF FINAL CHECKSUM BNE RDERR; NCNZERO, THEN ERROR. LDA G&L,X;FIRST DIT-SLIP NIBL. BPL RDA6;*** NO PAGE CROSS! *** CMP #SDE BNE RDCRR sERROR IF NONMATCH. SEI;DELAY (NO INTERUPTS FRON NOW ON) LDA e6L,X;SECOND DIT-SLIP NIBL. DPL RDA7;** * NO PAGE CROSS! *** CMP #tAA UNE RDERR;ERROR IF NONMATCH. CLC CLEAR CARRY ON RTS NORMAL READ EXITS. CHN RtW152 N co "4 o I-f 17-APR-et #000252 PAGE 115 SiARA RWtTSt F.; 5. F.' 2S,. F219 fZl 9 F219 F 219 F2:9 F c. 9 Flq F2i9 F21 9 F2;9: F219: F2J9. F219: F219' F219: F219. F219: F229 F2 9 F219 F'2i9. F219: F i.9 F219 F21 9 F2:9 F219 F219. F21 9 F219: F219: F2I9. F219. F23 9: F219. F21:9. F2139. F2.19. *F219: F219: F219. 38 F21A: DB F21I.iD BD CO F21E:DD BE CO F2,1'30 F5 F3 A9 FF F2:'5: 9D 8F CO F22e iD BC CO F2-B:AO 04 FP2D:EA F2E:48 F72F: 6B F30: 48 F231 68 F 32 20 BD FZ F225. 8 FZ. DO F8 F2zG8 A9 D5' DISK READ/WRITE TRACK/SECTCIR (16) 17-APR-81 #000252 PAGE 16 2 *** 4,** 3* 4 * * (16- 6'" 7 *.*,**** 8 À 9À WRI * NB Il * 12 * FIRS 13 * 14 * THEN * 16 * 17 *... 18 * 19* X-R * 21 * 22 * 23 *. 24 * * CARR 26 * (W 27 4 28 * IF N 29 * * A-t 31* X-I 32* Y-I 33 * CA] 34 * * _ 36 * 37 * I USI 38* 39 R I***E WRITE16 -41 WRTI 52 WSYN WRITE SUBR * SECTOR FORMAT) * * *$*f #.**X****I.l.*êt,* TES DAtA FRO:i * UFI AtD NBUF2 * T IIDUF2. * HIGH TO LOW. * NDUFI, * LCW TO HICH. * 014 ENTRY -*-- * EGS SLOTNU: * TIMES $10. * ON EXIT -- -- Y SET IF ERROR. * PROT VIOLATION) * * O ERROR: * * REG UNCERTAIN. * REG UNCHANOED. * REG HOLDS t00. * RRY CLEAR. * ASSUMES ---- * *EC CYCLE TIM EC CYCLE TIMC * SEC CLV LDA LDA DM I LDA STA ORA LDY NOP PHA PLA IC PHA PLA JSR DEY Bi4E LDA G6H. X Q7L, X tWEX IT 4$FF G7H, X * GL, X #$4 _;1I BL7 WSYNC l"D5 iANTICIPATE WPROT ERR. TO INDICATE WRITE PROTECT ERROR INSTEAD OF INTERUPT i SENSE WPROT FLAG. DRANCH IF NOT WRITE PROTECTED SYNC DATA. : (5C COTO WRITE MODE (4) (2> FOR FIVE NIBLS. i ( (4) EXACT TIMING. (3) EXACT TIMING. (13,9#6) WRITE SYNC., t2) 1 (2*) MUST NOT CROSS éAGE! (2) IST DATA MARVK, I \$' r3 Co n-' Lnl DISK READ/WRITE TRACK/SECTOR (16) F23A 20 BC F2 2-0D'A9 AA F2Z2F 20 BC F2 F2.12:A9 AD F244:20 BC F2 F27: AO 55 F249:EA F24A:EA F24B: EA F2-C DO OS P2dE:AD EF FF F2ft 05 SI F25. EA F2-4: 1O 5D F2Q6: 0 00 92!3:D9 02 03 F2fD:9D 8D CO F25E:DD SC CO F261: 89 F262:10 EA F264: S99 F2S:30 03 F2,7:AD EF FF F2SA OS BD F26C: EA F2D'30O 02 F2'F: I0 42 F271 C' F272:Z9 00 02 F275'9D 9D CO F7. S:DD SC CO F2-: CO E4 Pk27D O ES 2-F: EA F 250: Ca e2GI EA F2s2: EA F283: 4a F24: 69 F25: 29 00 02 F;zS:;sD eD CO F230: BD 8C CO F22E:AS 96 F2zO:Ca F2I:DO EE FZ-:FO 00 F2'5.2Z0 BD F2 F2Z9'A9 DE F2ZA:2O BC F2 F27D:A9 AA F2ZF. 20 BC F2 F2.2 A9 EB FzA4:20 DC F2 F2A7 A9 FF FZ49 z0 BC F2 F;4C OD 8E CO 69 WINTRPI 72 VRYFRS7 73 WRTFRSI WNTRPTt 81 WMIDLE WDATA2 g6 93 WDATA3 to101 104 WRCKSUM t107 tt lit 1 13 NOWRI TE r JSR LDA JSR LDA JSR LDY NOP NOP NOP BNE LDA ORA NOP BPL BMr LDA STA LDA DEY BPL TYA BMlI LDA ORA NOP BMI 8PL INY LDA STA LDA CPY BNE rJoP INY IqoP NOP PHA PLA LDA STA LDA LDA INY BNE JSR LDA jSR LDA JSR LDA J5R LDA JS; LDA W;NIDL9 #SAA i I BL9 WN IBL9 #t55 VRYFRST IN I ERUPT IMASK SENVICE WRTFRST NDUF2, Y CeH, X C6L,X WINTRPT WM IDLE INIERUPT IMASK WDATA2 SEV ICE NPUFI, Y B6H, X G6L, X #J1E4 WN I RPTI NSUFI, Y 06H, X C6L, X CKtSUM WtDATA3 !!RCKSUM Wt4ItBL7 #$DE t' I 13L9 # tAA Wr4NlL9 4' I BL9 âIFF t. N [ L9 07L, X 17-APR-0t #000252 PAGE 17 j( 15, 9.6) s (15.9.6) (2) 3RD DATA MARK. (15,9.6) S(2) NBUF2 INDEX (2) FOR TIMINO ( 2) (3) BRANCH ALWAYS (4) POLL INTERUPT LINE i(3) FOR TIMING. (4) (5) STORE ENCODED BYTE. (4) TIME MUST - 32 US PER BYTE! (2) i(3) (2 IF BRANCH NOT TAKEN) (2> INSURE NO INTERUPT THIS BYTE. (3) BRANCH ALWAYS. s(4) POLL INTERUPT LINE J(3> (2) (3> BRANCH IF NO INTERUPT I00O SERVICE INTERUPT. *(2) )(4) #5 (4> (2) WITHIN t MS OF COMPLETION? J(3) (2) NO KEEP WRITrINO AND POLLING. (2) z (2) s(2> (2) J(4) 1(3> (4) WRITE LAST OF ENCODED BYTES I (5) WITHOUT POLLINQ INTERUPTS. (4) *(3) NORMALLY FOR TIMING 8(2> J(3) (2) fi s(3) BRANCH ALWAYS i(13, 9,6) GO WRITE CHECK SU:t!' & (2) DM4, BIT SLIP MARK. (15,9.6) WRITE IT. (2) DMS. BIT SLIP MARK. i(13.9,6) WRITE IT. i(2) DM6. BIT SLIP MARK. s(15,9.6) WRITE IT, (2)> TURN-OFF 3YTE (t5,9.,9) WPITE IT Our OF WRITE P"ODE Ir.a ' 4',- -j cX> o "0 T r DISK READ/WRITE TRACK/SECTOR (16) r-,F: L F21 3: --,%r,, 1,. 3' 8 _ 4:r2C 54 F3 -20 AC F2 *Fi A. 58 Fr.B: 60 FcDIC: F; Z C F -'C F _I C: F22C: F2. C; F--C: 18 F-'2D;: 48 -2,E:,., ZF.9D L)D CO F-.2: ID CC CO F '2C:5: 60 F2 ' 6: 1 1 4 1 1 5 116, * 1 1 e) * 117 SERVI 1.2 ***** 123 * 124 * 7 * 126 * A 127 * 128 * 129 ***** WNIBL 131 WI4IL 133 WNIEL 136 * LDA RTS C6L, X CE SEC BIT SEV JSR NOWRITE CLI RTS -* K ** ****** ***** **S -DIT tJIBL VJRIIE SUIJRS * -REG OR'D PRIOR EXIT CARRY CLEARED TO READ MlODE. RETURNJ FROiM VJRITE. TREAT INTERUPTION AS ERROR SET VFLAG TO INDICATE INTERUPT TAKE IT OUT OF WRITE MODE! COULD NOT HAVE GOT HERE WITHOUT CLI G,0 * * p******t********4**Q****X + 9 CLC 7 PHA PLA STA ORA RTS Q6H, X 06L, X (2)' i (3) (4) (5) (4) 9 CYCLES, THEN WRITE. 7 CYCLES, THEN WRITE. NIBL WRITE SUD. CLODBBERS ACC, NOT CARRY. N "4 c> o n0 17-APR-81 #000252 PAGE!18 J;': S2 Pt.W'S2 DISK READ/WRITE TRACK/SECTOR (16) F2C 6 FZC6: F2C6. F2C6: F2C6; F2C6: F2C6: F22C6: F2C6: F2C6: F2C6 F2C6: F2C6: F2C6. F2C6: F2C6: F2C6: F2C6: F2C6: F2C6: F2C6: F2C6: F2C6: F2C6: F2t 6 F2C6 F2C6: F2C6:A2 02 F2C8:AO 00 FZCA: e88 F2cO *B1 9B F20D 4A F2-. E: 3E 01 03 F2DI: 4A F2D2:3E 01 03 2Df5:99 01 02 F2GD: E8 F2D9:EO 56 F2DD: 90 ED F2DD:A2 O0 F2DF: 98 F2EO:DO E8 F2E2:AO 56 F2E4:59 O0 03 F2E7 29 3F F2E9: AA F.EA. DD 55 F3 F2ED:99 01 03 F2FO:B9 OO 03 F2F3;. 88 F2F4 ' o EE F2F6 29 3F FZF9:19 01 02 F2FB AA FZFC'BD 1 F3 139 *************ê 139 * + * PRENIDLIZE SULDR * 141 * (16-SECTOR FOPRlAT> * 142 * 143 *******4****************** 14.! * * COrNVERTS 256 BYTES OF * 146 * USER DATA IN (aU-) INTO * 147 * ENCODED BYTES TO BE 148 * WRITEN DIRECTLY TO DISK.* 149 * ENCODED CHECK SUi IN * * ZERO PAGE 'CKSUM'. * 151 * * 12 * ---- ON ENTRY * 153 * 154 * BUF IS 2-DYTE POINTER * * TO 256 BYTES OF USER * 156 * DATA * 157 * 158* ---- ON EXIT ----- * 159* * * A-REG CHECK SUM. * 161 * X-REG UNCERTAII4 * 162 * Y-REo HOLDS O. * 163 * CARRY SET. 164 * * **********-**** 166 PRENIBD16 LDX #$2 167 LDY #0 168 PRENIBI DEY 169 LDA (DBUF),Y LSR A 171 ROL rinUF2-I,X 172 LSR A 173 ROL l4JF2-1, X 174 STA N;lUFI+1,Y INX 176 CPX #556 177 DCC PRENIDIt 178 LDX to0 179 TYA ONE PRENIBI 181 LDY #$56 182 PRENIB3 EOR NDUF2-2,Y 183 PRENIB2 AND #b3F 184 TAX 18S5 LDA NIDL, X 186 STA NDUF 2- I, Y 187 LDA NrJUF2-2, Y 188 DEY 1g9 DNE PRENID3 AND #13F 191 PPENIB4 EOP NSUFI1I, Y 192 TAX 193 LDA NIL. oy START NBUF2 INDEX. START USER BUF INDEX. iNEXT USER BYTE. SHIFT TWO BDITS OF JCURRENT USER BYTE INTO CURRENT NBUF2 i BYIE. s(6 BITS LEFT). iFROM O TO 1*5. tDR IF NO WRAPAROUND. RESET NBUF2 INDEX. IUSER DUF INDEX. i(DONE IF ZERO) (ACC-O FOR CHECK SUM) COMBINE WITH PREVIOUS JSTRIP QARBAGE BITS. TO FORN RUNNINg CHECK SUM iGET ENCODED EOUIV. REPLACE PREVIOUS JRESTORE ACTUAL PREVIOUS ILOOP UNTIL ALL OF NBUF2 1S CONVERTED. JNOW DO THE SAME FOR NIBOLE BUFFER I *TO DO ANY BACK TRACVING (NBtUFI-t) c> vo ljir 17-APR-01 #000252 PACE 19 DJSK READ/WRITE TRACi/SECTOR F:DJ9. 1'D 5 5 F3 Fr:E.4C 4C F3 SrTA LDA IlNY BNE TAX LDA STA JMP NRUF1, Y I;4UF1+1, Y PRENIB4 IIDL, X CKSUII SET 1IMEO RECOVER THAT WHICH IS NCW 'PREVIOUB',. USE LAST AS CHECK SUM. AL L DONE. rIO Co u1- \0 vn DISK READ/WRITE TRACi&/SECTO..(16) 17-APR-81 #000252 PAGE 21 n'l3 1: --: 1: F J' 1: F-7: 1 1: r_' 1' ::.:O 55 F A3;A9 'O :..5: E 02 03 F;:3. 5D 00 F3 F:3.D:99 02 03 F31IE: 88 FiF: I0 F4 r 21: C S F'-:2:2E 00 02 F3-25: 5D 00 F3 F3--8. 99 CO 02 F -'D: C:8 7:2.C. DO F4 c.'E: A6 9t 2S'OD:D D0 F3 - _ >3:.38 = 4: 1;O 1: -Z'2i: A2 56 :-' _ 2 l 6A *F' '9'.3D FB MrD. Lq O0 02 *.}E:; 5E 02 03 F34_1: c2A Fi-c2: SE 02 03 F45: 2A F;:_6:91 9B r 346,: CE r- 5-: I,Cs ED -C ED DF FF :f. CDL) DF FF r _ 4 4 '- 1.'_ 204 * 205 * POSTI 206 * 16-SE 207 * 208 ********* 209 * 210 POSTNIB16 212 PNIBL1 218 PtNIBL2 22C 227 POSTI1 228 POST2 239 POSTERR 240 SETIMEG 2-4, sSEV *.>*****.* 4**** IBLIZE SUeR ECTOR FORNAT * * * ** LDY, LDA LDX EOR STA DEY BPL ! NY LDX NAUF2, Y L'IIBL, X NBUF2, Y PN'IBL1 NeRUF1, Y DNIBLo 'X NIBUF 1, Y PFINIBL2 CKSUM DNlI3L, X POSTERR #!56 POSTI NDIUF1, Y rBUF2,'X A NBUF2> X A (SUF>, Y POST2 -JNVIRON i C;iJEME6 ENkV I RON FIRST CONVERT TO 6 BIT NIEBLES INIT CHECK SUII. OEr ENCODED BYTE. REPLACE WITH 6 BIT EGQJIV. * LOOP UNTIL DONE WITH NIBBLE BUFFER 2 INOW Y=O DO THE SAME WITH NIBDLE BUFFER 1 DO ALL 256 DYTES iMAKE SURE CHECK SUMI MATCHES BETTER BE ZERO! ANTICIPATE ERROR BRANCH IF IT IS. I.IT NBUF2 INDEX. NBUF IDX $55 TO $0. RAPAROUND IF NEG. SHIFT 2 DITS FROM CURRENT IBUF2 NIBL INTO CURRENT NPUF1 i NIBL. BYIE OF USER DATA, NEXT USER BYTE. OOD DATA. i SET TO ONE MEGAHERTZ CLOCK RATE (SEV USED TO SET VFLAG) rIN O -4 o n U'I i.; " 5"."5c', -E;D;'W']"rL TFAEF./BECTCR i.Ic-) ?-,-r-;:1 L-':-:-' P, F *' '. 24::. F 3.' f -24' *7 6-DBIT TO 7-DIT F.' -. 248 rJIBL CONVERSION TABLE * F:,5,. 5249 *, F3_=5'- -5. '50 *** -,t.**-**s-********",. F- F3:.5,fl 251 * - F2'-5 252 * CODES WITH MORE THAN F.5. 2 53 * ONE PAIR OF ADJACENT * F--5: 254 * ZEROES OR WITH NO * FD'.5: 255 * ADJACENJT ONES (EXCEPT * F 255: 256 * 37) ARE EXCLUDED. * FP --=5: 257 * * F_'-5: 258, ****v**"**4**+*********.x.f** F3.55: 96 47 9A 259 NIBL DFB3 $96, $97,$9A F358: 9B 9D 9E 260 DFE $9B, $9D, $9E F-513: 9F A6 A7 261 DFD $9F,$A6,$A7 F3-5E:AB AC AD 262 DFB tAR, $AC,$AD F3_1: AE AF B2 263 DFB $AE $AF, $,32 F3t4:E3 B4 B5 264 DFE tB3,$B4,$B5 F32B7: F-tbA:BA BE BC 266 DFE!BA,$BB,%BC F36D:BD DE BF 267 DFB $BD,$BE, 5$DF F370:CB CD CE 268 DFB,CE,$CD, CE F373: C.F D3 D6 269 DFB $CF,$D3,$L'6 F376:D7 D9 DA 270 DFB %D7,$D9,$DA F379: DB DC DD 271 DFB $DD, $DC, $DD F37C:DE DF E5 272 DFB $DE,$DF,$E5 F37dF:E6 E7 E9 273 DFB eE6,$E7,5E9 F382:EA EB EC 274 DFB $EA,$EB,SEU F38B:ED EE EF 275 DFB $ED,$EE,$FF F388:F2 F3 F4 276 DFE F2, S$F3, $F4 F32B:F5 F6 F7 277 DFB $F5, $F6, $F7 F38E:F9 FA FB 278 DFB $F9, $FA, $FB F391:FC FD FE 279 DFB $FC,$FD,$FE F394:FF 280 DFEB $FF DISK READ/WRITE TRACK/SECTOR (16) 17-APR-81 #000252 PAGE 23 282 **** 283 * 284 * 285 * 286* ( 287 * 288 * 289 * 290 * 291 * 292 * CO 293 * 0NI 294 * Zi 295 * AD. 296 * B 297 ***** 299 DNIBL 302, 33-2 k-. * 7-BIT TO 6-BIT DENIBLIZE' TARL 16-SECTOR FORMAT) VALID CODES $96 TO $FF Or.!L Y. -4 DES WITH MORE THAN * E PAIR OF ADJ.ACENT * EROES OR WITH t4NO JACENT ONES IT 7) ARE EXCLUDED. 4 F********>*****K >****** BRK EQU DFB DFB DFB DF3 DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFC DFB DFB DFD DF8 DFB DF8 DFB DFB DFB DFZ DFD REORWTS+$300. $00, $01, $ 8 $99, $02,$03 $9C, $04, $05 $06,$AO, $A1 $A2, $A3, $A4 $A5, $07, $08 $,'8, $A9, $AA *09,$OA, $OB $O_, $OD, $BO $B31, $OE, $OF $10, $11,$12 $13, $B8, $14 $15,$16, $17 $18,$19, SIA $00, $C1, $C2 $C3, $C4, $C5 $C6,$C7,$C8 $C9,$CA, $13 $CC, SiC,$1D $1E, $DO, $D1 $D2,$1F,$Dq4 $D5, $20,> 21 $D3, $22, $23 $24,$25, $26 $27, $28, $EO $E1,$E2, $E3 $E4,$29, $2A $2B, $E8, $2C $2r,, $2E, $2F $30, $31, $32 $FO, $F1,$33 $34,$35,$36 $37, $38,$F8 $39, $3A, $313 3'3, $3D, $3E OCE BYET LEFT OVER R'JTS2 F3'5: F395: F3'5: F3J'5: F3$5: F3 5: F395: F395: F395: F395: F3'5: F395: F395: F 3q5: F2l'5: F395: F395: 00 F 200: F36: O0 F399: 99 F39C: 9C F3eF: 06 F33A2: A2 F3A5: A5 F348: A8 F3AB: 09 F3AE: OC F3'1: D1 F324:10 F3D7:13 F32A: 15 F3DD: 18 F3O: CO F3[ 3:C3 F3C.6:C6 F3C9:C9 F3CC: CC F3CF: 1E F3'2: D2 F3D5: D5 F3eú.8:D8 F3DD: 24 F3DE: 27 F3E1: E1 F'3E4: E4 F3E7: 2B F3EA: 2D F3ED: 30 F3FO: FO F3F3:34 F 3F6: 37 F3-9:39 F3'-C -C FF: 3FP AO A3 A9 OA OD OE il B8 C1 C4 C7 CA 1C DO 1F E2 ES 2E F1 3A 3D A1 A4 AA OB BO OF 1A C2 C5 C8 1B 1D D1 D4 EO E3 2A 2C 2F F8 3B 3E DISK READ/WRITE TRACK/SECTOR (16) 4bo: 400: 4C0: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 4C-O: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 400: 4C- 0: 400: 400: 400: 4:00: 4GO: 400:85 9E 4C2: C5 8C 404: F0 42 406:A9 O0 4r;0: 408:85 95 4clo: 400A: A C 400E: 2 4 CO: 400: 400: 4COF: E5 9E 411:FO 31 E,: ' 4.o0: 59 41 1: F "49 * FA * FA' * ST SEEK SUBROUJIINE * * * * - ---ON ENTRY. * * X-REG HOLDS SLOTt4UM * TIMES $10. *.4 * A-REG HOLDS DES1RED * * HALFTRACK. * * (SINGLE PIASE) * * 4 * CURTRK HOLDS CURRENT * * HALFTRACK. * * * *....ON EXIT - * * *. A-REQ UNCERTAIN. * * Y-REG UNCERTAIN. * * X-REG UNDISTURBED. * * * * CURTRK AND TRKN HOLD * FINAL HALFTRACK. * * 4 * PRIOR HOLDS PRIOR * HALFTRACK IF SEEK * * WAS REOUIRED. * *. * MONTItMEL AND MONrIMEH * * ARE INCREMENTED BY * * THE NUMBER OF 4 * 100 USEC QUANTUMS * * REQUIRED BY SEEK * * FOR MOTOR ON TIME * * OVERLAP. * * VARIABLES USE * V- ARIABLES USEf -- 4 * * CURTRK, TRK.N, COUNT, * * PRIOR,,SLOTTE'P MONTIHEL, MONTIMEH 4 *** * * SEEK SEEK2 STA C rHP BEQ LDA STA LDA STA SEC SBC BEG TRKN CUXTRI. SEIPHASE o TRàtCNT CUiTRK PRIOR TRKN SEEKEN'D 2487095[ 17-APR-31 0000252 PAGE r- SAVE TARGET TRACK 04 DESIRED TRACK'? YES, ENERGIZE PHASE AND HALFTRACK COUNT. SAVE CURTRK FOR UCLAYED TURNOFF. iDELTA-TRACKS. BR IF CURTRK=DESTINATI DISK READ/WRITE TRACK/SECTOR (16) 17-APR-81 *000252 PAGE 25 F413: DO 06 F415.:49 FF F417:E6 8C F419:90 04 F41D: 69 FE F41D: C6 8C F41F:C5 95 F421:90 02 F423:A5 95 F425:C9 O9 F427:DO 02 F429: AS *F42A:38 F42D:20 48 F4 F42E:]39 67 F4 F431:20 56 F4 F434:A5 9D F4.36:18 F43:7:20 4A F4 F43A:D9 70 F4 F43D:20 56 F4 F440: E6 95 F442:DO C6 F444:20 56 F4 F447:18 F448:A5 BC F44A: 29 03 F44C: 2A F44D:05 81 F44F:AA F45'0:DD 80 CO F453:A6 81 F455:60 393 BCS 394 EOR 395 INC 396 BCC 397 OUT ADC 398 DEC 399 MINTST CMP 400 BCC 401 LDA 402 MAXTST CMP 403 DCS 404 STEP TAY 405 SEC 406 STEP2 JSR 407 LDA 408 JSR 409 LDA 410 CLC 411 JSR 412 LDA 413 JSR 414 INC 415 BNE 416 SEEKEND JSR 417 CLC 418 SETPHASE LDA 419 CLRPHASE AND 420 ROL 421 ORA 422 TAX 423 LDA 424 LDX 425 SEEKRTS RTS OUT *#$FF CURTRK MINTST #$FE CURTRK TRKCNT MAXTSr RKCNT #$9 STEP2 SETPHASE ONTABLE, Y MSWIAIT PRIOR CLRPHASE OFFTADLE, Y MSWAIT TRKCNT SEE2 MSWAIT CUReTRK #3 A IBSLOT PHASEOFFs X IDSLOT (MOVE OUT, NOT IN) CALC TRKS TO GO. INCR CURRENT TRACK (IN). (ALWAYS TAKEN) CALC TRKS TO GO. DECR CURRENT TRACK (OJT). AND 'TRKS MOVED'. IF TRKCNT.$B LEAVE Y ALONE (Y=$8). *ELSE SET ACCELERATION INDEX IN Y FOR 'ONTIME'. (100 USEC INTERVALS) FOR PHASEOFF iTURN OFF PRIOR. PHASE THEN WAIT 'OFFTIME'. 4100 USEC INTERVALS) tRACKS MOVED' COUNT. SETTLE25 MSEC iSET FOR PHASE OFF iCET CURRENT TRACK *MASK FOR 1 OF 4 PHASES DOUBLE FOR PHASEON/OFF INDCX iTURN ON/OFF ONE PHASE RESTORE X-REG AND RETURN N P o Ul %0 un RATS2 DISK READ/WRITE TRACK/SECTOR (16) F4.6: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F4.--6: F456:. F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456: F456:A2 11 F458: CA F459: DO FD F45B:E6 99 F4'D:DO 02 F45F:E6 9A F461: 38 F462:E9 O1 F464:DO FO F466:60 F467: -448 *. ******r-*****: ***e> >***** > * MSWAIT SUDROUTIilE * ** *** * *F** ****** ******* *.4 * DELAYS A SPECIFIED * * NUMBER OF 100 USEC 4 * INTERVALS FOR MOTOR * * ON TIMINQ. N * * *.... ON ENTRY. * * * A-REQ: HOLDS NiUM.HER * OF 100 USEC * INTERVALS TO G * DELAY. * 4 * ---- O'N EXIT * 4 * -A-REG: HOLDS $00. * * X-REG: HOLDS $00. * * Y-REG: UNCHANGED. * * CARRY: SET. 4 * 4- M ONTIMEL, MONTIH-H * * ARE INICREMENTED ONCE * * PER 100 USEC I:IERVAL* * FOR MOTON ON TIMlINGO. * 4 * ---- ASSUMES -- - * * 4 * 1 USEC CYCLE TIttE * 4- *****4************-X*****."(** MSWAIT LDX #$11 MSW1 DEX BNE tiSW1 INC r.'JJTIMEL BNE MSWJ2 INC MOTIMEH MSW2 SEC SBC #$1 BNE i'iSWAIT RTS * DELAY 86 USEC. DOUBLE-BYTE INCREMENT. DOrJF 'N' INTERVALS? (A-REG COUNTS) 17-APR-81 #COC0252 PAQI DISK RE-,,'WRITE TRAC /SECTCR (16) 17-APR-61 #oc )eêcf"E R.: i S2 DISK READ/WRITE TRACK/SECTOR (16) 17-APR-81 #000252 PAGE.27 474 ****************** ****** 475* * 476 * PHASE OGN-, OFF-TIME *' 477 * TABLES IN 100-USEC ' 478 * INTERVALS. (SEL:-) 479 * 460 ******************tt****** 481 ONTABLE DFB 1, $30, $28 482 DFB $24,$20> $1E 483 DFB $ID. $1C. $1C 484 OFFTABLE DFD $70, $2C, $26 485 DFB $2, $ 1F, $1E 486 DFD $1D, $1C,$1C F4b7: F4t7: F437' F467: F467: F467: F467: F4c7: l01 F46A:24 F4tD:ID F470:70 F473:22 F476: ID 28 lE 1C 1C 2C 26 1F 1E IC lC 4%) CO Ln Rai S2 DISK READ/WRITE TRACK/SECTOR (16) 17-APR-81 #000252 PAGE 28 F479: 86 83. F47B:AO 05 F47D:48 F47E: OA F47F:26 83 F481: 88 F482:DO FA F484: 68 F485:-29 07 F487:A8 F488:D9 AO F4 F48: 85 84 F48D:20 00 FO F49O: BO OB F492:E6 86 F494:E6 84 F49'6:E6 84 F4q8:20 00O FO F49B:C6 86 F49D:A5 88 F49F:60 F4AO: F4AO: F4AO:00 04 08B F4A3:OC 01 05 F4A6:09 OD F4A8: 488 BLOCKIO 491 TRKSEC 507 QUIT 509 * 510 SECTABL 514'* STX LDY PHA ASL ROL DEY BNE PLA AND TAY LDA STA JSR BCS INC INC INC JSR DEC LDA RTS EQU DFD DFB DFB 1BTRK #$5 A TDTRK 1 RKSEC #$7 SECTABL Y IBSECT REGRWTS QUIT 1DDUFP+l ISSECT IDSECT REORWTS IDDUFP+1 IBSTAT $0, $4, $8 $C $1,$5 $9.$D Co c %o U1 W i 2 DISK READ/WRITE TRACK/SECTOR (16) 516 * 517 * 518 * 519 * 520 * 521 * 522 * 523 * 524 * 525 * 526 * 527 * 528 * 529 * JOYSTICK READ ROUTINE ENTRY: ACC X'.Y= * * 4 COUrNT DON'T DOWN HIGH CARE EXIT: ACC= TIMER HIgH BYTE Y TIMER LOW DYTE. CARRY CLEAR 530 * 531 * * * 532 * 533 TINLAT 534 TIMER1 535 TIMER1 536 JOYRDY *537 * 538 ANALOG 540 ANLOG1 550 GOODTI IF CARRY SET, ROUTINE WAS INTERUPTED & ACC b Y ARE INVALID * * * * * * * * * * * 4 rCH L H ME EQU EGU EQU EQU EGU STA LDA AND BDMI LDA DMI CLC LDA LDY ÉPL LDA RTS * * * $FFD9 $FFD8 $FrD9 $C066 TIMtLATCH INTERUPT JO'YRDY ANI Ogt *JOYRDY QOOODTIME TIMER1H TIMtlERIL GOODTIME TIMERIH JCARRY SHOULD DE SET! ISTART THE TIMER! JWAIT FOR ONE DR THE OTHER TO GO LOW WAY IT REALLY THE JOYSTICK? NOPE, FORGET IT. iTIME'S A SLIP SLIDIN AWAY NOW, WHAT TIME IS IT? iTIME WAS VALID! HI BYTE CHANGED. SUCCESSFUL ASSEMBLY: NO ERRORS 4-t CO Q F4A8: F4AS: F4AS: F4AS: F4A8: F4AB: F4AS: F4A8: F4AB: F4A8: F4A8: F4A8: F4A8: F4A8: F4;8: F4A8: F4A8: FFD9: FFDS: FFDL9: C0&6: F4A8: F4AS: F4A8: ED F4AD: AD F4AE: 2D F4S1:30 F4E3:AD F46: 30 F4E8:18 F4E9: AD F4DC:AC F42F:10 F4C 1: AD F4C.4:,60 D9 FF EF FF 66 CO F8 66 CO OC D9 FF DS FF D9 FF 17-APR-91 #000252 PAGE ?9 RWTS2 LiUINM IIX3M DWA]O6 >JavMú N)I8ú lidaw11 zd3 S 03WT L3S 1 i33S j 13S T3NASU 1H3OIda NASVG8 CVUG L4a tGdA H90O ZCIN3Ud 8831SOd TIGINd 1 4403SVHd I 010W Z IN1ON 2!MSW AOAOW isi.xvt l!d3l83NI VISEIX ú8388I UW3CI 17 300 úIMAO8U 3SVHcI813 fO0]VNV j lVdlSI uu3uaIc Adwoo 3S'VHdUD T 3aYHO DOIte.Na 8TZi GOZZI V6 dz04 8Q44 GaZI4 o00 3frC4 ZG TA ZVO4 TDTM Z4 aaTA QV 14 T914 a61f4 U603 3taC. TC4 CTEJ VbOM trt,04 CO OI ZO0C t9t9 3t,0 C8 4 ú8 OVOA4 aco CO8 C6 ú6 Ubt4 O8VJ VG&r ci zTA iUTNN CVú OM 03WOMi INDMMA HTd3WIl A3S 33IA23S INSM3S IN3A133S - *IV1339 1113A8L3>4 1IX3Q8 lisvai 9VUm Eau VQ8 C128 UOIUU qTgtai43M ZlSOd 4A0SHd lno 319V1IAd TMUNION TIOCN T MSW 13WILNDq ISVYI aONOS!I AUONAS1 13BS09 dW31AN3 XNBOA8U N30ASd(a IOAL338803 "8 AA01-1V AGU4 AL 9ao80d4 a 6 t6 b60 vtrAC OVb' C6 4ZT aDT (M TA Z61 = Z91A 8ECE a Ct1 00!0 8GS 0ú t, 4 o6 ce OS 3ú T4 800 4C0=4 C6 6T10 31121WMl B]aINM ZVlAVO MBúAMI V8NI 8Iúi83S St8JM335 ZU133S f18J.J.8 S1hiIIèj SIMM03 alIvcId T VO 8 sYaa HZD TBINMUd t C I NS 84 I lSOd NOSYHd BlUVINO 330XN U3A I UaON M33SAW NOMOIOW H3W IúlNOW ^au^or 83dMC I NAti0I SH8SUGH 3W I ú1OOf0 N08IAN3 13SAIBG TWISD TISA ID u OIMO03f 3NOU99v v9ZO ú 0.A 990A 3Ltt' Z6 fr& VOt' GET.J OOOA B3I 83T! gAT 83 Et 3GTA 84Z4 VDZ4 9CCú T8o3o 9gb3 E1 1A 09Od' V6 T8 il"A G30A T COz L6 QCTJ 6LOM4O z ld81NIM IS84A 8A ci1HAAMI HOIVWt I 1 d31S 3SVHdl3BS CtN3M33S 1 M33S TNMB3S D.NAS 8 9T1GV8 WnSmoU8 t'VauQ 8c18 tau vçau fcid -9E) CGIN3Ud C8a I N'38 d 9TEIN.SOd Z3i I Nd N03SVHd NOB43NH OBNBNO 31 I 8MON 9gIN 1 IVMSW NdO8OIOW 151N I W ID3SEII 8d3cict4 IV.000 IOWAG NBTÀ8U *N3 1 da -1a CIN Ah.SSO lIvmtio t 903NV T3NOW3V TONWAS A a31imOS B3'VI 10GWl.VS Ln o' r 0'J 9' G C 6CHA r4 et, rd Og[ st'J VBT-J a a r 3 V3 1J 4VtA 3út4 t3' T 802 O8 7gcc eso 9G.'-_ 3Tt3 Va Ce b8 830A tVQ'i,- cj3C:) Ot OOU4 aûil 4 630Q4 OC 3eVd ZGZOOO# 18-ffl-Zi 1 èJ314 I údAiúNI 318VIúd ú I VMSW4 aN3>133S 1úI 1 NIW lSlN INW IGIN a1Sad 9101N.SOd CG1IN38d /.]81NM WnsxDdM I ldUINM 3N.&SM 1 Ix3auè trvad TNSVad ^8350 wM1au tau 330XN W33SAW B33dNH IQA133MM03 SIMUO3B A 010W J305Hd iowfa bREt M831oAd NAB8aIi 03W3tN'D 43-A saA 0 S Ovt'd oL bd 9Gt? 4 ,fS 0- 9SCC OEZJ OCTZ V31A aDIA 8TT=I G6T3 a I, I 3OT-4 Su0 0VOAI. atoA 000A 68oD E16 -6 C6 c a as os NOUI^N3 Aa d 3W I 1lOOO 403bS 11nD a6tA 31CVll' Z9trd SlUM33S çGt44 Zct31S MZéd ino a 1.- A3S tQCA TiSOd 91:d IIHO 008 t 9IN3Ude V3Z: 610It1M 3EIZ: 0vi 0 T8EZ lSU:l'M 8TZA ú1I'1 b Z'4O tvam m0zd: invau 831:d TNONAS V80 MI8lai fao: VI0 vt0: NHTAO -800D N31UamH OS 1 NOSVHd T800S ÀAOAOP 9900 dW3úANB -J6 M9W1IúNOW 66 AúSSD Z6 ISVI G6 1 1S I I 88lQ6 du3aul as Sf3la4H 08 Hl d2Moiq Il T OOgNV 2t1SW 3SVH'dbW: c131S 918IN3Ud 9T311 dml 9vad wvau NfAsva a zad. Z 81NI ON 3NOaIVM ISOAA asavAull Ud&3h I aON N30?%UG N NIM181 H3tU1I.lNO'.W COB 8M0 LD133S NadGOI a el:)a I 83 dria I 9TdoVI 6a -4 VOb3 3bú:1 34Ct 8:9:1 I t2: a 933A 6TZA aOZ TOT4 3LT:i ZG T 8T : 980 4 4,v aCoA V6 86T LV8 4E3 o9 HDIMqVN4I1 OiOiDOiG OIT13031 3SVHdl3S 1S LXVW t133S dè3LSOd 1-1INd 518[ 1NM 3:1 I 8110N 31IQ UMON ldUINIM lIX3M 6VQB 9ruavau zau sau TONAS8 TCNOA]a U^Y113S 133S 13NOXaú3 103SI10qSI VWOMi 13SA IdW H9E) NOU4OlOhl d3::0SVHd UlO I tid dl!131 N110D lN3AU13U 883UG I IOISú1 r D3O tIto 6a0ç %V,';'_ 00,'4S Out'C, G[C.' r:,i, &0017 O 00r0 9C8 63t7 3S):1 ad IAZ za r 'A au n - I V i.3 63C ú69 C6f m oL o Il 3:Vd =C3000# 18-UdV-ZT SS38acv Au G3180s 39V01 oU,-.S Il 2487095 SCORC& FILE ':A6P*5TI C5 DIAGNOSTICS SARA DIAGNOSTIC ROUTI;,S 2*******%***.*******" I *******>** 3* 4 *SARA DIAGNOSTIC TEST ROUTIWNtS * 6 *DECEMDER 18.1lq79 7 * BY 8 *W. BROEDNER & R. LASHLEY 9 * *COPYRI-HT 1979 BY APPLE C0O1PUrER, INrC. Il î 2 ******F*+** ******************* 11- 13 POM EGU $1 FOR RAM VERSICN, I IF TRUELY ROM 14 ZPPG EOU $0 ZRPGI EGU $10 16 PTRLO EOU ZRPQI+8 17 PTRHI EGU ZRPG1i+9 18 3NK EQU ZRmOQ+$A 19 IBCMD EGU 387 tiBBUFP EQU *85 21 PREVTRK EîU $91 22 BLOCKIO EQU *F479 23 CV EGU SSD 24 STKO EQU eFF IDNK EGU $1400+PTRHI 26 PHP EOU $1800+ZRPO1 27 KYBD EGU sCQOO 28 KEYBD EGU ICOO8 29 KBDSTRD EGU tC010 PDLEN EGU *C058 31 ADRS EGU JC047 32 ORMD EOU *C050 33 TXTMD EGU tC051 34 ADTO EOU *C066 DISKOFF EGU tCODO 36 ACIAST EOU #COFI 37 ACIACM EGU ICOF2 38 ACIACN EOU SCOF3 39 SLTI EGU tC100 SLT2 EOU SC200 41 SLT3 EGU SC300 42 SLT4 EQU *C400 43 EXPROM EGU *CFFF 44 ZPREO EQU IFFDO SYSDI EGU $-FDF 46 9YSD2 EOU *FF02 47 SYSD3 EGU'J IFFD3 48 SYSEO EauJ FFEO 49 BNKSW EGU SFEF SYSE2 EOU $FFE2 *51 SYSE3 EGU OFFE3 52 COUT EGU *FC25 53 CROUTI EaU tFD07 54 KEYINt EGU *FDOF SETCVH EGU SFPC7 C6 CLDSTRT EQU FDI99 57 SETUP EGU *FD9D G6P4 ú4& (I m os Co tL COCiO COO0 0000: COCO. 0000: 0000: CDwO0 COCO0 3:01 C0IB. 00t8: 0019: 001A: 0097. coq 1 F479: D O0 FF 14J9 113o- c.0' lCO.- C 000 COC9: CO: O. CD4-7: c0oe: C051: C0r66 OGO CCFI: cor2. CCF3. CIO0: C 00: C.C00O CFFF: FFGO FFDF FFD2: FFD3 FFEO: FFEF. F';EP. FFE2. FFE3 FC25. FD07' FDCf' FDC7 FD,8 pF0D pOCP 17-APR-91 #000253 PAGE 1 SARA DlAkGjOS"IC ROUTIi.rs FS:'1 58 MONITOP CO DO " ----- NEXT OIJECT FILE NAPIE F4C5 60 F4r5 GO B1 B2 61 RAMTBL F4CE. BA 9 10 F4C8:00 13 F4CD 62 CHPC F4CD-52 41 CD 63 F41,0:52 4F CD 64 F4G3:56 49 CI 65 F41,6:41 43 49 66 F4r,9: C I F4DA 41 2F C4 67 F4r'D'44 49 41 68 F4EO. 47 4E 4F F4E3 53 54 49 F4E6 C3 F4E7,5A DO 69 F4E9 52 45 54 70 F4EC 52 D9 F4FE 71 * F4EE 72 * SETUP F4EE. 73 4 F4EE 74 * F4EE'A9 53 75 F4FO:ED DF FF 76 F4r3:A2 00 77 F4FS. BE EO FF 78 F4F8:SE EF FF 79 F4FB:SE DO FF 80 F4FE:CA 81 F4FF:BE D2 FF 82 F502:SE D3 FF 83 F505: 9A 84 FSC6:E8 85 F507 A9 OF 86 FS09:SD E3 FF 87 F5fC:A9 3F 8e FS5OE:SD E2 FF 8c; F531:AO 06 90 F513.B9 DO CO 91 DISK1I F516:88 92 F517.88 93 F518:10 F9 94 F51A:AD 08 CO 95 F'5ID29 04 96 F51F.DO 03 97 F'I1:4C 89 F6 98 F524: 99 * F524. 100 * VERIFY F524 101 * F524 A9 01 102 NXBYT F526c/5 00 103 NXBIT F528 D5 0O0 104 F52A DO FE 105 NOGOOD EOU *F901 DIAG. ODJ ORO tF4C5 DFB,O,UB1,S12,SBA,$Bç,110,SO,13 EGU * DCI 'RAM' DCI 'ROM' DCI 'VIA' DCI 'ACIA' DCI 'A/D' DCI 'DIAGNOSTIC' DCI 'ZP' DCI 'RETRY' SYSTEr' LDA #1 STA Si LDX #1 STX S, STX BI STX ZF DEX STX SI STX S' TXS INX LDA #! STA Si LDA *#1 STA S' LDY *# LDA DI DEY DEY BPL DI LDA KE AND *1 BNE t: JMP RE ZERO PAGE LDA * STA Z; CMP Zi BNE N! 152+ROt1 SDI t00 YSEO KSW PREG YSD2 YSD3 TURN OFF SCREEN, SET 2MHZ SPEED ANDI RUN OFF ROM SET BANK SWITCH TO ZERO AND SET ZERO PAGE SAME PROORAM DDR'S tOF YSE3 $3F IYSE2 I06KOFF, [SKOFF, Y [ISKI -EYBD O04 1BYT ECON SOl RPC,X RPG, y ZOOOOD ROTATE A I THROUGH EACH BIT IN THE O PO TO COMPLETELY TEST THE PAGE.HANG IF NOGOOD. CDM o \0 r.n 17-ADP-81 #C100253 PAGE 2 L.:' '.'OST I C S k-5 DIAGNOSTICS SARA DIAGNOSTIC ROUTINCS c52C. COA Ft2D.DO F7 F32F. E8 F530:'DO F2 F532: F335-2 SA - F533 L9 F"34:E8 F535:DO FB F337:CA F 538:6 18 FS3A: 68 F539:C5 18 F53D: DO E8 FS3F:C6 19 F341:DO F7 F543:69 F544:DO E4 F3 '6: F546: F546. F546:A2 08 F548 95 10 FS4A CA F54D:10 FD F54D. F34D:A2 02 F54F: 86 19 F551:A9 00 F53:4AO FF Ft55:q1 18 F357 DI 1t F559. F0 07 F-50: 20 48 F7 F5eE:94 10 FeO:A6 19 F562.E8 F563:EO CO F565:DO ES FS67:A2 20 F569:EE EF FF F36C:AD EF FF FS6F:29 OF F37t:C9 03 F373 DO DA F575 F575- F575S20 9D FD F578'A2 00 F57A. SE EO FF F57D:CA F57E SE D2 FF F351 8E D3 FF F534 A9 3F F556 eD E2 FF F539:A9 OF * 111 CNTWR t12 117 PULBT tie 11tt9 t20 1Z22 124 * * SIZE 126 * 128 NOMEM 131 * 133 NMEMI 142 NMEM2 131 * 152 * SETUP 1I3 ERRLP t156 t1O ASL A BNE NXBIT INX BNE NXBYT TXA PHA INX BNE DEX STX PLA CMP 9NE DEC BNE PLA 9NE CNI WR PTHLO PTNLO NOC0OD PIRLO PULBT NOCOOD THE MEMORY LDX 4306 STA ZRPGI,X DEX DPL N5.IEM LDX STX LDA LDY STA CMP DEOG JSR STY LDX INX CPX NE LDX INC LDA AND CMP UNE SCREEN JSR LDX STX DEX STX STX LDA 9TA LDA # 02 PTRHI lSFF PTRLO), Y (PrRLO), Y N,r'1M2 RAPM ZRPG I. X PTRHI #$CO h.I11 Mt #120 gr,'KSW DE'KSW #$OF #103 ETtJP N.1F M I SYSEO SYSD2 SYSD] 4 3F SYSE2 #$OF 17-APR-81 #000253 PAGE 3 TRY NEXT DIT OF BYTE UNTIL BYTE IS ZERO. CONTINUE UNTIL PAGE IS DONE. PUSH A DIFFERENT BYTE ONTO THE STACK UNTIL ALt STCK BYTES ARE FULL. THEN PULL THEM OFF AND COMPARE TOTHI COUNTER GOING BACKWARDS. HANQ IF THEY DON'T AGREE. GET NEXT COUNTER BYTE COnTINUE UNTIL STACK IS DONE.TEST LAST BYTE AGAINST ZERO. ZERO THE DYTES USED TO DISPLAY THE 9AD RAM LOCATIONS EACH DYTE- A CAS LINE ON THE SARA BOARD. *STARTING AT PAGE 2 TEST THE LAST BYTE IN EACH MEM PAGE TO SEE IF THE CHIPS ARE THERE. (AVOID 0 le STK PAGESI CAN THE BYTE BE O'D' NO, FIND WHICH CAS IT IS. SET CORRES DYTE TO FF RESTORE X REGISTER AND INCREMENT TO NEXT PACE UNITIL I/O 19 REACHED. THEtN RESET TO PAGE 20 AND GOTO NEXT BANK TO CONTINUE. (MASK INPUTS FROM BANKSWITCH TO SEE WHAT SWITCH IS SET TO) COI4TINUE UNTIL 3ANK '3' CALL SCRN SETUP ROUTINE SETUP I/0O AGAIN FOR VIA TEST PROCRAM DATA DIR REOISTERS CO -4 o ri t;C.G;3STICS SARA DIACNDJO11IC POUTIh-.. FS:-D 8D E3 FF FS'E A2 10 F5-.o.0 38 F7 F5"3 A2 00 F545 B6 5D FS-7 A9 04 F,':20 C7 FB F5'vC:20 38 F7 F-'-F.A2 07 F541:E t FSAI:E5 10 F5A3:AO 08 FA5. C'A F.,A6: 48 F5.A7: A9 AE F 59:90 02 F54B:A9 31 FSAD:20 25 FC FSDO 68 F217-68 F52: DO Fl F5Z4.20 07 FD F.17: (.A Fr.B 10 E7 F5DA F5I,A F5r'A F5b q9A F51-'DEC EF FF F5SE. 98 FSDF:SD DO FF F5C2:85 FF F5C4:C8 FSC5:98 F506:4B F5C7:68 F5C8: C FSC9:CO 20 F5C.D DO FI FSCD.AO 00 FSCF: C DO FF F5D2'&6 18 F5tD4- E F5D5: 86 19 F'D7: eA FSD8:DI 18 FSDA: DO 06 FSDC:EO IF FSD1E: DO F4 FSEO:FO 05 F'E2-, SE2 A2 IA F5E4:0O 7B F7 F5E7: F597: F5E7. 162 5TA 163 LDX 164 JSR ERRLP1 LDX 166 SiX 167 LDA 16E8 JSR 169 JSR LDX 171 RAMW4TI EOU 172 LDA 173 LDY 174 RAMWT2 ASL PHA 176 LDA 17/ BCC 178 LDA 179 RAMWT4 JSR PLA 181 DEY 182 BNE 183 JSR 184 DEX BPL 166 4 187 * ZPO&STK TEST 188 * 189 TXS STY 191 ZPI TYA 192 STA 193 sTA 194 INY TYA 196 PHA 197 PLA 199 INY 199 CPY BNE 201 LDY 202 STY 203 STX 204 ZP2 INX 205 STX 206 7XA 207 CMP 208 BNE 209 CPX 210 BNE 211 BEQ 212 ZP3 EGU 213 LDX 214 JSR 215 * 216 * ROMr TEST ROU' 217 * SYSE3 %10 STRWT CV & 04 EETCVH STRWT #$07 #fOB A #SAE RA'IWT4 #$31 CO'JT PAMWT2 CROUTI RAHWTI B' itSW ZPREG STKO #*20 ZPI #0 ZPREG PIRLO PTRHI (PTRLO). Y ZP3 ZP2 ROMTST #11 MESSERR TINE HEADINC OF 'DIAGNSTICS' WITH THIS SUBROUTINE PRINT 'RAM' SET CURSOR TO 2ND LINE SPACE CURSOR OUT 3 (X STILLO-0 ON RETURN) THE SAME SUBROUTINE FOR BYTES 7 - O IN OUT EACH BIT AS A i OR '1' FOR INDICATE CHIPS. SUDROUTINE 'RAM' SETS UP THESE DYTES LOAD A '.' TO ACC BAD OR MISSING RAM LOAD A '1' TO ACC AND PRINT IT RESTORE BYTE AND ROTATE ALL 8 TIlWS. CLEAR TO END OF LINE. CHIP 15 THERE, DAD ZERO AND STACK PRINT 'ZP' MESSAGE & SET FLAG (2MHZ MODE). IX) N o \0 Vi 17-APP-81 #000253 PAGE 4 [I -BARST!CS SARA D1ACrJOSTIC ROUTINES r- '.:7 AQ 00 F5E9 A-8 F5EA A. F0 F5=EC. 8e5 S FSEE 86 19 c?.FO A2 FF F!.2. 1 18 F.F4 E4 19 FS56 DO C06 FF aF. CO DF F F A.DO 02 FSFC AO EF FSFE C9 F5FF:DO Fl F601 'E6 19 F6i3.:DO ED F605. AS F606 FO 05 F60E. AZ 03 F6A. 20 7B Fi F60D: F6 'D F 6."D F,OD F6O'r 18 F60E D8 F6CF:AD EO FF F612.29 3F F614:85 18 F616:AD EF FF F619: 29 4F F61B:65 18 F61D.6D DO FF F620:85 18 F622:AD DF FF F625:29 5F F627:65 IB F629:6D D2 FF F62C:6D D3 FF F62F:6D E2 FF F632:6D E3 FF F635:C9 El F637: FO 05 F639:A2 06 F63B:20 78 F F63E: F63E: F63E: F63E: 18 F63F:A9 9F F641:2D Fl C4 F644:6D F2 C; F647:&D F3 Ci F64A C'9 10 FL4C: F0 05 r:6.4E: A2 09 F,50:20 70 F 219 ROMTST 224 ROMTSTI 2Z26 230 ROMTST2 238 * 239 * VIA Ti 240 * 241 VIATST 24e F 249 F 254 F 256 F 257 262 * 263 * ACIA 264 * 265 ACIA 0 267 0 268 0 269 7 273 LDA T7AY LDX STA STY. LDxY EOR CPX BNE CPY BNE LDY INY BNE INC DNE TAY BEG LDX JSR 41t00 #tFO PTRLO PTRHI #*FF (PTRLO),Y PTRHI PO?ITST2 #&DF ROMTST2 #$EF ROHTSTI PTKHI RONTSTI 1 VIATST #*03 1.ESSEPR 17-APR-81 #000253 PAGE 5 SET POINTERS TO SFOOO SET X TO $FF *FOR WINDOWINQ I/O COlPUTE CHKSUM ON EACH ROM DYTE, RANGES FFCO-FFEF TEST ACC. FOR O YES. NEXT TEST PRIST 'ROil AND SET ERROR EST ROUJTINE CLC CLD LDA AND STA LDA AND ADC ADC STA LDA AND ADC ADC ADC ADC ADC CMP 8EO LDX JSR SYSEO 4#3F PTRLO Ei.!IiSW #t4F PTRLO ZPREG PTRLO SYSDI1 #$5F PTRLO SYSD2 SYSD3 SYSE2 SYSE3 #1EO+ROM ACIA *$06 MESSERR SET UP FOR ADDING BYTES MASK OFF INPUT BITS AND STORE BYTE IN TEMPOR. LOCATIONt MASK OFF INPUT BITS AND ADD TO STORED BYTE IN TEMP. LOC. ADD REMAININO REGISTERS OF THE VIA'S (MASK THIS ONE)- AND TEST TO SEE IF THEY AGREE WITH THE RESET CONDITION. -EI? YES. NEXT TEST NO, PRINT VIA' MESS. AND SET ERROR FLAG TEST ROUTINE CLC LDA AND ADC ADC CMP BEG LDX JSR 9F. ACIAST ACIACM ACIACN *010 ATD #S09 MESSERR SETUP FOR ADDITION MASK INPUT DITS FR0O1 STATUS REO AND ADD DEFAULT STATES OF CONTROL AND COMMND RE0S. -t10? YES, NEXT TEST NO. 'ACIA' MESSAGE AND THEN SET ERROR FLAG rJ UVI DIAGNOSTICS SARA DIAGNOSTIC ROUTI,;'S F653: F653: F653 Fe53:A9 CO F655: 8D DC FF F658: AD 5A CO F6sE: AD 5E CO F65E:AD 5C CO F661:AO 20 F663: 88 F664: DO FD F66: AD SD CO F,69: C8 F66A:FO OA F6tC:AD 66 CO F66F:30 F8 F671: 98 F672:29 EO F674:FO 05 F676: F676: A2 OD F678: 20 7B F7 F67B: F67D: F67D. 6,E: AO 08 CO F67E: OA c=7F: 10 41 F631:AD DF FF F684. 10 03 6e6:4C 93 F5 F6E'9. F6,9: r,"J9 A9 77 r68O. SD DF FF F63E:20 98 FD P69i:A9 10 F693-2D 08 CO F6c6: DO 09 F6a8:2C 10 CO F6D. AD 50 CO F6'E:20 01 F9 Ft AtA2 01 F6A3:86 87 FiA5: CA Fte6 86 85 F6t-s: A9 AO FS6A' B5 B6 F 6AC, 4A FSAD:85 91 F6AF: eA F6DO 20 79 F4 :5D3.90 b A F623542 iC 274 * 275 * A/D TEST ROUTINE 276 * 277 ATD LDA #$CO 278 STA $f-FDC 279 LDA PDLEN 280 LDA PDLEN 281 LDA PCLEN 282 LDY #*20 283 ADCTST1 DEY 284 BNE ADCTS 285 LDA PDLEN 286 ADCTST3 INY 287 BEG ADCER 288 LDA ADTO 289 BMI AOCTS 290 TYA 291 AND #$EO 292 BEG KEYPL 293 ADCERR EGU * 294 LDX #100D 295 JSR MESSE 296 * 297 * KEYBOAD PLUGIN TEST 298 * 299 KEYPLUG LDA KEYBD 300 ASL A 301 BPL SEY. 302 LDA SYSDI 303 EPL RECON 304 JMP ERRLP 305* 306 * RECONFICURE SYSTEt 307 * 308 RECON EOU 309 LDA *577 310 STA SYSDOI 311 JSR CLDST. 312 LDA #$10 313 AND KEYBD 314 BNE OfnT 315 BIT KEDBOST 316 LDA CRND 317 JSR MON.IT 318 BOOT LOX #1 319 STX I3CMD 320 DEX 321 STX JoEUFI 322 LOA #IAO 323 STA I OUFI 324 LSR A 325 STA PHEVTI 326 TXA 327 JSR DLOCK 128 Dcc GODOO 329 LDX *l#C 1+2 4-6 N+4 TI [+5 R T3 Uvo RR WJAIT FOR 40 USEC SET A/D RAMP COUNT FOR CONVERSION (>255=ERROR) IF BIT 7 1i? YES. CONTINUE NO, MOVE COUNT TO ACC ACC NO. PRINT 'A/O' MESS ANO SET ERROR FLfAO IS KYOD PLUGGED IN? (IS LIGHT CURRENT PRESENT?7 NO. BRANCH 18 ERROR FLAG SET? (2HIZ MODE) NO, BRANCH ERROR, HANG. TURN ON SCREEN INITIALIZE MONITOR AND TEST FOR "APPLE 1" RT RB DOR P P+I RK T DEFAULT CHARACTER SET NO, DO RECULAR BOOT CLEAR KEYBOARD AND NEVER COME BACK... READ BLOCK O INTO RAM AT AOOO0 iFOR TRACK so80 MAKE IT RECALIORATE TOO! IF WE'VE SUCCEEDED. DO IT UP co 4-J CO -0 U1' 17-APR-91 #000253 PAGE 6 DI-G:NOSTICS SARA DIAGNOSTIC ROUTINiS 17-APR-61 #000253 PACE t7 17-APR-S! #000253 PAGE 7 F6r7 20 38 F7 F6SA:20 OF FD F6rD:DO E2 FSDF:4C 00 AO F6C2: F6C2: F6C2: F6C2:AO 7F F6C4:98 F6C5:29 FE F-,C7:49 4E F6'C9 FO 03 F6CD7D9 00 CO FSCE: 88 F6CF:DO F3 FrDi:AD 51 CO F6D4:89 00 Cl F6D7:D9 00 C2 F6DA:E9 o00 C3 FIDD:B9 00 C4 F&EO: AD FF CF F6E3:C8 F6-4:DO EE F6E6: F6E6: F6E6: F6E6: A9 73 F6ES: 8D DF FF F6EB: A9 18 F6ED:8D DO FF F.6FO- A9 00 F6F2:A2 07 FeF4 95 10 Fz6:CA F6-7 10 FB3 FhF9:20 84 F7 F'C;. oB F6fD:20 F7 F7 F700:20 F7 F7 F703: 2a F704: 6A F705:08 F706:20 AI F7 F79-00D P2 F70D:20 64 F7 F70E: 08 F70F:20 FB F7 F7t2:48 F713.A9 00 F715,91 18 F717:68 F71l8: 2 F719 6A 7IA G08 F713 20 AI F7 F71E D00 EF 333 GOBOOT 334 * 335 * SYSTEM 336 4 337 SEX 338 SEX1 343 SEX2 346 SEX3 353 * 354 * RAM TES 355 * 356 USRENTRY 36t 362 RAMTSTO 367 RAMTSTI 376 RAMTST4 *3B0 38t 3e2 JSR STRWT JSR KEYIN BCS 3BOOT JrtP.^000 RETRY?' GO TO IT FOOL... EXERCISER LDY TYA AND EOR BEG LDA DEY 3NE LDA LDA LDA LDA LDA LDA INY BNE 4$7F #$FE #$4E SEX2 KY3D, Y SEXI TXTMD SLTt, Y SLT2, Y SLT3, Y SLT4, Y EXPROM SEX3 TRYFROM 7F TO 0 ADD. - 4EOR4F? YES, SKP NO, CONT NXT ADD SET TXT EXERCSE ALL SLOTS DISABLE EXPANSION ROM AREA ST ROUTINE LDA STA LDA STA LDA LDX STA DEX D3PL JSR PHP JSR JSR PLP ROR PHP JSR 31NE JSR PHP JSR PHA LDA STA PLA PLP ROR PHP JSR I14E #872+ROM SYSD1 #$18 ZPREQ #$00 #$07 ZRPG I, X RAtTSTO RAISET RAMWT RAMHWT A PTRINC RAMTSTI RAMSET RA!RD #00 (PTRLO),Y A PTRINC RAITST4 "00 o o CO -l 0> un Oi.'GNDSTICS SARA DIACNOSTIC ROUTINES F"-"'O; F7.0: F720: F70: A9 00 F7,.2:iD EF FF F72'5- SD DO FF F7"8:A2 07 F72A:BD 10 IE F72D:95 10 F72F.: CA F70: 10 F8 F732: 20 7E F7 F735:4C 75 F5 F7. F 7S---8 F738-S F738: F7Z9: F738:DD CD F4 F739: 48 F7,C:09 eo80 F73E:20 25 FC F". 1: E8 F?-12; 68 F"43 10 F3 F745: 4C 07 FD F7:8; F7-:8: F7-.8: 48 F749- 8A F7.A-4A F7.--:B 4IA F7;C 4A F7.:D: 4A F7=E: 08 F7-F: 4A F710: 28 F731: AA F7 2: DO CS F4 F725:10 14 F757:48 F758- AD EF FF F7-,B:29 OF F75D AA F7CE: 698 r7.F EO 00 F71: FO 13 F763: 4A F764- 4A F765 4A F766 CA 97e,7 DO OD r7,9 -9 05 7bD DO 09 386 * 387 * RETURN TO START 389 * 389 LDA 390 STA E 391 STA 392 LDX 393 RAMTST6 LDA F 394 STA 395 DEX 396 BPL f 397 JSR t 398 JMP E 399 ******4*********, 400 * SARA TEST SUBROq 401 ****************4 402* 403 * SUBROUTINE STRIF 404* 405 STRWT LDA 406 PHA 407 ORA 4 4089 JSR 409 INX 410 PLA 411 BPL 412 JiP 413 * 414 * SUBROUTINE RAM 415 * 416 RAM PHA 417 TXA 418 LSR 419 LSR i 420 LSR i 421 LSR 4Z2 PHP 423 LER 424 PLP 425 TAX 426 LDA F 427 BPL F 428 PHA 429 LDA C 430 AND 431 TAX 432 PLA 433 CPX 434 BEO F 435 LSR d 436 LSR 437 LSR A 438 DEX 439 BNE F 440 AND 441 RAMO UNE F M OO B3:KSW ZPREO #107 IPP, X ZRPO1, X RAttST6 ERRMOR ERRLP JUINES F'**K ********** :N WRITE CHPO. X 4$90 COUT STRWT CROUTI A N A A N RAf1TBL, X RAO10 #tOF #tO1 qAHI tAtil 4i*0c P Ar1I NORlIAL VIDEO & PRNT. NXT CHR CLR TO END OF LINE SV ACC CONVRT ADD TO USE FOR 8 ENTRY LOOKUP IF VAL UHICH BANK? SET PROPER RAM VALUE CCNVRT TO VAL ro -CO "-4 o >i 17-APR-81 #000253 PAGE 8 DIAGNOsrIcs SARA DIAGNOSTIC ROUTIN>S F76D0 SA F7. E.FO 02 F70o: A9 03 F772. 90 02 F774:49 03 F776: 29 07 F778: AA F779: 68 F77A: 60 F77a: F7-D: F770 F-7D 20 38 F7 F7,E:A9 F3 F7SO: D DF FF F733: b60 F784: F784: F764: F794:A2 01 F786:86 IA F788: AO 00 F78A:A9 AA F78C: 38 F7eD: 48 F73E: 0o F7;FA5 h A F7'1:09 80 F7 3'OD 19 14 F7q6: A9 02 F7ç8' 85 t9 F7ZA A2 00 F'-C: 86 1s F7E z28 F7CF 68 F7-0O. 60 F-At: F7AI: F7AI: 8 F7AI: t4S F7A2: E6 l F7A4 DO ID F7A6.A5 A F74S: 10 OE F7AA: AS 19 F7AC. c9 13 c7'E:FO 06 F7DO: C9 17 F7B2: DO 04 F7D4:E6 19 F7,6: E6 19 F7DS. E6 19 F7A: DO 07 e7[C: C6 IA F7BE: C6 tA F7CO..0 80 F7 442 TXA 443 BEo RArl 444 LDA #3 445 RAMOO BCC RAM 446 EOR #3 447 RAMI AND 4*0 448 TAX 449 PLA 430 RTS 451 * 452 * SUBROUTINE ERROR 453 * 454 MESSERR JSR STR 455 ERROR LOA #$F 456 STA SYE 457 RTS 458 * 459 * SUBROUTINE RAMSET 460 * 461 RAMSET LDX # C 462 STX BN1 *463 LDY %a( 464 LDA #Wi 465 SEC 466 RAMSETI PHA 467 PHP 468 LDA BN, 469 ORA #IE 470 STA IBa 471 LDA #S( 472 STA PTF 473 LOX 1;*( 474 STX, PTr 475 PLP 476 PLA 477 RTS 478 * 479 * SUBROUTINE PTRINC 4ao * 481 PTRINC PHA 482 INC PTI 483 BNE RE' 484 LDA BNI 485 OPL Pli 486 LDA PTI 487 CMP #1 488 BEQ- PII 489 CMP #h 490 BNE PI' 491 INC PT 492 PINC2 INC PT 493 PINCI INC PT 494 UNE RE 495 DEC ON 496 DEC Dr. 497 JSR RA Q7 RWT -.+R DO Di OAN;SW PRItNT MESSAGE FIRST SET 1 MHZ MD >0 4K HLO HLO RLO TS NC 1 RHI N4C2 l4C 2 JC t RHI RHI RHI TS KET #ISET 1 rN Uo -'j C) %O Ln 17-APR-91 #00025J PAGE 17-APR-81 #000253 PAGE Ilo F'C3 68 F7 4:A6 IA F'C6: EO FD F7C8: 60 F7C9: F7C9: F7C9: F7C9: 40 F7CA:A6 19 F7CC:A4 tA F7CE: 9S F7CF. 30 19 F7D1 SA F7D2:30 10 F"D4: 18 F7D5::69 20 F.D7:SC EF FF F7DA:AA F7ZDB:20 48 F7 F7DE: 68 F7DF: 48 F7EO:AO O0 F7E2'51 18 F7E4:15 10 F7Eb,95 10 F7E8: 69 F7E9: 60 F7EA:A9 00 F7EC:SD EF FF F7EF:FO EA F7FI: 38 F7F2:E9 60 P7F4: CB P7F5'DO EO F7F7: F 7F7 F7F7: F7F7: 49 FF F7F9:91 18 F7FB: O1 18 F7FD: DO CA F7FF,60 498 RETS PLA 499 LDX BN-K 500 CPX #*FD 501 RTS 502 * 503 * SUDROUTINE RAMERR 504 * 505 RAMERR PHA 506 LDX PTRHI 507 LDY BNK 508 TYA 509 BM!i RAMERR4 510 TXA 511 BiI RAMERR5 512 CLC 513 ADC #!20 514 RAMERR2 STY BN;iSW 515 TAX 516 RAMERR3 JSR RAN 517 PLA 518 PHA 519 LDY #soo00 520 EOR (PTRLO),Y 521 ORA ZRPGIX 522 STA ZRP0IX 523 PLA 524 RT9 525 RAMERR4 LDA #t00 526 STA BN;ASW 527 BEG RAb1ERR3 528 RAMERRS SEC 529 SeC #$60 530 INY 531 BNE PAMERR2 532 * 533 * SUDROUTINE RAMWT 534 * 535 RAMWT EOR #$FF 536 STA (PTRLO).Y 537 RAMRD CMP (PTRLO),Y 539 BJE RAtIERR 539 RTS **, SUCCESSFUL ASSEMBLY: NO,ERRORS ro 4N CD %O DIAGNOSTICS SARA DIAGNOSTIC ROUTINi-S EdZ Z3C3 AUIN3USn 939A4 03SAS 03J4 lM81S Bft.4 Z13s OOZD X3S ZD93 Id0U TO Si13 CDt4 tl'MWVu QVQA WVU bBé3 T 1SWV 0494 su3WV8 6Dt wv8 obZA 03lud si ZDNld 98i4 lABXN bZC34 ZW3WN zsc4 ASMI OOOD a8S08 OCOD ld3U83 C6;d AD a; lUisanOD 0ba 4N8 VT sdov Z#OD& ISVIDV TD03 OddZ 0o ZdZ tOQG4 0WlY1 ICOD EasAs Ea33 OSAS c33 0omis Ad il3S OOID Ix3S tD9A NOD3U 689A OLStIWVU i'49 0lILJ'8 RU.4 aJuwvu stj b Wè3wvU VaLA IW'Y 9L4Z D?/l ld IVW4 IDNIld B8Zd IIEXN 9r4 TW3WN 3tC3 OnIdAAM 849A 10800 da9d fln'aD Zo0A OdHD ODt3 0!MD0CIO 6Zt' ISIDOV 6i9A WDVIDV Z3OD ZOdU2 01 IdZ 38g5 CESAS E333 ils OOtD dnl3S 060d aisikoad 3353 a.lelkvè QVQ 4 91Slikvu V zd e3skvu CDb3 CU83WlvU aatS OOWjVd zzzd IH81d 6T dHd OIBI UOIINIOW 106A NIA3M 30a3 OWIDEI Le 4tohsla OOOD n1fOD SZD4 0oe0 ITv9A civ Ecs3 llSiDaV E994 VIDV 3Es9 NXIA3I OO 0a3ddZ oa ISIVIA 00ao Z3SAS Z343 lasAs a Eú3S OoED zx3s 3D93 HAD13S ZDEA tlSl;lou ZA;A 1MWVIJ Zdzú b.lSSIWVi 40OZ 113SWVU a8: ZUdWV8 L0za Oedwvs ZOL.: OWya 89ZL 1 d3nd VE;.-d W18IUd 16 N33Od B80O DOOOON Ve u8ss2w 80z4 a6A3M EOOD UOèM3 3ZZA d4 UMIND ZE;3 MSN8 43e 01.v 990D 8BDOV 9ZL NDVIDV Ed;: 3H0EWAS A8 3.LaOS 310av1 01D..S5 Lfl r..- CXJ Il 3OVd CgZOOO# TB-HeV-41 03SAS 03àd 03UdZ oaiJ 1LOU3 zL0o OajWVU'Bdú4J cuffVU GOZA IDNId SBAd k1Vu beed LSWVYU18L1 OOWV8 ZZA 91SiWVd VZ'J AUIN3USn 939A X35 ZD9J OnAdA3M EL9A cJV CG9A IISIWOd ZA&Cú tdZ 3aSú Idd3 CàEbCA W3W.ON 8bCà lISXN 9ZCJ E135 OOED WDVIDV ZJOD N310d SGo3 SU1SO8EM 0103 MiNBI 61bb uOO81id ú 87 d 6 r1smnwo IOSAS dAl3s IAOD ZONId OWVd cx3s !OOqOO VIDV tlltWVèi 189lnd lA8XN OIMD0O8 ISVIDV AD OMSz lOdUZ A3=ld AGAJ C;ZDJd t0LA obaJ ú0ú4 LA UlA 89ú4 4o4 t09.i 9z9d 3E94 ZG4 03S4 aoc. 1'4 VECa bZCJ o'?& GOD tCOD lG05 a c C3SAS CESAS HAD13S Ud3WVdi DNI 1ld WVd tBSlSMW kivu lOOdI ú.1S1L00V E1513GtV ISIVIA Edz Ziti:lve ZW3WN Z,:1J3kà 8MSIO tJOMSI a Mdle.3dd M'N6 c3A 8bO úa 3 C úDCd 6DLd IVúA E4Ad SI Ld CIA9d 309.d I V9A 699i C09J Z3003 0ú03 VIA à30 OOID OCIOD OOOD 1 0 235AS z3id NIA3M AOG.0 8011NOW 10eA tu3WVd V3ZL 513d CDZa 1J3SWVd aZ-J tWVd 9/-14 iMbiS 8EZ2 OlSlWVd td5a IX3S iD9; N033d 689 1ISI3OIV c9i;- ZlSlWJOd 3AL.2 ZdZ t0a; t.lMWVd IV IW3WN 4J;b COObON VZSJ OdHD 03Dr 17.11 00t'D NDVI3V ED3 l00aV 9903 SdaV ZbtCD, dHd 08l 0WD8I lB IHdld 61 OddZ OC SS3d0CV AB 031t0S 33EV1 '0EI:..5e th Ofl Co -r. Cu SOURCE FILE: MONITOR SO'.RCE FILE: rlOrNA SOURCE FILE: r10orJ SOURCE FILE: MOrl9C SOURCE FILE: riONVECT O Co L0 LM PIDlITOR PSUEDO DMA CLOCK -. NEXT OBUJECT FILE NAME F7FF: 2 F7FF: 3 * F7FF: 4 * F7FF. 60 5 RETI FeOO:E9 01 6 Fao2: F0 FB 7 F804:E9 Oi 8 F806:FO F7 9 F30a:E9 01 t10 F30A:FO F3 11 F8eC E9 01 12 F30SOE. FO EF 13 F810 E9 O t4 F312:FO EB 15 Fat4:E9 01 t16 F816:FO E7 17 Fats:E9 01 18 FSIA:FO E3 19 FEIC:E9 01 20 Fa1E:FO DF 21 F820:E9 0i 2' F922:FO DB 23 Fs24:E9 OQ 24 F826-FO D7 25 Fe28'E9 01 26 FB2A'FO D3 27 Fs2C E9 0i 28 F32E:FO CF 29 F83O:E9 01 30 F332 F0 CD 31 Fe34:E9 OI 32 F336.FO C7 33 Fs38sE9 01 34 F33A:FO C3 35 F3_C:E9 01 36 F33EFO 13F 37 F340:E9 01 38 F842:FO BB 39 F844:E9 Oi 40 F846: F0 B7 41 F-88:E9 ot 42 FSAA:FO B3 43 Fe4C:E9 01 44 F34E:FO AF 45 FO30:E9 oi 46 F352 FO AD 47 Fe34'E9 Oi 48 F8a6 FO A7 49 Fe88'Es Oi 50 F3JA FO A3 51 Fe8C E9 01 52 F35E.FO 9F 53 FsgO E9 01 54 - rn =m.-n Mn IS MPON. O0J ORO IF7FF RTS SUC BEO SBC DEo SBC BEO SBC DEO S5C DEG SBC DEo SBC BEG SBC UEO SBC OEO SBC DEO SBC DEG SBC DEO SBC UEG SBC DEG SBC DEG SBC DEO SBC DEG SUC BEO SBC UEG SBC DEO sec UEO ssc SUC DEO SaC BEG SBC UEO SBC DEG #1 RLTt #1 RET1 RI-T I #t RETI #I RETI h1 RETI #1 RETI #l PET i #1 PETI #1 RET 1 #1 RETI #1 RETi # 1 hEI PETI #i PET1 #1 RETt RET1 #1 PETI #1 RETI #1 RET 1 #1 PETI #h uT' #1 RTt hF-i t RETI Ml PT1 RET I ro Co N0 VI 17-APR-BI #000234 PAGE 1 F36.FO 97 57 BEO RETt F3b8aE9 Oi 59 SEC *1 Fe5A F0 93 59 BEa RETI *FE6C:E9 01 60 SBC #1 F85E:F0 eF 61 BEE REIi F970 E9 ol 62 SBC at F972:FO eB 63 BEG RET1 F374'E9 01 64 SDC #1 F376:FO 87 65 BE0 REI F38. E9 01 66 SDC #1 Fe-A:FO 93 67 BEE rEu F37C:E9 01 68 SDC #1 F97E:F0 02 69 BEG REr3 F890'E9 01 70 SBC #1 Fee2:FO 7C 71 RET3 BEG RET2 F3984.E9 01 72 SDC #1 Fes6:F0 78 73 BEG RET2 FSB. E9 oQ 74 SDC #1 FaeA:FO 74 75 BEE RET2 FSBC:E9 01 76 SoC #1 FeeE:F0 70 77 BEG RtT2 Fg0:E9 0i 78 SDC #1 FS92:FO 6C 79 BEE RET2 F'?4:E9 O1 80 SBC #1 F396:FO 68 s1 BEG RE12 FS8:E9 01 82 SoC #1 F99A:FO 64 93 BEG RET2 F3SC:E9 01 94 SBC #1 F39E:FO 60 85 BE0 RET2 F'3AO;E9 01.,6 ue # F8A:E9 Qi 986 SBC *1 #t F3A2:FO 5C 987 EEG RET2 F34.E9 01 88 SuC M1 F9A6:FO 58 89 DEE RET2 F3:S9'E9 O 90 SDC #1 FAA:F0 54 91 BEG RET2 FIAC. E9 01 92 SDC #1 FeZE:FO 50 93 BEG RET2 F3aDo:E9 Ot 94 SDC *1 F9E2:FO 4C 95 BEG RE12 FOD4.E9 01 96 SOC e1 FsE6:FO 48 97 BEE RET2 99,8:E9 01 98 SBC *1 gEA'F0 44 99 BEE RET2 eaDC. Eoi 100 SDC #1 Pa'E:F0 40 tOi BEG RET2 {.* E9 Ot 102 SUC #l F92 F0 3C 103 BEE RETr2 P3'4:E9 OQ 104 SuC mi FSC:;FO 38 105 BEG RE12 FC8s E9 01 106 SOC *1 3CA FO 34 107 BEE Rtr2 O F9CC E9 01 108 SoC #1 F3CE:F0 30 t109 BEQ RE12 e2v0 E9 01 110 SoC 4i N F3C2:FO 2C itl BEG rET2. F3D4.E9 01 112 SDC Nl 17-APR-01 #000254 PAGE 2 PSUEDO MA CLOCK t'O'JITOR PSUEDO DMA BLOCK F8D6. F0 28 113 DEO RET2 F9D8.E9 01 114 SBC #1 FSDA:FO 24 115 BEO RtT2 FSDC:E9 01 116 SBC *1 FSDE:FO 20 117 BEG RET2 FSEO:E9 01 118 SBC #1 FSE2:FO IC 119 DEO RET2 F9-4:E9 01 120 SBC #i F3E6.FO 18 121 BEO RET2 F3ES:E9 01 122 SBC *1 E8-A:FO 14 123 DEO PET2 FSEC:E9 01 124 SBC "1 FSEE.FO 10 125 BEO RET2 F9FO:E9 01 126 SBC *1 FSF2FO OC 127 SEO PET2 FSF4:E9 01 128 SBC *1 FBF6'FO 08 129 UEO RET2 FSFB:E9 01 130 SBC #1 FSFA:FO 04 131 BEO RETZ FBFC:E9 O1 132 SBC *1 F3FE:FO 00 133 DEO RET2 F900:60 134 RET2 RTS F901: 13 CHN 15N49A !- oO Jx 17-APR-91 #000254 PACE b SARA MONITOR 2 * 4 SCRNLOC * 6 LMARQIN 7 RMARGIN 8 WINTOP 9 WINOTM' CH Il CV 12 BAS4L 13 EAS4H 14 3ASSL BASSH 16 T3AS4L 17 TBAS4H 18 TBAS8L 19 TBASSH FORGND 21 OKCND 22 MODES 23 CURSOR 24 STACK PROMPT 26 TEMPX 27 TEMPY 28 CSWL 29 CSWH KSWL 31 KSWH 32 PCL 33 PCH 34 AIL AIH 36 A2L 37 A2H 38 A3L 39 A3H A4L 41 A4H 42 STATE 43 YSAV 44 IPruF TEMP 46 MASK 47 * 48 KOD 49 IKDDSTP6 * 51 USERADR 52 I3LOCKIO 53 RECON 54 D AGfN INEtUFLEN 56 I[SLOT 57 IBDRVN 17-APR-81 *#000254 PAGE 4 EGU EGU EGU EGU EGU EGU EGU EQU EGU EOU Eau EQU EGU EQU EGU EGU EaU EQU EGU EGU EGU EGU EGU EOU EGU EGOU EGOU EQU EGU EGU EGU EOU EGU EOU EGU EGU Eau EOU EaU EGU EOU EaU EQU EaU EOU EGU Eau EOU EGU EQU EOU s58 SCRNLOC SCRNLOC+1 SCRNLOC+2 SCRNLOC+3 SCRNLOC+4 SCRNLOC+5 SCRNLOC+6 SCRNLOC+7 SCRNLOC+S SCRNLOC+9 SCRNLOC * A SCRNLOC+$B SCRNLOC+$C SCRNLOC+tD SCRNLOC+$E SCRNLOC+$F SCRNLOC+ 0o SCRNLOC+*11 I SCRNLOC+S 12 SCPRNLOC+13 SCRNLOC+$ 14 SCPNLOC+S 15 SCRNLOC+$16 SCRPNLOC+Ot7 SCRNLOC+S 19 SCRNLOC+'19 SCRNLOC+* IA SCRNLOC+S 1 SCRNLOC+I IC AIL+I AIL+2 AIL+3 AIL+4 AIL+5 ALL+6 A1L+7 AIL+B AIL+9 AiL+SA AIL+IC CURSOR SCOOO t3F8 lF479 SF689 $F4EE *50 3eL 3L1 1135LOT+t IArlD $D AS OF 12/20/79 ONLY 80 3YTES ($3AO-3EF) FN01: FIFOI: F901: 00fS; F901' 0058: 0059: A: O0f: ooSD: OD5D: ri. 5E' ,0 02D60, 0061' C062' C063: 0064: : 0066: 0067: 0068: 0069: 006A: OObD: : C06E: OO6F: : 0071: 0072: 0073: 0074: : 0076: 0077: 0079: 0079: 007A: 0073: 007C: 007D: 007E: : 0069: F901: fOI: C 000 COlO Fsol:, F'?O 1: 03F9: F479: F689 F4EE: : 00?2 Co U0 u> ri19qA 00f, 5: O0a7: F C 1: F9C 1t: F?.1 l:A F901; DA F902: 86 6A FI;04: F?74: D8 F?05: 20 3A FC PFD8:A6 6A FqOA 9A FQ,-8: A9 0F FCOD:85 6B FS'F:20 0S FC F? 2:20 67 F9 F915:20 2C F9 F91t8: 84 7D F91A:AO 11 F9IC: 88 F?1D:30 ES F7IF:D9 6C F9 F922:DO F8 F924:20 5E F9 F927:A4 7D F?29:4C 15 F9 F92C: F92C:A2 00 F92E:e86 76 F930: 86 77 F922: 1 7E F934: Ce F935: 49 BO F?37:C9 OA F939:90 06 FD: 69 89 F93D:C9 FA F9:F: 9O 2A F94I:A2 03 F943:OA F144: OA F945: OA F?46:OA F947:OA F948: 26 76 F9?A:26 77 F?4C: CA F4D0 10 F8 F9JF:A5 7C F91t:DO 06 F953 D5 77 F955:95 75 F:57' 5 79 c59 EG Fq!A FO F3 fC'DO D4 FP;E. SARA MONITOR 58 IBBUFP 59 IBCMD * 61 ENTRY 64 * MON 67 MONZ 7l 72 SCAN 73 NXTINP 76 CMDSRCH si81 a3 * 84 GETNUM 87 NXTCHR DIGIT NXTBI[T NXTBAS NXTBS2 1t1 113 * EQU EGU EGU TSX STX CLO JSR LDX TXS LDA STA JSR JSR JSR STY LDY DEY DMI CMP BNE JSR LDY JMP LDX STX STX LDA INY EOR CMP BCC ADC CMP BCC LDX ASL ASL ASL ASL ASL ROL ROL DEX BPL LDA BNE L A STA STA I NX BEG BNE I SLOT+4 IDSLOT+6 STACK DELL STACK #$DF PROMPT GETLNZ ZSTATE GETNUM YSAV #$11 MON CMDTAB, Y CtDSRCH TOSUB YSAV NXTINP A21 A.H (INBUF), Y #$DO lê *00 #JA DIGIT # 188 *$FA DIGRET #3 A A A A A AVL A2H NXTBIT STATE *N TB S2 A.H,X AIH, X A3H, X tIXTODAS N 17-APR-81 1#000254 PAGE J;MUST 8E HEX MODE RESTORE STACK TO ORIGINAL LOCATION iPROMPT (APPLE) FOR SARA MONITOR iGET A LINE OF INPUT SEI REGULAR SCAN /ATTEMPT TO READ HEX BYTE STORE CURRENT INPUT POINTER it7 COMMANDS sOIVE UP IF UNRECOGNIZABLE FOUND? NO KEEP LOOK ING. PERFORM FUNCTION GET NEXT POINTER DO NEXT CONMAND CLEAR A2 BUMP INDFX FOR NEXT TIME. i TEST FOR DIGIT iSAVE IT IF 1-9 TEST FOR HEX A-F SHIFT HEX DIGITS INTO A2 SHIFTED ALL YET? OIF ZERO THEN COPY TO AI.3 tO CO Co -'j un rit.s.9A SARA rloNITOR F91E A9 FA FbO 48 Fq1t:B9 7C F9 F964 48 F965: A5 7C F967:AO 0o F69:84 7C i-9OD 60 F?6C: Fq6C: F96C:00 F9sD C3 F96E:0G6 FsoF: EB F9sO'EE F971:EF F972:FO F973:Ft F974:99 F975:9B F976 AO F977:;93 F97s:A7 F9/9: AS F97A: 95 F97B:C6 F97C: F P7C: F97C:7C FD:7A Fs7E.2B FF:DF F9F0:77 FBI:3A F42: C2 n3 18 F.64 A3 Fs85:06 F996:0G F987: D7 F98: B7 F9s9; 99 F96A 90 F9eD:25 F BC: F"BC: F9CC:E6 7A FBE.DO 02 FEO:E6 7B F9m2 E6 74 f99?4 DO Os F906-E6 75 F9q' 3S F': FO 10 FD AS 74 F;D 829 114 TOSUD 11t5 11S 119 ZSTATE 121 DIGRET 122 * 123 CMDTAB t125 * 141 CMDVEC 158 * t159s * NXTA4 163 NXTAI t167 t16 TrSTAI LDA PHA LDA PHA LDA LDY STY RTS EGU DFB DFB DFB OFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB DFB EGU DFB DFB DFR DFD DFB DFB DFB DFD DFB DFD DFB DFD DFB DFO DFB DFB INC IBHE INC 1INC SNE INC SEC DEG LDA SEC # CIMnVEC, Y STATE #0 STATE *0 *3 $6 *EB SEE $Et- tFO tFI l AO t93 $A7 $AS tC6 00-I JU."!P-l tIOVE-1 READ-1 U5ER-IVRFY-I RTE-1 REPEAT-1 SPCE-t ASCI I-I ASCIIO-1 SETMODE-I SETMODE-1 SEP-1 DEST-t CRttON-1 A4L tXTAI A4H AtL TSTAI AIH RETAI AIL 17-APR-81 #000254 PAGE 6 PUSH ADDRESS OR FUNCTION AND RETURN TO IT. I PASS MODE VIA ACC. iRESET STATE OF SCAN =o -O (CALL) SUBROUTINE J =JUMP (CONT) PROGRAM I M MOVE MEMORY è R -READ DISK BLOCK U -USER FUNCTION V -VERIFY MEMORY BLOCKS W -WRITE DISK BLOCK X -REPEAT LINE OF COMMANDS sP -SPACE (BYTE SEPARATOR) " -ASCII (HI BIT ON) ASCII (HI BIT OFF) -SET STORE MODE -RANGE SEPARATOR = COMMAND SEPARATOR C DEST/SOURCE SEPARATOR CR -CARRAGE RETURN DBUMP 16 BIT POINTERS BUMP AI IN CASE OF ROLL OVER TEST AI.A2 tr% -t- oe "'4 %A MoC:9A SARA MONITOR FqE:E5 76 F'O: 35 80 FmA2:A5 75 F9A4 E5 77 FA6:05 60 F9A8:DO Ol F9AA: 18 F9AbB:60 F9AC: F9AC: F94C:48 F9AD: 4A FAE:4A F9AF: 4A F.DO:4A F9.l:20 B7 F9 Fn4:68 F9D5:29 OF F9D7:09 DO F9D9:C9 DA F93B: 90 02 F93D:69 06 F9DF:4C 25 FC F9C2: FQC2:20O AC F9 F9C5: F9':5-A9 BA F9C7: DO F6 FqC9: F9C9:A9 07 F9'CB:24 68 FQCD: 50 02 F3CF:A9 OF F9DI.95 69 FQD3:60 F"TD4: rMD4: eA FID5: FO 07 F9D7: B5 74 F9D9: 95 72 F9'EB:CA FDC: 10 F9 F9DE:60 F9DF: FqDF:95 69 F9tl:A4 7D FE3-1B 7E F9E5.E6 7D F7E7-AO 00 F9E9:C9 A2 FIEB:DO 05 F9ED A5 69 =9EF: 10O 20 FFI S 0 F';2: C9 A7 F-F4 DO 05 177 RETAt 178 * 179 * PRBYTE tez t83 I84 187 PRHEX 186 PRHEXZ 192 PRHEX2 193 * 194 PRBYCOL S * 196 PRCOLON 198 * 199 TST80WID O 203 SVMASK 205 * 206 AIPC 208 ALPC1 212 OLDPC 213 * 214 ASCIII 215 ASC112 224 ASCI[3 SBC STA LDA SBC ORA 8NE CLC RTS PHA LSR LSR LSR LSR JSR PLA AND ORA CMP BCC ADC diMP APL TEtMP AIH A2H TEMP REIAI A A A A PRHEXZ #$OF #SfO *#SBA PRHEX2 #$*6 COUT IIF At LESS THAN OR EQUAL TO A2 ITHEN CARRY CLEAR ON RETURN. ISAVE LOW NIEBLE SHIFT HI NIODLE TO PRINT. STRIP MI NICDLE MAKE IT NUMERIC sIS IT >'9' MAKE IT 'A'-'F JSR PRBYTE LDA BNE LDA BIT BVC LDA STA RTS PRINT A COLON BRANCH ALWAYS #*BA PRHEX2 #7 IMODES SVNASK #-F MASK TXA BEG OLDPC LDA AtL,X STA PCL, X DEX ' RTS STA MASK LDY YS.V LDA (IMiBU INC YSAV LDY #0 Cl1P #$A2 SNE ASCII LOA MASK BPL BITON RTS CMP #$A7 ONE CRCHK i ANTICIPATE TESr' FOR 80 iTEST FOR NEW PC F), Y SAVE HI BIT STATUS ISOVE ASCII TO MEMORY OUMP FOR NEXT THING. I ASCI I ? i NOPE, CONTINUE. HE'S CHANCED MODES. i NO, HE'S DONE. iA5CII ' ? s rO, TEST FOR EOL. -le. N -4_ Co -1' lji 17-APR-81 #000254 PAGE M N,0 9A SARA MONITOR F'F6 A5 69 *F9FS: 30 1B F9FA: 60 PFB9:C9 8D F9FD:FO 07 F9FF:25 69 FAO1.20 AF FA F404:DO DB F406 60 FA07- FA07. 38 F408 90 F-.9 18 F40A- AA FAO D'6 7C FAOD: 49 DA FACF. DO 7D FAIl:A9 FF FA13 DO CA FAIS-A9 7F FAI7:10 C6 F419:2C 00 CO FAlC: IO 03 FA1E.4C OF FD FA21 68 FA2. 68 FA23:4C 12 F9 FA26 FA26: FA&6:20 AO FA F429: 4C 08 F9 FA2C: FA2C 20 9B F9 FAZF:20 50 FA31:D1 74 FA33:91 7A FA3:O20 8C F9 FAD38: 90 F7 FA3A: 60 FA3:D. FA3D: FA3D: 20 90 F9 FA3E; 00 4E FALO: BI 74 FA42: DI 7A FA44:FO 06 FA16:20 52 FA FA49. 20 EF FC FA4C:20 8C F9 FA4F:90 EF FA51: 60 FA52: FA52. A5 7B FA54;20 AC F9 FA57 A5 7A FA5. 20 C2 F9 229 CRCHK 234 ASCDONE 235 * 236 ASCII 238 ASCIIO 239 CKMDE 243 BITON 245 fITOFF 247 REPEAT 250 REPEATI 253 * 254 * 255 CRMON 257 * 258 MOVE 260 MOVNXT 265 * 266 * 267 VRFY 269 VRFYI 274 VRFY2 277 * 278 MISMATCH LDA OMI RTS CMP SEO AND JSR BNE RTS SEC DFO CLC TAX STX EOR BNE LDA BCS LDA DPL BIT BPL JMP PLA PLA JIP MASK DITOFF *18D ASCDONE MASK STORI ASCII2 $90 STATE #$DA ERROR #*FF ASCII * 7F ASCIII OD RbPEATI IKEYIN iCHANGE MODES. END OF LINE? IYES, FINISHED ICO STORE IT! I DO NEXT. i INDICATE HI ON. (DCC - NEVER TAKEN) INDICATE HI OFF iSAVE STATE *RETAIN STATE ARE WE IN STORE MODE? SET HI BIT UNMASKED MASK HI BIT I ALWAYS IREPEAT UNTIL KEYPRESS ICLEAN UP STACK SCAN JSR BLt JMP O;IZ JSR TSTAt BCS ERROR LDA (AIL).Y STA (A4L),Y JSR NXTA4 BCC MOVNXT RTS JSR TSTAI OCS ERROR LDA (AtL),Y CMP (A4L>),Y BEO VRFY2 JSR MISMATCH JSR CROUT JSR NXTA4 OCC VRFYI RTS LDA A4H JSR PRBYTE LDA A4L JSR PRDYCOL DON'T MOVE ANYTHINg IF ILLEGAL INPUT. IMOVE A DYTE 3PUMP BOTH AI AND A4 ALL DONE WITH MOVE sTEST VALID RANGE iCOMPARE BYTE FOR BYTE iMATCH? lYES. DO NEXT. sPRINT DOTH BYTES QOTO NEWLINE iDUMP ROTH AI AN4D A4. JVERIFY DONE. sPRINT ADDRESS OF A4 OUTPUT A COLON FOR SEPARATOR rO CO N OS c> " %0 LM 17-APR-91 #000254 PAGE EP 17-APR-Si *000254 PAOE V FA3C:BI 7A F5E'20 70 FA F461:20 73 FA F464:AS 75 FAb6'20 AC F9 FA69:A5 74 FA:;20O C2 F9 P46E:B1 74 FA70:20 AC F9 FA73:A9 AO FA75:4C 25 FC FA7B: FA78:4C Fe 03 FA7B: FA7D:68 FA7C:68 FA7D:20 D4 F9 FABO:6C 72 00 FA83: FAs3t FA33:20 AC F9 FA86:A9 Al F4A8: 20 25 FC FA'DO20 07 FD FA3E.4C 04 F9 FA' i FA-l'A5 76 F493. 5 7A FA'5.A5 77 FA97:85 7B FA99:60 FAQA. PAA'20 A4 FA FAD. 98 FA4E.FO ID FAAO. FAO. C6 70 FAA2 FO 45 FAA4 CA F445: DO 16 FAA7:C9 BA F4AA9:DO 4B FAAD: 85 7C FA4AD:A5 76 F'%F:91 78 FAFI:E6 76 FAD3:DO 02 FA3S:E6 79 FAZ7 60 FAESe. FAR8:A4 7D FADA'68 FADD'D1 7E FAD. 85 7C FADF:60 FACO: 2z4 PRINTAI 2a6 2z7 29 PRAIBYTE 290 PRBYTSP 291 PRSPC 293 * 294 USER 295 * 296 JUMP 298 CO 300 * 301 RWERROR 305 ERROR2 306 ERROR 307 * 308 DEST 314 SEP 317 * 318 BLI 320 SPCE 324 STOR 326 STORI 330 DUMMY 331 * 332 SETMODE 335 SETMDZ 337 * LDA JSR JSR LDA JSR LDA JSR LDA JSR LDA JMP JMP PLA PLA JSR JMP EGU JSR LDA JSR JSR JMP LDA STA LDA STA RTS JSR TYA BEG DEC 13E DEX BNE CMP BNE STA LDA STA INC DNE INC RTS LDY DEY LDA STA RTS (A4L), Y PRBYTSP PRSPC AIH PRDYTE AtL PRBYCOL (AIL),Y PRDYTE #SAO COUT USERADR AIPC (PCL) PRDYTE #SAtI CO'JT P.OSTOP MOI AVL A4L A2H A H SPCE S'TMDZ YSAV CUlIPS SETMDZ #'BA TSTDUMP STATE A2L (A3L), Y A3L DU:IMY A3H YSAV ( [MUUF), 'y STATE AfAND THE DATA... PRINT THE BYTE AND A SPACE ILFAD WITH A SPACE. *OUTPUT ADDRESS AI iSEPARATE WITH A COLEN *IPRINT BYTE POINTED TO DY AI jPRINT A SPACE IEND VIA OUTPUT ROUTINE. iLEAVE STACK WITH NOTHIN' ON IT. ISTUFF PROGRAM COUNTER jJUMP TO USER PROC. IPRINT ERROR NUMBER iPRINT THE OFFENDER FOLLOWED BY A "!n IOUTPUT A CARRAGE RE1URN (NO STOPLST) iCOPY A2 TO A4 FOR DESTINATIOtN OP. iSEPARATOR. TEST STORE, MODE OR DUMP * ZERO MODE. IDRANCH ALWAYS TEST FOR NO LINE. IF NO LINE, GIVEM A ROW OF DYTES I TEST IF AFTER ANOTHER SPACE STORE MODE? igEEP IT IN STORE STATE. iGET BYTE TO BE STORED. I PUT IT IN MEMORY. iBUMP POINTER AISO USED FOR '/' TO CLEAR MODE USE INPUT CHARACTER sTO SET MODE. t CO -, co uD SARA MONITOR SARA MONITOR FACO:A9 01 FAC2:2C FAC3:A9 02 FAC5 85 87 FAC7:AS 74 FAC9:85 a5 FACB:A5 75 FACD:85 86 FACF:A6 7B FADI:AS 7A FAD3:78 FAD4,20 79 F4 FAn7: 0 AA mArj9:E6 7A FADD:DO 02 FADD:E6 7E FADF:E6 75 FAEI:E6 75 FAE3:20 9B F9 FAE6:90 DF FAE: 60 FAE9: FAE9: FAE9: FAE9:AS 75 FAED:85 77 FAED:20 C9 F9 FAFO:O5 74 FAF2:85 76 FAF4;DO 06 FAF6: FAF6 4A FAF7.BO 95 FAF9 20 Cg F9 FAmC:A5 74 FAFE:e5 7A FDO0:A5 75 FBa2:e5 78 F304:20 93 F9 F007:DO EE F009:20 61 FA F8CC:20 92 F9 FBOF:EO 10 F3tl:A5 74 FE13:25 69 FDIS:DO 05 F3t7:20 21 F6 F3IA:DO ED FEtC:20 6E FA F3tF:DO E8 FZ21: F921!A5 7A F023:85 74 F32S:A5 76 F027: B5 75 F029:20 73 FA 336 READ 340 WRTE 341 SAVCMD 342 RWLOOP 354 NOVER 359 * I DUMP8 * 9 TStDUMP ERRORI Il DUMP 12 DUMPO 18 DUMPI 19 DUMP2 26 DUMP3 26 * 29 DUMPASC LDA DFB LDA STA LDA STA LDA STA LDX LDA SEI JSR BCS INC BNE INC INC INC JSR BCC RTS CHN EQU LDA STA JSR ORA STA ONE LSR ECS JSR LDA STA LDA STA JSR OCS JSR JSR 3CS LDA AND ONE JSR ENE JSR 3NE LDA STA LDA STA JSR #1 t2C #2 IBCMD AIL IBBOUFP AIH IDDUFP+I1 A4H AIL GLOCKIO RWtRROR A4L NOVER A4iH AIH AIH TSTAI Rt:LOOP IMON9 AtH A2H TST0B0ID AIL APL DU-PO A ERROR TSTBOWID AIL A4L AIH A4H TSTAI ERRORI PRINTAI NXTAI 1 DUJMPASC AIL MASK OUiP3 DUMPASC D'J1PI PRAtBYTE DU:1P2 A4L AIL A-IH AIH PRSPC 17-APR-81 *000254 PAGE 10 iSEI DISK COMMAND TO READ IDUMMY OIT TO SKIP 2 BYTES aSET DISK COIMMAND TO WRITE iCOMMAND FORMAT IS BLOCKNUMBERCADDRESS.ENDADDRESS ISEND DLOCK NUNIBER VIA X & A iNO INTERUPTS WHILE IN MONITOR DO DISKO FEVER. aGIVE UP IF ERROR ENCOUNTERED DUMP BLOCK NUMBER 3DU1P RAM ADDRESS DY 512 BYTES sTEST FOR FINISHED. i NOT DONE. DO NEXT BLOCK OUTPUT I ROW OF BYTES egET WIIDTH IASK INTO ACC sBRANCH ALWAYS DUMP? SET FOR EITHER 80 OR 40 COLUNrlS iUSE A4 FOR ASCII DUPF sTEST FOR VALIO RANGE sPRINT ADDRESS AND FIRST BYTE tEND WITH ASCII TEST END OF LINE iFOR 40/80 COLUMN BRANCH ALWAYS IGO PRINr NEXT BYTE ANO A SPACE ALWAYS (ACC JUST PULLED AS $AO) sRESET TO BEOININQ OF LINE sPRINT AN EXTRA SPACE L, c> Qi tM3-4sa SARA MONITOR F'-C:AO O0 FD2E:DI 74 FD0O: 09 0 FD32; C9 AO Ft24:D0 02 F036:A9 AE F328: 20 25 FC FD3D: 20 8C F9 FD3E:DO 06 F2340:AS 74 FD42:25 69 FD44 DO Eh FBS6:4C EF FC F349: FB 49: Fat9: 38 FB4A:AD S3 CO FG0D: 80 04 F34F: F3BF:18 FD'O:AD 52 CO F353.A5 68 FB5. o09 40 F357: 30 02 F359:29 BF FOD5DS5 68 FDHD: 09 7F FD.F: 29 AO F361 5 66 F363: 20 02 FD55:A9 FO F367:95 67 F'3ú9: F= 39: AS 59 FDSD,:5 5C F3tD:A5 SA F36F:85 5D F371: Fa71:AS SC FD073:48 F374:A5 5D FD76: 48 F377:20 2t FB F-rA:20 aE FB B2D: A5 SE FD7F' 5 5C FC81:20 C9 FB FE=4:90 F4 FD9'6S FB867 A8 rF8E 68 FD09.95 5C FCiC DO 23 FCD!C DO 23 34 ASCI a38 ASC2 46 ASC3 47 * 48 * 49 * COLSO 53 * 54 COL40 56 SET8O SETSOA 66 SET8OS 67 * 68 CLSCRN 72 * 73 CLEOP 78 CLEOPI B0 ia" a6 aa LDY LDA ORA CMP DCS LDA JSR JSR 3CS LDA AND ONE JMP SEC LDA Ocs CLC LDA LDA ORA 3acs AND STA ORA AND STA BCS LDA STA LDA STA LDA SrA LDA PHA LDA PHA JSR JSR LDA STA JSR BCC PLA TAY PLA STA TYA eCS (AIL),Y 4 $80 " 3AO ASC2 #$AE COUT N>.TA4 ASC3 AIL MASK ASCX CROUT *C053 SET8O $C052 i'ODES 4#*40 SET8OA #418F MODES #47F #0AO FOROND SET8OB # SFO BKGND LMAROIN CH I IN4TOP CV cH CV SEICV CI. EOL LI1AROIN CH CURDOIN CLFOPI CH SETCV 17-APR-81 *000254 PAGE Il TO INDEX MEMORY INDIRECT I SET NORtlAL VIDEO TEST FOR CONTROL CHARACTERS ICit TO PRINT NON CONTROLS OTHERWISE PRINT A SPACE. sPUT IT OUT DUMP BOTH AI AND A4 I FINISHED. iTEST ENO OF LINE. i NOT DONE, PR INT NEXT INDICATE 80 COLUMNS DESIRED j GOTO 80 COLUMN MODE BRANCH ALWAYS INDICATE 40 COLUMNS DESIRED IGOTO 40 COLUMN MODE ASSUME 80 IANO BRANCH IF IT IS tgUT FIX FOR 40 IF NOT. s ISOLATE D1T 7 (BIT 7 SETS NORMAL/INVERSE) ACAIN ASSUMES 80 COLUMNS I IF NOT. SET FOR/9ACKGROUP4D COL.OR ISET CURSOR TO TOP LEFT OF WINDOI iNOW DROP INTO CLEAR END OF PAGE JSAVE CURRENT CURSOR POSITION * iCLEAR TO END OF FIRST LINC i COTO NEXT LINE IRESTORE CURSOR POSITION iGET OLD CV IN ACC AOAIN sBRANCH ALWAYs uz> r) o U'o "0 tît 17-APR-81 #000254 PAGE 12 FBE: A5 SC FDOO:4C 89 FC FDw3: FB93: C9 80 Fa95:90 65& FE37:C9 8D FDs9: DO 3A FsB9:20 SE FB FODE:20 C3 FB FBAt: 4C 02 FC FBA4 FBA4: FBA4: A45 5D F1A6:C6 50D FDAB: Cs SA FDAA: DO 02 FBAC A5 5B FDAE 38 FBAF: E9 O0 F801:95 5D FtD3: FB33: F933: AS 5D F35: t10 4E F30.7: FB27:246 F337: 24 68 FDD9: 70 02 FODB:E6 SC FBBD:E6 5C FO3F:A bS9C F3 Fi.AC 5C FotL: C5 59 FOc3: AS 58 FOCS 90 50 FEc7:e5 3C FDC.9: FOC9: FDC9: E6 5D FDCO: A5 5D FDCD: CS 50 FBCF:90 E2 FDDI:A5 5A F3r3:10 DC FBDS: FaDS:C9 88 FDD7: DO 5D FnD9: 24 68 F3CB: 70 02 FI[D: C6 5C FBDF: C6 3C FDEI: 30 Ob FDE3: A 5C :ES:CS 59 FDE7: 10o 3B FBE9:20 A4 FB FDEC AS 59 FDEE: 8S 5C CLEOL 92 * 93 CONTROI TSTCR 97 CARRAGI * 101 * 102 CURUP 107 CURUPI 109 SETCV BASCALI 111 CURDNI t112 1t4 * 11t CURIGH' t117 IIE RIGHTI t119 121 SETCHZ 123 SETCVH 124 *DROP * 126 CURDOWr t29 t31 1132 4 133 TSTBACI CURLEF' t38 LEFTeO t41 t143 LEFTUP LDA JMP CMP BCC CMP BNE JSR JSR iJMP r INTO NI K T CH CLEOLI *980 DISPLAYX #$SD TSTBACIK CLFOL sETCHZ NXTLIN LDA CV DEC CV CMP UINTOP BNE CURUPI LDA JIPIBTM SEC SBC *#St STA CV EGU * EQU LDA CV BPL BASCALCI BIT MODES DVS RIHTI INC CH INC CH LDA CH CMP RMARGIN LDA I ARGIN BCC CTPLRET STA CH CURDOWN FOR WRAP AROUND INC CV LDA CV CMP IlpNB'TM BCC CURON1 LDA WINTOP BCS EETCV CMP #*8s ONE TSTDELL DIT MODES BVS LEFTBO DEC CH DEC CH DMI LEFTUP LDA CH CMP LIIAROIN BPL CTRLRET JSR CUHUP LOA RMARGIN 9TA CH CLEAR To END OF LINE FIRST IF INVERSE IF CARRAGE RETURN THEN NEW LINE. a FIRST CLEAR TO THE END OF THIS LINE iRESET CURSOR AND OOTO NEXT LIlE (CARRY IS SET) THEN GOTO THE NEXT LINE. TEST FOR TOP OF SCREEM IAI4TICIPATE 'NOT' TOP i IT'S NOT TOP, CONTINUE. 14,RAP AROUND TO BOTTOM j DCCREMENT BY ONE IJ$AVE NEW VERTICAL LINE GFT VALUES FOR FIRST PAGE ($400) ALWAYS TEST FOR 80 OR 40 BUUMP CUROSR HORIZONTAL TEST FOR NEW LINE IJUST IN CASE WE HAVE. iCURSOR AT START OF NEXT LINE MOVE CURSOR DOWN ONE LINE sANTICIPATE NOT BOTTOM i TEST FOR DOTTOM jI BRANCH ALWAYS BACKSPACE? TEST FOR FORTY OR EIGHTY MODE J TEST FOR WRAP AROUND SAVE NEW CURSOR POSIfION. t IN r)' ru CD UD LM SARA MONITOR L C t1.3N9 S SARA MONITOR FBGO: DO E7 F3F2: F592:C9 AO FDF4:90 9D FOF6: 24 68 FDFS: 30 02 FDFA:29 7F F3FC:20 9D FC FEFF: FgeF:20 B7 FB F;02:30 57 FC04 60 FC05: FC05: G8 FC06:48 FC07:4A FC08. 29 03 FCOA*09 04 FCOC:85 5F FCOE:49 OC FCIO: B5 61 F512: 68 FCt13:29 19 FCI 5: O 02 FC17:69 7F FC196BS 5E FC1B: OA FCIC. OA FCtD:05 5E FCIF B5 5E FC21:85 60 FC23: 28 FC24: 60 FC25- FC.5 48 FC26:84 6D F28 86 6C FC-A:20 33 FC FC2D:A4 6D FC-F:A6 6C FC31:68 FC32:60 FC33: FC33:6C 6E O0 FC26: FC&D6:C9 87 FC 8 DO t 8 FC'A: F53A'A2 10 FC.C:BA FC0D A8 F,'E:2C D8 FF FC-1: FO F0 rC-3.2C 08 FF FC46. DO FD FC48 e8 147 * 148 COUT2 153 DISPLAYX 154 * INCHORZ 156 NXTLIN t157 158 * '9 BASCALCI 171 OSCLC2 178 CTRLRET 179 * COUT 188 * 189 COUT1 * 191 TSTBELL 193 * 194 BELL 196 BELLI 197 BELL2 199 DELL3 ONE CMP DCC BIT OMI ANDO JSR JSR 3CS RTS PHP PHA LSR AND ORA STA EOR STA PLA AND BCC ADC STA ASL ASL ORA STA STA PLP RT9 PHA STY STX JSR LDY LDX PLA RTS CUHLEFT #$AO0 COóJTROL MODES DISPLAYX * #7F DISPLAY CUKIGHT SCROLL A #103 #104 BA94H #$C DAS8H *#18 DSCLC2 #$7F BAS4L A A 13 AS 4L BA94L BAS8L Ttl;1Py TEPIPX COUT 1 TEMIPY TEt1PX iJr1P ( C SWL) CMP #1987 B3NE LN- 0 LDX TXA TAY BIT BEG BIT BrME DEY 17-APR-81 #000254 PACE 13 BRAN'H ALWAYS I IS IT CONTROL CHARACTER *IrEST FOR INVERSE NO PUT IT OUT ISTRIP HI BIT iMOVE CURSOR RIOHT I IT'S BOrTOM, RESET CH-O AND SCROLL IRESET CH ONLY CAI C BASE ADR IN BAS4L,H FOR CIVENI LINE NO. à OC-LINE NO. i ARG-OOOABCDE, GENERATE BAS4H-OOOOOI1CD ANO BAS4L=EABABOOO ISAME FOR PACE 2 SAVE CHARACTER NORMALLY COUTI i BELL? I NO TEST FOR FORrM FEED. #*10 FF D8 OFLL2 $FFD8 JFrLL3 ro -J Co -u U1 úO 1&1 1 NO,:9D SARA NONITOR FC49-DO F3 FC-D: 2C 30 CO FC-IE: E FC4F:DO EC FC51: 60 FC52: FC52:C9 8A FC54:DO CE FC'6: 20 C9 FB FCf59:90 C9 FC5D. F.c 't A5 SA FCD- 48 FC!E:O20 DB FB FC1: A2 03 FC63:85 SE FC65:95 62 FC67:CA FC68:-10 F9 FC6A: 68 FC6D; 18 FC5C:69 I01 FCE:C5 5D FC0O.DO IS FC72: 48 FC-3:20 81 FB FC76: AS 59 FC78: 4A FC79' A8 FC7A: 88 FC7D:30 E4 FC7D:31 SE FCF:91 62 FCBI:DI 60 FC83:91 64 FC85:90 F3 tC27:A5 58 FCS9:4A FCEA: A8 FCSD:DO 04 FCZD:AS 66 FCeF:91 SE FC9t:AS 67 FC:3:91 60 FC95: C8 FC96:98 FC:7:OA FC"98 CS 59 FCZA 90 ED FC9C 60 FCOD; FC'0D:24 68 Fr':F 70 OC FCAI 46 SC FCA3:06 SC FC: s5 20 AD FC 207 * 208 LNFD 212 * 213 SCROLL 216 SCRL1 217 SCRL2 231 SCRL3 238 LASTLN 239 CLEOLi 244 CLEOL2 252 * 253 DISPLAY 2S5 DNE BIT INX BNE RTS Clip ODNE JSR Dcc LDA PHA JSR LDX LDA STA DEX BPL PLA CLC ADC CMP 3CS PHA JSR LDA LSR TAY DEY BDMI LOA STA LDA STA BCC LDA LSR TAY DCs LDA STA LDA STA INY TYA ASL CMP DCC RTS BIT DVS LSR ASL JSR BEI L2 *CO30 DFLLI d$* SA #8A CTRLRET CUDO',JN CTRLRET WIINTOP StTCV BAS4L,X TB4AS4LX SCRL2 #1 HINSIBTM LASTLN SETCV R1.^RGIN A SCRLI (BAS4L),Y (TDAS4L), Y (BASSL), Y (TOASSL), Y SCRL3 t MAROIN A CLEOL2 F ODóGND (SAS4L),Y BKOND ( DASSL) Y A M4RR IN Cl EOLI MODES DSPL8O CH CH DOSL80 LINE FEED? MOVE CURSOR DOWN A LINE IBRANCH IF NO SCROLL NECESSARY. ISTART WITH TOP LIME. ISAVE IT FOR NOW IGET BASCALC FOR THIS LINE IMOVE CURRENT DASCALC AS DESTINATION I(TEMPORARY BASE ADDR.) IGET DESTINATION LINE iCALCULATE SOURCE LINE. IS IT THE LAST LINE? YES, CLEAR IT. iSAVE AS NEXT DESTINATION LINE iCET BASE ADDR FOR SOURCE LINE MOVE SOURCE TO DESTINATION iDIVIDE BY 2 DONE YET? YES, DO NEXT LINC. IMOVE BOTH PAGES i BRANCH ALWAYS JBLANK FILL THE LAST LINE. DIVIDE BY 2 I;NORNALLY A SPACE) z (IF 80 COLUIINS, ALSO A SPACE) I TEST FOR END OF LINE. JULT BY 2 AGAIN ICONTINUE IF MORE TO DO. ALL DONE. & TEST FOR 40 OR 80 STORE THE SINGLE CHARACTER AND RETURN INSURE PROPER 40 COLUMN DISPLAY BY DROPPINQ DIT O iDISPLAY IN $400 PAGE. LO r'> ul 17-APR-91 #000254 PAGE ?14 !j0 19B SARA MONITOR FC-8:AS 67 FCAA:91t 60 FCAC: 60 FCAD: FCAD. 48 FCAE: AS 5C rC.O: 4A FCB1: AS FCS2:68 FCiZ3.0o F5 FCZ5. 91 5E FC37: 60 FC ZS8: FCZ8:21 7E FCDA: 20 25 FC FCDD. C9 88 FCSF:FO tD FCC: C9 98 FCC3:FO 08 FCC5: E6 80 FCC7:AS 80 FCC9:C9 50 FCCB D00 17 FCCD A9 DC FCCF: 20 25 FC FCD2:.20 EF FC FrV5. FCG5:A5 6B FCD7 20 25 FC FC'DA:AO 01 FCDC. 94 80 F:CE* A4 80 FEO FO F3 FE2 C6 80 FE4 ZO 60 FD FCE7 A4 80 FCE9. 91 7E FCEB: C9 8D FCED. DO C9 FCEF: F EF:2C 00 CO F^F2-10 13 FC-F4 20 2E FD F-F7 C9 AO FCF9 F0 07 FCFB C9 80 FCFD DO 08 FC:F 4C OB FA FD:'2. AD 00 CO FC'5 tO10 FB FDO7 A9 gD FGO9 4C 25 FC FC,C* CD.',C 6C 70 00 FD F F3:F A? 7F 259 DSPBKGNn 261 * 262 DSPLSO 270 * 271 NOTCR 281 CANCEL 284 GETLNZ 289 GETLN 289 BKSPCE 292 NXTCHAR 297 CROUT 306 STOPLST 308 NOSTOP 311 RDKEY 313 9EYIN LDA STA RTS PHA LDA LSR TAY PLA OCS STA RTS LDA JSR CMP BEG CMP BEO INC LOA CMP BNE LDA JSR JSR EOU LDA JSR LDY STY LDY BEO DEC JSR LDY STA CMP ONC EGU BIT BPL JSR CMP DEO Crip BNE LDA BPL LDA Jr1P DK1NO (2EAS8L), Y CH A DSFBKGNO (DAS4L). Y ( INBUF) Y COUT BKSPCE #198 CANCEL TEIIP TEMP #INBUFLFN NXTCHAR *0DC COUT CROUT PROMPT COUT #1 IEflP TCrIP CETLN TElP RGCHAR TErIP ( INBUF), Y i 18D P:OTCR KBU tNOSTOP KiEYIN3 #$AO STOPLST NOSTOP ERROR2 1(l1D STOPLST *#BDCOUT LOUT JelP n(;SWL) LDA #17F 17-APR-81 #000254 PAGE 15 ALSO SET 8ACKGROUND COLOP IPRESERVE CHARACTER rDCTERMINE WICH PAGE. aBRANCH IF $800 PACE IECHO CHARACTER i BACKSPACE? ICANCEL? INO WRAP AROUND ALLOWED. OUTPUT BACKSLASH START AT DEGINNINO OF INUJF iBACK UP INPUT BUFFER GET IIPUT iTEST FOR START/STOP IREAD KBD I S IT A SPACE? IYES, PAUSE TIL NEXT KEYPRESS. QUIT THIS OPERATION? iNO, IGNORE THIS KEY. iYES, RESTART L4.cj tr.x Co -Ji o O0 %0 Vo J tM'lKE 91JPE FIRST 19 CUPSOR M. 1913 FDti 1:85 63 FDt3: 20 88 FD FDI6: 48 FD17:20 35 FD FDIA: BO 08 FDlC A5 69 FDiE 20 9D FC FD2t1:20 35 FD FD24: 6B8 FD25: O0 FD26: 48 FD27 20 9D FC FD2A: 68 FD2D 28 FD2C:90 ES FD2E:AD 00 CO F031:2C O10 CO FD34:60 FD35E6 62 FD37: DO 09 FD39 E6 63 FD3D A9 7F FD3D t18 FDD3E: 25 63 FD40 FO 05 FD42: OE O0 CO FD45:90 EE FD47:60 FD48: FD48: FD48. FD-.8 20 77 FD FC': A5 68 FD4D 29 80 FDIF:49 AB FD51:85 69 FD53 20 OC FD F016:AO 08 FD08: D9 FO FF FDB: FO EB FDSD 88 FDSE: 10 F8 FDO: FD60 A9 80 FD62: 25 68 FD64: 85 69 FD66. 20 OC FD F069 C9 9B FD6B:FO DE FDh60:C9 95 FD6F:DO D6 FD71:20 88 FD F074 09 80 FD76 60 F077 =D77 A9 FU SARA MONITOR 316 KEYIN1 322 KEYIN2 329 KEYIN3 330 KEYIN4 332 KEYWAIT 339 KWAIT2 341 KEYRET 342 * 343 * 344 ESC3 346 ESCAPE 350 ESCI 352 ESC2 354 - 356 * 357 RDCHAR 368 * 369 OOESC 17-APR-81 #000254 PACE 16 STA JSR PHA JSER ECS LDA JSR JSR PLA PHP PHA JSR PLA PLP BCC LDA BIT RTS INC 3NE INC LDA CLC AND BEG ASL 3CC RTS EGU JSER LDA AND EOR STA JSR LDY CMP BEO DEY UPL LDA AND STA JSR CMP 3EO CMP BNE JSR ORA RTS LDA T3AS4H PICK KEYWAIT KFYIN2 CUYSOR DISPLAY KEYWAIT tOO READ SCREEN SAVE CHR AT CURSOR POSITION TEST FOR KEYPRESS O CET IT iGIVE THEM AN UNDERSCORE FOR A TIlE O0 SEE IF KEYPRESSED SAVE KEYPRESS STATUS DISPLAY KEYINI KBD Kt!DSTRO IDAS4L KWAIT2 1DAS4H 487F IDAS4H KEYRET KED KEYWAIT OCESC IODES 4to0 CURSOR RDKEY *8 #S ESCTADL Y ESC3 ESC2 *1000 IlODES CUKSOR PD:MEY ESCAPE #$95 KEYRET PICK #$gO READ KEYBOARD iCLEAR KEYBOARD STROBE iJUST KEEP COUNTINC i;TEST FOR DONE iRETURN IF TIMED OUT iSEI TO + SoIGN FOR CURSOR MOVES iREAD NEXT CHARACTER TEST FOR ESCAPE COM11MAND. iLOOP TIL FOUND OR DONE IGO READ A CHARACTER iSAVE STANDARD CURSOR. ESCAPE CHARACTER? IFORWARD COPY? CET CHARACTER FROM SCREEN ISET TO NORMAL ASCII *#CLSCRN CXO Lo n SARA MONITOR FD-:q 48 FD-7A'9 7F FD FD7D.48 FD-E:60 FDF: FD7F: 8D FD0: 70 FD91:68 FDO2:4E FD83.48 FD54:D8 FD85:D6 FD06:C8 FD97. A3 FC-8: FDc8:A5 SC FeDA:4A FD8B:A8 FDGC:24 68 FDSE;50 05 FD0O:qO 03 FDe2:B1 60 FD'4:60 F0D5:B1 5E FD97: 60 FD8 FDr8: 374 * 375 ESCVECT 37S 384 * 38S PICK 393 PICK40 395 * 3?6 PHA LDA PHA RT8 DFD OFS OFDF ODFB DFD DFB OFD DF8 DFB LDA LSR TAY DIT Dvc ICC LDA RTS LDA RTS CHr4 ESCVECT,Y CI EOL-1 CLFOP-1 CLSCRN-I CCL40-1 COL80-1 CURLEFT-1 CURIGHT-1 CUhDOWN-1 CURUP-1 CH A MODE8 PICK40 PICK40 (BAS8L, Y (BAS4L),Y 17-APR-81 #000254 PACE 7 GET A CHARACTER AT CURRENT CURSOR POSITION /DETERMINE WHICH PAGE. JAND IF 80 COLUMN MODE. FORGET CARRY IF 40 COLUMNS îCET CHARACTER FROM S400 PAGE r%) vo NO ut rIl..1;90 ?1l0,J9C SARA MONITOR FDa8: FD8:A9 03 FD'A.: D DO FF FDaD: FG;D: D8 FDOE:A2 03 FDAO:86 7F FD,42 DD DC FF FD.';5:9D CA FF FDA8: DD D4 FF F;DB: 5 6E FDAD: DD DB FF FC20:95 58 FDD2 CA FD33:10 ED FDD5: 85 82 FDD7:A9 AO FD39: 85 7E FDDD:A9 60 FC0D: 85 81 FDDF-A9 FF FDC1:85 68 FC3:20 4F FB FDC6: 2 CLDSTRr SETUP 9 SETUPI Il * EQU LDA STA EOU CLD LDX STX LDA STA LDA STA LDA STA DEX BPL STA LDA STA LDA STA LDA STA JSR 4 3 SPFDO #3 INOUF+t NP'IRO, X MF-CA, X HCOKS. X CSWL. X VDOUNDSX LtflR IN, X SEIUPI IODRVN #$AO IN rUF 4#60 IBSLOT $43FF iSODES COL40 ZERO PAGE IS ON 3! OF COURSE! jINPUT BUFFER AT 13AO iSET 40 COLUMNS. CLEAR SCREEN o 4o C' sC> (n 17-APR-91 #000254 PAGE 18 17-APR-81 *000254 PAGE 19 OOAO. OCAO. 00A2: 00A3: 0044: ODD4, 03D4' CO lB: CDDA: FFEC: FFED: FDC6: FDC6. FDC6:A9 78 FDCs:85 AO FDCA:A9 Oa FDCC:85 AI FDCE:A9 FO FDDO: 85 A4 FDD2:A9 00 FDr4:AA FC,5'95 04 FDD7, EB FDDSiEO 20 *FDDA DO F9 DDC:A9 os05 FDDE 18 FDDF 08 FDEO. 48 9DEI P6 A2 FDE3:AO 07 DE5h:A6 A2 FDE7. BA FDEB91 AO FDEA ES FDED'88 fDcC: 30 06 FDEE:CO 03 FDFO:DO FS FDF2.FO Fl FDF44 20 99 FE FDF7:DO 0D FDr9:C9 OA FD=D:DO E6 FDFD:A2 24 FCFF:-DO EO FEC1 68 FEC0'. 28 F E'3.A2 17 FEC5 AO os05 FrC7 36 BO FED9:OA FE 0A DO OE FEC 84 A2 -,:E C6 A4 FE.) FO 16 27 ADR 28 CPORTL 29 CPORTH CTEMP 31 CTEMPI 32 YTEMP 33 ROWTEMP 34 CWRTON CWRTOFF 36 CB2CTRL 37 CD2INT 38 * 39 * GENENTR 48 ZIPTEMPS C0 56 CENASC57 QASCII 58 QASCI2 59 GASCI3 67 CASCI4 73 CCYTES 76 CCOLMS 77 CSHFT a0 et Eau EGU EOU EQU EGU EGU EGU EQU EGU EGU EGU LDA STA LDA STA LDA STA LDA TAX STA INX CPX BNE LDA CLC PHP PHA STX LDY LDX TXA STA INX DEY BM1I CPY ONE BEO JSR BC9 CMP BIlE LDX CNE PLA PLP LDX LDY ROL ASL NIE STY DEC CEO ^0 AnR ACr+I ADR+2 ADn+3 AOR+4 AC-+20 SCODD tCODA tFFEC SFFED #*78 CPORTL #$a8 CPORTH #240 YrEMP #0 ROWTEMP,X #$20 ZIPTENPS #5 CTEMP #7 CTEMP (CPORTL), Y GASC14 #t3 GASCI3 CASCI2 NXTPORT CDYTES #$A CASCII #*24 QENASC *23 #5 ROWTEMP+4,X A shrTCpiT CTtMP YIEMP OCJE I INIT SCREEN INOX LOCATIONS iSET UP INDEX TO CHRSET iFAKE THE FIRST BIT PATTERN (PHANTYOM 9TH DIT SHIFTED AS DIT 0) GENERATE THE ASCII CODES FOR THE FIRST PASs SXXF=CHR O / 4 % XXE-CHR I / 5 i *XXD-CHR 2 / 6 i XXC=CHR 3 / 7 SXXB-CHR O / 4 *XXA=CHR I / S i XX9-CHR 2 X 6 *XX8SCHR 3 / 7 zGO DECODE CHARACTER TABLE. SECOND SET OF 4? iRANCH ALWAYS iRESTORE BIT PATTERN (4 CHARACTERS OF 6 ROWS) (FIVE COLUNS) OREAK BYTES INTO BIT OROUPS DRrANCH 1 flORE BITS IN THIS BYTE (NCTE: CARRY IS SET.) 13RANCH IF ALL DONE CO -0 c> o y0 -n RAM CHARACTER SET LOADER FE:2 A4 A4 FE;4 E9 C4 FE FE17 2A PEJS A4 A2 FEIA 88 FEJD DO EA FEID' CA FEE. 10 E5 FE2O. ('E FE2: 48 rE.2 20 28 FE FE25-4C 01 FE FE28: FE28: FE2e:A2 1F FE2A:AO 00 FE2C ES B4 FE2E:OA FE2F29 3E FE31:91 AO FE83 CA FE34 CO FE:?5:CO 08 FE37 DO F3 FE39:20 99 FE FEDC:C9 02 FE3E:FO 04 FE40: 8A FE4IJO E7 FE43:60 FE44: FE44:A9 01 FE46:85 A2 FE48:A9 60 FE4A:2C DO CO FE4D:20 AE FE FESO:A9 20 FE52:20 AE FE FES5:2C DA CO FESBt 20 8E FE FED: C6 A2 FESD: 10JO 16 FESF:A9 0O FE1:85e AI FE63:AO 07 FE65:B1l AO FE67: 18 FE68:69 08 FE6A:91 AO FE6C: 88 FE6D:10 F6 FE6F:;20 99 FE FE72:90 EF FE74 60 FE75 AO 03 FE77:A9 7F RAM CHARACTER e3 i86 B7 SHFTCNT e8 es * 96 DONE 97 STORCHRS 98 STORSET 99 STOROW t1 los t110 11t 113 * 114 GENDONE 116 GENI 127 NXTASCI 128 NXTASC2 137 CEN2 13e SET LDY LDA ROL LDY DEY DNE DEX BPL PHP PHA JSR drip EOU LDX LDY LDA ASL AND STA DEX INY CPY eNE JSR CMP DEo TXA B3PL RTS LDA STA LDA BIT JSR LDA JSR BIT JSR DEC BPL LDA STA LDY LDA CLC ADC STA DEY BPL JSR BCC RTS LDY LDA LOADER YIEMP CP-isET-1. Y A C I EMP CSHFT CCOLMS STORCHRS CBYTES #tIF 4041F 1:0 ROWTEMP, X A #43E {(CPORTL). Y 41t8 STDROW NXTPORT #se GENDONE STORSET #1 CTkMP #60 CWRTON VRETRCE #S20 VRETRCE Cb KTOFF ALTCHR DTEMP SEN2 CPORTH #7 (CPORTL)>. Y #eu CCPORTL), Y NXTASC2 NXTPORT WXTASC I t3 417F 17-APR-81 0000254 PAGE 20 ieET CHARACTER TABLE,INDEX (CARRY KEEPS BYTE NON-ZERO UNTIL ALL B ARE SHIFTED) iRESTORE COLUMN COUNT COT ALL FIVE BITS7 NO, DO NEXT I ALL RnlWS DONE NO, DO NEXT SAVE REMAININO BIT PATTERN AND CARRY iMOVE EM TO NOtJ DISPLAYED VIDEO AREA utMOVE CHARACTER PATTERNS TO VIDEO AREA SHIFT TO CENTER STRIP EXTRA óARBAGE THIS CRPOUP DONE? i NO, NEXT ROW ALL ROWS STORED? IPARTIAL SET ($47B-$5FF) SET NORMAL MODE IPREPARE TO SEND BYTES TO CHARACTER GENERATOR RAM WAIT FOR NEXT VERTICAL RETRACE jAIT ACAIN iCHARACTERS ARE NOW LOADED iREPEAT THIS SET FOR OTHER 64 CHARACTERS HAVE WE DONE ALTERNATES YET? NO, DO IT! I;BUMP ASCII VALUES FOR NEXT SET iTHE USUAL COUNDOWN SETUP ALTERNATE WITH UNDERLINES 4, c, vi MO'i9C FE79:99 FC 05 FE7C:Q9 FC 07 FE'F:88 FE8O:10 F7 FE82:A9 G8 FEB4:85 AI FE86:DO CO FE89: FE38-AO 07 FE9A:81 AO FE8C:49 20 FE3E:91 AO PE90:88 FE91:10 F7 *FE'3-20 99 FE FE96:90 FO FE"8:60 FEg99 FE99:A5 AO FE9B:49 80 FE5O:85 AO FE9F:30 02 FEAI:E6 AI FE,3: A5 AI FEAS:C9 OC FEA7:DO 04 FEA9:A9 04 FEAD: 85 AI FEAD:60 FEAE: FEAE: FE4E. 85 A3 FEeO:AD EC FF FES3-29 3F FEDSL:05 A3 FEZ7:SD EC FF FEBA:A9 OS FEDC: 8D ED FF FEIrF:2C ED FF FEC2:FO F8 FEC4:60 FEC5: FEC5: FEC5:FO 01 82 FECS:18 FEC9:40 84 81 FECC:2F FECD: 58 44 81 FEDO:29 FEDI:02 tE 01 FED4-91 FED5:7C IF 49 FED8 30 FED9, A 08 43 FEDC 14 FEDD 31 2A 22 RAM CHARACTER 139 UNDER 146 * 147 ALTCHR 148 ALTCI 156 * 157 NXTPORT 162 NOHIGH 167 PORTDN 168 * 169 * VRETRCE 177 VWAIT * 181 CHRSET SET LOADCR STA t5FC,Y STA O/FC,Y DEY BPL LINDER LDA #$9 STA CPORTH BNE GErNI LDY #7 LDA (CPORTL),Y EOR #*20 STA (CPORTL),Y DEY BPL ALTC1 JSR NIXTPORT BCC ALTCHR RTS LDA CPORTL EOR #t90 STA CPORTL BMI NOHIGH INC CPORTH LDA CPORTH CMP #$C ONE PORTDN LDA *#1.1 STA CPORTH RTS STA LDA AND ORA STA LDA STA DIT BEO RTS EQU OF8 DFB DFD DFB OFD DFB DFD CTEMP1 CB2CTRL #13F CIEMPI CB32CTRL #$8 CB2INT C32INT V:.AIT 17-APR-81 *000254 PAGE 61 ADJUST ASCII FOR ALTERNATE SET s$20-->0 $40-->$60 IADJUST THEM ALL CONVERT $78->$F8 OR $F8-S78 IF "C THEN -4 SAVE BITS TO BE STORED iCONTROL PORT FOR 'CB2' iRESET HI DITS TO O iTEST VERTICAL REIRACE IWAIT FOR RETRACE IFO, $01, $82, S18 S140, $84, 181, t2F S58, $44, $81, $29 102,$1E, $01, $91 S7C, SFIP, 49, 30 SeA, $08, $43, $14 31, S2A, 22, a13 CE r,4 4o 0n %0 VI 17-APR-91t #000254 PAGE 22 1FON9C FEEO: 13 FEEI:E3 F7 C4 FEE4: 91 FEES: 48 A2 DA FEES: 24 FEE?:C6 4A 62 FEEC: 8C FEED:24 C6 F8 FEFO: 63 FEFI:8C CI 46 FEF4:17 FEF5: 52 8A AF FEFS: 16 FEF9:14 E3 33 FEFC:31 FEFD: C6 F8 DC FFOO:73 FFOI:3F 46 17 FF04:62 FF05:SC 21 Eb FF0: 18 FFO9:6A BD 61 FFOC:CF FFOD: 18 62 74 FFIO: DI FFII: 89 18 49 FFl4 4C FFj5;91 CO F3 FF18:09 F=19:2C 91 CO FFIC: 14 FFID: 10D 8C EF FF2O: 07 FF21: 17 43 88 FF24: 31 FF25:84 IE DF FF28: 0B FF29:31 84 F8 FF2C: FE FF2D:77 3E 3E FF30: 17 FF31:62 BC FD FF34:C7 FF35:50 E3 0B FF3g: 51 FF39:C5 E8 CS FF3C: 73 FF'D: 18 OC 42 FF40: 3E FF41:01 02 20 FF44: 42 FF45:3E 41 18 FF49 9C FF49. o08 0o 70 FF4C; EE FF4D-000 Il Il DFB DFB DFD DF3 DFD DFB DF3 DFD DFB DFD DFB DFB DFB DFD DFB DFB DFD DF3 DFB DF3 DFD DFB DFB DF8 DFB DFD DFB E3. $F7, tC4, *91 t48, $A2, $DA, $24 $C6, 14A, $62, $8C $24, $C6, SF8, $63 $8C, $CI, *46, $17 $52, $8A, tAF, t16 $14, $E3, $33, $31 $C6, *F8. IDC. $73 $3F. $46. $17, $62 *8C, $21. UE6, $18 *6fA, $8D, $61, CF *18, $62. *74, $DI $B9, S18, $49, $4C t91, $CO, F3, *09 2C, $91. *$CO, *14 *10, $8C, EF, 07 $17, $43, *80, $31 tY-', $E, $DF, *08 *31, *84, F3 $FE $7/, $3E, $E. *$17 t62, *SC, SFD, *C7 *50, $E3, 95, *51. $C5, $ES. *CS, $73 t1t, $OC, *42, $3E *t01, *02, 820 *42 *3E, $41, $8. $8C *C8. $00. *70. tEE *00, $11. *11, *21 ru CO *-. co ni RAM CHARACTER SET LOAIER r:Z.:9C FF50: 21 FF11:l1 02 EO FF34:3C FF55:21 31 02 FF58:EO FF9: IC o0 C8 FFSC: 89 FF5D:80 62 14 FF60:IF FF6t.46 A2 DE FF64:43 FF6S.2C 04 88 FF68:BE FF&9:FF CE 7D FF6C:37 FF6D:49 88 95 FF70:18 FF71:98 09 62 FF7,4:D01 FF75:44 E8 88 FF78:FB FF79:02 90 40 FF7C:00 FFD:10 EO 03 FF80:02 FF9l:00 40 00 FF84: 00 FF25;08 00 00 FFS8:-28 FFe89:10 42 44 FF8C: 25 FB;D:82 D8 2F FF'0:48 FF9I:25 44 10 FF94:;82 FF75:02 00 2F FF98:SA FF99:40 45 02 FF9C;8E FF7D:64 50 90 FFAO. O FFAI:3E 26 42 FFA4: 80 FFAS:21 80 00 FFAS:05 FFA9:00 F8 80 FFAC:OO FFAoD:05 08 F8 FFDO:BO FFD1:28 o05 88 FF3 4 FFD4: FFO4.F2 FB FFD6. OF FD FF8e RAH CHARACTER SET LOADCR 242 * 243 HOOKS * 246 * 247 V0OUt4DS DFB DFO OFB DFB DFB DF8 DFO DFO DFB DF8 DFD DFB DFS DFD DF8 DFD DFB DFO DFO DFB DFB DFB DFI] EGU DW DW EUt t11,S02, $EO, S3C $21,s31, 02, $EO $IC., $00 $C8. sB9 CO, $62, $14, $1F 46* SA2, DE, 43 :2C, $04, R.8, $1E tFF. sCE. S7D, $37 949,$ 988, 95, $18 s98, S09, $62, $D1 $44, $E8, $80. $FD $02, s90, $40.$00 $10, $EO, 03,$02 OO, $40, $00,00 l08. $00, tOO. $28 t10, s42, $44, $25 I02, $88, $2F, $48 $25. $44,S10, 982 102, 100, OrF, $5A , s45, 902, S8E 164,150, 90, $01 $3E, $26, 942. 980 S21. $80. $00. 05 00, $F8, 80, *00 , 108 $F8. $S80 t28, $05, $88 COUT2 KEYIN ro 0a -tj o t-fl \0 Vil 17-APR-81 #000254 PAGE 3 rtDNI9C RAM CHARACTER SET LOAúER FF8:0O 50 00 248 DFB FFB: 18 FF2C: 249 * FFDC:4C 89 F6 250 NMIRO Jrip FFEF: 40 251 RTI FFCO:C3 CF DO 252 ASC FFC3:D9 D2 C9 FFC6:C7 C8 D4 FFC9:AO CA Cl FFCC:CE D5 Cl FFCF D2 D9 AC FFD2AO Dl B9 FFD5:D9 BO AO FFDS:AO Cl DO FFbD:DO CC C5 FFDE:AO C3 CF FFEI:CD DO D5 FFE4:D4 C5 D2 FFE7: AO C9 CE FFEA:C3 AE AE FiED:CA D2 C8 FFFo: 253 CHl FFFO: I * FFFO:CC 2 ESCTABL DFB FFFI:DO 3 DFB FFF2 D3 4 DFD FFF3'84 5 DF8 FFF4:D8 6 DFB FFFS:88 7 DF8 FFF6: 95 8 DFD FFF7: A 9 DF8 FFF8:80 10 DFD FFF9:00 11 DFB FFFA: 12 * FFFA:CA FF 13 NMI D[4 FFFC:EE F4 14 RESET DW FFFE:CD FF 15 IRO D1' 00c00. 16 * ** SUCCESSFUL ASSEMBLY: NO ERRORS *0, 50, O, $18 RECON COPYRIGHT MOiIVECT *CC $DO 0D3 $84 *D8 *94 $8D *O0 IF-CA DIAGN OFFCD iI4 DIAGNOSTICS JANUARY, 1980 APPLE COMPUTER INJC. JRH' iNOTHINQ IFIRST DIACGNOSTICS ro CO 0i %0 V1 17-APR-81 #000254 PAGE 24 ZHD|35 COCad d3S V6Vi dO03t8 ZDV t IlHOIU aGIDA 113E tAA4t NOM3i 699a OdSUd CZVi ZX3HUd L063 31AOud zv6d MDId ssai zdalo 36bt diH31I4 ZE63 SVGIkN dt6d I V1XN Z66d HO IHON EV3i 3AOW DZVd HDúNSIN ZQ A dnibi3 638a I llS' oz NIA3MI Aoat INIA3M 9l t i: SMOOH bn33 ZN3130 aDA csvt430 TMAu ú1 DSVO zmad ID3ADs3 dzad ZOS3 sca t auOUd3 syvO Sceflna 63VA ociffa DAV t 13151a it6A J dOI31D,1 vaoD HOSUI10 69 aNGéno coud 3t15D 39 NOI4UD8 92V t OB30D 6bEd HDUBGWD 016 1 Z3033D I&6D 3aiffl VOVi4 Q31HHD 103 t 33DNVo 0aDD 3DdSMtI 3a3i oivsva EM4 CZDSV 93U DID13v Ved3 3CV 84 tDdlV ZGàA a0o13S 498A 33O0DS DGDi 19é S 19Dd IV13él ClV6 t 13S3U1 Dd tdZ aVt 0DVi ld:lOUd g9 ZX3HUd ict63 IODAOUd Z36d oDbMDId càai úIOd/XN 663i UVHDúXN b3Dd IDSV XN E93d u3AON Oavd 1:NN V dd ZN40t4 e0&d hSVW 69 081 H3 0DA H4s ITt 4 trNIA3m TIúad, amit O0D ZdOHDNI tdad i NuHaai zs oo C4VA 08353 úC ad D03NtiDS BQ NVDS Z16d dW31t10U bs úi13t110i t'as llV3d3U IZVi 1MCtkiU DGai IV1NISUd 19Vi NO-ODkid CGD6A 31AGivud 3sv3 3Dd ZZ NI 31XN ZOD t aDSV. XN cs3u M3S10N 8gD8 NOW bOséel GAI'f Z DA N315iV3 Z8D t ENlIA. 3M 3zaA stilScalm OIOD Anoffl 3Z aw0ci 49 DS30s zza i TN30 sb3d I I SVO e3a A 3dYDS3 aba3A TUOSU3 ZAvA dffla 6 dvA4f Z4&wna DOS_ Osidsa MODA IS30 I6VA dW,31 3 aV 1AHSD Z03A lmnoD úúD3 D3hAGWD D46 d IdO33D VZt3 I3033D 6sDA HD DC luifDaza D3Ai OI M D03E 64t 3 Z1383 3ED3 lesve 09 ú1IZDSV ZA6 t OIIDSV 60V3A I DSV DZGA Vú ND3 9z 3IV tb4 108WAS AU a3IuOS V09ú3S aOGa ú3tM DS WL De- QNDA$VS G3v NIOUVRU br Z13dS ooeA 1 V3d3U 61Ivi UVHOdO 09(G3i X3Htid s od_ dSlAOud oz d Nalú0d CV3. HDd EL dNIIXN CT& llciXIq zt6 i tVIXN DJsà dOlSON zOf i úXNAOW TúVi S3aOW 89 NIOUVW3 BQ SlsA3m ztii dWnn azv- N33 AnENI 0s N9dAgN!a Og ddno0! g8 I4XN130 zabd 3NOGI430 bb3i tIOSVO b ile aNOUO, 99 úDS3 n tIld TdNuO bO DSVdWna ZL}i r cWila 601ad CND)IEdSG VV-.-J 1380la Ds9 i 1,10UfflD Ca0q Iinkino 3va.1 NMOAinD 6Dad I dWBl D E V mnouD A3.)A H.Lkoda ITV 310U.lNOD CAi OV.LaWO D96 dO 33D f uad SW30DD C03 i VUUVD 06 Ij.:, lis ovvi AdOlle elvA 11139 aC.Oe I I SVO zo 3NOODSV 90VS UHD11V 8s3_- HbV CL HZV iZ HIV CZ BIEv l nouhs Ln Co "t Cu N3130 ZN32 ZIDSVO 98Vú03S TOsa AU1N3 údWna AWWna AV3dSI a Aviosla AD ld3lunD HMSD MHD UD únoD MIDSID q1039O 13SUHD Lqraon 1358H3 Ht-SVC 133DSV ZDSV Mav HCV DdlV ODd r. 3 at Gú3a bdé. DIOd ZCgd 0bOd úccb 6aEd A9 G8d6d adud &90d 3b3d acdz O3sd 61bD ú9 CgO ZOOd cuta 9bA 38gd 6ID 9F6. QI BOVd tCZOOO# 18-UdV-4! ur_ oO 4rJ 31VúS2 Z96g SdW3ldIZ Qa3 dW3IA 9V AVSA am 31 E' DVA dolNIM VC WI1NIM 8 &IVMA A83d rAiMA OtVi A3HA BEV3 ZA3A DW3 3D8ú1aBd MVI 5NnORA Baud u3Sn aZVd HOVH3sn a83o m3aNn 6L3ú aWnAlSi 9AVA UDISl 6ldz.]331JS 96D8 MDVBISi &BA iViBl Bb663 fIM1081I 6D63 BOSO1 BG6A AdW31 09 dW3l OS XdW31 09 38SVdl t9 H85V81 C9 L ItSV91 Z9 H#SVBI C9 SVWAS 1a 8CllS EVV3Z 13SHOIS VZ33 MOHOlS DZ33 SHHDHOlS 6Z33 IHOlS 3W3A 153dOlS zoad 31V1S DZ MDV1S V9 3DdS tVVd IND13HS V133 Idnl3S zva3 dnl3S eS6CJ. 300W13S 8OY ZOW13S GOYV HADI3S ZDSAL AD13S tBe3 9Z 3DVd 00ZOOO# 1B-UdV-ZI lOBWAS As al3.oS aieVL -0dWAS 13dA3) ZenA ENIA3W 3ZGO A3M1a8 DOGA UYHD1XN t3DJ 33DNtVD aDDd AVIdSIC O63A E3dDS VLDA 113Ea VEDA 133dMl D bZD J zkIDHDril d3e J4 HAD13S ú8sb, dnknWAO tvRd 10310i 3sed 0s3oD b6ts Dsvdwna IZOA Odwna DAV.J EdW4na 63tV4 318M EDVA Àw;4na LEVA lis OVW zudOd3 ESVA 0d3Sn 6LdV IVINIUd 19vA AJUA EúVJ I1V3d3d IZVi WMD VOVJ* MjHDUD) SAbA DdCIO 36ab a 011b Dbd ZX3HUd ZE6J IV151 sbb3 CVIOWD Ds6 ZSE1XN 6Cb6 8HD1XN Zú63 NVDS Z16A Z13d OObJ NOVIC 33,A Guiscam OTOD dW31A kV uacv ov AVSA CL HEV 6L HIV L AdW31 09 bOgUnD 69 CNOMdO 99 le SV8 3G dO.lNIM VC N33JnON I OC 3dVDS3 EGAd S I9I3Adx CEGd INIA.i 9la3 isidois zoqJ ZN0A130 COD OBs1dEG 3YDd 11031 6bs D0J 1I18DS 19DJ z333e 3EDJ IMnOD EEDJ I 3nvDsvrâ QO3J ainOD zded MDVEl$S casJ Ha31s AaEE AD.Las 18Aa dO31D TZEAJ ZDSV sEsJ zdWna DORA s 80d93 IAV A dDO03MU ZDVJ ZOW.L3s COV4 dO15M EVV3 IS3O 16VA oa ozv, dSIJABEsd OZV ' ZAAMA DtAv 341C0i DZVJ da 1 a Gl SC VJ IIDSV ZOV3 ZI IDSV 136A DdlV ko6A 03AOBd ZD6A BIAEsd DVbd tVlXbl DsbJ 31V1SZ ú96A IZEGYN Zt64 HDUSawD DTbd NOel tOb6 NOúU8tD BOOD UaGYs3n JECO dW31D Z8 ow DsI ú8 dW31 08 HbV OZ H2V ZZ HDd ELZ HMSD A9 Z idWOsd 89 s30ow 89 38sVE1 t9 3ss B 09 HD 3D NIOaUVII BC EDS3 srOa bNIA3e TCQd NI/B AOAo 1AOU3 J3DJ N3130 caDJ ONOXedsa Vid tJ315vi ZBDd 330dDS ECDJ lr038 CZDd NJ 1XN ZODJ dnlJ33 638A NtlOa snD bDEJ lHOI u3nD ZEB idnunD 3voA OHNOD CbsJ NUèDS3lD bsldJ IDsv DZOA leiû60BA dwnalsl 9AVv awDAVS CGDVJZ 3GOW13S BVV 80883 3SaJ dkInr azVd 31AÀlE d 39v TADUS otvi NowsD 9ZVA 3NDODSV 9OVJ *I135V Ab06 IMSVWWS 10A& 2X3HUd 386J D33aWD DZ6b8 BASOI 3CbJ lII BIbd dNllXN CIbJ Ad.leN3 T O6iJ NOD3b bed9 AdaOlti.'} VOOD HldOdD IV Ans.Jil 3L 11V VI -laV 9L 3Dd ZI 3PI5D 39 M1DV1S V9 HbSVEl E9 HPSVG AG W1 E:JI M E6 DOOrJu35 BQ I DS3 eCGAt ZNIA3M tWJ dOI1ON zoa 3DdSME 3aDJ 8D1ON 8BgD Z3033D I6Dl z3dDS ú9D3 E1333 EbDJ q33BIS1 9C3d ZD3DS8 bl3J XAVidSIa DJàU úJ33bA3 bOd ZHD135 EDgJ TNOBAD Coed OVaun EBSéJ TdO30D VZRA VOBl3S egBd EDSV 9baJ CdWnAO 6TV U3^Q/,l ACVd avàd ODVJ i5 AVVA TaDs dvvd d3S VbV8 8O083Md E8VJ DdSUd CúVA HDlVWSIW ZCVJ IXN^OW TCV4 iV3d38 6IVJ OIIDSV bOV CIIDSV ad6d *DdTV úO6A NOOD8d CD6d4 X3H8d CG66JZ TV1XN Zbbl 313oIa 896J SVOIXN dt6A WnN130 DZbJ ZNOW 80bd DIXDOIG 6ú#d 1Ud OOOD 31Vd S DE 3ú1V SZ 1tiSX OZ X d1.31 D9 MSYW 69 H8SVOI C9 4 H8SVE 19 AD ac NIOUVWd 6b utn 0s CO Cu SS3bO V AdB 31BDS 33dV1 30EJAS Zr 3evd t0ZOOO# 18-8dV-zT LIJ o' Go SONnOUS aSd SMiOCH tûdd L3sSHD QD33A IIVMA A03_ 3013dA 3v3d NalUOd V3.z HOIFON CV33 lUOdLXN 663 IDl3v v8:3 UHDIIV 883d d3atin 6z3A 2N33 Qz3di 2DSVlXN C3 IDSVlXN C93d 1Nl 8t3d 3W NOON3v3 mOmOiS O3s i3suO1S V3, SdHDcOlS 823 3NOO sz3 lNDldHS V13T IHS3 03 SN3033 O S3LAU3D 1030 tIDSVD 'OA IOSV ú3Gd 2ISVO cO3a IDSVO C3= DSVN93S IBad SdW31dIZ;aI u t '3 9a3, Idnl3BS ZVI1 dnl3AS 06CA4 LHúSOD 8bQA Ot;1DId bôa V3DId BSG0 03A3DS3 ZLaS DS30 4LaZA aVHDOU 090oa ZOS3 8;d ss3EaaV Al 031H0s 30n Vú IoIJAS S 3OYd #QZOOO# 19-UdV-Zl REVENDICAT IONS 1) Calculateur numérique comprenant une unité cen- trale (de traitement), une mémoire à accès direct (mémoi- re RAM), un bus d'adresses interconnectant ladite unité centrale et ladite mémoire RAM de telle manière que ladite unité centrale adresse des emplacements dans ladite mé- moire RAM et un bus de données interconnectant ladite unité centrale et ladite mémoire RAM, ladite unité cen- trale adressant, pour certaines fonctions, des emplace- ments prédéterminés dans ladite mémoire RAM au moyen d'une gamme prédéterminée de signaux d'adresse, ledit calcula- teur étant caractérisé en ce qu'il-comprend: un moyen de détection pour détecter ladite gamme prédéterminée de si- gnaux d'adresse, couplé avec ledit bus d'adresses; un mo- yen du type registre pour stocker des signaux numériques, couplé avec ledit bus de données; et un moyen de commuta- tion pour transmettre lesdits signaux numériques stockés dans ledit moyen du type registre audit bus d'adresses lorsque ledit moyen de détection détecte ladite gamme pré- déterminée desdits signaux d'adresse; moyennant quoi des données relatives auxdites fonctions normalement stockées par ladite unité centrale auxdits emplacements prédéter- minés peuvent être stockés ailleurs dans ladite mémoire RAM, ce qui améliore la performance dudit calculateur. 2) Calculateur suivant la revendication 1, caractérisa en ce que ledit moyen de détection détecte des zéros binai- res partout. 3) Calculateur suivant la revendication 1, caractérise en ce que ledit moyen de commutation comprend un multiple- xeur commandé par ledit moyen de détection pour assurer la sélection dudit moyen du type registre. 4) Calculateur suivant la revendication 1, caractérise en ce qu'il comprend une mémoire morte couplée avec ledit bus d'adresses et avec ledit bus de données. 5) Calculateur suivant la revendication 4, caractéris en ce que lesdits signaux stockés dans ledit moyen du type 11f' registre fournissent un pointeur d'emplacements de ladite -mémoire RAM au cours d'un transfert d'accès direct à la mémoire. 6) Calculateur suivant la revendication 5, caractérisé en ce que la mémoire morte, en réponse à des signaux présents sur le bus d'adresses, transmet des instructions à l'unité centrale pour lui faire incrémenter des signaux d'adresse au cours dudit transfert d'accès direct à la mémoire. 7) Calculateur numérique comprenant une unité centrale (de traitement), une mémoire à accès direct (mémoire RAM), un bus d'adresses comportant des première et seconde plu- ralité de conducteurs pour coupler ladite unité centrale avec ladite mémoire RAM et un bus de données interconnec- tant ladite unité centrale et ladite mémoire RAM, ladite unité centrale adressant, pour certaines opérations, des emplacements prédéterminés dans ladite mémoire RAM avec des signaux d'adresse sur ladite première pluralité de conducteurs, en appliquant une adresse prédéterminée sur ladite seconde pluralité de conducteurs, ledit calculateur étant caractérisé en ce qu'il comprend: un moyen du type registre pour stocker des signaux, couplé avec ledit bus de données; un moyen de multiplexage couplé avec ladite seconde pluralité de conducteurs et avec ledit moyen du type registre pour assurer la sélection de signaux, soit à partir de ladite seconde pluralité de conducteurs, soit à partir dudit moyen du type registre; et un moyen logi- que couplé avec ladite seconde pluralité de conducteurs et avec ledit moyen de multiplexage pour provoquer la sélection par celui-ci de signaux provenant dudit moyen du type registre lorsque ladite unité centrale applique ladite adresse prédéterminée sur ladite seconde pluralité de conducteurs; moyennant quoi lesdits signaux provenant dudit moyen du type registre déterminent des emplacements de variante dans la mémoire RAM en vue d'un stockage asso- cié auxdites opérations. 8) Calculateur numérique suivant la revendication 7, caractérisé en ce que ladite adresse prédéterminée est exclusivement formée de zéros binaires. 9) Calculateur numérique suivant la revendication 7, caractérisé en ce qu'il comprend une mémoire morte couplée avec le bus d'adresses et le bus de données. - ) Calculateur numérique suivant la revendication 8, caractérisé en ce que le signal stocké dans le moyen du type registre fournit un pointeur d'emplacements de la mémoire RAM au cours d'un transfert d'accès direct de la mémoire. : 11) Calculateur numérique suivant la revendication 10, caractérisé en ce que la mémoire morte, en réponse à des signaux présents sur le bus d'adresses, transmet des ins- tructions à l'unité centrale pour lui faire incrémenter des signaux d'adresse au cours dudit transfert d'accès direct à la mémoire. 12) Dans un processeur numérique utilisé conjointement avec un affichage, ledit processeur comprenant un bus de données et un bus d'adresses, une mémoire caractérisée en ce qu'elle comprend: une première pluralité de disposi- tifs de mémoire pour stocker des données, couplés de ma- nière à recevoir des données du bus de données; un pre- mier bus de sortie de mémoire couplé de manière à recevoir des données de ladite première pluralité de dispositifs *de mémoire; une seconde pluralité de dispositifs de mé- moire pour stocker des données, couplés de manière à re- cevoir des données du bus de données; un second bus de sortie de mémoire couplé de manière à recevoir des données de ladite seconde pluralité de dispositifs de mémoire; un moyen d'adressage couplé avec le bus d'adresses pour pro- duire des signaux d'adresse permettant d'adresser lesdi- tes première et seconde pluralité de dispositifs de mémoi- re; un premier moyen de commutation pour choisir des don- nées à partir de l'un des premier et second bus de mémoire et les appliquer au.bus de données, ce premier moyen de 2487095 - commutation étant couplé avec les premier et second bus de mémoire et avec le bus de données; un second moyen de commutation pour choisir des données à partir des premier et second bus de mémoire et les appliquer audit affichage, ce second moyen de commutation étant couplé avec les pre- mier et second bus de mémoire et avec ledit affichage; moyennant quoi ladite mémoire fournit des données pour un affichage à haute définition. 13) Mémoire suivant la revendication 12, caractérisé en ce que, lorsque le bus de données reçoit des données de l'un des premier et second bus de mémoire, l'autre de ces bus de mémoire est couplé avec-le moyen d'adressage de telle manière que des données provenant dudit autre bus de mémoire fournissent une information d'adressage pour la sélection d'emplacements complémentaires dans les dispositifs de mémoire. 14) Mémoire suivant la revendication 13, caractérisée en ce que les données provenant dudit autre bus de mémoire sont appliquées au moyen d'adressage par l'intermédiaire d'un multiplexeur, qui assure une sélection entre, d'une part, les données provenant dudit autre bus de mémoire et d'autre part, des signaux de commutation par bloc qui sont appliqués audit multiplexeur. ) Mémoire suivant la revendication 14, caractérisée en ce que ledit multiplexeur est commandé par un circuit logique couplé avec le bus d'adresses et ledit autre bus de mémoire. 16) Mémoire suivant la revendication 15, caractérisée en ce que ledit circuit logique provoque la sélection,par ledit multiplexeur, des signaux de commutation par bloc précités chaque fois que le processeur commute un code opération. 17) Dans un calculateur numérique comportant une mé- moire et qui est utilisé conjointement avec un affichage balayé à trame, ledit affichage comprenant un compteur numérique qui fournit un compte vertical représentatif t11+ de la ligne horizontale balayée par le faisceau dudit affi- -chage, ladite mémoirq fournissant des données pour affi- cher des rangées de caractères, un moyen d'adressage cou- plé avec ladite mémoire pour faire défiler les caractères affichés, ledit moyen d'adressage étant caractérisé en ce qu'il comprend:un additionneur comportant des première et seconde bornes d'entrée et dont la sortie fournit une partie d'un signal d adresse pour ladite mémoire, la pre- mière borne d'entrée de cet additionneur étant couplée de -manière à recevoir les bits de plus faible poids dudit compte vertical; ledit calculateur produisant une séquen- ce périodiquement répétée de mots numériques appliquée à la seconde borne d'entrée dudit additionneur, moyennant quoi les caractères présents sur l'affichage défilent avec un minimum de mouvement de données dans ladite mémoire. 18) Moyen d'adressage suivant la revendication 17, ca- ractérisé en ce que la séquence de mots numériques fournie par le calculateur a une valeur maximale égale au nombre de lignes balayées dans chacune desdites rangées de ca- ractères. 19) Moyen d'adressage suivant la revendication 18, ca- ractérisé en ce que la séquence de mots numériques est in- crémentée pour chaque image affichée. ) Dans un affichage vidéo balayé à trame commandé numériquement destiné à être utilisé avec un microcalcula- teur ou analogues, affichage qui présente des images en - couleur en réponse à des signaux de chrominance ayant des relations de phase prédéterminées avec un signal de réfé- rence de fréquence (f), un montage destiné à produire un signal de chrominance commandé numériquement, ledit mon- tage étant caractérisé en ce qu'il comprend: un moyen de génération de mot numérique pour engendrer des signaux nu- mériques prédéterminés; un moyen de mise en série couplé avec ledit moyen de génération pour répéter ledit mot sous une forme séquentielle à une fréquence prédéterminée de manière à produire des composantes de fréquence à ladite 11e 2487095 fréquence f; et un moyen de conversion, couplé avec le- -dit moyen de mise en série pour convertir des signaux de sortie provenant de ce dernier en un signal de courant alternatif; moyennant quoi un signal de chrominance vidéo est engendré. 21) Montage suivant la revendication 20, caractérisé en ce qu'il comprend des éléments de montage supplémen- taires couplés avec ledit moyen de génération de mot nu- mérique pour produire un signal de luminance de courant continu. - 22) Montage suivant la revendication 20, caractérisé en ce que les mots numériques sont appliqués à un réseau de pondération résistif pour produire un signal vidéo à é- chelle de gris. 23) Montage suivant la revendication 20, caractérisé en ce que les mots numériques sont des mots de quatre bits et en ce que ladite. fréquence prédéterminée est égale à 4f. 24) Montage suivant la revendication 23, caractérisé en ce que le moyen de mise en série comprend un multiplexeur commandé en synchronisme avec la fréquence f. ) - Montage suivant la revendication 24, caractérisé en ce que le moyen de conversion comprend un inverseur couplé avec une sortie du multiplexeur. 26) Montage suivant la revendication 25, caractérisé en ce qu'il comprend des éléments de montage supplémentaires couplés avec le moyen de génération de mot numérique pour produire un signal de luminance de courant continu. 27) Montage suivant la revendication 20, caractérisé en ce que le moyen de génération de mot numérique comprend: une source de données numériques pour commander l'afficha- ge; un premier registre couplé de manière à recevoir des données de ladite source; un multiplexeur pour effectuer une sélection entre deux bus, la sortie de ce multiplexeur étant couplée avec le moyen de mise en série et lesdits bus étant couplés avec ledit premier registre; et un re- 1i gistre à décalage couplé de manière à recevoir des données de ladite source, ce registre à décalage produisant un signal numérique mis en série pour commander ledit multi- plexeur. 28) Montage suivant la revendication 27, caractérisé en ce qu'il comprend une mémoire de caractères pour stocker des données représentatives de caractères alphanumériques, cette mémoire étant couplée de manière à recevoir une adres se de ladite source de données et la sortie de ladite mé- moire étant couplée avec ledit registre à décalage. 29) Montage suivant la revendication 28, caractérisé en ce que, lorsque le premier registre précité est désac- tivé, l'un des deux bus précédemment mentionnés est ver- rouillé de manière à produire exclusivement des "uns" binaires, tandis que l'autre de ces bus fournit exclusi- vement des zéros binaires. ) Montage suivant la revendication 29, caractérisé en ce que le registre à décalage précité est commandé par une pluralité de signaux d'horloge tous synchronisés avec la fréquence f. 4 > jo 2487095 SARA RWTS1 DISQUE LECTURE/ECRITURE PISTE/SECTEUR (16) FOOO: 13 TEMPORISATION CRITIQUE IMPOSE NE PAS DEPASSER LIMITES DE PAGE CONSIDÉRATIONS POUR CODE ET DONNEES ----CODE -- VIRTUELLEMENT TOUT LE SOUS-PROGRAMME "ECRITURE" NE DOIT PAS DÉPASSER LES LIMITES DE PAGE BRANCHEMENTS CRITIQUES DANS SOUS-PROGRAMMES "ÉCRITURE", "LECTURE", ET "LECTURE ADRESSE" QUI NE DOIVENT. PAS DÉPASSER LES LIMITES DE PAGE SONT NOTÉS EN COMMENTAIRES. 32 EGALISE PAGE ZERO A % 300 48 UTILISÉ AUSSI POUR ADRESSE EN TETE CKSUM 68 ---- LECTURE ADRESSE 71 -COMPTAGE "DOIT TROUVER" 72 NIBLS "BIT IMPAIR" 73 MULTIPLET SOMME CONTROLE 74 QUATRE MULTIPLETS SOMME CONTROLE, SECTEUR, PISTE ET VOLUME 79. ---- ECRITURE ---- 81 UTILISE TOUS NBUFS ET 32-MULTIPLETS TABLE DE DONNEES "NIBL" 89 ---- LECTURE. -91 UTILISE TOUS NBUFS UTILISE 54 DERNIERS MULTIPLETS D'UNE PAGE DE CODE POUR MULTIPLETS SIGNIFICATIFS DE TABLE DNIBL 101 ---- RECHERCHE --- 104 COMPTAGE DEMI-PISTES DEPLACEES "ATTENTE MS" 113 INSTANT MISE EN MARCHE MOTEUR 114 COMPTEURS 119 AFFECTATIONS ADRESSES ORGANES 123 PHASE PAS A PAS ABSENTE 124 PHASE PAS A PAS PRÉSENTE atZ, 2487095 Q7L, Q6L = LECTURE Q7L, Q6H = DÉTECTION WPORT Q7H, Q6L = ECRITURE Q7H, Q6H = MÉMOIRE ECRITURE ÉGALISE POUR RWTS ET BLOC PLACE ADRESSE INFORMATION ICI LECTURE/ECR1.TURE PISTE ET SECTEUR COMPTAGE TENTATIVES RELANCE RECOIT INTERVALLE # POUR CETTE OPERATION UN SEUL RE-ÉTALONNAGE PAR APPEL DETERMINE ÉTAT INTERRUPTION RECOIT MARQUEUR INTERRUPTION DANS BIT 7 PRÉSERVE ENVIRONNEMENT MAINTENANT CONTROLE SI LE MOTEUR MARCHE, ENSUITE LE DEMARRE PLACE MARQUEUR ZERO SI MOTEUR ARRETE PRESERVE RESULTAT ESSAI DEPLACE INDICATEUR VERS TAMPON DANS PAGE Z DETERMINE UNITÉ UN OU DEUX - MEME UNITE UTILISÉE PRECÉDEMMENT? PRÉSERVE POUR INSTANT SUIVANT CONSERVE RESULTAT COMPARAISON RECOIT NUMÉRO UNITÉ DANS RETENUE MISE EN MARCHE UNITÉ BRANCHEMENT SI UNITÉ UN SELECTIONNEE SÉLECTIONNE UNITE DEUX ASSURE FONCTIONNEMENT UN MEGAHERTZ EST-CE LA MEME UNITE? - DOIT INDIQUER ARRET UNITE EN PLACANT MARQUEUR ZERO RETARD 150 MS AVANT PAS A PAS (AU RETOUR A = 0) MAINTENANT MARQUEUR ZERO EN PLACE RECOIT PISTE DESTINATION X CORRECT A L'ETAT INITIAL 126. 178- 205 ET PASSAGE 206 MAINTENANT SUR LA PISTE VOULUE MOTEUR PRET POUR DÉMARRER AVEC ? 208 MOTEUR EN MARCHE ? 209 SI OUI, PAS DE RETARD, PASSAGE IMMÉDIAT 211 MOTEUR ARRETE, ATTENTE POUR QU'IL ACCELERE 213 ATTENDRE EXACTEMENT 100 US POUR CHAQUE COMPTAGE 216 COMPTAGE JUSQU'A 0000 223 MOTEUR DOIT AVOIR ATTEINT VITESSE S'IL EST ENCORE ARRETE, L'ENTRAINEMENT EST ABSENT 228 ENTRAINEMENT PRESENT? 229 OUI CONTINUE 230 NON RECOIT INDICATION NON ENTRAINEMENT 233 MAINTENANTCONTROLE SI CE N'EST PAS LE FORMAT, COMMANDE DE DISQUE, POSITIONNEMENT SECTEUR CORRECT POUR CETTE OPERATION 236 RECOIT CODE DE COMMANDE 237 SI COMMANDE NULLE, PASSAGE AU REPOS 238 COMMANDE DANS PLAGE? 239 NON, NE RIEN FAIRE 240 PLACE RETENUE = 1 POUR LECTURE, ZERO POUR ECRITURE 243 PASSAGE A GRANDE VITESSE 246 SEULEMENT 127 RELANCE DE TOUTE SORTE 248 RECOIT NUMERO INTERVALLE DANS REGISTRE X 249 LECTURE ZONE D'ADRESSE SUIVANTE 250 SI LECTURE CORRECTE, BIEN 251 AUTORISATION D'INTERRUPTION? 252 NON, PAS D'AUTORISATION 253 AUTORISE A NOUVEAU APRES FAUTE LECTURE/LECTURE ADRESSE/ ÉCRITURE 254 AUTRE FAUTE 255 BIEN, AVANCE A CE MOMENT 257 PRESERVE PISTE ACTUELLEMENT VOULUE 258 UN SEUL RÉ-ÉTALONNAGE 259 TENTATIVE D'UN SECOND.RÉ-ÉTALONNAGE, ERREUR Ait% 2487095 ETALONNAGE TOTAL A NOUVEAU ASSURE ETRE SUR PISTE 80 PASSAGE SUR PISTE 00 PASSAGE SUR PISTE CORRECTE CETTE FOIS * EN BOUCLE, ESSAI A NOUVEAU SUR CETTE PISTE MAINTENANT, LECTURE CORRECTE D'UNE ZONE D'ADRESSE ASSURE QUE C'EST LA PISTE, LE SECTEUR ET LE VOLUME DÉSIRÉS SUR LA BONNE PISTE? SI OUI, BIEN RÉ-ÉTALONNAGE A PARTIR DE CETTE PISTE PRÉSERVE PISTE DESTINATION AVANCE ET RÉ-ÉTALONNAGE UNITÉ SUR BONNE PISTE, CONTROLE DESADAPTATION VOLUME RECOIT VOLUME REEL ICI INDIQUE DP SYS QUE VOLUME ETAIT LA CONTROLE SI C'EST LE BON SECTEUR SINON PASSAGE A CELUI VOULU NON, ESSAI UN AUTRE SECTEUR LECTURE OU ECRITURE? RETENUE INDIQUEE RETENUE MISE EN PLACE POUR OPERATION LECTURE EFFACER POUR ECRITURE RETENUE EN PLACE SUR RETOUR SI MAUVAISE LECTURE PASSAGE A MODE 2 MEGAHERTZ CONVERSION PARTIELLE ERREUR SANS CONTROLE MEMORISATION NUMERO INTERVALLE DANS X PAS D'ERREUR SAUTE MULTIPLET SUIVANT AVEC BIT CODE OPERATION SUPPRIME CURTRK MAUVAISE UNITÉ INDIQUE UNE ERREUR INDIQUE ERREUR # -292 3o4 306- 4i ?, 309 ARRETE 310 INTERRUPTION AUTORISEE? 311 BRANCHEMENT SI NON 313 MÉMORISE ENVIRONNEMENT INITIAL 314 ECRITURE NYBLES MAINTENANT 317 SI NON ERREURS 318 DISQUE PROTÉGE ECRITURE 319 PRISE SI VRAIE ERREUR PROTECTION ECRITURE 320 SINON, SUPPOSE UNE INTERRUPTION MANQUEE 322 C'EST LE SOUS-PROGRAMME "RECHERCHE" 323 RECHERCHE DISQUE "N" DANS INTERVALLE t'X/$ X 324 SI DRIVNO NEGATIF, SUR UNITE ZERO 325 SI DRIVNO POSITIF, SUR UNITÉ UN 327 SUPPOSE PAS A PAS DEUX PHASES 328 PRESERVE PISTE DESTINATION ('2) 329 COUPE TOUTES PHASES POUR ETRE S R 330 RECOIT INDEX PISTE PRÉCÉDENTE POUR UNITE ACTUELLE 332 C'EST LA QUE JE SUIS 333 ET C'EST LA QUE JE VAIS 335 PASSE LAÀ 336 COUPE TOUTES PHASES AVANT RETOUR 337 (EMET PHASE EN ACCORD) 338 RETENUE EFFACEE, PHASES DOIVENT ETRE COUPÉES 341 DIVISION 342 TOUT ARRETÉ 345 CE SOUS-PROGRAMME ÉTABLIT LA PISTE EN FONCTION DE L' INTERFALLE 346 POSITIONNEMENT 348 RECOIT INDEX. POUR NUMÉRO UNITÉ 353 SOUS-PROGRAMME POUR INDIQUER SI MOTEUR EST ARRETÉ 355 SI MOTEUR ARRETE, REGISTRE A DÉCALAGE MONITEUR NON CHANGÉ 358 RETOUR Y = O ET INDICATEUR ZERO EN PLACE S'IL EST ARRETE Actt 2487095 361 INITIALISATION COMPTEUR BOUCLE 362 LECTURE REGISTRE A DÉCALAGE 363 RETARD 365 DAVANTAGE DE RETARD 366 REGISTRE A DECALAGE CHANGE? 367 OUI, MOTEUR EN MOUVEMENT 368 NON, DÉCREMENT COMPTEUR RELANCE 369 ET. ESSAI 256 FOIS 370 ENSUITE RETOUR 372 PRÉSERVE ACC 373 RECOIT INTERVALLE (à $ 10)/8 377 -POUR UNITE ZERO OU UN 378 DANS X POUR INDEX DE TABLE 379 MÉMORISE ACC 383 NOTE SOUS-PROGRAMMES MISE EN FORMAT NON INCLUS POUR SOS- 390 SOUS-PROGRAMME LECTURE (FORMAT SEIZE SECTEURS) 395 LIT MULTIPLETS CODES DANS NBUF 1 ET NBUF 2 398 LIT D'ABORD NBUF2 DE HAUT EN BAS 400 LIT ENSUITE NBUF1 DE BAS EN HAUT 403.---- SUR ENTREE. 405- REGISTRE X: INSTANTS NUMEROS INTERVALLES $ 10 408 MODE LECTURE (Q6L, Q7L) 410 ---- SUR SORTIE ---- 412 RETENUE EN PLACE SI ERREUR 414 --SI PAS D'ERREUR: 415 REGISTRE A CONSERVE $ AA 416 REGISTRE X INCHANGE 417 REGISTRE Y CONSERVE $ 00 418 EFFACE RETENUE 419 ---- ATTENTION 421 OBSERVE "PAS DE DEPASSEMENT DE PAGE" 423 ALERTE SUR CERTAINS BRANCHEMENTS 426 ---- SUPPOSE ---- 428 DURÉE DE CYCLE UN MICROSECONDE SIIN 2HIN2 GUVSU 12il (NON IS IMMUSa) 0988 aI:a UaINaUd JNgaNSSI'l. aovnbUvN 6LI7 iaVd 'I v Uassvaaa sV aSN 89Li sIa'IdaL'IfIRn aNa aSUIVNaaadanls aviau 9L/i aIOUJNOD aWWOS JaaId'Ifln NOIldaDa CLI7 tIaIN aovd aa NIa tLi KNVNqLNIVW 3I UIJUVD V NOIJVDO0aILNI 'NON 997 - NIa W1 aa sNv aa SNIOW ç9i (ZaI(IIaIvANI mlod asiIiLfn isaI Lnfas vaso) ci7 NOIlJIfau.lNI aNDI'I NOILVO OlIaSNI Z97 TanIN aa sa(coo siaIdai'IN Miooam 6çl7 (o = X -NVa:SNI aSINaIa) I7 - NVAIIS is:-xaciNI 9g7 -aSNI HaSGIIVANI Haoa c asI'IIn aUaI naSa v1ao) 'igi NOIJanUaa.zNI aNDII NOIJVDOUSJNI ci7 mawalosIGa sJdI/aIllaW NOIJNVSIHOWS z5i7 savla w uassvaac sva SN a I7 (.LTWGF 90-JS 'NON IS) S7I ZsaaNNoa SoVfibHV LIM OVd V'I MMSSVd.G SVcI aM 91/7 aIflOV 'ItIN WVIEH V t17 ZngN XSGNI NOIVSITVILINI ci7 (za n xoza-ssoasoN Is) z sg LSSSNNOQ aSvMbuYK 1i711 aova vl UassVdaa sva N 0o" S'IIN aUlNa Uva;a-S C17 NON IS a'onoa LCI7 saaNNoG Nfl aSovnbaVN 9Cil7 aVd VI massvdaa svda aN CI7 laIm aunssal ú anaNsiau 0aAV aIOS asInsNa Cg UaAnoHsL Lfld aN IS anbwv zC7 H6Ao IO0.. OG,,OLiiS 0 I97Z 41A-- 2487095 483 NE PAS DEPASSER LA PAGE! 484 MARQUAGE GLISSEMENT SECOND BIT! 485 (FAIT SI L'EN EST AINSI) 486 INDIQUE "SORTIE ERREUR") 487 RETOUR DEPUIS LECTURE 16 OU LECTURE ADRESSE 16 489 PASSE A INTERRUPTION SERVICE 493 SOUS-PROGRAMME DE ZONE D'ADRESSE DE LECTURE (FORMAT 16 SECTEUR) 499 LECTURE VOLUME, PISTE ET SECTEUR 502 ---- SUR ENTRÉE. 504 REGISTRE X: INSTANTS NUMERO INTERVALLE $ 10 506 MODE LECTURE (Q6L, Q7L) 508 ---- SUR SORTIE ---- 510 MISE EN PLACE RETENUE SI ERREUR 512 SI PAS D'ERREUR: 513 - REGISTRE A MAINTIENT $AA 514 REGISTRE Y MAINTIENT $00 515 REGISTRE X INCHANGÉ 516 EFFACEMENT RETENUE - 518 CSSTV MAINTIENT SOMME CONTROLE DE LECTURE DE SECTEUR, DE PISTE ET DE VOLUME 522 UTILISE COMPTAGE TEMPS, DERNIER, SOMME C ET QUATRE MULTIPLETS A CSSTV 526 ---- ATTENTES ---- 528 SECTEUR DIX INITIAL 529 NIBLS DENSITÉ NORMALE (QUATRE BITS), BITS IM- PAIR, PUIS PAIR 533 ---- ATTENTION ---- 535 OBSERVER "NE PAS DEPASSER LA PAGE" 537 ALERTE SUR CERTAINS BRANCHEMENTS 540 ---- SUPPOSE---- 542 DUREE DE CYCLE UN MICROSECONDE 546 COMPTAGE "DOIT TROUVER" 548 ORDRE INFERIEUR DE COMPTAGE 549 (2K NIBLS A TROUVER) SvNroN sMnADo SIJOS Z65 nMAMMS NNMSOVMMM 165 SÂNVGNOdSSMOD NONIS UftMld o6- isVd VI uaSSVaG SVJ 3N 898 LIs aNooas &SNSÂSSI'IO 1IIN L9 ( NVxaMNIVK WG HIItVd V NOIJdfl-MSNI aNflnonfV) aCV.aU 989 LNVGNOdSMMIOD MON IS 5flMa 5 MOVc V'I USSV.g( SVd aN C lIs HaINauId &NWSNSSI'ID 'ItMIN z98 MElSI ' TflMN NON 18 a'IVNII SaIOMNOD SaOS IS o0s saSmNNOG a Sa sa'daIinx aslvnb uns aIonos 6L5 saaoNNOc sSlaidIai:n sSI:uoW. 9L5 SUIVd la SUIVadI S;ai s SNNOisf. L OVd V'I USSVd3q SVd aN i7L vhIa &I",, 'I9IN aFlmoasi CLS (USAs.aId saI) ZL GSI SNVE.. I,. SUIVdNI SLIs NDIIV - IL ova VI ussvads. sV aN OL5 UIVdNI LII9. q9IN affliogl 695 SaIOLNOO SHHOS NOIJVSIIVIJINI L9 (41'V Â3O-JlS 'NON IS) C9 zc assauaUV asovnbfvN 19 i oYv VI mssvasai SVJ SN c95 szalazIqnw a-Lvnb anfusoI Eoa XaGNI 09 (zLtv ao-Asa 'NON IS) 6 z assaaav iavnbuvw 855 iDVd VI uaSssvd4a sva aN LS 3snorV 'IaN GaVISHI gg (NoN is aîonoa) ç; z t assauav aovnbuvw CúS 3SVd VI HSSVdsa I SVd amN Z lIN aUfnialI SS fnao: 'aSSuaQV eoVflbVN oçç S60Z9LZ /t ú" 2487095 RWTS2 DISQUE LECTURE/ECRITURE PISTE/SECTEUR (16) F219 4 SOUS-PROGRAMME ECRITURE (FORMAT SEIZE SECTEURS) 9 ECRIT DONNÉE DEPUIS NBUF1 ET NBUF2 12 D'ABORD NBUF2 DE HAUT EN BAS 14 ENSUITE NBUF1 DE BAS EN HAUT 17 ---- SUR ENTRÉE ---- 19 REGISTRE X: INSTANTS NUMÉRO INTERVALLE $ 10 23 ---- SUR SORTIE ---- RETENUE SI ERREUR (VIOLATION PROT W) 28 SI PAS D'ERREUR: REGISTRE A INCERTAIN 31 REGISTRE X INCHANGE 32 REGISTRE Y MAINTIENT $ 00 33 EFFACE RETENUE 35.---- SUPPOSE ---- 37 DURÉE DE CYCLE 1 MICROSECONDE ANTICIPATION ERREUR PROTECTION ECRITURE 41 INDIQUE ERREUR PROTECTION ECRITURE AU LIEU D.'INTER-. RUPTION 43 DÉTECTE MARQUEUR PROTECTION ÉCRITURE -44 BRANCHE SI ECRITURE NON PROTEGEE DONNÉES SYNCHRONISATION 46 PASSE A MODE ECRITURE 48 POUR CINQ NIBLS 52 TEMPORISATION EXACTE 53 TEMPORISATION EXACTE 54 SYNCHRONISATION ÉCRITURE 56 NE PAS DÉPASSER LA PAGE 57 PREMIER MARQUAGE DE DONNEES 59 DEUXIEME MARQUAGE DONNEES 61 TROISIEME MARQUAGE DE DONNEES 63 INDEX NBUF2 -64 POUR TEMPORISATION 67 BRANCHE TOUJOURS 68 INTERROGATION LIGNE INTERRUPTION jFû 2487095 BRANCHEMENT SI INTERRUPTION PRODUITE POUR TEMPORISATION MEMORISE MULTIPLET CODE TEMPS DOIT ETRE 32 MICROSECONDES PAR MULTIPLET (DEUX SI BRANCHEMENT NON PRIS) * 78 ASSURE AUCUNE INTERRUPTION DE CE MULTIPLEJ 79 BRANCHE TOUJOURS INTERROGATION LIGNE INTERRUPTION 83 BRANCHEMENT SI PAS D'INTERRUPTION 84 INTERRUPTION SERVICE 87 MEMORISE MULTIPLET CODE 89 - MOINS DE 1 MILLISECONDE DE LA FIN ? NE CONSERVE PAS ECRITURE ET INTERROGATION 97 ECRIT LE DERNIER DES MULTIPLETS CODES 98 SANS INTERRUPTION D'INTERROGATION NORMALEMENT POUR TEMPORISATION 103 BRANCHE TOUJOURS 104 PASSE A SOMME CONTROLE ECRITURE MARQUAGE GLISSEMENT DE BITS 106 ECRITURE 107 MARQUAGE GLISSEMENT DE BITS - 113 r -ÉCRITURE MARQUAGE GLISSEMENT DE BITS ÉCRITURE MULTIPLET D'ARRET ÉCRITURE SORTIE DE MODE D'ECRITURE PASSAGE A MODE LECTURE RETOUR DEPUIS ÉCRITURE TRAITE INTERRUPTION COMME ERREUR MISE EN PLACE MARQUEUR V POUR INDIQUER INTERRUPTION PRELEVEMENT DANS MODE ECRITURE PEU NE PAS TRE RECU ICI SANS CLI OK SOUS-PROGRAMME D'ECRITURE NIBL 7 BITS REGISTRE A OU D AVANT SORTIE A)1 RETENUE EFFACEE NEUF CYCLES, PUIS ECRITURE SEPT CYCLES, PUIS ECRITURE SOUS-PROGRAMME ECRITURE NIBL SOUS-PROGRAMME DE PRE-AJUSTAGE (FORMAT SEIZE SECTEURS) - CONVERSION DE 256 MULTIPLETS DE DONNEES D'UTILISA- TEUR (TAMPON) EN MULTIPLETS CODES A ECRIRE DIRECTE- MENT SUR DISQUE 149 SOMME DE CONTROLE CODEE DANS PAGE ZERO "CKSUM" ---- SUR ENTRÉE ---- BUF EST INDICATEUR MULTIPLETS DEUX VERS PLETS DE DONNEES D'UTILISATEUR ---- SUR SORTIE ---- REGISTRE A SOMME DE CONTROLE REGISTRE X INCERTAIN REGISTRE Y MAINTIEN ZERO MISE EN PLACE RETENUE DEMARRAGE INDEX NBUF2 DEMARRAGE INDEX TAMPON UTILISATEUR -MULTIPLET UTILISATEUR SUIVANT DECALAGE DEUX BITS MULTIPLETS D'UTILISATEUR EN COURS DANS MULTIPLETS NBUF2 EN COURS (SIX BITS A GAUCHE) *DE ZERO A g 55 BR SINON BOUCLAGE INDEX NBUF2 A ZERO INDEX TAMPON UTILISATEUR (FAIT SI ZERO) (ACC = ZERO POUR SOMME DE CONTROL(COMBINE AVEC PRECEDENTS) BITS DE TRONCAGE DE BANDE POUR FORMER SOMME DE CONTROLE EN COURS 256 MULTI- -167 /tJjt, 2487095 RECOIT EQUIVALENT CODE 186 REMPLACE PRECEDENT 187 MÉMORISE A NOUVEAU PRECEDENT REEL 189 BOUCLE JUSQU'A CE QUE TOUS NBUF2 CONVERTIS 191 MAINTENANT MEME CHOSE POUR 192 TAMPON AJUSTAGE 1 193 POUR PISTAGE EN RETOUR (NBUF1-1) RECUPERE CE QUI EST MAINTENANT "PRECEDENT" 198 UTILISATION DERNIER COMLME SOMME DE CONTROLE 201 TOUT EST FAIT 205 SOUS-PROGRAMME DE POST- AJUSTAGE FORMAT SEIZE SECTEURS 210 D'ABORD CONVERSION EN SIX BITS 211 INITIALISATION SOMME DE CONTROLE 212 RECOIT MULTIPLET CODE 214 REMPLACE PAR EQUIVALENT A SIX BITS 216 BOUCLE JUSQU'A EXECUTION AVEC TAMPON 2 217 MAINTENANT Y = O 218 MEME CHOSE MAINTENANT 220 TAMPON NIBBLE1 221 TOUS LES 256 MULTIPLETS 223 ASSURE CORRESPONDANCE SOMME CONTROLE 224 LE MIEUX EST ZERO 225 PREVISION ERREUR 226 BRANCHEMENT SI OUI 227 INITIALISATION INDEX NBUF2 228 INDEX NBUF $55 A $ 0 229 BOUCLAGE SI NEGATIF 231 DECALAGE DEUX BITS A PARTIR DE 232 NIBL NBUF2 EN COURS 223 DANS NBUF1 EN COURS 235 -MULTIPLET DE DONNEES D'UTILISATEUR 236- MULTIPLET D'UTILISATEUR SUIVANT 238 BONNE DONNEE 241 PASSAGE SUR FREQUENCE D'HORLOGE 1 MEGAHERTZ 243 (SEV UTILISE POUR POSITIONNER MARQUEUR V) 247 TABLE DE CONVERSION NIBL SIX BITS EN SEPT BITS 252 CODESAVEC PLUS D'UNE PAIRE DE ZERO VOISINS OU SANS UN VOISIN (SAUF B7) SONT EXCLUS 284 TABLE "DES CONVERSIONS" SEPT BITS EN SIX BITS (FORMAT SEIZE SECTEURS) 288 CODES VALIDES % 96 A $ FF SEULEMENT 292 CODES AVEC PLUS D'UNE PAIRE DE ZERO VOISINS OU SANS UN VOISIN (SAUF BIT 7) SONT EXCLUS 298 UN MULTIPLET LAISSÉ - 339 SOUS-PROGRAMME DE RECHERCHE RAPIDE 343. ---- SUR ENTRÉE --E 245 REGISTRE X CONSERVE INSTANTS NUMEROS D'INTER- VALLE $ 10 348 REGISTRE A CONSERVE DEMI-PISTE DESIREE (SIMPLE - PHASE) - 252 CUR TRK CONSERVE DEMI-BIT EN COURS 355 ---- SUR SORTIE. 357 REGISTRE A INCERTAIN 358 REGISTRE Y INCERTAIN 359 REGISTRE X NON PERTURBE 361 CURTRK ET TRKN CONSERVENT DEMI-PISTE FINALE 364 CONSERVE DEMI-PISTE PRÉCÉDENTE SI RECHERCHE A ETE NECESSAIRE 368 MONTIMEL ET MONTIMEH SONT INCREMENTES DU NOMBRE -DE QUANTA DE 100 MICROSECONDES IMPOSE PAR LA RECHERCHE POUR LE DEPASSEMENT A LA MISE EN MAR- CHE DU ?IOTEUR 376 ---- VARIABLES UTILISEES ---- 383 PRESERVE PISTE VISEE 384 SUR PISTE VOULUE ? 385 OUI, EXCITATION PHASE ET RETOUR 387 COMPTAGE DEMI-PISTE 388 PRESERVE CURTRK POUR 389 ARRET RETARDE 391 PISTES DELTA 392 PR SI CURTRK = DESTINATION 393 (SORTIE, NON ENTREE) 394 CALCUL TRKS POUR AVANCE 395 INCREMENT PISTE EN COURS (ENTRÉE) 396 (TOUJOURS PRIS) 397 CALCUL TRKS POUR PASSAGE 398 DECREMENT PISTE EN COURS (SORTIE) 400 ET "TRKS DÉPLACE" 403 SI TRKCNT > $ 8, QUITTE Y SEUL (Y = $8) 404 PLACE INDEX ACCELERATION DANS Y 407 POUR "INSTANT DE MARCHE" 408 (INTERVALLES 100 MICROSECONDES) 410 POUR COUPURE DE PHASE 411 COUPURE AVANT PHASE 412 ENSUITE ATTENDRE "INSTANT D'ARR T" 413 (INTERVALLES 100 MICROSECONDES) 414 COMPTAGE "PISTES" DEPLACÉES 415 (TOUJOURS PRIS) 416 STABILISATION 25 MSEC 417 PASSAGE SUR ARRET DE PHASE 418 RECOIT PISTE EN COURS 419 MASQUE POUR UNE PARMI QUATRE PHASES 420 DOUBLE POUR INDEX PHASE MARCHE/ARRET 423 MARCHE/ARRET UNE PHASE 424 MEMORISATION REGISTRE X 425 ET RETOUR 429 SOUS-PROGRAMME ATTENTE MS 433 RETARDS D'UN NOMBRE SPECIFIE D'INTERVALLES DE MICROSECONDES POUR TEMPORISATION MOTEUR 438 ---- SUR ENTRÉE ---- 440 REGISTRE A: CONSERVE NOMBRE D'INTERVALLES DE MICROSECONDES DE RETARD 445 ---- SUR SORTIE ---- 447 REGISTRE A: CONSERVE $00 448 REGISTRE X: CONSERVE $00 SaOgio9XS HIVd sassv1O saqogwxss ssa aIavi SUflafIUa,( SVd ';D0a-HO0 OEDVISaWSSV aONVHO IH IgIdId nN I-NNOE JIVJ3 ÂSqflsH1. II-LSa aunS aSlaaab 'EINYNSLNIVN SOIqDN a ' NON LSaIVWOD sa( UgIAl SI INSNSCFIS9 IS SUCINCOE1 SVG V 9SSVd ALfV4I ú10 Nn1J aúlb SANJSIV HfMALVSIU0JAL aHDV'Sv'a -V'id Na Sula I0O àaNslaH SaNNomua LNOS X l Do 00V- isa dNou0smANI SkrVHoudM-SnoS '4DvId Nma af1NIaa IS -aOviMa au 1aMM MilsaimaNI LSaIdllNfl urlqLVSIOdwaL = k nSl3IusdlS &ladIL'1fli gIsnVSI0OaHaL = DOV: aIl&OS NOILVDIJIMDIS SNVS = 'a X IfVH Na SVE SOVdWO0 = DOV INIOd SaC agSaNq aCINvWOD daAIa'1 aniLoa'i astivaoOud-snos (aHOauHaOU) SSGNQ0DSOUD{IN 001 SU'rtIVAUxaJNI SNVU STE{IaV asVHd aUn aS axg-aSnUHaAno aauna (v aWLSIoau aViLdwaoo) SgsanLaaaSS SaTIVAUaINI..N., aQadIqnh-a'InOa zNa4aHDNI SacmooasouoIw 998 aVa' aCINooasoUDIm Nfl aIoxo asa aaGna sSOddfS.. NOILVSIgOdwal Hns JNSNNAlnUtlnOd SSNOOSSOUDIW 00I sa SaIVAMMSNI WVd SIOJ aNf SJN'MNMOSUNI INOS HÂiIINON 'ISNITNO0 anNa.a aoVId NM asIw afNVHO NI: X a7 Szoa- S60Z8qZ SSII 6i7 6i7 9 i7 i 9 5 zg q t85 L1 -917 oL'l 69i7 99i j C98 ozç gzS zS IZ5 821 LL-a 9LI7 L i7 Z i, o t1 69 t7 619 - a1.o suis II-flagd IlaidiflW si LCI (MIs la OUZZ S3-Vcl HSMAS) VI INOS S3TIIISVJ ST IS SlIOA V.nibsafl SUIO SacI SOVd aSfbVHo sva aadI'l UINSa Ma IVSSa CCI asva v asovuvwac zc vvs flnvaNNva SaI fls svo SNDII aNfl 'IV-a JIdIj&IfiN albVHo 6Zi KVHI SO SNOIlISO0 SSIV1VW sai 89ZI -IaaV UflOd SSI'IIjfl s&alaITlntI sSa ouaz v aSIN LZI ouaz v &oaadva Hvd SLidIlJiffl EaINUaG IVSSa aIvi aIOS aSIId VI anb ao v.nbsnlr SanNINoo IZt &NVAIflS UtISadWo0 laidInlif LIOOS OZl MONV(INOdSH0SOD NONIS IJMEV 'JNvifI0M Na UflMSd0OD aI OSAV MMVdWOD S2I la MZIflSNS SHI& IT SNIS'Id JNMIOS sisidI'ifW Sal S0oj, aflb a Vaflbsflr *'iId VI 9fls -IN3aIgaIffIi IISdIL'Ifl NMl aSSLfOI I 111 aliTV JIOS Sov.a nb s v. ribsfi SaNION00 901 OHsZ lIOS &aidIlIfln anb a v. fibsar iaIdLifln MG lNwAICS lIa Ivssa 90goI SNNOS Svd IS s0Vd VI uaiHuv ot laIdNOo IVSSa fnO0d i0O ouaZ sOVd Vq sKva lIq anfbVHO Col Nfl V MN'flOJ,,Ot 0oaZ aDVd MSItIHSA 001 Sra 11GE SvUfo'rcI Zg 011Z MDVd SOVSSVd,, 08 ouz 0 V SLqaiVfiNwoo oVSSVd LL Z&%USHV-DS XfmÂCI SSSZIA MOVSSVd 'NVUDO,SiV I SL DISONTOVII ALFGO SSa INVAInS JFgO,OE MaIHOIa aC NON OU INeMINII IS I 'lrlI NOISUSA I1fOd CI VUVS 0ILSONOVIOi 9a SIVSSI(. SNWXHVff08l snos i /:0000 DIiSOOVIG qIa SSNN'vHuHod-SfiOS VHVS SDILSONoVIa S6 0Z SZ NON, TROUVER LEQUEL IL EST MISE EN PLACE CORRS. MULTIPLETS SUR FF RETABLIT REGISTRE X ET INCREMENTE JUSQU'A PAGE SUIVANTE JUSQU'A CE QUE I/O SOIT ATTEINT ENSUITE RETOUR SUR PAGE 20 ET PASSE A GROUPE SUIVANT POUR CONTINUER (ENTRÉES DE MASQUES DEPUIS COMMUTATEURS POUR VOIR SI COMMUTATEUR EST POSITIONNÉ) CONTINUE JUSQU'A GROUPE "3" APPEL SOUS-PROGRAMME MIS EN MARCHE ECRAN MISE EN MARCHE I/0 A NOUVEAU EN TETE DE "DIAGNOSTIC" AVEC CE SOUS-PROGRAMME IMPRESSION "RAM" MISE EN PLACE CURSEUR SUR DEUXIEME LIGNE CURSEUR ESPACE SORTIE 3 (X ENCORE = O SUR RETOUR) LE MEME SOUS-PROGRAMME POUR MULTIPLETS 7-0 SORTIE CHAQUE BIT COMME UN "." OU '"1" POUR IN- DIQUER PASTILLES RAM MAUVAISES OU MANQUANTES. SOUS-PROGRAMME "RAM" MISE EN PLACE CES MULTIPLETS CHARGE UN "." SUR ACC CHARGE UN "1" SUR ACC ET L'IMPRIME MÉMORISATION MULTIPLET ET ROTATION TOUTES LES HUIT FOIS PASSAGE A FIN DE LIGNE PASTILLE EST PRESENTE, MAUVAIS ZERO ET-PILE IMPRESSION MESSAGE "ZP" ET POSITIONNEMENT MAR6 MARQUEUR (MODE 2. MEGAHERTZ) MISE EN PLACE INDICATEUR SUR $ F00O MISE EN PLACE X SUR $ FF POUR FENETRE I/0 CALCUL SOMME CONTROLE SUR CHAQUE MULTIPLET ROM SORTIE DE FENETRE 218'. â. ulnsuuz.a msanb NiflMUM (I HflaRf1b -h"v'N M3DVId Na SM a3.,a/Y,. Sovssaw NOISSsauMI fV6z NON C6z z zúC7 ov 16Z D0V RflS sV-MdO0 90V'Idsa3 ' NON 06z aÂNILNOO ' mlo 69z Li = L mz Is 88z (MnaHua = SSz) L8z NOSNOSaOD Hflnoa SDV;dWOD 9sz a/v adaxv asov'q Na- siW 9sz saUNO0SSOURII Ot- aNmjZZV C9z ama unanalbuVK ovV'IJ NM MSI alIflSNS za..vIoVI.. ODVSSa 'NON zLz INVAIflS IVSSS 'IflO ILZ OT = soeu oLz au la 'IOUMNO0 a([ S f1Va G SOa SlV.sL SNNOIJI(IGV ja LVi.JG UISITDaH aG aau.Nqa. 3 G.IE albSVW 99Z NOIJIGGV UflOd aSOVI Na aSIM Sg9 -anasa. a maanbuvu DV'Id NS MSIK la..VIA, MOVSSaN NOISSHIdMI 'NON 09Z NVAIfiS IvSSS 'IfO 6 Z ia IVDS 85Z SOdaS SG NOIIMGNO V'I SAV JNSGIMOdSSU -MOD S'IIS RIOA flOd OS' JS (aaINSaa aO afnbsV) zSz SVIA Y I SOEUSISDS '*SSSH NOIlIG(V 6iZ NOITVSIUOdNSJ NOIJIS0Od SNVG S.SIROKSW SLS'IdI'Ifln V SNNOIJIOIGGV AS S.MLNÂ1G SMIE MabSVw 9 Z NOIAVSIMOdaWl &OILISOd SNVG SSMIdIqIflN SSI{ON.W S. akULNSa.G Ilg SflbSVI fCiZ SsaIdIjiflW RmflOrV HflOd asOV'Id Nma SSI t1iZ IVSSa1, SUvUDOuad-SflOS wVd 6Cz Unafla aDVqd Na SSIw la,NOU., NOISSU SN9I'I CI NIJ V YOVSSVY ZEI NOISSSudWI Ja ÂaIVkirON SOVWI LO- SNKVUeOUd-SfIOS SNIVHDO SIMMUDltO C0 VYVS IVSSa sSwN.IVDOoa-sflOs oo007 J; 'Vcs(I V I1O0Lau LPC fCC " 6o&v'iau.. oCú ISSfl.V MOO V -I V, OSC issaiv aNo-rvz;-.u vq1 çzc 09 saSId. mod tizC 0oooV e V NV SNVG TZC Oua0Z 00Ig ÂunJoai 91C anflOMa SIVWVr la LIC HI:IAVIO MOVMM I ausalqflo au sO dVf alAOtaais 'mOu O út I aÂIdIV., IVSSa z IC :HÂaOV-VO la HflMAINOW SSIIVIIINI IIC NV9OM 2HOUVW Na SSIM 60C &MHVY JNSWNHONVUEI ' NON ( Z/SHVDSW Z iaow) a 9 QMHMMs z Z0M) iD3Vid Ma HmHua unanfbVw INSN2HONVHG 'NON (INSSSUrd INrVMOD UGOa) 49HODIàNO UIAVIO s60Z8Z coc zoC ooc 66z anbsIa aa Dooa mmnioaq = m Lzi aUIONS LNSKaaoVIada = 1 9ZI 3wt4Veouad (SuIÈa.Noo) Lnvs = r SZI aSI"Huoua-snos (isaav) assva = 9 zi aDvxvTva Jvis s oa niv ssiI OZI DOV V aGfO aSSVd 811i :unoAsa J' i. l NOImONOi no asssuaV aSSflOa 1.11 C'1v ans SIdO0 'OusZ IS 901 zsaivoaci sno0 col ZV SNVCI MH SSaJIHo aDV'IVD oo001 XaH M-V {oflO IVSSS Z6 6-1 IS amasacia I6 SaUIIHO aa IVSSa o6 SIO0 aNIVHDOOEc MOd *0 XSaNI s.Aora 8g ZV qtOVl. i78 - VAvAIfiS SCrvoIVO0 anfotaa Z8 ÀLNVAIflS MI91VOICNI &IOOMM 18 0 IAOO III4% 0g N0JJONOd.lI5dfl 08 HOtHIO V SnflNILNOD NON 6L zAnouj sL $1EVSSIVNmOogu NON IS mOaNVEV LL SaCINVwo00 aISS-XIa L Safis mO a N S EL2N z if NIGNI sSIuONsl 17L XSH JSaIdanSIIf a1i'i aa SArLLViNal CL usI'InOSt soVXVIVEa OVcI ma NÂ Z; asNpis.c1 ZNOI'I sNl IOo3s IL VWvS HlasINOt fnoa (aqJdv) ivNois 69 aIVILINI NOIlISOd V aqIa I'aTV&auL L9 X3{ a:ow auJ LIoa g9 (aC-oVC$) SJSIdIJfnl 0o NSNsaIflns VHVS UnflINO0 V6 NON fO'.ON YOSI Sa NVAInS &f'sO a UaIHOIaI eP NON-------- V[cI OGIqqSd DO'IEI HfllNON s6OL9z B.IIosy izz AIVi ' NON cZZ SZONVHO sSGoN zzz flfNILNOD 'NON OZZ &.. IIOSV 6 iZ SIOd SNIVHDOUd WiflOd qOúM 'LIZ tmIONqw V IIOSV sssva giZ Un3:IUScIns JIG YSM aAUSSMc vilZ Oa n1VsAnON Moa IVSSa 90Z 08 llOa IVSSa daIDIONV 661 sInoúno& MHONVMI L6î s$NIOca XCia $ NOISSHVdWI 961 a.-.-v.. an&oaaa 161 6 S60ZL8Z TV aIlHOS sa assauav sDVdS3 Nfl DaAV 3ONSWOD aovdsa Na IL ilaidL'If ifi aWI7{JWI L sasmmoa sali ls dflsVtVJaS mof0 SLNI0Od Xi xna a a ILOS liv sai asssauc SKIUaxIN LIVf LSS VaDO IS SIJIHSA 17v JÂa IV mosLaN aNDI' 'MYIAflON V aSSVJ SJSdI'IflN XfQMa SMa NOISSaMUNI LNVAIIS V 'IflO & NVQNOJ SMMlO O qJININO JV JLV'IA'IfW ISVdS4OO MIIaVA iDVl IVSSa ZNMNMAflON OMAV LIV JSM AQOA ?V M IV M1O1MúM aLIdIJ'flWN Nfl4G INaPSDV'ICS(I VqVOMTII MS.MMNS IS UgOV'IÂS NaIH SN aI8 zNaNaovsaa SHHOUOZ aa afqONVK V.flbSflar alaud s7{flOirnO.L naIuadaS LIag anbSvw aIbSVW NON Ufl3ITIdfS II aSOVqI NM SSIN 6MOIVYSIUONSH aC SGON Na -V&M;LNTILNIVW IVIS SAUASSEUd o.. mnaidsdrs aNIa'NI Ii.. HaIHsIEdas gnbIaiNI ILNVAMfS S'I sfliDSOEIOES NOIJVSIUONSW V aSSVd INIA '4I1O &aNDI 2 NIA saGON SDNVHO 1O0 IVSS9 'NON i: 9LZ 8ze ú8Z gLz CLZ ZLZ ILZ oLz 69Z L9z 09? i9 z Z9Z 0o9Z og'?: Oçz L8Z 9qZ ggZ oCZ 0O7Z 6úZ CZg Lez 9cz úúZ zcz oúz 6zz LZZ SZZ Sqa'dfllaw Z15 LVd wvu zsssav glDars 185ú 0o0' sa oualnifN 1qiDara Içc SOEMNO3NSH Hilqud IS NOUNVEV oSc u1fa1.INOP14 JLNVQNac mOiLdlP!ÂsJNI. a svd 9 V AM X U1VJ 001 Sa ouMMn4N JS 9ic SSSSUIVG NIi assasav > oo0s sa ousflnm sa acmNvwoo sa.vwoq Cic Snfl&IUOi Uns aflbsIG SaNcWOo aD0V'ia 0oC saIadllmn xna1 a lnfivs nfs mIG xn:vi SI' Uflnoa anbsIa (a aa(Ifv4oo aovaa ma SSI.-_ 8sC S0IOK aOVqa m/lOa iCC SSLN.t a aatovVuO asII&rn úcc &NaHaDeVaM Sao0 SmA.. /.. Eaoa qsIL&n &SNSIsvS oúú -fSIVOICINI aSOSú LzúC SUIOaR Na SOVlqd SI 9zc -3SIOONWSI V lMlIJIflN LIOO çzC NOIJVSI.ONS JVAL NS JNSILNIVN iZC NOIAVSIUOP0R Zcow zzc alIfSNSa aOVdSMa SUMV Na IS IVSSS ozC SJa1dlIL'IflN Sa SSNVU aNfl 9-NO A'NI cNlOnV IS 61C aNDI9II aG aONÂSV IVSSq 9IC Sf0offlOL 'HONVHu 9tI 0ouz Mcow 5TC aSOVGIA no IVSSS NOIlVSIUOR4S0 aCow MSJVUVdaS 11 C NOINVMI saci uflOd Iv 1S zV IdOo O80 JOIdVHO Y0OtiMa V SIluOS SOC , Nfl iVd IAIsS SaigVSNOdSm I SIMdNI zOC MHIMMI.G Mú1NON SWIdNI IOC - f1ÂLVSIqIIf SakUVMOOUd v invs 66z akVUZti90 SIG lTfqLdRPOo IIcTaW 96z aia uniS NIm OaAV alId aONSNNOO L6z IIMOS SO NV!Y-DOg HVd NIJ z6z aDVdSg Nfl SKIIdwI i6Z IV R-Vd ?N-gSia LSaidIinN SwImdlI 69z SJNIOd XMlZ OÂAV SUVdZS 98Z S60OL9Z SaNNOqOD 08 nSVAON V SSOddanS 19 (SSUaANI/qVON anbIC[I L JIE) L I;I SaOSI 19 JNm3launflv o0 fms axI SIV - NaINHDaKV- la 0o aSOdfaS LS saoqoo o017 saox v assva 5 SagUISga SaNNOQOD Ot aabIaNI 95 suno.oflQJ aHONVEI Z saNNo0oo 09 aaoW v aDsYSSVd 15 SauISsa c saNNOoo o08 anbIaNI 0Q aLIEs VI MIyadNI 'LOanza- a NON i7 2KorI aa.NI IVSSa gi zv l;a Iv asaoars 1 dHIa;lOS a'1 Os7 -oVdSa N. aHIAdHI NONIS 6C SMIOLN0O NONM UtIUdWI flOd M0 8C a'IOH&MO0 SaMlOVU.V0 IVSSs LC aSIVI0ON SVWI OV'Id NS aSI 9gC aUIVaNÂaqdflanS aOVdSS mn SIzardI - CC amIIo sa lniaci v uinoLau 6z (ov M Swoo MUIL asisnr ov) siflnoroflO, Lz sovdSa n Ja JLNVAIfS JEadIqnw MOlISSÂaUI v assvd 9z su!norofloL aHONa - z SmN0o0o o / _ noa a _ Od ' N 1vss a NIZ ISS - IISV O3AV NIM OZ J.azIcLiff u1Â1NÂid J'a assuaGV ZWIddWI si saIIVA s3Vo IVSSa 9t IIOSV SOVQIA MfOd 17V SSIIIfl Z S3NNMOIOD 01 nO 09 HflOd 3OVId MN SSIN I1 *SGIA 6 SMIlOflOL SHONVuat L 0OV SNV G UflUOHW'I anflbSVI LIOOM 1 7 SSalILffIN SO t agONV{ aIlHOS I LNVAI1.S.30q V YSSVd 'NONIS LgC NIl aG IVSSa 9gC SINON, MISE EN PLACE COULEUR FOND 68 MISE EN PLACE CURSEUR EN HAUT A GAUCHE DE FENETRE 71 MAINTENANT DESCENTE A EFFACEMENT FIN DE PAGE 73 PRESERVE POSITION ACTUELLE DU CURSEUR 78 PASSEA FIN DE PREMIERE LIGNE 81 PASSE A LIGNE SUIVANTE RETABLIT POSITION CURSEUR 87 RECOIT ANCIEN CW A NOUVEAU DANS ACC 88 BRANCHE TOUJOURS PASSE A FIN DE LIGNE D'ABORD 91 SI INVERSE SI RETOUR CHARIOT, NOUVELLE LIGNE 97 D'ABORD PASSAGE A LA FIN DE CETTE LIGNE REMISE CURSEUR ET PASSAGE A LIGNE SUIVANTE (RETENUE EN PLACE) 99 ENSUITE PASSAGE A LIGNE SUIVANTE 102 ESSAI DE HAUT D'ECRAN 103 ANTICIPE "NON" HAUT SI. NON LE HAUT, CONTINUE 106 BOUCLAGE VERS LE BAS 107 DECREMENT D'UNE UNITE 109 PRESERVE NOUVELLE LIGNE VERTICALE 112 RECOIT VALEURS POUR PREMIERE PAGE (Dollar 400) 113 TOUJOURS ESSAI POUR 80 OU 40 -118 EJECTE CURSEUR HORIZONTAL 119 ESSAI POUR NOUVELLE LIGNE 121 JUSTE DANS CE CAS 123 CURSEUR AU DÉBUT DE LIGNE SUIVANTE 126 DESCENTE CURSEUR D'UNE LIGNE 127 ANTICIPE PAS LE BAS 128 ESSAI DU BAS 131 BRANCHE TOUJOURS 133 ESPACE ARRIERE ? ESSAI POUR MODE 40 OU 80 44Lj ESSAI DE BOUCLAGE PRESERVE NOUVELLE POSITION CURSEUR BRANCHE TOUJOURS EST-CE UN CARACTERE DE CONTROLE ESSAI D'INVERSE NE PAS LE SORTIR ELIMINE LE BIr SUPERIEUR DEPLACE CURSEUR A DROITE C'EST LE BAS, RAMÈNE CH = O ET ENROULE MISE AU REPOS CH SEUL CALCUL ADRESSE-DE BASE EN BAS4-L,H POUR LIGNE DONNEE, NON DE MEME POUR PAGE 2 PRESERVE CARACTERE NORMALEMENT COMPTAGE 1 *SONNERIE? NON ESSAI POUR AVANCE FORMULAIRE AVANCE DE LIGNE? DESCENTE CURSEUR UNE LIGNE BRANCHEMENT SI AUCUN ENROULEMENT NECESSAIRE DEMARRE AVEC LIGNE DU HAUT LA PRÉSERVE POUR MAINTENANT RECOIT CALCUL DE BASE POUR CETTE LIGNE DEPLACE CALCUL DE BASE EN COURS COMME DESTINATION ADRESSE DE BASE TEMPORAIRE RECOIT LIGNE DESTINATION CALCUL LIGNE SOURCE EST-CE LA DERNIERE LIGNE? OUI, EFFACE PRESERVE COMME PROCHAINE LIGNE DE DESTINATION RECOIT ADRESSE DE BASE POUR LIGNE SOURCE DEPLACE SOURCE VERS DESTINATION DIVISE PAR DEUX EST-CE FAIT? OUI A LIGNE SUIVANTE DEPLACE DEUX PAGES BRANCHE TOUJOURS REMPLISSAGE DERNIERE LIGNE EN BLANC DIVISE PAR DEUX NORMALEMENT UN ESPACE SI 80 COLONNES, EGALE^ENT UN ESPACE ESSAI POUR FIN DE LIGNE MULTIPLIE A NOUVEAU PAR DEUX CONTINUE SI DAVANTAGE A FAIRE TOUT EST FAIT ESSAI POUR 40 OU 80 MEMORISE LE CARACTERE SIMPLE ET RETOUR ASSURE AFFICHAGE CORRECT 40 COLONNES EN ABANDONNANT BIT ZERO AFFICHAGE EN PAGE $ 400 -MET EN PLACE EGALEMENT COULEUR DE FOND PRESERVE CARACTERE DETERMINE LA PAGE BRANCHEMENT SI PAGE s 800 CARACTERE D'ECHO ESPACE ARRIERE? ANNULATION? PAS DE BOUCLAGE PERMIS JEU DE SORTIE DEMARRAGE AU DEBUT DE INBUF TA}iPON D'ENTREE DE SECOURS RECOIT ENTREE -ESSAI DEMARRAGE/ARRET LECTURE KBD EST-CE UN ESPACE? OUI, ATTENTE JUSQU'A MANOEUVRE DE TOUCHE SUIVANTE QUITTANCE POUR CETTE OPERATION? NON IGNORE CETTE TOUCHE OUI, REDEMARRAGE ASSURE QUE PREMIER EST CURSEUR - 273 - 288 3o4 IIosv ali lIflGOdd (OusZ 'LiaIf S aio,. aDIXa 3IIII a 3SIAflaN) saa3lovawo naer uns xaGNI aOVIda Na SSI MvODa XaCUI SNOIJISOà s OIOVSIqVISINI NYr3aS aSDVJ SaNNO'IO0 Ol SOV'Ia Na ' ovc - v aaiiaN, a Noawvja masmo au aulé nfaS filUNalma NaIE C uns sSa OHaZ agVd oo0 aVYSI Sa SLAODVvD AIoam SaNNO'IO O0 V IS AflINSIaU aNINIS SZNNOiOa 08 v Sacow nat I.IOV. S 'I4S a a0Vc V" aNIda aVi Ianlov NOIIISOd V SaIgOVVO Nfl 1IOo3a IVION IIOSV v aSSva krylon aI SDVRWO;IOOD &MIdO0 aONVAV &aoV00 9 Q aaLNDNVIO a VIIVOo EaHYIaVSlfs Ufnasif aO a ISM'd aSIDVIIVO N_ G lfaUOaI V aSSVi anoaaa. no aAn0ui v.nbsnr aIonog Saoo Sa SLIiOeNVHO MacIVNo aci IVSSa 1NZVAIfnS Sú OVVdVD f amISLI, asOvISaa as wlaslflO aflb uflo:I + aSOVId a,q qf0oa SWaA IS AifO.L0a HMIAVq M aOVNMOTIIINVHOM aavaa IMIAV'IO aalfLoai sanAoftOw a0fnoî au îVcr MAIsaMI aSAf1a0-oV1 a3MOf1OL NaVXa V SOVSSVd Sd-l{.L NIn.INVGNgd aN9IafOS 2I NOIldgOI VS V SSSVd 2HO.qO0 Sa aEAI1SONVN Sa IVSSa 3HM0 Sa NOIIISCOd V GE2OVVD MAMSSI{d XVluoa ualIOqi V aSSVd cg o6C 68C 88ú 98g tçs 58ú 99C Sgú C9C t9c C L C SSc TSú oSú 9qc 9gg gcc zúú occ 6zú tag Izc 61ú 81ú LIC 91C lf S60Z8Z ç;7' & SIIVI SII-LNOS SLNSSOV'ISdW SS. CZI SSaALOVIVO SSHLfV 19 nfOQ adOflYM o aL9 a ZZI SSOaVHO INVNSLNIVN SSSIDOVtVD I T fVSARON V aiNgLV 611 IVOILMMA UO119 NIVHOOad 91NSVY 911 SauslOVHV3 unS SSasIdIJMN aJ2aWS V SIVdaTd 911 IVWMON SMo0 sovc NaS SSIx 1 (sag % - 92Z7) qIAÂllVd sfanoo Zll issisoSWw ssOENva SaSAO 601 SLNVAIlS SWONVa 'NON 901 nfLOsaaa sadnou9 o s:ILvNaSIadfnS. SDVONOH, SNIWI'1 101o :LLNSD SEA SDV'IV3SC 001 DVHI'. aMNOZ SUSA SSI$OV-dVO SIIJMOc ÂOVaD'd[C L6 aSHOIav NON SDVI.O aNOZ SSA KS DIVldadC C6 nNXSUA LA INVLSSU SUIVNIS - IIJOUa MAiss.M 16 SINVAInS VI V NON o6 &SqLIVt SSSaDNV SSi SaRLoA 68 LNVAIMS fV NON 99 -Sfosm SAIi bNIO SSqi SmOL L SNNOIOD 0OVLJWOD AIiVia. 99 (sIvoma LNaIos a sno Sanb so V.5lbSar lfN NON SIosIdIJIfWll aAOSN0OD SfNaLal) 5 SuSgLovtv a SG MVL XSGNI MIODS Cg LIV iLSs iLOL IS LNWMaHONVua Z9 (aSovad Nma SRNSLa:sON) 19 LsqdIaf go SNVa SII aa SOVLNVAVG IS SHuNVd 6L SIS Sta SSdflOU NS SaIdIfflK aUVaS LL (SUNNOSOo bNID) 9L (sss9Nv XIS c sa L0VaVO auSvflb) SL S3IuIVi aIouda LIaviLr CL SU1OfOL 2HDNVMM ZgL Zj 3G SdftOHD GNOOS 69 SuIS2LDVIVo 3'igVAL SDVGOOSa v assvJ 89 aSSVd auaIWad VI HaOd SSGOOD L S60z8tZ Hfaogg sCi ajNaZV LLI - IVOIL.{S mflO3a iVSSa LT 0 v HflsDIadnlS Slia àVSSVd ZLI Zao 0f1Od scrN-V0oo SNaO9 ILI uSDIONWN V SLIg IAuSÂ&I OLI MOISMMANOO' LgI uaMOSLM ST Moi SZ I LNM2WOVridWNM 3ROH IfOd IIOSV mVgDaiN Lci 3NDI1fOS N3NMOV'IdW3M aOV1 NM MSIW LCt MIgfllIgVH OVLdlOO3SC LZI úNVAIflS adflOUD UflOd IIDSV SU1fTfVA ININITM T MMIVi SM% NON 1gI7 560L8 Z