Posts by cbmhardware

    Danke für die Info, das ist eine gute Nachricht.


    Gleich bei den Anbietern aus Asien nachgesehen. Der MT8816 in PLC44 ist wohl die günstigste Variante (bei Ebay) mit 1,23€.


    Mal sehen ob man irgendwo noch ein paar passende Arduino-Shields routen lassen kann.

    Ja, das ist richtig. Wir hatten das alles schon mehrfach in den letzten Jahren beharkt, ist danach dann nie etwas daraus geworden. Ich habe auch eine kleine Planänderung, da es sogar mit den wenigen (6) IRQ-Pins schwierig ist, den Scanner abzupassen, um danach passend einzugreifen. Wenn man den Tastendruck auswertet, ist es einfacher, weil der Finger wahrscheinlich lange genug auf der Taste ist.

    Ich habe eben drei MT8816 für mich bestellt und die kommen in den nächsten zwei Wochen. Aus China bestellen könnte ab heute komplizierter werden. Frohes Neues noch ! - Seit heute ist Einfuhr ab 1 Cent fällig. Bei uns ist das nächste Zollamt um die 30km entfernt, wahrscheinlich gibt es dann noch Corona-Termin-Probleme und weitere unnötige Spässe. Da kann man dann auch direkt ein paar Euro fürs IC aus Deutschland bezahlen. Händler bei Ebay: https://www.ebay.de/itm/MT8816…ch-Array-SMD/372800447759


    Ist zwar 8x16, es sind auf jeden Fall ausreichend analoge Schalter. :)


    Einen offenen Source gib es schon für den C64: https://github.com/Hartland/C64-Keyboard . Den möchte ich dann forken und möglichst universell für alle Commodore und CBM umgestalten.


    Weitere Möglichkeiten (aus meinen Bookmarks): C64-Tastatur ans ROM anpassen - http://www.6502.org/users/sjgr…ts/petkeyboard/index.html

    Platine für den CBM 8032, eingeschlafenes Project: http://ps2cbm.blogspot.com/

    Keyboard Scan Routine SCNKEY $E924

    Die 10 Leitungen vom 74LS145 gehen als Eingang (1...10) in die Tastaturmatrix. Während der Abfrage ist immer nur eine Leitung high. Die 8 anderen Leitungen der Matrix(A...H) werden bei jeden Hochzählen des 74LS145 über den Port B des PIA abgefragt. Dort kann man dann erkennen, welche Kreuzungspunkte der 'aktiven' Spalte durch eine Taste geschlossen wurden.

    Der 74LS145 ist ein Dekoder und kann nur ein Ausgang sein. Da kann man den Scan der Leitungen leicht nachweisen und der andere Port B liegt fest auf high als Eingang. Sobald eine Taste gedrückt wird, fällt Port B auf low, da aus dem Dekoder auf der entsprechenden Leitung natürlich low getrieben wird. Und anhand einer Messung kann man leicht erkennen, wann das ist, da ist das Timing fast unerheblich.

    Na ja - was willst Du damit erreichen? Wie die Tastaturabfrage funktioniert, sollte doch eigentlich klar sein:

    Wissen wir es funktioniert. ;)


    Mit dem Analog CrossSwitch kannst Du Dir das alles sparen, der funktioniert aus Sicht des CBM wie eine echte Taste

    Tja, das kann jeder leicht dem Datenblatt entnehmen, auch ich.

    Ich werde mich zwischendurch ein bisschen damit beschäftigen. Habe erst mal einen teilweise zerlegten CBM 8296 auf dem Tisch, damit der Monitor dahinter stehen kann. Zur einfacheren Verbindung ist nun eine Pfostenleiste zusätzlich verbaut, auf die Schnellverbinder gesteckt werden.



    Mal sehen was es wird ...

    Ich hatte vor Jahren etwas ähnliches mit einem FET und Shunt in der Minusleitung entwickelt: http://www.cbmhardware.de/temp/efuse.png (den FET im Schaltplan gegen eine TTL-Version ersetzen). Da kann man den Strom individuell einstellen und mit einem Rückstell-Button das Netzteil nach Überstrom wieder aktivieren. Schmelzsicherungen sind zusätzlich drin, aber die bleiben kalt, wenn die elektronische Variante den "Stecker zieht". :)



    5V - 2A (Schaltnetzteil) und 9V~ -1,5A (Ringkern) im Stahlblechpanzer. :) Oben sind die 5V zusätzlich für Aufbauten oder Logiktester an den Bananen-Buchsen. Der Rückstell-Button ist an der Seite unter den Zuleitungen mit Rot/Grün-LED.

    Ja, das wurde bei den CBMs wohl in der IRQ-Routine zerstreut. Man braucht natürlich zwei Koordinaten um in der Matrix die Taste genau bestimmen zu können. Bei keyman64 wird das Matrix-IC eingeschleift und so die Ports belauscht.

    Wenn man alle 18 Leitungen überwachen und die 8 Eingänge auch beschalten möchte, braucht man schon eine Menge I/O, wenn man ohne dieses Matrix-IC auskommen möchte. Mir kommt da ein Arduino Mega 2560 (Klon) für um die 10€ in den Sinn.

    Hier sind Originalwerte: https://www.c64-wiki.de/wiki/Feinsicherung . Beim C64 wird 160mA bei 250V angegeben, ist natürlich dann für 9~ und 5V=. P = U * I ergeben: bei 40 Watt Leistung ist die Sicherung so langsam fällig.

    Wenn Du die originalen Werte für die sekundäre Seite verwendest, 5V - 2A und 9V~ - 1,5A, könnte die primäre Sicherung auch im schon erwähnten Bereich liegen. Die Assy 250469 funktioniert auch mit 1,5A, solange man nicht allzu viel altes TTL-Gedöns dranhängt.

    Entstanden ist scheinbar noch nichts. Ich hatte eben nochmals auf die Schaltpläne der CBMs geschaut. Das Prinzip ist eigentlich immer gleich. An Port A des PIA hängt ein BCD-Dekoder und die Open Collector I/Os von Port B sind die 8 Reihen.



    In der Vergangenheit wurde immer über ein spezielles Matrix-IC diskutiert und letztlich blieb es wohl auch dabei. :)


    Mir fehlen auch einige Tastaturen für die CBMs. Wenn man sich das ROM-Listing vom 8032 anschaut, wird man den Eindruck nicht los, dass da die gedrückte Taste eigentlich nur über Port B ausgewertet wird. Oder ich habe etwas übersehen ... muss mal einen CBM aufbauen und etwas experimentieren.

    Ich besitze eine sehr alte Version des IEE488-Cartridge für den C64. Damit kann man z.B. eine SFD1001 oder alte Doppellaufwerke anschliessen. Wenn man etwas in einem Expander mit anderen Modulen betreiben möchte, muss vorher abgeklärt werden, ob es I/O-Konflikte geben könnte. Und ob es überhaupt ratsam ist, beim Modul einen Expander zu verwenden.

    Ich erstelle hiermit ein neues Thema speziell zur Assembler-Programmierung mit dem Commodore 16 und Plus/4. Vielleicht animiert es zur Programmierung oder hilft bei der Fehlersuche.


    Als Anfang ein Vertical-Scroll, der dem des Commodore 64 sehr ähnlich ist. Der Richtungswechsel wirkt durch das Warten auf die Rasterzeile $ff etwas zackig. Die kann man verringern, dann wird es aber schwieriger beim Zuschauen. Der Plus/4 ist schnell. :)


    Die Atari-Jungs und Mädchen können es ja auch machen.

    Nein, dort wurden nur DIPs gegen Touchscreen ersetzt und das nicht verwendete Laufwerk wird mit Image noch angezeigt. Hat einen gewissen Komfort, in der Funktion ist es nahezu identisch: es wird immer das eine selektierte Laufwerk verwendet.

    Moment mal, das würde doch bedeuten, dass man keine zwei Laufwerke haben könnte, ohne ständig mit den DIPs zu wechseln? Ist das Ziel von einem SD2IEC mit mehreren Laufwerken in einem nicht, genau das zu vermeiden und automatisch, sobald ein Laufwerk angefragt wird, zu wechseln?

    Ja, da hatte ich einen kleinen Denkfehler. Das ist einerseits, wie auch schon erwähnt, wenig sinnvoll, aber auch technisch nicht so leicht umsetzbar. Wenn ich mich richtig erinnere, kann das Chameleon64 so etwas.

    Beim SD2IEC würde man da wohl zum nächst grösseren AVR 2560 greifen müssen, um diese Funktionen umzusetzen, die eigentlich kein Mensch braucht. Der Bus ist daiychain, man könnte dem Computer wohl vorgaukeln, dass da zwei Laufwerke bei einzelnen Anfragen sind, aber wie schon erwähnt ... who cares ? :)

    Also wenn ich den CBM-Bus richtig verstehe, dann geht da nix mit parallelem Lesen von mehreren Drives, also könnte man eigentlich da was über Firmware machen. Die beiden Drives hätten dann ihre Ordner "/d0" und "/d1" oder so.

    Da brauchst Du eigentlich nur eine Variable. Da sowieso nur immer _ein _ Laufwerk selektiert sein kann, ob über DIP-Switch oder Touch-Screen, braucht man nicht mehr. Wie man oben im Bild von dem S-Drive erkennen kann, ist D1 also Drive 1 beim Atari selektiert. In D2 wird zwar ein Image angezeigt, das ist aber nicht aktiviert. Dazu muss man jeder Laufwerksadresse nur eine Variable zuordnen, damit der µC das dort zuletzt verwendete Image nicht vergisst.

    Sowohl beim Commodore Computer als auch beim Atari sind grundlegend vier Laufwerke möglich: ersterer Laufwerk 8-11 und Atari 1-4. Und bei einem so alten seriellen Protokoll gibt es keine Hydra-Version, also Senden und Empfangen auf einer Leitung.

    Wenn man sich vorab über die technischen Grundlagen etwas informiert, entstehen solche Fragen wie in diesem Thema gar nicht,


    Zwei Cartridges sind jetzt getestet und laufen einwandfrei. Ich hatte die Replik der Original-Platine verwendet, die sogar sehr schön ins Gehäuse passt. Bobbel gibt es die gar nicht mehr im Shop ?


    Game-Cartridge: Moonbuggy, Galaxy, Invaders und Kikstart.

    Tool-Cartridge: DraCopy, Directory-Browser und File-Copier.



    Das Tool-Modul ist speziell fürs SD2IEC gedacht. Mit DraCopy können dann auch mal Dateien von oder zum D64 kopiert werden. Idealerweise werden dabei alle Geräte von Jiffy-DOS unterstützt. In diesem Cartridge habe ich den Code optimiert und 2Mhz-Kopieren verwendet.


    Nur so am Rande: Programmierung und Emulation gehen immer schnell. Die wirkliche Katastrophe offenbart sich, wenn man jahrelang nicht verwendete Geräte zum Testen verwenden möchte. Oder alte Eproms sich gegen das Neubrennen wehren. Da platzen Netzfilter oder Laufwerke sind nach Minuten spontan defekt. :)


    Sources und Bins sind im meinem git:


    Game-Cartridge: https://github.com/cbmuser/gamecart_plus-4

    Tool-Cartridge: https://github.com/cbmuser/toolcart-Plus-4


    Bobbel : Wenn Du irgendwelche Spiele gern auf einem Cartridge hättest, setze hier die Namen möglichst mit URL zu Plus/4-World rein. Ich schaue dann mal, was ich machen kann.