いい加減ほったからかしにしていた、CMT セーブに取り掛かりました。
とりあえず8049 の方を作って、データがちゃんと出るかをモニタすると...暴走する。
いろいろ調べた所、原因が BASIC の ROM ルーチンでした。
1AEDH CMT SAVEのREADYチェック
1AED LD B,00H
1AEF LD A,08H
1AF1 OUT (093H),A
1AF3 IN A,(093H)
1AF5 BIT 3,A
1AF7 JR Z,01AFFH
1AF9 IN A,(093H)
1AFB RLCA
ポート0x93 から入力していますが、0x92から入力の間違いです...
似たようなルーチン(0x0E8F:8049へ1バイト出力)もあるんですが、こちらは ポート0x92 から入力しています。
8255 のマニュアルにも、"Illigal Operation" と書いていますが、たまたま動いているみたいですねー。
2012年02月12日
この記事へのコメント
コメントを書く

