| ホーム | 8080A CPU コンピュータシステム |     私の電子工作作品集

14: 16 Kbyte Rom ( 0000 〜 3FFF ) 基板

[ 初公開日:2016年6月3日 ]

CS14_16KbyteRom_02.jpg
 本基板では、全メモリ空間 64K バイトの内、先方 16K バイトをROMエリアとして使用をしています。 ROMの内容としては、モニタプログラム、ライブラリ、 セルフアセンブラ等、各種プログラムの開発にはなくてはならない、基本プログラム群が収められています。


 ところで、これらのプログラムをROMに収めるということは、一体どういうことなのか。 その方法はどのようにして行うのか。

 一般的にコンピュータというものは、CPU、メモリ、I/O(入出力装置)の三つの要素から構成されています。 そして、メモリに格納されているプログラムの命令一つずつを順に取り出して、 命令通りに実行して行くのがCPUの役割です。 この命令というのは、CPU独自のマシン(機械)語でなければなりません。(本システムでは、CPUに 8080A を使用)

 例えば I/Oの一つであるキーボードからの入力データを取り込むようなプログラムを考えてみると、このようないつも同じことを行う基本的なプログラム自体は、モニタプログラムの一部として メモリの一形態であるROM(読み出し専用メモリ)にあらかじめ格納をしておき、キーボードからの入力データは、もう一つのメモリ形態であるRAM(読み出し/書き込み可能メモリ)内に 取り込む訳です。 このように、用途によってROM/RAMの使い分けを行っています。

 本コンピュータシステムに限らずCPUに 8080A を使用した場合には、電源の投入直後、または RESET スイッチの操作直後は、全メモリ空間 64K バイトの内、ハード的に0番地に格納されている メモリの内容(命令)から実行が始まります。 ですから、メモリ空間の先方にROMを配置するのが一般的です。

 また、モニタプログラムの必要性や、アセンブリ言語とマシン(機械)語の関係を、トップページの "8080A CPU コンピュータシステム" 内で述べましたが、 アセンブリ言語で作成したプログラムをマシン(機械)語に翻訳するためのセルフアセンブラを、本システム内に持つことの必要性も理解していただけるのではないでしょうか。

 そして、これらの基本プログラム群をあらかじめROM(読み出し専用メモリ)に格納をしておく訳ですが、読み出し専用メモリといいながら如何にして格納(書き込み)をするのでしょうか。 ROMと言えども初めにプログラムを書き込んでおかなければ読み出すこともできません。

 実は、ROMを書き込みモードに変更をすることができるのです。 通常は本システムで使用しているように読み出しモードで使用をするのですが、初めに書き込みを行うときには、一般的に 専用のROMライターを使用して書き込みを行います。

 しかし、本コンピュータシステムを作製していた当時、アマチュアである私が使用できるようなROMライターが身近に存在する訳もなく、したがって私が採った方法は、別ページで紹介をしている "2716 専用 手書き EP-ROM ライター" をまず作製して、面倒でも手入力で1バイトずつROMにプログラムを書き込んで行きました。

 そして、やがて本コンピュータシステムから制御ができる、やはり別ページで紹介をしている "EP-ROM ライター" のハードウエアを作製し、そのための制御プログラムを モニタプログラムの一部として、先の "手書き" のROMライターで書き込んだのを最後に、その "手書き" のROMライターとはお別れをしました。

 このように二段階の苦労を経て、"システムから制御" のROMライターを手に入れることができたのでした。 そして、そのROMライターの優位性については、そちらのページで述べている通りです。 また、話が前後してしまいましたが、セルフアセンブラの開発についてはこの後のことです。

■ 回路図 ■

CS14_16KbyteRom.gif

| 回路図 (CS14_16KbyteRom.CE3) | ページトップ |

■ プリント基板の外観 ■

CS14_16KbyteRom_02.jpg CS14_16KbyteRom_03.jpg

■ 本基板のメモリマップ ■

 下図の全メモリ空間の内 で囲んだエリアが、本基板1枚で占めるメモリ空間 (0000 〜 3FFF) = 16,384 バイトです。
 ROMエリアの後方 4K バイトは、現在はまだ空きとなっています。

CS14_16KbyteRomArea.jpg

| Excel ファイル (MemoryMap.xls) | ページトップ |

■ プリント基板パターン図 (部品面) ■

 本基板の配線と他の基板の配線とを見比べてみてください。 本基板ではずいぶんとすっきりとした印象を感じたのではないでしょうか。 それは 0.26Φのラッピング用ワイヤを 使用しているためです。 他の基板と比べてこのROM基板は、おそらく時期的には一番最後に作製したものと思われます。 それまで私自身がラッピング用ワイヤとは巡り合えずにいて、その存在を まったく知らなかったからです。 余談ですが、これ以降の私の工作物(プリント基板)には、若干高価になりますがほとんどこのワイヤを愛用しています。

CS14_16KbyteRomPC.gif CS14_16KbyteRom_04.jpg

 右上写真のプリント基板に実装されているROMの並びが、私にはどうも変に思われてなりません。 一部のメモ書きがされているROMの配置が、もしメモ書きが正しいとすれば このような並びにはならないはずです。 開発中はデバッグで何度も何度もROMの書き直しをしていますが、プログラムが安定してからは三十数年間、ROMの入れ替えは行っていないはずです。

 上 回路図 に示すように、ROM 1C, 2C, 3C, 4C, 1D, 2D, 3D, 4D と、アドレスが若い順に並んでいます。 そして 3D, 4D は、現在空きとなっています。 メモ書きが写真では見にくいかもしれませんが、2C の位置の "MONITOR No.1" は 1C で、2D の位置の "MONITOR No.2" は 2C でなければなりません。 このまま電源を入れれば、即暴走です。

 やはり、過去にROMの並びを変えたのでしょうか。 それともメモ書きが間違っているのでしょうか。 いずれにしても、ROMの内容を読み出してみれば分かるのですが、現在、私が持ち合わせる環境では、 前出の "2716 専用 手書き EP-ROM ライター" を使用して、1バイトずつ手動で読み出してみる方法しか手だてがありません。

| プリント基板パターン図 (部品面) (CS14_16KbyteRomPC.CE3) | ページトップ |

( 2016/8/2 追記 )

 上記のように "2716 専用 手書き EP-ROM ライター" を使用して、6個すべてのROMの先頭アドレスからと最終アドレスからの各々 30バイト程ずつを、実際に読み出して確認をしてみました。 その結果は、 一部のROMに貼ってあるラベルのメモ書きはでたらめで、上写真のプリント基板に実装されているROMの並び順通りが正解でした。

 まったく紛らわしい限りで、三十数年前に製作をしていたときに、なぜラベルのメモ書きを更新しておかなかったのでしょうか、または、紛らわしいラベルを剥がしておかなかったのでしょうか。 悔やまれてなりません。 と言うのも、実は、ROM 2C の位置に実装の "MONITOR No.2" を、昨日のことですが不注意で壊してしまいました。

 "2716 専用 手書き EP-ROM ライター" を使用中に、電源が入ったままの状態でROMをソケットから抜き差しをしてしまったのです。 壊れる以前には "MONITOR No.2" の内容であることを確認しています。 途中で(抜き差しをしてしまった後)読み出し内容がまったく狂ってしまい、また、ROM自体もかなり熱く熱を持つようにもなってしまいました。 明らかに平常ではなさそうです。

 このため、"MONITOR No.2" のROMを再度作製しなくてはならなくなりました。 これはまた大変な作業です。 と言うのも、このROM内に、エディタプログラムやシステムから制御ができる EP-ROM ライターの プログラムが格納されていたのです。 当然ながら(?)バックアップ用のROMなどは作製してありません。 したがって、冒頭でも述べているように "手書き EP-ROM ライター" によって、 また2Kバイトもの大量な機械語プログラムを、1バイトずつ書き込んで行かなければならないのです。

 余分な仕事をまた作ってしまいました。 "x07. タイマー付き EP-ROM イレーサー" のタイマー部分の改善もそうですし、"20: 8 Kbyte Ram (2) ( 8000 〜 9FFF ) 基板" 、"21: 8 Kbyte Ram (3) ( A000 〜 BFFF ) 基板" の各RAM基板の増設もそうでした。 このところ余分な仕事ばかりがずっと続いています。

 本コンピュータシステムの先頭(メニュー)ページのページ末( 追記 )で述べたように、"本システムを再び稼働できるようにしてみたい" という気持ちで現在進行中なんですが、まだ未解決な供給電源についての問題とか、モニタプログラム、セルフアセンブラ、システムライブラリなどの各プログラムの内容についても、 ある程度は理解をしておく必要があって勉強をしないといけないとか、まだこの先問題がいくつも控えていますので、本システムの再稼働の実現がいつになるか、今のところはまったく未知な状態です。

■ プリント基板パターン図 (ハンダ面) ■

CS14_16KbyteRomPC1.gif CS14_16KbyteRom_05.jpg

| プリント基板パターン図 (ハンダ面) (CS14_16KbyteRomPC1.CE3) | ページトップ |

■ 使用部品表 ■

 本システムでは2KワードのROMを使用していますが、当初は1KワードのROMの使用を予定していました。 ところが、設計を進めていくうちに2Kワードのものが 手ごろな値段で入手が可能となったため、途中で変更をしたのを覚えています。 ROMに限らず、当時は日を追うごとに新しいデバイスの出現、そして価格も安くなってゆく毎日でした。

 2KワードのROM 2716 (2516) は使用電源が +5V だけの単電源ですが、1KワードのROM 2708 では他に +12V、-5V と3電源を必要とします。 本システムではCPUに 8080A を 使用しているため、もともと3電源を用意する必要があるわけですが、ソフトウエア的にも 2716 に比べて 2708 は書き込みに少々面倒なところがあって、使いにくいデバイスでした。

 結果、当時作製の本基板では 2716 を8個使用して 16KワードのROM空間を作り出していますが、現在であれば下表中の 27128 を使用して1個のデバイスで済んでしまいます。 もっとも、今となってはこれらのEP−ROM自体が、すでにレガシーなデバイスとなってしまい、入手するのが難しいかもしれませんが・・・。

主要部品 型名 メーカー 外観 (クリックすると拡大します) 備考
EP-ROM HN462716G 日立 2716.jpg 8 bit x 2,048 Word
EP-ROM TMS2516JDL テキサス
インストルメンツ
2516.jpg 8 bit x 2,048 Word
(参考) 以下のデバイスは私が所有するものの一部で、本基板で使用した上のROMとの比較用に載せました。
EP-ROM TMS2708JL テキサス
インストルメンツ
2708.jpg 8 bit x 1,024 Word

+5V, +12V, -5V の
3電源が必要
EP-ROM M5L2732K 三菱 2732.jpg 8 bit x 4,096 Word
EP-ROM TMM2764AD-15 東芝 2764.jpg 8 bit x 8,192 Word
EP-ROM MBM27C128-20 富士通 27128.jpg 8 bit x 16,384 Word
EP-ROM M27C256B-10F1 STマイクロ 27256.jpg 8 bit x 32,768 Word
EP-ROM μPD27C512D-20 NEC 27512.jpg 8 bit x 65,536 Word

| 部品表 | Excel ファイル (8080A部品表.xls) |

| ページトップ | 8080A CPU コンピュータシステム | ホーム |


Copyright (C) 2006-2023 やまもとみのる
初版:2006年12月7日、初公開:2016年6月3日、最終更新:2023年11月6日