Flash Bank-Switch

Gast #251411
Lesenswert?

ich habe "ein" flash programm das verschiedene HW versionen und filter
verwendet. dieses müss aber vor programm start schon festgelegt sein. in
der anzeige steht dann von 00-FF alles, also alle 256 möglichkeiten der
8 DIP schalter. wie kann so etwas realisiert oder möglich sein. sind
doch nicht etwa 256 progs oder ??

gruß, thomas
Gast #251416
Lesenswert?

ich verstehe nicht wo das Problem ist?

Nimm einfach deinen dip schalter und schließe ihn an die hohen address
pins des flash speichers an [21..13], dann verbinde [12..0] mit dem
gerät das code ausführen soll und fertig!

Dann hast du 256 pages zu je 4096 bytes die du per dip schalter
auswählen kannst, du musst nur sicherstellen, das das Gerät welches das
Programm ausführt beim umschalten auch reseted wird oder noch im reset
status ist.
Gast #251418
Lesenswert?

Was genau baust du denn? eine flash karte für deinen gameboy? Warum
benutzt du noch einen alten gameboy? der GBA ist viel besser und
einfacher zu programmieren :P

Naja egal, also wenn er soviel Addressraum benötigt kannst du halt nur
64 bänke machen und brauchst einen 6-fach DIP-Schalter oder du nimmst
einen größeren Speicher der mehr address-leitungen hat. Dein Speicher
scheint ja 2 Mb groß zu sein und jedes gameboy ROM ist dann 32kb groß
(32kb * 64 bänke = 2048kb)

Das Prinzip ist halt das du die hohen address-signale über schalter
anwählst um damit die pages um zu schalten, der Gameboy bekommt davon
nix mit und befindet sich dann auf einmal ganz woanders im Speicher
ohne es zu merken, deshalb bekommst du bestimmt auch ganz lustige
Ergebnisse wenn du während des Betriebes die DIP-Schalter betätigst ;)

Ich bin selber dabei eine Speicherkarte für einen Pokemon Mini zum
laufen zu bekommen (http://pokeme.shizzle.it/), das ist noch etwas
komplizierter dank multiplexed address bus.
Bankswitching hat die zwar noch nicht aber ich möchte das im CPLD
machen, den ich bereits für das ent-multiplexing benutze, weil das halt
eleganter ist als DIP-Schalter (bei einer CPLD lösung muss das
Bankswitching aber auch im Programm-Code erfolgen, zB durch eine
Kombination aus mehreren Lese- und Schreibzugriffen (So wird das
normalerweise gehandhabt)).
Gast #251419
Lesenswert?

1: Ich nutze den GBA
2: Ich nutze den GBA mit multiplexed Bus (funktioniert)
3: Ich weiss nicht, ob die DIP-Schalter  bei meinem (ich habe nur eine
kompilierte Fassung) Programm was mit dem Bank-Switching zu tun haben
oder wozu die dienen. Ich weiss nur, dass sie alle 8 irgendetwas
bewirken und zwar umschaltung von filtern, HW-Versionen, Flash-Burner
starten etc .... und auch beim aufstarten nach dem GB Logo eine
unterschiedlich Version anzeigen (Ox XX, also von 00-FF)

Gruß, thomas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren