Ben il te l'a expliqué : les bus d'adresse et de données sont séparés. Mais si t'as pas besoin d'adresser 128 Ko, tu peux utiliser certaines lignes du bus d'adresses comme lignes de données.
Exemple simple : tu coupes la zone d'adressage en deux. De $00000 à $0FFFF (A16 = 0), ce sont des lectures normales. De $10000 à $1FFFF (A16 = 1), ce sont des écritures ; on peut par exemple utiliser les bits 7 à 0 pour les données, et les bits 15 à 8 pour l'adressage.
Du coup, si tu veux
écrire $C5 à l'adresse $37, il suffit de faire une
lecture à l'adresse $137C5.
Côté matériel, il suffit de pas grand-chose :
/RD = /RD_original OR A16
/WR = /RD_original OR (NOT A16)
Par contre, pour le framebuffer sur port cartouche, ça peut marcher, mais ça va ramer grave