Hi,
um eine Kickstart ROM Platine für einen Amiga 1000 nachzubauen benötige
ich einen Adressdecoder. Auf der Originalplatine wird dazu ein PAL16L8
von TI verwendet. Die CPU ist ein Motorola 68000 mit 7.x MHz.
Signallevel ist vermutlich TTL 5V?
Das Chip select signal wird durch folgende Gleichung generiert:
Es werden also 9 Eingangssignale und 1 Ausgangssignal benötigt.
Folgende Ideen für die Lösung sind uns gekommen :
1. PAL
2. GAL
3. CPLD
4. EPROM
5. Diskrete Logik
6. ...
Wir sprechen hier über ein Hobby Projekt, nichts kommerzielles.
Ein PAL bzw. GAL Programmer ist nicht vorhanden und in der Anschaffung
für ein Einzelstück wohl zu teuer. Ein JTAG Programmer, USB Blaster, AVR
Dragon und MPLAB Snap und ein EPROM Programmer sind aber vorhanden.
Wenn es möglich ist einen einfachen Programmer z.B. auf ATmega328/32U4
oder ESP32 Basis zusammzustecken oder zu löten ist das kein Problem.
Ich suche jetzt die Technologie mit der man das heute am einfachsten und
günstigsten für eine Einzelanfertigung (Stückzahl 1) machen kann.
Michael
Michael D. schrieb:> Das Chip select signal wird durch folgende Gleichung generiert:> /ROME => /AS A23 A22 A21 A20 A19 OVR * PRW> + /AS A23 A22 A21 /A20 * /A19 OVR PRW> + /AS * /A23 * /A22 * /A21 * /A20 * /A19 OVR OVL * PRW> + /AS * /A23 * /A22 * /A21 A20 A19 OVR OVL * PRW
Die Signale lassen sich gruppieren.
1. /AS, OVR und PRW treten überall auf, können also zu
einem Signal zusammengefasst werden.
2. A23, A22 und A21 treten immer gemeinsam negiert oder
nichtnegiert auf; es können zwei Hilfssignale gebildet
werden.
3. A20 und A19 treten nur gemeinsam negiert oder gemeinsam
nichtnegiert auf; es können zwei Hilfssiganle gebildet
werden.
4. OVL muss separat geführt werden, wo notwendig.
Es gibt FPGA-Module im DIL-Format..ansonsten ist vermutlich die
billigste Variante heutzutage, ein MachXO2-Evalbrett herzunehmen.
Wenn man da ein dickes und schnelles SPI-Flash draufmacht, kann man auch
EPROMs damit emulieren.
Michael D. schrieb:> Ein PAL bzw. GAL Programmer ist nicht vorhanden und in der Anschaffung> für ein Einzelstück wohl zu teuer.
Das ist die richtige Hardware für einen Adressdekoder, aber wenn keine
Programmiermöglichkeit besteht (gilt ja auch für CPLD), bleibt ein
EProm. Das sollte aber ein schnelles sein, möglichst weniger als 100 ns.
Für Amiga-Technologie sollte das reichen.
Georg
georg schrieb:> aber wenn keine> Programmiermöglichkeit besteht (gilt ja auch für CPLD)JTAG Programmer und USB Blaster sind ja vorhanden, ich denke einige
Atmel CPLDs und FPGAs lassen sich damit programmieren.
> bleibt ein EProm.
Das ist sicher die einfachste Möglichkeit: nur ein Baustein und keine
zusätzliche Beschaltung. Die Programmerstellung und die Programmierung
ist relativ einfach.
> Das sollte aber ein schnelles sein, möglichst> weniger als 100 ns. Für Amiga-Technologie sollte das reichen.
Gut zu wissen. Mal sehen was die Krabbelkiste hergibt.
Michael
pegel schrieb:> Wenn der Inhalt des PAL oder CPLD bekannt ist, kann man den auch> programmiert bei Segor bestellen.
Wow, dass ist echt ein Service! Vielen Dank für den Tipp. Ich habe schon
lange nicht mehr bei Segor bestellt.
Der Service ist hier zu finden:
https://www.segor.de/#/dienstleistungen/16-Programmierservice
Leider gibt es für den Versand eine Einschränkung:
"Im Versand sind nur Programmierungen von Eproms, EEproms oder
Flashbausteinen möglich."
Michael
H.Joachim S. schrieb:> Musst halt die Jedec erstellen
Wer GALs brennen kann, kann i.d.R. auch die Gleichungen übersetzen.
Dazu muss man übrigens den Typ kennen. Für den Dekoder kommen ja einige
in Frage.
Georg
Peter D. schrieb:> Man könnte 4 Vergleicher 74HCT688 nehmen und mit> einem AND 74HCT21 verknüpfen.
Hmm. Da sehe ich nicht, wie das gehen soll.
Vorstellen könnte ich mir vier 74HCT688 für alles
außer /AS, ein vierfach-OR und ein zweifach-(N)AND.
Für erträglichen Aufwand wird man wohl immer drei
Kombinatorik-Stufen brauchen.
Michael D. schrieb:> Technologie mit der man das heute am einfachsten
Uralte Technologie ist am besten: Fragen, wer dir helfen kann. Dann gibt
es zwei Möglichkeiten. Erstens, du wohnst in der Nachbarschaft. Dann
kann man sich treffen. Zweitens du investierst noch einen Euro für Porto
und bekommst das GAL per Post. Ein GAL 16V8 reicht aus. Man muss sich
nur über die Pinbelegung einigen. Der Arbeitsaufwand ist weniger als 30
Minuten. Die meiste Zeit braucht der Gang zum Briefkasten.
Egon D. schrieb:> Hmm. Da sehe ich nicht, wie das gehen soll.
Nun, es sind max 9 Signale, wo eins immer low aktiv ist. Der 74HCT688
ist ein 8Bit-Vergleicher mit low aktivem Enable, paßt also.
Macht insgesamt 5 ICs.
Peter D. schrieb:> Nun, es sind max 9 Signale, wo eins immer low aktiv ist. Der 74HCT688> ist ein 8Bit-Vergleicher mit low aktivem Enable, paßt also.> Macht insgesamt 5 ICs.
Es ginge IMHO auch mit 2x ATtiny1614, wobei der µC-Teil nur zur
Initialisierung gebraucht wird und danach in den in den Schlaf geschickt
werden kann. Die eigentliche Arbeit machen dann die insgesamt vier CCLs
der beiden Controller.
Drei CCLs mit jeweils drei Eingängen macht 9 Eingänge. Die Ausgänge der
drei sind dann die drei Eingänge des vierten CCL. Dessen Ausgang ist
dann /ROME.
Problematisch wäre allerdings das Verhalten beim PowerUp. Die Tinys
müßten ja erstmal starten und die Initialisierung abarbeiten, bevor der
68k loslegen darf. Keine Ahnung, ob das realisierbar wäre. Vor 20 Jahren
hätte ich das eher einschätzen können, da besaß ich noch detaillierte
Kenntnisse der Amiga-Hardware. Inzwischen habe ich das meiste davon
allerdings vergessen.
Takt sollte hingegen kein Problem sein, wenn ich mich richtig erinnere,
ist der Bustakt des 68k nur 1/4 des Systemtaktes, hier also unter 2MHz.
Georg G. schrieb:> Die meiste Zeit braucht der Gang zum Briefkasten.
Bei mir käme noch dazu, das alte Equipment aus dem Keller zu holen um
danach festzustellen, dass die Treiber unter Windows 10 nicht
funktionieren und der neue Laptop womöglich mit Windows 98 nicht booten
kann. In einer VM geht er dann, aber als nächstes scheitert es an
fehlender RS232 Schnittstellen. Einen Adapter kann man sich bei einem
Freund besorgen, doch dessen Treiber geht nur mit XP. Wenn man dann auch
diese Hürde geschafft hat merkt man, dass das Gerät zumindest innerhalb
der VM nicht mit solchen USB-RS232 Adaptern funktioniert.
Ich rechne immer mit dem Schlimmsten :-)
Also man konnte damals auch GALs mit einfachster selbstgebauter Hardware
selber brennen.
Ich kann mich noch dunkel erinnern das mal gemacht zu haben und ich
glaube der echte Mawin auch.
Aber zumindest ich konnte nicht jedes GAL brennen die haben sich je nach
Buchstaben oder Hersteller etwas unterschieden.
Man brauchst aber noch irgendeine Software welche die Gleichungen in das
Binaerfile uebersetzt. Das war damals irgendwas unter DOS.
Moeglich ist das also sicherlich.
Olaf
Michael D. schrieb:> Ein PAL bzw. GAL Programmer ist nicht vorhanden und in der Anschaffung> für ein Einzelstück wohl zu teuer.
Na ja.
GALs von Lattice werden nicht mehr hergestellt, aber ATF von
Microchip/Atmel.
http://www.bhabbott.net.nz/atfblast.html (ATFBlast inkl. Sourcecode)
Sollte nicht so schwierig sein.
Eines Tages wird es auch keine ATF mehr geben, aber ob es dann noch
deine gewählten HCMOS Logikchips gibt ?
Wenn man heute (z.B. von Lattice) ein kleines CPLD nimmt, ist das
erstens für den Job sowieso zu gross, und wird b) wohl noch früher
abgekündigt als ATF chips.
Ich habe noch einen Xeltek SP280U Universalprogrammer rumliegen. Der
kann alles mögliche an Bausteinen programmieren - die Liste der
Bausteine ist über 200 Seiten lang.
Einen ATF16V8CZ-15PU bekommst Du noch zu kaufen, Farnell hat 532 Stück
für je 1.52€ netto auf Lager, bei TME.eu sind es 4 Cent mehr. Der ist
pinkompatibel zum Originalbaustein.
http://ww1.microchip.com/downloads/en/devicedoc/doc0453.pdf
Gegen Zusendung der Bausteine und der JEDEC Map (*.jed) programmiere ich
Euch die Teile.
fchk
Stefan ⛄ F. schrieb:> Georg G. schrieb:>> Die meiste Zeit braucht der Gang zum Briefkasten.>> Bei mir käme noch dazu, das alte Equipment aus dem Keller zu holen (...)
Ich denke, Georg ging schon davon aus dass am anderen Ende des
Briefkastens jemand sitzt, der den GAL-Brenner betriebsbereit auf der
Werkbank stehen hat. So wie mein Data I/O Sprint Expert an seinem Compaq
Portable 486c. Wer erst Geräte zusammensuchen muss und dann die
Anleitung für den GAL-Assembler nicht mehr findet, der ist wohl nicht
ganz die richtige Zielgruppe ;-)
MaWin schrieb:> Eines Tages wird es auch keine ATF mehr geben, aber ob es dann noch> deine gewählten HCMOS Logikchips gibt ?
Dazu kommt, dass in dem Amiga 1000 mindestens fünf Spezial-Chips
stecken, die spätestens seit 1995 nicht mehr hergestellt werden.
Irgendwann wird die Welt untergehen.
GAL16V8 sollte jeder, der sich mit historischer Hardware beschäftigt, in
ausreichender Menge herumliegen haben. Einem Röhrenradio-Bastler werden
die EF80 auch nicht ausgehen.
Stefan ⛄ F. schrieb:> das alte Equipment
Problem erkannt :-)
Deshalb steht hier noch ein betriebsbereiter Uralt-PC mit Bootmenu für
DOS 6.11 und Windows 98 und einem Data-IO dran. Allerdings beschäftige
ich mich viel mit Dinosauriern. Da lohnt sich der Platz dafür.
Georg G. schrieb:> Stefan ⛄ F. schrieb:>> das alte Equipment>> Problem erkannt :-)> Deshalb steht hier noch ein betriebsbereiter Uralt-PC mit Bootmenu für> DOS 6.11 und Windows 98 und einem Data-IO dran. Allerdings beschäftige> ich mich viel mit Dinosauriern. Da lohnt sich der Platz dafür.
Das ist hier schon längst entsorgt. Mein Xeltek läuft aber auch noch
unter einem virtualisierten XP. Ist noch halbwegs modern und hat schon
USB. Parallelport-Zeugs hab ich nie gekauft.
fchk
soul e. schrieb:> Georg ging schon davon aus dass am anderen Ende des> Briefkastens jemand sitzt
Ja klar, das denke ich auch.
Früher hatte ich mal für solche Zwecke einen uralten 386er mit DOS und
einem winzig kleinen 10" Bildschirm. Aber der ist leider kaputt
gegangen.
Peter D. schrieb:> Egon D. schrieb:>> Hmm. Da sehe ich nicht, wie das gehen soll.>> Nun, es sind max 9 Signale, wo eins immer low aktiv ist.> Der 74HCT688 ist ein 8Bit-Vergleicher mit low aktivem> Enable,
Ah. Ich Depp.
Das Enable hatte ich im DaBla übersehen. Danke.
> paßt also. Macht insgesamt 5 ICs.
Klar.
Olaf schrieb:> War es nicht so das es CPLDs nur mit 3.3V gab?
Es gab welche die 5V-tolerant waren, aber die verschwinden noch
schneller als die alten PALs.
@Stephanus:
daher habe ich noch einen 486er mit ISA-Bus, DOS/WfW3.11 und einem
Profi-Programmer betriebsbereit rumstehen - aber wohl seit einem Jahr
nicht mehr benutzt.
Übrigens, PALASM läuft bei mir einwandfrei in Dosbox. Ich kann also bei
Bedarf noch genauso arbeiten wie anno dunnemals.
Georg
MaWin schrieb:> http://www.bhabbott.net.nz/atfblast.html (ATFBlast inkl. Sourcecode)
Das hat mich in die richtige Richtung geführt. Mein iMac hat nur keinen
Parallelport, aber es gibt mittlerweile ein "upgrade" mit USB Anschluss:
https://github.com/ole00/afterburner/
Es hat sich herausgestellt, dass die ursprüngliche Gleichung die falsche
war, das war die Original-Gleichung des Amiga 500 PALs.
Ich bin darüber gestolpert, dass MAME (der Emulator) auch die PALs
emuliert und der MAME SourceCode
(https://github.com/dankan1890/mewui/blob/master/src/mame/drivers/amiga.cpp)
enthält einige Hinweise über die Funktion des WOM.
Des weiteren hat sich jemand die Mühe gemacht die A1000 Schaltpläne und
Logik in Verilog zu beschreiben: https://github.com/ezrec/Amigo.
Damit könnte man die ganze Hardware emulieren bevor man sie aufbaut. Ist
für meinen Zweck nur aufwändiger als die Hardware tatsächlich zu bauen.
Wir brauchen eine Methode um beim Amiga 1000 das BOOT-ROM und das WOM
("RAM ROM") abzuschalten. Um den A1000 nicht intern modifizieren zu
müssen soll das ganze am Expansion Port laufen, genau so wie das hier:
https://www.bigbookofamigahardware.com/bboah/product.aspx?id=1557
Theoretisch müsste sich BOOT-ROM und WOM über OVR=1 abschalten lassen,
natürlich nur wenn das Chipselect des neuen externen KICK ROMs =0 ist.
Das benötigte Signal OVL liegt nicht am Expansion Port an, d.h. ich muss
es selbst generieren. Das dient dazu, dass ROM kurzzeitig ab Adresse 0
einzublenden, damit der 68000er daraus den Reset Vector aus Adresse 4
lesen kann.
OVL wird von CIAA PA0 (pra.0) gesteuert. Es wird beim Reset automatisch
1. Durch setzen auf 0 (d.h. eigentlich wohl bei DDRA.0=1 ?) wird das ROM
dort wieder ausgeblendet und das ChipRAM wird sichtbar.
Aus /RESET und dem Schreibzugriff auf CIAA PA0.0 bzw. DDRA.0 müsste ich
OVL selbst generieren können. Irgendwie muss es das Golem Kickstart ROM
Modul ja auch machen. Ob ich DDRA oder PA0 abfragen muss weiß ich nicht
genau, DDRA ist wahrscheinlich sicherer, das muss auf jeden Fall
geschrieben werden, PA0.0 enthält ja nach dem RESET bereits den Wert 0.
Hier ein neuer Versuch der Gleichungen:
CS_EXT_KICK =
/AS \* A23 \* A22 \* A21 \* A20 \* A19 \* PRW // $F80000 - FFFFFF
+ /AS \* /A23 \* /A22 \* /A21 \* /A20 \* /A19 \* OVL_LOCAL \* PRW //
$000000 - 07FFFF
OVR = CS_EXT_KICK
; check CIAA PRA.0 = 0
;;; OVL_DISABLE = /AS \* A23 \* /A22 \* A21 \* /A13 \* A12 \* /A11 \*
/A10 \* /A9 \* /A8 \* /D8 \* /PRW
; check CIAA DDRA.0 = 1
OVL_DISABLE = /AS \* A23 \* /A22 \* A21 \* /A13 \* A12 \* /A11 \* /A10
\* A9 \* /A8 \* D8 \* /PRW
OVL_LOCAL = OVL_LOCAL \* /OVL_DISABLE + /RES
Wenn ich einigermaßen sicher wüsste, dass die Gleichungen jetzt passen,
würde ich gerne jemanden die Bausteine brennen lassen, aber dazu brauche
ich noch mindestens eine Iteration und ggf. eine Simulation.
Wahrscheinlich baue ich mir den Afterburner nach.
Michael
Hi,
jetzt habe ich mal Gleichungen, die ich auch simuliert habe für ein
ATF16V8, siehe Anhang. Sind doch etwas komplexer geworden.
Es war einiges an Einarbeitung nötig, vor allem um den ATF zu verstehen
und mit den Fehlern und Abstürzen von WinCUPL klarzukommen.
Platine für Afterburner ist bestellt.
Vielen Dank nochmal an alle!
Michael