Hardware > Hardware (High-End)

Fastram mit PAK68/2 ...

<< < (21/46) > >>

Lukas Frank:
Habe nur einen Mega ST4 mit TOS 1.04 auf dem Board. Könnte aber EmuTOS drauf machen. Eine TOS 2.06 Karte habe ich nicht.

Habe ein gepatchtes PAK68/3 TOS 3.06 auf der PAK da ich davon ausgebe das TOS 2.06 mit Fastram nicht umgehen kann.

Ich könnte mir auch bei Kessler die 512kB SRAMs kaufen aber ist dieses BANK0 und BANK1 nicht für insgesamt 8 SRAMs also im Falle der 512er 2MB in BANK0 und weitere 4 Stk. in BANK1 also insgesamt dann 4MB Fastram ?

joejoe:
Alles mit "ja" zu beantworten.
Da TOS 3.06 beim Start das FastRam auch auf Spiegelungen (an nicht ausdekodierten Adressleitungen ) etc. testet, also tatsächlich Schreib- und Lese-Zugriffe tätigt, reicht eine minimale Dekodierung des FastRAM, hier nur mit A24. Der Buserror beim FastRAM-Zugriff oberhalb 1 MB Fastram, wie von mir in U6 eingefügt, ist eigentlich überflüssig/ unnötig, bzw. bei Deinem 16MB Atari-TT-FastRAM hinderlich. Aber das kann dann ja in einem  weiteren Schritt geändert werden.

Wenn Du nun nur eine Bank SRAMs einsetzt, bemerkt TOS 3.06 das, und bindet auch nur die eine Bank ein.
Ich kenne EMUTOS (noch) nicht, bin lange 'raus aus dem Thema.
Das originale U12 erzeugt nur /DSACK0 und /DSACK1 für 32bittigen ROM-Zugriff; 8 und 16bitige FastRAM Zugriffe werden falsch beendet, das funktioniert nicht. Hier kommt die Dekodierung nach "AMIGA-Muster" aus 1992 ins Spiel.

Für das TT-FastRAM müsste die STERM_nach DSACK-Dioden-Lösung her, oder eine weitere Verarbeitung von /STERM im GAL. Damit gehen dann auch nur 32bit-Zugriffe korrekt.
Macht aber ev. nix, da das Tos 3.06 auf das TTFastRam offenbar (siehe /STERM) nur 32bittig zugreift?!

Wenn Du weiterhin die TTFastRAM-Karte testen möchtest und eine Zyklus-Terminierung realisieren willst, dann muss etwas her wie oben beschrieben, oder besser mit A24 (s. U12_froam.pds/jed aus dem alten Thread). Ein erster Test könnte auch sein, in Deinem U12
--- Zitat ---case ( a[24..16] ) begin
 #h0E0..#h0EF:
   begin
     cs11 = as_20 * /cpuspace
     cs10 = as_20 * /cpuspace
     cs9  = as_20 * /cpuspace
     cs8  = as_20 * /cpuspace
   end
 otherwise
   case ( a[24..16] ) begin
 #h100..#h1FF:
   begin
     cs11 = as_20 * /cpuspace
     cs10 = as_20 * /cpuspace
     cs9  = as_20 * /cpuspace
     cs8  = as_20 * /cpuspace
   end
   otherwise
     begin
        cs11 = gnd
        cs10 = gnd
        cs9  = gnd
       cs8  = gnd
     end
end

dsack0.trst = cs11
dsack1.trst = cs11

dsack0 = as_20 ;
dsack1 = as_20 ;

--- Ende Zitat ---
Edit: das ist Quatsch so! reicht allenfalls als Denkanstoß :-[

Also auch nur 32bit /DSACKx.
Ob das so übersetzt werden kann .. keine Ahnung, ich hatte eben damals die  korrekte Variante mit /siz0 und /siz1 verwendet.
Da das Kessler RAM ja viermal soviel RAM hat wie die von mir verendeten SRAMs muss auch das Pin-Out und die BANK-Logic überprüft werden.

joejoe:
Das hier war die "letzte" Variante von U12:

--- Zitat ---;PALASM Design Description
;
;  (c) M.V”lkel  GK _Computer Freiburg
;
;   Address Decoder fr On Board Speicher  FAST-RAM
;
;
;    Fr ATARI ST   0100 0000-0107 FFFF   TT-Fast-Ram
;    4.11.93
;    rom_bank
;    5.9.94
;    12.12.94 JP3 entfernt, ram_1 auf PIN 23 gelegt
;    03.03.95
;    Version fr TOS X.06 Autoboot mit TOS X.06-Anfang auf Mainboard
;    Resetvektoren zeigen auf E0 0000.

;------------------------------------------------------------------------
;---------------------------------- Declaration Segment ------------
TITLE    FROAM
PATTERN  P20-20 = U12_FASTRAM
REVISION 1
AUTHOR   Manfred V”lkel ge„ndert J.Reinecke c't 10/92 AMIGA-Muster
COMPANY  GK Computer
DATE     06/01/91

CHIP  _p20_20n  PALCE22V10

;---------------------------------- PIN Declarations ---------------

PIN  1          /as_20     COMBINATORIAL ; INPUT
PIN  2          /cpuspace  COMBINATORIAL ; INPUT
PIN  3          siz0       COMBINATORIAL ; INPUT
PIN  4          siz1       COMBINATORIAL ; INPUT
PIN  5          a[24]      COMBINATORIAL ; INPUT  !!!! VORHER: a[18] !!!!!
PIN  6..10      a[19..23]  COMBINATORIAL ; INPUT
PIN  11         a1         COMBINATORIAL ; INPUT  !!!! VORHER: a[29] !!!
PIN  12         GND
PIN  13         a0         COMBINATORIAL ; INPUT  !!!! VORHER: a[30] !!!
PIN  14         /rom       COMBINATORIAL ; OUTPUT !!!! VORHER:    a1 !!!!
PIN  15         ram_0      COMBINATORIAL ; OUTPUT !!!! VORHER:    a0 !!!!
PIN  16         rw         COMBINATORIAL ; INPUT  !!!! VORHER  a[16] !!!!
PIN  17         /cs11      COMBINATORIAL ; OUTPUT
PIN  18         /cs10      COMBINATORIAL ; OUTPUT
PIN  19         /cs9       COMBINATORIAL ; OUTPUT
PIN  20         /cs8       COMBINATORIAL ; OUTPUT
PIN  21         dsack_en   COMBINATORIAL ; OUTPUT !!!! VORHER: /dsack1 !!!!
PIN  22         /dsack0    COMBINATORIAL ; OUTPUT
PIN  23         ram_1      COMBINATORIAL ; OUTPUT !!!! VORHER: a[17] !!!!
PIN  24         VCC

; die PINs ram_0, ram_1 werden mit den nun abgebogenen PINs CE2 (PIN 30)
; der statischen RAMs verbunden, ram_0 geht an die unteren, ram_1  an die
; oberen 512 kB (alle RAMs einer Bank am PIN 30 miteinander verbinden)
; /rom geht an /OE (PIN 22) der EPROMS, /CE (PIN 20) der EPROMs im Sockel
; auf GND -> schneller Lesezugriff m”glich
; /dsack1 (alter Pin 21) im Adaptersockel wird durch Schottkydiode mit
; /dsack0 (PIN 22) verbunden (Kathode an PIN 22); PIN 21 GAL wird umgebogen
; bleibt unbelegt (notwendig fr ODER-Verknpfung in /dsack0)
; rw (PIN 16 GAL) wird mit R/W verbunden; notwendig fr 68030 Caches



string uucs   '(  /a0 * /a1 ) '
string umcs   '(  /a1*siz1 + a0*/a1 + /a1*/siz0 )'
string lmcs   '(  a0*/a1*/siz0 + /a1*siz0*siz1 + /a1*/siz0*/siz1 + /a0*a1 )'
string llcs   '(  a1*siz1 + a0*a1 + /siz0*/siz1 + a0*siz0*siz1 )'
string fram   '(  a[24] * /a[23] * /a[22] * /a[21] * /a[20] )'; 1 MB
string tosx06 '( /a[24] *  a[23] *  a[22] *  a[21] * /a[20] )'; 0E0000 - 0EFFFF

;----------------------------------- Boolean Equation Segment ------
EQUATIONS



MINIMIZE_ON


cs11  = as_20 * /cpuspace * (uucs + rw);

cs10  = as_20 * /cpuspace * (umcs + rw);

cs9   = as_20 * /cpuspace * (lmcs + rw);

cs8   = as_20 * /cpuspace * (llcs + rw);

ram_0 = /a[19] * fram;

ram_1 =  a[19] * fram;

rom   = as_20 * /cpuspace * tosx06;

dsack_en =  as_20 * /cpuspace  * (rom + fram);

dsack0.trst = dsack_en;

dsack0  = as_20;

--- Ende Zitat ---
Es ist dringend ein 22V10 notwendig, ein 20V8 hat nicht genug "Power".
Die Umbelegungen im PIN-OUT waren notwendig, um ausreichend Ausgänge frei zu schaufeln, indem iNPUT-Signale, welche ursprünglich an (im 22V10) potentiellen Ausgängen verdrahtet waren auf dedizierte INPUT-Pin verlegt wurden. Hier nicht benötigte Eingänge wurden umbelegt.
Der Text im PDS sollte weitere Fragen klären.
Ich hatte mir Türmchen aus Sockeln und GALs mit aufgelöteten Sockeln gebaut, um die Verdrahtung in weitrenen, modifizierten Zwischensockeln variabel gestalten zu können und keine GAL-Pins hin- (für die PAK)  und her (zum Programmieren) biegen zu müssen.

Als Starter-ROMs "unten" auf dem ST hatte ich zwei 256kB-ROMs mit den entsprechenden (unmodifizierten) unteren HI-/LO-Teilen von TOS 2.06. Das ist zwar allein nicht lauffähig, startet dann aber ab nach E0...
Gruß und viel Erfolg
joe

EDIT: es war das gepatchte 3.06

joejoe:
und noch das jedec-file:


btw. wie übersetzt Du die PDS-Files?
Die hier verwendete Schreibweise funktioniert nur mit PALASM, nicht mit den ATARI GAL-Assemblern (die mir damals bekannt waren)

joejoe:
Wenn Du keine SRAMs einsetzt, reichen die Ausgänge eines 20V8 ev. auch. Dann musst Du auch die vielen Umbelegungen nicht durchführen, und könntest Dir dennoch das DSACK0/1 erzeugen.
Sehe eben, dass meine Ausführungen zu den 8-/16-/32-bit Zugriffen im Zusammenhang mit den DSACKs immer noch genauso falsch sind, wie von czietz im alten Thread schon angemerkt. Die Dekodierung der /CS per siz0/1 ist wichtig.
siehe auch mein U12. ;) 8)

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln