ECB Sprite Color Graphics

Video Display Interface Board

The Sprite Color Graphics (SCG) board provides Sprite and Color Graphics from the TMS9918 Video Display Processor and sound from the AY-3-8910 Programmable Sound Generator chip. It is meant as a supplemental display for games and multimedia presentation. The board supports two joysticks and paddles.

Hardware Documentation

Current Version: “002”

Board: scg-002_board.pdf

Schematic: scg-002_schematic.pdf

Manufacturing Files: Gerber files were not on old wiki.

KiCAD Files: ecb_scg-002.zip

For information on prior board versions, see the Legacy Wiki SCG Folder.

Build Information

Parts List

Board Construction

  • Earlier runs of this board required a patch for sound to work. This patch is documented in the Legacy Wiki SCG Folder.
  • Install either Q3 or P2, but not both. These are mutually exclusive options for the video amplifier circuit.
  • Crystal X2 must be parallel resonant.
  • The TMS9918 video controller is sensitive to CPU clock speeds. In general, I have found all software posted here to function well at 4MHz. Higher CPU speeds may or may not work.
  • Joystick interface is digital. The up, down, left, right, and button switches should be normally open and shorted to ground to activate. An Atari 2600 joystick can be readily adapted. PC-style game controllers use potentiometers for up/down and left/right and are therefore not appropriate.

Errata

  • Per John Coffman, the I/O select circuit on this board is qualified only by IORQ# (low). It should be further qualified by M1# (high). The board will erroneously select on an Interrupt Acknowledge (IORQ# low, M1# low).

Board Configuration

The default SCG board ID has been changed from 0x50 to 0x98. All of the software posted below has been updated for the new board ID. Please ensure your board has been configured for the new board ID if you use any of the software below.

J20: Board ID / Base I/O Address

  1-2:   0x80
* 3-4:   0x40
* 5-6:   0x20
  7-8:   0x10
  9-10:  0x08

The base i/o address is determined by shorting the pins listed above such that the additive value of the unshorted pins is equal to the desired address. So, for the default base port address of 0x98, you would short pins 3-4 and 5-6. Pins 1-2, 7-8, and 9-10 would remain open.

J5: Sound Config

  1-2: All channels merged onto channel C
  3-4: All channels merged onto channel A

The sound chip drives a total of three audio channels (A-C). The center channel (B) is hard-wired to mix it's output into channels A & C (left & right). If you want to bridge all three channels to produce monophonic output, you can short pins 1-2 and/or 3-4.

  5-7:  Audio Oscillator / 8
  7-9:  Audio Oscillator / 2
* 6-8:  Audio Oscillator
  8-10: Audio Oscillator / 4

You must short one (and only one) set of pins above. These pins allow scaling the audio chip oscillator input. The default configuration is no scaling with an osciallator frequency of 2.0MHz which is the maximum frequency allowed by the AT-3-8910 chip.

JP1: TEST2 Enable

Shorting 1-2 will ground the TEST2 pin of the sound controller, otherwise the pin will be disconnected. You would normally leave this jumper open. Refer to AY-3-8910 datasheet.

J21: Interrupt Enable

Shorting J21 will enable vertical blanking interrupts to the /INT line of the host CPU. You would generally leave this jumper open unless the software being used needs it. Note that the MSX software requires this jumper to be shorted.

J1: Video Output

  1:  External VDP Input
  2:  External VDP Input Sync Input
  3:  Color Burst Freq Clock Output
  4:  /SYNTMS???
  5:  Composite Video Output
  6:  +5V
  7:  Ground
  8:  Composite Video Output (amplified)
  9:  Ground
  10: Composite Video Output (amplified)

J18: Joystick A

  1:  Up
  2:  Button 1
  3:  Down
  4:  +5V
  5:  Left
  6:  Ground
  7:  Right
  8:  Botton 3
  9:  Button 2
  10: +5V

J19: Joystick B

  1:  Up
  2:  Button 1
  3:  Down
  4:  +5V
  5:  Left
  6:  Ground
  7:  Right
  8:  Botton 3
  9:  Button 2
  10: +5V

P1: Video Output (RCA)

  1:  Composite Video Output
  2:  Ground

J9: Audio Output

  1:  +5V
  2:  +5V
  3:  Right Channel Audio
  4:  No Connect
  5:  Ground
  6:  No Connect
  7:  Ground
  8:  ACR5 General Purpose TTL Output
  9:  Left Channel Audio
  10: Ground

RV12: Left Channel Audio Output Volume

RV9: Right Channel Audio Output Volume

Notes on Operation

The SCG board is not intended to be a general purpose terminal controller like the VDU, CVDU, and VGA3 boards. It does not have a keyboard interface and text output is limited to 40 characters per row. So, the typical way to use the board would be to add it to an existing system already running CP/M (RomWBW, UNA, etc.) and then run programs that utilize the graphics and sounds capabilities of the board. The MSX games and programs described below do exactly this. You start your system in normal CP/M, then run the MSX game/program desired.

Note that RomWBW (v2.8.5 and above) does provide support for text output to this board (assuming you have enabled TMS support). The board is accessed as the CRT device, so sending output to CRT: will work. However, it is not possible to read from the CRT: device because the board has no text input capability. It is not necessary to have the TMS driver enabled in RomWBW to launch the MSX software – the MSX emulator below includes it's own driver for the board.

MSX Programs

Note that the SBCV2 with the SCG card is not 100% MSX compatible. That said, there is enough compatibility and enough flexibility built into the MSX BIOS that some cartridge ROMS will work fairly well. In the zip file there is a selection of MSX cartridge images that do work with the SBCV2 and SCG card, but please make note of the following:

  • The MSX computer is clocked from the TMS9918 chip and not a separate oscillator, so timing will be off and this may cause glitches and odd behavior (moon patrol is a good example)
  • The Keyboard on the MSX is entirely different from the way the keyboard works on the SBC, and although some work has been done to make the serial keyboard functional, it does not typically work – so a joystick is almost always required
  • I have not personally verified all of these images, so if one is found that is supposed to work but does not (or is not supposed to work, but does), please note that on the wiki (or better yet, fix it!!)
  • The work done on the SCG MSX CBIOS was really more of a proof of concept – so it is not really “fully baked”, the “Home Computer” aka N8, is in a much better state.
  • Note that the Video Interrupt MUST BE ENABLED (J21 shorted) for any of the MSX software to run!!
  • There is no mechanism to “return” to CP/M once you have launched an MSX application. You will need to perform a hardware reset.

Demonstration Videos

File List

FilenameFilesizeLast modified
ay-test.zip6.2 KiB2017/10/09 14:47
ecb_scg-002.zip137.4 KiB2017/10/05 22:45
scg-002-bom.pdf383.5 KiB2017/10/05 22:54
scg-002-bom.xlsx19.8 KiB2017/10/05 22:45
scg-002_board.pdf4.3 MiB2017/10/05 22:45
scg-002_schematic.pdf258.4 KiB2017/10/05 22:45
scgmsxstuff.zip9.4 MiB2017/10/07 13:06
tms9918-test.zip11.2 KiB2017/10/08 15:01
boards/ecb/scg/start.txt · Last modified: 2017/10/20 01:49 by wwarthen
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0