Auf der Suche nach einer Epromkarte mit passender Modulsoftware für den c16 bin ich auf die Karten von Solder gestoßen.
Leider gibt es dazu nur noch Hinweise.
Hat eventuell jemand einen Schaltplan, oder Eagle Dateien?

Hallo Besucher, der Thread wurde 2k mal aufgerufen und enthält 9 Antworten
letzter Beitrag von cbmhardware am
64k Eprom Karte von Solder
- erik1967
- Erledigt
-
-
Ich glaube nicht, dass man heute noch etwas darüber finden wird. Wie ich gehört habe, macht der C. Schäffner auch schon lange nichts mehr.
Es ist aber kein allzu großer Wurf, so etwas selbst zu bauen, wenn man mit einem großen ROM arbeiten möchte. Dieses also nicht mit dem P/4 oder C16 beschreiben möchte.
Du baust Dir an $FD20-$FD2F eine Schaltlogik für Leitungen und Banking des ROMs. Da Du sowieso nur maximal 32KByte einblenden kannst, geht da auch ein größeres ROM. Damals war das sicher eine Preisentscheidung.
Das erste 8-16KByte ROM, welches über CBM-Kennung (Bank $02) eingeblendet wird, enthält dann die Steuer- und Auswahlsoftware. Ist alles ein bisschen Arbeit, sollte aber realisierbar sein.
Code- Commodore PLUS/4 & C16 MEMORY
- ------ CPU & Screen Read ------ - Character Set --
- Write Read RAM Read ROM Read RAM Read ROM
- 0000-7FFF RAM RAM RAM RAM
- 8000-BFFF RAM RAM LO ROM RAM LO ROM
- C000-FBFF RAM RAM HI ROM RAM HI ROM
- FC00-FCFF RAM RAM KERNAL RAM KERNAL
- FD00-FD0F (6551) (6551) (6551)
- FD10-FD1F CAS(USER) CAS(USER) CAS(USER)
- FD20-FD2F ? ? ?
- FD30-FD3F KEYBOARD KEYBOARD KEYBOARD
- FD40-FDCF
- FDD0-FDDF ROM LATCH
- FDE0-FEFF
- FF00-FF1F TED TED TED TED TED
- FF20-FF3D RAM RAM HI ROM RAM HI ROM
- FF3E ROM SELECT HI ROM HI ROM
- FF3F RAM SELECT HI ROM HI ROM
- FF40-FFFF RAM RAM HI ROM RAM
- ( ) NOT AVAILABLE ON THE C16
- NOTE: FD20-FD2F is accessed by the kernal power-up routines, but
- nothing inside the PLUS/4 or C16 is at this address.
- LO ROM and HI ROM are determined by writing
- to the appropriate ROM LATCH address.
- ROM LATCH LO ROM HI ROM
- FDD0 BASIC KERNAL
- FDD1 (FUNCTION LO) KERNAL
- FDD2 CARTRIDGE 1 LO KERNAL
- FDD3 CARTRIDGE 2 LO KERNAL
- FDD4 BASIC (FUNCTION HI)
- FDD5 (FUNCTION LO) (FUNCTION HI)
- FDD6 CARTRIDGE 1 LO (FUNCTION HI)
- FDD7 CARTRIDGE 2 LO (FUNCTION HI)
- FDD8 BASIC CARTRIDGE 1 HI
- FDD9 (FUNCTION LO) CARTRIDGE 1 HI
- FDDA CARTRIDGE 1 LO CARTRIDGE 1 HI
- FDDB CARTRIDGE 2 LO CARTRIDGE 1 HI
- FDDC BASIC CARTRIDGE 2 HI
- FDDD (FUNCTION LO) CARTRIDGE 2 HI
- FDDE CARTRIDGE 1 LO CARTRIDGE 2 HI
- FDDF CARTRIDGE 2 LO CARTRIDGE 2 HI
- ( ) NOT AVAILABLE ON THE C16
-
Hallo, muss ich mich mal einlesen....
Ideal wäre natürlich, wenn man hier auch gleich brennen kann...., Software für den Tiny ist ja vorhanden. -
Ich habe das beim Kaffee mal durchkalkuliert. Die einfachere Variante hat möglichst zwei ROM-Chips. Da bieten sich zwei 010er (128kBytex8) Flash- oder Eprom-ICs an.
Zuerst muss man aber auf $fd20 kommen: ein 74LS30 und ein 74LS138 reichen für die Dekodierung. Dazu hat jeder ROM-Chip vier zu beschaltende Adressleitungen: A13,14,15 und 16.
Da würde ich ein 8Bit-Register verwenden: 74LS574. D0-D3 übernimmt dann das Banking für die Low- und D4-D7 für die High-Bank. Dann fehlen noch die Select-Leitungen fürs C16- Banking. C1L, C2L, C1H und C2H.
Das wird dann etwas kniffliger, weil aus dem ersten IC zumindest 8KByte eingeblendet werden sollen, damit man eine Auswahl per Software hat. Dazu nimmt man dann ein 74LS174 4Bit-Register und ein 74LS125 zum Isolieren der einzelnen Select-Leitungen, die im Moment nicht verwendet werden. Da nach dem Reset am Register an allen Ausgängen Low anliegt, kann C1L direkt über den ersten Ausgang geschaltet werden. Die anderen Leitungen brauchen dann einen Inverter: 74LS04.
Das Register für die oberen Adressleitungen hat auch Low an den Ausgängen, also wird Bank $00 aus dem Low-ROM ab $8000 eingeblendet. That's all.Bauteile:
Dekodierung; 740LS30 und 74LS138
74LS574 (obere Adressleitungen)
74LS174, 74LS04, 74LS125 (Select-Leitungen)
2x 27010, oder 29010 jeweils Low und High-ROMSiehe weiter unten.
-
Wäre nicht ein 74xx273 besser? Der hat ein RESET-Signal und kann damit beim Einschalten in einen definierten Zustand gebracht werden. Sonst hast du über die oberen Adressleitungen jedesmal andere Bänke ausgewählt.
Ein 74xx574 ist nach dem Einschalten nicht notwendigerweise Null.
Bei Verwendung von $FD2x nicht vergessen, daß der KERNAL an einer Stelle auf diesen Adressbereich zugreift.
Der 74xx174 ist übrigens ein 6 Bit-Register, ich denke du meinst den 74xx175 wie er auch in der Banking-Logik des C16/+4 zu finden ist.
-
Ja, richtig 175er meinte ich und der 273 wird wohl die bessere Wahl sein.
Das fand ich eben im ROM:
$fd20 %01001001
An der Dekodierung dann A1 oder A2 mit auswerten, damit man zumindest auf $fd21 und eine weitere Adresse kommt.
Also mit Nachbesserung:
740LS30 und 74LS138 ; Dekodierung
74LS273 (obere Adressleitungen)
74LS175, 74LS04, 74LS125 (Select-Leitungen)
2x 27010, oder 29010 jeweils Low und High-ROM -
Für die Dekodierung könnte man noch einen Blick auf den 74xx133 werfen.
-
Für die Dekodierung könnte man noch einen Blick auf den 74xx133 werfen.
Eine wirkliche Verbesserung wird das aber nicht bringen. Auch wenn man das untere Nibble von $fd20 für die Select-Leitungen verwendet, um mit den freien Invertern dann noch etwas anzupassen, wird man letztlich auch wieder beim zusätzlichen Dekoder landen. Würde aber auch schon allein für $fd2x nicht reichen.
-
Statt einem 74LS04 kann man auch einen 74LS240 nehmen, der hat 8 Inverter die sogar noch in 2 Blöcken a 4 tristate können.
-
Statt einem 74LS04 kann man auch einen 74LS240 nehmen, der hat 8 Inverter die sogar noch in 2 Blöcken a 4 tristate können.
Damit wird wohl eine feinere Dekodierung möglich sein. Man braucht aber zwei getrennt dekodierte Adressen, jeweils für die oberen Adressleitungen der ROMs und nochmal für die Select-Leitungen. Da sehe ich so keine Möglichkeit.