' ' ****************************** ' * Gamebuino 初期設定 * ' * * ' * Ver. 0.01 2017. 3.23 * ' ****************************** ' ' Ver. 0.01 新規作成バージョン。 2017. 3.23 ' ' $regfile = "m328pdef.dat" '使用するAVRを設定。 $crystal = 16000000 'AVRクロックを設定。 ' $hwstack = 128 'ハードウェア・スタックの容量を設定。 $swstack = 128 'ソフトウェア・スタックの容量を設定。 $framesize = 128 'フレーム領域の容量を設定。 Const Sdcard_use = 0 'SD-Cardの使用状況。(0:使用しない , 1:使用する) ' ' * ポート名の定義 * ' Btn_u Alias Pinb.1 'ボタン[Up]の接続ポート。 Btn_d Alias Pind.6 'ボタン[Down]の接続ポート。 Btn_l Alias Pinb.0 'ボタン[Left]の接続ポート。 Btn_r Alias Pind.7 'ボタン[Right]の接続ポート。 Btn_a Alias Pind.4 'ボタン[A]の接続ポート。 Btn_b Alias Pind.2 'ボタン[B]の接続ポート。 Btn_c Alias Pinc.3 'ボタン[C]の接続ポート。 ' Backlight Alias Portd.5 'G-LCDのバックライトの接続ポート。 Sp_out Alias Portd.3 'スピーカーの接続ポート。 ' ' * ポートの初期設定 * ' Set Portb.1 'ボタン[Up]の接続ポートをプルアップする。 Set Portd.6 'ボタン[Down]の接続ポートをプルアップする。 Set Portb.0 'ボタン[Left]の接続ポートをプルアップする。 Set Portd.7 'ボタン[Right]の接続ポートをプルアップする。 Set Portd.4 'ボタン[A]の接続ポートをプルアップする。 Set Portd.2 'ボタン[B]の接続ポートをプルアップする。 Set Portc.3 'ボタン[C]の接続ポートをプルアップする。 ' Config Backlight = Output 'G-LCDのバックライトの接続ポートを出力に設定する。 Config Sp_out = Output 'スピーカーの接続ポートを出力に設定する。 ' Set Portb.2 'SDカードの[/CS]接続ポートを[H]に設定する。 Config Portb.2 = Output 'SDカードの[/CS]接続ポートを出力に設定する。 Set Portc.1 'G-LCDの[/CE]接続ポートを[H]に設定する。 Config Portc.1 = Output 'G-LCDの[/CE]接続ポートを出力に設定する。 Set Portb.5 'G-LCDの[CLK]接続ポートを[H]に設定する。 Config Portb.5 = Output 'G-LCDの[CLK]接続ポートを出力に設定する。 ' ' * AVR-DOSの初期設定 * ' #if Sdcard_use = 0 Config Spi = Hard , Master = Yes , Interrupt = Off , Data Order = Msb , Phase = 1 , Polarity = High , Clockrate = 4 , Noss = 1 Spiinit 'SPIピンを初期化する。 #else $include "Config_MMCSD_HC_Gamebuino.bas" 'SD/MMCカードのピン設定プログラムを組み込む。 $include "CONFIG_AVR-DOS_Mega328P.bas" 'AVR-DOSの設定プログラムを組み込む。 Temp1 = Initfilesystem(1) 'ファイル・システムを初期化する。 #endif ' ' * G-LCDの初期設定 * ' $lib "glcd-Gamebuino.LBX" Config Graphlcd = 128x64sed , Rst = Portc.0 , Cs1 = Portc.1 , A0 = Portc.2 , Si = Portb.3 , Sclk = Portb.5 Cls 'G-LCDの全画面を消去する。 ' ' * I2Cの初期設定 * ' $lib "i2c_twi.lbx" 'TWI用ライブラリを組み込む。 Config Scl = Portc.5 'SCLラインを接続する、ポートピンを設定。 Config Sda = Portc.4 'SDAラインを接続する、ポートピンを設定。 Config Twi = 400000 'SCLクロック速度を設定。 I2cinit 'SCL・SDAラインを初期化。 ' ' * A/Dコンバータの初期設定 * ' Config Adc = Single , Prescaler = Auto , Reference = Avcc 'A/Dコンバータの設定。 Start Adc 'A/Dコンバータに電源を供給。 ' ' * シリアル通信の初期設定 * ' Config Com1 = 9600 , Parity = None , Stopbits = 1 , Databits = 8 'ハードウェアUARTの設定。 Config Serialin = Buffered , Size = 80 'シリアルデータ受信を、バッファを使用した割り込み処理にする。 Enable Interrupts 'すべての割り込みを許可。 '-------------------------------------------------------------------------------------------------- ' *********************************** ' * Gamebuino I2C RTC(時計)の接続 * ' * [DS3231] * ' *********************************** ' ' Ver. 1.01 新規作成バージョン。 2017. 3.25 ' ' ' * 変数の宣言 * ' Dim I2cbuff(20) As Byte 'I2Cの送受信バッファー。 Dim Timebuff(7) As Byte '時刻データバッファー。(秒,分,時,日,月,年,曜日) Dim Hourmode As Byte '12/24時間制表示選択。(0:12時間制 , 1:24時間制) Dim Sectemp As Byte '秒の更新データを保管。 ' Dim Temp1 As Byte '汎用テンポラリ変数 Byte型 No.1 Dim Temp2 As Byte '汎用テンポラリ変数 Byte型 No.2 Dim Temp3 As Byte '汎用テンポラリ変数 Byte型 No.3 Dim Temp4 As Byte '汎用テンポラリ変数 Byte型 No.4 Dim Tempstr As String * 16 '汎用テンポラリ変数 String型 ' Dim Dummy As Eram Long 'EEPROM 4バイトのダミーエリア。 Dim Eephourmode As Eram Byte 'EEPROM 12/24時間制表示選択。(0:12時間制 , 1:24時間制) Dim Eepagingoffset As Eram Byte 'EEPROM [DS3231] Aging Offset値。 ' ' * Timerの設定 * ' Config Timer1 = Timer , Prescale = 1024 , Clear Timer = 1 'Timer1の設定。16,000,000Hz / 1024 = 15,625Hz Compare1a = 1562 - 1 '15,625Hz / 10Hz(100ms) = 1562カウント ' ' * 初期画面の表示 * ' Setfont Gamebuino_font6x8 Lcdat 1 , 1 , "I2C DS3231 " , 2 'タイトルの表示。 Lcdat 5 , 1 , " " , 3 Lcdat 6 , 1 , "C+{128}:set A:hour" 'ボタン説明の表示。 ' ' * EEPROMのデータを確認する * ' If Eephourmode > 1 Then 'If EEPROMが初期値か? Then Eephourmode = 0 'EEPROM 12/24時間制表示選択。(0:12時間制 , 1:24時間制) Eepagingoffset = 0 'EEPROM [DS3231] Aging Offset 値。 End If Hourmode = Eephourmode ' ' * RTC [DS3231]の初期設定 * ' Wait 1 '[DS3231]のパワーオン時間を待つ。 I2cbuff(1) = &H0F '[0Fh] ステータス・レジスターのアドレスを指定する。 I2creceive &HD0 , I2cbuff(1) , 1 , 1 'I2Cバスで、1バイトのコマンドを送信し、1バイトのデータを受信する。 If Err <> 0 Then 'If [DS3231]の応答が無いか? Then Lcdat 3 , 1 , "#DS3231 Error!" , 1 '[DS3231]のエラーを表示する。 Sound Sp_out , 100 , 6666 '200Hzの音を500mS鳴らす。 Stop '機能停止。 End If If I2cbuff(1).7 = 1 Then 'If [DS3231]のバッテリー切れ[OSF=1]か? Then Lcdat 3 , 1 , "#Battery dead!" , 1 'バッテリーの電圧が下がった警告を表示する。 Sound Sp_out , 100 , 6666 '200Hzの音を500mS鳴らす。 Wait 3 Lcdat 3 , 1 , " " '警告表示を消去する。 End If Temp2 = I2cbuff(1).7 '[DS3231]のバッテリー状態bit[OSF]を取り出す。 If Btn_b = 0 Then 'If [DS3231]を強制的に初期化するか? Then Temp2 = 1 End If If Temp2 <> 0 Then 'If [DS3231]を初期化するか? Then Gosub Ds3231init '[DS3231]を初期化する。 Eepagingoffset = 0 'EEPROM [DS3231] Aging Offset値。 Lcdat 3 , 1 , "#DS3231 Init!" , 1 '[DS3231]の強制的な初期化を表示する。 Sound Sp_out , 2000 , 333 '4000Hzの音を500mS鳴らす。 Wait 1 Bitwait Btn_b , Set 'ボタン[B]が離されるまで待つ。 Waitms 30 'チャタリングの待ち時間。 Lcdat 3 , 1 , " " '初期化の表示を消去する。 End If ' Sound Sp_out , 50 , 1333 '1000Hzの音を50mS鳴らす。 ' ' ******************* ' * メイン ルーチン * ' ******************* ' Main: ' ' * 時刻の表示 * ' If Tifr1.ocf1a = 1 Then 'If 100ms経過したか? Then Set Tifr1.ocf1a 'Timer1の比較A一致フラグをリセット。 ' Gosub Ds3231read '[DS3231]から日時を読み出す。 If Timebuff(1) <> Sectemp Then 'If 秒が更新されたか? Then Sectemp = Timebuff(1) Gosub Timedisp '日時をG-LCDに表示する。 End If End If ' ' * スイッチの確認 * ' Debounce Btn_a , 0 , Btnaon 'ボタン[A]の検出。 Debounce Btn_b , 0 , Btnbon 'ボタン[B]の検出。 Temp1 = Btn_c Or Btn_u If Temp1 = 0 Then Goto Btncuon 'If ボタン[C + Up] 時刻設定モードか? Then ' Goto Main '-------------------------------------------------------------------------------------------------- ' ' * ボタン[A]が押された場合 (12/24時間制の切り替え) * ' Btnaon: Toggle Hourmode.0 '12/24時間制表示を切り替える。 Eephourmode = Hourmode 'EEPROMに保存する。 Gosub Timedisp '日時をG-LCDに表示する。 Goto Main ' ' * ボタン[B]が押された場合 (バックライトのON/OFF) * ' Btnbon: Toggle Backlight 'G-LCDのバックライトの点灯をON/OFFする。 Goto Main ' ' * ボタン[C + Up]が押された場合 (時刻設定モード) * ' Btncuon: Temp2 = &B0100_0000 '設定カーソルの位置指定ビット。 Gosub Tsetdisp '時刻設定用の日時を表示する。 Lcdat 5 , 37 , "ofs:" , 3 Lcdat 6 , 1 , "{128}{129}{130}{131}:set A:end" 'ボタン説明の表示。 Sound Sp_out , 200 , 333 '4000Hzの音を50mS鳴らす。 Waitms 30 'チャタリングの待ち時間。 Bitwait Btn_c , Set 'ボタン[C]が離されるまで待つ。 Bitwait Btn_u , Set 'ボタン[Up]が離されるまで待つ。 Waitms 30 'チャタリングの待ち時間。 ' Gosub Timeset '時刻設定処理。 ' Gosub Timedisp '日時をG-LCDに表示する。 Lcdat 5 , 37 , " " , 3 Lcdat 6 , 1 , "C+{128}:set A:hour" 'ボタン説明の表示。 Sound Sp_out , 200 , 333 '4000Hzの音を50mS鳴らす。 Goto Main '-------------------------------------------------------------------------------------------------- ' ' ------------------------------------- ' * 日時をG-LCDに表示するサブルーチン * ' ------------------------------------- ' Timedisp: Temp2 = 0 '反転表示をしない. ' Tsetdisp: '時刻設定用の日時を表示する場合。 Lcdat 3 , 1 , "20 / /" '年月日のセパレータを表示する。 Lcdat 4 , 43 , ": :" '時分秒のセパレータを表示する。 ' Temp3 = Temp2.6 Lcdat 3 , 13 , Hex(timebuff(6)) , Temp3 '[年]を表示する。 ' Temp3 = Temp2.5 Temp1 = Timebuff(5) '[月]を表示する。 Gosub Zerosupbcd '上位桁をゼロサプレスする。 Lcdat 3 , 31 , Tempstr , Temp3 ' Temp3 = Temp2.4 Temp1 = Timebuff(4) '[日]を表示する。 Gosub Zerosupbcd '上位桁をゼロサプレスする。 Lcdat 3 , 49 , Tempstr , Temp3 ' Temp3 = Temp2.3 Temp1 = Timebuff(7) Temp1 = Temp1 - 1 '1〜7を0〜6に変換する。 Lcdat 3 , 67 , Lookupstr(temp1 , Weekdata) , Temp3 '[曜日]を表示する。 ' Temp3 = Temp2.2 If Hourmode = 0 Then 'If 12時間制表示か? Then Temp1 = Makedec(timebuff(3)) '[時]のBCD値を10進数の数値に変換。 If Temp1 < 12 Then 'If [AM]か? Then Lcdat 4 , 13 , "am" '[AM]マークを表示する。 Else Lcdat 4 , 13 , "pm" '[PM]マークを表示する。 End If If Temp1 = 0 Then Temp1 = 24 '24時間制時刻を12時間制に変換する。 If Temp1 > 12 Then Temp1 = Temp1 - 12 Temp1 = Makebcd(temp1) '10進数の数値をBCD値に変換。 Else '24時間制の場合。 Lcdat 4 , 13 , " " '[AM/PM]マークを消去する。 Temp1 = Timebuff(3) End If Gosub Zerosupbcd '上位桁をゼロサプレスする。 Lcdat 4 , 31 , Tempstr , Temp3 ' Temp3 = Temp2.1 Lcdat 4 , 49 , Hex(timebuff(2)) , Temp3 '[分]を表示。 ' Temp3 = Temp2.0 Lcdat 4 , 67 , Hex(timebuff(1)) , Temp3 '[秒]を表示。 ' If Temp2 <> 0 Then 'If 時刻設定モードか? Then Lcdat 5 , 61 , " " , 3 Temp3 = Temp2.7 If Temp3 = 0 Then Temp3 = 3 'If 反転がないか? Then Temp1 = Eepagingoffset 'EEPROM [DS3231] Aging Offset値。 If Temp1.7 = 0 Then 'If [+]の値か? Then Lcdat 5 , 61 , "+" ; Temp1 , Temp3 '[+]の場合。 Else '[-]の場合。 Temp1 = Not Temp1 Temp1 = Temp1 + 1 Lcdat 5 , 61 , "-" ; Temp1 , Temp3 End If End If Return ' ' ----------------------------------------------- ' * BCD値の上位桁をゼロサプレスするサブルーチン * (Temp1 = 入力BCDデータ) ' ----------------------------------------------- (Tempstr = 出力文字列) ' Zerosupbcd: If Temp1 < 10 Then 'If 上位桁が0か? Then Tempstr = " " + Str(temp1) Else Tempstr = Hex(temp1) End If Return ' ' ------------------------------------------------------ ' * バイナリー値の上位桁をゼロサプレスするサブルーチン * (Temp1 = 入力バイナリーデータ) ' ------------------------------------------------------ (Tempstr = 出力文字列) ' Zerosupbin: If Temp1 < 10 Then 'If 上位桁が0か? Then Tempstr = Tempstr + " " End If Tempstr = Tempstr + Str(temp1) Return '################################################################################################## ' ' **************** ' * 時刻設定処理 * ' **************** ' Timeset: Temp2 = &B0100_0000 '設定カーソルの位置指定ビット。 ' Timeset8: Gosub Tsetdisp '時刻設定用の日時を表示する。 Timeset9: Debounce Btn_l , 0 , Timeset1 'ボタン[Left]の検出。 Debounce Btn_r , 0 , Timeset2 'ボタン[Right]の検出。 Debounce Btn_u , 0 , Timeset3 'ボタン[Up]の検出。 Debounce Btn_d , 0 , Timeset4 'ボタン[Down]の検出。 Debounce Btn_a , 0 , Timeset5 'ボタン[A]の検出。 Goto Timeset9 ' ' * 時刻設定のボタン[Left]が押された場合 * ' Timeset1: Shift Temp2 , Left , 1 'カーソルを左に移動する。 If Temp2 = &B0000_0000 Then 'If [オフセット]を超えたか? Then Temp2 = &B0000_0001 '[秒]に戻す。 End If Goto Timeset8 ' ' * 時刻設定のボタン[Right]が押された場合 * ' Timeset2: Shift Temp2 , Right , 1 'カーソルを右に移動する。 If Temp2 = &B0000_0000 Then 'If [オフセット]を超えたか? Then Temp2 = &B1000_0000 '[年]に戻す。 End If Goto Timeset8 ' ' * 時刻設定のボタン[Up]が押された場合 * ' Timeset3: '設定値を加算する。 Select Case Temp2 Case &B0100_0000 '[年]の設定。 Temp1 = Timebuff(6) Temp3 = 99 Temp4 = 0 Gosub Timeset3s 'BCD値を加算する。 Timebuff(6) = Temp1 Case &B0010_0000 '[月]の設定。 Temp1 = Timebuff(5) Temp3 = 12 Temp4 = 1 Gosub Timeset3s 'BCD値を加算する。 Timebuff(5) = Temp1 Case &B0001_0000 '[日]の設定。 Temp1 = Timebuff(4) Temp3 = 31 Temp4 = 1 Gosub Timeset3s 'BCD値を加算する。 Timebuff(4) = Temp1 Case &B0000_1000 '[曜日]の設定。 Temp1 = Timebuff(7) Temp3 = 7 Temp4 = 1 Gosub Timeset3s 'BCD値を加算する。 Timebuff(7) = Temp1 Case &B0000_0100 '[時]の設定。 Temp1 = Timebuff(3) Temp3 = 23 Temp4 = 0 Gosub Timeset3s 'BCD値を加算する。 Timebuff(3) = Temp1 Case &B0000_0010 '[分]の設定。 Temp1 = Timebuff(2) Temp3 = 59 Temp4 = 0 Gosub Timeset3s 'BCD値を加算する。 Timebuff(2) = Temp1 Case &B0000_0001 '[秒]の設定。 Temp1 = Timebuff(1) Temp3 = 59 Temp4 = 0 Gosub Timeset3s 'BCD値を加算する。 Timebuff(1) = Temp1 Case &B1000_0000 '[オフセット]の設定。 Temp1 = Eepagingoffset 'EEPROM [DS3231] Aging Offset値。 Temp1 = Temp1 + 1 Eepagingoffset = Temp1 'EEPROMに保管する。 End Select Goto Timeset8 ' ' * BCD値を加算するサブルーチン * ' Timeset3s: Temp1 = Makedec(temp1) 'BCD値を10進数の数値に変換。 Temp1 = Temp1 + 1 If Temp1 > Temp3 Then 'If 上限値を超えたか? Then Temp1 = Temp4 '下限値に戻す。 End If Temp1 = Makebcd(temp1) '10進数の数値をBCD値に変換。 Return ' ' * 時刻設定のボタン[Down]が押された場合 * ' Timeset4: '設定値を減算する。 Select Case Temp2 Case &B0100_0000 '[年]の設定。 Temp1 = Timebuff(6) Temp3 = 255 Temp4 = 99 Gosub Timeset4s 'BCD値を減算する。 Timebuff(6) = Temp1 Case &B0010_0000 '[月]の設定。 Temp1 = Timebuff(5) Temp3 = 0 Temp4 = 12 Gosub Timeset4s 'BCD値を減算する。 Timebuff(5) = Temp1 Case &B0001_0000 '[日]の設定。 Temp1 = Timebuff(4) Temp3 = 0 Temp4 = 31 Gosub Timeset4s 'BCD値を減算する。 Timebuff(4) = Temp1 Case &B0000_1000 '[曜日]の設定。 Temp1 = Timebuff(7) Temp3 = 0 Temp4 = 7 Gosub Timeset4s 'BCD値を減算する。 Timebuff(7) = Temp1 Case &B0000_0100 '[時]の設定。 Temp1 = Timebuff(3) Temp3 = 255 Temp4 = 23 Gosub Timeset4s 'BCD値を減算する。 Timebuff(3) = Temp1 Case &B0000_0010 '[分]の設定。 Temp1 = Timebuff(2) Temp3 = 255 Temp4 = 59 Gosub Timeset4s 'BCD値を減算する。 Timebuff(2) = Temp1 Case &B0000_0001 '[秒]の設定。 Temp1 = Timebuff(1) Temp3 = 255 Temp4 = 59 Gosub Timeset4s 'BCD値を減算する。 Timebuff(1) = Temp1 Case &B1000_0000 '[オフセット]の設定。 Temp1 = Eepagingoffset 'EEPROM [DS3231] Aging Offset値。 Temp1 = Temp1 - 1 Eepagingoffset = Temp1 'EEPROMに保管する。 End Select Goto Timeset8 ' ' * BCD値を減算するサブルーチン * ' Timeset4s: Temp1 = Makedec(temp1) 'BCD値を10進数の数値に変換。 Temp1 = Temp1 - 1 If Temp1 = Temp3 Then 'If 下限値を超えたか? Then Temp1 = Temp4 '上限値に戻す。 End If Temp1 = Makebcd(temp1) '10進数の数値をBCD値に変換。 Return ' ' * 時刻設定のボタン[A]が押された場合 (設定終了) * ' Timeset5: I2cbuff(1) = &H00 'レジスター[00h] Secondsのアドレスを指定する。 I2cbuff(2) = Timebuff(1) '[秒]データを保存する。 I2cbuff(3) = Timebuff(2) '[分]データを保存する。 I2cbuff(4) = Timebuff(3) '[時]データを保存する。 I2cbuff(5) = Timebuff(7) '[曜日]データを保存する。 I2cbuff(6) = Timebuff(4) '[日]データを保存する。 I2cbuff(7) = Timebuff(5) '[月]データを保存する。 I2cbuff(8) = Timebuff(6) '[年]データを保存する。 I2csend &HD0 , I2cbuff(1) , 8 'I2Cバスで、8バイトのデータを送信する。 ' I2cbuff(1) = &H10 'レジスター[10h] Aging Offsetのアドレスを指定する。 I2cbuff(2) = Eepagingoffset '[Aging Offset]値データを保存する。 I2csend &HD0 , I2cbuff(1) , 2 'I2Cバスで、2バイトのデータを送信する。 Bitwait Btn_a , Set 'ボタン[A]が離されるまで待つ。 Waitms 30 'チャタリングの待ち時間。 Return '################################################################################################## ' ' ******************************************* ' * [DS3231]から日時を読み出すサブルーチン * ' ******************************************* ' Ds3231read: I2cbuff(1) = &H00 'レジスター[00h] Seconds のアドレスを指定する。 I2creceive &HD0 , I2cbuff(1) , 1 , 7 'I2Cバスで、1バイトのコマンドを送信し、7バイトのデータを受信する。 Timebuff(1) = I2cbuff(1) '[秒]データを保存する。 Timebuff(2) = I2cbuff(2) '[分]データを保存する。 Timebuff(3) = I2cbuff(3) '[時]データを保存する。 Timebuff(7) = I2cbuff(4) '[曜日]データを保存する。 Timebuff(4) = I2cbuff(5) '[日]データを保存する。 Timebuff(5) = I2cbuff(6) And &H1F '[月]データを保存する。 Timebuff(6) = I2cbuff(7) '[年]データを保存する。 Return ' ' ************************************ ' * [DS3231]を初期化するサブルーチン * ' ************************************ ' Ds3231init: Restore Ds3231initdata '[DS3231]の初期設定データ・テーブル。 For Temp1 = 1 To 18 '初期設定データの18バイトをバッファーへ転送する。 Read I2cbuff(temp1) Next Temp1 ' I2csend &HD0 , I2cbuff(1) , 18 'I2Cバスで、18バイトのデータを送信する。 Return End ' ' * フォント データ * ' $include "Gamebuino_font6x8.font" ' ' * RTC [DS3231]の初期設定データ・テーブル * ' Ds3231initdata: Data &H00 '[DS3231]レジスターのスタートアドレス Data &H00 '[00] Seconds Data &H00 '[01] Minutes Data &H00 '[02] Hours Data &H01 '[03] Weekday Data &H01 '[04] Date Data &H01 '[05] Months Data &H17 '[06] Year Data &H00 '[07] Alarm 1 Seconds Data &H00 '[08] Alarm 1 Minutes Data &H00 '[09] Alarm 1 Hours Data &H00 '[0A] Alarm 1 Day,Date Data &H00 '[0B] Alarm 2 Minutes Data &H00 '[0C] Alarm 2 Hours Data &H00 '[0D] Alarm 2 Day,Date Data &B0000_0000 '[0E] Control (/EOSC=0, BBSQW=0, CONV=0, RS2-RS1=00(1Hz), INTCN=0, A2IE=0, A1IE=0) Data &B0000_0000 '[0F] Control/Status (OSF=0, Bit6=0, Bit5=0, Bit4=0, EN32kHz=0, BSY=x, A2F=0, A1F=0) Data &H00 '[10] Aging Offset ' ' * 曜日 データ・テーブル * ' Weekdata: Data "SUN" , "MON" , "TUE" , "WED" , "THU" , "FRI" , "SAT"