XCE 命令 (Set Carry Flag)
キャリーフラグとエミュレーションフラグの値を交換します。

CLCオーバーロード
オペコード 構文 アドレッシングモード バイト数 命令サイクル
FB
XCE
Imp.
1
2


フラグ変化
--m----ce

m: エミュレーションモード移行時にセットされる
c: この命令によってエミュレーションフラグと交換される
e: この命令によってキャリーフラグと交換される

解説
XCE命令は、キャリーフラグとエミュレーションフラグの値を交換することで、ネイティブモードとエミュレーションモード間の切り替えを行います。
エミュレーションフラグに直接アクセスする手段はなく、この命令が唯一間接的にエミュレーションフラグを操作できる命令となります。

キャリーフラグセット時にXCE命令を実行することで、プロセッサはエミュレーションモードに移行します。この際、メモリモードフラグは1に強制されアクセス不能となり、アキュムレータは8ビット固定となります。
また、インデクスフラグは6502プロセッサのブレークモードフラグとして使用され、このフラグにアクセスしてもインデクスレジスタの幅を変えることはできず、8ビット固定長とされます。

キャリーフラグクリア時にXCE命令を実行することで、プロセッサはネイティブモードに移行します。この際、メモリモードフラグおよびブレークモードフラグとして使用されていたインデクスフラグの状態は変更されません。
SEPまたはREP命令によって手動でレジスタ幅を再設定する必要があります。

参照