WDC 65C02

PDIP-40パッケージのW65C02Sマイクロプロセッサ
一般情報
発売1983 (1983年
共通メーカー
パフォーマンス
最大CPUクロックレート1MHz~14MHz
歴史
前任者MOSテクノロジー6502

Western Design Center (WDC) 65C02マイクロプロセッサは、人気のnMOSベースの8ビットMOSテクノロジ6502CMOS版です。オリジナルの6502よりも消費電力が少なく、いくつかの問題が修正され、新しい命令とアドレッシングモードが追加されています。消費電力は、同じ速度で動作する場合、オリジナルの6502の10分の1から20分の1程度です。[ 1 ]消費電力の低減により、ポータブルコンピュータや産業用マイクロコントローラシステムでの利用に適しています。65C02は、一部の家庭用コンピュータや、埋め込み型医療機器などの組み込みアプリケーションにも使用されています。

WDC 65C02の開発は1981年に開始され[ a ]、サンプルは1983年初頭にリリースされました。[ b ] 65C02はその後まもなく正式にリリースされました。[ 2 ] WDCはSynertekNCRGTE MicrocircuitsRockwell Semiconductorに設計のライセンスを供与しました。Rockwellの主な関心は組み込み市場にあり、この役割を支援するためにいくつかの新しいコマンドの追加を求めました。これらは後にベースラインバージョンにコピーされ、WDCは独自の2つの新しいコマンドを追加してW65C02を作成しました。その後、三洋電機も設計のライセンスを取得し、セイコーエプソンはHuC6280としてさらに改良されたバージョンを製造しました。

初期バージョンは40ピンDIPパッケージを採用し、オリジナルのnMOSバージョンと同じ速度で1MHz、2MHz、4MHzのバージョンが用意されていました。後期バージョンはPLCCQFP、PDIPパッケージで提供され、クロック速度は大幅に向上しました。WDCの最新バージョンであるW65C02S-14は、完全にスタティックなコアを搭載し、5V電源で最大14MHzの速度で動作します。

概要と特徴

65C02は、 16ビットのプログラムカウンタアドレスバスを備えた、低価格の汎用8ビットマイクロプロセッサ(8ビットレジスタデータバス)です。レジスタセットは小さく、1つの8ビットアキュムレータ(A)、2つの8ビットインデックスレジスタ(XとY)、1つの8ビットステータスレジスタ(P)、そして16ビットプログラムカウンタ(PC)で構成されています。1つのアキュムレータに加えて、RAMの最初の256バイトである「ゼロページ」(~)は、16ビットアドレスではなく8ビットメモリアドレスを使用するアドレッシングモードを通じて、より高速なアクセスを可能にします。スタックは次の256バイトであるページ1(~)にあり、移動または拡張することはできません。スタックは下方向に拡張され、スタックポインタ(SまたはSP)は$01FFから始まり、バイトがプッシュされるたびに減少します。[ 3 ] 65C02は可変長命令セットを持っており、命令ごとに1バイトから3バイトの間で変化します。[ 1 ]$0000$00FF$0100$01FF

65C02の基本アーキテクチャはオリジナルの6502と同一であり、その設計を低消費電力化したものといえます。オリジナルの6502で最も多く使われていた1MHz動作時において、65C02の消費電力はわずか20mWです。これはオリジナルの6502の450mWに対して、20倍以上の削減となります。[ 4 ]手動で最適化されたコアと低消費電力設計により、65C02は低消費電力システムオンチップ(SoC)設計に最適です。[ 1 ]

W65C02SコアをASIC(特定用途向け集積回路)またはFPGA(フィールドプログラマブルゲートアレイ)に設計するためのVerilogハードウェア記述モデルが用意されています。 [ 5 ]半導体業界では一般的ですが、WDCは開発ボードインサーキットエミュレータ(ICE)、ソフトウェア開発システムを含む開発システムを提供しています。 [ 6 ]

W65C02S6Tは2025年時点での生産バージョンであり、PDIP-40PLCC-44QFP-44パッケージで提供される。公式にサポートされている最大のØ2(プライマリ)クロック速度は、5ボルトで動作時に14MHzであり 部品番号の接尾辞-14で示される(愛好家は、公式定格よりも大幅に高速に動作する65C02の自作システムを開発している)。「S」の指定は、その部品が完全に静的なコアを持っていることを示し、状態の損失なしにどちらの位相でもØ2クロックを停止できる機能をサポートする。[ 7 ]   CMOSで実装されていない一般的なマイクロプロセッサは動的コアを持っており、指定された最小値と最大値の間の速度で継続的にクロックされない場合、状態が失われ(したがってクラッシュする)。

「6T」という指定は、プロセスジオメトリ(0.6µ)を示し、台湾セミコンダクター・マニュファクチャリング・カンパニー(TSMC)がWDC のウェーハを製造するファウンドリであることを示します。

65C02レジスタ
1 51 41 31 21 11 00 90 80 70 60 50 40 30 20 10 0(ビット位置)
メインレジスター
  アキュムレータ
インデックスレジスタ
  X Xインデックスレジスタ
  はい Yインデックスレジスタ
0 0 0 0 0 0 0 1 S スタックポインター​​
プログラムカウンタ
パソコン プログラムカウンター​​
ステータスレジスタ
  V- BDZCステータスレジスタ​​

一般的なロジック機能

Sitronix ST2064Bマイクロコントローラのダイ写真。右上にW65C02Sコアが組み込まれている。

ロジック機能

電気的特徴

  • 供給電圧は1.71 V~5.25 Vに指定されます。
  • 消費電流 (コア) は、1.89 V および 5.25 V でそれぞれ1 MHzあたり0.15 mA および 1.5 mAです。
  • 可変長命令セットは、固定長命令セットプロセッサ上でコード サイズの最適化を可能にし、電力を節約します。
  • 完全に静的なコアにより、クロックを停止して電力を節約できます。

クロッキング機能

W65C02Sは、1.8~5ボルト(±5%)の範囲で、任意の電源電圧(V DD)で動作可能です。データシートのAC特性表には、14MHzで5V、8MHzで3.3Vまたは3V、4MHzで2.5V、2MHzで1.8Vの動作特性が記載されています。この情報は以前のデータシートの記述から得られたものである可能性があります。グラフから、一般的なデバイスはAC特性表で示されているよりも高速で動作可能であることが示されており、サポートハードウェアが許容する限り、V DDが5ボルトでも20MHzでの信頼性の高い動作が容易に達成可能であることが示されています。

W65C02S は任意のクロック レートをサポートしているため、V DD が周波数をサポートするのに十分である限り、13.5 MHz (デジタル SDTV 輝度サンプリング レート)、14.31818 MHz (NTSC カラー キャリア周波数 × 4)、14.75 MHz (PAL 正方形ピクセル)、14.7456 (シリアル ビット レート水晶) など、システムの他の部分に最適なレートで動作するクロックを使用できます。設計者のBill Mensch は、マイクロプロセッサのピンの容量性負荷などのチップ外の要因がF MAXに影響を与えることを指摘しています。信号トラックを短くし、デバイス数を最小限にして負荷を最小限に抑えると、 F MAXを上げるのに役立ちます。PLCC パッケージと QFP パッケージは、PDIP パッケージよりもピン間の容量が小さく、プリント回路基板のスペースをより経済的に使用できます。

WDC は、W65C02S の FPGA 実現が 200 MHz で正常に動作したと報告しました。

NMOS 6502との比較

基本的なアーキテクチャ

65C02は主に低消費電力の6502と捉えられることが多いですが、オリジナルで発見されたいくつかのバグを修正し、プログラマーがより小型で高速に実行できるプログラムを書くのに役立つ新しい命令、アドレッシングモード、機能を追加しています。平均的な6502アセンブリ言語プログラムは、65C02では10~15%サイズが小さくなり、同様のパフォーマンス向上が見込めると推定されています。これは主に、特定のタスクを実行するための命令数が少なくなり、メモリアクセスが回避されるためです。[ 1 ]

文書化されていない指示を削除しました

オリジナルの6502には56個の命令があり、異なるアドレッシングモードと組み合わせることで、256通りの8ビットオペコードパターンから合計151個のオペコードが生成されます。残りの105個の未使用オペコードは未定義であり、下位4ビットが3、7、B、またはFのコードセットは完全に未使用のままであり、下位2ビットが1つのオペコードのみを持つコードです。[ 8 ]

6502では、これらの残存コードの一部が実際に計算を実行します。6502の命令デコーダの仕組み上、オペコード内の特定のビットをセットするだけで、命令処理の一部が実行されます。これらのオペコードの中には、プロセッサを即座にクラッシュさせるものもあれば、有用な機能を実行するものもあり、一部のプログラマによって非公式のアセンブラニーモニックが与えられているものもありました。[ 9 ]

65C02では、これまで文書化されていなかった命令スロットの一部を使用する新しいオペコードが追加されました。例えば、$FFは新しいBBS命令で使用されます。完全に未使用のままの命令はsと同等ですNOP。これらのオペコードを使用する6502プログラムは、65C02では動作しません。[ 1 ]

バグ修正

6502のすべてのNMOSバリアントに存在する欠陥は、間接アドレッシング使用時のジャンプ命令に関係しています。このアドレッシングモードでは、命令のターゲットアドレスは、命令JMPのオペランドではなく、メモリ(ジャンプベクター)からフェッチされますJMP。例えば、JMP ($1234)はメモリ位置$1234(最下位バイト)と$1235(最上位バイト)の値をフェッチし、それらの値をプログラムカウンタにロードします。これにより、プロセッサはベクターに格納されたアドレスから実行を継続します。

この欠陥は、一部の人がバグだと考えているが、ベクターアドレスがメモリページの境界である$FFで終わる場合に発生する。この場合、はターゲットアドレスの最上位バイトを新しいページの $00ではなく元のページの$ 00から取得する。したがって、ターゲットアドレスの最下位バイトは$12FFに、ターゲットアドレスの最上位バイトは$1300ではなく$1200から取得する。オリジナルの 6502 のドキュメントでは、アドレスがこのようにページをまたぐとは述べられていないため、それ自体をバグと見なすことはできないしかし、多くの 6502 ユーザーはこの複雑さを弱点と感じたため、ポインタを更新するために別のサイクルを費やすという犠牲を払って 65C02 で排除された。[ 1 ]JMPJMP ($12FF)

多くの要望により修正されたもう 1 つの設計上の弱点は、NMOS 6502 のステータス レジスタの (D)ecimal フラグの状態がリセットまたは割り込み後に未定義になることです。つまり、意図したモード以外のモードで演算処理が実行されることでランダム エラーが発生し、ソフトウェア バグが発生するのを防ぐため、プログラマはフラグを既知の値に設定する必要があります。結果として、ほぼすべての 6502割り込み ハンドラCLDと、リセット コードの初期段階で(CLear Decimal) 命令が見つかります。65C02 は、割り込みまたはハードウェア リセットに応答してステータス レジスタをスタックにプッシュした後、このフラグを自動的にクリアし、プロセッサを 2 進演算モードに戻します。[ 10 ]これにより、通常、ソフトウェアで数バイトが節約され、よくあるプログラミング ミスの可能性が排除されますが、以前はフラグがまだ設定されていると想定していた場所でプログラマが 10 進モードで実行されるコードのサイズが大きくなることを覚えておかなければなりません。 SED

NMOS 6502は、 10進モード演算中、(N)egative、o(V)erflow、(Z)eroフラグを公式には未定義の状態に設定します。プログラマーは、CPUがこれらの3つのフラグを、基礎となる2進演算の結果を反映するように更新することを発見しました。つまり、これらのフラグは、プロセッサが10進補正を行う前に計算された結果を反映しているのです。対照的に、65C02は、10進演算の結果に応じてこれらのフラグを設定しますが、演算命令ごとに1クロックサイクル余分にかかります。[ 10 ]一部のライターは、65C02のVフラグは10進モードでは依然として不正確であると主張していますが、10進演算は常に符号なしであるため、このフラグは無意味であると考えることもできます。

などのリード・モディファイ・ライト(RMW)命令を実行すると、すべてのNMOSバリアントはaddrに二重書き込みを行います。つまり、最初にaddrの現在の値を書き換え、次に変更後の値を書き込みます。addrハードウェアレジスタの場合、この動作によって解決困難なバグが発生する可能性があります。これは、ハードウェアがレジスタ値の変更を監視し、その後アクションを実行する場合に発生する可能性があります。この場合、ハードウェアは2つのアクションを実行します。1つは元の値で、もう1つは新しい値で実行されます。65C02は、代わりにaddrを二重に読み取り、1つの書き込みを実行します。 INC addr

インデックス アドレッシングを実行する際、インデックスがページ境界を越えると、すべての NMOS バリアントは正しいアドレスにアクセスする前に無効なアドレスから読み取ります。RMW 命令と同様に、この動作は、インデックスを介してハードウェア レジスタにアクセスするときに問題を引き起こす可能性があります。65C02 では、インデックスがページ境界を越えるときに命令オペコードのダミー読み取りを実行することでこの問題を修正しました。ただし、この修正によって、ベース アドレスが偶数ページ境界にある場合 (つまり、インデックスが次のページにまたがることがない) に新しいバグが発生しました。この新しいバグにより、インデックスの前にベース アドレスでダミー読み取りが実行され、X の値が$ 1200 に追加される前に$1200LDA $1200,Xでダミー読み取りが実行されます。この場合も、ハードウェア レジスタ アドレスでインデックスを付ける場合、このバグによって未定義の動作が発生する可能性があります。

NMOS 6502がBRK(ソフトウェア割り込み)オペコードをフェッチしている最中にハードウェア割り込みが発生した場合、プロセッサがハードウェア割り込みに反応するためBRKは無視されます。65C02は、割り込みを処理してからBRKを実行することで、この状況を適切に処理します。

新しいアドレス指定モード

6502 には、ページ 0 に格納されている 16 ビットのアドレスを逆参照する 2 つの間接アドレッシング モードがあります。

  • インデックス付き間接命令(例:Xレジスタの値を指定されたページ0アドレスに加算してから、16ビットベクトルを読み出します。この例では、Xが5の場合、16ビットアドレスは$15/$16から読み出されます。これは、ページ0にポインタ配列がある場合に便利です。LDA($10,X)
  • 間接インデックス(例: )。指定されたページ0アドレスから読み出された16ビットベクトルにYレジスタの値を加算します。この例では、Yが5で、$10/$11の位置にベクトル$1000が含まれている場合、読み出しアドレスは$1005になります。これはポインタオフセットアドレッシングを実行します。LDA($10),Y

このモデルの欠点は、インデックス付けが不要であるにもかかわらずアドレスがゼロページにある場合、インデックスレジスタの1つをゼロに設定し、これらの命令のいずれかで使用する必要があることです。そのため、65C02では、インデックス付き間接モードと間接インデックス付きモードを使用できるすべての命令に、例えば、非インデックス間接アドレッシングモードが追加されました。これにより、インデックスレジスタは他の用途に使用できるようになります。[ 11 ]LDA($10)

6502のJMP命令は、6502命令の中では「絶対間接」と呼ばれる独自のアドレッシングモードを備えています。これは、指定されたメモリアドレスから16ビット値を読み取り、その16ビット値のアドレスにジャンプします。例えば、メモリアドレス$A000$34$A001に$12が格納されている場合、 JMP命令はこれらの2バイトを読み取り、 $1234という値を構築し、そのアドレスにジャンプします。 JMP($A000)

間接アドレッシングの一般的な用途の一つは、分岐テーブル(インデックスを用いてアクセスできるサブルーチンのエントリポイントのリスト)を構築することです。例えば、デバイスドライバはOPENCLOSEREADなどのエントリポイントを$A000のテーブルにリストすることがあります。READは3番目のエントリで、インデックスは0で、各アドレスは16ビットです。したがって、READを呼び出すには、 のような式を使用します。ドライバが更新され、サブルーチンコードがメモリ内で移動した場合でも、ポインタテーブルが$A000にある限り、既存のコードは引き続き動作します。 JMP($A004)

65C02では、分岐テーブルの使用を容易にする新しい「インデックス付き絶対間接」モードが追加されました。このモードでは、Xレジスタの値を絶対アドレスに加算し、その結果得られた位置から16ビットアドレスを取得します。例えば、上記のテーブルからREAD関数にアクセスするには、Xに4を格納し、次にを実行します。このアクセススタイルでは、単一のベースアドレスと8ビットのオフセットを組み合わせて使用​​するため、分岐テーブルへのアクセスが簡素化されます。[ 11 ] NMOSバージョンでもインデックス付き間接モードを使用することで同じことを実現できますが、テーブルがゼロページ(限られたリソース)にある場合に限られます。これらのテーブルをゼロページの外側に構築できるようにすることで、このリソースの需要が軽減されるだけでなく、テーブルをROMに配置することも可能になります。 JMP($A000,X)

新しい指示と変更された指示

新しいアドレッシングモードに加えて、「ベースモデル」65C02には新しい命令セットも追加されています。[ 12 ]

  • INCパラメータなしでDECアキュムレータを増分または減分するようになりました。これはINX、/ DEXINY/ DEY、/のみを含む元の命令セットでは奇妙な見落としでした。一部のアセンブラでは、代替形式として/または/が使用されています。[ 12 ]INC addrDEC addrINADEAINC ADEC A
  • STZ addr, STORE ZERO in addrLDA #0 , は;を不要にし、アキュムレータの値を変更する必要もありません。このタスクはほとんどのプログラムで一般的に使用されるため、 を使用すると、とアキュムレータの値(通常はペア)を保存するために必要なコードの両方が削除されるため、コードサイズを削減できます。[ 13 ]STA addrSTZLDAPHAPLA
  • PHX、、PLXはXレジスタとYレジスタをスタックにプッシュ/プルします。以前は、アキュムレータとステータスレジスタ(P)のみがPHYプッシュ/プル命令を持っていました。XとYをスタックに積むには、まずまたはを使用してアキュムレータに移動し、アキュムレータの内容を変更してから、を使用しました。[ 14 ]PLYTXATYAPHA
  • BRA分岐は常に のように動作しますJMPが、他の分岐(すべて条件付き)と同様に1バイトの相対アドレスを使用するため、1バイトを節約できます。速度は、JMPページをまたがる場合を除き、多くの場合3サイクルの絶対アドレスと同じです。ただし、ページをまたぐ場合は、BRAバージョンが1サイクル長くなります(4サイクル)。[ 15 ]アドレスが相対的であるため、再配置可能なコードを書く場合にも便利です。[ 13 ]

ビット操作命令

WDCとRockwellは共に、65C02のビットテストおよび操作機能の改良に貢献しました。WDCは、6502に搭載されていたBIT命令に新しいアドレッシングモードを追加したほか、デバイスドライバでよく使用されるビットフィールドの操作を容易にする2つの新しい命令も追加しました。

65C02のBITは、イミディエイトモード、Xでインデックスされたゼロページ、Xでインデックスされた絶対アドレス指定を追加しました。 [ 12 ] イミディエイトモードアドレッシングは、完全に非破壊的であるという点で特に便利です。例えば、

LDA$1234
BIT#%00010000

以下の代わりに使用できます:

LDA$1234
AND#%00010000

AND演算はアキュムレータの値を変更するため、$1234からロードされた元の値は失われます。BIT演算を使用するとアキュムレータの値は変更されないため、後続のコードで元の値に対して追加のテストを実行でき、メモリから値を再度ロードする必要がなくなります。

BIT命令の機能強化に加えて、WDC はビット フィールドを便利に操作するために設計された 2 つの命令を追加しました。

  • TSB addrおよび、テストおよびセット ビットとテストおよびリセット ビット。TRB addr
アキュムレータ ( ) のマスクは、ゼロ ページまたは絶対位置の可能性があるaddr.Aにあるメモリと論理積がとられます。ステータス レジスタの Z フラグは、論理積の結果に応じて条件付けされます。他のステータス レジスタ フラグは影響を受けません。さらに、 addr内のビットは、 のマスクに応じて設定 (TSB) またはクリア (TRB) されます。論理の後、TSB はメモリ バイトとの論理を実行し、その結果をaddrに格納しますが、TRB はメモリ バイトとの論理を実行し、その結果をaddrに格納します。いずれの場合も、ステータス レジスタの Z フラグは、 addrの内容が変更される前のの結果を示します。他のフラグは影響を受けません。TRB と TSB は、一連の命令を置き換え、基本的に計算の変更を保存するためにBIT命令と追加のステップを組み合わせていますが、追加のステップはフラグに影響せず、BITのように V フラグにも影響しません。[ 1 ].A.ANOT .A.A AND addr

ロックウェルの変更により、ゼロページ内の任意のビットに対するビット操作命令がさらに追加され、2バイト命令でビットを直接セットまたはリセットしたり、3バイト命令1つでビットのテストと分岐を実行したりすることが可能になった。これらの新しい命令は、ロックウェルのR65C00ファミリーでは当初から利用可能であったが[ 16 ]、オリジナルの65C02仕様には含まれておらず、WDCや他のライセンシーが製造したバージョンにも含まれていなかった。これらは後にベースライン設計にコピーされ、WDCの後継バージョンでも利用可能になった。

Rockwell 固有の指示は次のとおりです。

  • SMBbit#zpそして、ゼロページバイトzp内のビット番号を設定またはリセット(クリア)します。RMBbit#zpbit#
RMBとSMBはビットフィールド内の個々のビットをクリア( RMB)またはセット(SMB )するために使用され、それぞれ3つの命令のシーケンスを置き換えます。RMBとSMBはゼロページアドレッシングのみを許可するため、これらの命令の有用性は限られており、主にデバイスレジスタがゼロページに存在するシステムで価値があります。命令のビット#コンポーネントはオペコードの一部であり、多くの場合ニーモニックの一部として記述されます。たとえば、ゼロページアドレス$12(別名アドレス$0012)のビット1を設定します。一部のアセンブラはビット#を命令のオペランドの一部として扱います。たとえば、 は、変数名または計算された数値で置き換えることができるという利点があります。[ 13 ]SMB1 $12SMB 1,$12
  • BBSbit#zp,addrそして、ビットのセット/リセットで分岐します。BBRbit#zp,addr
RMBSMBと同じゼロページアドレッシングと制限が適用されますが、これらの命令は、ゼロページバイトzpの選択されたビットを割り当てるのではなくテストし、そのビットがクリアされている場合(BBR)、またはセットされている場合(BBS )にaddrに分岐します。また、上記のRMBSMBと同様に、命令のビット#コンポーネントは、ゼロページアドレス$12のバイトのビット1が設定されている場合、アドレスラベルaddrに分岐するなどのように、ニーモニックの一部として記述されることがよくあります。また、一部のアセンブラでは、ビット#を命令のオペランドの一部として扱います(例:)には、変数名や計算された数値に置き換えることができるという利点があります。[ 13 ]BBS1 $12,addrBBS 1,$12,addr

RMBSMBBBRBBSはそれぞれ3つの命令のシーケンスを置き換えます。[ 13 ]

低電力モード

上記の新しいコマンドに加えて、WDC では低電力モードをサポートするための STPおよび命令も追加されました。WAI

STPプロセッサを停止する(Stop)は、ハードウェアリセットが発行されるまですべての処理を停止します。これにより、システムを「スリープ」状態にし、その後リセットで速やかに「ウェイクアップ」(再起動)することができます。

WAIt も同様の効果があり、すべての処理を停止しますが、この命令は割り込みを受信すると通常の実行を再開します。この命令がない場合、ハードウェア割り込みを待つには通常、ループの実行が必要です。ループは割り込み処理がループから抜け出すまでプログラムを停止します。これは「スピニング」と呼ばれることもあります。つまり、プロセッサはプロセス全体を通して動作し、割り込みが発生していない場合でも、(ほぼ)何もせずに電力を消費します。65C02 では、割り込みハンドラWAIJSRまたは を続けて記述することで、割り込みコードを記述できます。 が見つかると、処理は停止し、プロセッサは低電力モードになります。割り込みを受信すると、プロセッサは直ちに を実行し、要求を処理します。 JMPWAIJSR

これには、パフォーマンスがわずかに向上するという利点もあります。 スピンの場合、割り込みはループの命令の途中で到着する可能性があり、ハンドラから戻った後に再開できるように、プロセッサは 3 サイクルを費やしてその位置を保存します。 を使用するとWAI、プロセッサは、すべての命令が完了していることが保証されている既知の位置で低電力状態に入るため、割り込みが到着しても命令を割り込むことはできず、割り込み応答は即時になります。 さらに、プログラムは割り込みを予期しているため、プロセッサは状態の保存に時間を費やすことなく安全に処理を続行できます。の前にWAI必要な状態保存を実行するのはプログラムの責任です。

65SC02

65 SC 02は、WAI、STP、ビット命令を除いたWDC 65C02の派生型である。[ 17 ] [ 18 ]

用途

家庭用コンピュータ

ビデオゲーム機

その他の製品

参照

注記

  1. ^この記事の以前の版を含む一部の情報源では、1978年とされている。これは、主要設計者のビル・メンシュがWDCを設立した年である。1984年の記事では、メンシュは開始日を1981年と明確に述べている。
  2. ^ワグナーの1983年6月の記事では、この書籍が「数ヶ月」入手可能になると記されています。当時の出版の遅れを考えると、1982年後半という早い時期に出版された可能性があります。別の情報源では1980年とされています(トークページ参照)。

参考文献

引用

  1. ^ a b c d e f gワグナー 1983年、204ページ。
  2. ^ "Softalk" . Softalk Publishing . 第3巻第10号. 1983年6月. p. 199. 2022年5月24日閲覧
  3. ^ Koehn, Philipp (2018年3月2日). 「6502 Stack」(PDF) .
  4. ^テイラー&ワトフォード 1984年、174ページ。
  5. ^ 「HDL での 6502 CPU プロジェクト (FPGA 用)」
  6. ^ 「W65C02DB 開発ボード」
  7. ^ "W65C02S-14" .
  8. ^パーカー、ニール。「6502/65C02/65C816命令セットの解読」ニール・パーカーのApple IIページ
  9. ^ Vardy, Adam (1995年8月22日). 「65XXシリーズCPUの追加命令」 .
  10. ^ a b「NMOS 6502とCMOS 65c02の違い」 。 2018年2月27日閲覧。10進演算後、N、V、Zフラグが正しくありませんでした(ただし、Cは正常でした)。
  11. ^ a bクラーク、ブルース。「65C02 オペコード」
  12. ^ a b cワグナー 1983、200ページ。
  13. ^ a b c d eワグナー 1983年、203ページ。
  14. ^ワーグナー 1983、200–201 ページ。
  15. ^ 「W65C02S データシート」(PDF) .
  16. ^ワグナー 1983、199ページ。
  17. ^ GTE Microcircuitsデータブック. GTE Microcircuits. 1984. p. 1–3 . 2024年5月2日閲覧
  18. ^ロドニー、ザックス (1983). 6502 のプログラミング。サイベックス。 p. 348.ISBN 0895881357
  19. ^ 「8-The Apple IIc」 . Apple II History . 2010年6月23日. 2023年10月31日閲覧
  20. ^ 「BBC Master Acorn Computer」 . www.old-computers.com . 2023年10月31日閲覧
  21. ^ 「LASER 128 / 128EX / 128EX2 ビデオテクノロジー」 www.old-computers.com . 2023年10月31日閲覧
  22. ^ 「HuC6280 - 古風なピクセル」 .

参考文献

  • ワグナー、ロバート(1983年6月)「組立ライン」ソフトトーク』 199~ 204頁 。
  • サイモン・テイラー、ボブ・ワトフォード(1984年7月)「6502の復活」パーソナルコンピュータワールド誌、  174~ 175ページ。

さらに読む