Aller au contenu
Projet 816wiki
Sommaire

La carte mémoire

Le 65816 voit 16 Mo, et le Projet 816 les remplit tous de RAM. Seules quatre petites pages de la première banque servent à parler aux périphériques.

La carte mémoire du Projet 816Le 65816 adresse 16 Mo en 256 banques de 64 Ko, et toutes sont de la RAM : les banques $00 à $7F dans la première PSRAM de 8 Mo, $80 à $FF dans la seconde. Dans la banque $00, quatre pages de 256 octets, de $9C00 à $9FFF, sont réservées aux registres de la 9K, de la vidéo, du Pico et de l'extension ; tout le reste est de la RAM, vecteurs compris.Les 16 Mo du 65816256 banques de 64 Ko, toutes en RAM$00banque 0 : détail à droite$01–$7FRAM : 1re PSRAM (CS0#)$80–$FFRAM : 2e PSRAM (CS1#)La banque $00RAM et quatre pages de registres$0000–$9BFFRAM$9C009K : son, interruptions, DMA$9D00vidéo (Tang Nano 20K)$9E00Pico : SD, USB, Wi-Fi, horloge$9F00port d'extension$A000–$FFFFRAM, dont les vecteurs du 65816Chaque bloc expose 32 registres, répétés dans sa page de 256 octets.(non proportionnel)
La carte mémoire du Projet 816.

Le tableau complet

AdressesContenuSignal
$00:0000 – $00:9BFFRAMPSRAM par la 9K
$00:9C00 – $00:9CFFregistres de la 9K : son, interruptions, DMA, configurationinterne à la 9K
$00:9D00 – $00:9DFFvidéo (Tang Nano 20K)sélection vidéo
$00:9E00 – $00:9EFFPico : SD, USB, Wi-Fi, horloge, liaison sériesélection Pico
$00:9F00 – $00:9FFFport d’extension/IOSEL
$00:A000 – $00:FFFFRAM, dont les vecteurs du 65816, chargés au démarragePSRAM par la 9K
$01:0000 – $7F:FFFFRAM : suite de la première PSRAM (banques $00 à $7F, 8 Mo)PSRAM par la 9K, CS0#
$80:0000 – $FF:FFFFRAM : la seconde PSRAM (8 Mo)PSRAM par la 9K, CS1#

Il n’y a plus de zone réservée à une carte d’extension : les 16 Mo de RAM occupent tout l’espace. Une carte d’extension garde sa page de registres en $00:9F00.

Les pages d’entrées-sorties

Les périphériques occupent des pages entières de 256 octets dans la banque $00. La 9K les décode à partir de A8 à A15 et de la banque capturée.

Chaque périphérique n’expose que 32 registres, sélectionnés par A0 à A4. Ces 32 registres se répètent dans toute sa page de 256 octets : $9D00 et $9D20 désignent le même registre.

Le plan des registres

Le plan détaillé des 32 registres de chaque bloc (9K, vidéo, Pico) existe en version 0.1, à l’état de proposition à valider : voir Le plan des registres. Il doit être validé avant d’écrire le Verilog ou le firmware correspondant. C’est le contrat entre les trois circuits programmables et le logiciel 65816 : toute modification d’un registre devra être reportée des deux côtés.

Sources dans le dépôt : docs/SPEC.md.