ASMtrad CPC

Apprenez l'assembleur Z80

ROM et RST (#0000 – #003B / #B900 – #B921)

#0000 - RST 0. RÉINITIALISATION COMPLÈTE DE LA MACHINE COMME A L’ALLUMAGE.

CE : rien.
CS : on n’en sort pas !

#0008 - LANCEMENT D’UNE ROUTINE EN ROM OU EN RAM INFÉRIEURE. CE SONT LES DEUX OCTETS QUI SUIVENT LE RST QUI CONTIENNENT L’ADRESSE D’ÉXECUTION ET L’ÉTAT DE LA ROM SUPÉRIEURE.

CE : tous les regs sont passés à la routine sans être affectés.
CS : ne dépend que de la routine elle-même.

#000B - LANCEMENT D’UNE ROUTINE EN ROM OU EN RAM INFÉRIEURE.

CE : HL contient l’adresse inférieure de la routine.
CS : ne dépend que de la routine.

#000E - SAUTE A L’ADRESSE CONTENUE DANS BC.

CE : BC contient l’adresse.
CS : ne dépend que de la routine.

#0010 - RST #10. APPEL A UNE SOUS-ROUTINE D’UNE ROM SECONDAIRE. CE SONT LES DEUX OCTETS QUI SUIVENT LE RST QUI CONTIENNENT L’ADRESSE D’ÉXECUTION ET L’ADRESSE DE SÉLECTION DE LA ROM.

CE : les regs sont passés a la routine sans être affectés, exepté IY.
CS : dépend de la routine.

#0013 - APPEL A UNE SOUS-ROUTINE D’UNE ROM SECONDAIRE. L’ADRESSE EST CONTENUE DANS HL.

CE : HL contient l’adresse et les regs sont passés a la routine sans être affectés, excepté IY.
CS : dépend de la routine.

#0016 - SAUTE A L’ADRESSE CONTENUE DANS DE.

CE : DE contient l’adresse.
CS : dépend de la routine.

#0018 - RST #18. APPEL A UNE SOUS-ROUTINE EN RAM OU EN ROM. CE SONT LES DEUX OCTETS QUI SUIVENT QUI CONTIENNENT L’ADRESSE DE LA SOUS ROUTINE.

CE : tous les regs sont passés a la sous-routine, excepté IY.
CS : dépend de la sous-routine.

#001B - APPEL A UNE SOUS-ROUTINE EN RAM OU EN ROM AVEC L’ADRESSE DANS HL.

CE : HL contient l’adresse. C contient l’octet de sélection de la ROM ou de la RAM. tous les regs sont passés a la routine, sauf IY.
CS : dépend de la routine.

#001E - SAUTE A L’ADRESSE CONTENUE DANS HL.

CE : HL contient l’adresse.
CS : dépend de la routine.

#0020 - RST #20. CHARGE DANS L’ACCUMULATEUR LE CONTENU DE LA RAM DONT L’ADRESSE SE TROUVE DANS HL, QUEL QUE SOIT L’ÉTAT DES ROMs.

CE : HL contient l’adresse.
CS : A contient la valeur lue.

#0023 - APPELLE UNE SOUS-ROUTINE EN RAM OU EN ROM, HL CONTIENT L’ADRESSE OU SE TROUVE L’ADRESSE DE LA SOUS-ROUTINE.

CE : HL contient l’adresse ou se trouve l’adresse de la sous-routine. Tous les regs sont passés a la sous-routine, sauf IY.
CS : dépend de la sous-routine.

#0028 - RST #28. SAUTE A UNE ADRESSE EN ROM INFÉRIEURE. LES DEUX OCTETS QUI SUIVENT LE RST CONTIENNENT L’ADRESSE.

CE : tous les regs sont préservés.
CS : dépend de la sous-routine.

#0030 - RST #30. RÉSERVÉ A L’UTILISATEUR.

CE :
CS :

#0038 - RST #38. POINT D’ENTRÉE DES INTERRUPTIONS GÉNÉRÉES PAR LE MATÉRIEL.

CE : rien.
CS : tous les regs sont préservés.

#003B - ROUTINE DE TRAITEMENT DES INTERRUPTIONS EXTÉRIEURES.

CE : rien.
CS : AF, BC, DE, HL sont modifiés.

#B900 - SÉLECTIONNE LA ROM SUPÉRIEURE.

CE : rien.
CS : A contient l’état précédent de la ROM. AF est modifié.

#B903 - COUPE LA ROM SUPÉRIEURE POUR RESÉLECTIONNER LA RAM.

CE : rien.
CS : A contient l’état précédent de la ROM. AF est modifié.

#B906 - SÉLECTIONNE LA ROM INFÉRIEURE.

CE : rien.
CS : A contient l’état précédent de la ROM. AF est modifié.

#B909 - COUPE LA ROM INFÉRIEURE POUR RESÉLECTIONNER LA RAM.

CE : rien.
CS : A contient l’état précédent de la ROM. AF est modifié.

#B90C - RESTAURE L’ÉTAT ANTÉRIEUR D’UNE ROM.

CE : A contient l’état antérieur de la ROM.
CS : AF est modifié.

#B90F - SÉLECTIONNE UNE ROM SUPÉRIEURE PARTICULIÈRE.

CE : C contient l’adresse de sélection de la ROM requise.
CS : C contient l’adresse de sélection de la ROM précédente. B contient l’état de la ROM précédente. AF est modifié.

#B912 - DEMANDE QUELLE ROM EST SÉLECTIONNÉE.

CE : rien.
CS : A contient l’adresse de sélection de la ROM courante.

#B915 - DEMANDE LA CLASSE ET LA VERSION D’UNE ROM.

CE : contient l’adresse de sélection de la ROM a interroger.
CS : A contient la classe de la ROM. H contient le numéro de version. L contient un numéro de marque. B et F sont modifiés.

#B918 - RESÉLECTIONNE LA ROM SUPÉRIEURE PRÉCÉDEMMENT SÉLECTIONNÉE.

CE : C contient l’adresse de sélection de la ROM précédente. B contient l’état de la ROM précédente.
CS : BC est modifié.

#B91B - EXÉCUTE UN DÉPLACEMENT DE BLOC AVEC INCRÉMENTATION (LDIR) AVEC LES DEUX ROMS DÉCONNECTÉES.

CE : BC, DE, HL sont programmés comme pour un LDIR normal.
CS : BC, DE, HL et F sont dans le même état qu’après un LDIR normal.

#B91E - EXÉCUTE UN DÉPLACEMENT DE BLOC AVEC DÉCRÉMENTATION (LDDR) AVEC LES DEUX ROMS DÉCONNECTÉES.

CE : BC, DE, HL sont programmés comme pour un LDDR normal.
CS : BC, DE, HL et F sont dans le même état qu’après un LDDR normal.

#B921 - TESTE SI UN ÉVÈNEMENT AVEC UNE PRIORITÉ SUPÉRIEURE A L’ÉVÈNEMENT COURANT SE PRODUIT.

CE : rien.
CS : si un évènement avec une priorité supérieure se produit, C=1 sinon C=0. AF est modifié.