その他 |
|
パソコンや JavaScript にまつわるよしなし事をそこはかとなく書き綴ったページです。 |
|
JavaScript 談義 サイトホーム 履歴転進 |
…と言うほど主体的には弄ってないです。自作さえ考えてましたが…
(ホントにハンダゴテ持っての「自作」である)とにかく形になったモノとしてはMZ-40Kとか、ワンボードと呼ばれるオモチャからです。あんまりチャチなんで購入は見合わせ、店頭で突ついて遊んでオシマイです。ビープ音ぐらいは鳴らせたかな? GMC-4(ページ下半)
次の遭遇はボンクラ工業高校内で。教材用に先生が出したのは、スイッチ四つ入力だけの基板二段重ねのモノ。記憶媒体は「紙テープ」。怪獣特撮みたい。プログラムを投げて遊んでいました。
その時に習ったのは FORTRUN 。楽しかったが誰も理解し得ず、先生も決まり文句しか教えてくれませんでした。動かす実習をどこかの工場でやりましたが、私は就職試験面接で行けなかったので実力は未知数でした。
(まだ FORTRUN そのモノは現場で使われてるのかねぇ?)
さて卒業後、絵描き方面になって縁遠くなったある日、「こいば買わんかッパ?」と(ツリー構造を理解出来ないクセにコンピュータ会社に入った)妖怪が訪ねて来て、パソピアとかゆーのを入手。
一緒に付いてた操典を紐解いて BASIC 東芝方言を習得…のつもりでした。が、何しろ先達←絶対勉強してねぇ。が「オマィ、よー判るやっかッパ!」と頼りない。
でも日の丸描いたりするだけで終了です。女の子の絵一枚描くのに多数の反比例グラフ(曲線)と無為な時間を費やしただけの様な。
その内、同人関係者がウチへ98系を持ち込み、単なるゲーム機を経て現在の使われ様になっています。あーツマラン遍歴。
パソコンなんてモノは1980年代から台頭して来ました。それ以前にも無かった訳ではないのですが、市井の一般人がカチャカチャ鳴らすシチュエーションはなかったという事です。
コンピュータというモノは何や得体の知れないバケモノと同義語でした。マンガ・アニメ・特撮に出て来るか、リアルの白亜の塔の中にしか無かったのです。穴空き紙テープ読んだりとか。
実質、一般人の手始めは例のMZ-40Kとか、あの手のオモチャでないかと…私は大変失望して、そちら方面への道を捨てた程でした。
でもあれらってド基本を習得するのに良かったんだなと後で気付きました。文字通り捨てたもんじゃなかった訳です。
といっても現実は、やはりだからどうした的な事しか出来ないオモチャだったワケで。
(どうしても誉められない)
ド古い書籍が見つかった事だし、要らん記事削減キャンペーン中なので、「コンピュータの基礎」と銘打って大昔の知識を開示しようというのがここの魂胆です。それがまた要らん記事にならんきゃイイが。
書籍の初版は何と昭和三十九年東京オリムピツクの年!ホントに生まれてねぇ。題してNHKブックス「電子頭脳」!!!葵の紋所を突き付けられた感覚だす。
内容は、現在どこまで出来るか、記憶回路の仕組み、ここまで人間に近付いてますよ…今でも通用する様な、それってさほど進歩してない証しじゃねぇか、という感覚で。
でもちゃんとビットの事なんかを黒丸並べて懇切丁寧に説明してるから前向きです。で、二進法の計算手順についてズラズラと…まぁ、補数とかいう足し算で引き算とか、そういう内部的な話まで載っけてて多少食傷気味になったりします。
さてここで取り上げたいのはプログラムの事です。大昔のプログラム。何か Symbolic Input Program 、略して SIP とかいうのを紹介されていますが、ネット上では確認出来ませんでした。
またそれが恐ろしい姿なんです。いわゆるアセンブリとかありますが、あれよりスゴイ。もっと機械語ベッタリなんです。
数字 | 記号 | 意味 |
0 | X | 払え clear (X) |
1 | A | 足せ Add |
2 | B | 引け suBtract |
3 | T | しまえ sTore |
4 | J | 飛べ Jump |
5 | JM | 負なら飛べ Jump Minus |
6 | R | 読め Read |
7 | O | 出せ Out |
3 + 4 - 2 という計算をしてみませう。まず11番地に3、12番地に4、13番地に2、と書込みます。紙テープで読み込ませるんですよ。
手順は:
「11番地を読め」「12番地を読め」「13番地を読め」
「アキュムレーター(計算する所)を払え」
「11番地の数を足せ」「12番地の数を足せ」「13番地の数を引け」
「14番地へしまえ」「14番地の数を出せ」「9番地へ飛べ」
つまり一個のアキュムレーター(計算する所)に数字を入れたり出したりしているだけなのです。現在のホントのコンピュータでも、こんな事を繰返しているだけなのですよ、一秒間に数千万回以上。
こういうのを一番地式命令法式というそうです。あ、9番地ってスタート地点と思って下さい。さて、これをさっきの SIP で表現すると:
0 R 11 1 R 12 2 R 13 3 X ∼ 4 A 11 5 A 12 6 B 13 7 T 14 8 O 14 9 J 9味気ない…。左列の数字は行番号(手順番号)です。見えてる数字は計算する数値ではなくてアドレス番号なんですね。いかに低水準、すなわちコンピュータに近い所でやってるか判ろうモノです。
U = 11. V = 12. W = 13. Y = 14. R / U. R / V. R / W. X / ∼. A / U. A / V. B / W. T / Y. O / Y. P)J / P.露骨に手順書です。U, V, W, Y が変数でしょう。P) とはスタート地点(9番地)の事かな?Pで始めて最後にPに飛べ、ですので「オシマイ」です。
そこで多少高水準な言語が登場する訳です。例えば「アルゴル」…昔の書籍ですから。書いてみると次の通り:
begin integer U, V, W, Y; READ(U); READ(V); READ(W); Y := U + V - W; PRINT(Y) endだそうです。なんか見慣れた感じ。やから、決められた一定の手順を一言で言える様になった訳です。
ちなみに JavaScript で似た様な事をしてみます。
function keisan() { var u = eval(document.FM.HK0.value); var v = eval(document.FM.HK1.value); var w = eval(document.FM.HK2.value); // var y = u + v - w; document.FM.HK3.value = y; }対比の為にワザと引数を使わない書き方をしてるので多少もっさりしてますが…更に単純になってます。単に足し算引き算して答えを表示してるだけ。
それでも低水準言語は生き続けています。なぜかというと、コンピュータさんが翻訳するという余計な手間が省けて作業効率が飛躍的に上がるからです。
(なぜ「さん」付け?)
まず「GMC-4」とは何かと言うと、「学研・大人の科学vol.24」のフロクで出て来た4ビットマイコンです。私たちの世代にはムズムズするアイテムです。まーもっとも、ワタクシはこの兄弟分を見て興味を無くしたやうな気もするのですが。
さて、とは言っても4ビットCPUは既に存在しないので、8ビットの中で架空的に作ってるそうです。そんな能書きはイイ、動けば。
醍醐味はこの厄介煩雑なるハンドアセンブル。手打込みです。しかも一番地ずつ。地に足の付いた作業、第一次産業(手植え)的なプログラミング「作業」です。
れんしう まーナマイキな
※ 0123456789ABCDEF という16進並びを理解されている前提で進む※
スイッチを入れるとデコーダ(数字表示器)に「F」と表示、これは元々「棚・00番地」に入ってる空き箱の詰め物ようなモノで(余計判らん例え)、まー「カラ」である印だと覚えときましょう。
試しに「E」と押すとデコーダ表示が「E」になります。このままでは仮決めなので、INCRを押して流すと(←やや表現変です)「棚・00番地」の中身が詰め物から「E」に変えられます…て、付属の書籍に書いてるね、完璧に。('A`)
番地 命令 00 E (Eを押してINCR) 01 7 (7を押してINCR)これが私の最初のオリジナルプログラム。動かすには RESET, 1, RUN と押します。でも単に轟音を鳴らすだけですし、止まりません。※RESETを押せば止められるよ
02 F (JUMP命令「〜番地へ飛ばす」) 03 0 (番地番号その1) 04 2 (番地番号その2)「02番地」以降を付け足しました。これで一回轟音が鳴った後、無限ループに突入。「02番地」から「02番地(同じ場所)へ飛ばす」訳ですから、その場でジタバタしてるのがお判りかと思います。ハタから見てると止まってる訳です。
00 A TIY Yレジスタ(まな板Y)に 01 0 <0> 0を置く 02 8 TIA Aレジスタ(まな板A)に 03 2 <2> 2を置く 04 E CAL 呼ぶぞ命令 05 C TIMR 「待った」 06 E CAL 呼ぶぞ命令 07 7 ENDS 「オシマイ」 08 B AIY Yレジスタに加算 09 1 <1> 1だけ ※F(10進では16)以上になると、フラグ=1 0A F JUMP フラグ1なら飛ばすぞ 0B 0 <0> 0と 0C A <A> Aで0Aへ 0D F JUMP フラグ1なら飛ばすぞ 0E 0 <0> 0と 0F 4 <4> 4で04へ付随書籍とは書き順が違いますが、この方が書きやすかったから。お判りでしょうが、実際の打込みは左から二列目だけです。<〜>は数値を素のまま参照するという意味。