### パソコンテレビX1／turboシリーズとの相違点

NewX1は、パソコンテレビX1シリーズに標準搭載されているBASIC（Hu-BASIC）をベースに、
主に80年代に登場したアーケードゲームの忠実な再現を目的としたコマンドおよび関数を搭載しています。
NewX1turboは、上記に加えて、X1turboシリーズの機能であるテキスト画面の日本語表示と高解像度グラフィックが可能です。
一方、機械語、テレビ、カセットなど、パソコンテレビX1／turboシリーズのハードウェア独自の機能に依存する各種コマンド
および関数は搭載されておりません。
以下に、パソコンテレビX1／turboシリーズに標準搭載されているBASICとの相違点の一覧を示します。

#### 追加されたステートメント・関数（各コマンドのリファレンスにnew!と表示されています）

種類 | コマンド名 | 機　　能
--- | --- | ---
コマンド | INDENT ON INDENT OFF | プログラムリスト表示時に、行番号を揃えて表示するかどうかを設定します。
NOWAIT ON NOWAIT OFF | 処理をノーウェイトで行うかどうかを設定します。
HELP | ブラウザを起動し、オンラインマニュアルを表示します。
EXIT | NewX1／turboを終了します。
一般命令 | APRINT | 画面に情報をスクロールせずに出力します。
画面制御 | PLOAD | 画像ファイルを、キャラクタパターンデータとして読み込みます。
PSAVE | キャラクタパターンデータを、画像ファイルとして保存します。
SHOW | 各画面の表示有無を設定します。
GLOAD | 画像ファイルを読み込み、グラフィック画面に表示します。
GSAVE | グラフィック画面全体もしくは指定された範囲を、画像ファイルとして保存します。
START | グラフィック画面の表示開始座標を設定します。
SCROLL | グラフィック画面の表示開始座標を、指定したドット数だけ移動します。
VIEW | グラフィック画面およびスプライト画面のモニタ上での表示領域を設定します。
グラフィック | RLINE | 画面上に丸い輪郭が付いた長方形を描きます。また、その内部をぬりつぶすこともできます。
EMIT | 画面上に直線を放射状に描きます。
PCHART | 画面上に円グラフを描きます。
OVAL | 画面上に円や楕円の輪郭を描きます。また、その内部をぬりつぶすこともできます。
スプライト | SLOAD | 画像ファイルを、スプライトのパターン原画として読み込みます。
DEF SPRITE | スプライトのパターン原画から、スプライトのパターン画像を定義します。
SPRITE | スプライトのパターン画像を、スプライト画面に表示します。
サウンド制御 | BGM | 指定したサウンドファイルを読み込み、バックグラウンドで演奏します。
文字関数 | ASCCHR$ | 文字式の文字コードを16進表記に変換します。
REPLACE$ | 文字式の中の指定された文字列を置換します。
TRIM$ | 文字式から前後の空白を取り除いた文字列を与えます。
USING$ | 数式の値を指定された桁数の範囲で右づめした文字列を与えます。
日本語文字関数 | KEXT$ | 文字列から半角文字、または全角文字だけを抜き出します。
KTYPE$ | 全角文字の種類を返します。
KLEFT$ | 文字式の左側から、指定した文字数だけ文字を取り出します。
KRIGHT$ | 文字式の右側から、指定した文字数だけ文字を取り出します。
KINSTR | 文字式の中に含まれる特定の文字式の位置を検出します。
XJIS$ | 全角文字のXJIS漢字コードを返します。
特殊関数 | RGB | r(赤)、g(緑)、b(青)の各階調からカラーコードを与えます。
SOVERLAP | 指定した２スプライト間の重複ドット数を与えます。
BREST | バックグラウンドで演奏しているサウンドの残り時間を与えます。
システム変数 | XWIDTH | テキスト画面の横文字数を与えます。
YWIDTH | テキスト画面の縦行数を与えます。
ASPECT | 表示画面の縦横比率を与えます。
XSCREEN | グラフィック画面の水平方向の描画領域のサイズを与えます。
YSCREEN | グラフィック画面の垂直方向の描画領域のサイズを与えます。
XSTART | グラフィック画面の水平方向の表示開始座標を与えます。
YSTART | グラフィック画面の垂直方向の表示開始座標を与えます。

#### 削除されたステートメント・関数

種　類 | 削除されたステートメント・関数の一覧
--- | ---
コマンド | LIMIT，NEWON，TRON，TROFF，DEVICE，LOAD?，VERIFY，MKDIR，CHDIR，RMDIR，SET，HDOFF
プリンタ関連 | LLIST，LFILES，LPRINT，HCOPY，LPOS，CONSOLE#，LPOUT，LPRINT USING
機械語関連 | LOADM，SAVEM，CALL，POKE，OUT，MEM$，MON，WAIT，USR，DEF USR
一般命令 | OPTION BASE，PRINT USING，VDIM，VDIM CLEAR
ファイル処理 | FIELD，LSET，RSET，GET，PUT，DEVI$，DEVO$
画面制御 | SCREEN@，GRAPH，GRAPH@，PALET@，CONSOLE，WINDOW，PRW，CANVAS，LAYER， POKE@，OPTION SCREEN，KMODE，KSEN，CBLACK
グラフィック | CIRCLE@，PAINT@
特殊命令 | REPEAT ON／OFF，CLICK ON／OFF，KBUF ON／OFF，BOOT，ASK
通信回路制御 | ON COM GOSUB，COM ON／OFF／STOP
タイマー制御 | ON TIME$ GOSUB，TIME$ ON／OFF／STOP
テレビ制御 | TVPW，CRT，CHANNEL．VOL，SCROLL
カセット制御 | EJECT，CSTOP，FAST，REW，APSS，CMT
サウンド制御 | TEMPO，MUSIC，MUSIC@，PLAY，PLAY@，SOUND，SOUND@
文字関数 | MKI$，MKS$，MKD$，CVI，CVS，CVD
日本語文字関数 | JIS$，KTN$
ファイル用関数 | FPOS，ATTR$，DEVF，LOC，LOF
特殊関数 | INP，PEEK，PEEK@，VARPTR，FRE，SIZE，CMT，CALC，STRPTR

#### その他の主な相違点一覧

＜編集関連＞
・行番号の最大値は99999です。
・プログラムリストへの登録で、英小文字はダブルクォーテーション（”）内の文字定数以外は英大文字に変換されます。
・CTRL+Aキーによる挿入モードは、CTRL+Aキーまたはリターンキーを押すまで継続されます。
・CTRL+Sキーによる一時停止は、特殊キー以外のキーを押すまで一時停止されます。
・RENUM命令で行先の存在しない行番号が含まれている場合、Undefined labelエラーを表示し実行を中止します。
・AUTO，LIST，EDIT， SEARCH，FILESコマンドによる、グラフィック画面の非表示はありません。
＜変数関連＞
・整数型の範囲を16ビットから32ビットに拡大されました。
・文字定数およびプログラム１行の文字数の上限はありません。
・配列変数は要素数が１つの場合でも、DIM命令で定義しなければ使えません。
・数値関数の戻り値は倍精度型です。
＜画面関連＞
・CLS命令のパラメータが0～7に拡張されました（テキスト，グラフィック，スプライト各画面の消去有無を指定します）。
・COLOR命令などで設定できるプリセットカラーコードが、8色から16色に増加されました。
（黒，青，赤，マゼンダ，ライム，シアン，黄，白，灰，紺，茶，紫，緑，空，橙，桃）
・グラフィック命令の色番号は、プリセットカラー（0～15）もしくはRGB関数で取得可能な色（-16777216～-1）を
指定可能です。
・WIDTH命令は、任意の横文字数と縦行数および縦横比率を指定することが可能です。
（パラメータを省略すると、現在の表示倍率に基づいて画面サイズおよび表示文字数が自動設定されます。）
・LINE命令は、PSET／PRESET／XORのパラメータ設定が削除されました。
・LINE命令以外でも、PSET，RLINE， CIRCLE，OVAL，POLYで テキスト文字の表示が可能です。
・CREV／CFLASHでの反転色を変更しました （前景色：COLORで指定した色，背景色：透明）
・DEFCHR$命令で定義し、CGPAT$関数で取得できるユーザー定義文字のパターンは単色です。
・GET@／PUT@命令は、配列名の代わりにパターン番号（0～255）を指定します。
・KANJI$関数の引数で指定する漢字コード番号は、Unicode（0～65535）を指定します。
・NewX1turboでは、ファンクションキーの表示および表示／非表示の設定はできません。
・NewX1turboでは、CGENステートメントによる切り替えに関わらずノーマルモードの表示となります。
・NewX1turboでのテキスト画面の漢字コードは、XJIS文字コードとなります。
シフトJISコード，区点コード（&Knnnn），JIS漢字コード（&Jnnnn）は使用しません。
＜その他＞
・BEEP命令は、パラメータ無しの単音のみをサポートしています。
・PAUSE命令は、ミリ秒単位で指定し、実行中に中断・停止した場合も、中断・停止までの経過時間も含めます。
・STICK関数は、キーボードの場合、矢印キーにも対応しています。
・STRIG関数は、4ボタン入力に対応（キーボードの場合、スペース or Zキー，Xキー，Cキー，Vキー）しています。
・INPUT$関数は、ファイルのみ対応しています。
・AKCNV$／KACNV$関数は、グラフィック文字にも対応しています。
・DATE$関数で、年は4桁表示です。
・TIME関数は、起動からの時間をミリ秒単位で表示します。