カシオ リレー式計算機 14-A
2025.06.27
なんと当時のカタログ。
よく残っていたものです。


そういえば、
私は昔の8bit全盛時代に各社カタログを集めていたんですが、ある時期にまとめて捨ててしまいました。
MSXを中心に、富士通のFM-7とかFM-Xのタモリ、日立H1など・・・今では貴重なもの。

雑誌も場所をとるから、興味のある記事だけ切り抜いてファイリングしておいたら、捨てた部分をあとで読みたくなり、困ったもんです。

こんなふうに、断捨離すると後で面倒なことになります。

よし、とりあえず何でも保存しておこう。(おいおい)
昔のLAN
2025.06.18
これは昨夜の夢の話

なぜか学生の頃の下宿屋で、MSXによってLANを構成していた。
まだイーサネットなど一般家庭には普及していない頃

(現実には、RS-232Cを利用した簡易的なネットワークを構成していた研究室がある。CP/M手作りマイコン入門だったか、なんかそのあたりの本に書いてあった)

カセットI/Fの信号を延長してお互いを接続するというやり方で、
実際に中学生の頃、近所のMSX持ちの奴と線を引っ張って通信しようと妄想していたもの。

ただ、いつ"CSAVE"、"CLOAD"するか、そのタイミングがわからないので、連絡用のインターホン回線としても兼用できなければならない。
いまから送るよ、いいよ、という感じ。

夢の中では、何やら本格的な装置を作っていて、それで各部屋を配線していた。

(現実には、当時はRS-232Cインターフェースを作るのがやっとだった)

なんと、そのLAN経由で他のMSXが操作できるという。リモートデスクトップみたいな機能もあった。

なぜか、途中からMSXではなくWindows画面にかわっているのが夢のおかしなところ。

これじゃセキュリティもへったくれもない。自分のPCが勝手にいじられそうになって心配していた。
どうしてループの変数にIJKLMN
2025.05.22
よくプログラムの中で、ループ変数にIJKLMN、特にI,Jを良く見かけます。
これはFORTRANを経験した方ならおなじみでしょう。私の頭の中はFORTRAN77で止まっています。

じつはFORTRANでは、IJKLMNは宣言しなくても整数型変数として使えるから、手軽に使ってしまうわけです。

FORTRANからBASIC、そしてCへ・・・その中でループ変数も何となく使い続けられてきたのでしょう。

手軽に使ってしまいますが、変数名というものはその意味がわかりやすいようにするのが好ましいです。
CASL
2025.03.18
CASLというのは、情報処理技術者試験用のアセンブラ

特定のCPUに偏ると平等ではない為、みんな同じ条件になるように、試験専用に考えられたという認識です。

今は無いかも?
そして、CASLの前身はCAP-Xじゃなかったっけ。

ポケコンにCASLシミュレータが付いていて、それで実際にプログラムを動かしたり、トレース(変数の動きを出力させたり)していた。

専門学校の授業でもアセンブラはCASLで、目的が情報処理技術者試験だったからそうなったわけだが・・・

勉強していくと面白くなってきて、色々なプログラムを作って遊んでいたような記憶がある。当時のノートは最近まで保管していて、さすがにカビがはえたような感じで汚くなったのでPDF化してから捨てました。

再帰的なプログラムってのがあってだな・・・(詳細、もう忘れた)
FORTRAN
2025.03.17
FORTRANも、いまでは一部しか知らない言語になりました。
自分は高校時代に習いました。(それっきりです)

中3の時、学校見学会だったか文化祭だったかで志望校を訪問する機会があり、そこで円周率の計算プログラム(FORTRAN)の展示を見かけて興味を持ちました。

数学が苦手なくせに、円周率には妙に興味を持っていて、あれこれ調べたりしていました。しかし、どうやって計算するのか当時まったく想像もつきませんでした。

要は、円周の長さを求めるにはどうするかという事で、多角形をどんどん細かくしていくわけです。

プログラムで多桁の数字を扱うにはどうすればよいかも当時は知らなくて、そのFORTRANプログラムを見て学びました。
当たり前といえばそうなんですが、桁を区切って扱うわけです。あとはRAMの許す限り、できるだけ大きな配列を確保します。
その配列ごとに桁上げ・借りを求めていくことで、多桁の計算を実現します。

たとえばZ80のアセンブラで、2バイトや4バイトの数を扱う時に1バイトずつ計算して、桁上げや借りを上位桁に反映していきますけど、同じようなことです。

RAM容量を超える部分をディスク等に書き出したり読み込んだりすれば、そういった外部記憶装置の容量しだいでもっと大きい桁も扱えるようになるけれど、その転送速度が課題となってきます。できるだけオンメモリで処理したいものです。

BASICの原型はFORTRANと聞いたことがあります。

いまでもFORTRANは科学計算などの分野では活躍しているようです。大学とか気象庁?

比較で <= > などの記号はFORTRAN77では使えなくて、.GT. .LE. .LT. .EQ. といった記号を使っていました。Greater Thanとか、Less Than、EQualの略でした。

円周率の計算式は色々あって(詳しくは専門の文献などを参照)、その中でもライプニッツの公式は最も簡単そうに見えたので最初にプログラムを組んでみたのですが、
これは収束がとても遅く、実用性がありません。かなり下の桁から相当な時間をかけて、じわじわ足し上がってくるイメージです。

これ以外に収束の早い式があります。但し、∑だの何だの書いてあって全く意味がわかりません。高校で習ったっけ。忘れた。なんとか展開だのなんとか級数だのサッパリです。

まあ、そのあたりで円周率に興味がなくなったのでした。

FORTRANはCP/M上のコンパイラが有り、過去に試した事がありました。F80というやつです。
F80でコンパイルして、M80でアセンブル、L80でリンクして実行形式(COM)にしました。

- CafeLog -