SWEET16は、スティーブ・ウォズニアックによって発明され、 Apple IIコンピュータのInteger BASIC ROMの一部として実装された、インタープリタ型 バイトコード命令セットです。ウォズニアックは16ビットのポインタデータを操作する必要があり、Apple IIは8ビットコンピュータであった ため、SWEET16は開発されました。 [1]
SWEET16はBASICのコアコードでは使用されませんでしたが、後にいくつかのユーティリティの実装に使用されました。中でも注目すべきは行番号再設定ルーチンで、Programmer's Aid #1 ROMに収録され、後期のApple IIモデルにも追加され、初期のサンプルプログラムにもユーザーがインストールできるようになりました。[2]
SWEET16コードは、 R0からR15までの内部16ビットリトルエンディアンレジスタを持つ16ビットプロセッサ上で実行されているかのように実行されます。一部のレジスタは明確に定義された機能を持ちます。[1]
16個の仮想レジスタ(合計32バイト)は、Apple IIの実際の物理メモリマップのゼロページ( $00~$1F)に配置され、値は下位バイト、上位バイトの順に格納されます。[1] SWEET16インタープリタ自体は、Integer BASIC ROMの$F689から$F7FCに配置されています。
ウォズニアック氏によると、SWEET16の実装はメモリ使用量が約300バイトと非常に少ない、省力コーディングの好例である。SWEET16は、同等のネイティブ6502コードと比較して約10分の1の速度で動作するが、Integer BASICと比べて約20%のサイズ削減に成功した。[3]
オペレーター
| レジスタオペレーション | 非登録オペレーション | ||||
|---|---|---|---|---|---|
| 00 | RTN | 6502モードに戻る | |||
| 1n | セット Rn | 定数セット | 01 | BR ea | ブランチは常に |
| 2n | LD Rn | 負荷 | 02 | BNC 各 | キャリーなしの場合の分岐 |
| 3n | ST Rn | 店 | 03 | 紀元前 | キャリーの場合の分岐 |
| 4n | LD @Rn | 間接的にロード | 04 | BP ea | プラスの場合に分岐 |
| 5n | ST @Rn | 間接的に保管する | 05 | BM ea | マイナスの場合に分岐 |
| 6n | LDD @Rn | ダブルバイト間接ロード | 06 | BZ ea | ゼロの場合に分岐 |
| 7n | STD @Rn | 2バイト間接保存 | 07 | BNZ ea | 非ゼロの場合に分岐 |
| 8n | ポップ @Rn | ポップ間接 | 08 | BM1個 | マイナス1の場合に分岐 |
| 9n | STP @Rn | ストアポップ間接 | 09 | BNM1個 | マイナス1でない場合は分岐 |
| アン | 追加 Rn | 追加 | 0A | BK | 壊す |
| Bn | サブ Rn | 減算 | 0B | RS | サブルーチンからの戻り |
| CN | POPD @Rn | 2バイト間接ポップ | 0℃ | BS ea | サブルーチンへの分岐 |
| ダウン | CPR 看護師 | 比較する | 0D | 未割り当て | |
| エン | INR Rn | インクリメント | 0E | 未割り当て | |
| ファンクション | DCR Rn | デクリメント | 0F | 未割り当て | |
参考文献
- ^ abc Wozniak, Stephen (1977年11月). 「SWEET16: The 6502 Dream Machine」. Byte . 2011年1月5日閲覧。
- ^ Apple Programmers Aid (PDF) . Apple. 1978年。
- ^ Wozniak, Stephen (1977年5月). 「The Apple II」(PDF) . Byte . 2012年5月18日閲覧。
外部リンク
- Call-APPLE Wozpak II — 1979 Call-APPLE の小冊子。ディック セジウィック著の「SWEET 16 Introduction」と、各オペコードのより詳しい説明が付いたスティーブ ウォズニアック著の「SWEET 16: The 6502 Dream Machine」のバージョンが含まれています。
- Strotmann, Carsten (2004年3月21日). 「Porting Sweet 16」. 6502.org . 2021年3月3日時点のオリジナルよりアーカイブ。 2021年3月3日閲覧。