9.2. L'unité d'entrées/sorties du //e

L'unité d'entrées/sorties de l'Apple //e est basée sur celle de l'Apple ][+, sauf pour les adresses TXTPAGE1 et TXTPAGE2 qui sont gérées par l'unité AuxMemory (qui passe la requête à l'unité GraphicMode). L'unité d'entrées/sorties de l'Apple //e I/O possède quelques interrupteurs logiciels supplémentaires ainsi que des accès à l'état des interrupteurs existants.

Tableau 9-2. Adresses de l'unité d'entrées/sorties de l'Apple //e

AdrNomAccèsDescriptionUnité
C000KBDRDernière touche presséeClavier
C00080STOREOFFWUtilise $C002-$C005 pour la mémoire auxiliaireMémoire auxiliaire
C00180STOREONWUtilise PAGE2 pour la mémoire auxiliaireMémoire auxiliaire
C002RDMAINRAMWSi 80STORE est à 0: Lit la mémoire principale en $0200-$BFFFMémoire auxiliaire
C003RDCARDRAMWSi 80STORE est à 0: Lit la mémoire auxiliaire en $0200-$BFFFMémoire auxiliaire
C004WRMAINRAMWSi 80STORE est à 0: Écrit la mémoire principale en $0200-$BFFFMémoire auxiliaire
C005WRCARDRAMWSi 80STORE est à 0: Écrit la mémoire principale en $0200-$BFFFMémoire auxiliaire
C006SETSLOTCXROMWROM des périphériques ($C100-$CFFF)Rom E/S
C007SETINTCXROMWROM interne ($C100-$CFFF)Rom E/S
C008SETSTDZPWPile et page zéro principalesMémoire auxiliaire
C009SETALTZPWPile et page zéro auxiliairesMémoire auxiliaire
C00ASETINTC3ROMWROM interne en $C300-$C3FFRom E/S
C00BSETSLOTC3ROMWROM des périphériques $C300-$C3FFRom E/S
C00CCLR80VIDW40 ColonnesMode texte
C00DSET80VIDW80 ColonnesMode texte
C00ECLRALTCHARWSélectionne la police de caractère primaireMode texte
C00FSETALTCHARWSélectionne la police de caractère alternativeMode texte
C010KBDSTRBRWRemise à zéro du clavierClavier
C011RDLCBNK2R7État de visibilité de la page 1 (0) ou de la page 2 (1) de RAM en $D000-DFFF LanguageCard
C012RDLCRAMR7État de visibilité de la ROM (0) our de la RAM() en $D000-$FFFFLanguageCard
C013RDRAMRDR7État de lecture de la RAM principale/auxiliaireMémoire auxiliaire
C014RDRAMWRTR7État d'écriture dans la RAM principale/auxiliaireMémoire auxiliaire
C015RDCXROMR7État de l'accès à la ROM des périphériques (0) ou interne (1)Rom E/S
C016RDALTZPR7État de la pile et de la page zéro principale ou auxiliaireMémoire auxiliaire
C017RDC3ROMR7État de la ROM visible en $C300-$C3FF : Port 3 (0) ou Port auxiliaire (1)Rom E/S
C018RD80STORER7État de 80STOREOFFMémoire auxiliaire
C019RDVBLR7État de l'effacement vertical (1=en cours d'affichage) 
C01ARDTEXTR7État du mode Texte (1) ou Graphique (0)Mode graphique
C01BRDMIXEDR7État du mode plein écran (0) ou mode mixte (1)Mode graphique
C01CRDPAGE2R7État de l'affichage de la page 1 (0) ou page 2 (1)Mode graphique
C01DRDHIRESR7État de la résolution basse (0) ou haute (1)Mode graphique
C01ERDALTCHARR7État de la police de caractère primaire ou alternativeMode texte
C01FRD80VIDR7État de l'affichage 40 ou 80 colonnesMode texte
C020TAPEOUTR7Bascule la sortie cassetteCassette
C030SPKRRBascule l'état du haut parleurSpeaker
C040STROBEREnvoie une impulsion sur la sortie jeuxGame
C050TXTCLRWRMode graphiqueMode graphique
C051TXTSETWRMode texteMode graphique
C052MIXCLRWRMode plein écranMode graphique
C053MIXSETWRMode mixteMode graphique
C054TXTPAGE1WRAffiche la page 1Mode graphique
C055TXTPAGE2WRSi 80STORE est à 0: Affiche la page 2, Si 80STORE est à un: Écriture/Lecture de la mémoire auxiliaire d'affichageAuxMemory, GraphicMode
C056LORESWRGraphiques basse résolutionMode graphique
C057HIRESWRGraphiques haute résolutionMode graphique
C058CLRAN0WRMise à 0 de l'annonciateur 0Jeu
C059SETAN0WRMise à 1 de l'annonciateur 0Jeu
C05ACLRAN1WRMise à 0 de l'annonciateur 1Jeu
C05BSETAN1WRMise à 1 de l'annonciateur 1Jeu
C05CCLRAN2WRMise à 0 de l'annonciateur 2Jeu
C05DSETAN2WRMise à 1 de l'annonciateur 2Jeu
C05ECLRAN3WRMise à 0 de l'annonciateur 3Jeu
C05FSETAN3WRMise à 1 de l'annonciateur 3Jeu
C060TAPEINR7Lit l'état de l'entrée cassetteCassette
C061PB0R7Bouton poussoir 0 / Touche Pomme OuverteJeu
C062PB1R7Bouton poussoir 1 / Touche Pomme PleineJeu
C063PB2R7Bouton poussoir 2 / Touche Shift (sur certains modèles)Jeu
C064PADDL0R7Lit l'entrée analogique 0Jeu
C065PADDL1R7Lit l'entrée analogique 1Jeu
C066PADDL2R7Lit l'entrée analogique 2Jeu
C067PADDL3R7Lit l'entrée analogique 3Jeu
C070PTRIGRRemise à zéro des entrées analogiquesJeu
C073BANKSELWSélection du banc de mémoire si plus de 128K 
C07FRDDHIRESR7État du graphique en Double Haute Résolution 
C080 RLecture de la RAM page 2, pas d'écritureCarte langage
C081 RRLecture de la ROM, écriture de la RAM page 2Carte langage
C082 RLecture de la ROM, pas d'écritureCarte langage
C083 RRLecture et écriture en RAM page 2Carte langage
C084-C087  Identique à C080-C083Carte langage
C088 RLecture de la RAM page 1, pas d'écritureCarte langage
C089 RRLecture de la ROM, écriture de la RAM page 1Carte langage
C08A RLecture de la ROM, pas d'écritureCarte langage
C08B RRLecture et écriture en RAM page 1Carte langage
C08C-C08F RIdentique à C088-C08BCarte langage
C090-C09F  Adresses pour le port d'extension 1Ports d'extension
C0A0-C0AF  Adresses pour le port d'extension 2Ports d'extension
C0B0-C0BF  Adresses pour le port d'extension 3Ports d'extension
C0C0-C0CF  Adresses pour le port d'extension 4Ports d'extension
C0D0-C0DF  Adresses pour le port d'extension 5Ports d'extension
C0E0-C0EF  Adresses pour le port d'extension 6Ports d'extension
C0F0-C0FF  Adresses pour le port d'extension 7Ports d'extension

R - Lire pour agir ou récupérer l'information, W - Écrire pour agir, RR - Lire deux fois pour agir, R7 - Lire l'information dans le bit 7