プログラムもSHIFT-JISのまま読み込むことが出来ます。
主な違いは以下の通りです。
for iOS | X-BASIC/68 | ぺけ-BASIC | |
行番号 | ×(自動削除) | ○ | ○ |
gosub | × | ○ | × |
goto行番号 | × | ○ | ○ |
goto "ラベル" | 常時○ | × | 設定で○ |
goto *ラベル | × | × | 設定で○ |
戻り値のないreturnで()の省略 | ○ | × | ○ |
エディタ | 内蔵 | 内蔵 | なし(呼び出し可) |
コマンド | なし(一部関数化) | あり | なし |
ダイレクト実行 | 不可 | 可 | 不可 |
?(print省略形) | × | ○ | ○ |
その他省略形 | × | ○ | × |
文字列長 | 設定で変更可 | 任意に設定可 | 255バイト固定 |
配列次元 | 10次元 | 255次元 | 10次元 |
配列要素上限 | OS状態による | FREE設定まで | OS上限まで |
宣言なしint変数 | 標準ではエラー | ○ | 警告 |
dimなし配列 | 標準ではエラー | ○ | 警告 |
表示コントロールコード | CTRL-G/CTRL-J以外あり | あり | 一部あり |
多バイト文字の バイト単位出力による表示 | × chars2Sjis()/chars2UTF8()で処理可能 | ○ | ○ |
可変長配列 | 常時○ | なし | 設定で○ |
配列引数 | 常時○ | なし | 設定で○ |
using指定 | 文字列定数のみ | 変数も可 | 文字列定数のみ |
using ! | 1文字 | 1バイト | 1バイト |
using "%" | 不足桁を0で埋める | %が表示される | %が表示される |
e表現float (>3e10,4E-10など) | ○ | ○ | ×(バグ) |
単項演算子の連続 (-notなど) | ○ | ○ | ×(バグ) |
起動時引数 | なし | なし | 設定で○ |
startup.bas (自動実行ファイル) | あり | なし | なし |
変数の初期化 | 常時 | 常時 | 設定でなし |
エラー停止 | コンパイル時は全体 実行時発生行 | 実行時発生行 | コンパイル時発生行 実行時発生行 |
date$/time$ | 代入不可 | 代入可 | 代入可 |
inkey$ | あり ただしタッチまたはファンクションキー設定が必須 | あり | あり |
外部関数互換性 | 機種依存分以外 | あり | あり |
マルチステートメント | 可 | 可(省略不可) | 可 |
//コメント | ○ | × | × |
空行 | ○ | × | ○ |
ファイルエンド | サイズ/&h1a | &h1a必須 | サイズ/&h1a |
文字コード | UTF-8/SHIFT-JIS | SHIFT-JIS | SHIFT-JIS |
変数宣言時代入 | 制約なし | 定数式のみ | 制約なし |
.cnf設定 | 一部SETUP | あり | 拡張あり |
X-BASICでは ':' で区切ることでマルチステートメントを書けますが、X-BASIC/68ではその後の文を省略できません(存在しないとエラーになる)。iOS版及びぺけ-BASICでは省略できます。
この差は特にcase文で顕著になります。
case 1: X-BASIC/68ではエラーになるのでcase 1と記述しなければならない
オーバーフローチェック | ||||
例 | for iOS | X-BASIC/68 | ぺけ-BASIC | 補足 |
charで255+1 | 0 | エラー | 0 | 8ビットオーバーフロー |
0-1 | 255 | エラー | 255 | 8ビットアンダーフロー |
dim a(65536) | dim a(0)相当 | エラー | dim a(0)相当 | 配列要素数は16ビットで管理されているから |
また、ハードやOSの違い等により、以下の項目の取り得る値や規則が異なります。
- テキスト座標
- グラフィック座標(float)
- スプライト枚数(定義/表示)、座標
- 色コード
- ファイル名規則
- メモリの格納順はL→H(リトルエンディアン)
さらに、ほぼ同じ動きを目指した関数でも、iOSとX68実機の動作の違いにより、結果が微妙に異なる場合があります。特にグラフィック系は、iOSは基本的にアンチエイリアスと合成描画を基本としているため、描画結果がX68と異なる場合が多々あります。さらに、テキスト画面の座標とグラフィック画面の位置関係がX68とは異なります。
0 件のコメント:
コメントを投稿