CE = CONDITIONS D’ENTREE
CS = CONDITIONS DE SORTIE
REGS = REGISTRES
C = FLAG CARRY
Z = FLAG ZÉRO
LE NOYAU (KERNEL)
*****************
#BCC8 – NETTOIE TOUTES LES FILES D’INTERRUPTION, LES CHRONOMÈTRES …
CE: rien.
CS: B contient l’adresse de sélection de la ROM s’il y en a une.
DE contient le point d’entrée a l’intérieur de la ROM.
C contient l’adresse de sélection de la ROM pour un programme en RAM.
AF, HL sont modifiés.
#BCCB – TROUVE ET INITIALISE TOUTES LES ROMS DE SECOND PLAN.
CE: DE contient l’adresse du premier octet utilisable.
HL contient l’adresse du dernier octet utilisable.
CS: DE contient l’adresse du nouveau premier octet utilisable.
HL contient l’adresse du nouveau dernier octet utilisable.
AF, BC sont modifiés.
#BCCE – INITIALISE UNE ROM DE SECOND PLAN.
CE: C contient l’adresse de sélection de la ROM a initialiser.
#FC = 252 = ROM (inf. 0 a 3fff) ROM (sup. #C000 a #FFFF).
#FD = 253 = RAM ——————– ROM (donc ROM BASIC).
#FE = 254 = ROM ——————– RAM.
#FF = 255 = RAM ——————– RAM.
#07 = 7 = ROM SECONDAIRE (lecteur de disquette)
DE contient l’adresse du premier octet utilisable.
HL contient l’adresse du dernier octet utilisable.
CS: DE contient l’adresse du nouveau premier octet utilisable.
HL contient l’adresse du nouveau dernier octet utilisable.
AF, B sont modifiés.
#BCD1 – INTRODUIT UN RSX DANS LE LOGICIEL INTERNE.
CE: BC contient l’adresse de la table des commandes RSX.
HL contient l’adresse de 4 octets disponibles en RAM pour le noyau.
CS: DE est modifié.
#BCD4 – RECHERCHE UN RSX DANS LES ROMS POUR EFFECTUER UNE COMMANDE.
CE: HL contient l’adresse ou se trouve le nom de la commande a rechercher
CS: si un RSX a été trouvé, C=1, C contient l’adresse de sélection de la ROM et HL contient l’adresse de la routine. Si la commande n’a pas été trouvée, C=0.
De toute façon AF, BC, DE sont modifiés.
#BCD7 – INITIALISE ET DÉPOSE UN BLOC D’ÉVÈNEMENT DANS LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION EN PROVENANCE DU CRT.
CE: HL contient l’adresse du bloc d’évènement.
B contient la classe de l’évènement.
bit 0 = 1 si routine dans RAM.
bit 1-4 = priorité de l’évènement.
bit 5 = toujours a 0.
bit 6 = 1 si priorité + grande que les évènements conventionnels.
bit 7 = 1 si la routine doit être exécutée immédiatement.
C contient l’adresse de sélection de la ROM.
DE contient l’adresse de la routine de l’évènement.
CS: AF, DE, HL sont modifiés.
#BCDA – DÉPOSE UN BLOC D’ÉVÈNEMENT DANS LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION EN PROVENANCE DU CRT.
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, DE, HL sont modifiés.
#BCDD – ENLÈVE UN BLOC D’ÉVÈNEMENT DANS LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION EN PROVENANCE DU CRT.
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, DE, HL sont modifiés.
#BCE0 – INITIALISE ET DÉPOSE UN BLOC D’ÉVÈNEMENT DANS LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION RAPIDE (1/300 de seconde).
CE: HL contient l’adresse du bloc.
B contient la classe de l’évènement (voir BCD7).
C contient l’adresse de sélection de la ROM.
DE contient l’adresse de la routine de l’évenement.
CS: AF, DE, HL sont modifiés.
#BCE3 – POSE UN BLOC D’ÉVÈNEMENT DANS LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION RAPIDE (1/300 de seconde).
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, DE, HL sont modifiés.
#BCE6 – ENLÈVE UN BLOC D’ÉVÈNEMENT DE LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION RAPIDE (1/300 de seconde).
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, DE, HL sont modifiés.
#BCE9 – DEPOSE UN BLOC D’EVENEMENT DANS LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION NORMALE (1/50 de seconde).
CE: HL contient l’adresse du bloc d’évènement.
DE contient la valeur initiale du compteur.
BC contient la valeur de recharge du compteur lorsqu’il atteint 0.
CS: AF, BC, DE, HL sont modifiés.
#BCEC – ENLEVE UN BLOC D’EVENEMENT DE LA LISTE DES BLOCS A ACTIVER LORS D’UNE INTERRUPTION NORMALE (1/50 de seconde).
CE: HL contient l’adresse du bloc d’évènement.
CS: si le bloc a été trouvé dans la liste, C=1 et DE contient le compteur, sinon C=0. De toute facon AF, DE, HL sont modifiés.
#BCEF – INITIALISE UN BLOC D’ÉVÈNEMENT.
CE: HL contient l’adresse du bloc d’évènement.
B contient la classe d’évènement.
C contient l’adresse de sélection de la ROM.
DE contient l’adresse de la routine d’évènement.
CS: HL contient l’adresse du bloc d’évènement augmentée de 7.
#BCF2 – ACTIONNE UN BLOC D’ÉVÈNEMENT.
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, BC, DE, HL sont modifiés.
#BCF5 – NETTOIE TOUTES LES FILES D’ATTENTE DES ÉVÈNEMENTS TEMPORISES.
CE: rien.
CS: AF, HL sont modifiés.
#BCF8 – ENLÈVE UN ÉVÈNEMENT TEMPORISE HORS D’UNE FILE D’ATTENTE.
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, BC, DE, HL sont modifiés.
#BCFB – LECTURE DE L’ÉVÈNEMENT SUIVANT DANS LA FILE D’ATTENTE.
CE: rien.
CS: s’il y a un évènement a traiter, C=1 et HL contient l’adresse du bloc d’évènement.
A peut contenir le code de priorité de l’évènement précédent.
S’il n’y a pas d’évènement a traiter, C=0.
De toute façon AF, DE, HL sont modifiés.
#BCFE – TRAITE UNE ROUTINE D’ÉVÈNEMENT.
CE: HL contient l’adresse du bloc d’évènement.
CS: AF, BC, DE, HL sont modifiés.
#BD01 – TERMINE LE TRAITEMENT D’UN ÉVÈNEMENT.
CE: HL contient l’adresse du bloc d’évènement.
A contient le code de priorité de l’évènement précédent.
CS: AF, BC, DE, HL sont modifiés.
#BD04 – INTERDIT LES ÉVÈNEMENTS TEMPORISES NORMAUX.
CE: rien.
CS: HL est modifié.
#BD07 – AUTORISE LES ÉVÈNEMENTS TEMPORISES NORMAUX.
CE: rien.
CS: HL est modifié.
#BD0A – INTERDIT UN ÉVÈNEMENT PARTICULIER.
CE: HL contient l’adresse du bloc d’évènement.
CS: AF est modifié.
#BD0D – DONNE LE TEMPS ECOULE EN 1/300 DE SECONDE.
CE: rien.
CS: DE HL contient le temps écoulé sur quatre octets.