-unsigned jaguar_byte_read(unsigned int offset)
-{
- uint8 data = 0x00;
-
- offset &= 0xFFFFFF;
- if (offset < 0x400000)
-// data = (jaguar_mainRam[(offset^0x01) & 0x3FFFFF]);
- data = jaguar_mainRam[offset & 0x3FFFFF];
- else if ((offset >= 0x800000) && (offset < 0xC00000))
-// data = (jaguar_mainRom[(offset^0x01)-0x800000]);
- data = jaguar_mainRom[offset - 0x800000];
-// else if ((offset >= 0xDFFF00) && (offset < 0xDFFF00))
- else if ((offset >= 0xDFFF00) && (offset <= 0xDFFFFF))
- data = cdrom_byte_read(offset);
- else if ((offset >= 0xE00000) && (offset < 0xE40000))
-// data = (jaguar_bootRom[(offset^0x01) & 0x3FFFF]);
- data = jaguar_bootRom[offset & 0x3FFFF];
- else if ((offset >= 0xF00000) && (offset < 0xF10000))
- data = tom_byte_read(offset);
- else if ((offset >= 0xF10000) && (offset < 0xF20000))
- data = jerry_byte_read(offset);
- else
- data = jaguar_unknown_readbyte(offset);
-
- return data;
-}
-
-unsigned jaguar_word_read(unsigned int offset)
-{
- offset &= 0xFFFFFF;
- if (offset <= 0x3FFFFE)
- {
-// return (jaguar_mainRam[(offset+1) & 0x3FFFFF] << 8) | jaguar_mainRam[(offset+0) & 0x3FFFFF];
- return (jaguar_mainRam[(offset+0) & 0x3FFFFF] << 8) | jaguar_mainRam[(offset+1) & 0x3FFFFF];
- }
- else if ((offset >= 0x800000) && (offset <= 0xBFFFFE))
- {
- offset -= 0x800000;
-// return (jaguar_mainRom[offset+1] << 8) | jaguar_mainRom[offset+0];
- return (jaguar_mainRom[offset+0] << 8) | jaguar_mainRom[offset+1];
- }
-// else if ((offset >= 0xDFFF00) && (offset < 0xDFFF00))
- else if ((offset >= 0xDFFF00) && (offset <= 0xDFFFFE))
- return cdrom_word_read(offset);
- else if ((offset >= 0xE00000) && (offset <= 0xE3FFFE))
-// return *((uint16 *)&jaguar_bootRom[offset & 0x3FFFF]);
- return (jaguar_bootRom[(offset+0) & 0x3FFFF] << 8) | jaguar_bootRom[(offset+1) & 0x3FFFF];
- else if ((offset >= 0xF00000) && (offset <= 0xF0FFFE))
- return tom_word_read(offset);
- else if ((offset >= 0xF10000) && (offset <= 0xF1FFFE))
- return jerry_word_read(offset);
-
- return jaguar_unknown_readword(offset);
-}
-
-void jaguar_byte_write(unsigned offset, unsigned data)
-{
- offset &= 0xFFFFFF;
- if (offset < 0x400000)
- {
-// jaguar_mainRam[(offset^0x01) & 0x3FFFFF] = data;
- jaguar_mainRam[offset & 0x3FFFFF] = data;
- return;
- }
-// else if ((offset >= 0xDFFF00) && (offset < 0xDFFF00))
- else if ((offset >= 0xDFFF00) && (offset <= 0xDFFFFF))
- {
- cdrom_byte_write(offset, data);
- return;
- }
- else if ((offset >= 0xF00000) && (offset <= 0xF0FFFF))
- {
- tom_byte_write(offset, data);
- return;
- }
- else if ((offset >= 0xF10000) && (offset <= 0xF1FFFF))
- {
- jerry_byte_write(offset, data);
- return;
- }
-
- jaguar_unknown_writebyte(offset, data);
-}
-
-void jaguar_word_write(unsigned offset, unsigned data)
-{
- offset &= 0xFFFFFF;
-
- if (offset <= 0x3FFFFE)
- {
-// jaguar_mainRam[(offset+0) & 0x3FFFFF] = data & 0xFF;
-// jaguar_mainRam[(offset+1) & 0x3FFFFF] = (data>>8) & 0xFF;
- jaguar_mainRam[(offset+0) & 0x3FFFFF] = (data>>8) & 0xFF;
- jaguar_mainRam[(offset+1) & 0x3FFFFF] = data & 0xFF;
- return;
- }
- else if ((offset >= 0xDFFF00) && (offset <= 0xDFFFFE))
- {
- cdrom_word_write(offset, data);
- return;
- }
- else if ((offset >= 0xF00000) && (offset <= 0xF0FFFE))
- {
- tom_word_write(offset, data);
- return;
- }
- else if ((offset >= 0xF10000) && (offset <= 0xF1FFFE))
- {
- jerry_word_write(offset, data);
- return;
- }
-
- jaguar_unknown_writeword(offset, data);
-}
-
-unsigned jaguar_long_read(unsigned int offset)
-{
-/* uint32 data = jaguar_word_read(offset);
- data = (data<<16) | jaguar_word_read(offset+2);
- return data;*/
- return (jaguar_word_read(offset) << 16) | jaguar_word_read(offset+2);
-}
-
-void jaguar_long_write(unsigned offset, unsigned data)
-{
- jaguar_word_write(offset, data >> 16);
- jaguar_word_write(offset+2, data & 0xFFFF);
-}
-