ZAURUSパソコン化計画

最小のコンピュータ ZAURUS !!

[] 最終更新 1997/01/08
Zaddin/Zlink が v1.42 になりました。UNIX-WS など速いマシンでは 転送がうまくいかない場合があるバグ修正。是非入れ換えて下さい。 zaddin142.tar.gz

New! ■ベクターデザイン内に ZAURUS の新ページオープン!

↑(山大は or.jp からアクセスすると遅いため、最新書き下ろしはこちらにあります)


ZAURUS の Addin ソフトはなぜ遅いのか?

それは、SHARPが提供している Addin 開発キットが BASIC で作成するようになっていて、 かつ公開されている Addin ソフトが全部 BASIC で書かれているからです。

つまり、ZAURUS が持っている Addin 機能とは BASIC インタプリタであり、 PI-4500/5000 以降の ZAURUS は全部 BASIC ROM と BASIC 実行専用メモリを 内蔵しているのです。

しかし!

ZAURUS で動くのは BASIC だけではありません。 直接メイン CPU が実行できるプログラム、 いわゆる「機械語」を走らせることが可能なのです。

今では「機械語」といってもピンとこない人が多いかと思いますが、 「アセンブラプログラムが動くから高速でかつなんでもできる」と思ってください。

アセンブラで書いたプログラムが動くということは、 OS さえ乗せればもはやパソコンとして使用できるということです。

ZAURUS には内部で既にファイル及び DISK 管理用の BIOS(FCS) や IOCS が ROM で提供されており、資料もあるので比較的簡単に利用することができます。

こうして、ZAURUS を最小のパソコンにしてしまおうという野望の元に、 コマンドシェルを初めとする ZAURUS を極限まで使いこなすアプリケーションが 続々と誕生しました。

そのへんのポケコンより遥かにコンパクトで高性能な ZAURUS をパソコンにすべく、 また ZAURUS をさらに便利に使うために「ZauSHell」があるのです。


モノクロ ZAURUS の CPU は?

Z80 説や ARM説などを唱えている人がいるようですが、正確には次のようになります。

メインCPU

SHARPオリジナル SC62015 (ESR-L) 表示や通常の処理、Addinの実行など

サブCPU

Z80 コンパチ 手書き文字認識のみに特化されており、タッチパネル制御と文字認識専用
この (通称)SC62015 は SHARP オリジナルの CPU であり、 BCD による 10進数演算機能を内蔵するなど、 もともと関数電卓やポケコン用に開発されたと思われる特殊な命令セットを持っています。

また基本的に 8bit CPU ですが、 メモリ空間や汎用インデックスレジスタはほとんどが 20bit あり、 セグメントなしに 1Mbyte の空間を自由にアクセスできます。


ZAURUS の Addin BASIC を探る

ZAURUS に搭載されている BASIC は極めて高性能です。 これはもともと SHARP が長年開発販売してきたポケットコンピュータ PC-E500 シリーズと完全に互換性があり、 かつ同シリーズをベースに ZAURUS が作られているからです。

この BASIC は当然ポケットコンピューターで培った動作実績があり、 かつ BCD による10進数演算、倍精度20桁の10進数演算、多彩な数値演算関数、 などなど、関数電卓となんらかわらない強力な計算能力もそのまま受け継いでいます。

そう、実はZAURUSには高度な関数電卓が内蔵されている のです。

しかし半面、この BASIC はすべての数値演算が BCD の 10進数で行われるため、 演算速度には極めて難があります。 BCD の 10進数は 2進化した実数演算ではなく、 内部でも10進数のまま実数演算を行います。 パソコンで使われる2進化浮動小数演算と異なり、 基数変換による誤差が生じないため極めて精度の高い演算ができます。 反面その処理における負荷は浮動少数演算の比ではありません。

この BASIC には整数型は存在せず、 FOR 〜 NEXT によるループカウンタですら BCD による実数演算が使われます。

複雑な変数型による区別や制限がないため極めて理解しやすく 分かりやすい BASIC ではありますが、動作がものすごく遅いのです。

速度の他にも、 値はすべて実数でかつ内部では 8byte の中間コードに展開されるために、 数値定数がやたらメモリを食うという欠点もあります。

特に数値で配列変数を使用すると、非常に大量のメモリを消費してしまうことになります。


機械語プログラムの走らせ方

機械語のプログラムは、Addin BASIC の裏技を使って走らせることができます。 というのも、ZAURUS の Addin BASIC はポケコン、PC-E500 シリーズの BASIC と完全上位コンパチ。 よって、ポケコン BASIC の CALL 命令をそのまま使うことができます。

しかしこの場合、あくまで BASIC の管理下にあり、 メモリも自由に使うことができません。(へたに書き換えると BASIC と衝突する)

そこで! ZauSHell

ZauSHell は、ZAURUS 上で BASIC の管理から独立し、 メモリ管理や機械語プログラムのロードや実行を行うことができます。

いわば一種の OS です。MS-DOS でいえば COMMAND.COM の働きをします。

この ZauSHell 上で動作するように機械語プログラムを作成しておけば、 機械語プログラムも安全に、 かつ簡単にプログラムを呼び出して実行させることができるのです。

実際、ZauSHell 用に、DOS のファイル操作コマンド( DIR , COPY など)や、 汎用テキストエディタや、ゲームなどの各種アプリケーションが作られました。

これらを実際に動かしている、ほとんど ZAURUS はパソコンと変わりません。 動作したときの感動もひとしお、 ZAURUS を誰よりも使いこなしているのだという充実感もあります!

今すぐ試してみましょう!

■こちらにも解説があります

上記バイナリはバージョンアップ更新が遅れる場合があります。最新版が 欲しい場合は この ページから探して下さい。PI-4500 用(一部)も こちら です



X680x0/UNIX 用のザウルス転送、リンク、Addin ローダー Ko-Window用手書きメモローダー、セーバー、コンバータ、 などなど、関連プログラムは 自作プログラムボックス にあります。以下、その一覧。


■以前の ZAURUS パソコン化計画のページの内容(こっちにしか書いてない情報も多数)

■Indexに戻る


作者・著者について
小笠原博之(COR.) oga@dgw.yz.yamagata-u.ac.jp