Hello, Guest the thread was called1.3k times and contains 9 replays

last post from cbmhardware at the

64k Eprom Karte von Solder

  • 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.



  • 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-ROM


    Siehe 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:


    Code
    1. LDA #$09
    2. STA $FD20
    3. ORA #$80
    4. STA $FD20


    $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.


    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.


    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.