 |
Source (Assembleur
Z80 pour WLA-DX). Binaire,
fonctionne sur l'SMS1, pas testé sur la SMS2. Devrait tenir
dans n'importe quel EPROM/Flash de 32ko compatible avec le brochage
du BIOS d'origine (j'utilisais un 27E257).
Features: démarrage plus rapide, test de tous les slots,
affichage du header, du checksum (avec comparaison), du byte de
localisation, de la taille. Fastboot du slot cartouche en appuyant
sur 1.
Le check de la SRAM ne marche pas, mais c'est normal... Le reste
fonctionne.
Merci smspower.org
!
|
 |
Prototype jamais réalisé (version plus grande du
schéma ici).
L'équivalent d'une cartouche flash de 512ko intégré
dans une SMS1, avec programmation par USB, stepping et reset.
Le mapper SEGA avait été refait en VHDL pour être
clôné avec des PLDs lattice, il faudra que je retrouve
le fichier...
|
Texte d'origine de cette page (notes prises pendant l'écriture
du BIOS et du tracé du schéma):
Remplacement du BIOS pour reset rapide, vérifs détaillées
et upload par port joystick:
BIOS d'origine: V1.3 Eurod dans un ROM Sony CXK3864 en DIP 28. Retiré,
dumpé et remplacé par un support tulipes.
Remplacement par une EEPROM Winbond 27E257 32Ko, programmée avec
le dump d'origine.
Seules les broches 1, 26 et 27 sont différentes.
Sur le ROM Sony la broche 1 est NC, mais devient VPP sur l'EEPROM. Pas
de problème de compatibilité, peut rester flotante.
Sur le ROM Sony la broche 26 est CE2, mais A13 sur l'EEPROM. Pas de problème
de compatibilité, extension de la mémoire disponible à
16Ko au lieu de 8Ko.
Sur le ROM Sony la broche 27 est /WE (VCC), mais A14 sur l'EEPROM. Pas
de problème de compatibilité, il suffit de placer le BIOS
à $4000.
Les premiers 16Ko de l'EEPROM ne serviront jamais, à moins de
couper la broche 27 de VCC et de la relier à A14 sur le Z80.
/OE1 du controleur SEGA est relié à /CE1 de l'EEPROM.
/M0-7 est relié à /OE de l'EEPROM.
Le BIOS fait un test complet de la RAM puis de la VRAM.
Le BIOS fait un test du devboard si on appuie sur haut.
Le BIOS copie une routine de detection en RAM.
La routine detecte la présence de données en lisant les
256 premiers octets sur chaque slot (card, cart, ext).
Pour chaque slot ayant des données présentes, "TMR
SEGA" est testé à trois endroits différents.
Pour chaque slot ayant "TMR SEGA" présent au moins une
fois, la région est vérifiée et le checksum est calculé
puis comparé au header.
Le slot qui a la plus haute priorité est lancé même
si le checksum est faux en appuyant sur 1.
Devboard:
Utilise un mapper 315-5235 (max 512Ko) et 4 SRAMs TC551001 128Ko.
Les broches A0 à A13 sont routées en parallèles aux
SRAMs.
Les broches A14 à A16 sont routées depuis les sorties du
mapper (A14OUT à A16OUT).
Les broches A17OUT et A18OUT du mapper sont données à un
decodeur 2 vers 4 pour selectionner la SRAM correspondante (/CE1).
/RD est routé sur tous les /OE.
/MREQ est inversé et routé sur tous les CE2.
/WR est inversé et routé sur tous les RW (pas besoin ?).

|