Discussion:
C64: -I/0 1,2 mit Phi2 verknüpft?
(zu alt für eine Antwort)
Peter Heitzer
2019-07-15 10:26:03 UTC
Permalink
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Hintergrund ist folgender:
Die genannten Signale, die Datenleitungen, sowie R/-W und Betriebsspannung
liegen beim Expansionsport auf derselben Seite, nur Phi2 liegt auf der
anderen. D.h. für einen einzelnen 8-Bit-Port käme ich mit einer einseitigen
Platine, z.B. als Streifenraster aus. Wenn ich Phi2 brauchen, muss ich
wegen einer Leitung eine doppelseitige Platine anfertigen.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Gerrit Heitsch
2019-07-15 16:02:55 UTC
Permalink
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.

Gerrit
Peter Heitzer
2019-07-15 16:22:56 UTC
Permalink
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Gerrit Heitsch
2019-07-15 16:37:21 UTC
Permalink
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
Ja, kann es, aber nur weil der C64 wegen Bussharing der CPU mit VIC ein
leicht anderes Timing fährt als ein Rechner bei dem der 6502 den Bus die
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.

Warum nimmst du für I/O nicht einfach einen 6821? Wurde damals oft gemacht.

Gerrit
Peter Heitzer
2019-07-16 06:48:58 UTC
Permalink
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
Ja, kann es, aber nur weil der C64 wegen Bussharing der CPU mit VIC ein
leicht anderes Timing fährt als ein Rechner bei dem der 6502 den Bus die
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.
Interessant. Kannst du die Gründe nennen?
Post by Gerrit Heitsch
Warum nimmst du für I/O nicht einfach einen 6821? Wurde damals oft gemacht.
Ich dachte eher daran ein HD44780 kompatibles Display direkt am Bus zu
betreiben. Da brauche ich dann Phi2 auf jeden Fall.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Gerrit Heitsch
2019-07-16 16:21:34 UTC
Permalink
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
Ja, kann es, aber nur weil der C64 wegen Bussharing der CPU mit VIC ein
leicht anderes Timing fährt als ein Rechner bei dem der 6502 den Bus die
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.
Interessant. Kannst du die Gründe nennen?
Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.
Post by Peter Heitzer
Post by Gerrit Heitsch
Warum nimmst du für I/O nicht einfach einen 6821? Wurde damals oft gemacht.
Ich dachte eher daran ein HD44780 kompatibles Display direkt am Bus zu
betreiben. Da brauche ich dann Phi2 auf jeden Fall.
Ist das schnell genug um am C64 funktionieren zu können? Nicht
vergessen, die CPU läuft mit 985 kHz, also knapp 1µs/Zyklus. Davon will
aber VIC die Hälfte haben und die PLA hat ca. 55ns Durchlaufzeit.
Nochmal 10 ns für die beiden in Reihe geschalteten Hälften des 74LS139
und du hast 435 ns zur Verfügung.

Üblicherweise hängt man so ein Display nie direkt an den Bus sondern
immer noch einen I/O-Chip dazwischen.

Gerrit
Peter Heitzer
2019-07-16 16:31:59 UTC
Permalink
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
Ja, kann es, aber nur weil der C64 wegen Bussharing der CPU mit VIC ein
leicht anderes Timing fährt als ein Rechner bei dem der 6502 den Bus die
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.
Interessant. Kannst du die Gründe nennen?
Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.
Post by Peter Heitzer
Post by Gerrit Heitsch
Warum nimmst du für I/O nicht einfach einen 6821? Wurde damals oft gemacht.
Ich dachte eher daran ein HD44780 kompatibles Display direkt am Bus zu
betreiben. Da brauche ich dann Phi2 auf jeden Fall.
Ist das schnell genug um am C64 funktionieren zu können? Nicht
vergessen, die CPU läuft mit 985 kHz, also knapp 1µs/Zyklus. Davon will
Für 1 MHz sollte der HD44780 schnell genug sein. E (=Phi2) muss mind.
450 ns aktiv sein und die Zykluszeit mind. 1 µs.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Gerrit Heitsch
2019-07-16 16:50:27 UTC
Permalink
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
Ja, kann es, aber nur weil der C64 wegen Bussharing der CPU mit VIC ein
leicht anderes Timing fährt als ein Rechner bei dem der 6502 den Bus die
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.
Interessant. Kannst du die Gründe nennen?
Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.
Post by Peter Heitzer
Post by Gerrit Heitsch
Warum nimmst du für I/O nicht einfach einen 6821? Wurde damals oft gemacht.
Ich dachte eher daran ein HD44780 kompatibles Display direkt am Bus zu
betreiben. Da brauche ich dann Phi2 auf jeden Fall.
Ist das schnell genug um am C64 funktionieren zu können? Nicht
vergessen, die CPU läuft mit 985 kHz, also knapp 1µs/Zyklus. Davon will
Für 1 MHz sollte der HD44780 schnell genug sein. E (=Phi2) muss mind.
450 ns aktiv sein und die Zykluszeit mind. 1 µs.
Gilt das auch für die ganzen Clones? Die meisten Displays haben ja
keinen Original HD44780 drauf sondern einen Nachbau.

Ich würde lieber den 6821 dazwischenschalten.

Gerrit
Peter Heitzer
2019-07-17 10:59:34 UTC
Permalink
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Letzteres... Die Signale kommen aus der PLA und einem nachgeschalteten
74LS139 als Dekoder. PHI2 ist weder an der PLA noch am Dekoder zu finden.
Im commodore 64 interfacing blue book findet sich eine I/O Porterweiterung
mit LS273 (Out) und LS244 (In), die nur I/O und R/-W zur Dekodierung
heranzieht. Kann dies trotzdem ohne Phi2 funktionieren?
Ja, kann es, aber nur weil der C64 wegen Bussharing der CPU mit VIC ein
leicht anderes Timing fährt als ein Rechner bei dem der 6502 den Bus die
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.
Interessant. Kannst du die Gründe nennen?
Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.
Post by Peter Heitzer
Post by Gerrit Heitsch
Warum nimmst du für I/O nicht einfach einen 6821? Wurde damals oft gemacht.
Ich dachte eher daran ein HD44780 kompatibles Display direkt am Bus zu
betreiben. Da brauche ich dann Phi2 auf jeden Fall.
Ist das schnell genug um am C64 funktionieren zu können? Nicht
vergessen, die CPU läuft mit 985 kHz, also knapp 1µs/Zyklus. Davon will
Für 1 MHz sollte der HD44780 schnell genug sein. E (=Phi2) muss mind.
450 ns aktiv sein und die Zykluszeit mind. 1 µs.
Gilt das auch für die ganzen Clones? Die meisten Displays haben ja
keinen Original HD44780 drauf sondern einen Nachbau.
Ich habe genügend Displays mit dem Original drauf.
Post by Gerrit Heitsch
Ich würde lieber den 6821 dazwischenschalten.
Das verkompliziert das Auslesen des Busyflags. Der HD44780 ist ja genau
auf den Betrieb an einem 6800 kompatiblen Bus zugeschnitten.
Bei direktem Anschluss an den Bus reicht ein
busy: BIT <lcdadresse>
BMI busy
aus, um aus das Flag zu testen. Mit 6821 muss ich relativ umständlich Bits
umsetzen. Der 6502 hat leider keine Einzelbitbefehle wie der 8051.
Ohne Abfrage des Busyflags muss ich nach jedem Befehl etwa 1ms warten,
um sicher zu sein, daß das Display mit dem letzten Befehl fertig ist.
Ich weiss, daß das die gebräuchlichste Methode ist, aber Busyflag testen
halte ich für eleganter und auch effizienter.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Andreas Kohlbach
2019-07-16 19:26:06 UTC
Permalink
[...] Nicht vergessen, die CPU läuft mit 985 kHz, also knapp
1µs/Zyklus.
Rosinen kack: Jein. Das gilt nur für die PAL (und ggf. SECAM?)
Version. Die NTSC Version des C64 läuft mit rund 1022 kHz.
--
Andreas
You know you are a redneck if
you have the taxidermist's number on speed-dial.
Peter Heitzer
2019-07-17 15:48:33 UTC
Permalink
Post by Gerrit Heitsch
Post by Peter Heitzer
Post by Gerrit Heitsch
ganze Zeit hat. Dafür kann man aber im C64 nicht einfach einen 6522
anschliessen.
Interessant. Kannst du die Gründe nennen?
Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.
Ich habe mal gesucht und die Erklärung gefunden:

In http://cbm-hackers.2304266.n4.nabble.com/6522-VIA-Questions-td4062943.html
...

Yes, they are. But the C64 isn't. The addresslines of the 6522 must be valid
before the ChipSelect signals and PHI2 are activated. With the C64/128 the
VIC-II still commands the addressbus the first xx nanoseconds of the
positive half of PHI2. The trick is to slow down the rising edge of PHI2
using the DOT-clock. Connect the DOT-clock to the CLK-input of a 74, connect
PHI2 to the data- and CLR-input, tie the PRESET-input to +5 Volt. The
Q-output now delivers the modified PHI2.

Also nur Phi2 um einen Dot-Clock verzögert an die VIA anliefern, dann
geht es auch.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Ralf Kiefer
2019-07-17 21:30:53 UTC
Permalink
Post by Peter Heitzer
Also nur Phi2 um einen Dot-Clock verzögert an die VIA anliefern, dann
geht es auch.
Scheint dieselbe Aufgabe wie beim Applebus-Slot mit den 6522 zu sein.

Gruß, Ralf
Peter Heitzer
2019-07-18 06:50:10 UTC
Permalink
Post by Ralf Kiefer
Post by Peter Heitzer
Also nur Phi2 um einen Dot-Clock verzögert an die VIA anliefern, dann
geht es auch.
Scheint dieselbe Aufgabe wie beim Applebus-Slot mit den 6522 zu sein.
Nicht ganz. Dem Artikel entnehme ich, daß beim Apple I/O mit Phi2 verknüpft
ist. Das ist an sich eine gute Idee, aber nur für Bausteine, die Phi2
nicht selber auswerten, also normale Latches und Bustreiber und evtl.
auch eine Z80 PIO.
Beim C64 funkt der VIC-II dazwischen.
Die Lösung ist in beiden Fällen aber gleichwertig.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Sebastian Barthel
2019-07-16 09:34:45 UTC
Permalink
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
...
Die genannten Signale, die Datenleitungen, sowie R/-W und
Betriebsspannung liegen beim Expansionsport auf derselben Seite, nur
Phi2 liegt auf der anderen. D.h. für einen einzelnen 8-Bit-Port käme ich
mit einer einseitigen Platine, z.B. als Streifenraster aus. Wenn ich
Phi2 brauchen, muss ich wegen einer Leitung eine doppelseitige Platine
anfertigen.
Man kann da auch einen Lackdraht unten langführen bis zu einer günstigen
Stelle am Rand oder auch dort wo es gebraucht wird und nach oben durch
die Platine führen, wenn man eine "Öffnung öffnet" - dann reicht
einseitig völlig aus. Lackdraht auf Platine geklebt sieht sogar ganz
hübsch aus.
Peter Heitzer
2019-07-16 10:22:33 UTC
Permalink
Post by Sebastian Barthel
Post by Peter Heitzer
Ich habe noch eine Frage zum Expansionport des C64.
...
Die genannten Signale, die Datenleitungen, sowie R/-W und
Betriebsspannung liegen beim Expansionsport auf derselben Seite, nur
Phi2 liegt auf der anderen. D.h. für einen einzelnen 8-Bit-Port käme ich
mit einer einseitigen Platine, z.B. als Streifenraster aus. Wenn ich
Phi2 brauchen, muss ich wegen einer Leitung eine doppelseitige Platine
anfertigen.
Man kann da auch einen Lackdraht unten langführen bis zu einer günstigen
Stelle am Rand oder auch dort wo es gebraucht wird und nach oben durch
die Platine führen, wenn man eine "Öffnung öffnet" - dann reicht
einseitig völlig aus. Lackdraht auf Platine geklebt sieht sogar ganz
hübsch aus.
Falls ich eine Platine für den Expansionsport bastle, werde ich nur die
Adress-, Daten- und Steuerleitungen puffern und einen 40 poligen
Wannenstecker einbauen. Meine Erweiterungen kann ich dann über ein kurzes
Flachbandkabel anschliessen.
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Ralf Kiefer
2019-07-16 10:46:13 UTC
Permalink
Post by Peter Heitzer
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
Möglicherweise findest Du in diesem c't-Artikel Deine Antwort:
http://www.appleii-box.de/H059_AppleIIUniversalInterface.htm

Zum speziellen Timing im Apple II gibt's hier Hinweise, falls im ersten
Artikel was zum Verständnis fehlen sollte:
http://www.appleii-box.de/H056_2x6522VIAat%20the%20Apple.htm

Gruß, Ralf
Peter Heitzer
2019-07-16 10:59:34 UTC
Permalink
Post by Ralf Kiefer
Post by Peter Heitzer
Es gibt -I/O1 und -I/O2, welche bei Zugriffen auf 0xDExx bzw. 0xDFxx
aktiv werden. Sind diese Signale bereits mit Phi2 verknüpft oder muss
ich Phi2 für eine E/A-Schaltung in die Dekodierung mit einbeziehen?
http://www.appleii-box.de/H059_AppleIIUniversalInterface.htm
Ist nur ein mc-Artikel :-)
Trotzdem danke.
Post by Ralf Kiefer
Zum speziellen Timing im Apple II gibt's hier Hinweise, falls im ersten
http://www.appleii-box.de/H056_2x6522VIAat%20the%20Apple.htm
Gruß, Ralf
--
Dipl.-Inform(FH) Peter Heitzer, ***@rz.uni-regensburg.de
Ralf Kiefer
2019-07-16 11:06:11 UTC
Permalink
Post by Peter Heitzer
Ist nur ein mc-Artikel :-)
Na gut :-)


Gruß, Ralf
Loading...