Hardware > Hardware (High-End)
Fastram mit PAK68/2 ...
joejoe:
Okay,
Sorry für den Wink in die falsche Richtung (den falschen Pin).
Ziel war, es mit minimalen Hardware-Änderungen und einem 20V8 umzusetzen.
So einfach geht es also nicht.
Auszug am dem 20V8 Datenblatt von Lattice:
--- Zitat ---In the Complex mode, macrocells are configured as output only or
I/O functions.
Architecture configurations available in this mode are similar to the
common 20L8 and 20P8 devices with programmable polarity in
each macrocell.
Up to six I/Os are possible in this mode. Dedicated inputs or outputs
can be implemented as subsets of the I/O function. The two outer
most macrocells (pins 15 & 22) do not have input capability. Designs requiring eight I/Os can be implemented in the Registered mode.
All macrocells have seven product terms per output. One product
term is used for programmable output enable control. Pins 1 and
13 are always available as data inputs into the AND array.
--- Ende Zitat ---
Die Pins 13, 15, 22 und 23 scheiden also aus.
Bleibt Pin 16, welcher auf der PAK/2 mit A16 verbunden ist.
A16 und A17 werden - nach meinem Verständnis- in den TOS-Gleichungen nur für den Bereich 0xFCxxxx benötigt. Wird kein TOS kleiner 2.0x in der PAK/2 verwendet (geht das überhaupt?) ist dieser Bereich allenfalls für den Systemstart nötig, sofern in den "unteren" ROMs noch TOS 1.0x steckt.
Daher mein Vorschlag in die Sockel des ST nur EPROMs mit dem Anfang von TOS 3.0x zu brennen.
(Falsche Größe und Adresslage ist egal, da es nur um den System-Start geht und der InitialStackCounter bei dieser Herangehensweise eben automatisch auf den richtigen 0xExxxx-Bereich zeigt, Die CPU springt also direkt in den ROM-Bereich von TOS 3.06.
Ohne TOS auf der PAK/2 oder eine TOS-Card geht dann natürlich nix.)
A16 und A17 wären dann frei und könnten als interner Ausgang für DASCK_EN herhalten.
Alternativ kannst Du Dir aber auch einen Huckepack-Sockel auf U12 löten, mit einem weiteren Sockel durch Entfernen der unerwünschten Pins die Verbindungen zu den bereits funktionell belegten Ausgängen des dann unteren GALs trennen, und bist dann in der Auswahl der Pins für den Complex-Mode im dann beinahe leeren "oberen" GAL frei. Kannst dsack_en dann also z.B. auf Pin 16 legen,
A24 muss aber trotzdem ans untere GAL gelegt werden und das GAL auch den korrketen Inhalt haben, damit die DSACKs der beiden GALs sich nicht ins Gehege kommen.
EDIT:
Die Huckepack-Variante hat allerdings auch noch den Charme, dass der Umweg über dsack_en dann gar nicht mehr notwendig ist!
Durch das zweite GAL ergibt sich dann ein dsackx.OE nur für den FASTRAM-Bereich ohne! zusätzliche ODER - Verknüpfung. Die DSACKs für den ROM-.Bereich (mit A24) macht das "untere" GAL. Für den FASTRAM-Bereich ist nur das das "obere" GAL zuständig (ebenfalls mit A24)
Die ODER-Verknüpfung der beiden Bereiche wird durch den impiziten "open collector mode" an diesen Pins per Output-enable ( .OE) erreicht.
Das scheint tatsächlich die einfachste Lösung zu sein. ohne weitere Hardware-Änderungen ausser A24,
joejoe:
Wenn Du aus Deiner Quelle aus Post #156 die ODER-Verknüpfung für die DSACKs entfernst (also nach ursprünglichem Muster ohne dsack_en)
--- Code: ---dsackx.OE = cs11;
--- Ende Code ---
und den Rest so läßt (A24 an Pin 11), dann sollte das korrekt übersetzt werden können.
Es fehlen dann noch die DSACKs für den FastRAM-Bereich.
Ganz ohne zweites GAL könnte dann die Dioden-Lösung mit /Sterm, wie von Dir ja schon einmal ganz am Anfnag versucht, zum Erfolg führen
.
Die anderen Hindernisse in U6 und U12 sollten dann ausgeräumt sein.
Lukas Frank:
Ich denke das mit dem U12 20V8 geht nicht, habe ein wenig probiert. Ein 22V10 würde gehen aber da ist das Problem das ich mit PALASM nicht arbeiten kann. JEDI kann keine 22V10 meine ich ...
Lukas Frank:
Laut Anleitung kann JEDI doch 22V10 aber es klappt nicht ...
--------------
U12_21 Addressdekoder fr TOS 2.06 oder 1.04 ROMs auf der PAK 68/2 fr Atari ST
plus 16MB Fastram ohne STERM
Recompilierte JEDEC-Datei. Erzeugt mit MGP 16/20 Version 2.0
Datei: U12_21 Datum: 14.03.1993 19:35:16
14-03-93 U12_21 Aus P20_21.JED -> U12_21.JED recompiliert.
11-06-93 U12_21 GAL-ID hinzu
___ ___
| \/ |
!as_20 |1 24| VCC
(cpuspace) !csp |2 23| a17
siz0 |3 22| !dsack0
siz1 |4 21| !dsack1
a18 |5 20| !cs8
a19 |6 19| !cs9
a20 |7 18| !cs10
a21 |8 17| !cs11
a22 |9 16| a16
a23 |10 15| a0 (nicht als Input nutzbar)
a24 |11 14| a1
GND |12 13| dsack_en
|________|
%ID
U12_21
%TYP
GAL22V10
%PINS
!as_20 !csp siz0 siz1 a18 a19 a20 a21 a22 a23 a24
dsack_en a1 a0 a16 !cs11 !cs10 !cs9 !cs8 !dsack1 !dsack0 a17
%LOGIC
dsack_en = cs11 + a24 * !csp;
dsack0.OE = dsack_en;
dsack0 = as_20;
dsack1.OE = dsack_en;
dsack1 = as_20;
cs8.OE = VCC;
cs8 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
cs9.OE = VCC;
cs9 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
cs10.OE = VCC;
cs10 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
cs11.OE = VCC;
cs11 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
a16.OE = GND;
a0.OE = GND;
dsack.OE = GND;
%END
Lukas Frank:
Bin einfach zu Blöd dazu !
Jetzt geht es ...
-------
U12_21 Addressdekoder fr TOS 2.06 oder 1.04 ROMs auf der PAK 68/2 fr Atari ST
plus 16MB Fastram ohne STERM
Recompilierte JEDEC-Datei. Erzeugt mit MGP 16/20 Version 2.0
Datei: U12_21 Datum: 14.03.1993 19:35:16
14-03-93 U12_21 Aus P20_21.JED -> U12_21.JED recompiliert.
11-06-93 U12_21 GAL-ID hinzu
___ ___
| \/ |
!as_20 |1 24| VCC
(cpuspace) !csp |2 23| dsack_en
siz0 |3 22| !dsack0
siz1 |4 21| !dsack1
a18 |5 20| !cs8
a19 |6 19| !cs9
a20 |7 18| !cs10
a21 |8 17| !cs11
a22 |9 16| a16
a23 |10 15| a0 (nicht als Input nutzbar)
a24 |11 14| a1
GND |12 13| a17
|________|
%ID
U12_21
%TYP
GAL22V10
%PINS
!as_20 !csp siz0 siz1 a18 a19 a20 a21 a22 a23 a24
a17 a1 a0 a16 !cs11 !cs10 !cs9 !cs8 !dsack1 !dsack0 dsack_en
%LOGIC
dsack_en = cs11 + a24 * !csp;
dsack0.OE = dsack_en;
dsack0 = as_20;
dsack1.OE = dsack_en;
dsack1 = as_20;
cs8.OE = VCC;
cs8 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
cs9.OE = VCC;
cs9 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
cs10.OE = VCC;
cs10 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
cs11.OE = VCC;
cs11 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
a16.OE = GND;
a0.OE = GND;
%END
--- log ---
Datei "C:\ALT\JEDI.045\U12_OHNE.LCI" gelesen.
LOG-Datei von JEDI, Version 0.45
JEDI ist ein Shareware-Programm von
Ralf Zimmermann
http://Ralf.Zimmermann.com/
___ ___
| \/ |
!as_20 |1 24| VCC
!csp |2 23| dsack_en
siz0 |3 22| !dsack0
siz1 |4 21| !dsack1
a18 |5 20| !cs8
a19 |6 19| !cs9
a20 |7 18| !cs10
a21 |8 17| !cs11
a22 |9 16| a16
a23 |10 15| a0
a24 |11 14| a1
GND |12 13| a17
|________|
' OLMC 0:
dsack_en = cs11
+ a24 * !csp;
' OLMC 1:
dsack0.OE = dsack_en;
dsack0 = as_20;
' OLMC 2:
dsack1.OE = dsack_en;
dsack1 = as_20;
' OLMC 3:
cs8.OE = VCC;
cs8 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
' OLMC 4:
cs9.OE = VCC;
cs9 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
' OLMC 5:
cs10.OE = VCC;
cs10 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
' OLMC 6:
cs11.OE = VCC;
cs11 = !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a16
+ !csp * as_20 * !a24 * a23 * a22 * a21 * a19 * a18 * !a17
+ !csp * as_20 * !a24 * a23 * a22 * a21 * !a20;
----------------------------------------------------------------------
----------------------------------------------------------------------
Assemblier-Vorgang erfolgreich beendet
----------------------------------------------------------------------
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln