Page 1 sur 3
Adressage memoire PCE
Publié : jeu. 30 nov. 2006 12:33
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...!!??
Publié : jeu. 30 nov. 2006 20:20
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)
Publié : jeu. 30 nov. 2006 23:00
par El magnifico
En effet c'est limpide !

Publié : ven. 01 déc. 2006 08:15
par dudule
tu comptes te mettre a la prog Pepe ?
Publié : ven. 01 déc. 2006 14:56
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....
Publié : sam. 02 déc. 2006 22:43
par dudule
et pourquoi pas un p'tit shmup ?

Publié : sam. 02 déc. 2006 22:56
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
Donc si sa te dit...
Par contre je ne connais rien sur le developement sur pc engine...
Publié : dim. 03 déc. 2006 00:22
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.
Publié : dim. 03 déc. 2006 00:34
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

Publié : dim. 03 déc. 2006 00:46
par peperocket
En effet de 00 a FF ca fait bien 256...

Publié : dim. 03 déc. 2006 00:58
par Shmupper
bon ben tanpis je vais continuer mes jeux en assembleur sur TI 89

Publié : dim. 03 déc. 2006 01:02
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

Publié : dim. 03 déc. 2006 01:24
par shubibiman
peperocket a écrit :En effet de 00 a FF ca fait bien 256...

L'evidence meme, voyons...

Publié : dim. 03 déc. 2006 09:27
par SirG
On devrait interdir les forums en langues étrangères.

Publié : mar. 05 déc. 2006 00:56
par peperocket
Est que la pile est bien presente de 0100 a 01FF comme sur un 6502 classic ?