TANDY 200でプログラミング その1

f:id:PocketGriffon:20210704141821j:plain

ついに手に入れたTANDY 200!

前から eBayで「vintage laptop computer」とかすると魅力的なマシンがたくさん表示されるんだけど、その中でも「いつか使ってみたいマシン」の上位に入ってたTANDY 200。

 

マシン構成と起動画面のメニューを見て、なんとなくだけどPC-8201の上位互換のようなイメージを持っていた。マシン語レベルでは互換性無いと思うけど、BASICレベルでは完全上位互換であってもおかしくないだろうな…と思い気になっていた。

 

しばらく頑張ったおかげで、PC-8201A、PC-8300、Amstrad NC200と立て続けに入手出来たが、動くTANDY 200は高すぎて手が出せない状態が続いてた。

それが…「多分動くと思うよ」的な感じで安値で出ていたTANDY 200を見つけ、ここぞとばかりに落札した!やった!!(^-^)

 

こういうパターンは動かないはずだ…と信じて疑わなかったが、届いたTANDY 200を見てびっくり! 筐体の色は思いっきり変色してしまっているが、電池漏れは全く無く、これなら起動するんじゃないか?と直感的に思った。そして案の定、電池を入れたら問題なく動いた!

これは超ラッキー!!

 

外見

本体の大きさをイメージしてもらうために、本体の上に書籍を置いてみた。

f:id:PocketGriffon:20210704231508j:plain

「テクノライブ8200」は、1980年代のI/Oと同サイズだ。表面は書籍よりもひと回り大きなサイズで、厚さは5.4cmほどある。重さについては「見た目よりは軽い」って感じだ!(適当すぎるレポート)

 

まず最初に見た時に驚いたのがコレ。

f:id:PocketGriffon:20210704230038j:plainf:id:PocketGriffon:20210704230058j:plain

液晶パネルを開きたくても、ロックを解除するレバー?がないのだ。

どゆこと???

横見たり裏見たりとあちゃこちゃ探したけどレバーが見当たらない。まさか力づくで持ち上げるわけじゃないだろうし……と思ったら! 力づくで持ち上げる、が正解だった!

 

f:id:PocketGriffon:20210704230638j:plain f:id:PocketGriffon:20210704230658j:plain

よくよく見てみると、ゆるい磁石になっていて張り付いているようだ。

なるほど、これならば複雑な構造にしなくてもロック出来るね!

f:id:PocketGriffon:20210704231224j:plain

液晶を広げてみるとこんな感じの見た目となる。液晶のサイズは横19.5cm x 縦10.7cmとかなり大型。ここに240x128ドット(40文字×16行)の表示が出来る。PC-8201と比べると縦方向のドット数が倍になっている!これは表現力が上がりそう!(^^)

 

裏面を見てみると、電池ボックスとメモリボックスがある。

f:id:PocketGriffon:20210704233204j:plain

↑写真はカバーを外したところ。

電池は単3電池4本だ。これはPC-8201と同じ(乾電池パックが取り外せないのは違う)。

 

f:id:PocketGriffon:20210704233250j:plain

メモリは2つまで増設可能。PC-8201では8つまで取り付けられたけど、こっちは2つ…。

調べてみたところ、1つのメモリで24KBの容量があるらしい。

動作未確認で安かった上に、メモリフル実装とは嬉しい誤算だ!

私は昔からメモリ運が良い(^-^)

 

…1つ24KB??

この中途半端?なサイズを聞いて、PC-8201との互換性は??と心配になった。

PC-8201は32KBが1つのバンク構成になっているので、24KBというサイズに疑問が生じる。あれ?もしかして互換性が高くないのかな…。

 

なにはともあれ通信!

私の中では、この手の、現代ハードと共通のメモリカードなどが使えないマシンについては、RS-232C経由でデータ通信出来る事がとても重要となる。

f:id:PocketGriffon:20210705001040j:plainf:id:PocketGriffon:20210705003149j:plain

頭の中で「PC-8201上位互換」と思い込んでいるから、RS-232Cでのプログラムロードセーブが出来ると思いこんでいる。しかもBASICは完全上位互換ではないかと思ってるので、通信方法もPC-8201と同じパラメータで試してみる事に。

パラメータは「9600bps、ノンパリティ、8bit長、 ストップビット1、X制御ON」だ。

f:id:PocketGriffon:20210705000257j:plain

あ?え??NM Errorって??予想していないエラーが出てびっくり。

TANDY 200のマニュアルを持っていないので、PC-8201のマニュアルを参照してみると、NMエラーというのは、「file Name Mismatch Error」らしい。ファイル名の中に使えない文字が含まれていると出るエラーらしい。

ココに来て本格的にぎくっとする。通信パラメータの設定方法が違うのかも知れない…と気がついた時、どうやらBASICの上位互換性どころか、全く別のマシンなのではないかと…。

f:id:PocketGriffon:20210705001106j:plain

↑TANDY 102のマニュアルを持っていたので、これを参考にしてみる。

f:id:PocketGriffon:20210705001433j:plain

これを読む限り、どうやらLOAD "COM:88N1E"とすれば良いらしい。

f:id:PocketGriffon:20210705001723j:plain

……うーん(T-T)

通信パラメータがこれほどまで違うって事は……これはもうPC-8201との互換性どころの話では無いのかも知れない。もはや全く違う文化と考えで作られたBASICなのかも知れない。同じMicrosoftが開発したBASICでこれほどまで互換性が無いのはなんでだろ…汗

 

ネットで検索してみたところ、以下のページに通信パラメータの詳細が書かれていた。

Tandy 200 (and 100) transfer to PC

これを見ると、どうやら「LOAD "COM:87N1ENI"」で通信が出来るらしい。

f:id:PocketGriffon:20210705003234j:plain

よし、バッチリ!

これでホストマシンのMacとTANDY 200が通信できるようになった!

通信速度は9600bpsを指定しているが、設定上は19200bpsまでイケるらしい。

今後、試していきたいと思う。

 

ROMの吸い出し! 

 ここに至るまでの過程で、どうやらPC-8201系との互換性は無さそうだと理解した。

ということは、メモリマップ含めて新規マシンだと思った方が良さそうだ!

まずはともあれ、メインメモリの64KBを吸い出してみることにした。

簡単なBASICプログラムを書いてみる。

f:id:PocketGriffon:20210705004609j:plain

このプログラムはTANDY 200上で作ったのではなく、いきなりMacテキストエディタで書き、TANDY 200へRS-232C経由で送り込んだ。

メモリから読みだした1バイトをテキストに変換し、そのままRS-232C経由でホストマシンへ送り出す。

 9600bpsの通信速度で、約60分掛かってMacへ吸い出す事が出来た!

 

軽くメモリの内容を見てみたけれども、BASICの中間コードすら互換性がない。

テープへの保存であっても、ASCIIセーブしたものでないと読めないと思われる(そもそもカセットフォーマットも互換性あるのかな…汗)。

 

どうやら0000h〜9FFFhまでの40KBがROM、A000h〜FFFFhの24KBがRAMっぽい。

ということはバンクもこの単位で切り替わるのかも?

RAMのEA60h以降はBASICおよびシステムのワークエリアになっているようなので、マシン語プログラムはそれよりも前に置く必要がありそう。BASICプログラムはA001hから保存されているっぽい。内部格納フォーマットはPC-8201のソレと同じだ(というかMicrosoft系BASICは構造的な互換がありそう)。

 

PC-8201のROMエントリとTANDY 200を比べてみたが、やはり互換性のゴの字もなかった。これはもうすべて1から調べないといけないっぽい。結構大変だ!(^-^)

 

どこから手を付けていこうかな…やっぱりバイナリ通信が出来るようにするべきかな。

それよりも先にネットで資料探してみようかな…うむむ(^-^)

 

ではまた次回!(^-^)ノ