2026-07-10

東大版PALO ALTO TINY BASICのバリエーション

Palo Alto Tiny BASICは、DDJ Vol.1 No.5 (May, 1976)で発表されました。これに派生するのが東大版PALO ALTO TINY BASICです。しかしDDJに掲載されているソースプログラムを基にしているのではなく、オブジェクトを独自に逆アセンブルし、改良を加えたとのことです。

 

東大版が掲載されているのは、『マイクロコンピュータのプログラミング』(共立出版、昭和53年)と、「2K BASIC」(ASCII 1977年8月号初出、エンサイクロペディア・アスキー Vol.1再録) です。これらは、同じものなのでしょうか。全体を確認するのは大変ですが、先頭を見ただけでも違いがありました。

 

『マイクロコンピュータのプログラミング』に掲載されている方は、次のようになっています。

;

;

;  PALO ALTO TINY BASIC

;

;

; MEMORY MAP

ITOP EQU 0000H

ISIZE EQU 0800H

LTOP EQU 1000H

VTOP EQU 1300H

LBUF EQU VTOP+0037H

LBUFSZ EQU 80

MSTK EQU LBUF+LBFSZ

(以下略) 

一方ASCII掲載の方は、次のようになっています。

;

;

; PALO ALTO TINY BASIC

;

;

; FOR SDK-80 VERSION (1977/03/23,ONO)

;

STACK EQU 1400H

VTOP EQU 1300H

LBUF EQU 1337H

MSTK EQU 13A7H

(以下略) 

 

目につくのは、ASCII版には「FOR SDK-80 VERSION (1977/03/23,ONO)」があり、『マイクロコンピュータのプログラミング』版には無いことです。推測となりますが、ASCII版にある表記を、『マイクロコンピュータのプログラミング』版で削除したというのは考えにくいと思われます。『マイクロコンピュータのプログラミング』の出版が昭和53年(=1978年)ですが、原稿を書いていた時期は、その前でしょう。最初はリリース日付を入れていなかったものの、どこかのタイミングで入れるようになり、それがASCII掲載版になったのではないかと想像します。

 

上述した箇所だけではなく、プログラム本体を見ても、『マイクロコンピュータのプログラミング』版とASCII版は、違いがあります。東大版が最終的にどうなったのかは不明ですが、何かしら改良を加え続けていたのだろうと思います。

 

そもそも東大版は、オリジナルのPalo Alto Tiny BASICのオブジェクトを逆アセンブルしているということです。最初の段階では、DDJに発表されたものと同一だったはずです。DDJに掲載されているアセンブラソースと比較すれば、どの辺りを変更しているかが分かるのではないかと思います。

 

2026-07-08

Palo Alto Tiny BASICのバリエーション

まだマイコンと呼ばれていた時代に様々なTiny BASICが存在しました。COMPUTOPIAの1977年10月号の「"Tiny BASIC"のすすめ(2)」という記事の中には「表3 各種Tiny BASICの言語仕様・性能比較表(東京大学理学部 小野芳彦氏、同学石田晴久助教授の調査による)」という一覧表があります。

 

これらのTiny BASICの中で人気があったのが何だったのか不明ですが、個人的にはPalo Alto Tiny BASICに最も馴染みがあります。今さらTiny BASICを必要とする時代ではありませんが、内部構造を学ぶのは、技術的な興味があります。基礎的調査として、Palo Alto Tiny BASICのバリエーションを調べてみました。

 

  • Palo Alto Tiny BASIC VERSION 1.0 (Dr. Dobb's Journal, Vol. 1, No. 5, May. 1976)
  • Errata/additions to Palo Alto Tiny BASIC (Dr. Dobb's Journal, Vol. 1, No. 6, June/July, 1976)
  • TINY BASIC FOR INTEL 8080 VERSION 2.0 BY LI-CHEN WANG, MODIFIED AND TRANSLATED TO INTEL MENMONICS BY ROGER RAUSKLOB 10 OCTOBER 1976 (INTERFACE AGE, Dec. 1976)
  • Palo Alto Tiny BASIC Version Three (PCC'S REFERENCE Book of PERSONAL and HOME COMPUTING, Jul. 1977)
  • PALO ALTO TINY BASIC FOR SDK-80 VERSION (1977/03/23, ONO) (エンサイクロペディア・アスキー Vol. 1)
  • PALO ALTO TINY BASIC FOR TK-80用バージョン (1977/03/23, ONO) (エンサイクロペディア・アスキー Vol. 1)
  • PALO ALTO TINY BASIC (『マイクロコンピュータのプログラミング』石田晴久編)

 

エンサイクロペディア・アスキーなどに掲載されているのは「東大版」と呼ばれており、Palo Alto Tiny BASICのバリエーションです。ただし、記事にも書かれていますが、DDJを参照して変更を加えたのではなく、「オブジェクトを独自に逆アセンブルし、変更を加えた」ものとのことです。

 

インターネットが存在しない時代ですから、発表媒体は雑誌などに限られると思います。想像となりますが、Palo Alto Tiny BASICを個人的に修正したり拡張したりした事例は、少なくないと思います。さらに、オリジナルはi8080版ですが、x86など他のCPUに移植したものも存在するのではないかと思います。技術的な関心として、取り組んでみたいと考えています。

2026-07-07

「マイクロPlan」というプログラミング言語

共立出版から1978年に出版された『マイクロコンピュータのプログラミング』(石田晴久編)という書籍が手元にあります。昭和57年6月12日付のレシートが挟んでありました。この中に「マイクロPlanのプロセッサ」(戸村哲)という記事があり、以下のように書かれています。

マイクロPlanはその名前のとおり、ミニコン用のミニ言語であるPlan系のマイクロ言語である。

 

「皆さんもよくご存じのPlan系言語」という書き方ですが、ミニコン用のミニ言語である「Plan」というのが全くわかりません。例示として掲載されている「図2 8-Queenのプログラム」を見ると、Pascal風だと感じました。しかし「Pascal系」ではなくて「Plan系」だというのですから、Pascalの流れをくんでいないのでしょう。

 

数年前であれば「Google検索」をしたところですが、今は「Geminiとの対話」の時代です。Geminiに問いかけてみましたが、全く知らないと言われてしまいました。ハルシネーションで適当な話をでっちあげることもなく、完全にギブアップしています。

 

先ほどの記事の参考文献には「武市正人:ミニ言語のミニ・コンパイラ、bit、1974年8月号~12月号」とあります。bitが廃刊になって久しいですが、図書館で閲覧できるところもあるでしょう。機会をみつけて、読んでみようと思います。 

2026-07-04

白いウィンドウ

ネットで「Windows 10/11で起動時に白いウィンドウが出る不具合、原因はChromeかもしれない」という記事を目にしました。この記事と同じような「白いウィンドウ」が最近出るようになったので、これは何だろうかと思っていたところです。

 

ただし記事では「起動直後」に表示されるとありますが、私の場合「画面ロック」を解除すると表示されます。

 

このような現象が現れているのは自分だけなのだろうか、解決方法はないだろうかと、Googleで検索してみました。しかし適切なキーワードが思いつかず、困っていたところです。「白いウィンドウ」というキーワードだと、全く関係ない記事がヒットしてしまうので、この現象をいったい何と表現するのだろうと悩んでいました。

 

現象は確認されているようなので、そのうち修正されるのを期待しています。 

2026-07-03

TW5においてプラグインが動作しない問題が解決した

TW5.4.0に更新したらプラグイン「a simple calendar macro」が動作しなくなった問題が解決しました。自前で調査するつもりでしたが、JavaScriptのロジックを解析した経験がないので、Geminiにデバッグ方法を教えてもらうつもりでした。

 

Geminiと対話していたら、Geminiからプラグインのソース一式を見せてくれと要求されました。TW5のファイルからJSON形式でエクスポートし、Geminiにアップロードしたら、問題の原因を突き止め、解決方法を提示してくれました。解決するには「<<calendar>>」と記述していた箇所を「<<calendar state:"$:/state/sidebar/my-calendar">>」のようにすることでした。Geminiの指示どおりに書き換えたら、無事に動作しました。自分で解析しなくて済みました。

 

TW5本体かプラグインのいずれかのロジックに何か問題があるのだろうと思っていたので、自分でデバックするしかないと思っていましたが、その必要はありませんでした。TW5.4.0がリリースされ、カレンダープラグインが動作しないことが明らかになったので、手元にある数多くのTW5ファイルはTW5.3.8のまま更新しないで止めていました。しかし、若干記述を変更する必要があるものの、TW5.4.0に更新できます。 

TW5.4.0に更新したらプラグインの動作がおかしい

TiddlyWiki5の5.4.0がリリースされました。直前のバージョンは5.3.8でした。もう随分前からTW5を利用しています。あまり凝った使い方はできていませんが、いろいろな目的のために便利に利用しています。

 

何かのために新しくTW5ファイルを作る際は、プラグイン「Calendar - a simple calendar macro」を入れています。シンプルと銘打っているだけあって、カレンダーの特定の日をクリックすると、その日付のTiddlerが開くだけです。ところが、TW5.4.0に更新したら、このプラグインの動作がおかしくなりました。

 

具体的には、カレンダーで表示されている月の前後に移動できなくなったのです。「<」や「>」で前後の月へ、「≪」や「≫」で前後の年へ移動できるはずなのですが、まったく反応しません。TW5.3.8なら問題ないのです。このプラグインはタグ「$:/tags/SideBar」を指定したTiddlerで利用しています。サイドバーに表示されているカレンダーでは不具合がありますが、Tiddlerを単独で表示させると、問題ないことがわかりました。

 

TW5.4.0は、過去との互換性を断ち切ったところがあるようです。何が原因なのか不明ですが、ほんのちょっとした対処をすれば、解決できるかもしれません。挑戦してみようという気はあるのですが、TW5はJavaScriptを駆使して作られています。問題を突き止めるために、何をどうしたら良いのかも、よくわからない状態です。

 

Geminiに相談したら、デバッグ手法をアドバイスしてもらえるでしょうか。 

「便利なツールを享受しつつ依存しすぎない生活」と「喉元過ぎれば熱さを忘れる」

「モバイルSuica」復旧後も続く混乱…「物理カード最強説」再浮上 今さら聞けない自衛策を解説」というWeb上の情報によると、通信障害が原因で様々なトラブルが発生したとのことです。この問題で影響を被ったのは、それなりにいたとしても、鉄道利用者の一部だと思います。鉄道系ICカードが全て使えなくなったのではないし、物理カードのSuicaなら影響を被りませんでした。

 

今回の問題は、あるサービスを利用するということは、それに依存しているのだという側面を露わにしました。スマホが普及し、過去に存在した物理カードを代替するスマホアプリが増えています。所有している物理カードを使うのを止めて、何でもスマホアプリに置き換えてしまえば、「スマホで何でもできるようになった。便利になった」という側面があることは否定しません。

 

スマホに何でも集中させることのメリットばかり強調されますが、デメリットを考えないのは片手落ちだと思います。スマホを落としてしまうこともあるでしょうし、盗難に遭うこともあるでしょう。それ以外にも様々な障害が考えられますが、どう対処するかを予め考えておくことはリスク管理ではないでしょうか。「卵は一つのカゴに盛るな」という格言もあります。

 

今回のようなトラブルが発生すると、「物理カード最強説」ということが言われたりしますが、「喉元過ぎれば熱さを忘れる」も忘れないで欲しいと思います。