]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/jerry.cpp
And so with this revision, we commit massive breakage. We Apologize For The Inconveni...
[virtualjaguar] / src / jerry.cpp
index bc1541f835c7bdf6a9b669e040b2a1df6d80bcd9..c564d4306147a0aa836ac4b64e42843d04f9fbda 100644 (file)
 //     F1DE00          R     xxxxxxxx xxxxxxxx   ROM_NOISE - white noise
 //     ------------------------------------------------------------
 
+#include "jerry.h"
+
+#include <string.h>                                                            // For memcpy
 //#include <math.h>
+#include "cdrom.h"
+#include "dac.h"
+#include "dsp.h"
+#include "eeprom.h"
+#include "event.h"
 #include "jaguar.h"
+#include "joystick.h"
+#include "log.h"
 #include "wavetable.h"
-#include "jerry.h"
-#include "clock.h"
 
 //Note that 44100 Hz requires samples every 22.675737 usec.
 #define NEW_TIMER_SYSTEM
 //#define JERRY_DEBUG
 
-/*static*/ uint8 * jerry_ram_8;
+/*static*/ uint8 jerry_ram_8[0x10000];
 
 //#define JERRY_CONFIG 0x4002                                          // ??? What's this ???
 
@@ -167,8 +175,8 @@ static uint32 JERRYPIT2Divider;
 static int32 jerry_timer_1_counter;
 static int32 jerry_timer_2_counter;
 
-static uint32 jerry_i2s_interrupt_divide = 8;
-static int32 jerry_i2s_interrupt_timer = -1;
+uint32 JERRYI2SInterruptDivide = 8;
+int32 JERRYI2SInterruptTimer = -1;
 uint32 jerryI2SCycles;
 uint32 jerryIntPending;
 
@@ -188,7 +196,7 @@ void JERRYI2SCallback(void);
 
 //This is only used by the old system, so once the new timer system is working this
 //should be safe to nuke.
-void jerry_i2s_exec(uint32 cycles)
+void JERRYI2SExec(uint32 cycles)
 {
 #ifndef NEW_TIMER_SYSTEM
        extern uint16 serialMode;                                               // From DAC.CPP
@@ -348,6 +356,7 @@ void JERRYI2SCallback(void)
 {
        // Why is it called this? Instead of SCLK? Shouldn't this be read from DAC.CPP???
 //Yes, it should. !!! FIX !!!
+#warning Yes, it should. !!! FIX !!!
        jerry_i2s_interrupt_divide &= 0xFF;
        // We don't have to divide the RISC clock rate by this--the reason is a bit
        // convoluted. Will put explanation here later...
@@ -402,15 +411,15 @@ void JERRYI2SCallback(void)
 }
 
 
-void jerry_init(void)
+void JERRYInit(void)
 {
 //     clock_init();
 //     anajoy_init();
-       joystick_init();
+       JoystickInit();
        DACInit();
 //This should be handled with the cart initialization...
 //     eeprom_init();
-       memory_malloc_secure((void **)&jerry_ram_8, 0x10000, "JERRY RAM/ROM");
+//     memory_malloc_secure((void **)&jerry_ram_8, 0x10000, "JERRY RAM/ROM");
        memcpy(&jerry_ram_8[0xD000], wave_table, 0x1000);
 
        JERRYPIT1Prescaler = 0xFFFF;
@@ -419,12 +428,12 @@ void jerry_init(void)
        JERRYPIT2Divider = 0xFFFF;
 }
 
-void jerry_reset(void)
+void JERRYReset(void)
 {
 //     clock_reset();
 //     anajoy_reset();
-       joystick_reset();
-       eeprom_reset();
+       JoystickReset();
+       EepromReset();
        JERRYResetI2S();
        DACReset();
 
@@ -437,20 +446,20 @@ void jerry_reset(void)
        jerry_timer_2_counter = 0;
 }
 
-void jerry_done(void)
+void JERRYDone(void)
 {
        WriteLog("JERRY: M68K Interrupt control ($F10020) = %04X\n", GET16(jerry_ram_8, 0x20));
-       memory_free(jerry_ram_8);
+//     memory_free(jerry_ram_8);
 //     clock_done();
 //     anajoy_done();
-       joystick_done();
+       JoystickDone();
        DACDone();
-       eeprom_done();
+       EepromDone();
 }
 
 bool JERRYIRQEnabled(int irq)
 {
-       // Read the word @ $F10020 
+       // Read the word @ $F10020
        return jerry_ram_8[0x21] & (1 << irq);
 }
 
@@ -531,10 +540,10 @@ WriteLog("JERRY: Unhandled timer read (BYTE) at %08X...\n", offset);
 //     else if (offset >= 0xF17C00 && offset <= 0xF17C01)
 //             return anajoy_byte_read(offset);
        else if (offset >= 0xF14000 && offset <= 0xF14003)
-               return joystick_byte_read(offset) | eeprom_byte_read(offset);
+               return JoystickReadByte(offset) | EepromReadByte(offset);
        else if (offset >= 0xF14000 && offset <= 0xF1A0FF)
-               return eeprom_byte_read(offset);
-       
+               return EepromReadByte(offset);
+
        return jerry_ram_8[offset & 0xFFFF];
 }
 
@@ -598,11 +607,11 @@ WriteLog("JERRY: Unhandled timer read (WORD) at %08X...\n", offset);
 //     else if ((offset >= 0xF17C00) && (offset <= 0xF17C01))
 //             return anajoy_word_read(offset);
        else if (offset == 0xF14000)
-               return (joystick_word_read(offset) & 0xFFFE) | eeprom_word_read(offset);
+               return (JoystickReadWord(offset) & 0xFFFE) | EepromReadWord(offset);
        else if ((offset >= 0xF14002) && (offset < 0xF14003))
-               return joystick_word_read(offset);
+               return JoystickReadWord(offset);
        else if ((offset >= 0xF14000) && (offset <= 0xF1A0FF))
-               return eeprom_word_read(offset);
+               return EepromReadWord(offset);
 
 /*if (offset >= 0xF1D000)
        WriteLog("JERRY: Reading word at %08X [%04X]...\n", offset, ((uint16)jerry_ram_8[(offset+0)&0xFFFF] << 8) | jerry_ram_8[(offset+1)&0xFFFF]);//*/
@@ -650,9 +659,9 @@ void JERRYWriteByte(uint32 offset, uint8 data, uint32 who/*=UNKNOWN*/)
        }
        // LTXD/RTXD/SCLK/SMODE $F1A148/4C/50/54 (really 16-bit registers...)
        else if (offset >= 0xF1A148 && offset <= 0xF1A157)
-       { 
+       {
                DACWriteByte(offset, data, who);
-               return; 
+               return;
        }
        else if (offset >= 0xF10000 && offset <= 0xF10007)
        {
@@ -713,13 +722,13 @@ WriteLog("JERRY: (68K int en/lat - Unhandled!) Tried to write $%02X to $%08X!\n"
        }*/
        else if ((offset >= 0xF14000) && (offset <= 0xF14003))
        {
-               joystick_byte_write(offset, data);
-               eeprom_byte_write(offset, data);
+               JoystickWriteByte(offset, data);
+               EepromWriteByte(offset, data);
                return;
        }
        else if ((offset >= 0xF14000) && (offset <= 0xF1A0FF))
        {
-               eeprom_byte_write(offset, data);
+               EepromWriteByte(offset, data);
                return;
        }
 
@@ -764,13 +773,13 @@ void JERRYWriteWord(uint32 offset, uint16 data, uint32 who/*=UNKNOWN*/)
 #endif
 
                DACWriteWord(offset, data, who);
-               return; 
+               return;
        }
        // LTXD/RTXD/SCLK/SMODE $F1A148/4C/50/54 (really 16-bit registers...)
        else if (offset >= 0xF1A148 && offset <= 0xF1A156)
-       { 
+       {
                DACWriteWord(offset, data, who);
-               return; 
+               return;
        }
        else if (offset >= 0xF10000 && offset <= 0xF10007)
        {
@@ -818,13 +827,13 @@ WriteLog("JERRY: (68K int en/lat - Unhandled!) Tried to write $%04X to $%08X!\n"
        }*/
        else if (offset >= 0xF14000 && offset < 0xF14003)
        {
-               joystick_word_write(offset, data);
-               eeprom_word_write(offset, data);
+               JoystickWriteWord(offset, data);
+               EepromWriteWord(offset, data);
                return;
        }
        else if (offset >= 0xF14000 && offset <= 0xF1A0FF)
        {
-               eeprom_word_write(offset, data);
+               EepromWriteWord(offset, data);
                return;
        }