2019年3月14日木曜日

MUTIF09のASSIST09にTRACE機能を加える

MUTIF09のPTM、NEC D8254Cのタイマーを使ってTRACE機能を実現した。


M_assist09v5.zip(M_assist09.asm,M_assist09v5.HEX,M_assist09v5.LST)
AplusBASICv5.HEX

1. PCの環境と条件
 当Blog 3月1日の記事と同じ

2. MUTIF09の製作
 ・D8254を装着
 ・D8254のOUT 0(pin 10)とMC68B09のNMI(pin2)を写真のように接続
 ・このための基板パターンの修正は無し
   ★TWITTERへのリンク

3. ASSIST09ソースの手入れ
 ・3月1日の記事のM_assist09v3.asmをD8254用に書き換え、NOPを挿入してアドレスを調整
 ・D8254のタイマー時間、「14サイクル=7μS」はCUT&TRYで設定したもので最適かどうかは不明だが、下記の写真のように1ステップ毎の実行も動作している。
 ・因みに
  - 13サイクル以下ではステップが進まず、プログラムカウンタは変化しない。
  - オリジナルのMC6840では7サイクルとなっている。
 ・ファイルのversionをM_assist09v5とした。


STROBEモードに初期化

タイマーを14サイクル(7μS)に設定
 修正したASSIST09のソース(M_assist09v5.zip)とBASICを含んだHEXファイル(AplusBASICv5.HEX -> $C000 - $FFFF)を置き棚においた。


4. BASICの動作確認
 AplusBASICv5.HEXをEEPROMに焼いて基板に装着し、VINTAGE-BASIC.netのBOUNCE.BASを走らせた。
 ASSIST09から
  >G C046↲
        でBASIC起動
 「BOUNCE.BAS」をDRAG&DROP後、写真の数値を入力


以上

2019年3月1日金曜日

SBC6809のソフトをMUFIF09に移す

MONITORとBASICをMUTIF09 シングルボードコンピュータで走らせてみた。



 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.MUTIF09の製作

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データシートから引用

★ 基板パターンの修正
・ 表/裏面 MC6809 pin 39 をGNDから外す。


・ クリスタルとその両端にコンデンサ(18pF)を取り付ける。
・ クリスタルの一方とMC6809 pin 39 をつなぐ。
RESET SW両端の10μFはNVRAM対策用

・ 現時点では写真以外の部品は取り付けていない。


気分でつけるパスコンも装備


2-1.当Blogでの改修
「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領域が拡張できること
  - access timeが100nSであること
  - TL866 II PLUSでデータが書き込めること
  - 海外から購入すれば、それなりの価格で入手できたこと
からである
 POWER ON時には、NVRAMはVccを監視してアクティブになる。従って、CPUが先にアクティブにならないようにCPUのRESETボタンの両端に10μFのコンデンサを追加して対処した。
DS1230Yデータシートより引用
DCジャックとLEDを取り付け

IC実装

3. S-BUGソースの手入れ

 (1) ACIAアドレスを$B000に


 (2)BASIC起動時にCOLD STARTになるようにBASICのFLAGをクリア


 (3) BASICを起動するために「U」コマンドの開始番地を設定


★ BASIC
 (4) ACIAアドレスを$B000に

 (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

4. PROM、NVRAMに書き込む

 (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と同じ手順

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 を入力する。

★ BASICプログラムの動作例(VINTAGE-BASIC.netより引用したLIFE.BAS)


LIFEを走らせた

最終的に2パターンに辿り着く

もう一つのパターン
6. ASSIST09ソースの手入れ

 このASSIST09には下記の記事から引用させていただいて「F」、「X」コマンドを追加した。この記事でコマンドの追加の仕方が参考になったので「?」(HELP)コマンドも加えてみた。





完動した2式

以上

MUTIF09にAM9511を載せてみる

難しそうで躊躇っていたAm9511ですが、 【ryu10さんのBlog】 に勇気づけられ、チャレンジすることにした、そのあれこれです。 【MUTIF09のファイルの置き棚】 1.PCの環境と条件   ★PC:  win10に次のコマンドをインストール:   msdos.exe  ...

これまでによく読まれた記事