[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[OSASK 00106] abcdw003.
- From: Hidemi KAWAI <kawai !Atmark! osask.jp>
- Date: Sun, 04 May 2008 22:06:14 +0900
こんばんは、川合です。
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/