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

[OSASK 00107] abcdm000.


  こんにちは、川合です。

  abcdm000をリリースしました。efg01のMonaOS版です。

    http://osask.jp/files/

  説明はいつも通りドキュメントの丸写しで。

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

・abcdm000アーカイブについて                      2008.05.05 川合秀実

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

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

---

・abcdm000について

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

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

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

  APIの実装度は、Windows版であるabcdw003相当になっています。abcdw003は
2008.05.05時点での最新版です。

  ソースについて:tek.cppを適当に作ってみた範囲では、どうも不可解な現象を克服
することができませんでした。そこでabcdw003でtek.gasをmakeし、そのtek.gasを使っ
てみたところ、一発で問題は解決しました。g++のバージョンの問題なのか、C++化の影
響なのか、まあよく分からないのですが、とりあえずうまくいったのでこれで良しとし
ています。そんなわけで、もし.gasではないソースを読みたいときは、win32版のソー
スをあたってください。

---

・hellok01について

  ただコンソールに「hello, world」と表示するだけのサンプルアプリです。この手の
プログラムが何バイトで書けるのかを確認するために作りました。これは初期の頃にハ
ンドアセンブルで作ったバイナリなので、ソースが存在しません。

  結局27バイトになりました。これは32ビットプログラムでの実装例としては、OSを問
わず世界最小です。

---

・calc0について

  これは「30日でできる!OS自作入門」内で出てくるコマンドライン計算機を、「ぐい
ぐい01」に移植したものです。整数の加減乗除ができます。カッコも使えます。

>efg01 calc0.g01 2+3*4

のように使います(コマンドライン電卓です)。MonaOS版では.g01ファイルのパスをフ
ルパスで書かなければいけないので注意してください。

  ソースプログラムはabcdw003に同梱されています。

---

・pi0について

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

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

から持ってきました。api_putchar()→g01_putc()しています。そのページにあるよう
に、このプログラムでは3.1415926までしか一致しません。しかも計算時間は結構かか
ります。少しでも速く実行させたい人は、実機上でMonaOSを動かすか、もしくは後述の
abcdw003(efg01.exe)を使うといいと思います。

  このプログラムは242バイトなのですが、実はオリジナルのpi.hrbは229バイトです。
どうやらこのプログラムでサイズ勝負すると「ぐいぐい01」の負けのようです。他の比
較では全部勝っているのですが・・・。アプリのサイズが小さくなるようにAPIを再設
計したにもかかわらず、初心者向け教材用OSのAPIに負けるなんて、たとえレアケース
だとしてもちょっとくやしいです。

  ソースプログラムはabcdw003に同梱されています。

---

・abcdw003

  Windows版のefg01です。使い方はabcdm000と同じです。

  ソースプログラムはabcdw003に同梱されています。

---

・謝辞

  abcdm000の開発に際して、MonaOSアプリ作成初心者の僕にいろいろ教えてくださった
Gakuさんとhigeponさん、どうもありがとうございました。またMonaADKにもとても助け
られました。関係者の皆様にお礼申し訳上げます。

---

・リンク

    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/


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