[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1659] ponyets5, toledo5.



  こんばんは、川合です。

  次のバージョンへ向けての開発を進めていたのですが、ひと区切りつ
いたのでベータ公開することにします。フライングにしては早すぎるの
で、一応ponyets5, toledo5と名づけました(笑)。

  主な特徴は以下の通りです。

・もうたった8つとは言わせません!・・・いっぱいマルチタスクでき
  ます。24タスクまでOKです。

・起動速度がUP!・・・画面初期化をFDDアクセスと並行してできるよ
  うにしています。

・メモリ管理に手間取って、20bitメモリがちょっと減少しています。

・隠しコマンドを2つ追加(tasklistとsendsignalU)。詳細は後述。

・モジュールアクセスのためのサービスを追加。ディレクトリ一覧と、
  モジュールの属性、モジュールのサイズの取得ができるようになりま
  した。・・・詳しくは、filecp02.lzh内のソースを見てください。

---

  補足です。

・今回追加したモジュールアクセスのためのサービスは暫定的なものな
  ので、仕様が変更される可能性があります。ご了承ください。

・モジュールタイプ0はディレクトリを意味しますが、ディレクトリに
  対してサイズを要求してはいけません。ディレクトリにはモジュール
  サイズ属性がないんです。サイズを要求できるのは、一般的なモジュ
  ールに対してだけです。

・filec005.binを実行するとタスクディレクトリ内のモジュールが見え
  ます。といっても、stack3とstack0しかありませんが。stack0に対し
  ても自由にアクセスできますが、これはセキュリティーサポートがで
  きていないからです。将来のバージョンでは、stack0へのアクセスは
  制限されます(それでも、シェルが許可すれば自由にアクセスできま
  す)。

・隠しコマンドのうち、tasklistは簡単です。パラメーターなしです。
  起動すると、アプリケーションタスク番号とアプリケーションファイ
  ル名がずらーっとでてきます。

・sendsignalUは2つのパラメーターが必要です。最初の一つは、タスク
  番号です。tasklistで確認した値を書いてください。次の一つは、シ
  グナル番号です。・・・このコマンドは、指定されたタスクに指定さ
  れたシグナルを送ります。

---

  sendsignalUの意義を説明させてください。

  まずmove2を起動して、tasklistでそのタスク番号を調べてください
。それで、そのmove2に対して、シグナル4を送ってください。つまり、

poko>sendsignalU 6 4

などとするわけです。そうすると、move2内の丸が左に動くはずです。

  4〜7のシグナルを送ることで、move2を自由にコントロールできます
。・・・こんなことをするよりも、move2をアクティブにしてカーソル
キーを直接入力した方が簡単です。しかし、これは意義のあることです
。

  シグナル4はカーソルの左を押した時に送信されますが、なにもカー
ソルの左を押さずとも送信できるわけです。この内容をスクリプトに
して順次送信すれば、複雑な踊りをさせることもできます。

  OSASKアプリケーション規格「ぐいぐい00」では、ほとんどすべての
入力情報がシグナルでやり取りされます。これを自由に他のタスクが制
御できるとしたら、どうでしょう。キー入力だけではなく、タイマーな
ども外部から制御できます(今はタイマーシグナルを送るとタイマーの
設定がおかしくなるのでやめてください)。

  今回の例では、カーソルキーも効いたままになっていますが、将来は
完全にキーボードから切り離すこともできるでしょう。そうすれば、「
踊り」が乱れることはありません。また、シェル以外のタスクからシグ
ナルを与えることもできるようになるでしょう。そうすれば、アプリケ
ーションがアプリケーションをコントロールできます。

  move2にとって、シグナル4を受信することは、「←」が押されたこと
を意味すると考えることはできます。しかし、僕はそのように解釈しま
せん。なぜなら、今回のように「←」が押されなくてもシグナルが来る
からです。シグナル4を受信するということは、純粋に、丸を左に動か
して欲しいという外部からの要求なんです。この要求はキーを入力した
せいで来たのかもしれません。他のアプリケーションからの要求なのか
もしれません。

  OSASKアプリにとって、キーバインドの善し悪しはほとんど無意味で
す。そんなものはシェルがアプリごとに個別に設定できますから。1つ
のキーを押すだけで複数のシグナルを発するようにもできるでしょう。
GUIアプリケーションに対するバッチファイルみたいなこともできるで
しょう。他のタスクに制御させれば、さらに複雑なこともできるでしょ
う。そういう可能性の示唆が、このsendsignalUには含まれているんで
す。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/