expertenaustausch > alt.* > alt.folklore.computer

Peter Heitzer (15.07.2019, 12:26)
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.
Gerrit Heitsch (15.07.2019, 18:02)
On 7/15/19 12:26 PM, Peter Heitzer wrote:
> 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 (15.07.2019, 18:22)
Gerrit Heitsch <gerrit> wrote:
>On 7/15/19 12:26 PM, Peter Heitzer wrote:
>> 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?
Gerrit Heitsch (15.07.2019, 18:37)
On 7/15/19 6:22 PM, Peter Heitzer wrote:
> Gerrit Heitsch <gerrit> wrote:
> 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 (16.07.2019, 08:48)
Gerrit Heitsch <gerrit> wrote:
>On 7/15/19 6:22 PM, Peter Heitzer wrote:


>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?


>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.
Sebastian Barthel (16.07.2019, 11:34)
Am Mon, 15 Jul 2019 10:26:03 +0000 schrieb 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 (16.07.2019, 12:22)
Sebastian Barthel <naitsabes> wrote:
>Am Mon, 15 Jul 2019 10:26:03 +0000 schrieb Peter Heitzer:



>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.
Ralf Kiefer (16.07.2019, 12:46)
Peter Heitzer wrote:

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


Zum speziellen Timing im Apple II gibt's hier Hinweise, falls im ersten
Artikel was zum Verständnis fehlen sollte:


Gruß, Ralf
Peter Heitzer (16.07.2019, 12:59)
Ralf Kiefer <R.Kiefer.SPAEM> wrote:
>Peter Heitzer wrote:


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

Ist nur ein mc-Artikel :-)
Trotzdem danke.
Ralf Kiefer (16.07.2019, 13:06)
Peter Heitzer wrote:

> Ist nur ein mc-Artikel :-)


Na gut :-)

Gruß, Ralf
Gerrit Heitsch (16.07.2019, 18:21)
On 7/16/19 8:48 AM, Peter Heitzer wrote:
> Gerrit Heitsch <gerrit> wrote:
> Interessant. Kannst du die Gründe nennen?


Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.

>> 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 (16.07.2019, 18:31)
Gerrit Heitsch <gerrit> wrote:
>On 7/16/19 8:48 AM, Peter Heitzer wrote:


>Den Grund weiss ich leider nicht auswendig, nur das es nicht geht.


>>> 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.
Gerrit Heitsch (16.07.2019, 18:50)
On 7/16/19 6:31 PM, Peter Heitzer wrote:
> Gerrit Heitsch <gerrit> wrote:
> 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
Andreas Kohlbach (16.07.2019, 21:26)
On Tue, 16 Jul 2019 18:21:34 +0200, Gerrit Heitsch wrote:
> [...] 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.
Peter Heitzer (17.07.2019, 12:59)
Gerrit Heitsch <gerrit> wrote:
>On 7/16/19 6:31 PM, Peter Heitzer wrote:


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

Ähnliche Themen