# ================================== # BIOS関連定数定義 for Assembler # ================================== # ===================================================================================== BIOS #================================== KEY ================================== .equ BI_GETBTN , 0x117 .equ BI_SENSBTN , 0x217 .equ BI_CLRBTN , 0x317 .equ BI_CHATPSBTN , 0x417 .equ BI_CHATJKBTN , 0x517 #================================= DISK ================================== .equ BI_SECREAD , 0x118 .equ BI_SECWRITE , 0x218 .equ BI_FORMAT , 0x318 .equ BI_GETDRFORM , 0x418 .equ BI_SETDRFORM , 0x518 .equ BI_WRFLUSH , 0xb18 .equ BI_SYSREAD , 0xd18 .equ BI_SYSWRITE , 0xe18 #============================= RS-232C / IrDA ============================ .equ BI_COMINIT , 0x119 .equ BI_COMWRITE , 0x219 .equ BI_COMREAD , 0x319 .equ BI_COMPLREAD , 0x419 .equ BI_COMCLR , 0x519 .equ BI_COMRNUM , 0x619 .equ BI_COMOPEN , 0x719 .equ BI_COMCLOSE , 0x819 .equ BI_COMPLWRITE , 0x919 #================================== RTC ================================== .equ BI_TMREAD , 0x11a .equ BI_TMWRITE , 0x21a .equ BI_DTREAD , 0x31a .equ BI_DTWRITE , 0x41a #================================= TIMER ================================= .equ BI_TMSET , 0x11c .equ BI_TMDEL , 0x21c #================================= OTHER ================================= .equ BI_REBOOT , 0x11d .equ BI_BUZZER , 0x21d .equ BI_CPUSUSP , 0x31d .equ BI_CPUSPEED , 0x41d .equ BI_POWERREAD , 0x51d .equ BI_GETCHARGE , 0x61d .equ BI_CLRCHARGE , 0x71d .equ BI_GETPOWER , 0x81d .equ BI_POWERINC , 0x91d .equ BI_EL , 0xa1d .equ BI_BUZZINIT , 0xb1d .equ BI_CURRENT , 0xc1d .equ BI_SETPOWER , 0xd1d .equ BI_MELODY , 0xe1d .equ BI_CANMELODY , 0xf1d .equ BI_POWERREAD2 , 0x101d .equ BI_27VERROR , 0x111d .equ BI_VECT , 0x15 #=========================================================================== #=========================== ポートアドレス定義 ========================== #=========================================================================== .equ STATUS_PORT , 0x50 .equ KEY_PORT , 0x51 # ===================================================================================== DOS .equ DOS_CHEIN , 0x01 .equ DOS_CHOUT , 0x02 .equ DOS_AUXIN , 0x03 .equ DOS_AUXOUT , 0x04 .equ DOS_PRNOUT , 0x05 .equ DOS_CINOUT , 0x06 .equ DOS_CIN , 0x07 .equ DOS_CHIN , 0x08 .equ DOS_STROUT , 0x09 .equ DOS_STRIN , 0x0A .equ DOS_KREADY , 0x0B .equ DOS_KFLUSH , 0x0C .equ DOS_DRESET , 0x0D .equ DOS_SELDRV , 0x0E .equ DOS_GETCDRVNO , 0x19 .equ DOS_FSETDTA , 0x1A .equ DOS_GETCDRIVE , 0x1B .equ DOS_GETTDRIVE , 0x1C .equ DOS_SETVECTOR , 0x25 .equ DOS_FPARSE , 0x29 .equ DOS_GETDATE , 0x2A .equ DOS_SETDATE , 0x2B .equ DOS_GETTIME , 0x2C .equ DOS_SETTIME , 0x2D .equ DOS_SETVERIFY , 0x2e .equ DOS_GETDTA , 0x2F .equ DOS_VERSION , 0x30 .equ DOS_PROCRESIDENT, 0x31 .equ DOS_CTRL_C , 0x33 .equ DOS_GETVECTOR , 0x35 .equ DOS_DFSPACE , 0x36 .equ DOS_MKDIR , 0x39 .equ DOS_RMDIR , 0x3A .equ DOS_CHDIR , 0x3B .equ DOS_CREATE , 0x3C .equ DOS_OPEN , 0x3D .equ DOS_CLOSE , 0x3e .equ DOS_READ , 0x3F .equ DOS_WRITE , 0x40 .equ DOS_DELETE , 0x41 .equ DOS_SEEK , 0x42 .equ DOS_FATTR , 0x43 .equ DOS_DUP_HND , 0x45 .equ DOS_DUP_HNDSP , 0x46 .equ DOS_GETCDIR , 0x47 .equ DOS_EXECUTE , 0x4B .equ DOS_EXIT , 0x4C .equ DOS_CHILD_RET , 0x4D .equ DOS_FND_FIRST , 0x4E .equ DOS_FND_NEXT , 0x4F .equ DOS_GET_VERIFY , 0x54 .equ DOS_RENAME , 0x56 .equ DOS_FLTIME , 0x57 .equ DOS_EXTERR , 0x59 .equ DOS_CRTMP , 0x5A .equ DOS_CRNEW , 0x5B .equ DOS_GET_PSP , 0x62 # ===================================================================================== LCDBIOS #LCD−BIOS画面モード定義 .equ LCD_MODE_LCD , 0 # LCDモード .equ LCD_MODE_GRAPHIC , 1 # グラフィックスモード #画面クリアモード .equ LCD_CLS_LCD , 1 # LCD画面クリア .equ LCD_CLS_GVRAM , 4 # GVRAMクリア #LCDドライバー内蔵電源制御 .equ LCD_POWER_OFF , 0 # 内蔵電源オフ .equ LCD_POWER_ON , 1 # 内蔵電源オン #画面フリーズ制御 .equ LCD_FREEZE_OFF , 0 # 画面フリーズ解除 .equ LCD_FREEZE_ON , 1 # 画面フリーズ #エラーコード定義 .equ LCDERR_PARAM , -1 # パラメータエラー .equ LCDERR_MODE_UNMATCH , -10 # 現在のモードではこの関数は使用出来ません .equ LCDERR_BLINK_FULL , -20 # 点滅領域数が最大数に達しています .equ LCDERR_BLINK_NOTUSE , -21 # 指定領域番号は未使用状態です .equ LCDERR_BLINK_SLEEP , -22 # 指定領域は現在一時停止中です .equ LCDERR_SIZE_CODE , -30 # サイズコードが一致しないか不正 .equ LCDERR_TXTMODE_OUTAREA , -40 # 指定領域が画面外にはみ出ています .equ LCDERR_TXTMODE_LCDMODE , -41 # LCD改行モードではこの関数は使用出来ません #機能番号定義 .equ LCD_SCREEN , 0 # 画面モード設定 .equ LCD_GETSCREEN , 1 # 画面モード取得 .equ LCD_CLS , 2 # 画面クリア .equ LCD_LCDON , 3 # 内蔵電源制御 .equ LCD_GETLCDON , 4 # 内蔵電源状態取得 .equ LCD_MOJISIZE , 6 # 文字サイズ取得 .equ LCD_GETBUFSIZE , 7 # データサイズ計算 .equ LCD_REVERSE , 8 # 指定領域反転 .equ LCD_REVSTART , 9 # 反転一時停止 .equ LCD_REVSTOP , 10 # 反転再開 .equ LCD_REVEND , 11 # 反転終了 .equ LCD_REVDRAW , 12 # 反転再描画 .equ LCD_BLINK , 13 # 指定領域点滅 .equ LCD_BLSTOP , 14 # 点滅一時停止 .equ LCD_BLSTART , 15 # 点滅再開 .equ LCD_BLEND , 16 # 点滅終了 .equ LCD_FREEZE , 17 # 画面フリーズ制御 .equ LCD_VOL , 18 # LCD電子ボリューム量設定 .equ LCD_GETVOL , 19 # LCD電子ボリューム量取得 .equ LCD_LC_KPUT , 20 # 指定文字列描画 .equ LCD_LC_SPUT , 21 # SIIシフトJIS描画 .equ LCD_LC_APUT , 22 # フォントデータ描画 .equ LCD_LC_LINE , 24 # 線描画 .equ LCD_LC_SQUARE , 25 # 長方形描画 .equ LCD_LC_CIRCLE , 26 # 円描画 .equ LCD_LC_PSET , 27 # 点描画 .equ LCD_LC_POINT , 28 # 点状態取得 .equ LCD_LC_GET , 29 # グラフィックパターン取得 .equ LCD_LC_PUT , 30 # グラフィックパターン描画 .equ LCD_LC_REVERSE , 31 # ワーク画面指定区域反転 .equ LCD_LC_CLEAR , 32 # ワーク画面指定区域クリア .equ LCD_GV_PLACE , 60 # 表示位置指定 .equ LCD_GV_KPUT , 61 # 指定文字列描画 .equ LCD_GV_SPUT , 62 # SIIシフトJIS描画 .equ LCD_GV_APUT , 63 # フォントデータ描画 .equ LCD_GV_LINE , 65 # 線描画 .equ LCD_GV_SQUARE , 66 # 長方形描画 .equ LCD_GV_CIRCLE , 67 # 円描画 .equ LCD_GV_PSET , 68 # 点描画 .equ LCD_GV_POINT , 69 # 点状態取得 .equ LCD_GV_GET , 70 # グラフィックパターン取得 .equ LCD_GV_PUT , 71 # グラフィックパターン描画 .equ LCD_GV_SCROLL , 72 # GVRAMスクロール .equ LCD_GV_REVERSE , 73 # GVRAM指定区域反転 .equ LCD_GV_CLEAR , 74 # GVRAM指定区域クリア # ===================================================================================== 8086 Registers .equ REG_AX , 0 .equ REG_AL , 0 .equ REG_AH , 1 .equ REG_BX , 2 .equ REG_BL , 2 .equ REG_BH , 3 .equ REG_CX , 4 .equ REG_CL , 4 .equ REG_CH , 5 .equ REG_DX , 6 .equ REG_DL , 6 .equ REG_DH , 7 .equ REG_SI , 8 .equ REG_DI , 10 .equ REG_DS , 12 .equ REG_ES , 14 .equ REG_CS , 16 .equ REG_CFLAG , 18 .equ REG_SIZE , 20 # ===================================================================================== System Control .equ SYS_EventManager , 0 # イベント管理 .equ SYS_Paramsys , 4 # システム・パラメータ .equ SYS_SystemPower , 8 # オート・パワー on/off状態 .equ SYS_CPUram , 12 # 時刻 .equ SYS_RupDefine , 16 # Ruputerシステム定義構造体領域 .equ SYS_RupRelatedSize , 20 # ファイルの関連づけ定義構造体領域の数 .equ SYS_RupRelated , 24 # ファイルの関連づけ定義構造体領域 .equ SYS_FileInfoSize , 28 # ファイル情報の数 .equ SYS_FileInfo , 32 # ファイル情報(ソートされていない) .equ SYS_FileList , 36 # ファイル情報のリスト(ソートされている) .equ SYS_DirectoryPath , 40 # 現在のディレクトリパス .equ SYS_DirectoryTree , 44 # パスの深さ .equ SYS_BLDReq , 48 # BLD確認要求 .equ SYS_BLD , 52 # BLD検出結果 .equ SYS_BLDExecute , 56 # 電池交換EXFの起動要求 .equ SYS_MelodyPlay , 60 # メロディ演奏バッファ .equ SYS_Secret , 64 # シークレット情報の表示/非表示 .equ SYS_STWdata , 68 # ストップウォッチ .equ SYS_repflg , 72 # ボタンのリピート状況 .equ SYS_TimerStat , 76 # タイマー制御(状態) .equ SYS_TIMERdata , 80 # タイマー制御(時間) .equ SYS_Keyin , 84 # ボタン入力処理関数 .equ SYS_EventCall , 88 # イベント管理 .equ SYS_EventExec , 92 # イベント実行 .equ SYS_softkey , 96 # ソフトキーボード .equ SYS_dispMESS , 100 # 警告メッセージの表示 .equ SYS_dispYNb , 104 # yes/noメニュー(大の表示) .equ SYS_dispYN , 108 # yes/noメニュー .equ SYS_canselCHK , 112 # 設定のキャンセル .equ SYS_dispMSG , 116 # 全角3文字メッセージ表示 .equ SYS_dispKOUSIN , 120 # "設定更新"表示終了 .equ SYS_endKOUSIN , 124 # 表示時間合わせ .equ SYS_menuBACK , 128 # 戻るの処理 .equ SYS_aprEND , 132 # アプリケーションの終了の処理 .equ SYS_setKOUSIN , 136 # 設定の更新 .equ SYS_dispMENU , 140 # メニュー名の表示 .equ SYS_aprMENUauto , 144 # メニュー処理(オートリターン付き) .equ SYS_aprMENU , 148 # メニュー処理 .equ SYS_settingMENU , 152 # メニュー処理(内部関数) .equ SYS_dispERR , 156 # エラーメッセージ表示 .equ SYS_dispERRnoBUZZ , 160 # エラーメッセージ表示(ブザー無し) .equ SYS_dispVOLerr , 164 # バッテリ異常表示 .equ SYS_dispMEMORYerr , 168 # メモリ異常表示 .equ SYS_dispBIOSerr , 172 # BIOSエラー表示 .equ SYS_watch_adj , 176 # 時刻修正 .equ SYS_timeSEND , 180 # 時間の子機間転送(送信) .equ SYS_timeRECV , 184 # 時間の子機間転送(受信) .equ SYS_endTIMEAdj , 188 # 時間調整の終了 .equ SYS_setRTC , 192 # RTC設定 .equ SYS_getRTC , 196 # CPUramの時刻データ更新 .equ SYS_DfileSEND , 200 # アプリケーション用ファイル転送-送信 .equ SYS_DfileRECV , 204 # アプリケーション用ファイル転送-受信 .equ SYS_setWeeklyAlarm , 208 # 週アラーム設定 .equ SYS_setAlarm , 212 # イベント・アラーム設定 .equ SYS_setPowerStandby , 216 # パワースタンバイ設定 .equ SYS_endWAIT , 220 # 待ち表示 .equ SYS_dispWAIT , 224 # 待ち表示 .equ SYS_dispMENUplusYa , 228 # メニュー名の表示(上下矢印付き) .equ SYS_TIMERStart , 232 # タイマー制御(スタート) .equ SYS_TIMERStop , 236 # タイマー制御(ストップ) .equ SYS_ChildExecute , 240 # 子プロセスの実行 .equ SYS_checkExecute , 244 # 子プロセスの実行 .equ SYS_dispRtcWeek , 248 # Rtc曜日表示 .equ SYS_dispRtcDate , 252 # Rtc年月日表示 .equ SYS_dispRtcAmPm , 256 # RtcAM/PM表示 .equ SYS_dispRtcTime , 260 # Rtc時刻時分表示 .equ SYS_dispRtcSec , 264 # Rtc時刻秒表示 # ===================================================================================== # LCDコントローラ関連定数 .equ Clcd_on , 0xae # (1)表示on/off [off:+0(RES^),on:+1] .equ Clcd_line , 0x40 # (2)表示開始ライン [+0(RES^)..+63] .equ Clcd_page , 0xb0 # (3)ページアドレス [+0(RES^)..+15] .equ Clcd_col1 , 0x14 # (4)カラムアドレス(A7..A4) [+0(RES^)..+15] .equ Clcd_col0 , 0x00 # (4)カラムアドレス(A3..A0) [+0(RES^)..+15] .equ Clcd_adc , 0xa0 # [8]ADCセレクト [右回:+0(RES^),左回:+1] .equ Clcd_revs , 0xa6 # (9)表示正転/反転 [正転:+0(RES^),反転:+1] .equ Clcd_blak , 0xa4 # (10)表示全点灯 [通常表示:+0(RES^),全点灯:+1] .equ Clcd_duty , 0xa8 # [11]デューティセレクト [1/64:+1(RES^),1/48:+0] .equ Clcd_rmw , 0xe0 # (15)リードモディファイライト .equ Clcd_end , 0xee # (16)エンド .equ Clcd_rst , 0xe2 # (17)リセット .equ Clcd_case , 0xc0 # (18)出力状態選択 [+0(RES^)..+7] .equ Clcd_powr , 0x24 # (19)内臓電源on/off [off:+0(RES^),on:+1] .equ Clcd_pend , 0xed # (20)内臓電源立ち上げ完了 .equ Clcd_volm , 0x80 # (21)電子ボリューム [+0(RES^)..+31] #LCD driver SED1560用 G.A. command address(r/w) and bit .equ Alcd_c , 0x0010 # command .equ Alcd_d , Alcd_c+4 # data .equ Alcd_clk , 0x0080 # ゲートアレイのアドレス .equ Blcd_clk , 0x08 # 0x08:LCD driverへクロック供給(表示中は供給) # 0x00:クロック停止(非表示中は停止) # タイマ割込と同一アドレス使用のため # 読み込んでからこのビット(bit3)のみ変更。 .equ SEGMAX , 102 # 102セグメント .equ COMMAX , 64 # 64コモン # =====================================================================================