2016-07-11 (月)
窓開けて寝てたら,蚊が入ってきたせいで寝不足.
https://github.com/binzume/erlprocvis
会社のLTでデモ.1000プロセスくらいある実際の環境につないだら,表示周りよりRPCが遅かったので慌てて修正.
* 19年前のディスクイメージを見つけた
なつかしいファイルを見つけたのでエミュレータ上で実行してみた.97年の夏なので,自分のWindowsマシンを手に入れる直前の時期にPC-9801のN88-BASICで書いたもの.インターネットも,プログラミングの入門書を買う発想すら無かったので,サンプルプログラムとN88-BASICのリファレンス・マニュアルだけ見て書いてた頃.
2014-02#23A1 のときには見つからなかったけど偶然見つけた.
LIFE.BAS 1997-08-16 19:20:34
ライフゲーム.普通に動く.いま見るとマス目少ないな...
BASICからマウス使うために試行錯誤しながらMOUSE.CODを使ったやつな気がする.MOUSE.CODの中身が機械語のバイナリファイルで読めそうも無くて絶望したけど.
MML.BAS 1997-09-14 10:03:46
MMLを楽譜として編集するプログラム.未実装の操作をしようとすると,すぐエラー出して止まる.無駄に頑張ろうとして途中で飽きたの思い出した.
メニューが枠までテキストなのは,消す時にCLS命令でテキストだけ消せば他を再描画せずに済んで楽だったから.
この1小節分だけ入力されてる曲なんだろ...
SL.BAS
Windowsの起動ロゴをPC-9801で表示するネタプログラム.BASICでLOGO.SYSのビットマップを読み込んで,アニメーションまで再現してて無駄に凝ってる.
Windows 10で,PC-9801のエミュレータを動かして,Windows 95の起動画面を再現するのシュールだ...
バイナリエディタすら知らなかったのにDIBの構造を推測してビットマップ読むとか,すごく無駄な努力をした形跡がある.
MORU.BAS
20 LINE INPUT"[KJ8>O!)[H";A$ 30 A$=A$+"=":I=1 40 I$=MID$(A$,I,1) 50 IF I$="=" THEN CLS:GOTO 20 60 PRINT I$;:H$="3" 70 IF I$="A" THEN H$="013" 80 IF I$="B" THEN H$="10003" 90 IF I$="C" THEN H$="10103" 100 IF I$="D" THEN H$="1003" 110 IF I$="E" THEN H$="03" 120 IF I$="F" THEN H$="00103" 130 IF I$="G" THEN H$="1103" ・・・・
こんなプログラムも見つけたのだけど,つい最近にたようなの書いた気が……あれ?
http://tboffice.hatenablog.jp/entry/2016/06/24/233941 これ用に先月書いたやつ.
// char, dummy, length, code static uint8_t PROGMEM codes[] = { 'A', 0, 2, 0b10, 'B', 0, 4, 0b0111, 'C', 0, 4, 0b0101, 'D', 0, 3, 0b011, 'E', 0, 1, 0b1, 'F', 0, 4, 0b1101, 'G', 0, 3, 0b001, ・・・・
0/1の扱いが逆だ.
「[KJ8>O!)[H」の部分が化けてるけどなんて書いてあったんだろ.おそらく,途中までN88-日本語BASICで書いててMS-DOSにファイル持ってくる時点で文字コードの変換に失敗している気が,,,と思ったら普通のJISコードだ."文章?"って書いてあるように見えるけど,なにそれ...他にも,文字列の最後に適当な1文字追加して終端判定していて,文字列の長さを調べる方法すら知らなかったのかとか突っ込みどころ多い.
ψmenuとかJEDとかFDとかのファイルも見つけたので当時の環境をセットアップできそう.
この時期に書いたN88-BASICのプログラム大量にあるはずで,他にもいくつか起動してみたいのがあるのだけど,ファイル数多いプログラムは個別のディスクにラベルを貼ってファイルを管理してたせいで,手元に残っていない...