| 開発者 | Microsoft、Atari, Inc. |
|---|---|
| 最終リリース | 2.0 / 1982 |
| プラットフォーム | Atari 8ビットコンピュータ |
| サイズ | 27KB |
| タイプ | マイクロソフトベーシック |
| ライセンス | 著作権 © 1981, 1982 Microsoft Corp.所有権 |
Atari Microsoft BASICおよびAtari Microsoft BASIC IIは、Atari 8 ビット コンピュータに移植された6502バージョンのMicrosoft BASIC の派生版です。1981 年にリリースされた最初のバージョンは、32 KB のRAMを必要とし、フロッピー ディスクで提供されました。翌年にリリースされた 2 番目のバージョンでは、ほとんどのコードがROM カートリッジに収められ、追加機能はオプションのフロッピーに収められました。
Atari Microsoft BASIC は、 Applesoft BASICやCommodore BASICなどの当時の BASIC と高い互換性がありましたが、独自のAtari BASICは多少異なる方言で多くの点で互換性がありませんでした。Atari BASIC と同様に、Atari Microsoft BASIC には、Atari プラットフォームを活用するための新しいコマンドや機能が多数含まれていました。これらは、Atari BASIC の同様の機能とは部分的にしか互換性がありませんでした。
歴史
Microsoft がIntel 8080ベースの BASIC を 6502 に移植したとき、精度を向上させるために、浮動小数点形式を元の 32 ビット形式からオプションの 40 ビット形式に拡張するのに時間を費やしました。コンパイラ フラグを提供することで、両方のバージョンを同じコードからコンパイルできます。32 ビット形式を使用した場合、結果のコード長は 8 KB 未満になり、40 ビット形式を使用した場合は 9 KB に近くなりました。
Atari の 8 ビット ホーム コンピュータは、8 KBの ROM カートリッジ用のスロットを備えて設計されました 。Atari のプログラマーは、Microsoft の BASIC を 1 つのカートリッジに収めながら、プラットフォームの利点を活かす機能も追加しようと奮闘しました。1978 年の夏、Atari は、1979 年のシステム発売に間に合うように BASIC の移植作業を外注することを決定し、Shepardson Microsystems Inc. (SMI) に依頼しました。SMI はすぐにその作業は不可能であると判断し、代わりに BASIC のまったく新しいバージョンを作成することを提案しました。これがAtari BASICとなり、1979 年に Atari 400 および 800 とともにリリースされました。[1]
Atari は MS コードの開発を続け、1981 年にフロッピー ディスク版をリリースしました。Atari BASIC に比べて MS の標準コマンドの範囲が拡張されたことに加え、新しいバージョンではグラフィックスやサウンド、プラットフォームのその他の機能のためのコマンドがいくつか追加されました。また、整数変数と完全な整数計算パッケージ[a]も含まれており、パフォーマンスが向上しました。ただし、少なくとも 32 KB の RAM が必要で、ディスクからしか実行できなかったため、特に人気が出ることはありませんでした。
2 番目のリリースである Atari Microsoft BASIC II では、ほとんどのコードが拡張された 16 KB カートリッジに移され、さらにあまり使用されない 11 KB のコードがディスク上に配置されました。これにより、クロスプラットフォームでの使用を目的とした多くのプログラムがカートリッジだけで実行できるようになりました。1982 年にリリースされた BASIC II も、実際の使用はほとんどありませんでした。
詳細
基礎となるインタープリタは、Commodore BASICおよびAppleSoft BASICの基礎となったものと同じ 9 KB MOS 6502コードに基づいており、それらとほぼ互換性がありました。その重要な点は、それらのプラットフォームと同じコードに基づいた文字列処理システムでした。対照的に、Atari BASIC は文字列を文字の配列として扱うまったく異なるシステムを使用していたため、他のほとんどのシステムと互換性がなく、他のほとんどのシステムから簡単に移植することもできませんでした。
システムのオペレーティング システムROM 内の悪名高いほど遅い浮動小数点演算ライブラリに代わる、オリジナルの 40 ビット形式の浮動小数点演算ライブラリが保持されているため、他のプラットフォームと同じ速度で数学コードを実行でき、Atari BASIC よりもはるかに高速です。また、パフォーマンスを向上させるために、追加の整数演算パッケージも含まれていました。整数演算システムは、割り当てが整数変数に対して行われた場合、またはリテラル値がすべて整数である場合にトリガーされました。どちらかが当てはまらない場合、整数値は浮動小数点に変換され、計算に浮動小数点コードが使用され、その後、保存のために再び整数に変換されました。
FOR...NEXTパフォーマンスに関するもう 1 つの注目すべき改善は、ループに関連しています。Atari BASIC は、FOR実行スタックに の行番号を配置することでループを実行していたため、関連するNEXTに遭遇したときに、どの行にループバックするかを判断できました。対照的に、MS BASIC では、その行のメモリ位置を常にスタックに配置していたため、FORプログラム全体から一致する行を検索しなくても にジャンプして戻ることができました。Atari BASIC のこの奇妙な点は、パフォーマンスが遅い主な理由の 1 つですが、Atari Microsoft BASIC ではこれが当てはまらなかったため、一般に Atari BASIC よりもはるかに高速に実行されました。
入力時に行全体を解析してトークン化する Atari BASIC とは対照的に、MS BASIC はソース コードを部分的にしかトークン化しませんでした。行が入力されると、行番号が ASCII から 16 ビットの整数に変換され、最初のプログラム ステートメントが 1 バイトの値にトークン化され、行の残りはテキスト形式のままになりました。最後の文字は、行の終わりを示すためにハイ ビットが設定されました。ユース ケースによっては、Atari BASIC の行の完全なトークン化により、プログラムを格納するために使用されるメモリが少なくなる場合があります。この違いは、編集時に行全体がチェックされる Atari バージョンとは異なり、MS コードでは多くの構文エラーが実行時にのみ検出されることも意味します。理論上は、編集時のコンパイルにより、行に遭遇するたびに再トークン化する MS よりも Atari BASIC の方がはるかに高速になるはずでしたが、この利点は上記の他のパフォーマンスの問題によって打ち消されました。
MS BASIC には、入力時にピリオドで短縮形を入力できる Atari BASIC とは異なり、短縮形のキーワードを入力するシステムは含まれていませんでした。プログラムがLIST編集されると、キーワードは展開されます。Commodore のバージョンでは、同様に制御文字補完が追加されました。
Atari Microsoft BASIC では、プラットフォームを活用するためにいくつかの新機能が追加されました。興味深い追加機能の 1 つは、AFTER (600) GOTO 100指定された数の「jiffies」(1/60 秒) を待機してから、 を実行する機能です。また、次の行に進む前にメモリ アドレスが変更されるのを待機する代わりに一時停止する もFOR含まれていました。 は、MS BASIC の最も初期のバージョンの一部でしたが、広くは使用されていませんでした。
WAITWAIT
Atari Microsoft BASIC には、Atari BASIC のグラフィックスおよびサウンド コマンドのほとんどが含まれていました。奇妙なことに、オリジナルはオプション フォーマットを使用してDRAWTO統合されました。つまり、Atari BASIC のグラフィックス コードは互換性がありませんでした。Atari Microsoft BASIC では、プレイヤー/ミサイル グラフィックスおよびAtari BASIC では利用できなかった
ユーザー定義の文字セットを処理するためのコマンドがいくつか追加されました。PLOTPLOT...TO...
Atari Microsoft BASICには 2 つのパッケージがありました:
- フロッピーディスク– CX8126
- ROM カートリッジ– RX8035。カートリッジには 16 KB しか保存できないため、残りの 11 KB のファイルは「拡張」ディスクに収録されていました。カートリッジ バージョンはAtari Microsoft BASIC IIと呼ばれていました。
Microsoft BASIC は Atari BASIC よりも機能が豊富でしたが、Atari BASIC ほどの人気を得ることはありませんでした。最大の問題は次のとおりです。
- 必要なメモリの増加(少なくとも 32 KB)
- 必要なディスクドライブ
- パフォーマンス(Atari BASIC よりは速いが、 Turbo-Basic XLやBASIC XLよりは遅い)
- Atari BASICと互換性がありません
- 追加コスト
カートリッジ バージョンでは最初の 2 つの要件は排除されましたが、すべての機能にはディスク ドライブが必要でした。
注記
- ^ コモドールの MS BASIC バージョンとは対照的に、整数変数は含まれていましたが、その値を浮動小数点形式に変換して計算を実行していました。
参考文献
- ^ “Atari DOS の内部 - 概要”.
外部リンク
- AtariAgeの Atari Microsoft BASIC
- アンティック第6巻第2号 BASIC Bonanza - チャールズ・チェリーによるレビュー
- Atariwiki.org Atari Microsoft BASIC 取扱説明書
