You are not logged in.

Dear visitor, welcome to Forum64. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Posts: 1,788

Date of registration: Aug 28th 2005

Location: Leverkusen

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

81

Monday, August 11th 2008, 6:45pm

Nein, das ist noch WIP=work in progress ;-)

Das Chip-Selekt für das Erweiterungsrom erzeugt das FPLA I an UE6.
Das fragliche Signal heißt /CS9 und ist beim FPLA der 2. von 8 Datenausgängen, auf welchem Datenbit der beim EPROM liegt, muß ich erst noch nachsehen.

An den Eingängen liegen A8-A15 an, R/W, /RAMSELA, /RAMSEL9 und andere lustige Dinge. Die RAMSEL-Signale sind die Leitungen, mit denen man über Jumper / Schalter an J4 dafür sorgen kann, statt dem Erweiterungs-ROM RAM zu bekommen.

Das PLA oder EPROM kann man ja einfach als Tabelle betrachten. Der Einfachkeit halber gehe ich jetzt nicht von 65536 x 8 wie beim 27512, sondern nur von 4 x 1 aus.
An den Adreßleitungen liegen die Eingänge, an den Datenleitungen die Ausgänge:

A1 A0 D0
0 0 1
0 1 1
1 0 1
1 1 0


...und schon kann man "NAND" drüber schreiben.

Das FPLA ist also nichts anderes als eine Tabelle, in der nachgesehen wird, wenn A8-A15 und all diese Dinge diesen Zustand haben, was soll dann ausgegeben werden.

Eine Tabelle mit 65536 Einträgen ist natürlich nicht so leicht zu überschauen. Deshalb schreibe ich gerade an einem Werkzeug, das mir etwas dabei hilft. Das Ding soll eine Binärdatei mit dem Inhalt des PLAs/EPROMs/PROMs/GALs fressen und eine Textdatei mit der Belegung desselben: D0 = /CS9 beispielsweise.
Dann will ich erst mal wissen, welche Ausgänge von welchen Eingängen abhängig sind. Dazu soll das Programm jeweils eine Adreßleitung kippen und nachsehen, auf welche anderen Adressen das Einfluß hat - wo sich am Tabelleninhalt etwas ändert.
Damit hoffe ich, das PLA in mehrere kleinere parallele Einheiten zerlegen zu können.
Jedenfalls wird damit klar, was alles in das /CS9 eingeht. Das wird u.a. das R/W sein, das ja auch an einer Adreßleitung des PLAs hängt.

Das R/W ist bei 1 "read", bei "0" write. Das ist in der Eingangsseite. Auf der Ausgangsseite liegt an einem Datenbit das /CS9, das 0 ist, wenn das ROM selektiert werden soll. Irgendwo werden da "0" für write stehen, die dann auf der Ausgangsseite "1" für "ROM deselkieren" haben - diese Einsen werde ich durch Nullen ersetzen, damit das ROM über das /CS9 auch bei READ selektiert wird.
Natürlich nicht von Hand, das macht ein Programm. Die geänderte Tabelle, die neue Tabelle soll dann in eine Binärdatei geschrieben werden, mit der ich ein 27512 brenne, oder noch besser meinen EPROM-Simulator, den ich gerade in Betrieb nehme - und dann wollen wir mal sehen. Jedenfalls bin ich schon gespannt, ob der CBM auch mit EPROM-Simulator statt 27512 statt FPLA läuft - das wäre schon wirklich niedlich :-)

Als schönes "Abfallprodukt" erfahre ich gleich noch etwas mehr über die Funktionsweise des CBM. Bislang habe ich jedenfalls noch nie etwas darüber zu lesen bekommen, was die FPLAs eigentlich genau machen, d.h. wie sie die Signale verknüpfen - das hätte man dann damit quasi mit erschlagen.


24 EUR Porto ist wirklich heftig... Conrad gibts auch in Österreich?

82

Monday, August 11th 2008, 7:51pm

Conrad war früher für Österreicher auch etwas teurer als D. Aber inzwischen gibt es dieselben Versandkosten in A und D. Außerdem versendet der Conrad bei Stammkunden sogar auf Rechnung. :)

HofMar

Intermediate

  • "HofMar" is male

Posts: 242

Date of registration: Jan 21st 2006

Location: 12xxx Berlin

  • Send private message

member since 72 month member since 72 month member since 72 month member since 72 month

83

Friday, August 15th 2008, 4:52pm

Hallo,
Dann will ich erst mal wissen, welche Ausgänge von welchen Eingängen abhängig sind. Dazu soll das Programm jeweils eine Adreßleitung kippen und nachsehen, auf welche anderen Adressen das Einfluß hat - wo sich am Tabelleninhalt etwas ändert.

http://www.zimmers.net/anonftp/pub/cbm/f…8296/324744-1.c kennst Du?

Dort tauscht jedoch keine Abhängigkeit über R/W_ auf. Allerdings wird dort auch das PLA 324744-01 nachgebaut. Ist das auch bei Dir verbaut? Oder gibt's evtl. eine weitere Version?

Gruß Martin

Posts: 1,788

Date of registration: Aug 28th 2005

Location: Leverkusen

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

84

Friday, August 15th 2008, 6:18pm

http://www.zimmers.net/anonftp/pub/cbm/f…8296/324744-1.c kennst Du?


Nein, das kannte ich nicht - aber das ist ja einfach perfekt für meine Zwecke! Vielen, vielen Dank!

Ich werde bei Gelegenheit - d.h. in ca zwei Wochen, ich ziehe nämlich gerade um und mein EPROMmer wird _heute_ in einem Karton verschwinden :-( - nachsehen, welche EPROM-Version ich eingebaut habe. Ich bekomme jedenfalls ein /CS9 definitiv nur für Lesezugriffe, das habe ich mit dem Oszi mehrfach überprüft, hier heißt es aber plötzlich: /* CS9 selects the $9*** ROM socket - no write protection, active low */ - man beachte das "no write protection"...

Ich melde mich dann wieder, wenn es etwas Neues gibt...

85

Friday, August 15th 2008, 6:37pm

Die Gleichungen von (funet) zimmers.net sind iirc nicht alle korrekt. Besonders beim 8296 gab es damals Probleme beim Bau dieses Uni-PLA von Jens Schönfeld. 8296 funktioniert damit nicht.

Btw ... die Daten aus dem PLA http://vic20.de/html/eprom_pla_8296_und_c64.html ;)

Eine Einschaltmeldung wird man mit einem 512er Eprom hinbekommen. Sicher auch mehr. Es ist aber keine sichere Sache, da ein Eprom bei jedem Signal-Wechsel immer alle! Ausgänge neu setzt. Ein PLA schaltet nach Dekodierung nur die passende Leitung. Daher kann es bei timing-kritischen Anwendungen zu Abstürzen kommen.

Ich habe nun auch mal ein paar IDT-Dual-Port-RAMs gekauft. Sind allerdings 1K-Typen (iirc 7130).

Michael
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

86

Friday, August 15th 2008, 6:53pm

Es ist aber keine sichere Sache, da ein Eprom bei jedem Signal-Wechsel immer alle! Ausgänge neu setzt.


Ich denke mal es ist eine Glücksache oder es geht mit schnellen Eproms besser. Mein 8296 läuft jedenfalls tadellos mit dem 27512 und es funktioniert alles wie vorher bzw. wie es sein sollte.

Posts: 1,788

Date of registration: Aug 28th 2005

Location: Leverkusen

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

87

Sunday, August 17th 2008, 3:20pm

Die Gleichungen von (funet) zimmers.net sind iirc nicht alle korrekt. Besonders beim 8296 gab es damals Probleme beim Bau dieses Uni-PLA von Jens Schönfeld. 8296 funktioniert damit nicht.


Von http://vic20.de/html/eprom_pla_8296_und_c64.html hatte ich mir damals (1 jahr? 2 Jahre?) die ROM-Images geholt, mein 8296-D läuft damit bislang, ohne daß mir Probleme aufgefallen wären. Andre Fachat http://www.6502.org/users/andre/petindex/8x96.html schreibt, daß es wohl einige Zeit später Korrekturen daran gegeben hätte.

Ich habe die 324744-1.c jezt gebaut und das erzeugte Abbild mit dem verglichen, das ich damals in meinem 8296 gerbrannt habe - die sind identisch _obwohl_ da kein R/W eingeht! Ich habe im Oszi das CS aber definitv nur für Lesezugriffe bekommen.

Vielleicht liegt der Hase ja auch beim Register $FFF0 im Pfeffer: Control Register Bit 0 - When equal to 1, addresses $8000 through $BFFF on the /Expansion Memory Board only/ are write protected. The screen is not write protected if screen peek through is enabled.
When equal to 0, the addresses are not write protected.

Leider hatte ich noch keine Zeit, mir näher anzusehen, wie das eigentlich wirklich funktioniert...

Ich habe nun auch mal ein paar IDT-Dual-Port-RAMs gekauft. Sind allerdings 1K-Typen (iirc 7130).

Wo hast Du die denn jetzt bekommen und wie teuer waren die?

88

Sunday, August 17th 2008, 6:08pm

Vielleicht liegt der Hase ja auch beim Register $FFF0 im Pfeffer: Control Register Bit 0 - When equal to 1, addresses $8000 through $BFFF on the /Expansion Memory Board only/ are write protected. The screen is not write protected if screen peek through is enabled.
When equal to 0, the addresses are not write protected.


Aha, also braucht es womöglich gar keine Änderung im PLA Ersatz? Bevor man ins Char RAM schreibt einfach dieses Bit zurück setzen?

Posts: 1,788

Date of registration: Aug 28th 2005

Location: Leverkusen

  • Send private message

member since 90 month member since 90 month member since 90 month member since 90 month member since 90 month

89

Sunday, August 17th 2008, 6:18pm

Aha, also braucht es womöglich gar keine Änderung im PLA Ersatz? Bevor man ins Char RAM schreibt einfach dieses Bit zurück setzen?


Ja, genau das ist meine Vermutung und Hoffnung - aber testen kann ich das definitiv erst nach dem Umzug, da die fraglichen Sachen bereits eingepackt sind. Irgendwie wäre das aber ZU einfach ;-)

90

Monday, August 18th 2008, 12:36am

Quoted

Wo hast Du die denn jetzt bekommen und wie teuer waren die?


Ich habe auch zwei Auktionen bei Ebay geboten. Ich habe nun (bald) 9 x IDT 7130 für 22,30 Euro (+Porto). Dann kann es losgehen.

Michael
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

91

Friday, August 22nd 2008, 4:35pm

... und es geht weiter. Ich habe schon mal die Bauteile auf die Platine gebracht. Musste tatsächlich noch ein Stück anbauen. Ist eine ganze Menge Material. Am Wochenende wird es dann bedrahtet und getestet.

Ob man bei der Leiterplatte mal über einen Aufbau mit TTL und SRAM nachdenken sollte ? - Ist sicher mehr Aufwand und Material, aber imo bei ziemlich gleichen Kosten. Zudem braucht man dann dieses exotische Dual-Port-IC nicht. Die Steine erfordern ziemlichen Platz. Nur für den Fall, wenn man tatsächlich mal ein paar Leiterplatten anfertigen lassen will.

Diddl: Wie sieht es aus ? - Auch etwas im Bau oder schon fertig ?

Michael
cbmhardware has attached the following image:
  • cbm8296_charram2.jpg
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

92

Friday, August 22nd 2008, 5:24pm

Diddl: Wie sieht es aus ? - Auch etwas im Bau oder schon fertig ?


Die dualported sind da, aber ich bin zur Zeit noch mit dem XS-1541 beschäftigt. Und das wird auch noch ein paar Wochen so sein, fürchte ich.

93

Sunday, August 24th 2008, 7:41pm

Ich werde mir mal einen Schaltplan aus dieser Bauzeichnung ;) machen und eine Platine routen. Ich habe einen kleinen Fehler gemacht und müsste nun die ganze Kabelknolle nochmal neu auflöten. Habe mich um einen Pin verzählt. Natürlich in der untersten Schicht der Bedrahtung : Kapitulation. :)

Wird noch ein paar Wochen dauern. Je nachdem wie schnell PCB-Pool ist. ;)

Michael
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

94

Sunday, August 24th 2008, 8:03pm

Lese ich richtig? Es gibt eine Platine? Das ist wie Musik in meinen Ohren!

Mir graust es schon vom Kabek Löten bevor ich angefangen habe. Eine Platine wär da schon was anderes! :)

Crass Spektakel

Unregistered

95

Sunday, August 24th 2008, 8:41pm

XXL-Zeichensatz-ROM

Ich möchte nochmal die ursprüngliche Idee vom besonders grossem Zeichensatz-ROM aufgreifen da ich bei meinen Experimenten an einem PET2001 einige gute Erfahrungen gesammelt habe.

1. Wenn man per Default den englischen Zeichensatz verwendet und nur für Spezialfälle auf den deutschen umschaltet (oder die Software patcht) dann funzt das supergut.

2. Wir haben damals einen 2x4-Charset verwendet mit dem wir auf dem PET die Auflösung 80x100/160x50 verwenden konnten, die Idee auf einem 8032 wäre die gleiche nur daß dort die Auflösung 160x100/320x50 wäre.

Idee: Mit 256 frei definierbaren Zeichen lassen sich alle Kombinationen von 2x4-Matrixen darstellen, z.B.:

****----
****----
----****
----****
****----
****----
----****
----****

Da man ja sowieso per Software die Zeichensätze umschaltet kann man damit direkt auf einen Semi-Grafikzeichensatz umschalten. Fast ohne Aufwand in Hardware realisierbar. Was will man mehr? Ja, ein neuntes Bit wäre toll, dann könnte man eine 3x3-Matrix fahren, bei einigen Rechnern gibts das sogar, frühe Textkarten hatten neben acht Characterbits noch Blink- und Invers- und Underline-Bits die letztlich nur den Zeichensatzvorrat immer weiter aufblähten - 12Bits auf einer CP/M-Maschine (ja, da gabs kranke Designs) war imho das höchste, damit ginge dann auch 4x3 oder 3x4 bei 40x25 zu 160x75/120x100 oder 80x32 zu 320x96/240x128

Klappt prinzipiell übrigens auf allen Rechnern mit ROM-gespeicherten-Zeichensätzen, z.B. alten IBM-PCs, ZX81, einige CP/M-Rechner usw...

96

Monday, August 25th 2008, 9:12am

Diddl: Ja, ich habe mir mal diese Nachtrag-Info vom 8032 zum 8296 angeschaut. Bei der zu erwartenden Größe der Platine fände ich es sinnvoll, wenn man den Steckplatz J4 verwendet. Dann braucht man noch zwei lose Drähte auf J9 : Reset, CS9. Evtl. noch RAMSEL9.
Ein zweiter Stecksockel müsste dann in den Sockel des bestehenden Char-ROMs. Der ist dann aber nur ca. 5cm entfernt.

Vorteile:

1. Einfacher Einbau.
2. Passt im CBM8032 und 8296.
3. Kürzerer und weniger Drahtverhau.

Nachteile:

1. Kosten. Ich schätze so 50 Euro (oder mehr) pro bestückter Platine.:/
2. Korrosion dieser Kontakte (J4 und 9) im Rechner. Müssten immer erst gereinigt werden.
3. Wird evtl. nicht in den CBM2000/3000 passen.
4. Ich habe Arbeit damit. ;0)



Crass Spektakel: Ein festes ROM mit Umschalter ist sicher einfacher. Leider auch sehr unflexibel.

Anyway. Ich werde es mal in Ruhe angehen und erstmal die Möglichkeiten überprüfen. Ich habe mal ein paar Bauteile in den Eagle-Router geworfen. So in etwa könnte das dann aussehen (Bild).

Michael
cbmhardware has attached the following image:
  • pcb1.jpg
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

97

Monday, August 25th 2008, 9:43am

50€ fände ich schon ok, dafür ist mein CBM endlich Graphic fähig. Sieht doch schon nach was aus! :D


Gehen nur normale RAM oder auch die preferrierten Dual Ported?

98

Monday, August 25th 2008, 7:00pm

Ich habe erstmal die Platine als Ausdruck in Position gebracht. Dummerweise liegen die Datenleitungen ebenfalls auf dem Stecker daneben (J4). Das hatte ich ganz vergessen. Da wird ein zweiter Stecker notwendig sein. Ist speziell für die beiden Dual-Ported. Latches und SRAM würden eine C=like 20x20cm Leiterplatte und viel Strom erfordern. :)

Aber noch etwas anderes zum Nichtschreiben im Bereich $9000. Ich habe mal diverse Unterlagen zum 8296 angeschaut. Da bin ich über eine Sache gestolpert : wenn man den Bereich $9000-$9fff als RAM einstellt (JU2), hat man 4 Bildschirmseiten. Da würde ich doch fast schon $A000 für die Register nehmen wollen. Man kann die Einstellungen auch über Jumper und 3 Portbits des Userport erledigen. Das finde ich aber irgendwie ...krank. :)
Wenn man diesem "Nachtrag zum 8096 Handbuch (zum 8296) " glauben darf, wird über diesen Memory-Port in jede Adresse geschrieben. Wenn man SEL_EXP auf Low legt, kann man theoretisch auch jede Adresse lesen. Da muss man natürlich auf Konflikte achten.
Wenn man nun SEL_EXP (mit einem OC-Gatter laut Anleitung) beim Zugriff auf $A000 (oder $9000) auf low legt, kann man seine Register (oder SRAM) auch lesen. Das würde dann aber etwas mehr Logik erfordern: zwei oder drei TTLs. Ist bei der Erweiterung aber sicher nur Luxus. Lesen sollte eigentlich auch über SEL9 oder SELA gehen.(?)
Ich werde das auf jeden Fall alles vorab testen. Mal sehen ob ich 1KB in ein altes SRAM geschrieben und gelesen bekomme. Ist bis zur Leiterplatte noch etwas Forschung notwendig.

Anbei das Bild mit dem Papier-Layout.:0)

Michael
cbmhardware has attached the following image:
  • pcb2_origami.jpg
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

This post has been edited 1 times, last edit by "cbmhardware" (Aug 25th 2008, 7:06pm)


99

Wednesday, August 27th 2008, 2:06pm

Ha, und er liest und schreibt im Bereich $9000. Ich habe mal ein altes 8kb-SRAM auf 4kB verdrahtet. CS ist CS9 (J4 Pin 17), R/W ist BR/W und natürlich Daten- (J4) und Adressleitungen (J9). Auf dem Board muss dazu JU7 geschlossen werden und der entsprechende Sockel ($9000) natürlich leer bleiben. Damit ist die R/W-Signal-Aufbereitung aus dem Schaltplan von for(;;) überflüssig. Wir haben einen halben 74LS139 übrig, mit dem wir irgendetwas machen können (Adresse weiter auflösen ?)

Das müsste so in allen CBM8000-Rechnern funktionieren.

Michael
cbmhardware has attached the following images:
  • cbm8296meetsSRAM.jpg
  • sram_screen.jpg
If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -

100

Wednesday, August 27th 2008, 2:17pm

Gratuliere!

Mir persönlich wäre es am liebsten, wenn ich den $9 Rom behalten könnte. Ich meine zum Lesen den ROM und beim Schreiben das Char RAM.

Weil ich weiß ja was ich in das Char RAM geschrieben habe, also wozu auslesen. Andererseit habe ich lieb gewonnene Tools die gerne im $9 hätte. Allein Exbasic braucht $9 und $a. Am liebsten hätte ich noch viel mehr ROM, zb. ein 29512 EEPROM das ich blockweise einblenden kann.

Gut ich meine es muss nicht sein. Man kann zur Not Êxbasic oder Exmon oder Help! auch ins RAM laden, aber es ist irgendwie schon schön wenn es von Haus aus Verfügbar ist.

Können wir statt den drei IC nicht ein 16V8 PAL nehmen, die hab ich zu Hauf hier rumliegen und die sind ja auch im 6502 RAM/ROM Board (PET-RAM) von X1541 drin.