※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' ); /* キーボードを戻す */
}
上記以外に必要となるもの (ユーザーが用意してください)
SCOOT-C は動作効率を最優先しているため、ZAURUS の CPU にかなり合わせた仕様となっています。そのため C言語仕様として見る分にはかなりの制限が存在します。
例えば構造体が無く実数型もありません。 また long 型も ポインタ型も CPU の仕様に合わせて 20bit サイズの演算となります。 特に大きいのは符号型で、基本的に符号なし演算が中心になります。 これもやはり ZAURUS の CPU 自身が符号付き演算命令を一切持っていないためです。 (言語仕様としては符号情報をコードジェネレータが出力するので、 すべてランタイムライブラリ補うのであれば実装自体は可能です)
さらに、ZAURUS 本体側の制約によって、大幅な機能制限を強いられるケースもあります。 例えば ZAURUS が持つシステムスタックの容量は小さく、 複雑な関数のネストや、AUTO 変数の大量確保(配列はもってのほか)ができません。
このように制約がたいへん多いため、 残念ながらパソコンのソースをそのまま持ってきて、 気楽にそのまま動かせられるほど甘くはありません。 利用を考えている方は、この点を十分理解しておいてください。
より詳しい言語仕様の解説と制限の説明は こちら(マニュアル) を参照してください。
ユーザー登録時の連絡に必要になりますので、 名前とメールアドレスは必ずきちんと記入して下さい。 メール連絡できない方への配布は行っていません。
都合により配布は中止させていただきます。