2018年7月30日月曜日

SBC6800でROM化MONITORが走る

ROMでも、RAMでも走るMONITORが完成

🔁SBC6800走る🔁
当BlogではMIKBUG ROMに代えて、このMONITORを使っています
の中のMIXDBUGフォルダー
★ 特徴
 *ブレークポイントの設定
 *メモリ書き換えで後戻り可
 *メモリ上のデータ検索
 *コマンド一覧表示
 *SWTBUGコマンドコンパチブル
 SWTBUGのソースリスト、取説SWTPC-6800開発者のHPにある。

1.SBC6800用MONITOR

JBUG、MIKBUG、MINIBUGもどきなど試した結果、SWTPCのSWTBUGに行き着きました。移植作業+D、?コマンドを付加して使い勝手を改良し、SBC6800用にしたものです。

  • Motorola MONITOR共通のサブルーチン(ROM)
    • 1文字入力 $E1AC  INEEE
    • 1文字出力   $E1D1  OUTEEE
    • START        $E0D0
    • CONRL       $E0E3

2.MONITORコマンド




SWTBUGの記事については、置き棚のリンク先、BILLBUG関連資料のサイトにもある。
SWTPC SWTBUG, Ver 1.0[1977]

3.RAMでの利用法(まずはRAMで)

 ★ メモリ領域
           ワーク  - $0780 - $07C8
   プログラム- $0800 - $0C7D (約1.2KB)
 ★ 開始番地
   - $08D0
  • 置き棚フォルダーの「swtbugv1.zip」ファイルをダウンロード、解凍する。
  • MIKBUGの「L」コマンドでswtbugv1.SファイルをSBC6800にアップロードする。
  • アップロード方法については、次のリンク先を参考にして下さい。

  • MIKBUGの「M」コマンドでプログラム開始番地を設定する。
      • M 1F48
      • 1F48 ✖︎✖︎ 08
      • 1F49 ✖︎✖︎ D0
  • MIKBUGの「G」コマンドでMONITORが起動。プロンプト「$」が表示される。

4.ROMでの利用法

 ★ メモリ領域
           ワーク       - $1F00 - $1FC8
   プログラム - $E000 - $E47D(約1.2KB)
 ★ 開始番地
   - $E0D0
 ★ ベクトル
   FFF8 E000                    FDB      IRQV       IRQ VECTOR
   FFFA E181                    FDB      SFE         SOFTWARE INTERRUPT
   FFFC E197                    FDB      NMIV       NMI VECTOR
   FFFE E0D0                    FDB      START     RESTART VECTOR

【当Blogで使用した道具とROM】

  • Universal Programmer TL866IIPLUS(http://www.Xgecu.com)
    • ソフトウェア Xgpro v7.22
  • ROM(32KB)
    • ATMEL AT28C256 15PI
    • CATALYST CAT28C256P
  • 置き棚フォルダーの「mixdbugv1.zip」ファイルをダウンロード、解凍する。
  • ROMの焼き方
    • Win10 PCでXgpro v7.22を起動
      • 起動時に「Config file error!」が出るがそのまま使用
      • HEXファイルが読み込めなかったので、binファイルを使用
    • mixdbug.v1binファイルをOPEN
      • File load Options で矢印のように設定する。
WIN10では文字,アイコンが小さすぎる。WIN8.1ならOKなのだが
Programming successful ! の表示
  • SBCにROMを挿してPOWER ONし、プロンプト「$」が表示されれば起動OK
    • ?」コマンドでコマンド一覧が表示される。

ROMの選択や焼き方については下記の記事を大いに参考にしました。

「Old MC6800」さんのHPのリンク先


 ★ ワークメモリ領域



以上

2018年7月27日金曜日

SBC6800で走るS形式のプログラム(1)MONITOR

(1)🔂monitor🔂
🔀MONITORのソースリスト🔀
★メモリダンプやメモリ変更、パンチ、ロード★
の中のBILLBUGフォルダー
1. 海外のサイト記事をSBC6800に移植したMONITOR
S形式のファイルBILLBUGv1.Sを上記の置き棚よりPCに取り込む。
MIKBUGのLコマンドでSBC6800にアップロードする。

【プログラムのアップロード方法】を参考にしてください。


2.  MONITOR コマンド

3. アセンブリソースリストの内容
リストはBILLBUGv1.S, billbugv1.asm, BILLBUGv1.LST

    • MONITORの開始番地 $0A00
    •             ☆ $0A00-$0C86
  • MIKBUGのサブルーチンは使用していないので、ROM化が可能なはずですが、当Blogでは試していない。
    • INEEE は  ソースリストのCHRIN
    • OUTEEEは ソースリストのCHROUT

以上

2018年7月18日水曜日

当ブログ確定版:NAKAMOZU TinyBasicアセンブリソースリスト

🔂NAKAMOZU TINY BASIC🔂

当BLOG確定版ソースリスト

🔀付録MONITORのソースリスト🔀
★メモリダンプやメモリ変更、NTB起動★

1. アセンブリソースリストの内容
☆当Blog確定版は次のように整理☆
リストはntbv7.S, ntbv7.asm, ntbv7.LST, ntbv7.MAP, ntbv7.MAP, ntb7.bin
  • ntbv3.asmに残っていたゴミを取り除き,付録MONITORを含めたプログラム部分を$0A00-$1E60(5.5KB)にパックしました。
  • これで、Basicプロブラムテキストが$0100-$08C0までの約2KBになりました。
  • NTBインタープリッタ領域はNOPを挿入してオリジナルと同一の配置にしました。
  • 従って、NTBの記事に基づくbinaryレベルでの移植が可能です。

    • MONITORの開始番地 $0A00
    •             ☆ $0A00-$0CC3
    • NTBの開始番地    $0D00
    •             ☆ $0D00-$185A
    • VRAM制御ルーチン
    •         ☆ $185B-$1E60



★ソースレベルで移植するときのクロスアセンブラの作法の参照元は


2. MONITOR コマンド
  • ソースリストはVRAM制御ルーティンが含まれたままになっている。
    • D メモリダンプ
    • G 指定番地にジャンプ
      • G 0D00 改行でNTBスタート
    • J  NTBスタート
    • M メモリ書き換え
    • B,C,T 不明

  • MIKBUG→MONITOR→ NTB の順に起動しますが、スタックの処理が十分でないため、NTB→MIKBUGに戻る時にハングすることがある。
  • リセットでも解消しないため、POWER OFF→ONを必要とする。
  • 追加:MIKBUGから M 1F48 0D. 1F49 00を書き込んでG スタートすれば、MIKBUGNTBの往復が可能になる。



3. NAKAMOZU TINY BASIC
  •  素数の計算、EXP(指数)の計算、πの計算とも走ることを当BlogのSBC6800で確認しています。




  • Binaryでntbv7.binと当Blog所有のMEK6800D IIのPROMのNTBプログラム領域を比較したものです。



4.追加:ntbv7.SのSBC6800へのアップロード
  • Tera Term シリアル設定:送信遅延を下図のように設定すれば、1分以内で完了することを当Blog環境(Win10)で確認。


★未解決課題
  • プログラム(ASCIIの記事)を走らせるとわかるようにFOR NEXT,DO UNTIL実行時に「:」が出力されてしまう変竹林!
  • STACK処理が定かでないので、MONITOR実行中にハングすることがある。NTBでは無い。

  • Binaryでntbv7.binと当Blog所有のMEK6800D IIのPROMのNTBプログラム領域をなんども比較しているが、問題は見当たらない。



以上







2018年7月14日土曜日

SBC6800でTiny Basicを走らせるまでを振り返る

       ★Twitter @Leo_yumesichi に投稿したつぶやき★

🔁NAKAMOZU TBのアセンブルソース更新🔁

🔀SBC6800の製作🔀

🔀中百舌Tiny Basic(NTB)を動かすまで🔀

NTB関連記事のリンク先



1. 当Blogでは、NTBをSBC6800のRAM領域におきます。

  • NTBはVRAMベースのグラフィック命令が特徴です。
  • NTBプログラム3KB+グラフィック制御・モニタプログラム2KB(ゴミ出し後) +ワークメモリ2KBの 合計7KB使用しています。Basicのプログラム は1KBまでとなってしまいますが、8KBRAM (HM6264ASP)でも動作確認しています。
  • 当Blogでは、写真のような改修を行って、32KBRAM(HM62256BLSP-10)を使用しました。
  • 追記:但し、この改修を行った後、8KBRAM (HM6264ASP)をICソケットにさすと、当BlogではMIKBUGが動作しなくなりました
  • 抵抗は電源LED用

  • 当Blogで使った主な道具

2. 接触不良


  • ICに印刷されたロゴ (MC6800P)は新品のように見えるのですが、Pinが汚れていて接触不良による動作不安定になることがありました。

  • マルピンソケットも指でつまんで引くと抜けてしまうのでこれが原因になることも。
  • 半田の盛り付け不良が一番多いか
道具で焼いたMIKBUG ROMとRAMの丸ピンソケット
★ SBC6800製作についての参照元

3. アセンブルソフト環境

止む無くWindows PC
  • MS-DOS Player(ググってインストール)上で動作するクロス・アセンブラArcpitのX6801.exeを使用して、モトローラS形式で出力。ターミナルソフトTera TermでSBC6800にアップロードします。数分かかるのが難儀!(追記:7月18日Blog4章で1分以内を確認)
    • クロス・アセンブラとターミナルソフトにはそれなりの作法がある模様!
  • NTBのアセンブルソースリスト(ntbv7.asm)は、実行する前にプログラムを停止したいアドレスにMIKBUGのMコマンドで$3F(SWI)を書き込んでおくことで、MIKBUGのRコマンドに飛ぶようにしてみました。
  • ソースリストのORGアドレスを変更して再アセンブルすればアドレス移行可能
  • 暴走時にはボールペンの先で並びのICpinを短絡させて振り出しに。目と手が冷や汗!リセットボタンを取り付けておいた方が安心!
  • 暴走中は電流が通常0.14Aが0.16A程度に増量!
★ この項目についての主な参照元

道具

当Blogで使った試験器と電源線

以上



2018年7月6日金曜日

SBC6800のBasic(NTB)でπの計算プログラムが走る


🔀πの計算プログラム🔀
NTBの記事に解説されています。
🔀NAKAMOZU TBのアセンブルソース焼き直し🔀
★アセンブルソースの視認性を向上!したつもり★
「Old MC6800」さんの記事を元に、NTBのアセンブルソースに電大版のラベルを引用してみました。NTBのBinary($0D00 - )での変更箇所はMONSTKを$1E00から$1D01に拡張した部分。
★未解決課題
   ・πの計算プログラムを走らせるとわかるように画面表示が変調。が、答えは正確

1。計算プログラムを走らせるためには、Basicプログラム領域を拡張する必要があります。SBCに32KBRAMが搭載してあることが条件です。
追記:32KBRAM化には、基板の加工が必要です。電脳伝説さんの製作例の中に出てきます。ICソケットを先に半田付けしてしまった小生はtwitterに置きました。このツイッタの8KB化とあるのは32KBの間違いです】
置き棚にv.2と表示されているファイルが更新したもの
V.2の表示部をクリックすると以前のファイルも見える
  • プログラムの動作を試験した条件
  •    * オリジナルのMIKBUG ROM とHM62256ASなど32KBのSRAM
  •    * プログラムをSBCに送り込むための端末として、
  •        - ターミナルソフト TeraTerm を動作させるWindows PC
  •        - PCとSBCを接続するUSB-シリアル変換基板とケーブル
2。PCのTeraTermの設定、SBC6800への取り込み、起動については前回のブログと同じです。
  • プログラム領域を拡張(24KB)するために、MIKBUGコマンドMで入力
  •  - M 0D06 
  •      0D06 19 20
  •      0D07 00 00
  •      0D08 1D 7F
  •      0D09 00 FF
  • NTBの開始アドレス入力
  •  - M 1F48 
  •      1F48 ✖︎✖︎ 0D
  •      1F49 ✖︎✖︎ 00
  •    - G→改行で NTB のプロンプト >   が表示されればOK

3。ソースリスト置き棚の「PAIkeisan.txt」をダウンロードして、TeraTermファイル送信でSBCに送り込みます。なお、当初のPAIkeisan.txtには入力ミスがありましたので今回アップしたものを使用してください。
  • LISTコマンドでプログラムがPC側のファイル内容と一致しているか確認する。
  •  * MIKBUG1.5の場合には、小文字→大文字変換をOFFにする必要があります。
  •        (%が@に文字化けしてしまうので)
  •        アドレス $1F15 のデータを 00 から FF に変更する。
  • RUNコマンドで走り出します。
  • 計算中の電流が0.03A(20%)増量します。

以上

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

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

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