3.本BASICで使えない機能
(2) True BASIC独自の機能で本BASICで使えないもの(おもなもの)
・制御関係
library文
ファイル−末尾に追加読込 で対応
OPTION TYPO
オプション−文法−変数宣言を強要 に相当
OPTION NOLET
文法−Microsoft BASIC互換 で対応
GET KEY
CHARACTER INPUTの後,ORD関数を適用する
KEY INPUT
ASK CHARACTER PENDINGで対応
END DATA, MORE DATA
READ文にIF MISSINGを書いて対応
DECLARE PUBLIC
DECLARE EXTERNAL NUMERIC
および
DECLARE EXTERNAL STRING
に相当
PUBLIC
PUBLIC NUMERIC
および
PUBLIC STRING
に分けて書く。
PRIVATE
share文に書き換える
(ただし,現バージョンでは非公開にならない)
・グラフィックス
SET BACKGROUND COLOR (SET BACK)
SET COLOR MIX (0) の後,CLEAR
ASK BACKGROUND COLOR (ASK BACK)
ASK COLOR MIX (0) で対応
BOX LINES
GRAPH LINES文で対応
副プログラムとして定義しておくとよい。
EXTERNAL SUB BOX_LINES(l,r,b,t)
GRAPH LINES: l,b; r,b; r,t; l,t; l,b
END SUB
BOX AREA
GRAPH AREA文で対応
EXTERNAL SUB BOX_AREA(l,r,b,t)
GRAPH AREA: l,b; r,b; r,t; l,t
END SUB
BOX CLEAR
GRAPH AREA文で対応
BOX CIRCLE,BOX ELLIPSE
DRAW circleで対応
BOX KEEP
ASK PIXEL ARRAYで対応
BOX SHOW
MAT PLOT CELLSで対応
GET MOUSE
MOUSE POLL(規格外)が機能的に近い
SET MODE, ASK MODE
対応なし(ただしグラフィックは常に利用できる)
ビットマップのサイズ変更は SET BITMAP SIZE(規格外)
SET CURSOR, ASK CURSOR
対応なし
OPEN SCREEN
対応なし
WINDOW #
対応なし
・ファイル,I/O関係
可変長ファイル (ORG RANDOM)
対応なし
固定長ファイル (ORG RECORD)
対応なし
バイトファイル
OPTION CHARACTER BYTEを宣言し,CHARACTER INPUT文とPRINT文で対応
open文のCREATE句
対応なし(本BASICの既定値が適用される)
END #,MORE #
INPUT文などに IF MISSING THENを書いて対応
UNSAVE
FILE DELETE(規格外)と同義
ASK FREE MEMORY
対応なし
・音楽機能
PLAY文,SOUND文
対応なし(本BASICのPLAY文とは機能が異なる)
・組み込み関数
CPOS, CPOSR, NCPOS, NCPOSR, POSR
外部関数を定義する
例
EXTERNAL FUNCTION CPOS(a$,b$,n)
FOR i=n TO LEN(a$)
IF POS(b$,a$(i:i))>0 THEN
LET CPOS=i
EXIT FUNCTION
END IF
NEXT i
LET CPOS=0
END FUNCTION
PEEK, UNPACKB, NUM, NUM$, RUNTIME
対応なし
・組込み副プログラム
DIVIDE
外部副プログラム定義を利用
EXTERNAL SUB DIVIDE(a,b,q,r)
LET q=INT(a,b)
LET r=MOD(a,b)
END SUB
PACKB, POKE
対応なし