ーノートー
FACO
乱
1
2
3
0
-2
5
カ ー ド @ イ ニ シ ャ ル
eプ ロ グ ラ ム @
ロ ー ダ ー の 試 作
日
置
伸
T
r
i
a
l
C
o
n
s
t
r
u
c
t
i
o
n
o
f
Card. I
n
i
t
i
a
l
.
Program Loader f
o
r
F
ACOM230-25
S
h
i
n
i
c
h
i
HIOKI
く概 要〉 最近〈第三世代以降)のコンピュータは,通常オペレーティング@システムがメーカーから提供され,ユ ーザはオペレーティング・システムの管理下でのみコンピュータを使う事を強いられている. ユーザーはノー・クラッチの自動車をアクセJレとブレーキとハンドルだけで運転していて,万一エンジン の調子がおかしくてもボンネットを開ける事すら許されないでいる様なものである. 筆者は,イニシャル・プログラムーローダをカード・ベースで作ることによって FACOM230-25のハー ドウェアの極一部を覗き見ることを読みたので、ここに報告します. ま え カt き 当大学に電子計算機が初めて設置されたのは今から10 年前(昭和38年)で,記憶容量は2000詣で演算時間も mS(10-3秒〉オ{ダ,使われている素子はトランジスタ で名前をNEAC2203(以下N-03と略すj と称するもの であった.そして10年後,記憶容量32Kバイト(16000詰 ) ,演算時間ρS (10-6秒)オーダ ,ICが素子として使 われていて, F ACOM230-25 (以下 F-25と略す)と いう名前がついている. ところが,乙の2つの計算機で例えば25元連立一次万 程式を解いてみると,計算時間はそれほど差がない.こ れはN-03ではプログラムを作るのに機械語を使ってい るが, F-25では FORTRAN言語を使用していると いう条件が異っているが, F-25の ア セ ン ブ ラ 言 語 ( 機械語とほぼ1対1に対応する〉ぞ使ってプログラミング しでもオぺレーテイング・システム(以下OSと略す) の管理下でしか動かせないという制約条件と F-25のハ ードウェアそのものがOSを意識して設計されている為 に,結局FORTRANコンパイラがオブジェクト・プロ グラムの効率を考慮していれば,いずれも OSの下で働 くので大差が出ないと思われます. そこで, OSとは全く関係のないプログラム,即ち機 械語プログラムに注目する事になりました.この時第ー に問題となるのが機械語プログラムを読み込む為のプロ グラム,即ちイニシャル・プログラム・ローダが必要で あるということ,しかもカード・ベースで、行ないたいと いうことでした.乙のノートはカードによるイニシャル ・プログラムーローダを試作したので,その内容を述べ るものです.o
.
F-25のハードウェア F-25のシステム構成の概略は図0-1の様になってい る. 図、
1 システム間伐 くハードウェア固定領域〉 主記憶装置にはハードウェア的にあらかじめ占有され る領域があって,これをハードウェア領域と呼んでい る. ハードウェア領域にはハードワュア固定領域とサブチ ャネル領域があり,これ等の領域;a特別の目的に使用す238 日 置 伸 迎~1 : CAW (Channel Address word)
1
/
0
(入出力装置)を動作させる為l乙 チャネルlこ与える指命 (CCW)が格 納されているアドレスをセッ卜する 領域 4 ~ 7 : CCW 1 (Channel Command Word) イニシャル・ロ ドを行なう為のチ ャネル・コマンド・ワードのための 領域 8~B:CCW2 CCWlと同様 C ~F : CSW (Channel Staus Word) 入出力動作の結果が格納される領域 rll~lF :新PSW (Program Staus Word)巴口
l新PSWl
b
i
日PSWr
W
IMAC~I~PRGIEX;tと口
52
スL
J
J
-
;
図
'&-2
計算機の状態はプログラム@ステイ ハ ー ド ウ エ ア 固 定 領 域 タス・ワード (PSW)と呼ばれるレ ジスタにまとめられているが部込が起ったとき,この吾地 lこ格納されている内 容が自動的にアクテイブPSWIこセットされる 2'&~2F :旧 PSW 割込みが起きた時,その時のP S Wの内容が3 この番地へ自動的に格納される 3'&~3F :害l
込コード 割込みが起きた時,その詳細な情報を示すコードが格納される る乙とによって計算機の制御をスムース1
乙行なおうとす るのがF-25の設計思想のようである. サブチャネ Jレ領域は 400~L[40 (16進)器地lこ領域が確 保されていて,ハードウェア閏定領域はo
~43 (16
進) 番地lこ確保されている. ハードウェア固定領域は図0-21こ示す通りである. 〈イニシャJレ・ローデイング機能〉 次にF-25のハードウェアがもっているイニシャル・ ローディング機能について述べる. イニシャル・ローディングに際しては, 1/0
装置の チャネルおよび機番を本体のオペレータ・パネル上にあ るロータリー・スイッチによって選れして,次lこロード ・キィー (LOAD)を押す.この操作が行なわれると システムはリセットされロードランプが点灯する.引き 続き選択された1/0
装置から読込みを開始し,読込み が正常に完了すると新PSWがアクティブ PSWI乙ロー ドされcpuは動作状態lこ入り, LOADランプは消灯す る. 選択された1/0装置から読込みを開始し,最初に読 込まれた36バイトが主記憶装置のo
~1l (16進)番地に 格納される.この際メモリプロテクションは無視され る. 4~7 (16進)若手士郎こ読込まれた4語はCCWとして次 の入出力操作の為に使用される.このCCWの中でチェ イニングが指定されると3(16進)番地のCCWによって 操作が実行される. 36バイトの読込みが終了するとCCWlによって次の読 込み動作に移る.チェイニング指定があれば,これを行 ない全てのチェイニングが終ったところで10(16進〉番 地の新psw
:aアクティブPSWにロードして計算機はF
U
一
EH
一
一D
山 一 不 一 C 時 一 タ チ ツ テ ト ナ ニ ヌ ソ ゾ r i l l 川 ト │ │ 1 1 1 1 1 1 1 1 1 1 1 -I l l i -一A
M
ア エ U ア イ ウ エ オ カ キ ク コ 一8
M
刊 一&
A
B
C
O
E
F
G
H
<
(
+
│
一
一 7 日 一 ヤ 一 一6
川 一 ヘ ホ マ ミ ム メ モ ユ ヨ ラ リ ル 一日門いいハハ
υ
一4
W
一 什 一J
K
L
M
N
一O
P
Q
/
¥
本
)
;
﹁
一3
れ 一Z
一一
2M
一 り
/
S
T
U
V
W
X
Y
与
,
%
打
一
>
?
一
一
白
血
p
-1
2
3
4
5
6
7
8
:
#
@
マ
一
一
。
一
己
川
相
川
出
制
刑
制
引
叫
一
¥
小
一
品
$
1
2
3
4
5
6
7
8
9
A
B
C
B
E
F
一
このPSVVの制御下に入り,イニシャjレ・ローデイン夕、 機能を終了する. この動作中p入 出 力 剖 込 み は 発 生 せ ず 入 出 力 操 作 や PSWのロードがi
正規に行なわれ沿い場合は計算機は動 作状態iこJまらずロード。ランプは泊灯しない.1
.
カードを1
枚読む 計算様i乙カードを読u'ブログラムが入っていほくと も ,O
.
で述べたイニシャJレ・ローデイング機能を用いれ ば,とにかく 1枚のカードを読む動{乍を行なう事は可能 で あ る ( 但 しy 最初の36パイトが主記憶に格納される だけである〉 ととろが, ζの禄にして主記憶装置に読込まれた情報 はパンチカードのホーJレ・パターン〈カードにパンチさ れたホールの位筒と倒数〉を一定の法則で変換されたも のがカード読取装置から主記憶装置内へ転送されるだけ である. 80欄カードは12のホーJレポジションが1桁を構成して いる.一方p 主記憶は8bit(lBYTE)で1文字 (EBC DICコード)を構成している圃このため12のホールポジ ション在 8bit1乙変換する場合には圧縮カードコードと 呼ばれるコードに変換される.この圧縮カードコードは 計算機メー;Jー特有のものでメーカ一位に追っている. (EBCDIC コードに変換するもや,ホ~)レ・パターンを そのまま転送するハードウェアも有る〉 Mem5ry Byte bit positiδn ホーノレーポジジョン 1-7 1"1 1-1 サ シ ス セ レ ロ ワ ン ミ ハ ヒ フ表
1-1
圧縮カードコード逆変換表
o
I
b
1
b
2b
3b
4 t5b
6b
7b
8I
o
SP
はS
p
a
c
日(ブランク) 0 対 応 コ ー ド が 書 い て な い と こ ろ は 図1-1
に よ り マ ル チ パ ン チ を 行 な え ば よ い 0 例 内 部 ゐitパ タ ー ン を と1摘。
Q
Q
Q
l
か と し た け れ ば とA"
を パ ン チ す れ ば よ い2
4
0
日 置 伸 ここでは F-25で使用している圧縮コードを図1-1, 表1 - n乙示す. く圧縮カードコード〉 圧縮カードコードの変換則は下図→図1-1の遥りであ る. くカードを1枚読むには〉 上述した圧縮カードコ{ドに変換会れる事を承知して いればo
.
で述べたイニシャル・ローデイングを行なえば よい 即ち.カード読取装置のチャネル番号 (C)ヘ
機 番 ( 0)*を本体のオペレータ・パネルのロータリ・スイッチ で指定してロード・キイを押せばイニシャJレ・ローデイ ングが行なわれる. (注 *印は当大学計算センターに於るチャネル番号お よび機番であるJ2
.
続いてカードを1
枚読むく
BOOT1)1
.
でイニシャル・ローデイング機能を使ってカードを 1枚読んでも,その場合読まれたカードの36バイトが圧 縮カ{ドコードに変換されて主記憶装置のO番地から11 (16進)番地へ格納されるだけである. 乙の場合,主記憶の 0~11 (16進)番地に格納された 情報だけで“次のカードを読む" ζとが出来なければな らない. 即ち,最初に1枚カードを読む事によって,圧縮カー ドコ{ドに変換会れた結果が続いてカードを1枚(図2-1
でCIPL
・・カード4
枚を読む為にはカードを1
枚 読 む必要がある)読む命令を構成していなければならな BOOTl BDoT2 CIPL 図 2- 1 BDDTl, BDDT2,CIPL い. ζの為まず機械語でプログラムを作b
,1.の圧縮カ ードコード逆変換表を利用してカードをパンチする.こ の様にして作ったパンチカードをBOOTlと呼ぶ乙とに する. くBOOT2) BOOT1がイニシャル・ローデインクーによって読込ま れと,直ちに次の1枚のカードが読込まれる. この1枚のカードを BOOT2と呼ぴ,次の機能をもた せる. (1) チャネルに関してメモリ・フ。ロテクションを解除 する. (2) 次の4枚のカードを言詰込む. これで, 4枚のカードからなるカード・イニシャル・プ ログラム・ローダを読込む準備が整ったことになる. とこまでをまとめてみると, カードからプログラムを読込むには ~ :機械語でプログラムを j'lる PR百GRAMと呼ぶ 1:PR…~L……Jα
品
2 : CI回PL壱説込むため白。
7口ゲヲム B口o冗τ2 3 : 8百百1'2を読込むためのプロウヲ ...80百TI 4 イ ニ シ ャ ル f-となる.目的のプログラムを読込むのに4ステップを要 するのは,イニシャル・ローデイングによって読込ませ うるのは36バイト (BOOT1)であり, 36バイト(ハー ドウェア固定領域)の中にはカードを4
枚(
C
I
P
L
)
読ま せる情報は入り切らないので BOOT2を使って,中継す る乙とによってCIPL
;a読込む. BOOTl, BOOT2は図2-2および図2-3に一例を示 す.3
.
更にカードを4
枚読む ここで読む4枚のカードが,機械語で、作ったプログラ ムを16進数でカードにパンチしたものを読込み,計算機 の中に機械語命令を作り出すプログラム,即ちイニシャ ル・プログラム・ローダである.乙のプログラム(カ{ ド4
枚)をCIPL
と呼ぶζとにする.CIPL
がもっ機能は次の6
種である. (1) cpu!e:関してメモリ・プロテクションの解除. (2) 格納開始番地をパンチしたカード与を読込む.(/Sx x
x
x :
x
x
x
x
が16進表示の格納開始 番地) (3) 格納開始番地の計算. (4) プログラム・カードを読込み,機械語命令を主記 憶内i乙作り出し格納開始番地からj碩
K格納する. (5)/Rx
x
x
x で始まるカードを読込んだ場合 K'~ 実行開始番地を計算する.図 3-1 CIPLの7ロ目チャート 図2-2 BOOT 1 (6) プログラム読込み後直ぐ実行を開始するかどうか
ASWC
オJレターネ{ション・スイッチ)によって決 める.図3-1
はCIPLのフロ{チャートである. CIPLのカードホールパタ{ンを図 3-21<:::示す. /R xxxx一一ー実行開始蕃地 2進 」ーーー『一一-' 、ーーーーー甲---J 1 ward lword カードよ白砲 -9 , A-F を ~~~~-1~~1 , 1 祖 1~-1111 に変換してs古田I':EO 4桁を1wo,
d (16bit)ζf格納する出 ι { 置 日
2
4
2
d 4 A A ﹁ ﹀ 刊 、 、 ¥ t , む ザ ︿ヲ ぐ f 寸 矛 @、
f r G ふ 。 A j z 6 2 4 ︿ 、 そ イ 4、
A 奇 守 J︿ 、毛 y 弓 ︾〆 仇h 守 、 ﹀ r f γ 、、ミ、﹀、、 一 、 、 J ば 叫 { 込 て ミ 、 ミ て 、 j F v j 弘 仇 J 、 、 ﹀ , 式 λ ι 3 、 、 ι q 、 F ふ 狩 ぜ ♂ 勿 W つ J 弘 恥 ラ 一 1 1 : 、 l f p い 主 ノ ず n 、 と ︽ F 、 、 ι 、 功 宍 ぺ J ゐ A、 ム 一 ︽ ι 、 i 〆4︽ 、 J 3 ? 、 } ぜ ︿ JJdvιd “ 、 , ノ 一 ︿ く 、 U 3 A ︾ 2 t 、 よ b ︿ 5 、 4 A 4 “ 吟 勾 、 ん 仏 泊 2 r 与 ミ、
︽ ︾ 引 司 可 r J ζ y ζ h vラJ v γ ¢ か ? 2 ム 丸 : ﹀ , :み i 選 、 一 ﹁ レ 5 3 4 u J 4 7 h p j( 凶 ャ , O 屯 7 3 ﹀ 討 、 f i 4 5 ム A q “ d b ? ふ 3 4 J q d r 市 え と γ J U 4 ミ え:
y
ヘ ィ 、、 ~ 5 :;Jぅ
:
ρ::弓';: :-;'L ,.;S ~ ~ ;oj 、~¥ ;;J:S -;~;:i 1.;ミ~s
亡、,:_;:r :';;:ち ス','ι:; t,;う5ヲ歩に':s
'
:
'
~ 5 :;む ト τJ 詮石毛えるお~S '.fJ t ;;とt.& 0 ~五じ ζj、 t え 5ìri:;::s
~~ ,;~; b ( ;f~ ;;~; :::,b :.~ t ' ト 診 ; ; l ),; その1 CIPL 図3-2
,、勺凶れへ、官、今:玖, ミち "l^:' 'l'j': C ' 吋 て1':. 予 ,、《句会 、,jミ;j:;.,sjゅ 》 ゲ 、λ υ占3、,;;1-". < ぷ ゅ 、 Lij:j,i 定~:;5 :d S:':.~につ I 与九 5 ~; ¥今1:,
S t (,主主主[t ~三忘れ万 t; J;tコ品川,;t > " :,';,~ :-;S h t 2-l 4 M l 、 4 4 5 句 、 d M W み F 5 その2 図3-2
Jl.;72 Z>22? J._}i ~'-2 1= 之~ ~ ? ? 7 ミ~:? 2 : } ? 2 2 d'フ[ 1 ; 1 ; ? 2 Z 1 !:? {;'Z i {'今'jCJ) ) 1 {'~;~ .~ム :>W3 }' J ] Y:J J ,]1 j J J J ) } J J 設;J J議 J1:,) J 2 ~ J 3 ?:1ミ1 1/式ミ4J ~占 41K~~J!;~;1 ,J<.i ,\ミ F 主 4 ザ" 'lij,~ ~ <,4 {,q ;ii..4~ f 4 : ) ~ 5 ? 5 ?<~刀'~;S 5昔話G:;長 5 :e
5 5;; S )久と :C iJ h ~ ; ;;ぅ5S:;三5竺5淀 ; 5 ~; r; trn;s
さ沿;)hf、五色苦手Gk $.5~ι~; 君主 St G ; h ; ( i'1;e
ぅ $ 六;
r
ミtt五hおど5サ詰iむv J"1 7 ; 7 '7 J 1r
7 !震 7? ~M J)? l J 1 ';,ワ!i f! J 1 7 f ;:;.7吟 7;/η震7プ ! ';喜多i'7'( ; i g 襲撃~ t. B B f 泣き文言語主義 H 総 H ヨ aníl き~ 8主主 主b警長iJ ~ f 当 主 主 わ ;b ~:、 議5議 I襲き 5喜怒さ333t53与寄せれ塁号寝室空自きら18援護 5手む;;~~ ;;務当<;; ;1:; S jj~ :;き;j );れ 〆ぺ λl~ j~μ ぷミ:~よ'-:'〆 〉屯 午 伶 " ' , ' ; 武 ヲ γ .;;"' その3 CIPL CIPL 図3-2
図