NEO-E0: Difference between revisions

From NeoGeo Development Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by 3 users not shown)
Line 7: Line 7:
|used_on={{PCB|NEO-AES3-3}} ...
|used_on={{PCB|NEO-AES3-3}} ...
}}
}}
Just a 24-bit buffer and logic for [[68k vector table]] swapping.


=68k vector table swapping=
=68k vector table swapping=
The 68k vector table is swapped with the [[system ROM]] one by using {{Reg|REG_SWPBIOS}} or {{Reg|REG_SWPROM}}.
The 68k vector table seen by the 68k is selected by writing to {{Reg|REG_SWPROM}} (table from the game) or {{Reg|REG_SWPBIOS}} (table from the [[system ROM]]).


A22Z~A23Z are used to make the address appear to address decoding chips as a system ROM access instead of a [[P ROM]] access.
A22Z and A23Z are used in place of A22 and A23 to make the address appear to address decoding chips as a system ROM access instead of a [[P ROM]] access.
 
The {{Sig|VEC|VEC}} signal comes from the 74H259 system latch.


{|class="wikitable"
{|class="wikitable"
Line 18: Line 22:
!VEC = 0||VEC = 1
!VEC = 0||VEC = 1
|-
|-
|$000000~$0000FF||$C00000~$C000FF||$000000~$0000FF
|$000000~$00007F||$C00000~$C0007F||$000000~$00007F
|-
|-
|$000100~$BFFFFF||colspan=2|$000100~$BFFFFF
|$000080~$BFFFFF||colspan=2|No change
|-
|-
|$C00000~$C000FF||$000000~$0000FF||$C00000~$C000FF
|$C00000~$C0007F||$000000~$00007F||$C00000~$C0007F
|-
|-
|$C00100~$FFFFFF||colspan=2|$C00100~$FFFFFF
|$C00080~$FFFFFF||colspan=2|No change
|}
|}


[[User:Kyuusaku]]: {A23Z,A22Z} = A[23:22] ^ 2{~|{A[21:7],^A[23:22],VEC}}
Verilog from [[User:Kyuusaku]]:
<pre>{A23Z,A22Z} = A[23:22] ^ 2{~|{A[21:7],^A[23:22],VEC}}</pre>


=Pinouts=
=Pinouts=


On the AES, the AND gate is used to get /SROMOE from /SROMOEL AND /SROMOEU.
==Input to output map==
 
* 64 -> 5
* 1 -> 6
* 2 -> 7
* 3 -> 8
* 4 -> 9
* 15 -> 11
* 16 -> 12
* 17 -> 13
* 18 -> 14
* 19 -> 22
* 20 -> 23
* 21 -> 24
* 31 -> 27
* 32 -> 28
* 33 -> 29
* 34 -> 30
* 36 -> 39
* 37 -> 40
* 38 -> 41
* 48 -> 43
* 49 -> 44
* 50 -> 45
* 51 -> 46
* 52 -> 47
* 53 -> 55 if VEC is high
* 54 -> 56 if VEC is high
 
==Console==
 
On the AES, the AND gate is used to make /SROMOE from (/SROMOEL AND /SROMOEU).


==MV2B @ H7 pinout==
==MV2B & MV2-01 @ H7 pinout==


55 = sPCK1B
* 55 = sPCK1B
56 = sPCK2B
* 56 = sPCK2B
[[P_bus]] buffer


==MV2B @ G2 pinout==
==MV2B @ G2 pinout==
Line 65: Line 102:
|}
|}


==?==
==MV2F @ E1 pinout (to be confirmed) and AES==


{|
{|
Line 75: Line 112:
*A1~A23: 68k address bus
*A1~A23: 68k address bus
*Y0~Y23: memory card address bus
*Y0~Y23: memory card address bus
*BNK0~BNK2: comes from [[NEO-D0]], [[memory card]] banking
*BNK0~BNK2: comes from [[NEO-D0]], [[memory card]] bank
*VEC: System ROM vector table swapping enable
*VEC: System ROM vector table swapping
*ANI0, ANI1, AND0: AND gate used to generate ROMOE from ROMOEU and ROMOEL
*ANI0, ANI1, AND0: AND gate used to generate ROMOE from (ROMOEU and ROMOEL)
|}
|}


[[Category:Chips]]
[[Category:Chips]]

Latest revision as of 07:19, 18 July 2022

Package QFP64R
Manufacturer
First use 1991 ?
Used on NEO-AES3-3 ...

Just a 24-bit buffer and logic for 68k vector table swapping.

68k vector table swapping

The 68k vector table seen by the 68k is selected by writing to REG_SWPROM (table from the game) or REG_SWPBIOS (table from the system ROM).

A22Z and A23Z are used in place of A22 and A23 to make the address appear to address decoding chips as a system ROM access instead of a P ROM access.

The VEC signal comes from the 74H259 system latch.

Address Maps to
VEC = 0 VEC = 1
$000000~$00007F $C00000~$C0007F $000000~$00007F
$000080~$BFFFFF No change
$C00000~$C0007F $000000~$00007F $C00000~$C0007F
$C00080~$FFFFFF No change

Verilog from User:Kyuusaku:

{A23Z,A22Z} = A[23:22] ^ 2{~|{A[21:7],^A[23:22],VEC}}

Pinouts

Input to output map

  • 64 -> 5
  • 1 -> 6
  • 2 -> 7
  • 3 -> 8
  • 4 -> 9
  • 15 -> 11
  • 16 -> 12
  • 17 -> 13
  • 18 -> 14
  • 19 -> 22
  • 20 -> 23
  • 21 -> 24
  • 31 -> 27
  • 32 -> 28
  • 33 -> 29
  • 34 -> 30
  • 36 -> 39
  • 37 -> 40
  • 38 -> 41
  • 48 -> 43
  • 49 -> 44
  • 50 -> 45
  • 51 -> 46
  • 52 -> 47
  • 53 -> 55 if VEC is high
  • 54 -> 56 if VEC is high

Console

On the AES, the AND gate is used to make /SROMOE from (/SROMOEL AND /SROMOEU).

MV2B & MV2-01 @ H7 pinout

  • 55 = sPCK1B
  • 56 = sPCK2B

P_bus buffer

MV2B @ G2 pinout

OpenOffice Draw file: File:Neo-e0 mv2b G2.odg

MV2B @ F7 pinout

OpenOffice Draw file: File:Neo-e0 mv2b F7.odg

Acts just as a buffer.

  • s*: signals to both slots

MV2F @ E1 pinout (to be confirmed) and AES

OpenOffice Draw file: File:Neo-e0.odg

  • A1~A23: 68k address bus
  • Y0~Y23: memory card address bus
  • BNK0~BNK2: comes from NEO-D0, memory card bank
  • VEC: System ROM vector table swapping
  • ANI0, ANI1, AND0: AND gate used to generate ROMOE from (ROMOEU and ROMOEL)