chevron_left

メインカテゴリーを選択しなおす

cancel
Balcon
フォロー
住所
未設定
出身
未設定
ブログ村参加

2022/05/16

  • PiDP-11を使う その21 小さな機械語ローダの巻

    今回は、機械語ローダについてです。機械語ローダとは、紙テープに打たれたプログラムをメモリに書き込むプログラムです。古いコンピュータは、搭載メモリが少ないため、OSなしのベアメタルで運用されていました。有名なところでは、世界で最初のプログラム内蔵式コンピュータであるEDSACのイニシャル・プログラム・ローダや、東大のパラメトロん計算機のPC1の和田英一さんのプログラムなどがあります。木村泉先生追悼文集別冊3の最後尾のセクションは、小さなローダについてです。作者は、当時、木村先生の研究室に在籍した久野靖氏と思います、この文集には、久野さんが2名関係しているので、確定できません)こんな感じでOHPが3枚掲載されています。このプログラムは、前回紹介したローダ語で書かれているので、これをメモリに格納するには、メモリ...PiDP-11を使うその21小さな機械語ローダの巻

  • PiDP-11を使う その20 一世風靡した BASICの巻

    記念すべき20回目になりました。今回は、Beginner'sAll-purposeSymbolicInstructionCode(BASIC)をに挑戦します。BASICとは、1964年に(第1回目の東京オリンピックの年)アメリカのダートマス大学(アイビー・リーグのメンバーで名門大学)でケメニーとカーツが開発したプログラミング言語です。1975年にマイクロソフトのビル・ゲーツとポール・アレンがインテルの8080マイクロプロセッサ(ALTAIR8800)用に移植してから、一世を風靡したのです。日本でも、多くのパーソナル・コンピュータに移植されて、1970年代後半から、1980年代前半の当時のBASICは、現在のOSの役割も担っていて、ファイルの管理、周辺機器の管理、プログラムのロード、保存なども、全てBASI...PiDP-11を使うその20一世風靡したBASICの巻

  • PiDP-11を使う その19 ブートストラップ・ローダの巻

    今回は、PDP-11のブートストラップについて解説します。そもそも、ブートストラップってなんでしょう。これです。ブーツの履き口についているリボン状のぶつです。ウエスタンスタイルのブーツでは、こんなのもあります。ブーツを履くとき、まず掴んで、履き口が動かないようにするものですね。Wikipediaによれば、「自分でブートストラップを引っ張って自分を引っ張り上げる(pulloneselfupbyone'sbootstraps)」という表現は19世紀に、不可能な動作の喩えとして存在した。」とのことでした。これが可能ならば、キリスト様のように、水の上も歩けますね。「コンピュータ、ソフトなければ、ただの箱」という言葉がありますが、コンピュータにソフトウエア(プログラム)ロードするには、悩ましい問題があります。電源を...PiDP-11を使うその19ブートストラップ・ローダの巻

  • PiDP-11を使う その18 紙テープを読むの巻

    紙テープを読むと言っても、アニメに出てくる鼻の大きな博士のことではありません。今回は、高速紙テープ・リーダ/パンチ装置の読み込みプログラムについて解説いたします。コントロール装置であるPC11のマニュアルに(http://www.bitsavers.org/pdf/dec/unibus/PC11_Reader-Punch_Manual.pdf)よれば、読み取りプログラムは以下の通りです。ーほぼ流れは、前回ご紹介したパンチのときと同じですが、リーダを起動する信号を送るINC命令を始めに発行してから、CSRを読みに行くところが異なっています。2では、紙テープを読むプログラムを書いてみましょう。紙テープの1フレームを読み込んで、8進数で、書き出して、対応するアスキーコードを打った後、改行するプログラムです。前回...PiDP-11を使うその18紙テープを読むの巻

  • PiDP-11を使う その17 紙テープに穴を開けるの巻

    では実際に、紙テープパンチ装置を使うプログラムを解説します。紙テープ・リーダ/パンチ装置(PC05)は、やはり、UNIBUSに接続されていて、メモリと同じようにアクセスします。PC05とUNIBUSを繋ぐにはPC11というコントロール装置が必要で、ソフトウェア的にはPC11を操作して、テープの読み書きをします。チューリング・マシンみたいでカッコいいですね。まず、パンチ装置の方ですが、CSRの番地は、177554番地、バッファは177556番地です。DECのマニュアル(http://www.bitsavers.org/pdf/dec/unibus/PC11_Reader-Punch_Manual.pdf)から引用します。制御用レジスタ(CSR)の番地は177554番地、バッファは、177556番地です。テレ...PiDP-11を使うその17紙テープに穴を開けるの巻

  • PiDP-11を使う その16 紙テープと高速紙テープ・リーダ/パンチ装置の巻

    今の若い人たちは、黒電話を見たことがない人が多いと思います。ましてや、中央のダイヤルを回して、電話番号を入力することを知らない人もいるかもしれません。黒電話の時代には、鑽孔(紙)テープというもので、コンピュータとデータをやり取りしていました。写真の左が5単位の電信用、右側がコンピュータで使われた8単位のテープです。鑽孔テープとはどんなものかというと、上質な紙でできたテープで、厚さは0.1mm(0.00394インチ)で、結構、腰がありました。テープの幅は25.4mm(1インチ)である。穴と穴の間隔はどちらの方向でも2.54mm(0.1インチ)です。データ用の穴の直径は1.83mm(0.072インチ)、テープを確実に送るように、フィード用の穴の直径は1.17mm(0.046インチ)穴が未使用のテープでも空いて...PiDP-11を使うその16紙テープと高速紙テープ・リーダ/パンチ装置の巻

  • PiDP-11を使う その15 5匹のカタツムリ サブルーチン版の巻

    ここまで来ると、プログラムを開発する準備が出来ましたが、なぜ、21世紀の今、PDP-11のような古いコンピュータを知ることが大切か、少し考えてみました。現在の主流は、X86アーキテクチャの流れを引くINTELCOREシリーズだと思われます。AMDの互換プロセッサもこの範疇に含まれるます。元をたどれば、インテルの8086マイクロプロセッサの命令に、その時々の必要性に応じる形で、拡張に拡張を重ねて、古い温泉旅館の新館、別館、別棟の大浴場のような初見では、何が、どこにあってどのように使うのか大変見通しの悪い構造になってしまいました。新たに、コンピュータアーキテクチャを学ぶ人は、どこから手をつければ良いのか、なぜこうなっているのか、迷える仔羊のようになっているのではないでしょうか。本当に同情いたします。以前に紹介...PiDP-11を使うその155匹のカタツムリサブルーチン版の巻

  • PiDP−11を使う その14 アドレッシング・モードの続きとサプルーチン・コール

    いきなりですが、PDP11のアドレシング・モードの説明のOHPです。PDP−11には八つのアドレアシングモードがあります。すでに、0n、27、37と解説しましたが、今回はもう少し系統的に説明します。いちどに、説明すると少しややこしいかもしれませんが、お付き合いお願いします。まず、間接モードです。これは、オペランドの指定する場所を、アドレスとして解釈するモードです。オペランドの高位3ビットで、アドレッシングを区別しますが、この一番下位の3ビット目が0を含む場合、すなわち、アドレシング指定が偶数の場合は、直接アドレッシング、奇数の場合(3ビット目が1)が、間接アドレシング・モードです。例えば、オペランドが0n(nは8進数で、0から7のレジスタを指定)の時は、レジスタnの内容が、オペレータの作用対象になります(...PiDP−11を使うその14アドレッシング・モードの続きとサプルーチン・コール

  • PiDP-11を使う その13 5匹のカタツムリの巻

    いよいよ、プログラムらしいプログラムに進みます。今回はカタツムリに見立てた@を5つターミナル・テレタイプに出力するプログラムを書いてみます。前回のテレタイプ出力命令に加えて、分岐命令を使ったループを見ていきましょう。プログラムの構造は次の通りです。1.繰り返しの回数5をR0レジスタに入れる。010200,0000052.テレタイプの状態レジスタをチェックします。132737,000200,1775643.テレタイプが出力可能(READY)になると上の命令を実行すると、Zフラグがリセットされます。それまで、ループします。XXは、戻るステップ数(オフセット)です。あとで計算します。0017XX、4.テレタイプに、@のアスキーコード100(8進数)を出力します。112737,000100,1775665.カウン...PiDP-11を使うその135匹のカタツムリの巻

  • PiDP-11 を使う その12 ターミナルテレタイプの入出力

    PDPー11は入出力命令を持ちません。周辺機器は、全て、メモリーの特定番地にマップされているので、メモリに、書き込んだり、読み取ったりすることによって、入出力を行います。メモリも、周辺機器もUNIBUSという同一バスに接続されています。メモリに比べて、反応速度が遅い周辺機器とデータをやり取りする場合の速度差をどのように調整するかというと、割り込みを使う場合と、制御レジスタを介する場合があります。オペレーティングシステムを介して入出力をする場合は割り込みを使っています。PDPー11は、初めて、UNIXを開発した時に使われた機械なので、割り込みは、もちろん可能ですが、今回はBareMetalで使うので、割り込みではなく、制御レジスタを使って、入出力を行います。入出力装置は、160000番地から177776番地...PiDP-11を使うその12ターミナルテレタイプの入出力

  • PiDP-11を使う その11 アドレッシングモードと分岐命令の巻

    あけまして、おめでとうございます。天変地異の大地震や、飛行機などの事故があり、素直に喜べない年明けになってしまいましたが、今回は、PDP−11のアドレッシング・モードと分岐命令について記します。PDP-11が、良いコンピュータだったと言われる一つの理由は、番地指定様式が、よく考えた設計になっていたということがあると思われます。PDP-11の番地指定方法は8種類あり、八つの内部レジスタと組合せで、64パターンの指定方法がありますが、いきなり、64パターンを理解するのは大変です。木村泉先生はとりあえず、3つの番地指定方式を覚えてくださいと書いています。主に、オペランドのところに、出てきますが、初めての機械語で出てきた37以外に、27、0nの方式を使えるようにしましょう。27ですが、イミーディエイト(immed...PiDP-11を使うその11アドレッシングモードと分岐命令の巻

  • PiDP-11を使う その10 機械語命令の観光地図の巻

    今年(2023年)最後の更新になります。では、はじめます。観光地に行くと、ホテルや、観光案内所で、観光地図を配っています。詳しいGoogleの地図よりもかえって、分かりやすかったりします。木村泉先生のOHPからの引用ですが、PDPー11の機械語命令形このようになっていたんだと認識を新たにしました。Balconが、勝手に信号機の絵と色をつけています。信号機は通常、“青、黄、赤“の順で並んでいます。この表にある数字を、この順に並べると、機械語の命令になります。例えばADD命令は青が0黄色が6のところにあるので、06が機械語命令の、オペレータ(オペコード)です。同様にSUBは、青が、1、黄色が6なので、16がオペコードになります。赤はどうなるかというと、オペランドを二つ取る命令は、8進二桁で済むので、赤は関係あ...PiDP-11を使うその10機械語命令の観光地図の巻

  • PiDP-11を使う その9 引き算と負の整数の表現の巻

    前回、機械語で、足し算を紹介しました。今回は引き算の紹介です。引き算はニーモニックでSUB(struct)です。機械語では16****で、機械語命令の後の後の番地のデータから、機械語の後の番データを引き算して、機械語の後の後の番地にに格納しする場合は、163737と書きます。前回出てきたオペランドという言葉をを使うと、destination<-destination-sourceの操作をします。sourceは第一オペランド、destinationは第二オペランドに当たります。では実際に2−4の計算してみます。コンソールパネルで操作すると長くなるので、ターミナルで見てみます。コンソール・パネルで見るとこんな感じに。最上位の15ビットが1だと負の数です。引き算の結果が負の数になると、PDP-11では負の整数は...PiDP-11を使うその9引き算と負の整数の表現の巻

  • PiDP-11 を使う その8 初めての機械語の巻

    初めにお話すると、Balconは、PDP-11のFORTRANとアッセンブラのプログラミングはしたことありますが、機械語は使ったことはありません。ではなぜ機械語なのかというと、よく言及されるPDP-11のアーキテクチャは16ビットマシンの完成形だとか、命令の直交性だとかを味わえるのは、やはり機械語で見ていくのが、一番じゃないかと思われるからです。当時は、実験で一杯、一杯だったので、プログラミングにしても、PDP-11の凄さを味わう余裕はありませんでした。世界で初めてのデータを取るということで、測定機器の設計、制作、PDP-11との接続、プログラムの開発と、ハンダ付け、配線のラッピング、プログラムのデバック、実験データの取り込み全てに関わっていました。ラッピングとは、裸にみむいた、テフロン線を、生花の剣山よ...PiDP-11を使うその8初めての機械語の巻

  • PiDP-11を使う その7 ターミナルを繋ぐの巻

    では、PiDP-11に、ターミナルを接続しましょう。オペレータ・コーンソールを持っていない方も、ターミナル接続で、ラズペリーパイにインストールしたPiDP-11を試すことができるので、マニュアルの通りインストールして、繋いでみてください。ターミナルについての小歴史PDP-11の時代の初期のミニコンピュータの入出力装置といえば、テレタイプという時代がありました。テレタイプと言っても、見たこともない人がほとんどでしょう。これです。ドン。これがテレタイプの代表、その名もテレタイプ社製ASR-33です。電動タイプライタに紙テープ読み取り装置と、紙テープ鑽孔装置(紙テープに穴を開ける装置)がついたものです。21世紀の現在でも、端末をttyと略すのは、テレタイプ時代の名残です。紙テープとは、こんな感じのもので、穴の位...PiDP-11を使うその7ターミナルを繋ぐの巻

  • PiDP-11を使う その6 コンソール・オペレーションの巻

    いよいよ、コンソール・オペレーションに入ります。正面の存在感のあるスイッチ群は左側の0から21の番号がついていて、データをセットするとために使用します。3個づつが一纏めになって、8進数の一桁を表しています。8進7桁と1ビットを入力できます。例えば8進数4桁の1234は上のようにセットします。各スイッチは4、2、1と重みがついているので、3個づつのスイッチの上にセットされているものの重みを合計して0から7の数を表すことができます。次にコントロールスイッチ群の説明をします。これらは、右手で操作しやすいように右端に配置されています。左から説明すると、白いスイッチは、ランプテストスイッチで、押し上げると、すべてのランプが点灯します。当時のCPUはインジケータに豆電球を使っていました。これが、時々切れて点灯しないこ...PiDP-11を使うその6コンソール・オペレーションの巻

  • PiDP-11を使う その5 表の顔ーコンソールの巻

    いよいよ、オペレータコンソールです。これを操作したいために、わざわざPiDP-11を組み立てました。フロントパネル全体はこんな感じです。見渡すと、表示部は三段に分かれて、その下に30個のスイッチ、右横に二つのノブがついています。右横の切り替えノブはメモリとバスの切り替えスイッチで、表示ランプがついていますが、Baremetalで使う分にはConsPHY(コンソール・物理メモリ)とDataPathが点灯するようにセットすれば、問題ありません。表示ランプは三段に分かれていて、上から、CPUのステータス表示、アドレス表示、データ表示に分かれています。CPUのステータス表示は、左から、エラー関係(メモリのパリティ不一致、アドレスエラー)で、これらは、通常点灯しません。次のRUNランプはCPUが命令実行中に点灯しま...PiDP-11を使うその5表の顔ーコンソールの巻

  • PiDP-11 を使う その4 -裏の顔 表の顔の巻-

    いよいよ各論に入ります。PDP-11の裏の顔と言っても、怪しいものではありません。一目で見ることができない顔ということです。表の顔をオペレータ・コンソールとすると、裏の顔は、PDP−11の最上層の構造とでもいうことでしでしょうか。PDPー11の構造の特徴をよくまとめた図がありました。木村泉先生が東京工業大学のプログラミングの講義に使ったOHP(Powerpointない時代のプレゼン手段)です。とても簡潔に纏まっているので拝借させていただきます。木村先生は、1980年代に共立出版のbitという雑誌に寄稿していて、Balconも毎月楽しみに愛読していました。残念ながら、お弟子さん達編集の追悼文集からの引用になります。木村先生のOHPに若干の改変をさせてもらいました。PDPの記憶領域は、八個の16ビットのレジス...PiDP-11を使うその4-裏の顔表の顔の巻-

  • PiDP-11を使う -Bare Metal で行こう- その3

    ベアメタルというと、航空機業界では、塗装なしで、ジュラルミンの地肌剥き出しの運航をすることを指しますが、コンピュータの世界では、OSなしで、コンピュータを使う意味で使われます。PCでは、WindowsOSをインストールしないで使う人は、ほとんどいないでしょうが、組み込み用途のコンピュータ(たとえば、車載システムとかは、ベアメタルがほとんどではないでしようか。Wikipediaでベアメタルを検索すると、ベアメタル(英:baremetal)とは、計算機科学では、オペレーティングシステム(OS)を介さずに、ロジックハードウェア上で直接命令を実行するコンピュータを指す。ベアマシン(英:baremachine)とも呼ばれる。bareとは「裸」のことで、OS等の「衣」を纏っていない、という意味。<中略>PDP-11な...PiDP-11を使う-BareMetalで行こう-その3

  • PiDP-11を使う その2

    PiDP-11と仮想TU-56磁気テープ装置です。オンラインにしてアクセスするとクルクル回わります。データの読み書きもできます。こういうギミックがあると、何だか楽しいです。実際、これらの機器は、19インチ標準ラックにマウントされていました。こんな感じ。ドン。我が家に19インチ(約50cm)幅で、高さ6フィートのラックなんか置いたら、天の声の雷が落ちることになるので、PiDP−11は、PDPー11の60%の大きさに縮小されています。したがって、机の上に置いて操作できるぐらいの大きさになります。実はこれ、本物よりも操作性は上じゃないかと思います。前振りは、このぐらいにして、PiDP−11のシステム構成についてお話すると、PiDP−11は、ラズベリーパイという、シングルボードコンピュータの上に構成されています。...PiDP-11を使うその2

  • 久しぶりの更新

    新しいブツを手に入れましたので、しばらくぶりに更新します。天文ネタからからは、しばらく離れるのでご了承ください。ブツとはこれです。これは、21世紀に蘇ったPDP-11です。PDP-11といっても何のことだかわからないという方がほとんどだと思いますが、簡単に説明すると、1970〜1990年ごろまで、一世を風靡したミニコンピューターで、この私も、大学院生の頃実験でお世話になりました。当時大ベストセラーで、理科系の学生だったら、どこかで、お目にかかったことがあると思います。プログラムもゴリゴリ書きました。21世紀になって、忘れ去られていたブツですが、これを再生してキットで販売している方がいます。詳細は以下リンクをPiDP-11 obsolescence一目見た途端に、「懐かしい〜欲しい〜」となって予約してしまい...久しぶりの更新

ブログリーダー」を活用して、Balconさんをフォローしませんか?

ハンドル名
Balconさん
ブログタイトル
蒼天在眼
フォロー
蒼天在眼

にほんブログ村 カテゴリー一覧

商用