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

[OSASK 00106] abcdw003.


  こんばんは、川合です。

  abcdw003をリリースしました。bim2g01cやアプリもあります。

    http://osask.jp/files/

  説明はまたしてもドキュメントの丸写しで。

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

・abcdw003アーカイブについて                      2008.05.04 川合秀実

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

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

---

・abcdw003について

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

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

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

  前バージョンのabcdw002からの変更点は次の通りです。「ぐいぐい00」アプリでも活
躍したrjcフォーマットに対応しました。

---

・bim2g01cについて

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

  ただ本当にリロケーション情報なしだとあまりにみっともないので、.rlmというテキ
ストファイルにリロケーション情報を書いてbim2g01に読ませることで、リロケーショ
ン情報を付与できるようにしました(前バージョンではできませんでした)。といって
も、.rlmを書くには.mapや.lstを慎重に参照しなければならず、まだまだといった感じ
です。普通に自動生成できるようにしたいです。

  前バージョンのbim2g01bからの変更点は次の通りです。rjcフォーマットを出力可能
にしました。デフォルトではrjcがかかることになっています。

---

・calc0について

  とりあえず「はりぼてOS」のサンプルアプリであるcalc.hrbを完全移植するのに十分
な機能がやっとefg01にそろったので、早速やってみました。今回はオリジナルどおり
sprintf()を使っています。だからサイズ面のズルはありません。使い方は、

>efg01 calc0.g01 2+3*4

のように使います(コマンドライン電卓です)。

  サイズを比較するとこんな感じになりました。

    calc.hrb     1668バイト -- 「はりぼてOS」用・オリジナル
    calcnr0.g01  1177バイト -- abcdw001でも動くが、sprintfを使ってないズル版
    calc0.g01    1569バイト -- sprintfも使った完全移植版

  とりあえず、ズルなしでも「はりぼてOS」にサイズで勝つことを証明できました。

---

・pi0について

  FPU計算ももちろんできるということをテストするために作りました。円周率を求め
ます。ソースは

    http://hrb.osask.jp/wiki/?advance/FPU

から持ってきました。api_putchar()→g01_putc()しています。そのページにあるよう
に、このプログラムでは3.1415926までしか一致しません。しかも計算時間は結構かか
ります。待ちきれなくなったらCtrl+Cで止めちゃってください。

  このプログラムは242バイトなのですが、実はオリジナルのpi.hrbは229バイトです。
どうやらこのプログラムでサイズ勝負すると「ぐいぐい01」の負けのようです。

  なお、「はりぼてOS」をqemu上で動かし、その中でpi.hrbを実行してみました。その
ときの実行時間と、efg01でpi0.g01を動かしたときの実行時間は(体感で)1.5〜2倍く
らい違っていました。つまり.g01だとOSASK-HB上でもWindows上でも動くわけですが、
efg01を使って動かした場合は、やっぱりエミュレータ上よりは速いということです。
これでefg01の存在意義があると自分でも安心しました(おそらく、Windows上とOSASK-
HBネイティブ上でpi0.g01の実行速度を比較した場合、シングルコアCPU上であれば、
OSASK-HB上のほうがわずかに高速だろうとは思います)。

---

  次回予告

  現在OSASK-HBの最初のバージョンであるpencil000を作っています。ほぼ半分くらい
できました。あと少しです。

---

・リンク

    http://osask.jp/boyaki04.html
    http://wiki.osask.jp/?GUIGUI01/memo00
    http://wiki.osask.jp/?GUIGUI01/memo01
    http://wiki.osask.jp/?GUIGUI01/memo02
    http://wiki.osask.jp/?OSASK-HB
    http://wiki.osask.jp/?OSASK-HB/0001

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

  それでは。

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


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