実験的なコードとかいろいろ。
無保証です。
十分なテストを行っていないので、不具合があるかもしれません。
長いファイル名を使用しているため、TwentyOne +Tなどのファイル名を21文字認識する環境が必要です。
- A
- a2arg ... 渡されたコマンドライン引数の内容を表示
- a2arg_nh ... 渡されたコマンドライン引数の内容を表示(HUPAIRマークなし)
- adpcmotchk ... IOCSによるADPCM再生後にDMACのレジスタ値を表示
- appendbytes ... ファイル末尾にデータを追記
- B
- beep_adpcmout ... システムビープ音を
IOCS _ADPCMOUT
で再生 - beep_mpcm ... システムビープ音をMPCMで効果音として再生
- beep_zmsc3 ... システムビープ音をZMSC3.Xで効果音として再生
- bg1pr2th ... 2個のスレッドを作成して常駐終了
- bgexec ... 指定コマンドの実行指示をbgexecdスレッドに送信
- bgexecd ... 常駐終了し、指定されたコマンドをバックグラウンドで実行
- bgkill ... スレッドに終了要求コマンドを送信
- bglivingdead ...
DOS _KILL_PR
の動作検証 - bgsprocd ... bgexecdとほぼ同じだがサブのメモリ管理を設定する
- bgsprocess ... スレッドに対しサブのメモリ管理を設定
- bgthreadid ... スレッドIDを表示
- bgwakeup ... スレッドに強制スリープ解除コマンドを送信
- bgzombie ...
DOS _KILL_PR
の動作検証 - bitsns ...
IOCS _BITSNS
でキーの押し下げ状態を表示 - bkeyinpd3 ...
IOCS _B_EKYINP
の動作検証(d3
レジスタ破壊) - buserr_2w ... バスエラーを発生させる。エミュレータの検証用
- beep_adpcmout ... システムビープ音を
- C
- chxdummy ... ch30inst.x、chxinst.xの共存インストール機能の動作検証
- closerewindatr ...
DOS _CLOSE
時のファイル属性巻き戻りの動作検証 - colorbar ... カラーバーのような画像を描画
- con_scroll ... コンソール画面のスクロールのテスト
- crampedexec ... 空きメモリ容量を指定してファイルを実行する
- D
- datetime ... IOCSで日時を取得、表示
- dbrams ... IOCSワーク
$cb8
、$cba
の値を再計測 - defchr_7621 ...
IOCS _DEFCHR
の動作検証 - dos_create_sp ...
DOS _CREATE
の特殊モードでファイルを作成 - dos_curdir ...
DOS _CURDIR
でカレントディレクトリを取得 - dos_fatchk ...
DOS _FATCHK
でファイルのセクタを取得 - dos_fgetc ...
DOS _FGETC
でファイルから文字入力 - dos_fgets ...
DOS _FGETS
でファイルから行入力 - dos_filedate ...
DOS _FILEDATE
でファイルのタイムスタンプを取得または設定 - dos_getenv ...
DOS _GETENV
で環境変数を取得 - dos_inpout ...
DOS _INPOUT
による文字入力または文字出力 - dos_keyctrl01 ...
DOS _KEYCTRL
によるキー入力 - dos_maketmp ...
DOS _MAKETMP
でテンポラリファイルを作成 - dos_mkdir ...
DOS _MKDIR
でディレクトリを作成 - dos_nameck ...
DOS _NAMECK
でパス名を展開 - dos_namests ...
DOS _NAMESTS
でパス名を展開 - dos_setenv ...
DOS _SETENV
で環境変数を設定 - dumpenv ... 環境変数をすべて表示
- dumpstdin ...
DOS _READ
で標準入力から読み込み
- E
- entryceil ... 上位メモリから起動する。HUPAIR準拠表示の判別コードの検証用
- env_sbo ...
DOS _GETENV
、DOS _SETENV
のバッファオーバーフローの動作検証 - esc_dsr ... エスケープシーケンス
ESC [6n
で入力されたキーを表示 - exception ... 例外を発生させて例外処理を呼び出す
- exchr_hex ... 拡張外字処理を有効にして常駐終了
- execas ... 「ファイルを別名で実行するR形式実行ファイル」を作成
- exfiles ...
DOS _FILES
の拡張モードでエントリを検索 - existsdir ... ディレクトリが存在するか調べる
- F
- fatchk_bof ...
DOS _FATCHK
のバッファオーバーフローの動作検証 - fe_fcvt_test ...
FPACK __FCVT
の動作テスト - fe_power_test ...
FPACK __POWER
の動作テスト - fe_stoh_test ...
FPACK __STOH
の動作テスト - fileopen ... 各種の方法によるファイル作成、オープン
- files ...
DOS _FILES
とDOS _NFILES
によるエントリの列挙 - fntget ... フォントを拡大してテキストとして表示
- fntsize ...
IOCS _FNTADR
、IOCS _FNTGET
の結果を一覧表示
- fatchk_bof ...
- G
- getassign ...
DOS _ASSIGN (MD=0)
でドライブの割り当て状態を取得
- getassign ...
- I
- incdir_test ... サブディレクトリ拡張時のディスク破壊の再現補助
- iocs_ontime ...
IOCS _ONTIME
で起動後の経過時間を取得 - iocs_txfill ...
IOCS _TXFILL
のサンプル - iocs_txrascpy ...
IOCS _TXYLINE
のサンプル - iocs_txyline ...
IOCS _TXRASCPY
でラスタコピーを行う - ioctrl12 ...
DOS _IOCTRL (MD=12, F_CODE=0)
によるファイルの特殊コントロール - ioctrl13 ...
DOS _IOCTRL (MD=13, F_CODE=0)
によるドライブの特殊コントロール - isemu_rtc ... RTCの挙動の違いを利用したエミュレータ判別
- J
- joyget ...
IOCS _JOYGET
によるジョイスティック入力
- joyget ...
- K
- L
- lineage ... 自分自身と祖先のメモリ管理ポインタを表示
- M
- mallocall ... メモリブロックを可能な限り確保
- malloc_ba_exec ...
DOS _EXEC
の前後でメモリを確保 - midi_reg ... MIDIボード(YM3802)のレジスタの値を表示
- movem_aipi ...
movem.l (a0)+,a0
命令を実行する。エミュレータの検証用 - mpcm_echcnt ... MPCM.Xの効果音発声数を設定
- N
- nameck_bof ...
DOS _NAMECK
のバッファオーバーフローの動作検証 - namests_bof ...
DOS _NAMESTS
のバッファオーバーフローの動作検証 - newvol ...
DOS _NEWFILE
でボリュームラベルを作成 - ns_sbo ...
DOS _NAMESTS
の内部ルーチンのバッファオーバーフローの動作検証
- nameck_bof ...
- O
- openedfiles ... オープン中のファイルの一覧表示
- openkeep ... ファイルを開いたまま常駐終了する。
DOS _KEEPPR
の動作検証
- P
- R
- reset68k ...
trap #10
命令によるソフトウェアリセット - rewind ...
DOS _SEEK (mode=2, offset=-1)
によるファイルシークの動作検証 - run68_dos_test ... run68の
-f
オプションの動作確認用 - runwaitchk ... メモリを読み込むループの実行時間を計測
- reset68k ...
- S
- si_acc ... 装着されているアクセラレータの種類を表示
- si_emu ... 実行中のエミュレータの種類を表示
- si_memory ... メインメモリとハイメモリの情報を表示
- si_midi ... MIDIボードの種類を表示
- si_model ... 本体の機種名を表示
- si_phantomx ... PhantomXの情報を表示
- si_scsiex ... SCSIボードの機種名を表示
- si_sram ... SRAMの容量と使用状況を表示
- sjis_tbl ... Shift_JISの2バイト文字の文字表を表示
- skeyset ...
IOCS _SKEYSET
によりキー入力を発生し、IOCS _B_KEYINP
で取得 - sp3tx0gr2 ... 画面間プライオリティを特殊な値に設定。エミュレータの検証用
- splimchk ... スプライトの表示限界の検証用
- sq64k ... 画面モードを768×512、65536色に変更
- sram_memsize ... SRAMのメインメモリ容量を書き換える。エミュレータの検証用
- sysport ... システムポート領域の値の表示
- T
- tokikoe ... テキスト画面に特定のメッセージを描画
- U
- uskcg24 ... ユーザー定義外字の文字表をテキスト画面に描画
- uskfontadr ... 外字フォントデータのアドレスを表示
- uskhw_hex ... 半角外字のフォントを文字コード表記に書き換え
- V
- vdispst_time ...
IOCS _VDISPST
による割り込みが発生するまでの時間を計測
- vdispst_time ...
- Z
- zerounit.sys ... ブロックデバイスのユニット数=0の動作検証
一般に、常駐検査を行うプログラムやプログラム本体の後にバッファを確保するプログラムでは メモリを読み書きする前にメモリブロックの大きさを確認しなければなりません。 それを怠ると、メモリブロックが期待より小さな場合にメモリブロックの範囲外を読み書きしてしまい、 他のメモリブロックの内容の破壊、バスエラーによる停止、プログラムの暴走などの問題が生じます。
crampedexec、keepceil、keepcmem などのコードはそのようなプログラムの動作を検証するための補助として、意図的に「小さなメモリブロック」 を作り出します。
より確実に検証するためには、メインメモリ容量を11MB以下にしてください。 メインメモリが12MBだとメモリブロックの範囲外がGVRAMになるため、 スーパーバイザモードになっているとバスエラーが発生せず読み書きできてしまうためです。
PCやネット上での取り扱いを用意にするために、src/内のファイルはUTF-8で記述されています。
X68000上でビルドする際には、UTF-8からShift_JISへの変換が必要です。
あらかじめ、u8tosjをビルドしてインストールしておいてください。
トップディレクトリでmake
を実行してください。以下の処理が行われます。
- build/ディレクトリの作成。
- src/内の各ファイルをShift_JISに変換してbuild/へ保存。
次に、カレントディレクトリをbuild/に変更し、make
を実行してください。
実行ファイルが作成されます。
ファイルを適当なツールで適宜Shift_JISに変換してからmake
を実行してください。
UTF-8のままでは正しくビルドできませんので注意してください。
- Human68k version 3.02
- GNU make 3.79 human68k-1.4 以降
- HAS060.X version 3.09+91 以降
- 作者はHAS060X.Xをhas060.xにリネームして使っています。
- HLKX 1.1.0 以降
- 環境変数
LD=hlkx
を設定するか、make 実行時のコマンドラインオプションで指定してください。 - 指定しない場合はHLKが使用されますが、一部のファイルがビルドされません。
- 環境変数
- gcc2
GNU General Public License version 3 or later.
TcbnErik / 立花@桑島技研
https://github.com/kg68k/xperiment68k