https://www.crimson-systems.com YouTube
  
ENIAC シュミレーター
   
ENIACのシュミレーターは幾つかありますが、 2つのシュミレーターの紹介です。

@kinnla Till Zoppke    Java Applet版
Ablstuart Brian L. Stuart  go・Tcl/Tk版


Java Applet版は、プログラミングのケーブル配線・スイッチ設定をマウスで行うので、当時のプログラマー疑似体験ができます。
一方 go・Tcl/Tk版は、ケーブル配線・スイッチ設定の操作をファイルに作成し、シュミレーターに渡します。
そういった意味では、現在のプログラムの作成・修正に通じます。



ENIAC: Electronic Numerical Integrator And Computer




ENIACは、1946年にアメリカのペンシルベニア大学で、
物理学者のジョン・モークリー(John Mauchly)と電気技師のJ・プレスパー・エッカート(J. Presper Eckert)によって設計・開発されました。

 開発者: ジョン・モークリー、ジョン・プレスパー・エッカート
 場所: ペンシルベニア大学ムーア電気工学学校
 目的: 第二次世界大戦中に米陸軍の大砲の弾道計算を行うため
 特徴:
 約1万8000本の真空管を使用し、従来の機械式に比べ驚異的な計算速度を実現
                                                AIより



       アーウィン・ゴールドスタイン伍長が可搬式関数テーブルを操作
















ENIAC 操作マニュアル → http://www.bitsavers.org/pdf/univOfPennsylvania/eniac/ENIAC_Operating_Manual_Jun46.pdf

 




ENIAC レイアウト (ムーア・スクール)







ENIACシュミレーター (Java Applet版)

■マウスで、ケーブルの配線・各スィッチを設定し、実行(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 より

入力SW: α,β,γ,δ,ε   送信SW: A, S, AS     O: 何もしない    リピートSW( 1〜9 )
 


高速乗算器 https://commons.wikimedia.org/wiki/File:Eniac-panel.jpg より







【 ENIACシュミレーターで遊ぶ 】


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になってないと動作しないので、ケーブル配線・スイッチ設定と合わせて確認が必要です。







  【 ユークリッドの互除法 】  2 つの自然数の最大公約数を求める

●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

     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.texを参照 






● プログラム example.e

pコマンド: ジャンパーの接続
sコマンド: スィッチの設定



※プログラムは UTF-8 BOM無しであること。



● シュミレーターの実行方法

eniac プログラム名 →  eniac sieve.e





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




計算結果(レジスタの値)は、prコマンドでプリント(IBMパンチカード)できます。
シュミレーションでは、ターミナル(DOS窓)に表示されるので、結果の確認、計算途中の値の表示ができます。


※ コマンド q で終了





【 グラフィカルサポートの構築 】

@Tcl/Tkのインストール →  https://www.activestate.com/platform/supported-languages/tcl/  ( ActiveTcl )





 


もし、wish ( Windowing Shell) が動作しない場合  →  wishのパスを確認






windowsの環境変数に C:\ActiveTcl\binを追加






 


※wishによるグラフィカル画面の素材
  ENIACのパネル・ボタン等の写真は、GitHubのimageフォルダー内に、ppm形式で有ります。   ランプ表示はオレンジの小さな矩形
         






●Adele Goldstine の技術マニュアルにある、べき乗表を計算するプログラムのサンプル → ENIACシュミレータA


 コマンド p ・・・ 端子間のケーブル接続
 コマンド s ・・・ 各スィッチの設定


●Adele Goldstine の技術マニュアルにある、べき乗表を計算するプログラムのサンプル → ENIACシュミレータA



動画







【 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








【 関連書籍 】

■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 Goldstineの技術マニュアル
 

マスタープログラマ ユニット    PANEL1, PANEL2


定数送信ユニット






配線例


ENIACプログラム
図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人の女性プログラマー / キャシー・クレイマン    
  6人の女性プログラマー

 キャスリーン・マクナルティ
 フランシス・ビーラス
 ルース・リクターマン
 ジーン・ジェニングス
 ベティ・スナイダー
 マーリン・ウェスコフ










     


実験公開日 1946年2月15日
ジョンとプレスが、公開実験の前夜、白いピンポン玉を半分に切って表示ランプの先端にかぶせ、誰でも読めるように数字を描いてENIACを化粧直し。






●ENIAC・他コンピュータの写真集


CORE MEMORY ヴィンテージコンピュータの美 / オライリー・ジャパン
 


コンピュータ―写真で見る歴史 / クリスチャン ワースター






 https://www.crimson-systems.com