FE3:Handbuch/Internals: Unterschied zwischen den Versionen
Tw (Diskussion | Beiträge) |
Tw (Diskussion | Beiträge) |
||
| Zeile 9: | Zeile 9: | ||
[[File:Vc20-v2-2.GIF|none|thumb|200px|FE3 Memory MAP]] | [[File:Vc20-v2-2.GIF|none|thumb|200px|FE3 Memory MAP]] | ||
| + | |||
| + | <br /> | ||
| + | === FE3 Control Register === | ||
| + | |||
| + | Das Final Expansion hat zwei Register um das Modul per Software zu konfigurieren. Die Register werden wie Speicherzellen zugegriffen und können beschrieben und gelesen werden. Die Register haben wie jede Speicherzelle 8 Bit. Nach einem (Hard-) Reset bzw. nach dem Einschalten steht 0 in beiden Register. Beide Register liegen im IO Bereich des VC0-20 (IO-3). | ||
| + | |||
| + | <br /> | ||
| + | ===== Register 1 ($9c02) ===== | ||
| + | |||
| + | Mit Register 1 stellt man die '''Betriebsart''' der Final Expansion ein. Das Register befindet sich an der Adresse 39938 ($9c02). Mit POKE 39938,X wird der Wert der Variablen X in das Register 1 geschrieben. Mit PEEK(39938) kann man den Wert des Register 1 auslesen. | ||
| + | |||
| + | Die obersten drei Bits von Register 1 (Bit 5, 6 und 7) sind für die Betriebsart zuständig. Die unteren 5 Bits (Bit 0 bis 4) sind Zusatzinformation zur eingestellten Betriebsart. Man kann also Betriebsart und Zusatzinfo per + oder OR zusammenbauen und dann per POKE in das Register schreiben (Register 1: bbbzzzzz). | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | b .. Betriebstart | ||
| + | z .. Zusatzinfo | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | <br /> | ||
| + | ===== Register 2 ($9c03) ===== | ||
| + | |||
| + | Mit Register 2 kann man die von der FE3 belegten Ressourcen freigeben (deaktivieren). Das Register befindet sich an der Adresse 39939 ($9c03). Mit POKE 39939,Y wird der Wert der Variablen Y in das Register 2 geschrieben. Mit PEEK(39939) kann man den Wert des Register 2 auslesen. | ||
| + | |||
| + | Der VC-20 hat 5 freie Adressräume (Speicher Blöcke). Die FE3 kann jedem dieser 5 Blöcke Speicher zuordnen. Dh. es wird ein Teil des Speichers der FE3 in einem oder mehreren Blöcken des VC-20 eingeblendet (Banking). | ||
| + | |||
| + | Die unteren 5 Bits (Bit 0 bis Bit 4) des Register 2 steuern die Sichtbarkeit der 5 Speicher Blöcke im VC-20. Eine 0 blendet den zugehörigen Block ein, eine 1 blendet den Block aus. Das Ausblenden der Speicher Blöcke benötigt man, um die Hardware Kompatibilität zu anderen Modulen zu ermöglichen, also andere Module gleichzeitig nutzen zu können. | ||
| + | |||
| + | Das oberste Bit (Bit 7) des Register 2 steuert die Sichtbarkeit der Register. Eine 0 blendet die beiden Register ein, eine 1 blendet beide Register aus (deaktiviert die Register). | ||
| + | |||
| + | '''<u>Achtung</u>:''' Wenn die Register ausgeblendet werden, dann gibt es für die Software keine Möglichkeit mehr die Konfiguration zu ändern. Erst nach einem RESET werden die Register wieder sichtbar. | ||
| + | |||
| + | Das Ausblenden der Register macht man, damit fremde Software nicht unbeabsichtigt die Konfiguration der FE3 ändern kann. Damit wird die Kompatibilität zu jeder erdenklichen Software hergestellt. | ||
| + | |||
| + | <syntaxhighlight> | ||
| + | Bit 0 ... Sichbarkeit des VC-20 Speicherblock 0 (Blk0 - $0400-$0FFF) | ||
| + | Bit 1 ... Sichbarkeit des VC-20 Speicherblock 1 (Blk1 - $2000-$3FFF) | ||
| + | Bit 2 ... Sichbarkeit des VC-20 Speicherblock 2 (Blk2 - $4000-$5FFF) | ||
| + | Bit 3 ... Sichbarkeit des VC-20 Speicherblock 3 (Blk3 - $6000-$7FFF) | ||
| + | Bit 4 ... Sichbarkeit des VC-20 Speicherblock 5 (Blk5 - $A000-$BFFF) | ||
| + | Bit 5 ... 1: invertiert A13 | ||
| + | Bit 6 ... 1: invertiert A14 | ||
| + | Bit 7 ... Sichtbarkeit des IO-3 (Register 1 und 2) | ||
| + | </syntaxhighlight> | ||
| + | |||
| + | |||
| + | '''<u>Banking</u>:''' | ||
| + | |||
| + | Damit man den gesamten Speicher der Final Expansion erreichen kann, muss man den Speicher stückweise einblenden. Dazu stehen verschiedene '''Betriebsarten''' zur Verfügung, um alle Erfordernisse abdecken zu können. | ||
| + | |||
Version vom 30. August 2019, 23:04 Uhr
Inhaltsverzeichnis
Final Expansion Intern (Technik und Programmierung)
Das Final Expansion beinhaltet 512KB SRAM und 512KB Flash Speicher. Um auf den erweiterten Speicher Zugreifen zu können, muss man den Speicher stückweise einblenden. Der Grund dafür ist der beschränkte Adressraum des 6502 Prozessor, der immer nur 64KB gleichzeitig 'sehen' kann. Beim VC-20 sind die 'freien' Adressräume auf 4 x 8KB + 3KB beschränkt.
Siehe Bild Memory MAP:
FE3 Control Register
Das Final Expansion hat zwei Register um das Modul per Software zu konfigurieren. Die Register werden wie Speicherzellen zugegriffen und können beschrieben und gelesen werden. Die Register haben wie jede Speicherzelle 8 Bit. Nach einem (Hard-) Reset bzw. nach dem Einschalten steht 0 in beiden Register. Beide Register liegen im IO Bereich des VC0-20 (IO-3).
Register 1 ($9c02)
Mit Register 1 stellt man die Betriebsart der Final Expansion ein. Das Register befindet sich an der Adresse 39938 ($9c02). Mit POKE 39938,X wird der Wert der Variablen X in das Register 1 geschrieben. Mit PEEK(39938) kann man den Wert des Register 1 auslesen.
Die obersten drei Bits von Register 1 (Bit 5, 6 und 7) sind für die Betriebsart zuständig. Die unteren 5 Bits (Bit 0 bis 4) sind Zusatzinformation zur eingestellten Betriebsart. Man kann also Betriebsart und Zusatzinfo per + oder OR zusammenbauen und dann per POKE in das Register schreiben (Register 1: bbbzzzzz).
<syntaxhighlight> b .. Betriebstart z .. Zusatzinfo </syntaxhighlight>
Register 2 ($9c03)
Mit Register 2 kann man die von der FE3 belegten Ressourcen freigeben (deaktivieren). Das Register befindet sich an der Adresse 39939 ($9c03). Mit POKE 39939,Y wird der Wert der Variablen Y in das Register 2 geschrieben. Mit PEEK(39939) kann man den Wert des Register 2 auslesen.
Der VC-20 hat 5 freie Adressräume (Speicher Blöcke). Die FE3 kann jedem dieser 5 Blöcke Speicher zuordnen. Dh. es wird ein Teil des Speichers der FE3 in einem oder mehreren Blöcken des VC-20 eingeblendet (Banking).
Die unteren 5 Bits (Bit 0 bis Bit 4) des Register 2 steuern die Sichtbarkeit der 5 Speicher Blöcke im VC-20. Eine 0 blendet den zugehörigen Block ein, eine 1 blendet den Block aus. Das Ausblenden der Speicher Blöcke benötigt man, um die Hardware Kompatibilität zu anderen Modulen zu ermöglichen, also andere Module gleichzeitig nutzen zu können.
Das oberste Bit (Bit 7) des Register 2 steuert die Sichtbarkeit der Register. Eine 0 blendet die beiden Register ein, eine 1 blendet beide Register aus (deaktiviert die Register).
Achtung: Wenn die Register ausgeblendet werden, dann gibt es für die Software keine Möglichkeit mehr die Konfiguration zu ändern. Erst nach einem RESET werden die Register wieder sichtbar.
Das Ausblenden der Register macht man, damit fremde Software nicht unbeabsichtigt die Konfiguration der FE3 ändern kann. Damit wird die Kompatibilität zu jeder erdenklichen Software hergestellt.
<syntaxhighlight> Bit 0 ... Sichbarkeit des VC-20 Speicherblock 0 (Blk0 - $0400-$0FFF) Bit 1 ... Sichbarkeit des VC-20 Speicherblock 1 (Blk1 - $2000-$3FFF) Bit 2 ... Sichbarkeit des VC-20 Speicherblock 2 (Blk2 - $4000-$5FFF) Bit 3 ... Sichbarkeit des VC-20 Speicherblock 3 (Blk3 - $6000-$7FFF) Bit 4 ... Sichbarkeit des VC-20 Speicherblock 5 (Blk5 - $A000-$BFFF) Bit 5 ... 1: invertiert A13 Bit 6 ... 1: invertiert A14 Bit 7 ... Sichtbarkeit des IO-3 (Register 1 und 2) </syntaxhighlight>
Banking:
Damit man den gesamten Speicher der Final Expansion erreichen kann, muss man den Speicher stückweise einblenden. Dazu stehen verschiedene Betriebsarten zur Verfügung, um alle Erfordernisse abdecken zu können.