Salut à tous,
La carte AGB (distributeur français dirigé par Alain Brégeon auteur du jeu "Le passager du temps"), distribuait de nombreuses cartes d'extension... joystick, mémoire, carte ASCII RS232...
Carte mémoire AGB 16k avec emplacement pour ROM en h2000.
Sur Zx81, impossible de cumuler les extensions mémoires... deux cartes 16k font 16k! ... et remplace la mémoire embarquée (1K+16K=16K!).
Officiellement, le ZX81 a été conçu pour fonctionner avec 16k de ram, pour des raisons logiciels... car la ROM (moniteur Basic) ne teste que 16k.
Sinclair n'a JAMAIS sorti de cartes supérieur à 16k...
Avec un décodage improbable de la mémoire en hardware, Sinclair n'a jamais voulu aborder le problème, car cela pouvait mettre en évidence ce problème de conception.
Le constructeur Mémothech, a finalement étudié la question en créant une carte d'extension de "64k", qui en réalité, le donnait "que" 48k de mémoire utilisable, qui bouchait les quelques trous de mémoire de cette machine.
Une carte 16K sur cette machine supprime la mémoire interne de 1K de cette machine... et généralement, aucun revoie de bus d'extension n'était disponible sur ces cartes... même pas pour y brancher d'autres interfaces!
Oui, cette machine était prévue pour une ou deux cartes d'extension, car avec plus, le régulateur de tension 7805 était trop juste.
Donc, impossible de cumuler les cartes mémoire, car l'adressage sera le même pour ces deux cartes!
Il faut une carte 32k ou 48K pour bénéficier d'une mémoire plus importante.
Et comme je le disais précédemment, le Bios ne verra "que" 16k avec ces mémoires... il faudra donc POKEr manuellement le RAM_TOP (limite haute de mémoire) pour pouvoir bénéficier de cette profusion de mémoire.
Et cela à chaque redémarrage.
Structure mémoire (Par décodage de blocs de 8K):
0000-1FFF : Mémoire morte. (8K)
2000-3FFF : Vide "mémoire fantôme" (utilisé pour certaines ROMs, ou pour de la RAM 8K)
4000-7FFF : Mémoire basic en 16K (la mémoire commence à l'adresse 4000h, donc à 16K+16K)
8000-BFFF : Bloc de 16K (16k+16k=32k)
C000-FFFF : Bloc de 8k+8K (zone en conflit matériel avec le décodage clavier, donc non utilisable avec la ROM!)
Donc, en bouchant les trous, nous arrivons à 48K... avec certaines restrictions de programmation au niveau de la mémoire haute.
Mais, il est IMPOSSIBLE de monter à 64k, car la rom fait déjà 8k, et le basic commence à 16k.
La carte dite de "64k", utilise "au mieux" cette mémoire pour boucher ces zones vides grâce à un décodage mémoire maison... avec des dip-swichs de configuration.
Au mieux, 48k peuvent être utilisés sur cette machine, mais avec 16k de mémoire vive utilisée en "DATA", qui ne pourront pas avoir accès en mode "utilisation" par le CPU... donc, pas d'utilisation en ASM ni en Basic.
Ce qui limite cette machine à un petit 48k, mais dans les faits, 32k sont réellement utilisable en basic et ASM.
Donc, il faut savoir compter sur ses doigts avec cette machine...
A noter que le ZX81 fait la différence entre la mémoire 1k et la mémoire 16k!
En effet, il compresse la mémoire vidéo avec une mémoire 1k et non en 16k.
Ce qui peu provoquer des problèmes en créant un programme 1k avec 16k de RAM.
Utilisé avec un ZX81 standard, la mémoire vidéo utilise toute la mémoire, et donc, ne fonctionne pas.