2018年12月1日土曜日

SBC6800+SBC-IOのサンプルプログラム(2)オセロ

乾謙一氏制作の「オセロ」(Ascii,june,1979)を走らせる


このプログラムは、カセットテープに記録していた時代物を当Blog所有のMEK6800 DIIにロードしてから、SBCに転送し、Tera TermのTEK4010エミュレーションで表示可能なように、加筆・修正を加えたものです⏪
NTB_PROV3.TXT,OTHELLOV3.S
OTHELLV3.zip
(otheV3.asm,otheV3.LST,otheV3.S,tekv3.asm,TEKV3.LST,TEKV3.S)

1. NAKAMOZU TINY BASIC ROMのバージョンアップ
 オセロプログラムでは、駒を移動するためにBASICのKEY関数を使用するので、割込みを使った関数を組み入れた。合わせて、ROMのメモリ割り付けを整理しバージョンをV9にあげた。
 従って、V9を焼いたROMに差し替えておく必要がある。
ファイルは置き棚にアップした。
【置き棚のリンク先】 ntbmixdV9.zipのBIN,HEXファイル
 ★ KEY関数のテストプログラム
  KEYはPCのキーが押されていない時、100を返す。
  次のプログラムは押されたキーのヘキサデシマル値を表示する。

10 A=KEY
20 IF A=100 GOTO 10
30 PRINT HDT(A);
40 GOTO 10
50 END

2. オセロプログラム
 ★ 下記ルーチンを合体したOTHELLOV3.S をロードする。
   ・オセロのサブルーチン(otheV3.S)
   ・TEK4010エミュレーションサブルーチン(TEKV3.S)
 ★Serial portのTransmit delay 20msec/charに変更する。
 ★Monitorの Z コマンドでNTBを起動した後、
  NTB_PROV3.TXTをTera Term画面にCOPY&PASTEする。
  途中でERRORが出る時にはさらに、Transmit delay 200msec/lineにしてみる。
 ★>RUNでスタートする。

3. オセロの遊び方
  • NANNIN DE YARU ? 
   0:コンピュータ同士 1:コンピュータと対決 2:二人の対決
  • BEGINNER ?
   0:初心者      1:熟練者 SBCが5分位、熟考することがある

  • 駒の移動法(割込みによるKEY関数を使用している,4155行)
   I:上 J:左 K:右 M:下

  • CTL-Cで停止、終了
コンピュータ同士対決中

対決終了画面
画面右側のABCD表示は無視してください。
(4060,4070行を消去すればなくなります)

4. TEK4010のアルファベットモードのデモプログラム
 *OTHELLOV3.S をロードした後、 TEKDEMOV3.TXTを走らせる。



5. オセロプログラムを移植した手順


◎1.制作当時の機種
◎2.SBC6800+IOとMEK6800 DIIのメモリ構成
◎3.当Blog環境と条件
◎4.BinaryデータのSBC6800への転送
  1.〜4.は 当Blogの記事【SBC6800+IOのサンプルプログラム(1)】と同じ
 BASICプログラムの転送
  MEK6800 DIIのBASICテキストRAM領域をPコマンドでSBCに転送する。
  SBCのRAM領域に転送されたテキストデータをTera Termに表示させる。
  PCのCopy&Pasteでテキストファイルにする。

以上

0 件のコメント:

コメントを投稿

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

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

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