[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[OSASK 00103] abcdw001.


  こんばんは、川合です。

  [OSASK 00101]でリリースしたabcdw000のバージョンアップ版ができ
たのでリリースします。

    http://osask.jp/files/

  また説明するのが面倒なので、ドキュメントを写しておきます。

-------------------------------------------------------------------------------

・abcdw001アーカイブについて                      2008.04.26 川合秀実

  このソフトウェアはバイナリもソースもドキュメントもすべて川合に著作権があり、
ライセンスはKL-01です。

  この中には5つのソフトウェアが入っています。

---

・abcdw001について

  abcdwというのは開発コードネームで、本当の名前はefg01といいます。これは「
Executer For Guigui01」の略で、要するに「ぐいぐい01」のアプリを実行するため
のソフトウェアです。「ぐいぐい01」はOSASK-HBおよびOSASK ver.4.9以降でサポ
ートされる予定の、OSASKの新アプリ形式です。

  abcdwはefg01のwin32版で、つまりWindows上でOSASKアプリを実行できるのです。
エミュレータなしで。abcdというコードネームはefg01という名前から連想して決めま
した。深い意味はありません。

  使い方は、 efg01 hellonr0.g01 とするだけです。これでhellonr0.g01というアプリ
が実行されます。

  ソース内のDEBUG_MODEを1にしてmakeし直すと、いろいろ表示されるようになります
。「ぐいぐい01」について早く知りたい人はどうぞ。なおまだまだ未完成なので、ほと
んどのAPIが未実装になっています。

  前バージョンのabcdw000には.dataセクションをうまくロードできないというバグが
あったので修正しました。さらにgetnum_api()の機能を少し増やして、その上コマンド
ライン取得APIをつけ、おまけにtekのサポートもつけました。

---

・bim2g01について

  そろそろC言語でアプリを書いてみたいと思い、そのためのリンカを即席で作りまし
た。本当に即席で作ったせいで、リロケーション情報の生成をサポートできていません
。obj2bimの出力した.bimファイルから.g01をでっち上げます。

  これでリンクする場合リロケーション情報が全くないので、文字定数など.dataにあ
るデータをアクセスするのは工夫が要ります。その辺のせこい技はhellonr0を見てくだ
さい。まあ、こんなのを参考にするとかえって混乱するかもしれません。リロケーショ
ン情報を生成できるまともなリンカができれば、こんな不可解なことをしないですみま
す。

---

・hellonr0について

  これはhello, worldをC言語で書いてみようと思って作っただけのものです。しかし
なんと127バイトもあります。まあムダもあるのでそれを減らせばもう少し改善するか
もしれませんが、今のところはとりあえずこんな感じで。

  アプリ名のnrは、no-relocationの略のつもりです。リロケーションができれば、わ
けの分からないSYSHANDLEなんてものを使わずに済むので、分かりやすくなって小さく
もなりそうです。

  まあ今回は、C言語が使えたっていうだけで進歩だということにしてください。いき
なり何もかもまともにはできませんので、すこしずつ。

---

・echonr0について

  これはコマンドライン取得APIがきちんと動作しているのか確認するために作ってみ
たアプリです。いわゆるechoコマンドです。これもnrバージョンなのでソースが汚いし
効率が良くないです。まあそれでも174バイトにはなりました。

---

・calcnr0について

  今までほとんど役に立たないテストアプリばかり作ってきました。それはちょっと退
屈なので「はりぼてOS」のおまけで作ったコマンドライン計算機アプリを移植してみま
した。計算機なら、まあ一応実用といえなくもないかなと。このバージョンは整数演算
しかできないところが実用性に影を落とすわけですが、nr仕様のうちから浮動小数点対
応ってものおかしい気がするので、まあこれはこれでいいとします。

  オリジナルのソースではsprintf()を使っているのですが、golibcのsprintf()はnr環
境ではうまく動かない実装になっているので、今回は使っていません。

  makeすると1.91KBものサイズになり、なんかくやしくなってきたので早速tekで圧縮
しました。とりあえず1.14KBです。

---

・リンク

    http://osask.jp/boyaki04.html
    http://wiki.osask.jp/?GUIGUI01/memo00
    http://wiki.osask.jp/?GUIGUI01/memo01

-------------------------------------------------------------------------------

  それでは。

--
    川合 秀実(KAWAI Hidemi)
OSASK計画代表 / システム設計開発担当
E-mail:kawai !Atmark! osask.jp
Homepage http://osask.jp/


一覧(今月):     投稿順     スレッド順