Skip to content

Latest commit

 

History

History
94 lines (60 loc) · 4.52 KB

File metadata and controls

94 lines (60 loc) · 4.52 KB

BackGround Process

bg1pr2th

特に機能はない2個のスレッドを作成して常駐終了します(それぞれの名前はbgthread1bgthread2)。 どちらかのスレッドをbgkillで指定すれば、両方のスレッドを削除して常駐解除します。

bgchangeprc

DOS _CHANGE_PRに相当するベクタをフックし、常駐します。 スレッドが切り換わる際にスレッドIDと切り換え回数を画面右上に表示します。

Human68kの仕様により、スレッドが1つだけの場合は切り換えは起きません。 スレッドが複数あるがスリープしていないスレッドが1つだけの場合は、 前後で同じスレッドではありますが切り換えの処理が行われます。

bgexec

コマンドライン引数で指定したファイルと引数を実行するように、DOS _SEND_PRbgexecdスレッドに コマンドを送ります。 事前にbgexecdを常駐しておく必要があります。

bgexecd

バックグラウンドでファイルを実行する機能を持つ、bgexecdという名前のスレッドを 作成して常駐終了します。 bgexecを使って指定したファイルを実行することができます。 常駐解除はbgkillを使います。

独自の環境変数を持たず親の環境をそのまま使います(手抜き)。

bggetpr

コマンドライン引数で指定した名前のスレッドのスレッド情報をDOS _GET_PRで取得し、 成功した場合はその内容を表示します(d0.lの値がスレッドIDです)。 引数省略時は現在のスレッドを表示します。

bgkill

コマンドライン引数で指定した名前のスレッドに、DOS _SEND_PRで終了要求コマンド($fff9)を 送信します。送信先のスレッドが終了要求コマンドに対応していない場合は意味がありません。

bgontime

バックグラウンドでIOCS _ONTIMEの結果を画面右上に表示する常駐ソフトウェアです。 常駐解除はbgkillを使います。

自発的なスリープを行わず、割り当てられた時間内は時間の取得と表示を繰り返すので フォアグラウンドタスクの実行速度がやや遅くなります。

bgsleeppr

DOS _SLEEP_PRで自分自身のスレッドをスリープします。 コマンドライン引数で動作モードを指定できます。

  • -f ... タスク間通信バッファを勝手に書き換えて受信可能な状態にします。
  • <time> ... 待機時間(ミリ秒単位)を指定できます。 省略時または0指定時は永久にスリープします。

DOS _SLEEP_PRの仕様上、スレッドがタスク間通信を受信できる状態でなければスリープしません。

bgsprocd

bgexecdとほぼ同じ(スレッド名もbgexecd)ですが、メモリの上位から256KBの メモリブロックを確保し、DOS _S_PROCESSでサブのメモリ管理として設定します。 bgexecで実行するプロセスはそのメモリブロック内でメモリが確保されます。

bgkillで終了要求を送信すると、DOS _S_MFREEでサブのメモリ管理の解放を指定して 常駐解除します。Human68kの_S_MFREEの不具合の不具合の影響を受けるので注意してください (サブのメモリ管理内で常駐終了しているプロセスがあるとメモリが破壊されます)。

bgsprocess

メモリの上位から512KBのメモリを確保し、コマンドライン引数で指定した名前のスレッドに対し DOS _S_PROCESSでサブのメモリ管理として設定します。 DOS _KEEPPRによる常駐終了ではなくDOS _EXITで通常の終了を行いますが、その影響は未検証です。

bgsuspendpr

コマンドライン引数で指定した名前のスレッドを、DOS _SUSPEND_PRで強制スリープさせます。

DOS _SLEEP_PRの仕様上、自分自身のスレッドを強制スリープすることはできません。

bgthreadid

コマンドライン引数で指定した名前のスレッドのスレッドIDを表示します。 引数省略時は現在のスレッドIDを表示します。

bggetprを使えばスレッドID以外のスレッド情報も表示できます。

bgwakeup

コマンドライン引数で指定した名前のスレッドに、DOS _SEND_PRで強制スリープ解除コマンド ($fffb)を送信します。