2026.7.11
前へ
次へ
ホームページトップへ戻る


[新連載開始]W65C02マイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
私としてはW65C02をさわるのは全く初めてです。何から何まで未経験です。さてどうなりますでしょうか。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第9回]



●W65C02アセンブラ JMP(2)

前回はW65C02アセンブラのJMP命令にラベル機能を組み込みました。
その説明のなかで組み込んだのはjmp aだけでjmp (a)とjmp (a,X)は未対応ですと書きました。
そのように書いてから後で気が付きました。
そのときにも半ば気が付いていたのですが自分でそのことの意味に気が付いていませんでした。
jmp aの代わりにjmp ラベルとしたときはプログラム中のラベルが置かれたアドレスにjmpすることになります。
jmp (a)をjmp (ラベル)とした場合にはラベル位置に書かれた2バイトのアドレスデータにジャンプすることになります。
この場合プログラムで書くなら
abcxyz:
db xx
db xx
というプログラムになります。
それならいっそのこと
abcxyz=xxxx
にしたほうが簡単ではありませんか。
つまりこの場合にはjmp (a)のaはラベルではなくて変数になります。
それならできそうです。
ということでjmp (a)とjmp (a,X)も機能拡張してしまいました。
下はテスト中の画像です。

左側がソースプログラムリストです。
14行〜17行にそのためのテスト行があります。
14行、15行のabcは1バイトの値ですから他の命令ならzpになりますがjmpにはzpの命令はありません。
結果としてはzpのデータを参照しますがアドレス表記としては2バイトの$0012になります。
16行、17行のzzは2バイトのデータですからそのように変換されます。
ところで今回の作業をしていて気が付いたのですが(a)、(a,X)はjmpのみで使われます。
このアドレッシングモードは他の命令にはありません。

●プリント基板が出来てきました

こちらが部品面です。

出来てきてから間違いに気が付きました。
IC4とIC5が74HC73になっていますが74HC373のミスプリントです。
いやお恥ずかしい。

こちらはハンダ面です。


部品を実装しました。

まずはメモリアクセスのテストから始めます。

W65C02マイコンボードの製作[第9回]
2026.7.11 upload

前へ
次へ
ホームページトップへ戻る