2013年4月23日火曜日

X-BASIC/68の同名関数またはステートメントとの違い

ここでは、X-BASIC/68とX-BASIC for iOSで同名の関数またはステートメントにおける違いを記述します。
数値引数の型およびリターン値のみ異なる関数もありますが、それについては記述していません(数値引数の型は自動変換されます)。
ここでは、引数の詳細についての説明は省略します。

関数名 apage
X68版書式 int apage(page;char)
iOS版書式 int apage(page;int)
相違点 page番号の設定値
pageの値が全く異なります。必ず定数を使って設定してください。

関数名 a_play
X68版書式 void a_play(na;数値型一次元配列,sf;char,md;char[,lng;char])
iOS版書式 int a_setPlayData(fname;str[,rateNo;int])
int a_play(no;int)
相違点 X68版ではバッファへのデータ登録やサンプリングレートの設定も行いますが、iOS版ではデータ登録はa_setPlayData()で行い、a_play()は再生のみを制御します。

関数名 box
X68版書式 box(sx;int ,sy;int ,ex;int ,ey;int,col;int[,style;int])
iOS版書式 box(sx;float,sy;float,ex;float,ey;float [,style;int])
相違点 座標の他、色コードの指定方法が違います(iOS版ではgcolor()で別途設定します)。
ビットマップにもbitmapBox()があります。

関数名 circle
X68版書式 circle(cx;int ,cy;int ,r;int ,col;int[,startAngle;int] [,endAngle;int] [,hv;int])
iOS版書式 circle(cx;float,cy;float,r;float [,startAngle;float][,endAngle;float][,clockwise;int][,ffill;int][,style;int])
相違点 座標の他、色コードの指定方法が違います(iOS版ではgcolor()で別途設定します)。
startAngle/endAngleの単位が異なります。X68は度、iOSはラジアンです。
角度単位を変換してstartAngle/endAngleを同様に設定しても、描画結果は異なります。X68での描画結果は以下の通りです。








iOSではclockwise,ffill指定が追加されています。
X68の扁平率指定hvがiOSにはありません。
ビットマップにもbitmapCircle()および扁平率を指定できるbitmapEllipse()/bitmapEllipse2()があります。

関数名 fill
X68版書式 fill(sx;int ,sy;int ,ex;int ,ey;int ,col;int)
iOS版書式 fill(sx;float,sy;float,ex;float,ey;float)
相違点 座標の他、色コードの指定方法が違います(iOS版ではgcolor()で別途設定します)。
ビットマップにもbitmapFill()があります。

関数名 line
X68版書式 line(sx;int ,sy;int ,col;int ,style;int)
iOS版書式 line(sx;float,sy;float,ex;float,ey;float[,ffill;int][,style;int])
相違点 座標の他、色コードの指定方法が違います(iOS版ではgcolor()で別途設定します)。
styleの設定に制約があります。
ビットマップにもbitmapLine()があります。

関数名 hsv
X68版書式 int hsv(h;char,s;char,v;char)
iOS版書式 int hsv(h;int,s;int,v;int[,alpha;int])
相違点 h/s/vの値範囲が異なります。 おおよそ次の式で変換出来ます。
h=h68*(360/192)
s=s68*(256/32)
v=v68*(256/32)

関数名 rgb
X68版書式 int rgb(r;char,g;char,b;char)
iOS版書式 int rgb(r;int,g;int,b;int[,alpha;int])
相違点 r/g/bの値範囲が異なります。
X68000の色コードをiOSの色コードに変換するにはx68Color2iOSColor()を使います。

関数名 symbol
X68版書式 symbol(sx;int ,sy;int ,string;str,h;char,mo;char,col;int,an;char)
iOS版書式 symbol(sx;float,sy;float,string;str,fontName;str,pointSize;float)
相違点 座標の他、色コードの指定方法が違います(iOS版ではgcolor()で別途設定します)。
X68版の以下の設定がiOS版にはありません。
h横方向の倍率
V縦方向の倍率
mo文字フォントの種類
an回転角度0~3(90度単位)
moはfontNameとpointSizeで相当します。

関数名 pset
X68版書式 pset(x;int ,y;int ,col;int)
iOS版書式 pset(x;float,y;float)
相違点 座標の他、色コードの指定方法が違います(iOS版ではgcolor()で別途設定します)。
ビットマップにもbitmapPset()があります。

関数名 vpage
X68版書式 vpage(page;char)
iOS版書式 int vpage(page;int,onoff;int)
相違点 pageの値が異なります。また、onoffが追加されています。

ステートメント名 width
X68版書式 width wx
iOS版書式 int width(wx;int[,wy;int][,fzenhan;int])
相違点 iOSでは関数になっています。また、wx=文字数は自由です。

ステートメント名 locate
X68版書式 locate x,y,カーソルスイッチ
iOS版書式 locate(x,y)
相違点 iOSでは関数になっています。また、カーソルスイッチの設定はありません。

関数名 inkey$()
X68版書式 inkey$(0)
iOS版書式 inkey$()
相違点 リアルタイムキー入力
iOSでは引数なし関数になっています。

関数名 pos
X68版書式 pos
iOS版書式 pos()
相違点 iOSでは関数になっています。

関数名 csrlin
X68版書式 csrlin
iOS版書式 csrlin()
相違点 iOSでは関数になっています。

関数名 beep
X68版書式 beep
iOS版書式 beep()
相違点 iOSでは関数になっています。

システム変数名 date$
相違点 iOSでは代入出来ません。

システム変数名 day$
相違点 iOSでは代入出来ません。

システム変数名 time$
相違点 iOSでは代入出来ません。

ステートメント名 goto
相違点 iOSでは行番号は使えません。

関数名 sp_stat(pl;int,md;int)
相違点 引数md=2に対するリターン値が異なります。またこれに伴い、md=3/4/5が追加されています。

関数名 sp_on
X68版 int sp_on([pl1;int][,pl2;int])
iOS版 int sp_on([pl1;int][,pl2;int][prw;int])
相違点 iOS版はprwの指定が出来ます。

関数名 sp_def
X68版 int sp_def(sp;int,na;char1次元配列[,sz;int])
iOS版 int sp_def(sp;int,ptn;intまたはchar1次元配列)
相違点 動作は同じですが、iOS版はパレットを使わない実色指定が可能のため、引数に相違があります。

関数名 sp_pat
X68版 int sp_pat(sp;int,na;char1次元配列[,sz;int])
iOS版 int sp_pat(sp;int,ptn;intまたはchar1次元配列)
相違点 動作は同じですが、sp_def()で与えるパターンの要素内容の違いから、パターンを入れる配列の型が異なります。またリターン値が異なります。

関数名 sp_color
X68版 int sp_color(p;int,col;int[,pb;int])
iOS版 int sp_color(p;int,col;int[,pb;int])
相違点 機能的には同じですが、色の指定方法が異なります。

関数名 bg_fill
X68版書式 int bg_fill(pg;int,sp;int)
iOS版書式 int bg_fill(pg;int,sp;int[,pb;int][,flip;int])
相違点 X68ではspにpbとflipの情報もORで入れ込む必要がありますが、iOS版は分離して与える必要があります。

関数名 bg_put
X68版書式 int bg_put(pg;int,x;int,y;int,sp;int)
iOS版書式 int bg_put(pg;int,x;int,y;int,sp;int[,pb;int][,flip;int])
相違点 X68ではspにpbとflipの情報もORで入れ込む必要がありますが、iOS版は分離して与える必要があります。

関数名 bg_get
X68版書式 int bg_get(pg;int,x;int,y;int)
iOS版書式 int bg_get(pg;int,x;int,y;int[,pb;int][,flip;int])
相違点 X68ではリターン値にpbとflipの情報もORで入っていますが、iOS版は独立して返します。

0 件のコメント:

コメントを投稿