フォト
無料ブログはココログ

MyList

« オフサイトミーティング | トップページ | WHYから初めよ! »

2013年5月20日 (月)

モニタ(LILBUG)

 HD6303/MC6803/MC6801のモニタを探してみると、PROBUGとLILBUGというデバッグモニタがあることが分かった。いずれもMC6801/MC68701評価ボード用のモニタらしい。

PROBUGのマニュアルとs19ファイルを見付けた。このモニタは$B800~$BFFFに配置するらしい。HD63B03SBCのROMは$C000~$DFFFに配置したのでアドレスを変えてアセンブルしなければならないがソースが見つからない。

 一方LILBUGはPDFのマニュアルがすぐに見つかってマニュアルの中にソースリストが掲載されている。LILBUG.ASMで検索するとソースがあっさり見つかった。

ソースコード

 MC6801用のアセンブラas1.exeでアセンブルすると

C:\lilbug>as1.exe lilbug.asm
7: Unrecognized OPT
8: Unrecognized Mnemonic
11: Unrecognized Mnemonic
12: Unrecognized Mnemonic
14: Unrecognized Mnemonic
109: Unrecognized Mnemonic
111: Unrecognized Mnemonic
112: Unrecognized Mnemonic
114: Unrecognized Mnemonic
254: Unrecognized Mnemonic
259: Unrecognized Mnemonic
260: Unrecognized Mnemonic
261: Symbol Redefined
268: Unrecognized Mnemonic
281: Unrecognized Mnemonic
287: Unrecognized Mnemonic
288: Unrecognized Mnemonic
289: Symbol Redefined
293: Unrecognized Mnemonic

とエラーがいっぱいである。680xのアセンブラは書いたことが無いけれどソースを見ると。

1 ** FOR VDG, SET VDG = 0,
2 ** FOR NON-VDG, SET VDG = 1
3 VDG EQU 1
4 * FOR ON-CHIP IO, SET CHIPIO = 0
5 * FOR ACIA TEST SET CHIPIO = 1
6 CHIPIO EQU 0
7  OPT Z01
8  IFEQ VDG
9  TTL 6801 MONITOR WITH VDG MODS
10 VDGORG EQU $100
11  ENDC
12  IFNE VDG
13   TTL 6801 DEBUG MONITOR
14  ENDC

(このソースは読みにくい!オペコード、オペランドの後は何を書いても良いのか。それにしてもスペースではなくてTABにしてくれたら良いのに!)

 7行目のエラーは as1のOPT擬似命令でZ01は指定できないということか。
この行は、おそらく6801命令の宣言だろう。今回は6801用アセンブラを使用しているのでコメントアウトする。

 8行め11行目のエラーは
 IFEQ xxx ~ ENDC
が Unrecognized Mnemonic なのでこのディレクティブが使えないのだろう。
  VDG EQU 1 や CHIPIO EQU 0
が定義してあるので、

6 *CHIPIO EQU 0
7 * OPT Z01
8 * IFEQ VDG
9 * TTL 6801 MONITOR WITH VDG MODS
10 *VDGORG EQU $100
11 * ENDC

のようにコメントアウトしたらとりあえず通るようになった。

通信速度

 このシステムのクロックは 4.9152MHz/2.4576MHz だけど 7.3728MHzを使ったのでシリアルの通信速度が変わってくる。

Command 4.9152MHz 2.4576MHz 7.3728MHz Devide
HY 9,600bps 4,800bps 115,200bps /16
      14,400bps /128
HI 1,200bps 600bps 1,800bps /1024
Reset 300bps 150bps 450bps /4096

 シリアルの通信速度は RMCR( Control Register)で指定する分周比で決まって、指定できる分周比は/16,/128,/1024,/4096である。
クロックに7.3728MHzを使ったので、使える通信速度は115,200bps(/16)と14,400bps(/128)だけなので、リセット時とHIコマンド実行時は14,400bpsとし、HYコマンド実行時には115,200bpsになるようにしよう。具体的には。

319 CION LDD #$1007 SET PADDING FOR 300
   ↓
319 CION LDD #$1005 SET PADDING FOR 300

364 S120 LDD #$4F06
   ↓
364 S120 LDD #$4F05

371 HY LDD #$0005 ALSO SET RMCR
   ↓
371 HY LDD #$0000 ALSO SET RMCR

のように修正してようやくLILBUG.S19ができた。

このモニタは $F800~$FFFFに配置するようだ。使ってるROMライタにはS19に記述された実アドレスとROMに書くアドレスを変換する機能が無いようだ。

« オフサイトミーティング | トップページ | WHYから初めよ! »

HD63B03」カテゴリの記事

プログラミング」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: モニタ(LILBUG):

« オフサイトミーティング | トップページ | WHYから初めよ! »