2018年6月26日火曜日

NAKAMOZU TINY BASIC(NTB)の アセンブルソース作成

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アドレスにスタックポインタを設定して、画面内で暴走するのを
    監視しながらデバッグしたのが懐かしい。

 ★まだまだ未知数
   ・ですので、いろいろとご指導いただけると嬉しく思います。

【ことの次第】

  1. 発表された記事を参考にしてMEK6800D IIに移植した時代もののROM
  2. ROMのBinaryファイル(ntb.bin) をdasmxで逆アセンブル
    • dasmx -a -o24576 -c6800 ntb.bin
      • dasmx(ググってインストール) はwindows10 コンソールで実行
      •   windows10では動作しませんでした。windows8.1です。windows10でOKの場合もある。
      • -o24576 はROMの先頭アドレス、$6000の10進数
      • ntb.asmを出力 
  3. ntb.asmをx6801.exeでアセンブル
  4. ntbv3.LSTのエラーがなくなるまで、テキストエディタでntbv3.asmの編集、アセンブルを繰り返し、エラー0のファイル、ntbv3.HEXを生成
    • x6801.exe用アセンブラ作法を習得するのに時間がかかる。
    • FCB を多用する羽目に
  5. 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$のプロンプト
  6. ntbv3.asmを移植し易いように編集
      • 先頭アドレスは$0100
  7. ntbv3.asmをアセンブルしてntbv3.LST、ntbv3.HEXを出力
  8. hex2binでntbv3.HEXをntbv3.binに変換
  9. 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 件のコメント:

コメントを投稿

SBC6800+SBC-IOのサンプルプログラム(3)TEK4010 Emulation

SBC6800のVRAM出力をTEK4010 Emulationでシミュレーションする 【当Blogのプログラムファイル置き棚のリンク先】 1. 当Blogの環境と条件  ★PC:    ・  TeraTerm   Setup     - Terminal ...

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