wiki:TeradriveHardwareNotes

Version 3 (modified by Mike Pavone, 9 months ago) ( diff )

--

Hardware Overview

The Sega Teradrive consists of a 286 IBM PC integrated with a Sega Megadrive. The PC side is fairly standard and is built around a Western Digital chipset found in a number of other 286 and 386 systems, including the IBM PS/55 5510Z which has some additional similarities to the Teradrive. The main components of the PC chipset are the WD76C10LP system controller (DRAM controller, memory map, etc.), the WD76C30 peripheral controller (serial and parallel ports), the WD76C20 floppy controller (also provides the RTC and NVRAM) and WD90C10 VGA. While the chipset supports more, the motherboard can only handle 2.5 MiB of RAM without modification.

The Mega Drive side is most similar to a MD1 VA3 or VA4, but has some important differences. The Z80 has 16 KiB of RAM instead of the normal 8 KiB and the VDP has 128 kiB instead of the normal 64 kiB. It has a discrete YM3438 instead of a YM2612 as found in other pre-VA7 MD1 systems. It has the same "fix" for incorrect status port reads as found in MD systems with an integrated YM3438, but implemented as discrete logic. For the 68K it has a 10MHz rated 68HC000 which runs at either the standard speed or 10MHz depending on the mode.

Joining the two is the IBM 79F2661 "bus switch". In addition to providing a bridge between the MD-side 68K bus and the ISA bus on the PC side, this chip also manages access to an extra 512 KiB ROM. This ROM contains a Kanji font, a ROM disk image for the boot menu and some firmware for the MD-side that implements a Teradrive specific variant of TMSS. This chip is also found in the PS/55 5510Z where it presumably is also used for Kanji ROM management.

286 Memory Map

68K Memory Map

000000 - 3FFFFF: cartridge or expansion port or PC memory or firmware
400000 - 7FFFFF: expansion port or cartridge (need to verify what happens here when PC memory or firmware is enabled at 0)
800000 - 9FFFFF: unmapped (32X)
A00000 - A07EFF: Z80 address space
A07F00 - A07FFF: freeze (Z80 VDP port window)
A08000 - A0FFFF: mirror of A00000
A10000 - A100FF: IO registers
A11000 - A110FF: memory mode register
A11100 - A111FF: Z80 BUSREQ/BUSACK
A11200 - A112FF: Z80 RESET
A11300 - A113FF: open bus
A11400 - A11FFF: unmapped (!DTACK not asserted, will freeze without additional hardware)
A12000 - A120FF: !FDC (Sega CD)
A12100 - A12FFF: unmapped (!DTACK not asserted, will freeze without additional hardware)
A13000 - A130FF: !TIME (cart mapper registers, also MARS at A130EC when a 32X is attached)
A13100 - A13FFF: unmapped (!DTACK not asserted, will freeze without additional hardware)
A14000 - A14???: TMSS lock (note this functions differently from the standard TMSS lock register)
A15100 - A153FF: normally unmapped (no !DTACK), 32X registers if 32X present
A15400 - ADFFFF: unmapped (!DTACK not asserted, will freeze without additional hardware)
AE0000 - AE????: MD-side Teradrive bus switch registers
AF0000 - AFFFFF: PC IO space (including PC-side bus switch registers)
B00000 - BFFFFF: 1 MiB window into PC address space
C00000 - DFFFFF: VDP/PSG registers (with holes)
E00000 - FFFFFF: Work RAM

PC Side Bus Switch Registers

Key: X = writeable by both CPUS, M = writeable by M68K only, R = read-only, 1 = read-only, always 1, 0 = read only, always 0

1160: XXXXXXXX
1161: 11111111
1162: 110XXXX0
1163: XXRRXXXX
1164: MXXXXXXX
1165: 0000RR0R
1166: XXXXXXX0
1167: 0000XXXX

1160:

Selects an 8 KiB page from kanji/romdisk/MD ROM (note only the upper 4 KiB of the page is visible on the MD side when MD firmware is enabled) Set to 21h when unlocking MD side and in BIOS boot Set to 0 by BIOS after initial 68K boot

1162:

Controls address of memory window in 286 address space Effectively top byte of real mode segment address or physical address >> 12 Normally initialzied from a value stored in CMOS Set to CE if value in CMOS is invalid Window is 8KiB in size and is used for both PC-side access to MD hardware and the Kanji/romdisk ROM

1163:

bit 0: Enables auxilliary ROM on 68K side bit 1: Enable 286 memory window into 68K addres space (must be clear when booting 68K) Set to 1 by BIOS and during MD unlock procedure

IC List

U1: D42264V-10 (64Kx4 dual port VRAM)
U2: Sega 315-5313/Yamaha YM7101 (MD VDP)
U3: D42264V-10 (64Kx4 dual port VRAM)
U4: Toshiba TMP68HC000N-10 (10Mhz CMOS 68000)
U5: Sega 315-5309 (MD IO)
U6: D42264V-10 (64Kx4 dual port VRAM)
U7: 74HC4066 (Quad single-pole single-throw analog switch)
U8: D42264V-10 (64Kx4 dual port VRAM)
U9: 74HC4066 (Quad single-pole single-throw analog switch)
U10: IMSG179P (VGA palette RAM/DAC)
U11: Sega 315-5364 (MD bus arbiter)
U12: Sony CXA1145 (composite video encoder)
U13: 256Kx4 DRAM (VGA video RAM)
U14: 256Kx4 DRAM (VGA video RAM)
U15: 84C00AM-6 (Z80)
U16: Western Digital WD90C61-JE (VGA dual clock generator)
U17: 74HC4066 (Quad single-pole single-throw analog switch)
U18: IBM 79F2661 (labeled BUS SW)
U19: Western Digital WD90C10-LR (VGA chipset)
U20: 79F2662 (Display Switch, branded NEC but has an IBM part number)
U21: 74F245 (Octal bus transceiver)
U22: 74HC4066 (Quad single-pole single-throw analog switch)
U23: ALS257 (Quad 2-input multiplexer with tri-state outputs)
U24: M5M5165FP-10L (8KB SRAM for Z80)
U25: 74LS14 (Hex Schmitt-Trigger inverters)
U26: 74LS508 (Quad 2-input NAND gate)
U27: 74F245 (Octal Bidirectional transceiver with tri-state outputs)
U28: Sony CXA1145 (composite video encoder)
U29: ALS240 (Octal inverter buffer)
U30: ALS138 (3 to 8-line decoder/de-multiplexer)
U31: ALS151 (1 of 8 selector/multilplexer)
U32: M5M5165FP-10L (8KB SRAM for Z80)
U33: ALS32 (Quad 2-input OR gate)
U34: AMD N80L286-10/S (286 CPU)
U35: ALS00 (Quad 2-input NAND gate)
U36: ALS273 (Octal D-Type Edge-Triggered Flip-flop)
U37: ALS373 (Octal transparent latch)
U38: HN62414FPD80 (additional firmware)
U39: ALS244A (octal buffer and line driver with 3-state outputs)
U40: ALS157 (Quad 2-input data selector/multiplexer, non-inverting)
U41: Western Digital WD76C10LP-LR (system controller)
U42: Western Digital WD76C30-JU (peripheral controller, Serial & Parallel ports)
U43: ALS373 (Octal transparent latch)
U44: Yamaha YM3438 (MD FM chip)
U45: IBM 89X8922 (128Kx4 DRAM)
U46: 27C010 (BIOS)
U47: TL7705 (Single Supply Voltage Supervisor for 5V Systems with Programmable Time Delay)
U49: 74F125D (Quad buffer tri-state)
U50: ALS04B (Hex inverter)
U51: TL431 (Three-terminal adjustable shunt regulator)
U52: IBM 89X8922 (128Kx4 DRAM)
U53: ALS245A (Octal bus transceiver)
U54: ALS04 (Quad 2-input OR gate)
U55: Intel 8042 (keyboard controller)
U56: Sony CXA1034 (Headphone amp)
U57: 74LS06 (Hex inverter)
U58: ALS32 (Quad 2-input OR gate)
U59: IBM 89X8922 (128Kx4 DRAM)
U60: Western Digital WD76C20-JU (floppy controller)
U61: LM386 (audio amplifier)
U62: ALS245A (Octal bus transceiver)
U63: NEC D4714 (RS-232 Line Driver)
U64: ALS373 (Octal transparent latch) U65: ALS244A (octal buffer and line driver with 3-state outputs)
U66: IBM 89X8922 (128Kx4 DRAM)
U67: ALS245A (Octal bus transceiver)
U68: ALS244A (octal buffer and line driver with 3-state outputs)
U69: ALS373 (Octal transparent latch)
U70: SP1?(maybe 8) (unpopulated)
U71: 32Kx8 PSRAM
U72: 32Kx8 PSRAM
U73: 74LS74 (Dual D-Type Positive-Edge triggered flip-flops)
U74: SP14 (unpopulated)
U75: SP16 (unpopulated)
U76: ALS32 (Quad 2-input OR gate)
U77: SP16 (unpopulated)
U78: SP20 (unpopulated)

Note: See TracWiki for help on using the wiki.