Mahlzeit !
Ich lese hier im Forum seit kurzem mit und habe auch schon
viele interessante Sachen gefunden, die ich bei meinem in Bälde geplanten Umbau
meines aus dem Keller geborgenen C64 berücksichtigen möchte.
Nun aber zu meinem Anliegen:
Es ist zwar bestimmt der 20. Beitrag zu dem Thema, aber ich
riskiere hier einfach mal noch so einen zu erstellen.
In den Beiträgen zum Thema finde ich immer wieder die
Verwendung von Crosspoint-Schaltern zum Ansteuern.
Da ich nun in diesem Forum viele Hard- und Softwarefreaks
erspäht habe, könnet ihr mich vielleicht mal aufklären.
Im Anhang erst mal die Schaltung wie ich sie mir vorgestellt
hatte. Euch obliegt jetzt die glorreiche Aufgabe mir zu sagen, ob das so
funktionieren würde oder ehr nicht
Erläuterung zur Schaltung:
Port A der CIA geht direkt an den AVR und jeweils die
geraden und ungeraden Bits an 2 NOR-Gatter.
Laut C64-Wiki wird der Port A als Ausgang geschaltet und
durch diesen wird eine 0 geschoben.
Da dies nun gleichmäßig passiert und die 2 NOR-Gatter dran
sind, wird bei jedem Schiebevorgang der 0 im AVR ein IRQ ausgelöst....
Bei Bit 0,2,4,6 Int0
Bei Bit 1,3,5,7 Int1
Somit müßte sich doch erkennen lassen, an welchem
Ausgangspin der CIA die 0 gerade anliegt.
In den IRQ-Routinen des AVR wird geprüft welcher Eingang nun
konkret auf Masse liegt. Die Eingänge Int0 und Int1 sind eigentlich nur zum
Hardwaretechnischen detektieren des Signalwechsels.
Dann wird im IRQ der Ausgangsport entsprechend meiner
gerückten Taste gesetzt.
Der AVR muß nur 8 Register verwalten die er dann eben
nacheinander an seinen Ausgang und den Eingang der CIA schiebt.
Da die IRQ Routine sich nur auf eine kleine Abfrage der 4 in
Frage kommenden Eingänge und das schalten des Ausgangsports beschränkt dürfte
es doch mit meinem Hauptprogramm keine Probleme geben.....
In der Hauptschleife wird die PC-Tastatur via Polling
abgefragt und die 8 in frage kommenden Ausgangsregister werden je nach
Tastendruck geändert.
Da die PS2 Tastatur ja seeehr langsam mit dem Takt ist,
sollte ich doch genug Zeit haben und die auftretenden IRQ’s stören nicht.
So, nun dürft ihr eure Kommentare abgeben ob und wo ich
einen Denkfehler habe.
Aber bitte nicht gleich beim ersten Beitrag meinerseits auf
mich einprügeln !
Gruß: Marduk