Skip to content

Latest commit

 

History

History
78 lines (66 loc) · 5.52 KB

p_rom_bus.md

File metadata and controls

78 lines (66 loc) · 5.52 KB

P ROM Bus Tests

The purpose of these tests is to validate the data and address bus between the main CPU and the P ROMs on the cart slot. These tests require a custom PROG board where the P ROM has been replaced with static ram.

The details on the custom PROG boards can be found here:

AES Version
MVS Version

The P ROMs are mapped into 2 addresses ranges on the 68K CPU.

Start End Description Notes
0x000000 0x0FFFFF P1 Range Read-Only
0x200000 0x2FFFFF P2 Range Read/Write

Both of these ranges share the same address and data lines on the cart edge. Writes to the P2 range get used for stuff like bank switching or communicating to custom chips on the prog board.

Read/Write signals (active low) on the slot for the ranges are:

  • ROMOEL - P1 Low Byte Read Enable
  • ROMOEU - P1 High Byte Read Enable
  • ROMOE - P1 Low or High Byte Read Enable
  • PORTOEL - P2 Low Byte Read Enable
  • PORTOEU - P2 High Byte Read Enable
  • PORTADRS - P2 Low or High Byte Read Enable
  • PORTWEL - P2 Low Byte Write Enable
  • PORTWEU - P2 High Byte Write Enable

On MVS boards there is also a SLOTCS signal that will got low if the slot itself is active/selected.

Address Paths

These are the address paths between the P roms and the CPU.

Board P ROM Address Path from CPU
MV1
MV1-1
MV1T
SLOT <= CPU
MV1A
MV1ACH
MV1ACHX
MV1AX
SLOT <= CPU
MV1B
MV1B CHX
MV1B1
SLOT <= CPU
MV1C SLOT <= CPU
MV1F
MV1FS
MV1FT
SLOT <= CPU
MV1FZ SLOT <= CPU
MV2
MV2-01
MV2B
SLOT1/2 <= NEO-E0 @ H6 <= CPU
MV2F
MV2FS
SLOT1/2 <= NEO-E0 @ F3 <= CPU
MV4 SLOT1 <= 74LS/F244 @ D2/D3/D4 <= CN10 <= CN10 <= 74HC/AS244 @ B9/B10/B11 <= CPU
SLOT2 <= 74LS/F244 @ H2/H3/H4 <= CN10 <= CN10 <= 74HC/AS244 @ B9/B10/B11 <= CPU
SLOT3 <= 74LS/F244 @ M2/M3/M4 <= CN10 <= CN10 <= 74HC/AS244 @ B9/B10/B11 <= CPU
SLOT4 <= 74LS/F244 @ S2/S3/S4 <= CN10 <= CN10 <= 74HC/AS244 @ B9/B10/B11 <= CPU
MV4F
MV4FS
MV4FT
MV4FT2
MV4FT3
TODO
MV6 TODO

Data Paths

These are the data paths between the P roms on the slot to the CPU.

Board P ROM Data Path to/from CPU
MV1
MV1-1
MV1T
SLOT <=> CPU
MV1A
MV1ACH
MV1ACHX
MV1AX
SLOT <=> NEO-BUF (GA11) LEFT OF NEO-GRC <=> CPU
MV1B
MV1B CHX
MV1B1
SLOT <=> NEO-BUF (GA1) ON SLOT BOARD <=> CPU
MV1C SLOT <=> CPU
MV1F
MV1FS
MV1FT
SLOT <=> CPU
MV1FZ SLOT <=> CPU
MV2
MV2-01
MV2B
SLOT1/2 <=> NEO-G0 @ J4 <=> CPU
MV2F
MV2FS
SLOT1/2 <=> NEO-G0 @ H2.5 <=> CPU
MV4 SLOT 1 <=> 74LS245s @ C3/C4 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT 2 <=> 74LS245s @ G3/G4 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT 3 <=> 74LS245s @ L3/L4 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT 4 <=> 74LS245s @ R3/R4 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
MV4F
MV4FS
MV4FT
MV4FT2
MV4FT3
SLOT 1/2 <=> NEO-G0 @ B1 <=> CN10 <=> CN10 <=> 72AS245s @ C11/D11 <=> CPU
SLOT 3/4 <=> NEO-G0 @ D1 <=> CN10 <=> CN10 <=> 72AS245s @ C11/D11 <=> CPU
MV6 SLOT1 <=> 74LS245s @ L6/M6 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT2 <=> 74LS245s @ L10/M10 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT3 <=> 74LS245s @ L14/M14 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT4 <=> 74LS245s @ L18/M18 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT5 <=> 74LS245s @ L22/M22 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU
SLOT6 <=> 74LS245s @ L26/M26 <=> CN10 <=> CN10 <=> 74AS245s @ B7/B8 <=> CPU

Enable/Write Paths

These are the paths for the enable/write lines the P roms.

Board P ROM Enable/Write Paths
MV1
MV1-1
MV1T
SLOT <= PRO-C0 @ F4
MV1A
MV1ACH
MV1ACHX
MV1AX
SLOT <= 74HC32s @ U1/U2 <= PALCE20V8Hs @ PAL1/PAL2
MV1B
MV1B CHX
MV1B1
SLOT <= NEO-DCR-T (GA1)
MV1C SLOT <= NEO-DCR-T (GA1)
MV1F
MV1FS
MV1FT
SLOT <= NEO-C1 @ L5
MV1FZ SLOT <= NEO-C1 (GU1)
MV2
MV2-01
MV2B
SLOT1/2 <= NEO-E0s @ G6/F7 <= PRO-C0
MV2F
MV2FS
SLOT1/2 <= NEO-E0s @ F3/F8 <= PRO-C0
MV4 SLOT 1 PORTOE*/PORTWE*/ROMOE* <= 74F244 @ C2 <= CN10 <= CN10 <= 74AS244 @ C11 <= PRO-C0 @ L6
SLOT 1 ROMOE <= 74F244 @ D2 <= CN11 <= CN11 <= 74LS244 @ F2 <= 74LS08 @ K2 <= PRO-C0 @ L6
SLOT 1 PORTADRS <= 74LS244 @ C6 <= CN11 <= CN11 <= 74AS244 @ B11 <= PRO-C0 @ L6
SLOT 2 PORTOE*/PORTWE*/ROMOE* <= 74F244 @ G2 <= CN10 <= CN10 <= 74AS244 @ C11 <= PRO-C0 @ L6
SLOT 2 ROMOE <= 74F244 @ H2 <= CN11 <= CN11 <= 74LS244 @ F2 <= 74LS08 @ K2 <= PRO-C0 @ L6
SLOT 2 PORTADRS <= 74LS244 @ G6 <= CN11 <= CN11 <= 74AS244 @ B11 <= PRO-C0 @ L6
SLOT 3 PORTOE*/PORTWE*/ROMOE* <= 74F244 @ L2 <= CN10 <= CN10 <= 74AS244 @ C11 <= PRO-C0 @ L6
SLOT 3 ROMOE <= 74F244 @ M2 <= CN11 <= CN11 <= 74LS244 @ F2 <= 74LS08 @ K2 <= PRO-C0 @ L6
SLOT 3 PORTADRS <= 74LS244 @ L6 <= CN11 <= CN11 <= 74AS244 @ B11 <= PRO-C0 @ L6
SLOT 4 PORTOE*/PORTWE*/ROMOE* <= 74F244 @ R2 <= CN10 <= CN10 <= 74AS244 @ C11 <= PRO-C0 @ L6
SLOT 4 ROMOE <= 74F244 @ S2 <= CN11 <= CN11 <= 74LS244 @ F2 <= 74LS08 @ K2 <= PRO-C0 @ L6
SLOT 4 PORTADRS <= 74LS244 @ R6 <= CN11 <= CN11 <= 74AS244 @ B11 <= PRO-C0 @ L6
MV4F
MV4FS
MV4FT
MV4FT2
MV4FT3
TODO
MV6 TODO