Last Updated on 2018年9月14日 by kabekin
Z80用の簡単なプログラムをメモリに書いて動作確認してみました。
Z80はリセット後0番地からスタートするそうなので0番地からプログラムを書き込みます
まずはS1のモニタで物理メモリの$00000~を論理アドレスの$0000~に割り当てます。
0番地からZ80のプログラムで
LD A,$31
LD (0020h),A
HALT
をメモリに書き込んで、
POKE &HFF7F,&hFFでZ80をリセットしPCを0番地に移動。
POKE &HFE19,&H00でZ80 RUNで6809からバス切り離し、
POKE &HFE19,&H80でZ80 STOPでバスを6809側に切替。
結果を見てみると、
期待した結果の$0020番地には何も書けてません (泣
メモリに書けてないだけ? それとも読み込みもNGで何も動作してない??
それを検証するためにメモリではなくI/Oに出力させてみます。
プログラムは
LD A,31h
LD (0020h),A
LD A,,80h
OUT (01h),A
HALT
このカードはI/O(アドレスは任意)にBit7を出力するとS1に割込要求をかけるようになってるようですが、プログラムを実行するとS1のキー入力を受け付けずフリーズ状態になるのでI/OからBit7が出力されているようです。(Bit0~6はバンク切替)
ということはメモリからの読み込みはOK
書込みはNGといった症状のようです。
Z80のアセンブラは始めたばかりですが、この短いソフトに問題があるとは思えないので、ハード的な何かが問題の可能性が大きいです。
やっぱ、一発で動作しなかったようです・・・・^^;;;
(何かとんちんかんな勘違いなどで動いてないんじゃないか等、気づいた点がありましたらアドバイス下さい^^)