Adressage memoire PCE

Le coin des demomakers et des programmeurs en herbe.

Modérateurs : SirG, Redfield1, shubibiman, Laucops

Avatar de l’utilisateur
peperocket
NECrophage
Messages : 1555
Inscription : lun. 23 mai 2005 00:17
Localisation : Dans mes charentaises

Adressage memoire PCE

Message par peperocket »

Voici ce que je lis sur magic kit :

"The huc6280 has a 64kb logical adress space and a 2mb physical adress space and use the mmu that splits the memory space in segment of 8kb."

Si j'ai bien compris il faudra 4X64kb pour acceder à  la memoire entiere de la PCE ??

"Each logical 8kb segment (or page) is associated to a 8-bit register (MPR0-7) that contains the index of the 8kb segment (or bank) in physical memory to map in this page."

Code : Tout sélectionner

Bank map :
$00-$7F ROM
$F7 Battery backed RAM
$F8 Work RAM
$FF Hardware I/O page
Quelqu'un pourrait il m'expliquer cette histoire de registre et de bank map car la je suis un peu perdu...!!??
Avatar de l’utilisateur
peperocket
NECrophage
Messages : 1555
Inscription : lun. 23 mai 2005 00:17
Localisation : Dans mes charentaises

Message par peperocket »

Apres un petit tour sur le site de mednafen, j'ai trouvé ceci qui repond à  mes quelques interogations :

Code : Tout sélectionner

Physical memory range  MPR Page(s)  Usage  
$000000-$0FFFFF       $00-$7F  HuCard, usually ROM  
$080000-$087FFF       $40-$43  32kB of RAM on Populous's HuCard  
$0D0000-$0FFFFF       $68-$7F  Super CD-ROM^2 RAM  
$100000-$10FFFF       $80-$87  CD-ROM^2 RAM  
$1EE000-$1EFFFF       $F7      CD-ROM^2 BRAM, 2kB, not mirrored.  
$1F0000-$1F1FFF       $F8      Base PC Engine RAM  
$1F2000-$1F7FFF       $F9-$FB  Additional 24kB RAM in the SGX  
$1FE000-1FFFFF        $FF      I/O area(timer, PSG, VDC, VCE, CD-ROM^2, Arcade Card) 
Dernière modification par peperocket le jeu. 30 nov. 2006 20:25, modifié 1 fois.
Avatar de l’utilisateur
El magnifico
NECrophage
Messages : 1481
Inscription : mer. 09 août 2006 14:35
Localisation : Nantes -Bretagne

Message par El magnifico »

En effet c'est limpide ! :shock:
Avatar de l’utilisateur
dudule
NECromancer
Messages : 3111
Inscription : sam. 25 déc. 2004 21:06

Message par dudule »

tu comptes te mettre a la prog Pepe ?
Avatar de l’utilisateur
peperocket
NECrophage
Messages : 1555
Inscription : lun. 23 mai 2005 00:17
Localisation : Dans mes charentaises

Message par peperocket »

En fait j'avais deja un pied dedans avec la trad de dead of the brain, mais j'ai bien envie de coder à  present quelques demos....
Avatar de l’utilisateur
dudule
NECromancer
Messages : 3111
Inscription : sam. 25 déc. 2004 21:06

Message par dudule »

et pourquoi pas un p'tit shmup ? :D
Avatar de l’utilisateur
Shmupper
NECstasien
Messages : 214
Inscription : mer. 29 nov. 2006 18:34
Localisation : Sedan

Message par Shmupper »

Salut !

J'ai aussi pas mal de notion de programmation. Et j'ai un projet de jeux qui me trotte dans la tete depuis un bon moment, mais j'en dit pas plus sinon Nintendo va me piquer l'idée :D
Donc si sa te dit...
Par contre je ne connais rien sur le developement sur pc engine...
Avatar de l’utilisateur
peperocket
NECrophage
Messages : 1555
Inscription : lun. 23 mai 2005 00:17
Localisation : Dans mes charentaises

Message par peperocket »

Coder un jeu demande pas mal de temps mais creer des sons et des graphiques en demande encore plus, n'etant ni musicien ni graphiste il me sera tres dur de faire un jeu et la n'est pas mon ambition, seul des personnes ayant beaucoups d'experience dans le domaine de la prog de jeux en sont capable.
N'empeche qu'il est quand meme interessant de coder quelques demos qui peuvent etre sympathique...
Ayant deja des connaissances en C je me suis interesse a l'assembleur car c'est un tres bon moyen de comprendre et connaitre le fonctionement de la becane, de plus l'assembleur magic kit est je trouve assez puissant et bien documente.
Pour ceux que ca interesse et qui n'aurait pas compris l'adresseage memoire de la pce voici une petite explication de rich, qui en passant bosse en ce moment sur la traduc de bublegum crash qui devrait etre dispo avant la fin de l'annee.
You already know that the CPU logical address space is $0000-$FFFF. The address space is divided into 8 segments. Each segment is assigned its own MPR ( mapper register ). Like so.
$0000-$1FFF = MPR0
$2000-$3FFF = MPR1
$4000-$5FFF = MPR2
$6000-$7FFF = MPR3
$8000-$9FFF = MPR4
$A000-$BFFF = MPR5
$C000-$DFFF = MPR6
$E000-$FFFF = MPR7

The MPRx can be anything from $00 to $FF. $00 to $FF is a bank of 8kilobytes - located in the 2megabyte address range . If you set MPR0 to $00 then it will point to the beginning of the rom ($00000).

Hucards can only be in banks $00-$7F. The largest hucard is $80($7F): $80 x $2000(8k) = $10000(1,048,576) bytes or 1024k.

The rest of the banks $80-$FF are reserved for hardware access. For instance $F8 is the 8k of ram, $FF is the hardware page ( PSG, VDC,VCE,I/O).

Your typical layout for a hucard is:

$0000-$1FFF = MPR0 ( $FF )
$2000-$3FFF = MPR1 ( $F8 )
$4000-$5FFF = MPR2 ( $xx )
$6000-$7FFF = MPR3 ( $xx )
$8000-$9FFF = MPR4 ( $xx )
$A000-$BFFF = MPR5 ( $xx )
$C000-$DFFF = MPR6 ( $xx )
$E000-$FFFF = MPR7 ( $00 )

Bank $00 is very important because is also contains the Interrupt Vectors - $1FF0-$1FFF in the rom, which is $FFF0-$FFFF when mapped to MPR7.

Note: On startup all the MPR's contain random garbage values except MPR7 which is always set to $00 on power up or reset. On power up/reset the system sets MPR7 to $00 then jumps to the address located in $FFFE ($1FFE in the rom).

If you need to convert rom address space to a bank number, here is how you do it:

( rom_address & 0xFE000 ) / 0x2000. So rom address $20000-$21FFF is in bank $10. If you map bank $10 to MPR2 then rom address $20000-$21FFF will be $4000-$5FFF in memory.
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Message par xav »

Pour peux que l'on fasse un petit dessin, la methode d'adressage de la nec devient relativement facile à  comprendre.

Ca rapelle vaguement la methode d'adresage du 8086, et c'est infiniment plus simple que celui d'autre machine 8bits comme la nes ou le msx.
Si j'ai bien compris il faudra 4X64kb pour acceder à  la memoire entiere de la PCE ??
en fait tu as 256 pages de 8Ko chacune, cela fait 2Mo en tout.

Mais tu n'a que 8 registre MPR chacun pouvant pointé vers une de c'est pages, ce qui fait qu'a un instant donné, tu n'a accées qu'a 64ko en méme temps, ça tombe bien puisque c'est la taille accessible directement par le cpu.

Il y aurais un bouquin entier à  ecrire sur le sujet :shock:
Avatar de l’utilisateur
peperocket
NECrophage
Messages : 1555
Inscription : lun. 23 mai 2005 00:17
Localisation : Dans mes charentaises

Message par peperocket »

En effet de 00 a FF ca fait bien 256... :roll:
Avatar de l’utilisateur
Shmupper
NECstasien
Messages : 214
Inscription : mer. 29 nov. 2006 18:34
Localisation : Sedan

Message par Shmupper »

bon ben tanpis je vais continuer mes jeux en assembleur sur TI 89 8)
Avatar de l’utilisateur
xav
NECrophage
Messages : 1159
Inscription : mar. 05 juil. 2005 22:12
Localisation : Le plus grand four solaire de France, Montpellier

Message par xav »

J'ai aussi pas mal de notion de programmation. Et j'ai un projet de jeux qui me trotte dans la tete depuis un bon moment, mais j'en dit pas plus sinon Nintendo va me piquer l'idée
Donc si sa te dit...
Par contre je ne connais rien sur le developement sur pc engine...
Si c'est pour faire un petit truc sur nec, explique le moi en mp et je te dirais si c'est faisable ou pas :wink:
Avatar de l’utilisateur
shubibiman
Administrateur
Messages : 16392
Inscription : jeu. 23 sept. 2004 14:26
Localisation : Meet me at Shubibi's

Message par shubibiman »

peperocket a écrit :En effet de 00 a FF ca fait bien 256... :roll:
L'evidence meme, voyons... :arrow:
"You are truly the PCE game clearing master"

*****Membre du FLPCE Canal Historique*****
Avatar de l’utilisateur
SirG
Administrateur
Messages : 5089
Inscription : lun. 20 sept. 2004 20:39
Localisation : Dans un labyrinthe

Message par SirG »

On devrait interdir les forums en langues étrangères. :twisted:
Justin Batable
Avatar de l’utilisateur
peperocket
NECrophage
Messages : 1555
Inscription : lun. 23 mai 2005 00:17
Localisation : Dans mes charentaises

Message par peperocket »

Est que la pile est bien presente de 0100 a 01FF comme sur un 6502 classic ?
Répondre