16ビットマイコンボードの製作
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第11回]
●LMCS(Lower Memory Chip Select Register)
昨日から独立大作戦の主要作戦のひとつ、SDカードREAD/WRITE部分の本格的な作成作業にかかっています。
本格的なDOSシステムということになりますと、とても短期間では仕上げられませんから、とりあえずZB3BASICシステムについては、SDカードに対するファイルのSAVE/LOADの機能のみということで考えています。
問題はCP/Mです。
これをどのようにして、SDカードシステムに乗せるか、ちょっと悩んでいます。
これは結構大変なことになりそうです。
余り手間がかかりそうなら、CP/Mについてはあとで作成することにして、とりあえずZB3BASICシステムのみでスタートするということになるかもしれません。
さて今回はLMCSです。
LMCSはLCSを設定するレジスタ名です。
LMCSで設定するLCS端子のメモリセレクト範囲の下限は00000に固定されていて、上限はプログラムで可変できるようになっています。
前回説明しましたUMCSの逆です。
00000が下限アドレスということから、LCSは通常はRAMのセレクト端子に接続します。
[出典]Advanced Micro Devices,Inc. Am186EM and Am188EM Microcontrollers User’s Manual
前回説明しましたUMCSはリセット時に初期値が設定されて、リセット後すぐにUCS端子がアクティブになります。
それに対してLCS端子はリセット後は非アクティブです。
LMCSレジスタに値を設定すると、初めてアクティブになります。
ということはリセット直後はROMにだけアクセスできて、RAMにはアクセスできないということです。
LMCSレジスタにはプログラムの先頭のところでUMCSの設定に続いて、下のように1F3Fを設定しています。
[00057] F007 BAA2FF MOV DX,FFA2;lmcs [00058] F00A B83F1F MOV AX,1F3F [00059] F00D EF OUT DX,AX |
RAMアドレスとして00000〜1FFFFの128KBの設定です。
これは試作段階ではRAMとして628128を実装しているためです。
RAMについてはその後に512KBのRAMを搭載するように考えていますので、もしそのようになればLMCSの設定値は変更することになります。
年初からずっと独立大作戦のソフトウェア作業をしています。
思ったよりホネで苦労をしています。
そんなわけで本日も時間がありませんので、ほんのちょっぴり書いただけですけれど、今回はここまでといたします。
16ビットマイコンボードの製作[第11回]
2017.1.12upload
前へ
次へ
ホームページトップへ戻る