mirror of
https://github.com/melonDS-emu/melonDS.git
synced 2025-07-23 06:10:03 -06:00
minor cleanup
This commit is contained in:
33
src/RTC.cpp
33
src/RTC.cpp
@ -16,9 +16,6 @@
|
|||||||
with melonDS. If not, see http://www.gnu.org/licenses/.
|
with melonDS. If not, see http://www.gnu.org/licenses/.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Required by MinGW to enable localtime_r in time.h
|
|
||||||
#define _POSIX_THREAD_SAFE_FUNCTIONS
|
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "NDS.h"
|
#include "NDS.h"
|
||||||
#include "RTC.h"
|
#include "RTC.h"
|
||||||
@ -112,6 +109,11 @@ u8 BCD(u8 val)
|
|||||||
return (val % 10) | ((val / 10) << 4);
|
return (val % 10) | ((val / 10) << 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u8 FromBCD(u8 val)
|
||||||
|
{
|
||||||
|
return (val & 0xF) + ((val >> 4) * 10);
|
||||||
|
}
|
||||||
|
|
||||||
u8 BCDIncrement(u8 val)
|
u8 BCDIncrement(u8 val)
|
||||||
{
|
{
|
||||||
val++;
|
val++;
|
||||||
@ -152,20 +154,12 @@ void SetState(StateData& state)
|
|||||||
|
|
||||||
void GetDateTime(int& year, int& month, int& day, int& hour, int& minute, int& second)
|
void GetDateTime(int& year, int& month, int& day, int& hour, int& minute, int& second)
|
||||||
{
|
{
|
||||||
int val;
|
year = FromBCD(State.DateTime[0]);
|
||||||
|
|
||||||
val = State.DateTime[0];
|
|
||||||
year = (val & 0xF) + ((val >> 4) * 10);
|
|
||||||
year += 2000;
|
year += 2000;
|
||||||
|
month = FromBCD(State.DateTime[1] & 0x3F);
|
||||||
|
day = FromBCD(State.DateTime[2] & 0x3F);
|
||||||
|
|
||||||
val = State.DateTime[1] & 0x3F;
|
hour = FromBCD(State.DateTime[4] & 0x3F);
|
||||||
month = (val & 0xF) + ((val >> 4) * 10);
|
|
||||||
|
|
||||||
val = State.DateTime[2] & 0x3F;
|
|
||||||
day = (val & 0xF) + ((val >> 4) * 10);
|
|
||||||
|
|
||||||
val = State.DateTime[4] & 0x3F;
|
|
||||||
hour = (val & 0xF) + ((val >> 4) * 10);
|
|
||||||
|
|
||||||
if (!(State.StatusReg1 & (1<<1)))
|
if (!(State.StatusReg1 & (1<<1)))
|
||||||
{
|
{
|
||||||
@ -175,11 +169,8 @@ void GetDateTime(int& year, int& month, int& day, int& hour, int& minute, int& s
|
|||||||
hour += 12;
|
hour += 12;
|
||||||
}
|
}
|
||||||
|
|
||||||
val = State.DateTime[5] & 0x7F;
|
minute = FromBCD(State.DateTime[5] & 0x7F);
|
||||||
minute = (val & 0xF) + ((val >> 4) * 10);
|
second = FromBCD(State.DateTime[6] & 0x7F);
|
||||||
|
|
||||||
val = State.DateTime[6] & 0x7F;
|
|
||||||
second = (val & 0xF) + ((val >> 4) * 10);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetDateTime(int year, int month, int day, int hour, int minute, int second)
|
void SetDateTime(int year, int month, int day, int hour, int minute, int second)
|
||||||
@ -305,7 +296,7 @@ void ProcessIRQ(int type) // 0=minute carry 1=periodic 2=status reg write
|
|||||||
{
|
{
|
||||||
SetIRQ(0x10);
|
SetIRQ(0x10);
|
||||||
}
|
}
|
||||||
else if ((type == 1) && (State.DateTime[6] == 0x30))
|
else if ((type == 1) && (State.DateTime[6] == 0x30) && ((ClockCount & 0x7FFF) == 0))
|
||||||
{
|
{
|
||||||
ClearIRQ(0x10);
|
ClearIRQ(0x10);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user