NAKAMOZU TINY BASIC(NTB)の
アセンブルソース作成にチャレンジ
☆ASCIIの記事を参考にしてNTBのアセンブルソースを作成してみました。
☆NTBバイナリは3KB未満なのですが、手持ちのROMは6KBあります。
差分の3KBにはモニタとVRAM制御ルーチンが書かれていますが、
その解読はしていませんので、ソースリストはそれらを含んだままです。
☆ntbv3.s19(モトローラS形式)をSBC6800に送り込み、先頭アドレス
$0D00でGスタートすればプロンプト > が現れます。
・アドレス $0100-$0CFF モニターとVRAM制御
スタックポインタ $1E00
・アドレス $0D00-$18FF NTB
ワーク領域はASCIIの記事参照
プログラムテキスト領域 $1900-$1CFF
☆SBC6800の端末はWindows 10 teratermを使用していますが、これには
若干作法があるそうです。ちなみに設定:端末の受信:AUTO シリアル
ポート 1ms/字、0ms/行ですので、送り込みに5分程度かかります。
★未解決課題
・checksum.txtプログラム(ASCIIの記事)を走らせるとわかるように
PRINT文のフォーマットが変竹林!
・sosukeisan.txtプログラムはERROR NO.13出たり、出なかったり
動作が変竹林!。推測ではスタックが混信?
・SBC6800はMIKBUGなので、MEK6800D IIのJBUGのようなトレース
機能がない。なんとかしたいが!
・VRAMアドレスにスタックポインタを設定して、画面内で暴走するのを
監視しながらデバッグしたのが懐かしい。
★まだまだ未知数
・ですので、いろいろとご指導いただけると嬉しく思います。
【ことの次第】
- 発表された記事を参考にしてMEK6800D IIに移植した時代もののROM
- NAKAMOZU TINY BASICの記事のリンク先
- 東芝製TMM323C(2716と同等) 3個
- アドレス $6000-$6BFF(3KB) モニターとVRAM制御
- アドレス $6C00-$775A(3KB) NAKAMOZU TINY BASIC
- ROMのBinaryファイル(ntb.bin) をdasmxで逆アセンブル
- dasmx -a -o24576 -c6800 ntb.bin
- dasmx(ググってインストール) は
windows10 コンソールで実行 -
windows10では動作しませんでした。windows8.1です。windows10でOKの場合もある。 - -o24576 はROMの先頭アドレス、$6000の10進数
- ntb.asmを出力
- ntb.asmをx6801.exeでアセンブル
- 念のため、ntb.asmのコピーを作り、ntbv3.asmと命名
- windows10でx6801.exeを実行するにはMS-DOS Player環境が必要
- msdos X6801 /H ntbv3.asm ntbv3.HEX,ntbv3.LST,ntbv3.MAP;
- ntbv3.LSTのエラーがなくなるまで、テキストエディタでntbv3.asmの編集、アセンブルを繰り返し、エラー0のファイル、ntbv3.HEXを生成
- x6801.exe用アセンブラ作法を習得するのに時間がかかる。
- FCB を多用する羽目に
- hex2binでntbv3.HEXをntbv3.binに変換し、ntb.binとntbv3.binが一致すれば完了
- hex2binはExcel用でない。OSDNかSourceForgeをググってインストール
- 今回はwindows10 WSL ubuntuを導入して実行
- win10コンソールでbashと入力
- Leo@WIN10:/mnt/c/Users/Yumes/dos$のプロンプト
- ntbv3.asmを移植し易いように編集
- 先頭アドレスは$0100
- ntbv3.asmをアセンブルしてntbv3.LST、ntbv3.HEXを出力
- hex2binでntbv3.HEXをntbv3.binに変換
- s19toolでntbv3.binをSBC6800に入力可能なSフォーマットに変換
したntbv3.s19を出力 - s19toolはOSDNかSourceForgeをググってインストール
- win10コンソールでbashと入力
- Leo@WIN10:/mnt/c/Users/Yumes/dos$のプロンプト
- s19tool -intbv3.bin -b0100h -ontbv3.s19
- -b0100hは先頭アドレス
以上
0 件のコメント:
コメントを投稿