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.