1998/10/4
本関数は日付・時刻情報を提供するものです。DreamcastにはRTC(Real Time Clock)がSH4のものとAICA(Advanced Integrated Custom Audio)のものと2種類ありますが、バッテリーバックアップされているのはAICAの方で、本関数はAICAに付属のRTCを利用しています。
本関数は、G2バス上にあるAICAのRTCから日付・時刻に関する情報を、取得および設定します。
AICAのRTCは32ビットのカウンタで、1秒に1カウントしていきます。そこで、現時刻やファイルのタイムスタンプに関する、日付・時刻を取得する目的で使われます。このカウンタは設定が可能ですが、ゲームプレイヤによる時刻設定以外に「設定」を行う事はアプリケーション開発者は避けるべきです。
作成基準にも依存しますが、アプリケーション開発者は主に日付・時刻の参照のみを利用するのがよいでしょう。
SYD_RTC_ERR_OK | 正常終了 |
SYD_RTC_ERR_FATAL | 異常終了 |
サーバ関数の振る舞いに関する定数定義
SYD_RTC_STAT_ACTIVE | RTCにアクセスする |
SYD_RTC_STAT_PASSIVE | RTCにアクセスしない |
typedef struct { Uint16 year; Uint8 month; Uint8 day; Uint8 hour; Uint8 minute; Uint8 second; Uint8 dayofweek; Uint8 ageofmoon; } SYS_RTC_DATE
year | 西暦: 1950〜2085 |
month | 月 |
day | 日 |
hour | 時 |
minute | 分 |
second | 秒 |
dayofweek | 週:0(日曜)...6(土曜) |
ageofmoon | 月齢:(0...29,0:新月, 15:満月) |
関数 | 機能 |
---|---|
syRtcInit<新規> | RTC関数の初期化 |
syRtcFinish<新規> | RTC関数の終了 |
syRtcExecServer<新規> | サーバ関数 |
syRtcGetDate<新規> | 現日付時刻の取得 |
syRtcSetDate<新規> | 日付時刻の設定 |
syRtcSetServerMode<新規> | サーバ関数の動作の設定 |
syRtcGetStat<新規> | サーバ関数の状態の取得 |
syRtcCompareDate<新規> | 日付時刻の比較 |
syRtcDateToCount<新規> | 日付時刻からカウント数への変換 |
syRtcCountToDate<新規> | カウント数から日付時刻への変換 |
void main( void ) { SYS_RTC_DATE date, startdate; char *dayofweek[] = { "SUNDAY", "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" }; while( 1 ){ syRtcGetDate( &date ); printf( "yyyy/mm/dd hh:mm:ss = %4d/%2d/%2d %2d:%2d:%2d\n", date.year, date.month, date.day, date.hour, date.minute, date.second ); printf( "Today is %s\n", dayofweek[day.dayofweek] ); switch( date.ageofmoon ) { case 0: printf( "new moon\n" ); break; case 15: printf( "full moon\n" ); break; } }