「315-5360」の編集履歴(バックアップ)一覧に戻る

315-5360 - (2011/11/20 (日) 19:08:00) の編集履歴(バックアップ)


== 概要 ==
 315-5360はSYSTEM16,SYSTEM18などに使われているLSI。メモリマッピングなどを行う。

315-5360
imageプラグインエラー : ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (width=300<center)

== 仕様 ==


Region allocation

Like the System 16 hardware, the 315-5360 chip controls a user-definable memory map which consists of eight regions:

Region  Alien Storm     Clutch Hitter

   0    Program ROM     Program ROM (sockets ROM0-O,E)
   1    Unused          Program ROM (sockets ROM1-O,E)
   2    VDP             VDP
   3    Work RAM        Work RAM
   4    Sprite RAM      Sprite RAM
   5    Tile/Text RAM   Tile/Text RAM
   6    Color RAM       Color RAM
   7    I/O area        I/O area

Alien Storm has only one set of program ROM sockets, while Clutch Hitter has two.

Shadow Dancer is an exception; region 2 seems to be unused and region 1 is set to the VDP area at $C00000-$DFFFFF.
It doesn't use the VDP for video, but obscures the tile banking routine by storing the bank value in word 0 of VRAM and reading it back later before copying the value to I/O port H.
I don't have any information about the main or ROM board this game uses.

For both Alien Storm and Clutch Hitter, region 2 must be mapped to $C00000-$DFFFFF in order to access the VDP.
If not, writes do nothing and reads return the prefetch value. The VDP will still oprerate normally, but it's registers will be unavailable.

The I/O area is a 16K space repeatedly mirrored throughout the banks allocated to it:

   Region          I/O chip    
   offsets         offsets     Description

   $0000-$0FFF     $00-$1F     I/O chip registers and unused locations
   $1000-$1FFF     $00-$1F     I/O chip registers and unused locations
   $2000-$2FFF     $20-$3F     Video control register
   $3000-$3FFF     $20-$3F     /EXCS area

The unusal mapping is due to the I/O chip having it's A5 input from 68K A12, and some additional logic uses /FMCS and 68K A11 to divide the /FMCS area into two parts, for the video control register and expansion /CS signal.

Values written to odd bytes in the $2000-$3FFF range are stored in the video control register, explained later.
Reads return the prefetch value and do not make the latch load in the contents of the data bus.

Any expansion boards plugged into CN5 will appear at $3000-$3FFF.
This is used by the D.D. Crew I/O board.

The System 18 hardware uses the chip like so:

   Port A - 1P controls

   D7 : Joystick left (0= pressed, 1= released)
   D6 : Joystick right (0= pressed, 1= released)
   D5 : Joystick up (0= pressed, 1= released)
   D4 : Joystick down (0= pressed, 1= released)
   D3 : Button D (0= pressed, 1= released)
   D2 : Button C (0= pressed, 1= released)
   D1 : Button B (0= pressed, 1= released)
   D0 : Button A (0= pressed, 1= released)

   Port B - 2P controls

   D7 : Joystick left (0= pressed, 1= released)
   D6 : Joystick right (0= pressed, 1= released)
   D5 : Joystick up (0= pressed, 1= released)
   D4 : Joystick down (0= pressed, 1= released)
   D3 : Button D (0= pressed, 1= released)
   D2 : Button C (0= pressed, 1= released)
   D1 : Button B (0= pressed, 1= released)
   D0 : Button A (0= pressed, 1= released)

   Port C - Bidirectional I/O port

   D7 : To CN8 pin 3
   D6 : To CN8 pin 4
   D5 : To CN8 pin 5
   D4 : To CN8 pin 6
   D3 : To CN8 pin 8
   D2 : To CN8 pin 9
   D1 : To CN8 pin 10
   D0 : To CN8 pin 11

   Port C is connected to a 74LS245 whose output goes to CN8.
   The CNT0 output pin controls the DIR input of the 74LS245.

   Port D - Miscellaneous output

   D7 : ?
   D6 : To color encoder /GRAY input (0= grayscale, 1= color)
   D5 : To tilemap/sprite generator flip screen input (0= normal, 1= flip)
   D4 : To pin 2 of CN8.
   D3 : Coin lockout 2
   D2 : Coin lockout 1
   D1 : Coin meter 2 (increment counter on 0 to 1 transition)
   D0 : Coin meter 1 (increment counter on 0 to 1 transition)

   Pin 2 of CN8 is a high current output capable of driving a lamp or coin meter.
   Bit 5 enables screen flipping for the tilemap and sprite layers, it is connected to both chips.
   It and bit 6 do not affect the VDP display which is separate.

   Port E - Service / Coin inputs

   D7 : Always returns '1'
   D6 : Select Game button (0= pressed, 1= released)
   D5 : 2P start button (0= pressed, 1= released)
   D4 : 1P start button (0= pressed, 1= released)
   D3 : Service switch (0= pressed, 1= released)
   D2 : Test switch (0= pressed, 1= released)
   D1 : 1P coin meter (0= Coin inserted, 1= No coin)
   D0 : 2P coin meter (0= Coin inserted, 1= No coin)

   Port F - DIP switch #1

   D7 : Switch 8 (1= Off, 0= On)
   D6 : Switch 7 (1= Off, 0= On)
   D5 : Switch 6 (1= Off, 0= On)
   D4 : Switch 5 (1= Off, 0= On)
   D3 : Switch 4 (1= Off, 0= On)
   D2 : Switch 3 (1= Off, 0= On)
   D1 : Switch 2 (1= Off, 0= On)
   D0 : Switch 1 (1= Off, 0= On)

   Port G - DIP switch #2

   D7 : Switch 8 (1= Off, 0= On)
   D6 : Switch 7 (1= Off, 0= On)
   D5 : Switch 6 (1= Off, 0= On)
   D4 : Switch 5 (1= Off, 0= On)
   D3 : Switch 4 (1= Off, 0= On)
   D2 : Switch 3 (1= Off, 0= On)
   D1 : Switch 2 (1= Off, 0= On)
   D0 : Switch 1 (1= Off, 0= On)

   Port H - Tile banking

   D7 : Bit 3 of tile bank 2
   D6 : Bit 2 of tile bank 2
   D5 : Bit 1 of tile bank 2
   D4 : Bit 0 of tile bank 2
   D3 : Bit 3 of tile bank 1
   D2 : Bit 2 of tile bank 1
   D1 : Bit 1 of tile bank 1
   D0 : Bit 0 of tile bank 1

   Output pins (summary)

   CNT0 - To 74LS245 DIR to control direction of port C connected to CN8.
          0= Input from CN8 to port C
          1= Output from port C to CN8

   CNT1 - OR'd with tilemap chip blank screen output, goes to /BLANK input of color encoder.
          0= Screen blanked
          1= Screen shown

   CNT2 - To enable input PAL controlling VDP display enable.
          0= VDP output not shown
          1= VDP output visible

For Alien Storm, the lower three bits of each nibble select the tile ROM bank.
If bit 3 of either nibble is set, the tile bank is always 0 and the tiles flicker a little. 
Most likely this is the high order address line which is unused in the ROM board.
The bank select is from bit 12 of each word in tile RAM, and is always 0 for text layer tiles.

Tile banking doesn't work at all on Clutch Hitter, though the banking hardware seems identical; the port H outputs are fed into an always-enabled 74LS157, whose output is the tile ROM high order address bits.
The select input comes from the tilemap generator.
I have the same problem with sprites which are not shown.
The actual game itself runs fine, so there's some step I'm leaving out, apparently.

Another oddity is that CNT0 makes the screen flip, even though it is not connected to the flip screen signal and quite clearly goes to the DIR pin of the 74LS245 between port C and CN8.
This holds true for both board types. Maybe an actual mistake in the hardware? 


== リンク ==