CODINGApprendre pas à pas la programmation en assembleur Z80 par Roudoudou ★ Annexe hardware de la machine ★

Connexions ROM / Couleurs / Mémoire étendue
Annexe technique pour les fonctionnalités du Gate Array



RMR (connexions ROM, gestion du MODE, reset des INT)

           ;*** RMR tags ***
MODE_0 equ 0
MODE_1 equ 1
MODE_2 equ 2
MODE_3 equ 3
CLEAR_INT equ %10000
ROM_OFF  equ %1100
ROM_BOTH equ 0
ROM_UP   equ %100
ROM_LOW  equ %1000
INTRESET equ %10000

macro RMR tags
ld a,{tags}+%10000000
ld b,#7F
out (c),a
mend

RMR2 (connexions et positionnement ROM+ASIC) spécifique à la gamme Plus/GX-4000

;*** RMR2 tags ***
ASICOFF equ 0
ROM0000 equ 0
ROM4000 equ %01000
ROM8000 equ %10000
ASICON  equ %11000
ROM0 equ 0 : ROM1 equ 1 : ROM2 equ 2 : ROM3 equ 3 : ROM4 equ 4 : ROM5 equ 5 : ROM6 equ 6 : ROM7 equ 7
macro RMR2 tags
ld a,{tags}+%10100000
ld b,#7F
out (c),a
mend

Version de la macro qui prend en paramètre le numéro de ROM basse dans le registre A.

; paramètre A=ROM basse
macro RMR2_LOW tags
and 7 ; instruction optionnelle pour sécurité!!!
or {tags}+%10100000
ld b,#7F
out (c),a
mend

MMR (Memory Mapping Register)

DISABLE equ 0
UPPER3  equ 1
ALLSLOT equ 2
UPPER3FLIP equ 3
BANK0   equ 4
BANK1   equ 5
BANK2   equ 6
BANK3   equ 7
macro MMR,slot,config
ld bc,#7FC0+(slot & 7)<<3) | (config & 7)
mend

Voir article [ ici ] pour des exemples d'utilisation.

UPPER_SELECT (choix de la ROM haute)

macro UPPER_SELECT, larom
if {larom}<0 : assert 0==1,'ROM haute doit etre comprise entre 0 et 255' : endif
if {larom}>255 : assert 0==1,'ROM haute doit etre comprise entre 0 et 255' : endif
ld bc,#DF00|{larom} : out (c),c
mend

Si vous n'utilisez que les cartouches, préférez ajouter le bit 7 par défaut.

macro CART_UPPER_SELECT, larom
if {larom}<0 : assert 0==1,'ROM cartouche doit etre comprise entre 0 et 31' : endif
if {larom}>31 : assert 0==1,'ROM cartouche doit etre comprise entre 0 et 31' : endif
ld bc,#DF80|{labank} : out (c),c
mend

La suite plus tard ;)

Roudoudou

★ ANNÉE: 2025
★ AUTEUR: Roudoudou

Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.732-desktop/c
Page créée en 142 millisecondes et consultée 46 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.