2019年4月27日土曜日

SBC8080でGAME80がようやく動作

SBC8080でGAME80がようやく動作しました


4月20日のブログでGAME80が動作しませんと書きましたが、ようやく動作しました。
INCH, OUTCH, ROLCATルーチンを色々と書き直してみたり、入力したバイナリリストを何回も見直してみたりしましたが、結果は変わりません。
ついにはSBC8080付属のモニタの逆アセンブル機能を用いて、リストをプリントアウトして読もうとしてみたりしましたが、やっぱり原因はわかりません。

ただ、TeraTermの改行の送信コードをCRからLFに変えると、改行が多くなりすぎるものの一応動作することを見つけていたので、プログラム内での改行コードの扱いに関係しているという見当をつけてリストを眺めていました。

そんな時に、元記事中の変更する可能性のあるデータ(表1)の中に、CRコードが0Ahであると書かれているのに気づきました。(もっとちゃんと読んでおくべきでした...)
ということで、アドレス8C77hの値を0Ahから0Dhに変更することで無事に動作しました。


起動手順

メモリダンププログラムを入力してみました

その実行画面


追加変更した箇所


INCHルーチンはモニタの割り込みを使用した入力ルーチンを利用したので、ROLCATルーチンは不要となりました。

以下に変更・追加箇所を記しておきます。
************************************************
変更箇所
(1)8C77 0D
(2)8C96 CD 7C 00     CALL  007C
(3)8C99 C3 9F 8C     JMP    OUTCH
(4)8C9C C9 00 00     RET NOP NOP
(5)8797 CD 96 8C
    87A2 CD 96 8C
追加箇所
OUTCH 8C9F F5 PUSH PSW
             A0 DB 01 IN 01H
             A2 E6 01 ANI 01H
             A4 CA A0 8C JZ 8CB9
             A7 F1 POP PSW
             A8 D3 00 OUT 00H
             AA C9 RET
************************************************

動作したという報告だけでは、ああそうですかという話でしかないので、まだ変更すべき点がありますが(配置アドレスの変更、プログラムの格納アドレスの変更、第1・第2スタックの変更などSBC8080に合わせる改造が必要)、とりあえず現行のもののバイナリリストと逆アセンブルしたリストOneDriveに上げておきます。

[4月30日訂正]逆アセンブルしたリストまで公開するのはまずかったと思いますので、バイナリリストのみの公開に変更しました。

次は、MicroPascal80かな。


4 件のコメント:

  1. はじめまして
    GAME言語懐かしいですね^^
    TK-80BS用のバイナリが入手できたのでCP/M-80に移植してコンパイラを動かしてみました。
    https://piclabo.blog.so-net.ne.jp/CPM80GameCompiler

    返信削除
  2. コメントありがとうございます。
    私は80系は全くと言って良いほど経験がないので、この程度の移植でも四苦八苦でした。機械語は全くダメなのでSBC8080を高級言語(?)でいじろうとしてGAME80を入れようとしたのです。今はMicroPascal80の移植で苦労しております。
    実はskyriverさんのブログは以前から拝見しておりました。Katy68-ae基板を製作しましたので、それにCP/M-68Kを移植したいと思っているのですが、まずCP/Mが分からないというレベルですので、遅々として進みませんが、参考にさせていただいています。それと、skyriverさんが作成されたPIC24F上のpicle言語を動かしてみたいと思ってPIC24FJ64GAを入手したばかりです。これからも有益な情報をよろしくお願いいたします。

    返信削除
  3. 初めまして。
    学生の頃、GMAE-MZに夢中になっていました。あれから40年以上経ってます。定年間際になって、電脳伝説さんのEMUZ80の記事を読んで、レトロPCの沼にハマってしまったしだいです。今はEMUZ80のソフトを作成していて、ツイッターに出没しています。
    GAMEインタープリタを動かしてみたい!という願望はずっとあったのですが、ソースが公開されていないみたいで自作するしかないのかなぁと思ってましたが、色々検索して、ここにたどり着きました。
    現在、EMUZ80で動かそうとしています。動向はツイッター(Aki.h @akih_san)で報告していきますので、よろしくお願いします。
    レトロPCの沼には、猛者が沢山いらっしゃって、すごいなぁ~って感心することばかりです。

    返信削除
    返信
    1. コメントありがとうございます。
      私もそれまで続けていた68系マイコン、パソコンいじりに対して、定年後にようやく時間をかけることができるようになりました。
      80系は全く分からないのですが、FM-7用のZ80カードを製作した縁でCP/Mはいじっています。
      ブログを書いているのは、経過やデータ等を公開することで、これなら自分でもできると感じていただくことで同好の士が増えてほしいという気持ちからです。
      これからもよろしくお願いします。

      削除