2013年4月23日火曜日

X-BASIC/68の全コマンド・ステートメント・関数表

X-BASIC/68の全コマンド・ステートメント・関数表です。
手持ちのファイルから探し出しましたが、どこから得たものか不明です。
もし、公開に問題があれば、お知らせください。

なお、X-BASIC for iOSで全てが再現されている、または同一であるわけではありません。
 
------------------------------------------------------------------------------
ステートメント
------------------------------------------------------------------------------

beep
    CONFIG.SYSのbeep.sysを再生する。

break
    現在実行している階層のループからぬける。

char 変数名[=初期値][ ,変数[=初期値],・・・・]
    変数をchar型で宣言する。
    0~255までの整数を使用できる。

cls
    テキスト画面のクリア

color 属性
    テキスト画面の文字の属性を設定する。
        0:標準文字  黒        8:反転文字  黒
        1:標準文字  シアン    9:反転文字  シアン
        2:標準文字  黄色     10:反転文字  黄色
        3:標準文字  白       11:反転文字  白
        4:強調文字  黒       12:反転強調  黒
        5:強調文字  シアン   13:反転強調  シアン
        6:強調文字  黄色     14:反転強調  黄色
        7:強調文字  白       15:反転強調  白

color [a,b,c,d]
    テキストのパレットの色を変更する。
        aは、color命令の 0, 4, 8,12の色
        bは、color命令の 1, 5, 9,13の色
        cは、color命令の 2, 6,10,14の色
        dは、color命令の 3, 7,11,15の色
    例.10 color [10,10,10,10]  /* 数値は適当です(^^;; */

console 開始行,範囲,ファンクションキーの表示(0 or 1)
    テキストのスクロールの範囲を決める。
   
dim 変数の型(char or int or str) 変数名 (要素数[,要素数・・・]) = {要素1の初期値,要素2の初期値,・・・}
    x次元の配列変数の宣言。

error on / error off
    error on で 関数エラーの許可
    errpr off で関数エラーの不許可
        注)runで実行すると自動的にerror onになります。

exit([戻り値])
    現在の状態を全て破棄できる状態(ファイルのクローズ等)に処理をして、
    親プロセスへ戻ります。
    一応、親プロセスへ引き渡す戻り値を設定できます。

float 変数名[=初期値][ ,変数[=初期値],・・・・]
    変数をfloat型で宣言する。
    約1.1*10^(-308)~3.6*10^308までの実数を使用できる。つまりほとんど制限無し。

for ~ next
    for 初期値 to 終了値
    処理
    next
        (終了値-初期値)の回数だけループします。

func ~ endfunc / return()
    func 関数の型 関数名([引数;引数の型,・・・])
    return([戻り値])
    endfunc
        関数の型とは戻り値の型である。(char or int or str)
        戻り値の必要無い関数の場合はreturnは省略できる。

gosub 行番号 / return
    なるべく使わないで。

goto 行番号
    なるべく使わないで。

if 条件式 then {処理1} else {処理2}
    条件式が正しければ(真ならば)処理1を、間違っていれば(偽ならば)処理2を実行します。

input ["メッセージ"<; or ,>]変数
    キーボードから入力されるデータを変数に代入します。

int 変数名[=初期値][ ,変数[=初期値],・・・・]
    変数をint型で宣言する。
    -2,147,483,648~2,147,483,648までの整数を使用できる。

key ファンクションキー番号,"割り当てるコマンド文字列"
    ファンクションキーの定義。

linput ["メッセージ";]変数(str型)
    inputと違い、キーボードから,(カンマ)や"(引用符)などの全ての文字を入力できる。
    但し変数は必ずstr型で、宣言時の文字数の制限もある。
    画面の一行分までしか入力できない。

locate カーソルx座標,カーソルy座標[,カーソルスイッチ]
    指定した位置へカーソルを移動します。

print
    テキスト画面に文字や数値を表示します。
    print 変数
        変数の内容が表示されます。出力後は改行されます。
    print "文字の並び"
        "(引用符)で囲まれた文字列を表示します。出力後に改行します。
    print 要素1;要素2;・・・;要素n[;]
        画面に複数の要素をならべて表示します。
        最後に;(セミコロン)で終わると改行しません。
    print 要素1,要素2,・・・,要素n[,]
        画面に複数の要素を8文字間隔でならべて表示します。
        最後に,(カンマ)で終わると改行しません。
    print using "書式";変数(数値型)または数字
        #(シャープ)    表示する数値の桁数を指定する。
        .(ピリオド)    小数点の位置を指定する。
        +/-        符号をつけて表示します。-の場合は#の後ろに設定する。
        **        空白を*で埋めます。
        \\        数字に\をつけます。
        **\        空白を*で埋め、先頭に\をつけます。
        ^^^^^        数値を指数を使った表現にします。
        ,(カンマ)        3桁毎に,をつけます。
    print using "書式";変数(文字型)または文字列
        !        文字列の先頭の一文字だけ表示します。
        &  &        文字列を&から&までの文字数に指定します。
        _(アンダーバー)    usingの書式の文字を_の後ろに書いた場合
                その一文字だけは普通の文字にします。

repeat ~ until
    repeat
    処理
    until 終了条件式
        終了条件式が満たされるまで処理を繰り返します。

str 変数名 [文字数(default32)][=初期値][ ,変数[文字数][=初期値],・・・・]
    変数をstr型で宣言する。文字数を省略すると32文字になる。
    例.10 str a$[4]="abcd",b[8]="",c$

stop
    プログラムの実行を停止します。再開するときはcontコマンドを使います。

switch ~ endswitch
    switch 条件式
    case 条件式の結果1 : 処理1[:break]
    case 条件式の結果2 : 処理2[:break]
        ・
        ・
    [default : 処理n]
    endswitch
        条件式の結果の値によって処理が実行される。
        処理の実行後breakを入れてループから抜けるというやりかたもある。
        条件式の結果がどのcaseにもあてはまらないときはdefaultの処理nが実行される。

while ~ endwhile
    while 条件式
    処理
    endwhile
        条件式が満たされているあいだ処理を繰り返します。

width x
    x=64 or 96
    表示画面モードの切換。
    注.この命令を使うとテキスト及びグラフィック画面は初期化されます。

------------------------------------------------------------------------------

関数
------------------------------------------------------------------------------
ファイル関係

fopen    書式    fp=fopen(fn,md)
    ファイルをオープンする。
    引数    str fn,md
        fnはファイルネーム。mdはopenするときのモード。
        mdが"r"のときは既にファイルがあってそのファイルを読み出し専用でopenする。
        mdが"w"のときは既にファイルがあってそのファイルを書き込み専用でopenする。
        mdが"rw"のときは既にファイルがあってそのファイルを読み書き両用でopenする。
        mdが"c"のときは新規ファイルとして読み書き両用でopenする。同名ファイルがあった場合上書される。
    戻り値    int fp
        fopenの戻り値は他のファイル関係関数で使用しますので壊さないように注意する事。

fclose    書式    fc=fclose(fp)
    指定のファイルをクローズする。
    引数    int fp
        fpはfopenの戻り値。
        fopenで複数のファイルが開かれているときに(MAX15まで)。閉じたいファイルをこの関数で指定する。
    戻り値    int fc
        正常に処理されると0。エラーだと-1が返されます。

fcloseall
    書式    fc=fcloseall()
    全てのファイルをクローズする。
    戻り値    int fc
        正常に処理されると0。エラーだと-1が返されます。
        openされているファイルをすべて閉じます。

fputc    書式    fc=fputc(ch,fp)
    ファイルに1バイト書き込む。
    引数    char ch:int fp
        chは書き込むデータです。char型なので1回で1バイトしか書き込めません。
        fpはfopenの戻り値です。
    戻り値    int fc
        正常に処理されると0。エラーだと-1が返されます。

fgetc    書式    fs=fgetc(fp)
    ファイルから1バイト読み込む。
    引数    int fp
        fpはfopenの戻り値です。
    戻り値    int fs
        ディスクから読み込んだ1バイトの文字コード。

fwrite    書式    fb=fwrite(na,n,fp)
    ファイルに任意の数値配列を書き込む。
    引数    数値型一次元配列 na
        int n,fp
        naはファイルへ書き込むデータを収納しておく。
        nはファイルへ書き込む配列naの要素数。
        fpはfopenの戻り値。
    戻り値    int fb
        書き込まれたバイト数。
        naの型により1要素当たりのバイト数が変わる。
        naがchar型だと1バイト/1要素。
        naがint型だと4バイト/1要素。
        naがfloat型だと8バイト/1要素。

fread    書式    fv=fread(na,n,fp)
    ファイルから任意の数値配列に読み込む。
    引数    数値型一次元配列 na
        int n,fp
        naはファイルから読み込まれたデータが格納される一次元の配列変数。
        nはファイルから読み込む配列naの要素数。
        fpはfopenの戻り値。
    戻り値    int fb
        実際に読み込まれたバイト数。
        naの型により1要素当たりのバイト数が変わる。
        naがchar型だと1バイト/1要素。
        naがint型だと4バイト/1要素。
        naがfloat型だと8バイト/1要素。

fwrites    書式    fb=fwrites(st,fp)
    ファイルに文字列を書き込む。
    引数    str st:int fp
        stはファイルへ書き込む文字列または文字列の変数。
        fpはfopenの戻り値。
    戻り値    int fb
        ファイルに書き込まれた文字数。(バイト)
    注意    読み出しにfreadsを使うときは、
        ファイルへ書き込む文字列の最後に改行コードを入れないといけない。
        改行コードはchr$(13)+chr$(10)です。

freads    書式    fb=freads(st,fp)
    ファイルから任意の文字型変数に読み込む。
    引数    str st:int fp
        stはファイルから読み込まれた文字列が格納される文字列の変数。
        改行コード(chr$(13)+chr$(10))までを一行として読み込む。
        fpはfopenの戻り値。
    戻り値    int fb
        ファイルから読み込まれた文字数。(バイト)

fseek    書式    dp=fseek(fp,os,md)
    ファイルへの読み書きをするデータポインタを移動する。
    引数    int fp,os,md
        fpはfopenの戻り値。
        osは基準位置からのオフセット値。
        mdは基準位置。
            md=0でファイルのはじめから。
            md=1で現在のデータポイントから。
            md=2でファイルの終りから。
    戻り値    int dp
        fseek関数後のデータポインタの位置が返ります。
        エラーの場合は-1が返ります。

feof    書式    fs=feof(fp)
    データポインタがファイルの最後に来たかどうかを調べます。
    引数    int fp
        fopenの戻り値
    戻り値    int fs
        終了位置なら-1。まだなら0が返ります。

dskf    書式    s=dskf(i)
    ディスクの空き容量を調べます。
    引数    int i
        i=0でカレントドライブ。
        i=1でAドライブ。
        i=2でBドライブ。
    戻り値    int s
        指定されたフロッピードライブの空き容量が返ります。


データ変換関係

bin$    書式    r=bin$(n)
    int型のデータを2進数に変換して文字列として返す。上位の0は除かれる。
    引数    int n
    戻り値    str r

oct$    書式    r=oct$(n)
    int型のデータを8進数の文字列として返す。
    引数    int n
    戻り値    str r

hex$    書式    r=hex$(n)
    int型のデータを16進数の文字列として返す。
    引数    int n
    戻り値    str r

chr$    書式    r=chr$(n)
    アスキーコードを文字に変換して返す。
    引数    char n
    戻り値    str r
    備考    逆の関数としてasc関数があります。

itoa    書式    r=itoa(n)
    int型のデータを文字列に変換する。
    引数    int n
    戻り値    str r
    備考    逆の関数としてatoi関数があります。

str$    書式    r=str$(n)
    float型のデータを文字列に変換する。
    引数    float n
    戻り値    str r
    備考    逆の関数としてatof,val関数があります。

gcvt    書式    r=gcvt(n1,n2)
    float型のデータを、指定された桁数の文字列に変換する。
    桁数は2番目の引数で指定する。
    引数    float n1
        int n2
    戻り値    str r
    小数点以上の数値が無い場合は小数点以下の桁数が優先される。
    備考    逆の関数としてatof,val関数があります。

ecvt    書式    r=ecvt(n1,n2,n3,n4)
    floatのデータを文字列に変換します。
    但し戻り値が特殊で、r,n2,n3,n4 がそれぞれ戻り値になります。
    引数    float n1
    戻り値    srt r
        int n2,n3,n4
        n2...文字列の小数点以下の桁数
        n3...小数点の位置
        n4...n1が正なら0を、負なら1を返す
    備考    逆の関数としてatof,val関数があります。

fcvt    書式    r=fcvt(n1,n2,n3,n4)
    floatのデータを文字列に変換します。
    但し戻り値が特殊で、r,n2,n3,n4 がそれぞれ戻り値になります。
    引数    float n1
    戻り値    srt r
        int n2,n3,n4
        n2...文字列の桁数
        n3...小数点の位置
        n4...n1が正なら0を、負なら1を返す
    備考    逆の関数としてatof,val関数があります。

asc    書式    r=asc(n)
    文字のキャラクターコードを返す。
    引数    str n
    戻り値    int r
    引数nが複数の文字列の場合、最初の一文字が変換の対象になる。
    備考    逆の関数としてchr$関数があります。

atoi    書式    r=atoi(n)
    文字列をint型に変換する。
    引数    str n
    戻り値    int r
    備考    逆の関数としてitoaがあります。

int    書式    r=int(n)
    float型のデータを小数点以下を切り捨ててint型のデータとして返す。
    引数    float n
    戻り値    int r

toascii    書式    r=toascii(n)
    引数をASCII文字コードに変換して返す。
    引数    char n
    戻り値    int r

tolower    書式    r=tolower(n)
    引数のASCII文字コードが英字大文字であれば英字小文字に変換する。
    引数    char n
    戻り値    int r
    備考    逆の関数としてtoupper関数があります。

toupper    書式    r=toupper(n)
    引数のASCII文字コードが英字小文字であれば英字大文字に変換する。
    引数    char n
    戻り値    int r
    備考    逆の関数としてtolower関数があります。

atof    書式    r=atof(n)
    文字列をfloat型に変換する。
    引数    str n
    戻り値    float r
    備考    逆の関数としてstr$,gcvt,ecvt,fcvt関数があります。

fix    書式    r=fix(n)
    float型のデータの小数点以下を切り捨ててfloat型のデータとして返す。
    引数    float n
    戻り値    float r
    備考    動作自体はint関数と一緒です。

val    書式    r=val(n)
    文字列をfloat型に変換する。atof関数と同じです。
    引数    str n
    戻り値    float r
    備考    逆の関数としてstr$,gcvt,ecvt,fcvt関数があります。


文字列処理関係

isalnum    書式    r=isalnum(n)
    引数が英数字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    英数字とはA~Z,a~z,0~9のこと。
    引数    char n
    戻り値    int r

isalpha    書式    r=isalpha(n)
    引数が英字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    英字とはA~Z,a~zのこと。
    引数    char n
    戻り値    int r

isascii    書式    r=isascii(n)
    引数がアスキー文字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    アスキー文字とは文字コードが0~127(&H00~&h7f)の文字。
    引数    char n
    戻り値    int r

isdigit    書式    r=isdigit(n)
    引数が数字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    数字とは0~9のこと。
    引数    char n
    戻り値    int r

isgraph    書式    r=isgraph(n)
    引数がスペース以外の表示可能な文字であるかどうかを調べ、
    そうなら-1をそうでないなら0を返す。
    文字コードが33~126(&H21~&h7e)の文字。
    引数    char n
    戻り値    int r

islower    書式    r=islower(n)
    引数が英小文字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    英小文字とはa~zの文字。
    引数    char n
    戻り値    int r

isprint    書式    r=isprint(n)
    引数が表示可能な文字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    表示可能な文字とは文字コードが33~126(&h21~&h7e)とスペースも含む文字。
    引数    char n
    戻り値    int r

ispunct    書式    r=ispunct(n)
    引数が表示可能な記号であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    表示可能な記号とは文字コードが32~47,58~64,91~96,112~126の文字。
    引数    char n
    戻り値    int r

isspace    書式    r=isspace(n)
    引数が空白文字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    空白文字とは文字コードが9~13,32の文字。
    引数    char n
    戻り値    int r

isupper    書式    r=isupper(n)
    引数が英大文字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    英大文字とはA~Zの文字。
    引数    char n
    戻り値    int r

isxdigit書式    r=isxdigit(n)
    引数が16進の文字であるかどうかを調べ、そうなら-1をそうでないなら0を返す。
    16進文字とは0~9,A~F,a~fの文字。
    引数    char n
    戻り値    int r

instr    書式    r=instr(n1,n2,n3)
    文字列の中から文字列を探して左から何文字目にあるかを返す。
    見つからないときや探し始める位置が0以下だと戻り値は0になる。
    引数    int n1:str n2,n3
        n1...何文字目から検索を始めるのかの指定
        n2...この文字列から探す
        n3...探したい目的の文字列
    戻り値    int r

strchr    書式    r=strchr(n1,n2)
    文字列の中から1文字を探し、最初に見つけた位置を返す。
    先頭(左端)を0としたint値を返すが、見つからないときは-1を返す。
    引数    str n1:char n2
        n1...この文字列から探す
        n2...char型で探したい文字を与える
    戻り値    int r

strcspn    書式    r=strcspn(n1,n2)
    文字列n1から文字列n2のどれか1文字を最初に見つけた位置を返します。
    戻り値は先頭(左端)を0としたint値を返します。
    見つからないときは文字列の長さを返します。
    引数    str n1,n2
        n1...この文字列から探す
        n2...探したい文字をならべる
    戻り値    int r

strspn    書式    r=strspn(n1,n2)
    文字列n1の中から指定した別の文字列n2に無い文字を最初に見つけた位置を返す。
    見つからなかったときはn1の文字列の長さを返す。
    どちらかの文字列がnull文字なら0を返す。
    引数    str n1,n2
        n1...この文字列から探す
        n2...この文字列の中の文字を比較する
    戻り値    int r

strtok    書式    r=strtok(n1,n2)
    文字列n1の中から別に指定する文字列n2のうち、
    どれかひとつを見つけた位置までの文字列に返す。
    引数    str n1,n2
        n1...この文字列から探す
        n2...探したい文字をならべる
    戻り値    str r

left$    書式    r=left$(n1,n2)
    文字列n1の左からn2文字目までを返す。
    引数    str n1:int n2
    戻り値    str r

right$    書式    r=right$(n1,n2)
    文字列n1の右からn2文字目までを返す。
    引数    str n1:int n2
    戻り値    str r

mid$    書式    r=mid$(n1,n2,n3)
    文字列n1の左からn2文字目からn3個の文字列を返す。
    引数    str n1:int n2,n3
    戻り値    str r

mirror$    書式    r=mirror$(n)
    文字列nの並びを左右反転して返す。
    引数    str n
    戻り値    str r

string$    書式    r=string$(n1,n2)
    ある1文字n2を指定した数n1だけ並べて返す。
    n1の有効範囲は0<=n2<=255。0以下を指定するとnull文字を返す。
    引数    int n1:str n2
    戻り値    str r

strlen    書式    r=strlen(n),またはr=len(n)
(len)    文字列nの長さを返す。nullのときは0を返す。
    引数    str n
    戻り値    int r   

strlwr    書式    r=strlwr(n)
    文字列nの中の英大文字を英小文字に変換する。
    引数    str n
    戻り値    str r

strnset    書式    r=strnset(n1,n2,n3)
    文字列n1の先頭から指定した文字数n3を指定した文字n2に変換する。
    引数    str n1:char n2:int n3
    戻り値    str r

strrev    書式    r=strrev(n)
    文字列nの並びを左右反転させる。
    引数    str n
        mirror$とは違い、引数のnも左右反転されるので注意。
    戻り値    str r

strset    書式    r=strset(n1,n2)
    文字列n1の中をすべて指定した文字n2にする。
    引数    str n1:char n2
    戻り値    str r

strupr    書式    r=strupr(n)
    文字列nの中の英小文字を英大文字に変換する。
    引数    str n
    戻り値    str r


数値演算関数

atan    書式    r=atan(n)
    nの逆正接(アークタンジェント)を計算する。
    戻り値は-π/2からπ/2までの値を返す。
    引数    float n
    戻り値    float r

sin    書式    r=sin(n)
    n(ラジアン)の正弦(サイン)を計算する。
    引数    float n
        nはラジアン。
    戻り値    float r

cos    書式    r=cos(n)
    n(ラジアン)の余弦(コサイン)を計算する。
    引数    float n
        nはラジアン。
    戻り値    float r

tan    書式    r=tan(n)
    n(ラジアン)の正接(タンジェント)を計算する。
    引数    float n
        nはラジアン。
    戻り値    float r

exp    書式    r=exp(n)
    自然対数の底”e”のn乗を計算する。
    引数    float n
    戻り値    float r

log    書式    r=log(n)
    nの自然対数を返す。n>0でなければならない。
    引数    float n
        n>0。
    戻り値    float r

srand    書式    srand(i)
    rand()の系列を初期化する。iは0~65535。
    引数    int i
        0<=i<=65535
    戻り値    void

rand    書式    r=rand()
    0以上32767以内の整数型乱数を返す。
    引数    なし
    戻り値    int r
        0<=r<=32767

randomize
    書式    randomize(i)
    rnd()の乱数系列を初期化する。
    引数    int i
        -32768<=i<=32767
    戻り値    void

rnd    書式    r=rnd()
    0以上1未満の乱数を返す。
    引数    なし
    戻り値    float r
        0<=r<1

pi    書式    r=pi(n)
    円周率を返す。πがn倍になって返る。
    引数    float n
        n...倍数
    戻り値    float r

abs    書式    r=abs(n)
    nの絶対値を返す。
    引数    float n
    戻り値    int n

pow    書式    r=pow(x,y)
    xのy乗を計算する。
    x=0かつy<0の場合とx<0かつyが整数でない場合はエラーが出る。
    引数    float x,y
        ただしx<0でyは整数
    戻り値    float r

sgn    書式    r=sgn(n)
    nの符号を調べ、nが正の数なら1を、負の数なら-1を、1なら0を返す。
    引数    float n
    戻り値    float r

sqr    書式    r=sqr(n)
    nの平方根(ルート)を返す。
    引数    float n
        0<=n
    戻り値    float r


システム変数

free    書式    r=free または free
    basic.cnfで設定したプログラムメモリの残容量を返す。
    この変数は読込専用。
    引数    なし
    戻り値    float r

date$    書式    st=date$ または date$
    日付を返す。または日付を設定する。
    引数    なし
    戻り値    str st
        stの書式は年/月/日
    date$="yy/mm/dd"で日付を設定することができる。

day$    書式    st=day$ または day$
    曜日を返す。
    引数    なし
    戻り値    str st

time$    書式    st=time$ または time$
    時間を返す。または時間を設定する。
    引数    なし
    戻り値    str st
        stの書式は時:分:秒
    time$="hh:mm:ss"で時間を設定できる。

inkey$    書式    st=inkey$
    キーボードから入力を待ち、入力された1文字を返す。
    引数    なし
    戻り値    str st
    備考    input文と似ています。

inkey$(0)
    書式    st=inkey$(0)
    キーボードから入力された1文字を返す。
    何も押されないとnullを返します。
    引数    なし
    戻り値    str st

keysns    書式    r=keysns()
    キーバッファの中身を調べ、キーバッファが空かどうかを返す。
    戻り値はキーバッファが空なら0、そうでないなら-1を返す。
    引数    Void
    戻り値    int r

csrlin    書式    y=csrlin または csrlin
    現在のカーソルのy座標を返す。
    引数    なし
    戻り値    int y

pos    書式    x=pos または pos
    現在のカーソルのx座標を返す。
    引数    なし
    戻り値    int x


グラフィック関数

screen    書式    screen a,b,c,d
    画面モードを変更する。
        a...表示画面サイズ
            0:256x256
            1:512x512
            2:768x512
        b...実画面、色モード、使用可能なグラフィックページ
            0:1024x1024    16色/65536色    ページ0
            1:512x512    16色/65536色    ページ0~3
            2:512x512    256色/65536色    ページ0~1
            3:512x512    65536色/65536色    ページ0
        c...ディスプレイの解像度
            0:15kHz    スーパーインポーズ可能(このモードは専用ディスプレイのみ)
            1:31kHz    スーパーインポーズ不可
        d...グラフィック画面の表示のON/OFF
            0:off
            1:on(このときグラフィックRAMは初期化される)
    備考    screenは関数ではなくステートメントです。
        screenを実行して画面モードを設定しないと他のグラフィック関数が使用できません。

vpage    書式    vpage(i)
    グラフィックページの表示のON/OFF
    引数    int i
        iの値    ページ    0    1    2    3
        0        ×    ×    ×    ×
        1        ○    ×    ×    ×
        2        ×    ○    ×    ×
        3        ○    ○    ×    ×
        4        ×    ×    ○    ×
        5        ○    ×    ○    ×
        6        ×    ○    ○    ×
        7        ○    ○    ○    ×
        8        ×    ×    ×    ○
        9        ○    ×    ×    ○
        10        ×    ○    ×    ○
        11        ○    ○    ×    ○
        12        ×    ×    ○    ○
        13        ○    ×    ○    ○
        14        ×    ○    ○    ○
        15        ○    ○    ○    ○
    戻り値    void
    備考    iの値はscreenステートメントで設定したモードによって制限がある。

apage    書式    apage(pag)
    アクティブページ(実際に読み書きするグラフィックページ)を指定する。
    引数    int pag
        pagはscreenによって制限がある。
    戻り値    void

window    書式    window(x1,y1,x2,y2)
    表示範囲を指定する。screen実行後はscreenの表示画面サイズになる。
    引数    int x1,y1,x2,y2
    戻り値    void

home    書式    home(pag,x,y)
    指定したページの実画面の中から表示位置を指定する。screen実行後のデフォルト座標は0,0。
    引数    int pag,x,y
        pag...グラフィックページ
        x.....表示したい実画面上のx座標
        y.....表示したい実画面上のy座標
    戻り値    void
    備考    背景スクロールなどで使用できる。
        球面スクロールなので上下左右がつながっている。
        はじめにwindow関数で表示範囲を広げていないと、
        実画面上のグラフィックはクリッピングされてしまう。

rgb    書式    cl=rgb(r,g,b)
    光の3原色を使ってカラーパレットを計算します。
    引数    int r,g,b
        r...赤要素(0<=r<=32)
        g...緑要素(0<=g<=32)
        b...青要素(0<=b<=32)
            r+g=黄
            g+b=シアン
            b+r=マゼンダ
            r+g+b=白
    戻り値    int cl
        clはカラーコード。0~65534の偶数値。
    備考    輝度ビットを有効にしたいのならclに+1すればよい。

hsv    書式    cl=hsv(hu,sa,va)
    「色相」「飽和度」「明るさ」からカラーパレットを計算する。
    引数    int hu,sa,va
        hu...色相    (0~191)
        sa...飽和度    (0~31)
        va...明るさ    (0~31)
    戻り値    int cl
        clはカラーコード。0~65535の偶数値。
    備考    輝度ビットを有効にしたいのならclに+1すればよい。

palet    書式    palet(p,c)
    パレットコードpにカラーコードcを割り当てる。
    引数    int p,c
        p...パレットコード
        c...カラーコード
    戻り値    void
    備考    パレットコードはscreenのモードにより0~15か0~255かに変わります。

point    書式    pa=point(x,y)
    アクティブページのグラフィック画面の指定の座標のパレットコードを求める。
    引数    int x,y
        x...x座標
        y...y座標
            それぞれwindow関数で指定した範囲内。
    戻り値    int pa

pset    書式    pset(x,y,pa)
    指定の座標にパレットコードpaのドットを表示する。
    引数    int x,y,pa
        x...x座標
        y...y座標
            それぞれwindow関数で指定した範囲内。
        pa...パレットコード
    戻り値    void

line    書式    line(x1,y1,x2,y2,pa,ls)
    始点(x1,y1)から終点(x2,y2)まで指定のパレットコードpaで指定のラインスタイルlsで直線を描く。
    引数    int x1,y1,x2,y2,pa,ls
        x1,y1...始点の座標
        x2,y2...終点の座標
            それぞれwindow関数で指定した範囲内。
        pa...パレットコード
        ls...ラインスタイル(省略時は&hffff)
            &h0000~&hffff
    戻り値    void

box    書式    box(x1,y1,x2,y2,pa,ls)
    始点(x1,y1)から終点(x2,y2)まで指定のパレットコードpaで指定のラインスタイルlsで四角形を描く。
    引数    int x1,y1,x2,y2,pa,ls
        x1,y1...始点の座標
        x2,y2...終点の座標
            それぞれwindow関数で指定した範囲内。
        pa...パレットコード
        ls...ラインスタイル(省略時は&hffff)
            &h0000~&hffff
    戻り値    void

fill    書式    fill(x1,y1,x2,y2,pa)
    始点(x1,y1)から終点(x2,y2)まで指定のパレットコードpaで四角形を描き、中をpaで塗りつぶす。
    引数    int x1,y1,x2,y2,pa
        x1,y1...始点の座標
        x2,y2...終点の座標
            それぞれwindow関数で指定した範囲内。
        pa...パレットコード
    戻り値    void

circle    書式    circle(x,y,r,pa,s,e,hv)
    x,yを中心とした円を描く。
    引数    int x,y,r,pa,s,e,hv
        x,y...円の中心座標(-32768~32767)
        r.....円の半径(0~32767)
        pa....パレットコード
        s.....開始角度(-360°~360°)
        e.....終了角度(-360°~360°)
        hv....偏平率(0~32767)
            hv=256で正円になりますがディスプレイの関係上、真円にはならない。
    戻り値    void

paint    書式    paint(x,y,pa)
    ある領域内の任意の場所(x,y)からパレットコードpaで領域内を塗りつぶします。
    引数    int x,y,pa
        x,y...塗りつぶしたい領域の任意の座標
        pa....パレットコード
    戻り値    void
    備考    領域とは、ある色で囲まれた場所。

symbol    書式    symbol(x,y,st,h,v,mo,pa,an)
    グラフィック画面に文字を描く。
    引数    int x,y,pa:str st:char h,v,mo,an
        x,y...描写開始始点座標(-32768~32767)
        pa....パレットコード
        st....表示する文字列(文字式でも可)
        h.....横方向の倍率
        v.....縦方向の倍率
        mo....文字フォントの種類(0~2)
            0:6x12
            1:8x16
            2:12x24
        an....表示文字列の回転角度(0~3)
            0:0°
            1:90°
            2:180°
            3:270°
    戻り値    void

wipe    書式    wipe()
    アクティブページを消去する。
    引数    なし
    戻り値    void

get    書式    get(x1,y1,x2,y2,na)
    アクティブページのwindow内の指定の範囲(x1,y1)-(x2,y2)の
    グラフィックのドットパターンを配列naに取り込む。
    引数    int x1,y1,x2,y2:naは任意の数値データ型配列
        x1,y1...取り込む範囲の始点
        x2,y2...取り込む範囲の終点
        na......取り込まれる配列
            16色モードのとき
            char型...1つの配列に2ドット
            int型....1つの配列に8ドット
            float型..1つの配列に16ドット
            256色モードのとき
            char型...1つの配列に1ドット
            int型....1つの配列に4ドット
            float型..1つの配列に8ドット
            65536色モードのとき
            char型...2つの配列に1ドット
            int型....1つの配列に2ドット
            float型..1つの配列に4ドット
    戻り値    void

put    書式    put(x1,y1,x2,y2,na)
    get関数で取り込んだドットパターンを画面に配置する。
    引数    int x1,y1,x2,y2:naは任意の数値データ型配列
        x1,y1...始点の座標
        x2,y2...終点の座標
        na......ドットパターンの格納されている配列
    戻り値    void

contrast
    書式    contrast(i)
    画面の明るさをコントロールする。
    引数    int i
        i=0(暗い)~15(明るい)
    戻り値    void


マウス関数

mouse    書式    m=mouse(i)
    マウスの初期設定を行う。
    引数    int i(0~4)
            0:マウスの初期化
            1:マウスカーソル表示
            2:マウスカーソル消去
            3:マウスの状態を返す
            4:ソフトキーボードを無効にし、右クリックを開放する
    戻り値    int m
        iが3以外のときは0が返り、エラーなら-1が返る。
        iが3のときはマウスカーソルが表示されていれば-1されていなければ0が返る。

msarea    書式    msarea(x1,y1,x2,y2)
    マウスの移動範囲を制限する。
    引数    int x1,y1,x2,y2
        x1,y1...範囲の左上頂点
        x2,y2...範囲の右下頂点
    戻り値    void

setmspos
    書式    setmspos(x,y)
    指定の座標(x,y)にマウスカーソルを表示する。
    引数    int x,y
    戻り値    void

mspos    書式    mspos(x,y)
    マウスの現在の座標が戻る。
    引数に指定している変数に戻る特殊なタイプの関数。
    引数    int x,y
        必ず変数。定数はしていできない。
    戻り値    マウスカーソルの示す座標がx,yに入る。

msstat    書式    msstat(x,y,bl,br)
    マウスのボタンの状態を返す。
    引数に指定している変数に戻る特殊なタイプの関数。
    引数    int x,y,bl,br
        必ず変数。定数はしていできない。
    戻り値    x...x方向の相対移動量(-128~127)
        y...y方向の相対移動量(-128~127)
        bl..左ボタンが押されていれば-1,押されてなければ0
        br..右ボタンが押されていれば-1,押されてなければ0

msbtn    書式    bs=msbtn(n,b,t)
    マウスのボタンが指定の状態nになるまでの時間を返す。
    引数    int n,b,t
        n...ボタンの状態
            0:ボタンが放されるまで
            1:ボタンが押されるまで
        b...ボタンの左右
            0:左ボタン
            1:右ボタン
        t...待ち時間の最大値(0~65535)
            0、1、65535の場合は、ずっと待つ
    戻り値    int bs
        マウスがそれぞれの状態になるまでの時間を返す。
        待ち時間の最大値tを超えた場合は-1を返す。
        ドラッグされた場合は0を返す。


ジョイスティック関数

stick    書式    sti=stick(i)
    ジョイスティックiのスティックの状態を返します。
    引数    int i
        1:ジョイスティック1のスティックの状態を返す
        2:ジョイスティック2のスティックの状態を返す
    戻り値    int sti
        スティックの向きによって0~9までの値が入る
        値と向きの関係は、テンキーを参照

strig    書式    trg=strig(i)
    ジョイスティックのトリガーの状態を返す。
    引数    int i
        1:ジョイスティック1のトリガーの状態を返す
        2:ジョイスティック2のトリガーの状態を返す
    戻り値    int sti
        0:トリガーは押されていない
        1:トリガー1のみ押されている
        2:トリガー2のみ押されている
        3:トリガー1、2両方とも押されている


オーディオ関数

a_rec    書式    a_rec(na,frq,le)
    ADPCMデータをメモリ(配列na)に格納する。(録音)
    引数    na...PCMデータを格納する数値型一次配列
        int frq,le
        frq..サンプリング周波数
            0:3.9KHz    1950byte/1sec
            1:5.2KHz    2600byte/1sec
            2:7.8KHz    3900byte/1sec
            3:10.4KHz    5200byte/1sec
            4:15.6KHz    7800byte/1sec
        le...配列naの添え字0からの長さ(バイト数)
            char型    :    MAXは、宣言した配列の値+1
            int型    :    MAXは、(宣言した配列の値+1)*4
            float型    :    MAXは、(宣言した配列の値+1)*8
    戻り値    void

a_play    書式    a_play(na,frq,md,le)
    メモリ(配列na)にあるADPCMデータを再生します。
    引数    na...再生するadpcmデータが格納された配列
        int frq,md,le
        frq..サンプリング再生周波数
        md...出力モード
            0:出力しない
            1:左チャンネルのみ出力
            2:右チャンネルのみ出力
            3:両チャンネル出力
        le...ADPCMデータのバイト数
    戻り値    void

a_cont    書式    a_cont()
    a_stopで中断したADPCMの音声を、中断したところから再生する。
    引数    Void
    戻り値    Void

a_end    書式    a_end()
    再生中のADPCMの音声を途中で中断する。
    なお、a_endで中断した場合、a_contによる音声の再開は出来ない。再開したい場合、中断はa_stopで行うこと。
    引数    Void
    戻り値    Void

a_stat    書式    r=a_stat()
    ADPCMを再生中かどうか調べ、再生中なら2、そうでなければ0を返す。
    引数    Void
    戻り値    int r

a_stop    書式    a_stop()
    現在再生中のADPCMデータを中断する。中断したデータは、a_cont命令で再生することができる。
    引数    Void
    戻り値    Void


FM音源の制御

m_alloc    書式    mf=m_alloc(t,s)
    トラックバッファの確保。トラック内のデータはクリアされる。
    引数    char t:int,s
        t...トラック番号(1~80)
        s...トラックサイズ(1~65536バイト)
    戻り値    int mf
        0:正常    -1:エラー

m_assign
    書式    mf=m_assign(c,t)
    各チャンネルにトラックの割り付けをする。
    引数    char c,t
        c...チャンネル番号(1~8)
        t...トラック番号(1~80)
    戻り値    mf
        0:正常    -1:エラー

m_cont    書式    mf=m_cont(c1,c2,c3,c4,c5,c6,c7,c8)
    c1~c8で指定されたチャンネルにおいて、一時停止した演奏を再開する。
    チャンネルをすべて省略すると現在停止しているすべてのチャンネルの演奏を再開する。
    引数    char c1,c2,c3,c4,c5,c6,c7,c8
    戻り値    int mf
        0:正常    -1:エラー

m_free    書式    n=m_free(t)
    指定したトラックtの残りバイト数を返す。
    引数    char t
        t...トラック番号(1~80)
    戻り値    int n

m_init    書式    m_init()
    FM音源を初期化する。
    引数    なし
    戻り値    void

m_play    書式    mf=m_play(c1,c2,c3,c4,c5,c6,c7,c8)
    c1~c8で指定されたチャンネルに割り当てたトラックデータを演奏する。
    チャンネルをすべて省略するとすべてのチャンネルを演奏する。
    引数    char c1,c2,c3,c4,c5,c6,c7,c8
    戻り値    int mf
        0:正常    -1:エラー

m_stat    書式    mf=m_stat(c)
    指定したチャンネルcが演奏中か調べる。
    引数を指定しなかった場合はバイト値が返され、
    そのバイト値の0~7ビットがチャンネル1~8に対応している。
    引数    char c
        c...チャンネル番号(1~8)
    戻り値    int mf
        0:停止中    1:演奏中    -1:エラー

m_stop    書式    mf=m_stop(c1,c2,c3,c4,c5,c6,c7,c8)
    c1~c8で指定されたチャンネルの演奏を一時停止する。
    チャンネルをすべて省略するとすべてのチャンネルの演奏を一時停止する。
    引数    char c1,c2,c3,c4,c5,c6,c7,c8
    戻り値    int mf
        0:正常    -1:エラー

m_tempo    書式    mf=m_tempo(te)
    テンポを設定する。
    引数    char te(32~200)
    戻り値    int mf
        0:正常    -1:エラー

m_trk    書式    mf=m_trk(t,st)
    MMLをトラックに書き込む。
    引数    char t:str st
        t...トラック番号(1~80)
        st..MMLデータ
    戻り値    int mf
        0:正常    -1:エラー
    備考    MMLの書式の説明は省略します。

m_vget    書式    m_vget(vo,ca)
    音色データを配列に取り込む。
    引数    char vo,ca
        配列は(4,10)
    戻り値    int
        0:正常    -1:エラー

m_vset    書式    m_vset(vo,ca)
    配列にある音色データを指定の音色番号のメモリバッファに登録する。
    引数    char vo,ca
        配列は(4,10)
    戻り値    int
        0:正常    -1:エラー

m_atoi    書式    r=m_atoi(t)
    指定したトラックバッファの先頭アドレスを返す。
    引数    char t
    戻り値    int r
   

スプライト関数

sp_init    書式    sp_init()
    スプライト画面の初期化
    引数    なし
    戻り値    void

sp_disp    書式    sp_disp(ch)
    スプライト画面の表示のON/OFF
    引数    char ch
        0:off
        1:on
    戻り値    void

sp_def    書式    sp_def(pc,na,ps)
    パターンデータの格納されている配列naを指定のパターンコードpcに登録する。
    引数    char pc,ps
        pc...パターンコード(0~255)
        ps...パターンサイズ
            0:8*8    1:16*16
        na...パターンデータが格納されている配列
    戻り値    void

sp_clr    書式    sp_clr(psc,pce)
    指定した範囲のパターンコードに登録されているパターンデータをクリアする。
    引数が1つだけだと、そのパターンコードだけがクリアされ、
    引数が省略されていると全てのパターンコードがクリアされる。
    引数    pcs,pce
        pcs...先頭パターンコード(0~255)
        pce...最終パターンコード(0~255)
    戻り値    void

sp_pat    書式    sp_pat(pc,na,ps)
    パターンコードpcに登録されているパターンデータを指定の配列naに取り込む。
    引数    char pc,ps
        pc...パターンコード(0~255)
        ps...パターンサイズ
            0:8*8    1:16*16
        na...パターンデータを格納する配列
    戻り値    void

sp_color
    書式    ocl=sp_color(pa,cl,pb)
    指定のパレットブロックpbの中の指定のパレットコードpaに色clを設定する。
    引数    char pa,pb:int cl
        pa...パレットコード(0~15)
        pb...パレットブロック(1~15)
        cl...カラーコード(0~65535)
    戻り値    int ocl
        ocl...変更前のカラーコード

sp_on    書式    sp_on(pls,ple)
    指定範囲のプレーンの表示をONにする。
    引数    char pls,ple
        pls...先頭プレーン番号(0~127)
        ple...最終プレーン番号(0~127)
    戻り値    void

sp_off    書式    sp_off(pls,ple)
    指定範囲のプレーンの表示をOFFにする。
    引数    char pls,ple
        pls...先頭プレーン番号(0~127)
        ple...最終プレーン番号(0~127)
    戻り値    void

sp_move    書式    sp_move(pl,x,y,pc)
    指定の座標(x,y)にスプライトパターン(pc)を配置します。
    引数    int x,y:char pl,pc
        x,y...スプライトパターンの左上のドットの座標(-16~1007)
        pl....スプライトパターンを登録するプレーン番号(0~127)
        pc....パターンコード(0~255)
    戻り値    void

sp_set    引数    sp_set(pl,x,y,cd,pr)
    スプライトパターンを表示する。sp_move関数よりも複雑な機能を使える。
    引数    char pl,pr:int x,y,cd
        pl...プレーン番号(0~127)
        x,y..表示位置の座標(0~1023)(sp_moveとの違いに注意)
        cd...スプライト設定コード
            bit15    0:通常表示    1:上下反転
            bit14    0:通常表示    1:左右反転
            bit13~bit12    使用しない(常に0)
            bit11~bit8    パレットブロック
            bit7~bit0    パターンコード
        pr...スプライト画面とBG画面との表示優先順位(プライオリティ)
            0:スプライトは表示しない
            1:手前から    BG0,BG1,SP
            2:手前から    BG0,SP,BG1
            3:手前から    SP,BG0,BG1
    戻り値    void
    備考    cdを求める関数例
            func sp_bit(v,h,pb,pc)
                int bit
                v=v*32768:h=h*16384:pb=pb*256:bit=v+h+pb+pc
                return(bit)
            endfunc

sp_stat    書式    stat=sp_stat(pl,md)
    スプライトの設定状態を返す。
    引数    char pl,md
        pl...プレーン番号(0~127)
        md...読み出しデータの選択
            0:xポジション
            1:yポジション
            2:設定コード
            3:画面優先順位(プライオリティ)
    戻り値    int stat
        stat...スプライトの状態を返す

bg_set( b [,pg] [,md])
    機能    バックグラウンドbへのテキストページpgの割り当てと表示の設定を行います
        (表示画面が 512x512の時は、バックグラウンド1は表示されません)
    引数    char b    バックグラウンド (0, 1)
        char bg    テキストページ (0, 1)
        char md バックグラウンドの表示 (0=表示しない、1=表示する)
    戻り値    int

bg_get(pg ,x ,y)
    機能    指定されたテキストページpgの指定された座標からパターンデータを読み出します。
    引数    char pg    テキストページ(0 ,1)
        char x    X座標(0~63)
        char y    Y座標(0~63)
    戻り値    int    読み出されたパターンデータは次のようなビット構成になっています。
            (ビット12,13は通常0になります)
            ビット15    垂直反転(0:通常、1:反転)
            ビット14    水平反転(0;通常、1:反転)
            ビット8~11    パレットプロック pb (1~15)
            ビット0~7    パターンコード cd (0~255)

bg_put(pg ,x ,y ,pd)
    機能    指定されたテキストページpgの指定された座標にパターンデータpdを設定します。
    引数    char pg    テキストページ(0 ,1)
        char x    X座標(0~63)
        char y    Y座標(0~63)
        int pd    パターンデータ(0~&HCFFF)
            パターンデータpdは次のようなビット構成になっています。
            (ビット12,13は通常0になります)
            ビット15    垂直反転(0:通常、1:反転)
            ビット14    水平反転(0;通常、1:反転)
            ビット8~11    パレットプロック pb (1~15)
            ビット0~7    パターンコード cd (0~255)
    戻り値    int

bg_fill(pg ,pd)
    機能    指定されたテキストページpdを指定されたパターンデータpdで埋めつくします。
    引数    char pg    テキストページ(0 ,1)
        int pd    パターンデータ(0~&HCFFF)
            パターンデータpdは次のようなビット構成になっています。
            (ビット12,13は通常0になります)
            ビット15    垂直反転(0:通常、1:反転)
            ビット14    水平反転(0;通常、1:反転)
            ビット8~11    パレットプロック pb (1~15)
            ビット0~7    パターンコード cd (0~255)
    戻り値    int

bg_scroll(b [,x] [,y])
    機能    バックグラウンドbのスクロール座標を設定します。
    引数    char b    バックグラウンド(0 ,1)
        int x    スクロールX座標(0~ 511または1023)
        int y    スクロールY座標(0~ 511または1023)
    戻り値    int

bg_stat(b ,md)
    機能    指定されたバックグラウンドbの状態を読み出します。
    引数    char b    バックグラウンド(0 ,1)
        char md    モード(0~3)
        モードmdには読み出す内容を指定します。
        0=X座標(0~511または1023)
        1=Y座標(0~511または1023)
        2=テキストページ(0 ,1)
        3=バックグラウンドの表示(0=表示されていない、1=表示されている)

------------------------------------------------------------------------------
以下のサイトにもX-BASICの関数の説明があります。
アルファベット順にまとめられているので探しやすいかも知れません。
内容は確認してないので、掲載されている関数やコマンドがどの外部関数までなのかは解りません。
http://ww3.enjoy.ne.jp/~zoomark/ip/xb/xb_frm.html

0 件のコメント:

コメントを投稿