Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
boards:ecb:scg:start [2017/10/10 16:09]
wwarthen [Introduction]
boards:ecb:scg:start [2021/11/29 08:45] (current)
b1ackmai1er
Line 1: Line 1:
-====== ECB Sprite Color Graphics ======+ <font 20px/inherit;;inherit;;inherit>Video Display Interface Board</font>
  
-<font 20px/inherit;;inherit;;inherit>Video Display Interface Board</font>+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.
  
 {{:boards:ecb:scg:photos:dscn7452.jpg?nolink&640}} {{:boards:ecb:scg:photos:dscn7452.jpg?nolink&640}}
- 
- 
-===== Introduction ===== 
- 
-The Sprite Color Graphics (SCG) board is meant to provide Sprite and Color Graphics from the TMS9918 Video Display Processor and Sound from the AY-3-8910 audio chip. It is meant as a supplemental display for games and multimedia presentation. The board supports joystick and paddles. 
- 
  
 ===== Hardware Documentation ===== ===== Hardware Documentation =====
  
-Current Version: "002"+Current Version: "003".
  
-{{:boards:ecb:scg:scg-002_board.pdf|Board: scg-002_board.pdf}}+{{:boards:ecb:scg:scg-003_kicad.zip|:boards:ecb:scg:scg-003_kicad.zip}}
  
-{{:boards:ecb:scg:scg-002_schematic.pdf|Schematic: scg-002_schematic.pdf}}+{{:boards:ecb:scg:scg-003_gerbers.zip|:boards:ecb:scg:scg-003_gerbers.zip}}
  
-Manufacturing Files: [[https://www.retrobrewcomputers.org/lib/exe/fetch.php?tok=80edec&media=https://www.retrobrewcomputers.org/lib/images/smileys/fixme.gif|{{https://www.retrobrewcomputers.org/lib/images/smileys/fixme.gif?direct&}}]]Gerber files were not on old wiki{{https://www.retrobrewcomputers.org/lib/images/smileys/fixme.gif?nolink&}}+Please see [[:boards:ecb:scg:changes|Changes Errata]] section for details on previous versions and in particular, information on modifying the SCG board to work in Kontron reset configuration.
  
-{{:boards:ecb:scg:ecb_scg-002.zip|KiCAD Files: ecb_scg-002.zip}}+===== Acknowledgments =====
  
-For information on prior board versions, see the [[https://retrobrewcomputers.org/n8vem-pbwiki-archive/0/35845334/48860720/33053543/index.htm|Legacy Wiki SCG Folder]].+The ECB-SCG was developed by Tom LeMense and Dan Werner.
  
 ===== Build Information ===== ===== Build Information =====
Line 33: Line 27:
 {{:boards:ecb:scg:scg-002-bom.xlsx|Parts List - XLS}} {{:boards:ecb:scg:scg-002-bom.xlsx|Parts List - XLS}}
  
-==== Board Construction ====+The TMS9918 is an NTSC format chip. A PAL version of this chip is available (TMS9928A) but it is not totally compatible per the following from the datasheet.
  
-  * Earlier runs of this board required a patch for sound to work This patch is documented in the [[https://retrobrewcomputers.org/n8vem-pbwiki-archive/0/35845334/48860720/33053543/index.htm|Legacy Wiki SCG Folder]]. +"The TMS9928A/9929A VDP's are functionally identical to the TMS9918A except that the NTSC color encoding circuitry has been removed and replaced with luminance and color difference signalsThe TMS9918A is pin-for pin compatible with the TMS9928A/9929Aexcept for three pins, the composite video output, the external video input and the CPU clock outputThese pins are replaced with the Black,White luminance and composite sync (Y) output and two color difference pinsBlue (B-Y), and Red (R-Y) outputs, respectivelyThe color difference outputs allow the user to generate Red-Green-Blue (R-G-B) drive for direct color gun control, or composite video for use with NTSC or PAL video color monitorHowever, to connect these three outputs to R-G-B or monitor requires additional R-G-B or encoder circuity"
-  * Install **either** Q3 **or** P2but 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 generalI have found all software posted here to function well at 4MHz.  Higher CPU speeds may or may not work. +
-  * Joystick interface is digital.  The updown, 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 ====+So maybe that is something for the next iteration… 
 + 
 +From Adam Dewis: "It turns out 9128/9118s and such designed with 4-Bit DRAM have bidirectional data pins instead of the multiplexed address/data out and data-in bus on the 9918 which (necessitated by 1-bit DRAMs having separate data in and out pins). After going cross eyed at the schematics for a while I noticed U9 latches data out onto the SRAMs bidir data bus. As the 9128 is also bidir this latch isn't needed if you substitute a TMS9118/9128 chip. I thought I would pass this along as it is not mentioned on the wiki, it took me a fair amount of digging to locate this information, and other than some characters being repeated in text mode these the TMS9128 appears to be an acceptable substitute for the TMS9918." 
 + 
 +A 2Mhz crystal is specified for the sound chip clock but on board dividers can be configured to use a higher frequency crystal. Also common serial and colour burst frequency crystals can be used depending on your need for frequency accuracy and compatibility. 
 + 
 +Low cost LM386 based amplifier boards can be use to finalize the sound output and can be found very cheaply on alibaba.com. 
 + 
 +Capacitors C7 and C45 are not critical values and 33uF or 47uF should work as well. 
 + 
 +==== Board Construction ====
  
-  * 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# lowM1# low).+  * Install **either**  Q3 **or**  P2but not both. These are mutually exclusive options for the video amplifier circuit. 
 +  * Crystal X2 **must**  be parallel resonantInstallation of a series resonant crystal will result in the video controller chip running at the wrong frequency and colours may not be displayed correctly. 
 +  The TMS9918 video controller is sensitive to CPU clock speeds. In generalI have found all software posted here to function well at 4MHz. Higher CPU speeds may or may not work. It is normal for the TMS9918 chip to run quite hot. 
 +  * 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.
  
 ==== Board Configuration ==== ==== Board Configuration ====
  
-<note>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.</note>+<note>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.</note>
  
 **J20: Board ID / Base I/O Address** **J20: Board ID / Base I/O Address**
 +<code>
  
-    1-2:   0x80 +  1-2:   0x80 
-  * 3-4:   0x40 +* 3-4:   0x40 
-  * 5-6:   0x20 +* 5-6:   0x20 
-    7-8:   0x10 +  7-8:   0x10 
-    9-10:  0x08+  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.+</code> 
 + 
 +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** **J5: Sound Config**
  
-    1-2: Third sound channel mixed with "left" channel +<code> 
-    3-4: Third sound channel mixed "right" channel+  1-2: All channels merged onto channel C 
 +  3-4: All channels merged onto channel A
  
-You may leave all pins disconnected and the third sound channel will not be output.  If you short both 1-2 and 3-4, all channels will be mixed for monophonic output.+</code>
  
-    5-7:  Audio Oscillator / 8 +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.
-    7-9:  Audio Oscillator +
-  * 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.+<code> 
 +  6-8:  Audio Oscillator / 1 
 +* 5-7:  Audio Oscillator / 2 
 +  8-10: Audio Oscillator / 4 
 +  7-9:  Audio Oscillator / 8 
 + 
 +(Corrected 29/11/2021) 
 + 
 +</code> 
 + 
 +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 oscillator frequency of 2.0MHz which is the maximum frequency allowed by the AY-3-8910 chip. Incorrect setting of the oscillator frequency will result in distorted sound output.
  
 **JP1: TEST2 Enable** **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.+Shorting 1-2 will ground the TEST2 pin of the sound controller, otherwise the pin will be disconnected. This jumper is normally left open as the AY-3-8910 datasheet does not document the functionality of the test configuration. However the YM2149 which is compatible with the AY-3-8910 uses Pin 26 to divide the master clock by two when pulled low.
  
 **J21: Interrupt Enable** **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.+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** **J1: Video Output**
  
-    1:  External VDP Input +<code> 
-    2:  External VDP Input Sync Input +  1:  External VDP Input 
-    3:  Color Burst Freq Clock Output +  2:  External VDP Input Sync Input 
-    4:  /SYNTMS??? +  3:  Color Burst Freq Clock Output 
-    5:  Composite Video Output +  4:  /SYNTMS??? 
-    6:  +5V +  5:  Composite Video Output 
-    7:  Ground +  6:  +5V 
-    8:  Composite Video Output (amplified) +  7:  Ground 
-    9:  Ground +  8:  Composite Video Output (amplified) 
-    10: Composite Video Output (amplified)+  9:  Ground 
 +  10: Composite Video Output (amplified) 
 + 
 +</code>
  
 **J18: Joystick A** **J18: Joystick A**
  
-    1:  Up +<code> 
-    2:  Button 1 +  1:  Up 
-    3:  Down +  2:  Button 1 
-    4:  +5V +  3:  Down 
-    5:  Left +  4:  +5V 
-    6:  Ground +  5:  Left 
-    7:  Right +  6:  Ground 
-    8:  Botton 3 +  7:  Right 
-    9:  Button 2 +  8:  Botton 3 
-    10: +5V+  9:  Button 2 
 +  10: +5V 
 + 
 +</code>
  
 **J19: Joystick B** **J19: Joystick B**
  
-    1:  Up +<code> 
-    2:  Button 1 +  1:  Up 
-    3:  Down +  2:  Button 1 
-    4:  +5V +  3:  Down 
-    5:  Left +  4:  +5V 
-    6:  Ground +  5:  Left 
-    7:  Right +  6:  Ground 
-    8:  Botton 3 +  7:  Right 
-    9:  Button 2 +  8:  Botton 3 
-    10: +5V+  9:  Button 2 
 +  10: +5V 
 + 
 +</code>
  
 **P1: Video Output (RCA)** **P1: Video Output (RCA)**
-    1:  Composite Video Output + 
-    2:  Ground +<code> 
-    +  1:  Composite Video Output 
 +  2:  Ground 
 + 
 +</code> 
 **J9: Audio Output** **J9: Audio Output**
  
-    1:  +5V +<code> 
-    2:  +5V +  1:  +5V 
-    3:  Right Channel Audio +  2:  +5V 
-    4:  No Connect +  3:  Right Channel Audio 
-    5:  Ground +  4:  No Connect 
-    6:  No Connect +  5:  Ground 
-    7:  Ground +  6:  No Connect 
-    8:  ACR5 General Purpose TTL Output +  7:  Ground 
-    9:  Left Channel Audio +  8:  ACR5 General Purpose TTL Output 
-    10: Ground+  9:  Left Channel Audio 
 +  10: Ground 
 + 
 +</code>
  
 **RV12: Left Channel Audio Output Volume** **RV12: Left Channel Audio Output Volume**
  
-**RV9: Right Channel Audio Output Volume**+**RV9: Right Channel Audio Output Volume**<note>The left channel and right channel trimpot's are wired in reverse direction and will need to be set at different positions for equal sound levels on each channel.</note>
  
-==== Notes on Operation ====+====== 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. 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 abovedoes 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.+RomWBW (v2.8.5+provides support for text output to this board when TMS support is enabled. The board is accessed as the CRT device, so sending output to CRT: will work.
  
 +<code>
 +B>PIP CRT:=A:TEXTFILE.TXT
 +
 +</code>
 +
 +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.
 +
 +==== Test Software ====
 +
 +Two programs are available to test basic video operation of the card in the {{:boards:ecb:scg:tms9918-test.zip|tms9918-test}}  package. Refer to images below.
 +
 +HW9918.COM will display the "HELLO WORLD" text on the screen.
 +
 +TSTSPR.COM will display sprites and allow background colour changes.
 +
 +Sound functionality can be tested with the {{:boards:ecb:scg:ay-test.zip|ay-test}}  package.
 +
 +AY-TEST.COM will output a descending tone to each sound channel.
  
 ==== MSX Programs ==== ==== MSX Programs ====
Line 152: Line 200:
 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: 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 MSX computer is clocked from the TMS9918 chip (3.579545MHz) 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 AY-3-8910 has a maximum clock rate of 2Mhz, so the MSX sound chip uses half the clock rate i.e. 1.7897725MHz.
   * 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   * 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!!)   * 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.   * 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!!   * 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.+  * There is no mechanism to "return" to CP/M once you have launched an MSX application. You will need to perform a hardware reset. 
 + 
 +==== Sound Programs ==== 
 + 
 +The AY-3-8910 is a widely supported sound chip and there is a large library of sound files that can be played on this board. Included in ROMWBW is a sound file player called TUNE which can play Protracker 2/3 and .MYM format PSG files and a collection of demonstration files. 
 + 
 +See here for more : [[https://zxart.ee/eng/music/|https://zxart.ee/eng/music/]] 
 + 
 +Download a sample Chip Tune pack here : {{:boards:ecb:scg:ctpack01.zip|:boards:ecb:scg:ctpack01.zip}}
  
 ===== Photo Gallery ===== ===== Photo Gallery =====
boards/ecb/scg/start.1507666170.txt.gz · Last modified: 2017/10/10 16:09 by wwarthen
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0