X68互換/便利/カード関数
// X68互換関数
X-BASIC'はX-BASIC/68のプログラムをそのまま動かすことではなく、
X-BASIC自体をiOS上で動かすことを目的として開発したため、同名の関数でも異なる引数や
動作をするものが多数あります。
しかし、実際のところiOS版上で新規に作られるプログラムは殆ど無く、68版を移植するためには
相互の違いを把握した上でプログラムを組む必要が有るため、かなり手間がかかりました。
X68互換関数は、X-BASIC/68とほぼ同じ引数を持ち、動作をする関数を用意することでこの手間を
削減しようとしたものです。
X68互換動作モードを作ろうかとも思いましたが、大変なので、別関数群にしています。
このため、関数名の書き換えは必須となりますが、それさえ行えば、移植作業がかなり楽になると思います。
X68互換関数の利用には、X-BASIC/68の知識が必要になる場合があります。
なお、X68互換関数を使うためには、設定で「X68互換関数」が「オン」になっている必要があります。
関数名 | tColorX68 |
書式 | tColorX68(n;int) |
機能 | テキストの描画色と属性を設定する |
引数 |
n | 色&属性コード;0~15。以下の成分で構成されて、OR指定できます。
bit0,1 | 色;0=黒、1=シアン、2=黄色、3=白 |
bit2 | 強調(太字) |
bit3 | リバース(反転) |
「例」5=強調シアン,15=リバース強調白
|
色を変更するにはtColorPaletX68()を使用します。
|
戻り値 | なし |
X-BASIC/68関数名 | color |
サンプル | afuncX68Test.bas |
関数名 | tColorPaletX68 |
書式 | tColorPaletX68([c0;int][,c1;int][,c2;int][,c3;int]) |
機能 | tColorX68()で設定する色コードに対する実描画色を設定する |
引数 |
それぞれ省略した場合は前の値のまま。
|
戻り値 | なし |
補足 | RUN時には、毎回初期化されます |
X-BASIC/68関数名 | color[] |
サンプル | afuncX68Test.bas |
関数名 | vpageX68 |
書式 | vpageX68(page;int[,fsprite;int]) |
機能 | グラフィックの表示ページとスプライトの表示を指定する。 |
引数 |
page | 表示対象ページ
ビット対応で同時に複数ページを指定できる。指定してないページは非表示になる。
bit0 | グラフィック画面0 |
bit1 | グラフィック画面1 |
bit2 | グラフィック画面2 |
bit3 | グラフィック画面3 |
|
fsprite | スプライトを表示するかどうか
|
|
戻り値 | なし |
補足 | テキスト画面は常に表示されるよう設定される |
X-BASIC/68関数名 | vpage |
サンプル | p68-246g.bas |
関数名 | apageX68 |
書式 | apageX68(page;int) |
機能 | グラフィックの読み書きするページを設定する。 |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | apage |
サンプル | p68-246g.bas |
関数名 | homeX68 |
書式 | homeX68(page;int,hx;int,hy;int) |
機能 | グラフィックページの表示開始位置を設定する。 |
引数 |
page | 対象ページ | 0〜3 |
hx,hy | 表示開始座標 | グラフィック座標 |
|
戻り値 | なし |
X-BASIC/68関数名 | homeが近いが本質は異なる。
X68は実画面サイズと表示画面サイズが異なることがあるため、
home()は実画面の内どの座標からを表示に出すかを設定するが、
iOSで常には実画面サイズ=表示画面サイズなので画面表示の開始位置の設定となる。
また、X68では実画面サイズ=表示画面サイズのときは球面スクロールするが、iOSではしない。
|
サンプル | p68-246g.bas |
関数名 | gColor16X68 |
書式 | gColor16X68(pal;int) |
機能 | 16色パレットコードでグラフィック描画色を設定する。
X68互換関数ではないグラフィック描画関数の描画色設定に使う。
|
引数 |
実描画色を変更するにはsetgPalet16X68()を使用します。
|
戻り値 | なし |
X-BASIC/68関数名 | なし |
サンプル | afuncX68Test.bas |
関数名 | gColorX68 |
書式 | gColorX68(col;int) |
機能 | X68K色コードでグラフィック描画色を設定する。
X68互換関数ではないグラフィック描画関数の描画色設定に使う。
|
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | なし |
サンプル | rgbX68X68.bas,hsvX68X68.bas |
関数名 | setgPalet16X68 |
書式 | setgPalet16X68(pal;int,col;int) |
機能 | 互換/便利関数の16色パレットコードに対応する実描画色を設定する |
引数 |
pal | 設定したい色パレットコード | 0~15 |
col | 実描画色の合成RGB値 | |
|
戻り値 | なし |
補足 | RUN時には、毎回初期化されます |
X-BASIC/68関数名 | palet |
サンプル | c13down.bas |
関数名 | getgPalet16X68 |
書式 | int getgPalet16X68(pal;int) |
機能 | 16色パレットコードに対応する実描画色を読み出す |
引数 |
|
戻り値 | 実描画色の合成RGB値 |
補足 | 標準のパレットは、X68の表示色と同じです |
X-BASIC/68関数名 | なし |
サンプル | afuncX68Test.bas,cPyramid.bas |
関数名 | pset16X68 |
書式 | pset16X68(x;int,y;int,pal;int) |
機能 | 16色パレットコードで点を描画する |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | pset ただし、座標はクリッピングに対応しない。 |
サンプル | afuncX68Test.bas |
関数名 | line16X68 |
書式 | line16X68(sx;int,sy;int,ex;int,ey;int,pal;int[,style]) |
機能 | 16色パレットコードで直線を描画する |
引数 |
sx,sy | 始点座標 |
ex,ey | 終点座標 |
pal | 16色パレットコード |
style | ラインスタイルを設定する
16ビットで、bit=1のところが描画される。
省略したときは&hffff。
補足:
iOSでは必ず描画から始めなければならないので、
最上位ビットからに0が続く場合(非描画から始まる場合)、
その分は最下位ビットからに移動される。
「例」&h5555 (01010101 01010101) は &haaaa (10101010 10101010)に変換される
|
|
戻り値 | なし |
X-BASIC/68関数名 | line
ただし、ラインスタイルの指定には上記の通り制約がある。
また、座標はクリッピングに対応しない。
|
サンプル | afuncX68Test.bas |
関数名 | box16X68 |
書式 | box16X68(sx;int,sy;int,ex;int,ey;int,pal;int[,style;int]) |
機能 | 16色パレットコードで四角を描画する |
引数 |
sx,sy | 始点座標 |
ex,ey | 終点座標 |
pal | 16色パレットコード |
style | ラインスタイル 詳細はline16X68()のstyle参照のこと。 省略したときは&hffff |
|
戻り値 | なし |
X-BASIC/68関数名 | box
ただし、ラインスタイルの指定には上記の通り制約がある。
また、座標はクリッピングに対応しない。
|
サンプル | afuncX68Test.bas |
関数名 | fill16X68 |
書式 | fill16X68(sx;int,sy;int,ex;int,ey;int,pal;int) |
機能 | 16色パレットコードで四角を塗りつぶす |
引数 |
sx,sy | 始点座標 |
ex,ey | 終点座標 |
pal | 16色パレットコード |
|
戻り値 | なし |
X-BASIC/68関数名 | fill ただし、座標はクリッピングに対応しない。 |
サンプル | p68-246g.bas,afuncX68Test.bas |
関数名 | circle16X68 |
書式 | circle16X68(cx;int,cy;int,r;int,pal;int[,st;int][,ed;int][,hv;int]) |
機能 | 16色パレットコードで円または円弧を描画する |
引数 |
cx,cy | 中心座標 |
r | 半径 |
pal | 16色パレットコード |
st | 描画開始角度(度) 角度は水平を0として反時計回り 省略すると0 負数を指定すると扇を描く。 扁平率を指定した時は常に0とみなされる。
|
ed | 描画終了角度(度) 省略すると360 負数を指定すると扇を描く。 扁平率を指定した時は常に360とみなされる。
|
hv | 扁平率:0〜65535
>256 | 縦長楕円 |
<256 | 横長楕円 |
=256または0 | 縦横とも=r;真円 |
省略すると256(真円)。
|
|
戻り値 | なし |
X-BASIC/68関数名 | circle
ただし、座標はクリッピングに対応しない。
また、縦扁平率の結果はX68と全く同じではない(4096くらいまではほぼ同じ)。
|
サンプル | p68-246g.bas,afuncX68Test.bas |
関数名 | symbol16X68 |
書式 | symbol16X68(sx;int,sy;int,mes;str,bai;float,pal;int,font;str[,fontsz;int]) |
機能 | 16色パレットコードで文字列を描画する |
引数 |
sx,sy | 始点座標
|
mes | 文字列
|
bai | 描画倍率 X68と異なり、縦横に対し両方に作用します。
|
pal | 16色パレットコード |
font | フォント名
|
fontsz | フォントサイズ 省略時は16 |
|
戻り値 | なし |
補足 | 指定されたフォントが見つからないときはデフォルトフォントを使う |
X-BASIC/68関数名 | symbol
ただし、倍率、フォント名、サイズ指定が異なる。
また、座標はクリッピングに対応しない。 |
サンプル | p68-246g.bas,afuncX68Test.bas |
関数名 | psetX68 |
書式 | psetX68(x;int,y;int,col;int) |
機能 | X68色で点を描画する |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | pset ただし、座標はクリッピングに対応しない。 |
サンプル | p68-246g.bas |
関数名 | lineX68 |
書式 | lineX68(sx;int,sy;int,ex;int,ey;int,col;int[,style]) |
機能 | X68色で直線を描画する |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | line
ただし、ラインスタイルの指定には上記の通り制約がある。
また、座標はクリッピングに対応しない。
|
サンプル | p68-246g.bas |
関数名 | boxX68 |
書式 | boxX68(sx;int,sy;int,ex;int,ey;int,col;int[,style;int]) |
機能 | X68色で四角を描画する |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | box
ただし、ラインスタイルの指定には上記の通り制約がある。
また、座標はクリッピングに対応しない。
|
サンプル | p68-246g.bas |
関数名 | fillX68 |
書式 | fillX68(sx;int,sy;int,ex;int,ey;int,col;int) |
機能 | X68色で四角を塗りつぶす |
引数 |
sx,sy | 始点座標 |
ex,ey | 終点座標 |
col | X68色 |
|
戻り値 | なし |
X-BASIC/68関数名 | fill ただし、座標はクリッピングに対応しない。 |
サンプル | afuncX68Test.bas |
関数名 | circleX68 |
書式 | circleX68(cx;int,cy;int,r;int,col;int[,st;int][,ed;int][,hv;int]) |
機能 | X68色で円または円弧を描画する |
引数 |
cx,cy | 中心座標 |
r | 半径 |
col | X68色 |
st | 描画開始角度(度) 角度は水平を0として反時計回り 省略すると0 負数を指定すると扇を描く。 扁平率を指定した時は常に0とみなされる。
|
ed | 描画終了角度(度) 省略すると360 負数を指定すると扇を描く。 扁平率を指定した時は常に360とみなされる。
|
hv | 扁平率。詳細はcircle16X68()の扁平率を参照のこと。
|
|
戻り値 | なし |
X-BASIC/68関数名 | circle
ただし、座標はクリッピングに対応しない。
また、縦扁平率の結果はX68と全く同じではない。
|
サンプル | p68-246g.bas |
関数名 | symbolX68 |
書式 | symbolX68(sx;int,sy;int,mes;str,bai;float,col;int,font;str[,fontsz;int]) |
機能 | X68色で文字列を描画する |
引数 |
sx,sy | 始点座標
|
mes | 文字列
|
bai | 描画倍率 X68と異なり、縦横に対し両方に作用します。
|
col | X68色 |
font | フォント名
|
fontsz | フォントサイズ 省略時は16 |
|
戻り値 | なし |
補足 | 指定されたフォントが見つからないときはデフォルトフォントを使う |
X-BASIC/68関数名 | symbol
ただし、倍率、フォント名、サイズ指定が異なる。
また、座標はクリッピングに対応しない。
|
サンプル | afuncX68Test.bas |
関数名 | rgbX68 |
書式 | int rgbX68(r;int,g;int,b;int) |
機能 | X68の個別RGB値から合成RGB値を計算する。 |
引数 | X68の色成分
r | 赤成分 | 0~31 |
g | 緑成分 | 0~31 |
b | 青成分 | 0~31 |
|
戻り値 | 合成RGB値
リターン値の最下位8ビットにはアルファ値が&hffで入っているため、
X68の処理でよく出てくるrgb(r,g,b)+1という式はrgbX68(r,g,b)と変更します。
iOSには輝度ビットはないので、+1は不要になります。
|
X-BASIC/68関数名 | rgb |
サンプル | p68-246g.bas |
関数名 | hsvX68 |
書式 | int hsvX68(h;int,s;int,v;int) |
機能 | X68のHSV値から合成RGB値を計算する。 |
引数 | X68のHSV成分
h | 色相(h)成分 | 0~191 |
s | 飽和度(s)成分 | 0~31 |
v | 明るさ(v)成分 | 0~31 |
|
戻り値 | 合成RGB値
リターン値の最下位8ビットにはアルファ値が&hffで入っているため、
X68の処理でよく出てくるhsv(h,s,v)+1という式はhsvX68(h,s,v)と変更します。
iOSには輝度ビットはないので、+1は不要になります。
|
X-BASIC/68関数名 | hsv |
関数名 | rgbX68X68 |
書式 | int rgbX68X68(r;int,g;int,b;int) |
機能 | X68の個別RGB値からX68の65536色を計算する。 |
引数 | X68の色成分
r | 赤成分 | 0~31 |
g | 緑成分 | 0~31 |
b | 青成分 | 0~31 |
|
戻り値 | X68の65536色 |
X-BASIC/68関数名 | rgb |
サンプル | rgbX68X68.bas |
関数名 | hsvX68X68 |
書式 | int hsvX68X68(h;int,s;int,v;int) |
機能 | X68のHSV値からX68の65536色を計算する。 |
引数 | X68のHSV成分
h | 色相(h)成分 | 0~191 |
s | 飽和度(s)成分 | 0~31 |
v | 明るさ(v)成分 | 0~31 |
|
戻り値 | X68の65536色 |
X-BASIC/68関数名 | hsv |
サンプル | hsvX68X68.bas,p68-246g.bas |
関数名 | randX68 |
書式 | int randX68([type;int]]) |
機能 | 0~32767の整数疑似乱数を発生する |
引数 |
type
|
乱数の発生方式
NOまたは省略時 | V3.00未満と同じ |
YES | より周期の長い乱数列を返す |
|
|
戻り値 | 乱数値 |
X-BASIC/68関数名 | rand |
関数名 | contrastX68 |
書式 | contrastX68(ns;int,ne;int,spd;float[,mode;int]) |
機能 | 画面の明るさ(コントラスト)を設定する |
引数 |
ns | コントラストの初期値 | 0~15 |
ne | コントラストの最終設定値 | 0~15 |
spd | 変化速度 | wait()の引数と同じ |
mode | 設定する画面 |
以下の定数のORで指定する。
CONTRAST_GRAPHIC | グラフィック画面 |
CONTRAST_TEXT | テキスト画面 |
CONTRAST_SPRITE | スプライト画面 |
省略時は全て。
|
|
戻り値 | なし |
X-BASIC/68関数名 | contrast()が近い。
X68のcontrast()は現在の明るさから指定値までをアナログ的に変化させるが、
iOSは現在の明るさを保存していないので、開始値と終了値の両方を与える必要がある。
|
サンプル | afuncX68Test.bas |
関数名 | bg_fillX68 |
書式 | int bg_fillX68(pg;int,pd;int) |
機能 | 指定されたBGテキストページをパターンで埋める |
引数 |
pg | BGテキストページ番号 | 0/1 |
pd | パターンデータ | 次のビット構成にする。
bit0~7 | パターン番号 | 0~255 |
bit8~11 | パレットブロック | 1~15 0は使えない |
bit14 | 水平反転 | 1=反転,0=普通 |
bit15 | 垂直反転 | 1=反転,0=普通 |
|
|
戻り値 | 常に0 |
補足 |
|
X-BASIC/68関数名 | bg_fill |
関数名 | bg_putX68 |
書式 | int bg_putX68(pg;int,x;int,y;int,pd;int) |
機能 | 指定されたBGテキストページの座標にパターンを登録する。 |
引数 |
pg | BGテキストページ番号 | 0/1 |
x,y | BGテキストページ座標 | x,y共に0~127 |
pd | パターンデータ | 次のビット構成にする。
bit0~7 | パターン番号 | 0~255 |
bit8~11 | パレットブロック | 1~15 0は使えない |
bit14 | 水平反転 | 1=反転,0=普通 |
bit15 | 垂直反転 | 1=反転,0=普通 |
|
|
戻り値 | 常に0 |
補足 |
|
X-BASIC/68関数名 | bg_put |
関数名 | bg_getX68 |
書式 | int bg_getX68(pg;int,x;int,y;int) |
機能 | 指定されたBGテキストページの座標から登録されているパターン番号を読み出す。 |
引数 |
pg | BGテキストページ番号 | 0/1 |
x,y | BGテキストページ座標 | x,y共に0~127 |
|
戻り値 |
パターンデータ。次のビット構成になっている。
bit0~7 | パターン番号 | 0~255 |
bit8~11 | パレットブロック | 1~15 |
bit14 | 水平反転 | 1=反転,0=普通 |
bit15 | 垂直反転 | 1=反転,0=普通 |
|
補足 |
- この関数を使うときは、パターンは0〜255しか使わないこと。
- この関数は、設定でスプライト機能が有効になっていなければ使えません。
|
X-BASIC/68関数名 | bg_get |
関数名 | sp_colorX68 |
書式 | int sp_colorX68(pc;int,col;int[,pb;int]) |
機能 | X68000の色コードでパレットブロックを定義する |
引数 |
pc | パレットコード | 0~15 基本的には0は変更しないこと(透明固定) |
col | 割り付ける色 | X68000の色コード |
pb | パレットブロック番号 | 1~31 省略時は1。0は使えない。 |
|
戻り値 | 変更する前のiOS色の合成RGB値 |
補足 |
|
X-BASIC/68関数名 | sp_color |
関数名 | sp_setX68 |
書式 | int sp_setX68(pl;int[,x;int][,y;int][,pd;int][,prw;int]) |
機能 | スプライトパターンをプレーンに登録、表示位置を設定する。
sp_move()より細かい設定が出来る。 |
引数 |
pl | プレーン番号 | 0~255 |
x,y | 表示座標 | int範囲内で自由(負数~画面幅以上) 省略すると前の表示座標のまま(初期は(16,16))
表示画面の左上座標は(16,16)になる(sp_move()とは異なる)。
|
pd | パターンデータ | 次のビット構成にする。
bit0~7 | パターン番号 | 0~255 |
bit8~11 | パレットブロック | 1~15 0は使えない |
bit14 | 水平反転 | 1=反転,0=普通 |
bit15 | 垂直反転 | 1=反転,0=普通 |
|
prw | 表示優先順位 |
0=SPRITE_PRW_HIDE | 表示しない |
1=SPRITE_PRW_BG0BG1SP | BG0>BG1>スプライト |
2=SPRITE_PRW_BG0SPBG1 | BG0>スプライト>BG1 |
3=SPRITE_PRW_SPBG0BG1 | スプライト>BG0>BG1(省略時) |
|
|
戻り値 | 常に0 |
補足 |
|
X-BASIC/68関数名 | sp_set |
// 便利関数
便利関数は、プログラム記述上、よく使われる処理を関数化したものです。
便利関数を使うためには、設定で「X68互換関数」が「オン」になっている必要があります。
関数名 | localizedString |
書式 | str localizedString(js;str,es;str) |
機能 | iOSの言語設定に応じ、文字列を返す |
引数 |
js | 日本語環境時に返す文字列 |
es | 日本語以外環境時に返す文字列 |
|
戻り値 | jsまたはesどちらか |
サンプル | v3test.bas |
関数名 | hitKey |
書式 | hitKey([fcls;int][,js;str][,es;str]) |
機能 | タップされるまで待つ |
引数 |
fcls | タップした後にテキスト画面をクリアするかどうか YES=クリアする(省略時),NO=しない |
js | 日本語環境時に表示する文字列。省略時は"ここをタップしてください" |
es | 日本語以外環境時に表示する文字列。省略時は"Tap Here" |
|
戻り値 | なし |
補足 |
- タップを待っている間、乱数がかき回される
- ファンクションキーを書き換えるので、前後でそれを使う場合は再設定すること
|
関数名 | getch |
書式 | int getch() |
機能 | 何かキーコードが返されるまで待ち、返されたらそのキーコードを返す |
引数 | なし |
戻り値 | キーコード |
補足 | 予め、タッチエリアまたはファンクションキーによりキーコードを設定しておく必要がある。 |
関数名 | vwait |
書式 | int vwait(tm;int) |
機能 | 1/60sec=16.6ms単位で時間待ちをする |
引数 |
|
戻り値 | なし |
例 | vwait(60) :// 1秒待つ |
関数名 | rand2 |
書式 | int rand2(seed;int[,type;int]) |
機能 | 0~seed-1の整数疑似乱数を発生する |
引数 |
seed | 乱数上限値+1 |
type | 乱数の発生方式
NOまたは省略時 | V3.00未満と同じ |
YES | より周期の長い乱数列を返す |
|
|
戻り値 | 整数乱数値 |
関数名 | srand2 |
書式 | srand2() |
機能 |
rand()/
rnd()/
rand2()の系列を時計から初期化する。
時計から初期化するので、呼び出しごとに異なった系列が自動設定される。
複数回連続で呼び出しても、必ず異なる系列になる。
|
引数 | なし |
戻り値 | なし |
関数名 | circle16X68b |
書式 | circle16X68b(x;int,y;int,r;int,pal;int) |
機能 | 16色パレットコードで円をビットマップに描画する |
引数 |
cx,cy | 中心ビットマップ座標 |
r | 半径 |
pal | 16色パレットコード |
|
戻り値 | なし |
サンプル | afuncX68Test.bas,cTen.bas |
関数名 | paint16X68b |
書式 | paint16X68b(x;int,y;int,pal;int) |
機能 | 16色パレットコードでビットマップ内単色領域を塗りつぶす |
引数 |
x,y | ビットマップ座標 |
pal | 16色パレットコード |
|
戻り値 | なし |
サンプル | afuncX68Test.bas,cTen.bas |
関数名 | circleX68b |
書式 | circleX68b(x;int,y;int,r;int,col;int) |
機能 | X68色で円をビットマップに描画する |
引数 |
cx,cy | 中心ビットマップ座標 |
r | 半径 |
col | X68色 |
|
戻り値 | なし |
サンプル | afuncX68Test.bas |
関数名 | paintX68b |
書式 | paintX68b(x;int,y;int,col;int) |
機能 | X68色でビットマップ内単色領域を塗りつぶす |
引数 |
|
戻り値 | なし |
サンプル | afuncX68Test.bas |
関数名 | x68Color2iOSColor |
書式 | int x68Color2iOSColor(col;int[,r;int,g;int,b;int,alpha;int]) |
機能 | X68000の16bit色コードをiOSの色コードに変換する。 |
引数 |
col | X68000での16bit色コード。ただし、輝度ビットは無視される。 |
r,g,b,alpha | 各色成分を返す。値を入れるため必ず変数で指定すること。 省略した場合は戻り値のみ使う。 |
|
戻り値 | 合成RGB色 |
補足 | 単純に算術変換しているため、実際の色合いはX68000実機と異なる場合があります。 |
サンプル | spSet.bas,p68-246g.bas |
関数名 | x68256Color2iOSColor |
書式 | int x68256Color2iOSColor(col;int[,r;int,g;int,b;int,alpha;int]) |
機能 | X68000の256色コードをiOSの色コードに変換する。 |
引数 |
col | X68000での256色コード |
r,g,b,alpha | 各色成分を返す。値を入れるため必ず変数で指定すること。 省略した場合は戻り値のみ使う。 |
|
戻り値 | 合成RGB色 |
補足 | X68000実機での発色に合わせた色コードを返します。 |
サンプル | c256.bas,ChrisGray.bas |
関数名 | x6816Color2iOSColor |
書式 | int x6816Color2iOSColor(col;int[,r;int,g;int,b;int,alpha;int]) |
機能 | X68000の16色コードをiOSの色コードに変換する。 |
引数 |
col | X68000での16色コード |
r,g,b,alpha | 各色成分を返す。値を入れるため必ず変数で指定すること。 省略した場合は戻り値のみ使う。 |
|
戻り値 | 合成RGB色 |
補足 | X68000実機での発色に合わせた色コードを返します。 |
サンプル | p68-246g.bas,フラクタルグラフィックス.bas |
関数名 | ptrn16X68toiOS |
書式 | ptrn16X68toiOS(wxy;int,ptrnX68();char,ptrniOS();int[,fdouble;int][ftoumei;int]) |
機能 | X68の16色パターンをiOSフルカラーパターンに変換する |
引数 |
wxy | パターンデータの要素数 x幅*y幅 |
ptrnX68 | X68の16色パターン 1要素=1バイトの上位下位4ビットずつに16色パレットコードが格納される形式。
要素数はwxy/2以上必要 |
ptrniOS | 変換後のフルカラーパターンデータを格納する配列
1要素にパレットコードを実色に変換した合成RGB色が入る。
要素数はfdouble=NOでwxy、YESでwxy*2以上必要となる。
|
fdouble | 横倍化するかどうか YES=する、NO=しない(省略時) |
ftoumei | パレットコード0を透明にするかどうか YES=する、NO=しない(省略時) |
|
戻り値 | なし |
サンプル | afuncX68Test.bas,cBJ.bas |
関数名 | ptrn8to16 |
書式 | ptrn8to16(ptrnX68();char,ptrn16();char) |
機能 | 8*8のパターンデータを16*16のパターンデータに変換する
X68のスプライトパターンは画面モードによって8*8のことがあるが、iOSでは16*16のみなので、その変換のためにある。
|
引数 |
ptrn8 | 8*8のパターンデータ 要素数は8*8=64バイト以上必要 |
ptrn16 | 変換後のパターンデータを格納する配列 要素数は16*16=256バイト以上必要 |
|
戻り値 | なし |
サンプル | p40.bas |
関数名 | PCMplay |
書式 | PCMplay(no;int,fwait;int) |
機能 | 登録されている音声を再生する |
引数 |
no | バッファー番号 |
fwait | 再生終了を待つかどうか YES=待つ,NO=待たない |
|
戻り値 | なし |
関数名 | deg2rad |
書式 | float deg2rad(deg;float) |
機能 | 度をラジアンに変換する |
引数 | 度 |
戻り値 | ラジアン |
サンプル | v3test.bas |
関数名 | rad2deg |
書式 | float rad2deg(rad;float) |
機能 | ラジアンを度に変換する |
引数 | ラジアン |
戻り値 | 度 |
サンプル | v3test.bas |
関数名 | setTouchKeys |
書式 | int setTouchKeys(sx;int,sy;int,xc;int,yc;int,k1x;int,k1y;int,keys();int[,disps();str][,fnt;str][,touchNo();int][,dx;int][,dy;int]) |
機能 | タッチキーを設定&表示する |
引数 |
sx,sy | タッチキーの表示開始座標 |
xc | タッチキーの横個数 |
yc | タッチキーの縦個数 |
k1x,k1y | 1タッチキーの表示幅 |
keys | 設定キー群を格納したxc*yc個の要素を持つ配列。要素に以下の情報を格納する。
0 | ここは表示されない |
&h01〜&hff | キーコード |
+FKEY_NOT_BEGANONLY | エリア外からエリア内に入ってきたときも反応する (設定しない時はそのエリア内をタッチしたときのみ反応する) |
+FKEY_NOT_REPEAT | このキーはリピートしない |
+FKEY_WAKUONLY | 枠のみ描画する(タッチキーにはならない) |
|
disps | キーの表示文字列群を要素に格納した配列
省略した場合は全体がタッチエリアだけの設定になる
要素内容が""の部分は枠線も文字も描画されずタッチエリアだけの設定になる |
fnt | 表示フォント名 dispsが省略された時に限り省略できる |
touchNo | 設定されたタッチエリア番号を格納する配列(設定結果がここに格納される)
予めdim int touchNo(xc*yc個)で用意しておくこと。
省略時はキーの表示のみ行う(タッチエリアの設定は行われない)
|
dx,dy | 1キーごとの表示間隔 省略時は0 |
各引数意味は以下のとおり。
xc=4,yc=3のとき。(必要keys()は4*3=12。)
|
戻り値 | 実設定数。touchNo(0〜戻り値-1)までが使われている |
補足 |
- 表示はグラフィック画面に行われるので、予め表示できるようにしておくこと。
- 実行後はkBackgroundAlpha(0.9),lineWidth(2)になっている
|
サンプル | keyMap.bas,snake2.bas |
関数名 | resetTouchKeys |
書式 | int resetTouchKeys(sx;int,sy;int,xc;int,yc;int,k1x;int,k1y;int,keys();int[,touchNo();int][,dx;int][,dy;int]) |
機能 | タッチキーの表示を消す |
引数 |
各引数は基本的に、setTouchKeys()に与えたものをそのまま与えること。
sx,sy | タッチキーの表示開始座標 |
xc | タッチキーの横個数 |
yc | タッチキーの縦個数 |
k1x,k1y | 1タッチキーの表示幅 |
keys | 設定キー群を格納した配列 |
touchNo | 設定されたタッチエリア番号を格納した配列 省略時はキーの表示のみ消す(エリア設定は解除されない)
| dx,dy | 1キーごとの表示間隔 省略時は0 |
|
戻り値 | なし |
補足 |
表示はグラフィック画面に行われるので、予め表示できるようにしておくこと。
|
補足 | resetTouchKeys()は必ずタッチキーの表示を消します。したがって、setTouchKeys()でタッチエリアのみ設定した時は、
resetTouchKeys()ではなくresetAllTouchKeys()でエリアを解除してください。 |
サンプル | keyMap.bas,snake2.bas |
関数名 | checkCompatible |
書式 | int checkCompatible(deviceType;int[,fdisplay;int]) |
機能 | 実行しているデバイスが指定したデバイス群に含まれるかどうかを調べ、含まれない場合実行不可であることのメッセージを出す。
主に、画面サイズによる実行の可否を確認する目的にある。
|
引数 |
deviceType | デバイス群。以下の定数のor値で指定する。
COMPATIBLE_IPAD | iPad全機種 |
COMPATIBLE_IPODTOUCH4 | iPod touch4 |
COMPATIBLE_IPODTOUCH56 | iPod touch5と6 |
COMPATIBLE_IPODTOUCH | iPod touch全機種 |
COMPATIBLE_IPHONE4 | iPhone 4 |
COMPATIBLE_IPHONE5 | iPhone 5 |
COMPATIBLE_IPHONE6 | iPhone 6 |
COMPATIBLE_IPHONE6PLUS | iPhone 6 Plus |
COMPATIBLE_IPHONE | iPhone 全機種 |
COMPATIBLE_ALL | 全機種 |
COMPATIBLE_IPODTOUCH4_IPHONE4 | iPod touch4とiPhone4 |
COMPATIBLE_IPODTOUCH56_IPHONE5 | iPod touch5/6とiPhone5 |
X-BASIC'がサポートしない機種は含まれません。
|
fdisplay | 非対応時に確認メッセージを出すかどうか
|
|
戻り値 |
YES | この機種は対応している |
NO | この機種は対応していない |
|
サンプル | checkCompatible.bas |
関数名 | versionXBiOSX68$ |
書式 | versionXBiOSX68$() |
機能 | X68互換/便利関数のバージョンを返す |
引数 | なし |
戻り値 | X68互換/便利関数のバージョン文字列 |
// カード関数
カード関数は、トランプなどで使われるカードの表示処理を簡便にする関数群です。
Oh!X 1990年5月号に掲載されたCARD.FNCを移植したものです。
都合上、関数の名前は変更してありますが、ほぼ同じ動作をします。
このカード関数を使うためには、設定で「X68互換関数」が「オン」になっている必要があります。
「使い方」
カード関数は表示にビットマップを使います。したがって、ビットマップの設定が必須です。
if cardInit()<>0 then {
print "カードパターンが読めません"
end
}
// カード内の黒はパレット1で塗られているので、黒で表示するためにはパレットを変更する必要がある
setgPalet16X68(1,&h000000ff)
vpriority(TPAGE,GPAGE0,GPAGE1,GPAGE2,GPAGE3)
vpage(B_TPAGE+B_GPAGE0+B_GPAGE1+B_GPAGE2+B_GPAGE3,YES)
apage(GPAGE0)
bitmapOpen(0,0,YES)
~
cardPut(x,y,cno,NO)
~
bitmapClose()
関数名 | cardInit |
書式 | int cardInit([userFile;str]) |
機能 | カード関数を初期化します |
引数 |
userFile | パターンデータファイル
省略時は標準のトランプ用データで初期化される。
|
|
戻り値 |
=0 | 正常終了 |
<>0 | エラー発生(カード関数は使えない) |
|
補足 |
パターンデータファイルは以下の構造を持つこと。
- 1カードは横48ドット、縦96ドットから成る
- 1ドットは4ビットの16色パレットコードで記述する。故に、1バイトに2ドット分格納される
- 1カードデータは48/2*96バイト
- 60枚分を1ファイルに収める
標準のトランプ用データ内では、黒はパレット1で塗られているので、黒で表示するためにはパレットを変更する必要がある
setgPalet16X68(1,&h000000ff)
|
サンプル | CardTest.bas |
関数名 | cardCalcNo |
書式 | int cardCalcNo(suit;int,no;int) |
機能 | スートと数から通しのカード番号を得る |
引数 |
suit | スート番号 | SUIT_SPADE/SUIT_HEART/SUIT_DIA/SUIT_CLUB |
no | 番号 | 1~13 |
スートとはカードの種類を意味する。
|
戻り値 |
通しカード番号
番号がおかしいときは0(裏面)を返す。
|
補足 | 裏は通し番号としてCARD_BACK,ジョーカーはCARD_JOKERと指定すること
トランプとは関係ないカードを使うときはこの関数を使わないこと。
|
サンプル | afuncX68Test.bas |
関数名 | cardPut |
書式 | cardPut(x;int,y;int,cno;int,fdouble;int) |
機能 | 指定番号のカードを表示する |
引数 |
x,y | 表示座標 |
cno | 通しのカード番号 |
fdouble | 横倍化して表示する
標準のパターンはiOS上では縦長に見えるので、このオプションが存在する。
|
|
戻り値 | なし |
X-BASIC/68関数名 | c_put |
サンプル | CardTest.bas,afuncX68Test.bas |
関数名 | cardGet |
書式 | int cardGet(cno;int,ptrn();char) |
機能 | 指定番号のカードのパターンを返す |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | c_get |
サンプル | afuncX68Test.bas |
関数名 | cardSet |
書式 | int cardSet(cno;int,ptrn();char) |
機能 | 指定番号のカードにパターンを設定する |
引数 |
|
戻り値 | なし |
X-BASIC/68関数名 | c_set |
サンプル | afuncX68Test.bas |
関数名 | versionXBiOSCard$ |
書式 | versionXBiOSCard$() |
機能 | カード関数のバージョンを返す |
引数 | なし |
戻り値 | カード関数のバージョン文字列 |
全関数名リスト(アルファベット順)
X68互換関数 /
便利関数
カード関数