Hardware > Hardware (High-End)

Fastram mit PAK68/2 ...

<< < (42/46) > >>

Lukas Frank:
Hier das original JEDI Files von U6 ...


--- Code: ---U6_22  PAK 68/2:  Adressdekoder U6 fr Atari ST

  jp1:  CPU Cache         on: disable              *off: enable
  jp2:  ROMs             *on: auf der PAK           off: auf Mainboard 5 Clk
  jp3:  Addressraum      *on: 24 Bit                off: 32 Bit (mit a29, a30)
  jp4:  FPU auf der PAK   on: disable              *off: enable   
  jp5:  FPU Clock         on: eigener Oszillator   *off: -
  jp6:  FPU Clock        *on: CPU Clock             off: -

  BKPT:  as_20 * fc1 * fc0 * !a19 * !a18 * !a17 * !a16
  MMU :  as_20 * fc1 * fc0 * !a19 * !a18 * !a17 *  a16
  FPU :  as_20 * fc1 * fc0 * !a19 * !a18 *  a17 * !a16
  IACK:  as_20 * fc1 * fc0 *  a19 *  a18 *  a17 *  a16

12-06-93   U6_22      aus P20_22.JED recompiliert, GAL-ID hinzu
                       ___  ___
                      |   \/   |
                  a16 |1     24| VCC
                  a17 |2     23| !as_20
                  a18 |3     22| !berr_00
                  a19 |4     21| !berr_20
                  a20 |5     20| !romsel
                  a21 |6     19| !cycle_00
                  a22 |7     18| !cpuspace
                  a23 |8     17| !csfpu
                  a29 |9     16| !jp4
                  a30 |10    15| !jp3
                 !jp2 |11    14| fc1
                  GND |12    13| fc0
                      |________|
%ID
   U6_22
%TYP
   GAL20V8A
%PINS
   a16  a17  a18  a19  a20  a21  a22  a23  a29  a30  !jp2 
   fc0  fc1  !jp3  !jp4  !csfpu  !cpuspace  !cycle_00  !romsel
   !berr_20  !berr_00  !as_20
%LOGIC

 berr_20    = as_20 * fc1 * fc0 * !a19 * !a18 * !a17                'PMMU, BKPT
            + as_20 * fc1 * fc0 * !a19 * !a18 * !a16 * jp4           'keine FPU
            + as_20 * berr_00;

 romsel     = a23 * a22 * a21 * a20 * a19 * a18 * !a17 * !jp2         'TOS 1.04
            + a23 * a22 * a21 * a20 * a19 * a18 * !a16 * !jp2;        'TOS 1.04

 !cycle_00  = a23 * a22 * a21 * !a20                       '$E00000 bis $EFFFFF
            + fc1 * fc0 * !a19 * !a18 * a17 * !a16                         'FPU
            + a23 * a22 * a21 * a19 * a18 * !a17 * jp2                'TOS 1.04
            + a23 * a22 * a21 * a19 * a18 * !a16 * jp2                'TOS 1.04
            + a30 * !a29 * !jp3;

 cpuspace   = fc1 * fc0;

 csfpu      = fc1 * fc0 * !a19 * !a18 * a17 * !a16 * !jp4;                 'FPU

%END


--- Ende Code ---

Das TOS 1.04 mit A17 ist wohl für TOS 2.06 auf der PAK und mit A16 TOs 1.04 (KAOS) auf dem Mainboard !?!

Ja funktioniert Wunderbar. Ich würde gerne alle Jumper weglassen. Kommt eh nur ausschliesslich das 32-birt breite TOS 2.06/3.06 auf der PAK68/2 in frage. Also ist der Jumper sinnlos. JP3 ist doch ebenfalls sinnlos da ein 32bit Adressraum wegen des Fastrams wünschenswert ist. Und JP4 braucht auch nicht sein da auch der Atari TT nicht läuft und bombt wenn die FPU fehlt ...

So hätte man drei Eingänge am GAL frei für A24 und zwei weitere Adressen um eventuell mehr als 16MB Fastram nutzen zu können ...

joejoe:
Okay, habe da zwar so ein paar Zweifel ob der Kommentare (Tos 2.06 neben einer Zeile, die nicht den gesammten E0-EF-Bereich dekodiert, Beschreibungen für Jumper, welche überhaupt nicht an dem GAL anliegen, bei romsel dieselbe Zeile mit TOS 2.06 wie im Original für TOS1.04, etc.) aber wenn es denn so geht :)

Hier aufbauend auf Deiner Version mein Vorschlag, wie a24 dort hinein gehören sollte.
Die Ungereimtheiten habe ich drin gelassen.


--- Code: --- jp2:  ROMs             *on: auf der PAK           off: auf Mainboard 5 Clk
  jp3:  Addressraum      *on: 24 Bit                off: 32 Bit (mit a29, a30)
  jp4:  FPU auf der PAK   on: disable              *off: enable   
  jp5:  FPU Clock         on: eigener Oszillator   *off: -
  jp6:  FPU Clock        *on: CPU Clock             off: -

  BKPT:  as_20 * fc1 * fc0 * !a19 * !a18 * !a17 * !a16
  MMU :  as_20 * fc1 * fc0 * !a19 * !a18 * !a17 *  a16
  FPU :  as_20 * fc1 * fc0 * !a19 * !a18 *  a17 * !a16
  IACK:  as_20 * fc1 * fc0 *  a19 *  a18 *  a17 *  a16

12-06-93   U6_22      aus P20_22.JED recompiliert, GAL-ID hinzu
                       ___  ___
                      |   \/   |
                  a16 |1     24| VCC
                  a17 |2     23| !as_20
                  a18 |3     22| !berr_00
                  a19 |4     21| !berr_20
                  a20 |5     20| !romsel
                  a21 |6     19| !cycle_00
                  a22 |7     18| !cpuspace
                  a23 |8     17| !csfpu
                  a29 |9     16| !jp4
                  a30 |10    15| !jp3
                  a24 |11    14| fc1
                  GND |12    13| fc0
                      |________|
%ID
   U6_22
%TYP
   GAL20V8A
%PINS
   a16  a17  a18  a19  a20  a21  a22  a23  a29  a30  a24
   fc0  fc1  !jp3  !jp4  !csfpu  !cpuspace  !cycle_00  !romsel
   !berr_20  !berr_00  !as_20
%LOGIC

 berr_20    = as_20 * fc1 * fc0 * !a19 * !a18 * !a17                'PMMU, BKPT
            + as_20 * berr_00;

 romsel     = !a24 * a23 * a22 * a21 * a20 * a19 * a18 * !a17;         'TOS 2.06

 !cycle_00  = !a24 * a23 * a22 * a21 * !a20                       '$E00000 bis $EFFFFF
            + fc1 * fc0 * !a19 * !a18 * a17 * !a16                         'FPU
            + !a24 * a23 * a22 * a21 * a19 * a18 * !a17                'TOS 2.06
            + a24; ' FASTRAM

 cpuspace   = fc1 * fc0;

 csfpu      = fc1 * fc0 * !a19 * !a18 * a17 * !a16;                 'FPU

%END
--- Ende Code ---

Da ich nie mit Jedi gearbeitet habe wundert mich die Redundanz der PIN Definitionen einmal als Pictogramm und dann über die %PINS Directive.
Aber das ist dann eben mein Problem ;)
romsel selektiert nach meiner Erinnerung mitnichten den ROM-Bereich auf der Hauptplatine, sondern steuert den Zugriff dergestalt, dass bei aktivem ROM-Zugriff (signalisiert per romsel) in einem weiteren GAL ein verkürzter 68000-BUS-Zyklus getriggert wird.
Da Du das TOS auf dem Mainboard aber nur für die ersten paar Zugriffe nutzt ist der Nutzen minimal.

Lukas Frank:
Bevor ich weiter mache möchte ich erstmal die drei Jumper Eingänge am GAL U6 frei haben, sprich keinerlei Jumper mehr an U6.

JP2 = TOS auf dem Mainboard oder auf der PAK brauche ich nicht, soll fest auf TOS auf der PAK sein.
JP3 = Adressraum 24bit oder 32bit braucht es ebenfalls nicht, soll fest auf 32bit stehen
JP4 = FPU ja/nein, braucht nicht. FPU muss/soll immer vorhanden sein genau wie beim Atari TT der bombt ohne FPU.

Die Funktion von JP2 soll jetzt fest gesetzt sein.
JP3 soll offen sein (32bit) und JP4 soll offen sein (FPU vorhanden).

Problem ist das ich mit PALASM nicht arbeiten kann. Bin zu blöd dazu, für die Bedienung. JEDI geht da schon eher. Ich habe jetzt PALASM lauffähig unter OSX und der DOSBOX. Brauche jemanden der mir die Bedienung in groben Zügen erklären kann ...?


--- original U6 PDS -----

--- Code: ---****************************************************************
P20_22.PDS          1779
****************************************************************
;PALASM Design Description
;
;       ATARI ST
;
;  Address Decoder fr FPU , schnellen ROM Zugriff
;  Buserror, CPUSPACE, ...
;
;   Jumper 2 :   System ROM auf PAK
;          3 :   deaktivert PAK Mem , erlaubt die verwendung von
;                A24 - A31 als TAG Bits in mancher Software
;                ( z.B. Tempus 2.0 )
;          4 :   deaktiviert FPU d.h. erzeugt buserror
;
;---------------------------------- Declaration Segment ------------
TITLE    PAK  68020-16
PATTERN  p20_22
REVISION 1
AUTHOR   M.V”lkel
COMPANY  GK Computer
DATE     08/10/91

CHIP  _p20_22  PALCE20V8

;---------------------------------- PIN Declarations ---------------
PIN  17         /csfpu                                COMBINATORIAL ; OUTPUT
PIN  18         /cpuspace                             COMBINATORIAL ; OUTPUT
PIN  19         /cycle_00                             COMBINATORIAL ; OUTPUT
PIN  20         /romsel                               COMBINATORIAL ; OUTPUT
PIN  21         /berr_20                              COMBINATORIAL ; OUTPUT
PIN  22         /berr_00                                         ; INPUT
PIN  23         /as_20                                           ; INPUT
PIN  11         /jp2                                             ; INPUT
PIN  15         /jp3                                             ; INPUT
PIN  16         /jp4                                             ; INPUT
PIN  1..8       a[16..23]                                        ; INPUT
PIN  9          a29                                              ; INPUT
PIN  10         a30                                              ; INPUT
PIN  13         fc0                                              ; INPUT
PIN  14         fc1                                              ; INPUT

; ROM Adressen :
;  sysrom = Systemrom    ATARI FC0000 - FCFFFF
;  addmem =                "   E00000 - EFFFFF

STRING  adrFC  'a[23] * a[22] * a[21] * a[20] * a[19] * a[18] '
STRING  sysrom '(adrFC * (/a[17]*/a[16] + /a[17]*a[16] + a[17]*/a[16] ))'
STRING  addmem '( a[23] * a[22] * a[21] * /a[20] )'


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

cycle_00 =/(  a30 * /a29 * /JP3
              + sysrom * jp2
              + addmem
              + fc0 * fc1 * /a[16] * a[17] * /a[18] * /a[19]     ; fpu
           )
romsel =  /JP2 * sysrom
csfpu =   fc0 * fc1 * /a[19] * /a[18] * a[17] * /a[16] * /JP4 ;
cpuspace = fc0 * fc1 ;

;---------------------------------------------------------------------
;    Buserror wird erzeugt bei                                       |
;                                                                    |
;       Buserror vom 68000 System                                    |
;       FPU Select wenn JP4 gesteckt d.h. keine FPU im System        |
;            (erlaubt Software Emulation der Line F Befehle)         |
;       Breakpoint ACK cycle ( braucht  68851 PMMU )                 |
;       Access Level fetch       "        "     "                    |
;---------------------------------------------------------------------

berr_20 = as_20 * ( berr_00
                    +  fc0 * fc1 * /a[19] * /a[18] *  a[17] * /a[16] * JP4
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] * /a[16]
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] *  a[16]
                  );

;----------------------------------- Simulation Segment ------------
SIMULATION

;-------------------------------------------------------------------

--- Ende Code ---

--- Jumper loses U6 1.Versuch -----

--- Code: ---****************************************************************
P20_22.PDS          1779
****************************************************************
;PALASM Design Description
;
;       ATARI ST
;
;  Address Decoder fr FPU , schnellen ROM Zugriff
;  Buserror, CPUSPACE, ...
;
;   Jumper 2 :   System ROM auf PAK
;          3 :   deaktivert PAK Mem , erlaubt die verwendung von
;                A24 - A31 als TAG Bits in mancher Software
;                ( z.B. Tempus 2.0 )
;          4 :   deaktiviert FPU d.h. erzeugt buserror
;
;---------------------------------- Declaration Segment ------------
TITLE    PAK  68020-16
PATTERN  p20_22
REVISION 1
AUTHOR   M.V”lkel
COMPANY  GK Computer
DATE     08/10/91

CHIP  _p20_22  PALCE20V8

;---------------------------------- PIN Declarations ---------------
PIN  17         /csfpu                                COMBINATORIAL ; OUTPUT
PIN  18         /cpuspace                             COMBINATORIAL ; OUTPUT
PIN  19         /cycle_00                             COMBINATORIAL ; OUTPUT
PIN  20         /romsel                               COMBINATORIAL ; OUTPUT
PIN  21         /berr_20                              COMBINATORIAL ; OUTPUT
PIN  22         /berr_00                                         ; INPUT
PIN  23         /as_20                                           ; INPUT
PIN  11         /jp2                                             ; INPUT
PIN  15         /jp3                                             ; INPUT
PIN  16         /jp4                                             ; INPUT
PIN  1..8       a[16..23]                                        ; INPUT
PIN  9          a29                                              ; INPUT
PIN  10         a30                                              ; INPUT
PIN  13         fc0                                              ; INPUT
PIN  14         fc1                                              ; INPUT

; ROM Adressen :
;  sysrom = Systemrom    ATARI FC0000 - FCFFFF
;  addmem =                "   E00000 - EFFFFF

STRING  adrFC  'a[23] * a[22] * a[21] * a[20] * a[19] * a[18] '
STRING  sysrom '(adrFC * (/a[17]*/a[16] + /a[17]*a[16] + a[17]*/a[16] ))'
STRING  addmem '( a[23] * a[22] * a[21] * /a[20] )'


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

cycle_00 =/(  a30 * /a29
              + sysrom
              + addmem
              + fc0 * fc1 * /a[16] * a[17] * /a[18] * /a[19]     ; fpu
           )
romsel =  sysrom
csfpu =   fc0 * fc1 * /a[19] * /a[18] * a[17] * /a[16] ;
cpuspace = fc0 * fc1 ;

;---------------------------------------------------------------------
;    Buserror wird erzeugt bei                                       |
;                                                                    |
;       Buserror vom 68000 System                                    |
;       FPU Select wenn JP4 gesteckt d.h. keine FPU im System        |
;            (erlaubt Software Emulation der Line F Befehle)         |
;       Breakpoint ACK cycle ( braucht  68851 PMMU )                 |
;       Access Level fetch       "        "     "                    |
;---------------------------------------------------------------------

berr_20 = as_20 * ( berr_00
                    +  fc0 * fc1 * /a[19] * /a[18] *  a[17] * /a[16]
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] * /a[16]
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] *  a[16]
                  );

;----------------------------------- Simulation Segment ------------
SIMULATION

;-------------------------------------------------------------------

--- Ende Code ---

@joejoe ... bitte ein JED aus der Version ohne Jumper erzeugen zum Testen.

An alle die Ahnung haben, sind die Gleichungen so richtig oder habe ich Fehler gemacht ?

joejoe:
Leichtes Kopfschütteln ;)
Wenn es denn irgendwann einmal läuft, dann kannst Du Dir ja über eine weitergehende Verwendung
der derzeit von den Jumpern belegten GaL Eingängen Gedanken machen.

Ich würde das alles aussen vor lassen, und NUR mit A24 anfangen.

Um Dir weiter zu helfen habe ich ja schon (mehrmals) versucht JEDI-Quellcode zu texten.
Deine Version ohne alle JP in den GAL-Gleichungen, welche ja nach Deiner Aussage den ST korrekt mit PAK/2 laufen läßt, war die Grundlage für meine Version mit zusätzlich A24.
Meine kleinen Meckereien kannst Du ja gern beiseite lassen.

Wenn nun nur A24 hinzu kommt, muß zunächst auch nur die Gleichung ergänzt werden, welche
in U6 für die Umschaltung auf ST-Adressbereich oder PAK/2-32bit Adressbereich zuständig ist, also cycle_00.

Hast Du denn meinen Vorschlag für U6 (basierend auf Deinem Original) mal mit JEDI übersetzt und ausprobiert ?
Auch mit gesetzem JP2 , was ja gleichbedeutend mit A24 dauerhaft "0" wäre?

Das sollte dann genauso funktionieren wie Dein U6, da a24 für den Zugriff auf den ST-Bereich immer "0" sein muss.

Mit entferntem J2 (a24 = "1", per Pullup am GAL) dürfte der ST dann nicht booten.
Wenn das alles klappt, dann würde ich a24 an den GAL-Eingang 11, ehemals JP2, anschließen.

Deine Bitte mit dem PALASM Durchlauf werde ich dann in Kürze erfüllen.

EDIT:
 Da wir damit genau genommen keinen einzigen Schritt weiter wären, lasse ich den PALASM-Lauf mit dieser Quelle erstmal aus. Das bringt nichts, s. nächsten Post.
/edit

Gruß Jörg


czietz:
Du kannst nicht einfach alle Vorkommen von JPx und /JPx entfernen, Du musst die Gleichungen schon anpassen, je nachdem ob der Jumper als gesetzt oder als nicht gesetzt angenommen werden soll:

Für einen Jumper "JPx" der gesetzt sein soll, lass alle Produkte stehen die "JPx" enthalten und entferne alle, die "/JPx" enthalten. Für einen Jumper der nicht gesetzt sein soll, genau umgekehrt: Produkte mit "JPx" entfernen, mit "/JPx" stehen lassen.

Beispiel: Aus ...

--- Code: ---berr_20 = as_20 * ( berr_00
                    +  fc0 * fc1 * /a[19] * /a[18] *  a[17] * /a[16] * JP4
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] * /a[16]
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] *  a[16]
                  );
--- Ende Code ---
... wird -- Zitat "JP4 soll offen sein":

--- Code: ---berr_20 = as_20 * ( berr_00
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] * /a[16]
                    +  fc0 * fc1 * /a[19] * /a[18] * /a[17] *  a[16]
                  );
--- Ende Code ---

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln