MUTIF09 を作ってみた。最初に製作した時にはRAM領域を増やすためにNVRAMを試用し、基板にいくつかの修正を加えてMONITORとBASICを走らせることができた。さらに設計書通りに製作したものでも動作確認を行った。
1.PCの環境と条件
★PC:
win10に次のコマンドをインストール:
msdos.exe MS-DOS Player
X6809.exe Arcpitのクロス・アセンブラ
Xgpro v8.30 Universal Programmer TL866 II PLUSの書き込みソフト
(v8.30から純正書き込み装置以外では動作しない仕様になった)
TL866 II PLUS |
2-1. オリジナルのままの場合
「MUTIF09の 6809シングルコンピュータ 技術メモ 改訂増補第3版」の内容に従って製作した。但し、8.0MHzクリスタルオシレータが入手できなかったので、次のように修正を加え内部発振回路を利用した。
注:オリジナルのまま製作した時には、当Blogの3、4章を飛ばして「MUTIF09に移したファイルの置き棚」にある
SplusBASICV3.HEXをEPROMに焼けば、S-BUGとBASICが起動できます。
・Xgproの「File Load Options」「From File Start Addr(Hex) 」-> 「C000」
「TO Buffer Start Addr(HEX)」-> 「4000」
に設定して焼く。
★ 基板パターンの修正
・ 表/裏面 MC6809 pin 39 をGNDから外す。
・ クリスタルとその両端にコンデンサ(18pF)を取り付ける。
・ クリスタルの一方とMC6809 pin 39 をつなぐ。
・ 現時点では写真以外の部品は取り付けていない。
「MUTIF09の 6809シングルコンピュータ 技術メモ 改訂増補第3版」の内容に従って製作した。但し、8.0MHzクリスタルオシレータが入手できなかったので、次のように修正を加え内部発振回路を利用した。
注:オリジナルのまま製作した時には、当Blogの3、4章を飛ばして「MUTIF09に移したファイルの置き棚」にある
SplusBASICV3.HEXをEPROMに焼けば、S-BUGとBASICが起動できます。
・Xgproの「File Load Options」「From File Start Addr(Hex) 」-> 「C000」
「TO Buffer Start Addr(HEX)」-> 「4000」
に設定して焼く。
MC6809データシートから引用 |
★ 基板パターンの修正
・ 表/裏面 MC6809 pin 39 をGNDから外す。
・ クリスタルとその両端にコンデンサ(18pF)を取り付ける。
・ クリスタルの一方とMC6809 pin 39 をつなぐ。
RESET SW両端の10μFはNVRAM対策用 |
・ 現時点では写真以外の部品は取り付けていない。
気分でつけるパスコンも装備 |
2-1.当Blogでの改修
「MUTIF09の 6809シングルコンピュータ 技術メモ 改訂増補第3版」の内容に従って製作したが、相違点は次の通り。
NVRAMをEPROMの代わりにするために、Vccラインの引き回し変更やEPROMへのWR信号追加など、基板パターンの修正はやや面倒なのでここでは略すこととします。
「MUTIF09の 6809シングルコンピュータ 技術メモ 改訂増補第3版」の内容に従って製作したが、相違点は次の通り。
NVRAMをEPROMの代わりにするために、Vccラインの引き回し変更やEPROMへのWR信号追加など、基板パターンの修正はやや面倒なのでここでは略すこととします。
・ 部品の変更
U11 27128 -> NVRAM DS1230Y
U10 62256 -> NVRAM DS1230Y
U1 クリスタルオシレータ8.0Mz -> クリスタル 8.0MHz, 12pF 2個
当Blogでは、NVRAMを初めて扱うが、採用した理由は
- RAM,ROMで共用できること。
- 従って、GALを書き換えればRAM領域が拡張できること
- 従って、GALを書き換えればRAM領域が拡張できること
- access timeが100nSであること
- TL866 II PLUSでデータが書き込めること
- 海外から購入すれば、それなりの価格で入手できたこと
3. S-BUGソースの手入れ
(1) ACIAアドレスを$B000に
(2)BASIC起動時にCOLD STARTになるようにBASICのFLAGをクリア
(3) BASICを起動するために「U」コマンドの開始番地を設定
★ BASIC
(4) ACIAアドレスを$B000に
(5) メモリアドレスを$C000に
参照記事(Arcpitクロスアセンブラの使い方など)
「Old MC6800さん」の【MIKBUGプチ拡張】
「DAIさん」の【適当にためしながら学ぶ電子工作お勉強室】
4. PROM、NVRAMに書き込む
(1) EPROMの場合
★EEPROM(32KB)
・CATALYST CAT28C256P-20
・ATMEL AT28C256 15PI
BASIC -> S-BUGの順に読み込む
6. ASSIST09ソースの手入れ
(5) メモリアドレスを$C000に
★ アセンブルする
(6) S-BUG
win10の コマンドプロンプトで次のように入力する。
>msdos X6809 /H M_SBUGV3.asm M_SBUGV3.HEX M_SBUGV3.LST参照記事(Arcpitクロスアセンブラの使い方など)
「Old MC6800さん」の【MIKBUGプチ拡張】
「DAIさん」の【適当にためしながら学ぶ電子工作お勉強室】
(7) BASIC
同様に、
>msdos X6809 /H M_BASIC9$C0.asm M_BASIC9$C0.HEX M_BASIC9$C0.LST
(1) EPROMの場合
★EEPROM(32KB)
・CATALYST CAT28C256P-20
・ATMEL AT28C256 15PI
BASIC -> S-BUGの順に読み込む
S-BUGを読み込む時にはDisableにする |
(2) NVRAMの場合
★NVRAM(32KB)
・DS1230y-100+
Select IC を変更すれば、あとはEPROMと同じ手順★NVRAM(32KB)
・DS1230y-100+
5. MONITORを起動する
焼き込んだPROMまたはNVRAMを挿入してPOWER ONで起動する。
「U」コマンドでBASICがCOLD STARTする。
注:当Blogの所有するNVRAMは難なく起動したが、EPROMは起動するCHIPとそうでないCHIPがあった。
注追記 '19.04.16 :上記のNVRAMは、ROM,RAMとも「DS1230Y-100+」。しかし RAM部分のみ新たな「DS1230Y-70IND+」 に差し替えるとどのEPROM CHIPでも動作した。アクセスタイムの違いか? ややこしそうなので何故かは追跡しない。
注追記 '19.04.28:NVRAMの問題(TWITTER)は次の改修で改善した。これでDS1230Y-100+」も使え、とりあえず解消
・C6の+5V側とR2の+5V側を写真のように接続。即ち、引き回されていた+5Vラインを短縮することで、CPU, NVRAMに供給する電源電圧低下を少なくした。
★TWITTERへのリンク
RESET 後など、BASICをHOT STARTするにはコントロールPでPC(プログラムカウンタ)をC046に設定して、G を入力する。注追記 '19.04.16 :上記のNVRAMは、ROM,RAMとも「DS1230Y-100+」。しかし RAM部分のみ新たな「DS1230Y-70IND+」 に差し替えるとどのEPROM CHIPでも動作した。アクセスタイムの違いか? ややこしそうなので何故かは追跡しない。
注追記 '19.04.28:NVRAMの問題(TWITTER)は次の改修で改善した。これでDS1230Y-100+」も使え、とりあえず解消
・C6の+5V側とR2の+5V側を写真のように接続。即ち、引き回されていた+5Vラインを短縮することで、CPU, NVRAMに供給する電源電圧低下を少なくした。
★TWITTERへのリンク
★ BASICプログラムの動作例(VINTAGE-BASIC.netより引用したLIFE.BAS)
LIFEを走らせた |
最終的に2パターンに辿り着く |
もう一つのパターン |
このASSIST09には下記の記事から引用させていただいて「F」、「X」コマンドを追加した。この記事でコマンドの追加の仕方が参考になったので「?」(HELP)コマンドも加えてみた。
参照先 「 FLEXONSBD」さんの記事
0 件のコメント:
コメントを投稿