2018年6月28日木曜日

SBC6800で Basic(NTB)のプログラムを走らせる

🔀メモリダンプ&チェックサム🔀
🔀素数の計算🔀
🔀e(指数)の計算🔀
🔀πの計算🔀
これらのプロプラムはNTBの記事から引用しています。


1。SBC6800ルーズキットを製作すれば、NTBの上記プログラムを走らせることができます。

  • 製作にあたってのコツや部品の購入法は、プロジェクト発起人、電脳伝説さんのHPに多数の例が紹介されています。
  • PROM書込み器「TL866 II Plus」で通信クロック生成IC(PIC12F1822)のプログラム書き込みができます。('19.03.22追加)
  • プログラムの動作を試験した条件
  •    * オリジナルのMIKBUG ROM とHM6264ASなど8KB以上のSRAM
  •    * プログラムをSBCに送り込むための端末として、
  •        - ターミナルソフト TeraTerm を動作させるWindows PC
  •        - PCとSBCを接続するUSB-シリアル変換基板とケーブル

★ iMAC のターミナルモード、screenコマンドのコピペでは取りこぼしがあって、プログラムが取り込めませんでした。
2。PCのTeraTermを起動

  • PCとSBCをケーブルで接続し、TeraTermの起動画面で、シリアルポートを選択する。

  • メニュー「設定」でシリアルポートを選択し、「送信遅延」を1ミリ秒/字にする。
  •  *(0ミリ秒/字だと、SBC MIKBUG のチェックサム計算が追いつかないようで取りこぼしエラーになる)
 ★ その後(2018年7月18日Blog)
  • Tera Term シリアル設定:送信遅延を下図のように設定すれば、取りこぼし無く1分以内で完了することを当Blog環境(Win10)で確認しています。
  • 「設定」で端末を選択し、改行コード/受信をAUTOにしておく。

  • NTB本体(ntbv3.s19)をSBCに送り込む
  •  *SBCの電源を入れると*が画面に出るので、L→改行を入力する。
  •  *「ファイル」のファイル送信で、ntbv3.s19を選択、OKボタンをクリック。

  • NTBを起動
  •  *MIKBUGコマンドMを入力し、NTBの開始アドレス($0D00)を入力する。
  •    - M 1F48 
  •      1F48 ✖︎✖︎ 0D
  •      1F49 ✖︎✖︎ 00
  •    - G→改行で NTB のプロンプト >   が表示されればOK



3。チェックサムプログラムを走らせる

  • TeraTermのファイル送信でchecksum.txtをSBCに送り込む。
  • LISTコマンドでプログラムがPC側のファイル内容と一致しているか確認する。
  •  * MIKBUG1.5の場合には、小文字→大文字変換をOFFにする必要があります。
  •        アドレス $1F15 のデータを 00 から FF に変更する。
  • RUNコマンドで走り出します。
★ 結果を見ると余計な「::」が入っていますが、メモリ内容が表示されています。

4。e(指数)計算プログラムを走らせる

  • TeraTermのファイル送信でEXPkeisan.txtをSBCに送り込みます。
  • LISTコマンドでプログラムがPC側のファイル内容と一致しているか確認します。
  • RUNコマンドで走るので、KETA 数 1を入力する。つまり100桁の計算
  • 結果を見ると余計な「!!」が入っていますが、計算値は得られています。

★ この「!!」はDO UNTIL、FOR NEXTルーチンで発生しているので、NTBがDEBUGモードで動作していることが考えられますが、現時点で不明です。

5。πの計算、素数の計算について

★ プログラムがSBCに送り込めなかったり、送り込めても途中で計算が停止したりと動作が安定していません。現時点で不明です。

★ まだまだ未知数ですが、どこまで解明できるやら。
☆ NTBのROMの元々の開始アドレス$6C00を$0D00にしてアセンブルしたものですので、開始アドレスは変更することができるのですが、モニタ&VRAM制御ルーチンと関連しているので、この解析が必要となります。VRAMを入手できればその接続を考える方が早いかもしれません。
☆ 何れにしても、トレース機能などDEBUGができるようにしたいものですが!!!

以上

   


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は先頭アドレス



以上

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

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

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