Win32-ZAURUS SCOOT-C Compiler v1.00

1998/01/10

このプログラムは SHARP の電子手帳 ZAURUS (モノクロ PI-5000以降) の実行ファイルを生成できる開発キットです。 クロスCコンパイラやクロスアセンブラの出力は機械語であり、 ZAURUS 上で極めて高速な Addin として動作します。 プログラムはすべて Win32 のコンソールアプリケーションで、動作確認は Windows95 上でのみ行っています。
特徴
※1 : ZAURUS は BASIC インタープリタを内蔵しており、通常の Addin は BASIC で書かれています。 (SHARP純正の Addin 開発キットも対応は BASIC のみ)

※2 : 通常の BASIC 製 Addin が巨大なのは、 整数型を持たない BCD 10進数型言語のため プログラム中の定数や変数も 10byte 以上の領域を消費しているからです。

※3 : SCOOT-C の C言語はサブセットです(詳しくは後述)。 よってパソコンからの移植には向きませんが、SCOOT-C で書いたプログラムをパソコン上で動かす分には問題ありません。 実際 ZauADV や ZauASM はパソコン版が存在します。


プログラム例
/* SCOOT-C によるプログラムサンプル - 1 */
#include	"system_sc.h"
#include	"stdio_sc.h"

main( int argc, char **argv )
{
	puts( "Hello World!" );
}


/* SCOOT-C によるプログラムサンプル - 2 */
#include	"system_sc.h"
#include	"stdio_sc.h"
#include	"iocs_sc.h"
#include	"graph_sc.h"

main( int argc, char **argv )
{
	register int	i;
	iocs_width( 'A', 'N' );	/* キーボード消去 */
	putch( 12 );		/* 画面消去 */

	for( i= 0 ; i< 230 ; i+= 2 )
		gra_line( 230-i, 0, i, 160, 0 );
	for( i= 0 ; i< 160 ; i+= 2 )
		gra_line( 0, i, 230, i, 2 );

	printf( "push RETURN" );
	getch();

	putch( 12 );		/* 画面消去 */
	iocs_width( 'A', 'P' );	/* キーボードを戻す */
}


/* SCOOT-C によるプログラムサンプル - 3 */
#include	"system_sc.h"
#include	"stdio_sc.h"
#include	"fcs_sc.h"
#include	"iocs_sc.h"

main( int argc, char **argv )
{
	iocs_width( 'A', 'N' );	/* キーボード消去 */
	putch( 12 );		/* 画面消去 */
	printf( "touch screen test\n" );
	for(;;){
		int	key= keyin();
		if( key == '\x03' )		/* [中断] で終了 */
			break;
		if( key == '\0' ){		/* 0 で始まるのは特殊キー */
			int	key2= keyin();  /* 2byte 目の読み出し	*/
			if( key2 == 0x29 ){	/* ペンタッチの場合	*/
				iocs_penpos();
				printf( "pen=(%d,%d)\n", _x_pos, _y_pos );
			}else
				printf( "keycode= %d,%d\n", key, key2 );
		}else{ /* 通常キー */
			printf( "keycode= %d\n", key );
		}
	}
	putch( 12 );		/* 画面消去 */
	iocs_width( 'A', 'P' );	/* キーボードを戻す */
}

動作環境
◇パソコン側

◇ZAURUS側

SCOOT-C 開発キット付属プログラム

上記以外に必要となるもの (ユーザーが用意してください)

  1. perl.exe
    オプティマイザが使用します。 オプティマイズをしなければ無くても構いません。

  2. プリプロセッサ
    Microsoft VisualC++ や、Borland C++ (Builder) のプリプロセッサが利用できます。 汎用的なものであれば、これら以外のプリプロセッサも使えます。

SCOOT-C の制限

SCOOT-C は動作効率を最優先しているため、ZAURUS の CPU にかなり合わせた仕様となっています。そのため C言語仕様として見る分にはかなりの制限が存在します。

例えば構造体が無く実数型もありません。 また long 型も ポインタ型も CPU の仕様に合わせて 20bit サイズの演算となります。 特に大きいのは符号型で、基本的に符号なし演算が中心になります。 これもやはり ZAURUS の CPU 自身が符号付き演算命令を一切持っていないためです。 (言語仕様としては符号情報をコードジェネレータが出力するので、 すべてランタイムライブラリ補うのであれば実装自体は可能です)

さらに、ZAURUS 本体側の制約によって、大幅な機能制限を強いられるケースもあります。 例えば ZAURUS が持つシステムスタックの容量は小さく、 複雑な関数のネストや、AUTO 変数の大量確保(配列はもってのほか)ができません。

このように制約がたいへん多いため、 残念ながらパソコンのソースをそのまま持ってきて、 気楽にそのまま動かせられるほど甘くはありません。 利用を考えている方は、この点を十分理解しておいてください。

より詳しい言語仕様の解説と制限の説明は こちら(マニュアル) を参照してください。


注意事項
  1. あらかじめ readme.txt の最後にある 利用制限 を十分読んだ上で使用してください。同意できない場合はこの SCOOT-C コンパイラやライブラリを使用することは出来ません。

  2. このプログラムはシェアウエア 3500円です。試用期間をこえて使用する場合は、 シェア代金を指定の方法で送金する必要があります。 送金方法はアーカイブ内の readme.txt の最後にあります。

  3. SCOOT-C は C言語コンパイラですが、実際は言語上かなりの制約が存在し、 サブセットとなっています。また言語仕様だけでなく ZAURUS 本体側の制限もあり、 通常の C言語とは大きく仕様が異なっている部分があります。 詳細はマニュアル comp_ref.txt 及び comp_cgsc.txt を参照してください。

  4. よほどのバグでもない限り、 デバッグを含めたサポートは作者の方で行うことが出来ません。 出来る限りユーザー同士の情報交換で対処してください。 ライブラリはすべてソースリストが付属しています。 また必要な情報もほとんどマニュアルとして付属しています。 サンプルなど実際に実用していたコマンド類のソースも多数収録していますので、 それらを活用すればほとんどのケースでの問題は対処できるのではないかと思います。 (場合によってはこちらでの対処も考えます)

  5. 上記サポートの点も踏まえて、かなりマニアックな内容になっています。 必ずマニュアルや付属のドキュメントをきちんと読み、 ある程度は自力で解決できるつもりでないと、 使いこなすのは難しいでしょう。 正直言って一般向けにはあまりお勧めできません。

  6. 作者への連絡はすべて電子メールで行ってください。 この場合、必ずきちんとした個人のメールアドレスでなければなりません。 複数人で共通のアドレスを流用していたり、 他人のメールアドレスを借りての連絡はできません。

  7. ライブラリの著作権はすべて作者である小笠原博之が有しています。 シェア代金を支払いユーザー登録を行った場合は、SCOOT-C コンパイラを使って作成したプログラムやライブラリを利用したプログラムを、 フリーソフトウエアとして再配布することが可能です。 この場合は配布の際に許可を取る必要はありません。

  8. 実際の動作には、SCOOT-C 以外に必要なツールがあります。 それらの入手とセットアップは各自行ってください。

  9. この SCOOT-C クロスコンパイラ一式は、小笠原博之があくまで個人的に作成したもので、 実際の ZAURUS での動作はすべてメーカーの保証外です。 メーカーへの問い合わせは絶対にしないでください。

  10. SCOOT-C が生成するのは機械語のプログラムなので、 ちょっとしたミスやバグによって本体内のメモリがすべて消えてしまう 可能性があります。 あくまで利用者の責任において使用してください。

  11. 以前 ZauSH-ML で限定公開した X680x0 版および Linux 版 SCOOT-C も、以後 readme.txt の利用制限に従うものとします。 X680x0 及び Linux 版 SCOOT-C コンパイラの配布は今後一切行わず、 また所有者かつユーザー登録された方も絶対に他人に譲渡しないでください。 あくまで一般公開は Win32版のみとさせていただきます。

  12. PI-8000 での動作確認は一切行っていません。作者は PI-8000 を触ったことがありません。

マニュアル


ダウンロード

ユーザー登録時の連絡に必要になりますので、 名前とメールアドレスは必ずきちんと記入して下さい。 メール連絡できない方への配布は行っていません。

都合により配布は中止させていただきます。


ZAURUSのページに戻る

TopPageへ戻る Ko-Window UNIX その他 dipsw2 X680x0

小笠原博之(COR.) oga@art.udn.ne.jp