[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[OSASK 00103] abcdw001.
- From: Hidemi KAWAI <kawai !Atmark! osask.jp>
- Date: Sun, 27 Apr 2008 01:02:52 +0900
こんばんは、川合です。
[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/