[新連載開始]W65C02マイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第49回]
●AND,ORA,EOR●謎解きです
ANDはアキュムレータとメモリまたは即値とのANDを計算してその結果をアキュムレータに入れる命令です。
ANDと次に説明するORAおよびEORはアキュムレータのみに対する演算です。
演算の結果によってNフラグとZフラグがセット、リセットされます。
N(Negative)は結果が負のときにセットされ0または正のときリセットされます。
Z(Zero)は結果が0のときにセットされます。
ANDには以下の命令があります。
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| AND a | 2D | AND $1234 | 3 | 4 |
| AND a,x | 3D | AND $1234,x | 3 | 4 |
| AND a,y | 39 | AND $1234,y | 3 | 4 |
| AND # | 29 | AND #$12 | 2 | 2 |
| AND zp | 25 | AND $12 | 2 | 3 |
| AND (zp,x) | 21 | AND ($12,x) | 2 | 6 |
| AND (zp) | 32 | AND ($12) | 2 | 5 |
| AND zp,x | 35 | AND $12,x | 2 | 4 |
| AND (zp),y | 31 | AND ($12),y | 2 | 5 |
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| ORA a | 0D | ORA $1234 | 3 | 4 |
| ORA a,x | 1D | ORA $1234,x | 3 | 4 |
| ORA a,y | 19 | ORA $1234,y | 3 | 4 |
| ORA # | 09 | ORA #$12 | 2 | 2 |
| ORA zp | 05 | ORA $12 | 2 | 3 |
| ORA (zp,x) | 01 | ORA ($12,x) | 2 | 6 |
| ORA (zp) | 12 | ORA ($12) | 2 | 5 |
| ORA zp,x | 15 | ORA $12,x | 2 | 4 |
| ORA (zp),y | 11 | ORA ($12),y | 2 | 5 |
| ニーモニック | マシン語コード | アセンブラ書式 | バイト数 | クロック数 |
| EOR a | 4D | EOR $1234 | 3 | 4 |
| EOR a,x | 5D | EOR $1234,x | 3 | 4 |
| EOR a,y | 59 | EOR $1234,y | 3 | 4 |
| EOR # | 49 | EOR #$12 | 2 | 2 |
| EOR zp | 45 | EOR $12 | 2 | 3 |
| EOR (zp,x) | 41 | EOR ($12,x) | 2 | 6 |
| EOR (zp) | 52 | EOR ($12) | 2 | 5 |
| EOR zp,x | 55 | EOR $12,x | 2 | 4 |
| EOR (zp),y | 51 | EOR ($12),y | 2 | 5 |
このところW65C02の命令について書いています。
まだしばらく命令の説明が続きます。
毎回こういうものを書くというのはなかなかにしんどいことです。
ですけれど。
ここで紹介しておりますボードは近い内にW65C02テストボードキットとして販売する予定です。
そのキットに附属予定のW65C02命令説明書の下書きを兼ねて書いていますからここをはしょるわけにはいきません。
[第45回]に書きましたように既にW65C02の全命令については検証済みです。
説明書の下書きのつもりで書き進めていて[第65回]まで書いています。
今回が49回ですからまだまだ先まで続きます。
毎回こんなのが続くのは退屈ですよね。
書いている私としてもストレスです。
面白くありません。
読者様としましても同じ思いかと。
それでこんな画像をお見せします。
本日出来たてのホヤホヤです。
何をやっているのでしょう。

65c02test33b.lstは毎回のようにお見せしておりますW65C02のテストプログラムのアセンブルリストです。
左上はW65C02アセンブラを実行しているコマンドプロンプトウインドウです。
その下のウインドウは何をやっているのでしょう。
W65C02テストボードで65c02test33b.binを実行しているところなのですが。
65c02test33bはJSR命令とRTS命令のテストプログラムです。
JSRはサブルーチンCALL命令です。
RTSはサブルーチンからのリターン命令です。
JSRとRTSはもう少し後の回で説明します。
上の画面はその実行画面なのですが注目すべきはそこではありません。
実は上の画面ではそれとは別のプログラムが走っているのです。
今回はあえて説明はしません。
謎解きです。
何をやっているのでしょう?
おわかりになった方は
「えっ。そんなことができるの?」
とおっしゃるのでは。
ええ。
そんなことができてしまうのです。
ここではPICUSBIOのBASICプログラムが走っています。
左下のウインドウはそのBASICの出力です。
自画自賛ですけれどPICBASICは超すぐれものなのです。
ヒントをひとつ。
SYNCはW65C02の出力信号です。
CPUが命令コードを読み込むクロック期間に出力されます。
たとえばSTA $02のマシン語85 02の場合CPUが85を読むときにSYNCがHになります。
少年の頃読んだポーの「宝島」みたいですよね。
ところで。
上の画面の右側は左のウインドウで実行したときのログです。
W65C02テストボードのシステムプログラムはログ機能つきなのです。
時間がなくなってしまいました。
次回に謎解きの予定です。
お楽しみに。
W65C02マイコンボードの製作[第49回]
2026.8.20 upload
前へ
次へ
ホームページトップへ戻る