<?xml version="1.0" ?>
<!DOCTYPE msxconfig SYSTEM 'msxconfig2.dtd'>
<msxconfig>

  <info>
    <manufacturer>Sony</manufacturer>
    <code>HB-G900P</code>
    <release_year>1986</release_year>
    <description/>
    <type>MSX2</type>
    <!-- Note that superimpose is still missing! -->
  </info>

  <CassettePort/>

  <devices>

    <PPI id="ppi">
      <sound>
        <volume>16000</volume>
      </sound>
      <io base="0xA8" num="4"/>
      <keyboard_type>int</keyboard_type>
      <has_keypad>true</has_keypad>
    </PPI>

    <VDP id="VDP">
      <version>V9938</version>
      <vram>128</vram>
      <io base="0x98" num="4" type="O"/>
      <io base="0x98" num="2" type="I"/>
    </VDP>

    <PSG id="PSG">
      <type>AY8910</type>
      <sound>
        <volume>21000</volume>
      </sound>
      <io base="0xA0" num="2" type="O"/>
      <io base="0xA2" num="1" type="I"/>
      <ignorePortDirections>false</ignorePortDirections> <!-- not sure, but guess based on discrete PSG chip -->
    </PSG>

    <RTC id="Real time clock">
      <sramname>hb-g900p.cmos</sramname>
      <io base="0xB4" num="2" type="O"/>
      <io base="0xB5" num="1" type="I"/>
    </RTC>

    <PrinterPort id="Printer Port">
      <io base="0x90" num="2"/>
    </PrinterPort>

    <primary slot="0">

      <secondary slot="0">
        <ROM id="MSX BIOS with BASIC ROM">
          <rom>
            <sha1>0de3c802057560560a03d7965fcc4cff69f8575c</sha1>
            <filename>hb-g900p_basic-bios2.rom</filename>
          </rom>
          <mem base="0x0000" size="0x8000"/>
        </ROM>
      </secondary>

      <secondary slot="1">
        <ROM id="MSX Sub ROM">
          <rom>
            <sha1>3288894e1be6af705871499b23c85732dbc40993</sha1>
            <filename>hb-g900p_msx2sub.rom</filename>
          </rom>
          <mem base="0x0000" size="0x4000"/>
        </ROM>
        <WD2793 id="Memory Mapped FDC">
          <connectionstyle>Sony</connectionstyle>
          <motor_off_timeout_ms>4000</motor_off_timeout_ms>
          <broken_fdc_read>false</broken_fdc_read>
          <drives>1</drives>
          <rom>
            <sha1>12f2cc79b3d09723840bae774be48c0d721ec1c6</sha1>
            <filename>hb-g900p_disk.rom</filename>
          </rom>
          <mem base="0x4000" size="0x8000"/>
        </WD2793>
      </secondary>

      <secondary slot="2">
        <!-- this built in RS-232C seems to be identical to Sony HBI-232 -->
        <MSX-RS232 id="Sony MSX RS-232">
          <ram>true</ram>
          <memorybasedio>true</memorybasedio>
          <rom>
            <sha1>b2776159a7b92d74308b434a6b3e5feba161e2b7</sha1>
            <filename>hb-g900p_rs232.rom</filename>
          </rom>
          <io base="0x80" num="8"/>
          <mem base="0x0000" size="0x10000"/>
        </MSX-RS232>
      </secondary>

      <secondary slot="3">
        <ROM id="Video Utility">
          <rom>
            <sha1>8779b004e7605a3c419825f0373a5d8fa84e1d5b</sha1> <!-- Although the 2nd half of the ROM is empty, it is actually a 16kB ROM. On the HB-G900AP, the code is just a bit longer and there the first few bytes of the 2nd half are used. Also the Service Manual clearly states that it's a 16kB ROM. -->
            <filename>hb-g900p_video-utility.rom</filename>
          </rom>
          <mem base="0x4000" size="0x4000"/>
        </ROM>
      </secondary>

    </primary>

    <primary external="true" slot="1"/>

    <primary external="true" slot="2"/>

    <primary slot="3">
      <RAM id="Main RAM">
        <slow_drain_on_reset>false</slow_drain_on_reset>
        <mem base="0x0000" size="0x10000"/>
      </RAM>
    </primary>

  </devices>

</msxconfig>
