デガーベージを見る
2026.02.22
いまさらBASICなんて、と思いますが、Pythonは忘れてもMSX-BASICは身に染み込んでいるのか、いまでも覚えています。ちょっとしたテストにはピッタリです。

たいていの事はわかったような気分でしたが、未だに知らない事があります。動作を早くするための工夫は、たとえば整数型変数を使うとか色々ありますが、手っ取り早くマシン語に逃げてしまった感じがします。

BASICインタプリタ特有の現象で、知らないこともあるものです。デガーベージもそのひとつです。
ガーベッジ・コレクションという言葉のほうが知られているかも。言いたいことは同じです。

古くて新しい問題のようで、いまどきの言語でもガーベッジ・コレクションは有ります。

このプログラムで、デガーベージを体験できます。(de-garbage、ごみ捨て)

10 '
15 DEFINT A-Z:CLEAR 10000:DIM A$(200)
16 TIME=0
20 FOR I=1 TO 200
25 A$(I)=STR$(I)+"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890#$%&()"
30 NEXT
35 T0=TIME
40 FOR I=1 TO 200
45 A$=A$(I):PRINT A$:NEXT
50 PRINT T0:PRINT TIME:END

実行すると、途中で引っ掛かり、また動いてひっかかります。
何が起きているのか。

(※引用)
文字列の連結や書き換えを行うと、書き換える前の文字列はそのままにしておいて、新しい文字列を別のメモリ・エリアに次々に書いていきます。こうして使えるメモリ・エリアが一杯になると、前に使った領域を整理して古い文字列を消し、その後にまた書いていきます。この作業を文字列のデガーベージと呼びます。


CLEAR 10000で確保した領域がいっぱいになったのをBASICインタプリタが整理する間、プログラムが止まってしまいます。
たとえば、リアルタイムで動作するプログラムでこんな現象が発生したら困りますという話。

もしCLEAR 20000にしたら引っかかることなく短時間で終わります。

解決方法が書かれていて、
(1)文字列の書き換えをできるだけ少なくする。
(2)強制的にデガーベージをさせる。たとえば待ち時間の間にPRINT FRE(A$) これはBASICの方言によって異なる。

それでも手に負えない場合の解決方法も述べられていましたが割愛します。

もしBASICでテキストエディタを自作したら、こんな問題が起きそうです。でも実際にはBASICではなくマシン語などで作り、領域は自分で管理しますね。
そういえばテキストエディタを当時(高校生の頃)作ろうとして、この本を見ていたような気がします。
文字や行を追加したら、その後の領域を後ろにずらしますね。画面に例えればスクロールです。文字を削除したら、今度はその文字の後ろの領域を前に詰める。

テキストエディタは結局自分で作ることなく、MSX-DOS2関連でKIDとかAKIDを使っていました。


※「super BASIC」(岡村迪夫著)(CQ出版社)P.114~115より。
THE LINKSの解析と活用
2026.02.22
とりあえず8251のI/Oアドレスは・・・
ROMを逆アセして検索してみると、どうやらD8hとD9hのようだ。
D8hはコマンド/ステータス、D9hはデータレジスタだろう。

フックリレーの制御は、単独のI/Oアドレスは割り付けてないんじゃないか。
8251のどれかの出力ピン(汎用出力として使えるピンがある)を割り当てていそうな気がする。
たとえばRTSとかDTR、DSRピン。
テスターで追ってみるか、レジスタを操作してカチッと鳴ればそれだろう。

BASICで通信プログラムを作ったら単純に通信できんかな。
8251のレジスタを直接読み書きする。
最初に初期化して、あとはステータスを見ながら送信可能になったらデータレジスタに送信データを入れる。
ステータスを見て、受信データがあればデータレジスタを読む。たったこれだけ。

最近いじってなくて、記憶だけで書いているから間違ってるかも。

ボーレートどうなってるだろう。
ひょっとしたら・・・他との互換性をなくすため、標準的なボーレートじゃなかったりして?
でも1200bpsだったような気がするけどな。
MSM6927(1200bpsモデムIC)を使っているバージョンと、ハイブリッドICを使っているバージョンの両方がある。モデムICの規格上、やはり1200bpsと考えられる。

1200bpsなんて懐かしいなあ。社会人になってから初めて手に入れたパソコン通信の機材は、PC-98LTだった。ジャンク屋から買ったやつ。
持ち運びにあこがれていて、しかしお金が無いからそんな物を。
内蔵モデムは300/1200bpsでしかもV.25bisだっけ。誰も知らないだろうな。それでもWTERMが対応していたから助かった。WTERMのPC-98LT版が有り、V.25bisコマンドも対応していた。
THE LINKS
2026.02.22
以前、THE LINKSのカートリッジが懐かしくて2個も買ってしまったが、
別に実用性もなく、2個同士でEND to END通信を試してみるぐらいしか使いようがない。
早い話が、ゴミ。

でもそれは当時できなかった事だな。MSXもう1台は友達に協力してもらえばよかったけど、LINKSモデムは1個しか無かった。他に持っている奴も知らなかった。

当時でも1200bpsは遅かった。テンテンテンテン・・・と音を出しながらダウンロードしていたような記憶がある。長く待たされた記憶。

当時でも思っていたけど、THE LINKSの専用じゃなくて、一般のパソコン通信にも使えるようになっていたら良かったのに、と思う。大人の事情もあったかもしれないけど。
せっかくのモデム回路なのだから、活用したら?



ROMをどうやって吸い出すかって?
ハンダを吸い取ってROMを取り外し、ROMライターで読み込む。それをPCに送って保存する。
逆アセ時にはアドレスを4000h~とする。

そんなことしなくたって後差し・・・自分の慣れた方法でいいじゃない。

8251が載っているので、改造してRS-232Cレベルコンバータを付ければ、一般のモデムや他のRS-232Cつきのパソコンとも通信できる。(ソフトは自作の必要あり)

いまそんな事を思っても意味ないが・・・当時やらなくちゃね。でも当時はそこまでの知識がなかった。情報がなかった。いまとなっては・・・

やっぱりゴミか。

どれだけの人がTHE LINKSカートリッジを持っているだろう。
今さら、これを活用する改造ハードウェアやプログラムを作った所で自分だけの満足でしかないだろうな。

まさか、今さらこれを使えるようにするホスト側のサービスを立ち上げたりして?

添付書類の中にIDとパスワードの紙が入っているのが侘しい。もう使えないんだ。そう思うと、あれは夢か幻だったのか・・・・・・
ABS樹脂の変色
2026.02.15
過去のレトロマイコン製品において、ABS樹脂で作った物が経年変化などで変色しています。
ご覧の通りです。
色の濃いほうが変色したものです。元は同じ色です。


気にしなければ気になりませんが、やっぱり気になるでしょう。

PCの筐体などABS樹脂で作られている物は、やはり変色します。それで、薬品と紫外線を使って直す動画を見たことがあります。

最初から黒にしておけば変色は目立たなかったかもしれません。

変色だけならまだ良いほうで、劣化してボロボロになってくると問題です。いまのところ、その兆候はみられません。

交換用のケースを製作・提供することも必要になるかもしれません。
プロッタプリンタ FS-P200
2026.02.11
1987年に買ったMSX用のプロッタプリンタFS-P200 (松下)
すでに手元にない。

あとで分かったのは、
オリジナルはエプソン、そしてカシオも同じ機種を売っていたことです。

インクカートリッジに「EPSON」という刻印があるのは当時でも気づいていて、
まさかそんな関係とは知らないから、何十年もたってから点と点がつながった。

なんといってもカラープリンタというのが素晴らしい。

用紙は114mm幅の普通紙ロール、
切らしてしまったら取り寄せになるので、ノートやチラシの紙をその幅に切って使っていた。

インクジェットではなくインクドット方式と書いてあり、1本のピンが出入りして紙にインクのドットを打っていく方式でした。それが各色ごとに有りました。

当時、印刷したものが古いノートに貼り付けてあったので、いくつか載せます。











画面コピーと称するカートリッジが付属していて、これを買う前に勘違いしており、ビデオキャプチャーだと思いこんでいました。
(ビデオから)アニメの画面をプリントして遊べるなと思ったら、あっ、なんだ違うのか。MSXの画面だけか。

この画面1枚だけでプリントに確か10分以上かかったような気がする。

スイッチ切換で、32KBの増設RAMとしても使えました。

プロッタのコマンドは忘れてしまいました。A500,-500というのは確か絶対座標じゃないかなと。
マイナスはロールの送り方向がYのマイナスじゃなかったかな。

CHR$(19)でプロッタモードになる。たぶん。同じく(17)でプリンタモード。
A500,-500は描画の基準点を指定したような気がする。そこを中心に描いていく。
最大の描画サイズを想定して、基準点を決めないとズレたり欠けてしまう。(ではなかったかな)

さすがプロッタで、線を描いていくときにはビュンビュン動いていました。得意分野でしょう。あの動きが面白いのです。音も、音階のように聞こえたりしました。

マニュアルを手元に残しておけば良かった!

後にプロッタは廃れてしまいました。レーザープリンタが普及したし・・・。
でもペンが動いて文字を描いたりする仕掛けを作った人がいて、かえって新鮮で面白く見えるんでしょうね。うけているようです。

測量事務所が火事になり、製図用の機械が水をかぶってしまって修理を頼まれた事がありました。
図面に文字を入れる装置で、キーボードから打ち込んだ通りにペンが動いて文字を描きます。
我々はCAD以前の世代で、製図用のきれいな手書き文字をサンザン練習させられたものでした。
「バリナキコト」とか、数字とか。
打ち込むだけで機械が書いてくれる。なんて素晴らしいんだ。
もちろん修理できました。
水をかぶってサビており、その部分が固着していて動かなくなっていたので、清掃したり注油したりして復活。


昔は図面を描くのもプロッタが主流だったように思います。学校の建築科でもX-Yプロッタが活躍していました。
就職してから、基板図面の印刷にやはり大型プロッタ。ペン描きなのでものすごく時間がかかりました。一生懸命動いているのはわかるけれど。
こっちは、早く図面をチェックして基板を発注しろって言われてる身でしたから。

後にインクジェットになり、ある一定幅を一気にプリントする仕組みになりました。確かに印刷されたものはプロッタのそれですが、時間は大幅に短縮されました。

- CafeLog -