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に書くアドレスを変換する機能が無いようだ。
最近のコメント