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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.