Exemple #1
0
 public static void MWriteWord_lhb(int address, short value)
 {
     address &= 0xffffff;
     if (address >= 0x010000 && address + 1 <= 0x010001)
     {
         lhb_okibank_w((ushort)value);
     }
     else if (address >= 0x100000 && address + 1 <= 0x103fff)
     {
         int offset = address - 0x100000;
         Generic.generic_nvram[offset]     = (byte)(value >> 8);
         Generic.generic_nvram[offset + 1] = (byte)value;
     }
     else if (address >= 0x200000 && address + 1 <= 0x200fff)
     {
         int offset = (address - 0x200000) / 2;
         priority_ram[offset] = (ushort)value;
     }
     else if (address >= 0x300000 && address + 1 <= 0x3fffff)
     {
         int offset = (address - 0x300000) / 2;
         igs011_layers_w(offset, (ushort)value);
     }
     else if (address >= 0x400000 && address + 1 <= 0x401fff)
     {
         int offset = (address - 0x400000) / 2;
         igs011_palette(offset, (ushort)value);
     }
     else if (address >= 0x600000 && address + 1 <= 0x600001)
     {
         OKI6295.okim6295_data_0_lsb_w((byte)value);
     }
     else if (address >= 0x700002 && address + 1 <= 0x700003)
     {
         lhb_inputs_w((ushort)value);
     }
     else if (address >= 0x820000 && address + 1 <= 0x820001)
     {
         igs011_priority_w((ushort)value);
     }
     else if (address >= 0x838000 && address + 1 <= 0x838001)
     {
         lhb_irq_enable_w((ushort)value);
     }
     else if (address >= 0x840000 && address + 1 <= 0x840001)
     {
         igs_dips_w((ushort)value);
     }
     else if (address >= 0x858000 && address + 1 <= 0x858001)
     {
         igs011_blit_x_w((ushort)value);
     }
     else if (address >= 0x858800 && address + 1 <= 0x858801)
     {
         igs011_blit_y_w((ushort)value);
     }
     else if (address >= 0x859000 && address + 1 <= 0x859001)
     {
         igs011_blit_w_w((ushort)value);
     }
     else if (address >= 0x859800 && address + 1 <= 0x859801)
     {
         igs011_blit_h_w((ushort)value);
     }
     else if (address >= 0x85a000 && address + 1 <= 0x85a001)
     {
         igs011_blit_gfx_lo_w((ushort)value);
     }
     else if (address >= 0x85a800 && address + 1 <= 0x85a801)
     {
         igs011_blit_gfx_hi_w((ushort)value);
     }
     else if (address >= 0x85b000 && address + 1 <= 0x85b001)
     {
         igs011_blit_flags_w((ushort)value);
     }
     else if (address >= 0x85b800 && address + 1 <= 0x85b801)
     {
         igs011_blit_pen_w((ushort)value);
     }
     else if (address >= 0x85c000 && address + 1 <= 0x85c001)
     {
         igs011_blit_depth_w((ushort)value);
     }
 }
Exemple #2
0
 public static void MWriteWord(int address, short value)
 {
     address &= 0xffffff;
     if (address >= 0x100000 && address + 1 <= 0x103fff)
     {
         int offset = address - 0x100000;
         Generic.generic_nvram[offset]     = (byte)(value >> 8);
         Generic.generic_nvram[offset + 1] = (byte)value;
     }
     else if (address >= 0x200000 && address + 1 <= 0x200fff)
     {
         int offset = (address - 0x200000) / 2;
         priority_ram[offset] = (ushort)value;
     }
     else if (address >= 0x400000 && address + 1 <= 0x401fff)
     {
         int offset = (address - 0x400000) / 2;
         igs011_palette(offset, (ushort)value);
     }
     else if (address >= 0x600000 && address + 1 <= 0x600001)
     {
         OKI6295.okim6295_data_0_lsb_w((byte)value);
     }
     else if (address >= 0x700000 && address + 1 <= 0x700001)
     {
         igs_YM3812_control_port_0_w((byte)value);
     }
     else if (address >= 0x700002 && address + 1 <= 0x700003)
     {
         igs_YM3812_write_port_0_w((byte)value);
     }
     else if (address >= 0x800000 && address + 1 <= 0x800003)
     {
         int offset = (address - 0x800000) / 2;
         drgnwrld_igs003_w(offset, (ushort)value);
     }
     else if (address >= 0xa20000 && address + 1 <= 0xa20001)
     {
         igs011_priority_w((ushort)value);
     }
     else if (address >= 0xa40000 && address + 1 <= 0xa40001)
     {
         igs_dips_w((ushort)value);
     }
     else if (address >= 0xa58000 && address + 1 <= 0xa58001)
     {
         igs011_blit_x_w((ushort)value);
     }
     else if (address >= 0xa58800 && address + 1 <= 0xa58801)
     {
         igs011_blit_y_w((ushort)value);
     }
     else if (address >= 0xa59000 && address + 1 <= 0xa59001)
     {
         igs011_blit_w_w((ushort)value);
     }
     else if (address >= 0xa59800 && address + 1 <= 0xa59801)
     {
         igs011_blit_h_w((ushort)value);
     }
     else if (address >= 0xa5a000 && address + 1 <= 0xa5a001)
     {
         igs011_blit_gfx_lo_w((ushort)value);
     }
     else if (address >= 0xa5a800 && address + 1 <= 0xa5a801)
     {
         igs011_blit_gfx_hi_w((ushort)value);
     }
     else if (address >= 0xa5b000 && address + 1 <= 0xa5b001)
     {
         igs011_blit_flags_w((ushort)value);
     }
     else if (address >= 0xa5b800 && address + 1 <= 0xa5b801)
     {
         igs011_blit_pen_w((ushort)value);
     }
     else if (address >= 0xa5c000 && address + 1 <= 0xa5c001)
     {
         igs011_blit_depth_w((ushort)value);
     }
 }
Exemple #3
0
 public static void MWriteByte_lhb(int address, sbyte value)
 {
     address &= 0xffffff;
     if (address >= 0x010000 && address <= 0x010001)
     {
         if ((address & 1) == 0)
         {
             lhb_okibank_w((byte)value);
         }
     }
     else if (address >= 0x100000 && address <= 0x103fff)
     {
         int offset = address - 0x100000;
         Generic.generic_nvram[offset] = (byte)value;
     }
     else if (address >= 0x200000 && address <= 0x200fff)
     {
         int offset = (address - 0x200000) / 2;
         if ((address & 1) == 0)
         {
             priority_ram[offset] = (ushort)((value << 8) | (priority_ram[offset] & 0xff));
         }
         else if ((address & 1) == 1)
         {
             priority_ram[offset] = (ushort)((priority_ram[offset] & 0xff00) | (byte)value);
         }
     }
     else if (address >= 0x300000 && address <= 0x3fffff)
     {
         int offset = address - 0x300000;
         igs011_layers_w(offset, (byte)value);
     }
     else if (address >= 0x400000 && address <= 0x401fff)
     {
         int offset = address - 0x400000;
         igs011_palette(offset, (byte)value);
     }
     else if (address >= 0x600000 && address <= 0x600001)
     {
         if (address == 0x600001)
         {
             OKI6295.okim6295_data_0_lsb_w((byte)value);
         }
     }
     else if (address >= 0x700002 && address <= 0x700003)
     {
         int offset = address - 0x700002;
         lhb_inputs_w(offset, (byte)value);
     }
     else if (address >= 0x820000 && address <= 0x820001)
     {
         int offset = address - 0x820000;
         igs011_priority_w(offset, (byte)value);
     }
     else if (address >= 0x838000 && address <= 0x838001)
     {
         int offset = address - 0x838000;
         lhb_irq_enable_w(offset, (byte)value);
     }
     else if (address >= 0x840000 && address <= 0x840001)
     {
         int offset = address - 0x840000;
         igs_dips_w(offset, (byte)value);
     }
     else if (address >= 0x858000 && address <= 0x858001)
     {
         int offset = address - 0x858000;
         igs011_blit_x_w(offset, (byte)value);
     }
     else if (address >= 0x858800 && address <= 0x858801)
     {
         int offset = address - 0x858800;
         igs011_blit_y_w(offset, (byte)value);
     }
     else if (address >= 0x859000 && address <= 0x859001)
     {
         int offset = address - 0x859000;
         igs011_blit_w_w(offset, (byte)value);
     }
     else if (address >= 0x859800 && address <= 0x859801)
     {
         int offset = address - 0x859800;
         igs011_blit_h_w(offset, (byte)value);
     }
     else if (address >= 0x85a000 && address <= 0x85a001)
     {
         int offset = address - 0x85a000;
         igs011_blit_gfx_lo_w(offset, (byte)value);
     }
     else if (address >= 0x85a800 && address <= 0x85a801)
     {
         int offset = address - 0x85a800;
         igs011_blit_gfx_hi_w(offset, (byte)value);
     }
     else if (address >= 0x85b000 && address <= 0x85b001)
     {
         int i1 = 1;
         //igs011_blit_flags_w((byte)value);
     }
     else if (address >= 0x85b800 && address <= 0x85b801)
     {
         int offset = address - 0x85b800;
         igs011_blit_pen_w(offset, (byte)value);
     }
     else if (address >= 0x85c000 && address <= 0x85c001)
     {
         int offset = address - 0x85c000;
         igs011_blit_depth_w(offset, (byte)value);
     }
 }