2019年8月6日火曜日

TEK4010/14エミュレーションを解説する

SBC6303のNAKAMOZU TINY BASIC(略称 NTB)で走るエミュレーション
TEKemuv7.zip(TEKemuV7.asm, TEKemuV7.LST, TEKemuV7.S)

1. NTBからの呼び出し方法
 ★ USER関数  <U.(X,Y,Z)>
  マシン語サブルーチンとリンクする関数。マシン語はRTSで終了し、BASICに戻る。
  Z=USER(式1,式2,式3)   Zは変数
   式1= PC(マシン語サブルーチンのスタート番地)
   式2= IX (インデックスレジスタの値を渡す)
   式3= B<<8+A(上位8BitがAccB, 下位8BitがAccA)を渡す
   Z = AccBが上位8Bitに、AccAが下位8BitとなってZに代入される

2. TEKエミュレーションサブルーチン
 ★ TEKemu.asm

 ★ プログラム領域                     $1000 - $1281
 ★ BASICと共有するワーク領域  $3C4C - $3C54

  -プログラムの最初に配列(共有メモリ)の先頭番($3C4C)地を設定しておく
   $3C4C COBY 2byte 
   $3C4E COBX 2byte
   $3C50 COTY 2byte
   $3C52 COTX 2byte

   $3C54 SIZPXL 1byte 文字のサイズ(To Be Determined)



TEK4010の座標



3. TEKDEMO.txt プログラムの説明
  行番号220-260
        機械語ルーチンの処理アドレスを変数で定義
  行番号270 機械語ルーチンと共有するメモリの設定
  行番号280 機械語のTEKエミュレーションプログラムを$1000-$1281まで
        読み込む。行番号2100以降はTEKemuV7.SをNTB化したもの
  変数ZはUSER関数を呼ぶためのダミーとして使っている

4. 大いに参考にしたホームページ
** A simple TEK4010/4014 Graphics Vector terminal - DEMO
** You need ie. TeraTerm or Xterm switched into TEK4010/14 Emulation
** The current vector's addressing is 1024x1024 (10bit)
**
** Loosely inspired by
** http://www.ne.jp/asahi/shared/o-family/ElecRoom/AVRMCOM/TEK4010/TEK4010gdisp.html
**
** Provided as-is, no warranties of any kind are provided
** by Pito 7/2017  WWW://STM32DUINO.COM


以上






2019年7月14日日曜日

SBC6303でTEK4010をエミュレーションする

SBC6303+BLでTEK4010のグラフィックデモを走らせた

NTB63v7.zip, NTBROMv7.zip, TEKDEMO.txt


1. メモリ配置
 TEK4010 エミュレーションソフト($1000-$1281)を配置するためにMEMORY MAPを変更した。
 ★ NTBをROMに焼いてSBC6303BLのRAMモードで動作させる場合
NTB63ROMV7.asm





















★ NTBをSBC6303BLのBLモードで動作させる場合
NTB63V7.asm

2. バグの修正
 ソースリストの一箇所を修正した。
 L7180内
  LDAB $01   ->    LDAB #$01

3. ブレークルーチンの追加
 LILBUGのCTL-W,Xによるブレークモードを採用して、プログラム動作中の停止機能を追加した。

4. TEK4010デモプログラム
 TEKDEMO.txt
Tera Term のTerminalの設定

設定がAuto switchでないとこうなる

以上

2019年7月10日水曜日

SBC6303BLでBASIC(NTB)を動かす

SBC6303+SBC6303BLで
 NAKAMOZU Tiny Basic を走らせた

SBC6303とSBC6303BL基板
★ Arduino Pro Mini 5V の足に基板用リードフレームを使用 ★

1.SBC6800の NTBの移植
 SBC6303では、ダイレクトページのメモリ $0000-$001Fが使えない。この領域はNTBの変数@からOに割り当てられている。下記のプログラムを追加して、これを$0100以降に移した。
 ★ '19.07.14 BUG Report: 下図の $01 は よくある #$01の間違いです。NTB63V7.asm, NTB63ROMV7.asm で修正しました。

 BASIC プログラムのユーザ領域: $0120-$3C00
変数@〜Oのメモリ割り当てのプログラム

SBC6303BLのメモリマップ

2. BASICプログラムの試験
 SBC6800で動作していたプログラムを実行させて、動作することを確認した。
PAIの計算を実行 PAIkeisan.txt

sosukeisan.txtの実行。
そしてEXITした後に?コマンドを実行

SBC-BUS基板に搭載

以上

2019年6月27日木曜日

SBC6303をつくる

SBC6303を作ってみる


🔁 SBC6303技術資料に従って、SBC6303ルーズキットを製作する🔁

  • 製作にあたってのコツや部品の購入法は電脳伝説さんのHPに紹介されています。
  • 多数の製作事例があります。 #SBC6303
  • 汎用ロジックICはTL866 II Plusでチェックして直付け、CPUとROMのみソケットを使用した。が、CPUの40Pソケットを半田した後に、上の写真のような位置ヅレに気付いてぎゃふん、ソケットをニッパで切り刻む羽目になってしまった。

上下に1Pヅレても差し込めてしまうので要注意

正規の位置のソケット

1. PCの環境と条件
 ★PC:
 win10に次のコマンドをインストール:
  msdos.exe  MS-DOS Player
  X6801.exe  Arcpitのクロス・アセンブラ
  Tera Term     ターミナル エミュレータ
  Xgpro v8.33  Universal Programmer TL866 II PLUSの書き込みソフト
  ・ダウンロードしたXgproV833_Setupでインストール場所をC:¥Program Filesに設定するとXgpro起動時に「Config file error!」が出る。従って当BlogではC¥user¥commandとした。このバージョンは汎用ロジックICのテストができる。


TL866 II PLUS

 ★当Blogで使用したROMと道具

 ・ROM(32KB)
    - ATMEL AT28C256 15PU
 ・プログラムをSBCに送り込むための端末として
    - ターミナルソフト Tera Term を動作させるWindowsPC
    - PCとSBCを接続するUSB-シリアル変換基板とケーブル

 ★SBCシリーズ基板の入手:
  SBC6303     (スイッチサイエンス)
  SBC6303BL (スイッチサイエンス)
  SBC-BUS Rev.02 (ORANGE pico)

  参照記事:
  「電脳伝説さん」の【ホームページ】
  「レトロな雰囲気さん」の【SBC6303/SBC68の3枚構成】
  「Old68funさん」の
     【SBC6303に自作6802ボードのモニタープログラムを移植】
   当Blog の製作記事【SBC6809+Apaterをつくる】
 
2.製作したSBC6303基板
SBC6303
LILBUGを起動 ?(HELP)が追加してある
 3. LILBUGに「U」「?」コマンドの追加
 ★「kuninetさん」の【SBC68系 メモリチェックプログラム】
  を参考にしてソース NTB63V3.LSTの$F400以降にコマンドを追加しました。
 U:  ユーザプログラム($6000) にジャンプ
 ?:  LILBUGのコマンドの一覧を表示

以上