
| https://www.crimson-systems.com | YouTube |
| ENIAC シュミレーター → ENIACシュミレーターA (Programming) | |
| ENIACのシュミレーターは幾つかありますが、 2つのシュミレーターの紹介です。 @kinnla Till Zoppke Java Applet版 Ablstuart Brian L. Stuart go・Tcl/Tk版 Java Applet版は、プログラミングのケーブル配線・スイッチ設定をマウスで行うので、当時のプログラマー疑似体験ができます。 一方 go・Tcl/Tk版は、ケーブル配線・スイッチ設定の操作をファイルに作成し、シュミレーターに渡します。 そういった意味では、現在のプログラムの作成・修正に通じます。 |


ENIACの大砲の弾道計算 https://ieeexplore.ieee.org/document/8540483

![]() |

drawings → https://www.cs.drexel.edu/~bls96/eniac/drawings/


※8つのアキュムレータ1、2、15、16、17、18、19、20に、プリンター(IBMのカードパンチ)が接続されています。
■マウスで、ケーブルの配線・各スィッチを設定し、実行(GOボタン)します。
下記 URLより ENIACシュミレーターのダウンロードができます。
URL → https://zuse-z1.zib.de/simulations/eniac/index.html
●
Javaランタイム環境バージョン1.7(以上)にします。 → f.a.qからダウンロード可

●シュミレータのダウンロードは、excutable jar_file をクリックしします。

●シュミレータのドキュメント

●kinnra → GitHub

●ENIACシュミレーター SKIN

・10進 10桁 符号有り P: プラス M: マイナス (10の補数で加算) ・アキュームレーターは、12個のプログラムコントロールがあり、上段4個は、リピート不可、下段8個がリピート可 ・スィッチで入力/送信用に切替 入力: α β γ δ ε 出力: A S AS |
||||||
![]() |
||||||
アキュームレータ No.3の写真 kondo3d Home https://www.kondo3d.com/eniac/jp.html より ![]() |
||||||
|
||||||
| 高速乗算器 https://commons.wikimedia.org/wiki/File:Eniac-panel.jpg より |
||||||
![]() |
eniac.jarをクリックし、 ENIAC構成画面等の選択を選択します。
![]()

・Simple example: 簡単な例
・Euclidean Algorithm: ユークリッドの互除法
・Fibonacci number: フィボナッチ数
他は、画面サイズを選択し、自分でケーブル配線・スィッチ設定をします。
※使用可能なユニットは、開始ユニット、サイクリングユニット、アキュームレータ、定数送信器のみ
[Simple example] → シュミレーターのデモ画面が表示
写真の人物はアーサー・バークスで、ポータブルコントロールステーションを操作しています。

●Overview window ・・・ 小さなディスプレイで、各々のパネルが見れるよう、画面範囲が設定できます。

予め、ケーブルセッティングがしてあるので、GOボタンで動作が見れます。
計算は、 5回 x 8 + 2 = 42
ACC1に8をセットし、リピート数は 5をセット
ACC2に2をセット

計算結果 42

【 動画 】
| 練習 3回 x 365 + 31 = 1126 | |||
![]() |
![]() |
||
●アキュームレータの内部配線

※各ユニットには、電源SWが有ります。
電源がONになってないと動作しないので、ケーブル配線・スイッチ設定と合わせて確認が必要です。
●Euclidean Algorithmを選択

ACCを4個使用 ACC2 と ACC3を連結 ( 10進20桁 )

定数ユニットに 6 と 9がセット済み

計算結果

※簡単なプログラムなら、ケーブル配線等おもしろいかも知れませんが、複雑なプログラムの場合デバックが大変です。
・各ユニットの電源をON
・アキュームレータの内部配線と終端抵抗器のセット
・各ユニットとトランクの配線
・アキュームレータの、入力SWと出力SWの設定
・リピートが有れば、リピートSWの設定
・サイクリングユニットでステップ毎の確認可
ENIACシュミレーター ( go・Tcl/Tk版 ) → https://www.cs.drexel.edu/~bls96/eniac/simulator.html
Pulse-level simulator of the ENIAC
Brian L. Stuart 教授 → https://www.cs.drexel.edu/~bls96/
■ケーブルの配線・各スィッチの設定を、一連の操作コマンドのファイル(プログラム)に出力し、エミュレータに渡します。
ENIACシュミレータは、ターミナルからコマンド入力、およびグラフィカルサポートも可になっています。
シュミュレータの動作では、goコンパイラー、Tcl/Tkが必要 (画面はWish)

GitHub → https://github.com/blstuart/eniac-simulator

| goコンパイラのインストール → https://go.dev/doc/install |
|||||||||||||||
![]() |
|||||||||||||||
|
ENIACシュミレーター ターミナル(DOS窓)
● programs内のエニアックプログラム

● 操作(コマンド)

● ユニット名

● 記法(一部)

●GitHubのDOCフォルダー内のcmd.tex, ref.tex ![]()

● プログラム example.e
pコマンド: ジャンパーの接続
sコマンド: スィッチの設定

※注釈行は、 1桁目に #
※プログラムは UTF-8 BOM無しであること。
● シュミレーターの実行方法
eniac [プログラム名] → eniac sieve.e

b i で、実行 ・・・ ボタン i (イニシエータ)を押す

・計算結果(アキュームレータの値)は、prコマンドでプリント(IBMパンチカード)できます。
(8つのアキュムレータ1、2、15、16、17、18、19、20のみ)
・シュミレーションでは、ターミナル(DOS窓)に表示されるので、結果の確認、計算途中の値の表示ができます。
※ コマンド q で終了
| 【 グラフィカルサポートの構築 】 |
|||||||||||||||||||||
| @Tcl/Tkのインストール → https://www.activestate.com/platform/supported-languages/tcl/ ( ActiveTcl ) | |||||||||||||||||||||
|
|||||||||||||||||||||
もし、wish ( Windowing Shell) が動作しない場合 → wishのパスを確認![]() windowsの環境変数に C:\ActiveTcl\binを追加 ![]() |
|||||||||||||||||||||
| ● グラフィカルシュミレーターの実行方法 eniac -v vis/eniactk [プログラム名] → eniac -v vis/eniactk test.e
|
|||||||||||||||||||||
ENIACルームが表示されるので、ポータブルコントロールステーションで操作します。 ![]() |
|||||||||||||||||||||
[INIT] ボタンを押して実行
|
|||||||||||||||||||||
| [S1View] 〜 [S5View] で、区画毎 / 全体が見れます。 ![]() |
|||||||||||||||||||||
![]() |
※セクション1〜5を表示する画像 (e1900s1.ppm〜e1900s5.ppm)を加工し、アキュームレータ番号を表示しました。 |
| e1900s1.ppm |
![]() |
e1900s2.ppm |
![]() |
e1900s3.ppm |
![]() |
●1Pluseモードによるデバック方法 |
プログラムに、 s cy.op 1a を記述しておきます。 ![]() |
ポータブルコントロールステーションで、 PLUSE ボタンをクリックして進ませ、アキュームレータの内容が確認できます。 ![]() |
| ●example.e 定数送信器に 123 をセットし、 ACC6に加算(送る) |
![]() |
| 結果 |
![]() |
| ●Adele K. Goldstine の技術マニュアルにある、べき乗表を計算するプログラムのサンプル → ENIACシュミレーターA コマンド p ・・・ 端子間のケーブル接続 コマンド s ・・・ 各スィッチの設定 |
![]() |
●Adele K. Goldstine の技術マニュアルにある、べき乗表を計算するプログラムのサンプル → ENIACシュミレーターA |
※GitHub → programs 内にプログラムがあるので、 これらを試しながらプログラミングの練習をしました。 動画 |
■ Brian L. Stuart → ENIACに関するプログラミング
@ https://ieeexplore.ieee.org/document/8326772
A https://ieeexplore.ieee.org/document/8467000
B https://ieeexplore.ieee.org/document/8540483
Brian Stuart, PhD → https://drexel.edu/news/experts/stuart-brian
【 ENIAC関連文書 】 → https://ftp.arl.army.mil/~mike/comphist/

【 米陸軍 ENIACに関する報告書 1946年 】 → https://ftp.arl.army.mil/~mike/comphist/46eniac-report/index.html


Chapter 1 -- Introduction → https://ftp.arl.army.mil/~mike/comphist/46eniac-report/chap1.htm

| ENIAC 第2世代プログラミング(1948年以降) → https://ftp.arl.army.mil/~mike/comphist/48eniac-coding/index.html | ||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||
|
||||||||||||||||||||||||
【 関連書籍 】
| ■Electronic Numerical Integrator and Computer (ENIAC) ENIAC Operating Manual (操作方法 ) Periscope Film, LLC | ||||||||||
|
||||||||||
| イニシエーティング ユニット |
||||||||||
|
||||||||||
| ■Electronic Numerical Integrator and Computer (ENIAC) ENIAC Technical Manual ( プログラミング手法 ) Periscope Film, LLC | ||||||||||
| Adele K. Goldstineの技術マニュアル | ||||||||||
|
||||||||||
| TABLE OF CONTENTS | ||||||||||
| T. INTRODUCTION 1.1. BRIEF DESCRIPTION OF THE ENIAC 1.2. ELECTRONIC ELEMENTS 1.3. CLASSIFICATION OF ENIAC CIRCUTS: 1.4. PROGRAMMING THE ENIAC 1.5. ECUIPMENT ASSOCIATED WITH THE U. INITIATING UNIT 2.1. STARTING, STOPPING AND INITIAL CLEARING 2.2. READER AND PRINTER PROGRAM CONTROLS ON THE INITATING UNIT 2.3. INITATING PULSE FOR A COMPUTATION 2.4. SELECTIVE CLEAR CONTROLS: 2.5. DEVICES FOR TESTING THE ENIAC V. CYCLING UNIT 3.1. PULSES AND GATES AND SOURCES 3.2. METHODS OF OPERATION 3.3. THE CYCLING UNIT OSILLOSCOPE W. ACCUMULATOR 4.0. GENERAL SUMMARY OF THE ACCUMULATOR 4.1. PROGRAM CONTROLS AND SIGNIFICANT FIGURES AND SELECTIVE CLEAR SWITCHES 4.2. COMMON PROGRAMMING CIRCUTS 4.3. NUMERICAL CIRCUITS 4.4. USE ON ACCUMULATORS FOR FEWER THAN OR MORE THAN TEN DIGITS 4.5. ILLUSTRATIVE PROBLEMS X. HIGH-SPEED MULTIPLIER 5.0. GENERAL SUMMARY 5.1. PROGRAM CONTROLS 5.2. COMMON PROGRAMMING CIRCUTS 5.3. NUMERIAAL CIRCUITS 5.4. INTERRELATION OF THE HIGH-SPEED MULTIPLIER AND ITS ASSOCIATED ACCUMULATORS 5.5. ILLUSTRATIVE PROBLEMS Y. DIVIDER AND SQUARE ROOTER 6.0. GENERAL SUMMARY 6.1. PROGRAM CONTROLS 6.2. COMMON PROGRAMMING CIRCUTS 6.3. NUMERIAAL CIRCUITS 6.4. INTERRELATION OF THE DIVIDER AND SQUARE ROOTER AND ITS ASSOCIATED ACCUMULATORS 6.5. ILLUSTRATIVE PROBLEMS SET-UP Z. FUNCTION TABLE 7.0. GENERAL SUMMARY OF THE FUNCTION TABLE 7.1. PROGRAM CONTROLS 7.2. COMMON PROGRAMMING CIRCUTS 7.3. NUMERIAAL CIRCUITS 7.4. STORAGE OF PROGRAMMING DATA BY MEANS OF THE FUNCTION TABLE 7.5. ILLUSTRATIVE EXAMPLES OF THE OF THE FUNCTION TABLE IN INTERPOLATION [. CONSTANT TRANSMITTER AND IBM READER 8.0. GENERAL SUMMARY OF THE READER AND CONSTANT TRANSMITTER 8.1. PROGRAM CONTROLS OF THE IBM READER 8.2. POLARITY SWITCH AND PLUG BOARD 8.3. PROGRAMMING CIRCUITS OF THE READER 8.4. NUMERIAAL CIRCUITS OF THE READER 8.5. PROGRAM CONTROLS AND PROGRAMMING CIRCUITS OF THE CONSTANT TRANSMITTER 8.6. NUMERIAAL CIRCUITS OF THE CONSTANT TRANSMITTER 8.7. ILLUSTRATIVE PROBLEMS \. PRINTER 9.0. GENERAL SUMMARY OF THE IBM PUNCH AND PRINTER 9.1. PROGRAMMING CIRCUITS OF THE PRINTER AND IBM PUNCH 9.2. IBM GANG PUNCH PLUG BOARD 9.3. NUMERIAAL CIRCUITS OF THE PRINTER AND PUNCH 9.4. UNIT CONNECTED THE PRINTER 9.5. ILLUSTRATIVE PROBLEMS SET-UP ]. MASTER PROGRAMER 10.0. GENERAL SUMMARY 10.1. DECADE ASSOCIATOR SWITCHES 10.2. MASTER PROGRAMER DECADES 10.3. STEPPERS 104. PROGRAMMING THE MASTER PROGRAMER 10.5. USES OF THE MASTER PROGRAMER 10.6. ILLUSTRATIVE PROBLEMS SET-UP XI. SYNCHRONIZING, DIGIT, AND PROGRAM TRANSMISSION SYSTEMS AND SPECIAL EQUIPMENT 11.1. SYNCHRONIZING TRUNK 11.2. DIGIT TRANSMISSION 11.3. PROGRAM TRANSMISSION 11.4. PULSE AMPLIFIRE 11.5. SPECIAL INTERCONNECTION OF UNITS 11.6. POTABLE CONTROL BOX |
||||||||||
![]() |
||||||||||
| |
||||||||||
|
||||||||||
ENIACプログラム → https://www.clps.ugent.be/sites/default/files/talk-slides/UA_CHOC_Lehmer.pdf |
||||||||||
![]() |
||||||||||
| 図1.11 ENIACのプログラミングに相当する基本コンポーネントの接続図 (出典:Eames,Charles and Ray,A Computer Perspective: Background to the Computer Age、Harvard University Press. First Edition 1973; Second Edition 1990. ) |
| ■エニアック / スコット・マッカートニー | |||
![]() |
![]() |
| ■ENIAC神話の崩れた日 / ATANASOFF | |||
![]() |
![]() |
| ■ENIAC ―現代計算技術のフロンティア | モークリーによる処理の分岐(IF文)のアイディア ・・・ マスタープログラマ | ||
![]() |
|
| ■コンピュータの発明 / 能澤 徹 | ENIACのプログラミング | ||
![]() |
![]() |
| ■6人の女性プログラマー / キャシー・クレイマン | オーラル・ヒストリー(oral history): 口述歴史 | ||
![]() |
ENIAC6 6人の女性プログラマー キャスリーン・マクナルティ Kathleen McNulty Mauchly Antonelli フランシス・ビーラス Frances Bilas ルース・リクターマン Ruth Teitelbaum ジーン・ジェニングス Jean Jennings Bartik ベティ・スナイダー Frances Elizabeth Snyder マーリン・ウェスコフ Marlyn Wescoff Meltzer |
![]() |
![]() |
||
| ※COBOL設計、 SORT/MERGE プログラム: Betty Holberton( 旧姓 Snyder)が開発 | |||
| ■Pioneer Programmer / Jean Jennings Bartik | |||
![]() |
アーサー・バークス & ジーン・ジェニングス・バーティク ENIACの女性プログラマ6人の1人 1948年 ENIACをプログラム内蔵方式に改造に携わる BINAC,UNIVACの開発・設計に携わる ![]() |
| Kay Mauchly インタビュー | 微分解析機での弾道計算 左:ケイ | |
![]() |
| 実験公開日 1946年2月15日 ジョンとプレスが、公開実験の前夜、白いピンポン玉を半分に切って表示ランプの先端にかぶせ、誰でも読めるように数字を描いてENIACを化粧直し。 |
||||
|
||||
| ●ENIAC・他コンピュータの写真集 ・・・ ENIACなど複数のコンピュータの写真が沢山載っています。 | |||||
CORE MEMORY ヴィンテージコンピュータの美 / オライリー・ジャパン |
|||||
|
|||||
コンピュータ―写真で見る歴史 / クリスチャン ワースター コンピュータのデザイン・写真集 メインフレームからミニコン・PC等 |
|||||
|
|||||
![]() |
![]() |