モニタ(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 |
とエラーがいっぱいである。680xのアセンブラは書いたことが無いけれどソースを見ると。
1 ** FOR VDG, SET VDG = 0, |
(このソースは読みにくい!オペコード、オペランドの後は何を書いても良いのか。それにしてもスペースではなくてTABにしてくれたら良いのに!)
7行目のエラーは as1のOPT擬似命令でZ01は指定できないということか。
この行は、おそらく6801命令の宣言だろう。今回は6801用アセンブラを使用しているのでコメントアウトする。
8行め11行目のエラーは
IFEQ xxx ~ ENDC
が Unrecognized Mnemonic なのでこのディレクティブが使えないのだろう。
VDG EQU 1 や CHIPIO EQU 0
が定義してあるので、
6 *CHIPIO EQU 0 |
のようにコメントアウトしたらとりあえず通るようになった。
通信速度
このシステムのクロックは 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」カテゴリの記事
- ロジアナ(2013.06.23)
- モニタ(LILBUG)(2)(2013.05.26)
- モニタ(LILBUG)(2013.05.20)
- 配線した(HD63B03)(2013.05.06)
- シュリンク基板(2012.09.16)
「プログラミング」カテゴリの記事
- GMC-4で動く3連ナイトライダー(2022.12.30)
- プログラミング言語ランキング(2022.11.19)
- AWSでサービス構築(2022.05.29)
- Excelの配列式(2022.01.06)
- ローコード・プログラミング(2021.11.07)
コメント