Recherche:Archéologie de l'informatique/Thomson/Page directe du moniteur

Une page de Wikiversité, la communauté pédagogique libre.

La ROM du moniteur réserve 256 octets des adresses 2000 à 20FF (sur les machines MO) pour son propre usage. Si vous souhaitez effacer cette zone, vous devez garder l’interruption désactivée et vous ne pourrez plus utiliser les appels SWI.

Mode texte[modifier | modifier le wikicode]

2000-2018: TERMIN - Fin de ligne logique Cela permet à l’éditeur BASIC de travailler avec des lignes de plus de 40 caractères. Pour chacune des 24 lignes à l’écran, sa longueur réelle (qui peut être supérieure à 40 caractères) est stockée. Lorsque vous appuyez sur la touche ENT, la ligne sous le curseur est balayée à l’aide de ces informations de longueur. Lors de l’utilisation des touches DEL et INS, cela permet de savoir combien de caractères déplacer.

2019 : ÉTAT - bits d’E/S bit 0: L’analyse du clavier est à jour bit 1: La répétition du clavier est activée bit 2 : Le curseur est visible bit 3: Le bip clavier est désactivé bit 4: le dessin de texte est en mode transparent Bit 6: Le défilement lisse est actif bit 7: verrouillage des majuscules 1A : TABPT - Pointeur de tabulation Pointe vers la terminaison de ligne actuelle (?)

201B : RANG - Position du curseur X De 0 à 39.

201C : COLN - Position Y du curseur De 0 à 24.

201D: TOPTAB - Position supérieure de la fenêtre 201E: TOPRAN - Position gauche de la fenêtre 201F: BOTTAB - Position inférieure de la fenêtre 2020: BOTRAN - Position droite de la fenêtre 2021-2022: SCRPT - Pointeur d’écran 2023-2024: STADR - Adresse de démarrage de la fenêtre 2025-2026: ENDDR - Adresse de fin de fenêtre 2027-2028: BLOCZ - Toujours 0

Cette valeur est toujours 0. Ceci est apparemment utilisé lors de l’effacement d’autres choses, afin de ne pas avoir besoin d’un registre CPU supplémentaire pour stocker un 0.

2029: FORME - Couleur du caractère Sélectionnez la couleur utilisée lors du dessin.

Il peut s’agir d’une valeur comprise entre -16 et 15. Si elle est positive, la couleur sera définie comme couleur de caractère pour la cellule affectée et le pixel sera défini sur 1. En cas de négatif, la couleur sera définie comme couleur d’arrière-plan et le pixel défini sur 0.

202A: ATRANG - Attribut Définit les attributs de texte actuellement actifs :

Bit 0: double largeur Bit 1: double hauteur Bit 6: changement de couleur de premier plan pour tout l’écran Bit 7: changement de couleur d’arrière-plan pour tout l’écran 202B: COULEUR Stockez les couleurs de premier plan et d’arrière-plan dans le même format que l’attribut RAM. Utilisé par PUTCH.

202C: PAGFLG - Indicateur de mode page La définition de cette valeur sur 1 désactive le défilement de l’écran et utilise le mode page (l’impression après la ligne 25 revient à la ligne 0).

2D: SCROLS - Défilement fluide Le réglage de cette valeur sur 255 permet un défilement fluide des pixels.

2E : CURSFL - Marqueur de fin de ligne du curseur Se souvient que le curseur se trouve sur la dernière ligne d’écran d’une ligne logique. Ne liez pas cette ligne logique à la suivante lorsque le curseur est déplacé.

2F: COPCHR - Copier le caractère Contient le code ASCII du caractère sous le curseur.

30: EFMCPT - Compteur de clignotement du curseur Décrémenté par des interruptions, lorsqu’il atteint 0, l’état du curseur est modifié.

31: ITCMPT - Compteur d’interruption Compteur d’interruption de boucle générale. Incrémenté par une interruption de 50 Hz.

Graphisme[modifier | modifier le wikicode]

32-33, 34-35: PLOTX, PLOTY - Position de dessin Définissez toutes les routines de dessin sur la position actuelle du stylet. Utilisé lors du dessin de lignes comme point « de ».

36: CHDRAW - Tirage au sort des personnages Utilisé comme caractère à utiliser pour les routines de dessin :

0: Faire du dessin de pixel Autre : code de caractère ASCII à utiliser

Clavier[modifier | modifier le wikicode]

37 : CLÉ Défini par GETCH sur le code clé enfoncé.

38: CMPTKB - Compteur de délai de répétition du clavier

Son[modifier | modifier le wikicode]

3A : TEMPO Multiplicateur de longueur de note

3C: DUREE Longueur de la note

3D : WAVE Forme de l’onde sonore (valeurs de 0 à 5)

3E: OCTAVE Note multiplicateur d’octave (16, 8, 4, 2, 1, de la basse aux aigus)

Lecteur de bande[modifier | modifier le wikicode]

Remarque : cela nécessite un lecteur de bande.

40: K7DATA Octet lu ou écrit sur bande

41: K7LENG Compteur d’octets pour le bloc courant en cours d’écriture sur bande

Imprimante[modifier | modifier le wikicode]

Remarque: cela nécessite un port d’imprimante, qui est une extension sur certaines machines.

42 : PROPC - Code de fonctionnement de l’imprimante

43 : PRSTA - État de l’imprimante 4: Port ouvert 8: Prêt 10 : port fermé Prise en charge du système 44-45: TEMP - Registre temporaire Utilisé comme stockage temporaire par diverses routines.

46-47 : SAVEST - Sauvegarde du pointeur de la pile système Le registre S est enregistré ici lorsqu’une routine doit le modifier.

Opérations sur disque[modifier | modifier le wikicode]

Ces variables ne sont utilisées que par la ROM du contrôleur de disquette, pas par celle du moniteur.

48 : DKOPC[modifier | modifier le wikicode]

Opération sur disque

Utilisé par l’appel système DKCONT. Opérations possibles :

1 : Initialiser le contrôleur 2 : Lire un secteur 4: Passer à la densité unique 8 : Écrire un secteur 10: Passer à la double densité 20: Chercher la piste 0 40: Rechercher la piste 80 : Vérifier le secteur. Certains d’entre eux peuvent être combinés (88 est « secteur d’écriture et de vérification »).

49: DKDRV[modifier | modifier le wikicode]

Entraînement actif

  • 0 : Lecteur A, côté supérieur
  • 1: Drive A, côté inférieur
  • 2 : Lecteur B, côté supérieur
  • 3 : Lecteur B, côté inférieur
  • 4: Disque RAM
  • 4A-4B: DKTRK - Piste disque

Il s’agit d’une variable de 16 bits en raison de l’utilisation sur QDD comme numéro de bloc « LBA ».

4C : DKSEC[modifier | modifier le wikicode]

Numéro de secteur de disque

4D: DKNUM[modifier | modifier le wikicode]

Facteur d’entrelacement sectorielLa valeur par défaut est 7, qui présente les secteurs dans cet ordre : 0,7,14,6,13,5,12,4,11,3,10,2,9,1,8

4E: DKSTA - État du disque Utilisés comme bits d’erreur après l’exécution des opérations sur disque :

bit 0 : protection en écriture bit 1: erreur de suivi bit 2: erreur de secteur bit 3: erreur de données bit 4: lecteur non prêt, pas de disque ou de moteur éteint bit 5: erreur de comparaison (les données lues à partir du disque et la version de la mémoire sont différentes) bit 6: non formaté Utilisé comme information sur le type de contrôleur après l’initialisation :

43 (« C »): régulateur de densité unique 44 ('D'): contrôleur double densité 4F-50: DKBUF - Tampon disque Pointeur sur une mémoire tampon de travail de 256 octets pour le contrôleur de disquette

51-58: zone de travail Utilisé à différentes fins par la disquette.

Numérisation du clavier, interruptions, tables de caractères personnalisées[modifier | modifier le wikicode]

59: SEQUCE - État de rendu de l’écran Ceci est utilisé comme enregistrement d’état pour la machine d’état d’affichage à l’écran. En particulier, il permet le rendu de caractères accentués sur plusieurs octets.

5A : US1 Stockage temporaire des paramètres pour les séquences d’échappement américaines

5B : ACCENT Stockage temporaire pour les caractères accentués sur plusieurs octets

5C,5D: SS2GET, SS3GET Stockage temporaire de la machine d’état de l’écran. Ceux-ci stockent les deux paramètres des séquences d’accents codés sur plusieurs octets.

5E-5F: SWIPT - Pointeur de table d’interruption logicielle Cela pointe vers la table des appels système utilisée par le gestionnaire SWI. La modification de cette valeur permet de rediriger les gestionnaires pour votre propre usage.

61-62: TIMEPT - Pointeur de routine Ticker Cela indique une routine à appeler à chaque interruption.

63: SEMIRQ Définissez une valeur différente de zéro pour rediriger le gestionnaire IRQ à l’aide de l’IRQPT ci-dessous

64-65: IRQPT Pointeur vers une routine à appeler lors de l’interruption lorsque SEMIRQ est défini.

2067-2068: FIRQPT[modifier | modifier le wikicode]

Pointeur vers une routine à appeler sur FIRQ. Il s’agit soit du balayage du stylet lumineux, soit du lecteur de codes-barres.

6A-6B: SIMUL[modifier | modifier le wikicode]

6D-6E : CRHAHA[modifier | modifier le wikicode]

Pointeur vers la table de décodage du clavier (utilisée par GETCH)

70-71: USERAFF[modifier | modifier le wikicode]

Pointeur sur les caractères utilisateur pour les codes 128-255.

73-74: GENPTR[modifier | modifier le wikicode]

Pointeur sur les caractères des codes 32 à 127. Les caractères sont stockés de bas en haut.

76: LATCLV[modifier | modifier le wikicode]

Délai de répétition du clavier

77: GRCODE[modifier | modifier le wikicode]

Contrôlez le caractère à envoyer à l’imprimante pour passer en mode graphique.

78: DECALG[modifier | modifier le wikicode]

Décalage d’étalonnage du stylo lumineux

7F: DEFDST[modifier | modifier le wikicode]

Densité par défaut pour le contrôleur de disquette de courant.

80: DKFLG[modifier | modifier le wikicode]

Réglez sur FF si un contrôleur de disquette est connecté.

82-85 : variables de port série[modifier | modifier le wikicode]

Ceux-ci ne sont utilisés pour rien dans la ROM, mais le logiciel fourni avec l’extension série RF57 utilise cette zone.

81-CC : pile système[modifier | modifier le wikicode]

La pile croît vers le bas.

CD-E4: LPBUF[modifier | modifier le wikicode]

Zone de travail pour le code de lecture du stylo lumineux.

FE-FF: FSTRST - Réinitialisation rapide[modifier | modifier le wikicode]

Ceci est défini au premier démarrage après l’initialisation de la page directe. Le gestionnaire de réinitialisation vérifie cela et ne répète pas toutes les initialisations (effacement de la mémoire, etc.) si tel est le cas.