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


以上