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


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

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

[第22回]



●/SV

今回は/SVです。
/SVは/LDと対になる機能です。
/LDはバイナリファイルを読み込んで指定したRAMのアドレス以降に書き込みます。
/SVはその逆の機能です。
/SVはRAMの任意の開始アドレスから終了アドレスまでのバイナリ値を読み込んでそれを指定したファイル名で保存します。

/SVを実行しました。

セーブした範囲を確認のため/DMで表示しました。
実はこの画像よりも前に行なった作業の画像をうっかり保存するのを忘れてしまいました。
下がこのときのログです。
logfile piciolog\0721210947.txt open
*** pic i/o ***
picio-08 connected
>/cm ff80
FF80 46-a9
FF81 00-ab
FF82 89-85
FF83 95-12
FF84 0A-db
FF85 11-
/cm end
>/cm fffc
FFFC 00-80
FFFD 80-ff
FFFE BD-
/cm end
>/run
/run sent
>/cm 0012
0012 AB-
/cm end
>/sv 65c02test2.bin,ff80,ffff
0080(128)bytes saved
>/dm ff
FF00  E2 DA 23 51 8E 00 4A 98 - 18 41 01 2C B0 F2 AE 48
FF10  14 36 0A AA A3 02 51 40 - 12 14 18 28 0D A4 4B 41
FF20  C3 DC 38 94 2D 2B 3A C9 - 33 72 05 A0 52 48 07 18
FF30  88 2D 1C 12 81 D5 0D 67 - 03 81 25 0E 30 12 01 D7
FF40  1A 45 79 A0 A1 4F 04 60 - 92 25 C4 12 03 4B 02 94
FF50  0C 7B 40 48 01 C3 3E 00 - 00 01 80 10 91 B6 2B 02
FF60  15 8D 10 E2 06 32 70 5D - 60 22 30 20 14 01 35 89
FF70  04 69 27 25 71 10 10 82 - 08 02 22 0A 42 2A 01 20
FF80  A9 AB 85 12 DB 11 80 C0 - 80 24 08 1B 41 B0 45 08
FF90  50 90 89 2D 46 00 46 C0 - D0 0C 40 04 32 04 31 52
FFA0  BA 20 91 41 23 BD AF 90 - 55 21 36 44 D0 05 4B 88
FFB0  67 2A D0 12 79 C0 1E 0A - 05 11 48 01 8A 63 18 89
FFC0  19 80 C4 00 10 0F 42 34 - D0 24 40 00 10 5E 46 80
FFD0  01 83 F7 20 55 2D 21 00 - 1D 00 BB 08 00 E0 40 10
FFE0  07 55 C0 46 81 BC E1 1E - F4 44 15 E1 86 81 18 24
FFF0  A5 7A E7 D7 EF C6 BB 74 - E2 E7 B4 7E 80 FF BD FF
end of /dm
>/exit

リモート接続を終了しました
logfile closed at Tue Jul 21 21:16:32 2026

/SVのテストをするためにいつものテストプログラムをFF80から書きました。
先に行なったプログラム変更で起動時にFFFC、FFFDに0080が入るようになっています。
今回はそこを80FFに変更しました。
FFFC、FFFDと同じページ(FF00〜FFFF)にテストプログラムを書くことで一度の/DMで確認することができるようにするためです。
前回のようなうっかりミスをしないようにプログラムは/RUNを実行して結果を確認しました。
ここで何がやりたかったかと言いますと。
/SVで保存したデータ領域を/LDで再読み込みして/SV、/LDの両機能を確認するつもりです。
そのための手っ取り早い方法として一旦電源OFFしてRAMの中身を壊してしまった後に再ロードしてもとの状態に戻ることを確認してみるつもりでした。
ところが。
電源OFFして少し待ってからもう一度ONしたのですけれど/CMで確認してみるとまだ0012の値はABのままでした。
logfileのタイムスタンプで確認してみると16分36秒にOFFして16分59秒にONしています。
ちょっとONするのが早過ぎたようです。

もう一度17分36秒にOFFして18分37秒にONしました。
やっと0012がFFになりました。
でも。
本当に確認したかったのはそこじゃありません。
念には念を入れて。
念のためにFF00〜を確認してみましたらFF80〜はまだプログラムがしっかり残っているじゃありませんか。

いやいやこれはこれは。
日立のSRAMはスタンバイ時の電流がめちゃめちゃ少なくて電源ラインに入っている100μFだけでもしっかり保持してしまいます。
日本のとりわけ日立のSRAM技術はかくも優秀だったのです。
この場合には日立の技術がかえってうらめしい結果ではあります。
仕方がないので/CMで強制的に書き換えました

こうしておいて。
/LDを実行しました。

さきほど/SVで保存したときの状態が復元されました。
念には念を入れましょう。
念のために/RUNを実行し0012が書き換えられたことを確認しました。


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

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