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

  <info>
    <manufacturer>Frael</manufacturer>
    <code>BRUC 100 (v2)</code>
    <release_year>1988</release_year>
    <description>Second version of this Italian machine, which is mostly MSX compatible</description>
    <type>MSX</type>
    <region>it</region>
  </info>

  <!--
       The cartridge slot doesn't provide +/- 12V on pin 48/50.
       Pin 4 of the slot connector says /SLOT1
       Pin 16 of the slot connector says /SLOT2
       The cassette port is not 100% MSX compatible, the middle pin (GND)
       is missing.

       Keypad is not correctly emulated at the moment!

       Key codes of the extra keys:

       Word-> : Row-9, column-7
       Word<- : Row-9, column-6
       CUT LINE : Row-9, column-5
       END LINE : Row-10, column-0

       The diagonal keys just produce the keycodes of both two
       keys they represent, as if the two keys were pressed at
       the same time.

       The keyboard layout is international, except for the
       numpad. Those are the keys that differ from the
       standard numpad:

        -  : Row-9, column-1
        (  : Column-7 repeated on lines 10, 11, 14 and 15
        )  : Column-7 repeated on lines 10, 11, 14 and 15
        +  : Row-9, column-0
        <  : Column-5 repeated on lines 10, 11, 14 and 15
        >  : Column-4 repeated on lines 10, 11, 14 and 15
        *  : Row-9, column-2
        /  : Row-9, column-3

       All other keys of the numpad that weren't listed above
       are "fakes", which means that they in fact produce the
       same keycodes as their respective keys in the normal
       keyboard. Just like the Gradiente Expert models do for
       their numpad.
               
       CPU: SGS 8400A
       PSG: GI AY-3-8910A
  -->

  <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>
      <key_ghosting_sgc_protected>true</key_ghosting_sgc_protected>
      <code_kana_locks>false</code_kana_locks> <!-- guessed -->
      <graph_locks>false</graph_locks> <!-- guessed -->
    </PPI>

    <VDP id="VDP">
      <version>TMS9129</version> <!-- TMS9129NL -->
      <io base="0x98" num="2"/>
    </VDP>

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

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

    <primary slot="0">
      <FraelSwitchableROM id="Frael BIOS with BASIC or Firmware ROM">
        <io base="0x90" num="1" type="O"/>
        <rom id="basicbios">
          <filename>bruc100_2_basic-bios1.rom</filename>
          <sha1>88611b54cdbb79aa5380570f3dfef8b3a1cc2057</sha1> <!-- V1.2 MCL 12-88 U5 27256 EPROM confirmed by Alessandro Liberalato -->
        </rom>
        <rom id="firmware">
          <filename>bruc100_2_firmware.rom</filename>
          <sha1>85ab6946950d4e329d5703b5defcce46cd96a50e</sha1> <!-- This is the version 1.3 firmware ROM, 32kB. -->
          <sha1>f92d3aaa314808b7a9a14c40871d24f0d558ea00</sha1> <!-- This is the version 1.2 firmware ROM as dumped by Alessandro Liberalato. It is also 32kB in size and looks more like the 1.3 firmware than the 1.2/1.1 firmware below. Label: C V1.2 12-88 U8 27256 EPROM -->
          <sha1>b4c9a06054cda5fd31311a79cc06e6f018cf828f</sha1> <!-- This is the 8kB version 1.2 firmware ROM. Perhaps this is actually version 1.1 -->
        </rom>
        <mem base="0x0000" size="0x8000"/>
      </FraelSwitchableROM>
    </primary>

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

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

    <primary external="true" slot="3"/> <!-- according to the manual! -->

  </devices>

</msxconfig>
