Schneider / Amstrad CPC Forum

Amstrad / Schneider CPC => Hardware => Topic started by: LambdaMikel on 22. September 2019, 17:27:54

Title: CPC Port Frage / Adressdekodierung
Post by: LambdaMikel on 22. September 2019, 17:27:54
Für ein neues Projekt benötigt ich richtig viele IO Ports...
mein neues Projekt wird die IO Ports FBFE, FAEE, FBEE (surprise  :bgdev:) und ebenfalls den Bereich

FAC0 - FADF

komplett belegen. Zudem dekodiere ich aus Kostengründen jetzt auch nur mit 4 / 5 Addressleitungen (-> kleinerer CPLD, enorme Kostenreduktion!)

Ich habe die Addressdekodierung bereits aufgebaut und habe am 464 mal getestet, und habe bisher keine Probleme gefunden (der Dekoder geht nur an wenn er explizit angesprochen wird). Mit DDI-3 und M4 am Erweiterungsport und dem neuen Projekt gab es keine unerwünschten Dekodierungen oder Probleme.

Gibt es große Bedenken gegen diesen IO-Bereich?

Hintergrund für den FAC0 - FADF  ist natürlich, dass ich einen direkten Zugriff auf 32 Hardware-Register (Lesen / Schreiben) eines gewissen Chips haben will... 
Title: Re: CPC Port Frage / Adressdekodierung
Post by: TFM on 25. September 2019, 13:57:39
Quote from: LambdaMikel on 22. September 2019, 17:27:54
IO Ports FBFE(dktronics), FAEE(ssa1), FBEE(LS3)
FAC0 - FADF
Gibt es große Bedenken gegen diesen IO-Bereich?
Gucken wir mal nach &FAC0-DF...

Ja da gibt's Probleme:
#FADC    -   Amstrad Serial Interface Z80-SIO / DART port A Data Register
#FADD    -    Amstrad Serial Interface Z80-SIO / DART port A Control Reg.

Besser wäre es also anstatt &FAC0-DF den Bereich &FAB0-CF zu nutzen.

Was kann man tun: Zwei Ports verwenden, der eine gibt an in welches der 32 Regiser geschreiben (gelesen) werden soll, der zweite Port übernimmt die Daten.


Bitte hier mal gucken (oder im FutureOS Handbuch Deutsch):
https://www.cpcwiki.eu/index.php/I/O_Port_Summary


Zur Dekodierung: Die sollte immer eindeutig sein, da es sonst durch Port-Spiegelungen mit anderen Erweiterungen zu Problemen führen könnte.
Title: Re: CPC Port Frage / Adressdekodierung
Post by: LambdaMikel on 25. September 2019, 16:01:21
Ja, ich weiß, aber 2 Dinge:
- es gibt viele Port-Bereicht die von esotherischen Erweiterungen benutzt werden, die erstens keiner mehr hat, und 2. kann man die auch nicht mehr kaufen.
- wie gesagt, volles Dekodieren ist zu teuer.
- wer tatsächlich einen Konflikt hat, soll eben eine der Karten abstecken  :zunge0020:

Ich gucke mal ob ich &FAB0-CF nutzen kann..

2 Ports will ich nicht, braucht dann alles 2 Instruktionen zum Programmmieren. Es soll so schnell wie möglich gehen...

Gruss
Michael
Title: Re: CPC Port Frage / Adressdekodierung
Post by: TFM on 25. September 2019, 19:14:37
Die Amstrad serielle Schnittstelle ist aber nicht esoterisch, sondern sehr real. Und wohl CPC-Welt-weit auch die am meisten verkaufte Schnittstelle. Die nutzt eh nur wenige Ports.

Du willst also nicht voll dekodieren? Bedeutet das, dass man die Ports der Karte dann an mehreren I/O Adressen ansprechen/lesen kann?

Warum nicht z.B. die vier Adern von &Fxxx zusammenfassen, im &F ist alles auf "1". So könnte man doch alles 1en und 0en zusammenfassen.

Jaja, ich hab keine Ahnung von Hardware, keine Ahnung ob die Idee praktikabel ist. Nur mal so eine Idee eben.  :)
Title: Re: CPC Port Frage / Adressdekodierung
Post by: LambdaMikel on 26. September 2019, 01:34:33
Quote from: TFM on 25. September 2019, 19:14:37
Die Amstrad serielle Schnittstelle ist aber nicht esoterisch, sondern sehr real. Und wohl CPC-Welt-weit auch die am meisten verkaufte Schnittstelle. Die nutzt eh nur wenige Ports.

Du willst also nicht voll dekodieren? Bedeutet das, dass man die Ports der Karte dann an mehreren I/O Adressen ansprechen/lesen kann?

Warum nicht z.B. die vier Adern von &Fxxx zusammenfassen, im &F ist alles auf "1". So könnte man doch alles 1en und 0en zusammenfassen.

Jaja, ich hab keine Ahnung von Hardware, keine Ahnung ob die Idee praktikabel ist. Nur mal so eine Idee eben.  :)

Na ja, zusammenfassen ist ja kein Problem, aber kostet einen Chip extra... und wenn man es per CPLD oder PAL - GAL machen will, kostet es eben viele Leitungen = dicker Chip = teuer Geld!

Der SSA-1 z.B. dekodiert nur 3 Addressbits (A10, A4, A0) - und prueft diese auf 0. Alles andere wird auf 1 angekommen.
Title: Re: CPC Port Frage / Adressdekodierung
Post by: LambdaMikel on 26. September 2019, 04:22:30
QuoteBesser wäre es also anstatt &FAC0-DF den Bereich &FAB0-CF zu nutzen.

OK, habe ich gemacht, für Euch ist mir doch nichts zu teuer... also eine Leitung mehr...

I dekodiere jetzt

NET "iADR<0>"   LOC = "p35" ;
NET "iADR<4>"   LOC = "p36" ;
NET "iADR<5>"   LOC = "p37" ;
NET "iADR<6>"   LOC = "p38" ;
NET "iADR<8>"   LOC = "p39" ;
NET "iADR<10>"  LOC = "p40" ;
Title: Re: CPC Port Frage / Adressdekodierung
Post by: TFM on 26. September 2019, 15:52:58
Quote from: LambdaMikel on 26. September 2019, 01:34:33
Der SSA-1 z.B. dekodiert nur 3 Addressbits (A10, A4, A0) - und prueft diese auf 0. Alles andere wird auf 1 angekommen.

%xxxx x0xx xxx0 xxx1 = &FBEE, aber leider auch &EBEE, &DBEE, &DCEE und etwa 32 Tausend mehr. So, sollte man es genau NICHT machen.

Mit diesem schweren Erbe haben uns die Firmen aus den 80ern zurückgelassen. Heute müssen wir sehen wie wir damit klar kommen.  ::)