マイコン独立大作戦
ROM/RAM/RTCボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
独立大作戦の作戦その1はCRTインターフェースボードの製作です。
作戦その2はキーボードインターフェースです。
作戦その3は、SDカードインターフェースです。
作戦その4は、ROM/RAM/RTCボードです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第22回]
●増設RAMブロックW/Rプログラムも作成済みでした!
前回、増設RAMWRITE、READプログラムを以前に作成していたことをすっかり忘れてしまって、同じ内容のプログラムを作ってしまったあとで、以前に作成していたことがわかって、とほほでありました、ということを書きました。
512バイトのデータCOPYプログラムを新規に作ったことがせめてものなぐさめであります。
と書いたのでありますが。
なんと、ブロックコピープログラムも作ってしまっておりました。
もう、とほほの声すら出ませんです。
そうだったんですよね。
増設RAMは、もとはZB3DOS(CP/M互換DOS)を実行するために、システムROMの裏に置くものとして考えたのが始まりでした。
独立化システムのZB3DOS(CP/M互換DOS)プログラムもSDカードアクセスプログラムの中で増設RAMに対してデータをロード、セーブするためのブロックWRITE/READプログラムをサブルーチンとして組み込んでいたのでした。
下はSDカードプログラムの先頭の部分です。
704B 3EFF RAMLDT:LD A,FF 704D D39C OUT (9C),A 704F EDB0 LDIR 7051 AF XOR A 7052 D39C OUT (9C),A 7054 C9 RET 7055 214B70 SDINIT:LD HL,RAMLDT 7058 11B0E9 LD DE,RAMLD 705B 010A00 LD BC,$000A 705E EDB0 LDIR |
このプログラムは独立化セットのプログラムですから、作ったのは今年の5月です。
その時点でRAMのE9B0に組み込んで使うように考えています。
何なんでしょうかねぇ。
過去に作ったことを完全に忘れてしまって、それでまた同じものをしかも全く同じアドレスで働くように作ってしまうなんて、もう何とも言いようもありませぬ。
結局。
今までの作業をまとめて整理して、SDカードの先頭部分で、起動時に、増設RAMWRITE、READとあわせてシステムRAMエリア(E9A0〜E9B8)に書き込むようにしました。
下はそのように直したSDカードプログラムの先頭部分です。
9057 D39C BKWRT:OUT (9C),A;$E9A0
9059 EB EX DE,HL
905A 71 LD (HL),C
905B EB EX DE,HL
905C AF XOR A;don't use JP! see assemble list
905D D39C OUT (9C),A
905F C9 RET
9060 D39C BKRDT:OUT (9C),A;$E9A9
9062 4E LD C,(HL)
9063 AF XOR A
9064 D39C OUT (9C),A
9066 C9 RET
9067 D39C BKMVT:OUT (9C),A;$E9B0
9069 EDB0 LDIR
906B AF XOR A
906C D39C OUT (9C),A
906E C9 RET;end=$E9B8
;
906F 215790 SDINIT:LD HL,BKWRT
9072 11A0E9 LD DE,BKWR
9075 011800 LD BC,$0018;=24bytes
9078 EDB0 LDIR
|
実はここ数日で上のプログラムの動作確認と合わせて、いろいろテストをしてかなり進展があったのですが、本日は時間がなくなってしまいましたので、そのあたりのことについては次回以降に書くことにします。
ROM/RAM/RTCボードの製作[第22回]
2017.9.7upload
前へ
次へ
ホームページトップへ戻る