マイコンボード・SHOCK-1

2005年05月08日更新

マイコンボード SHOCK-1の写真

<山崎製作所、マイコンに挑戦>

 1982年頃、当時愛読していた「初歩のラジオ」という雑誌にZ80を使用したマイコンボードを一から製作するという記事が数ヶ月間連載されました。そのマイコンボードは"SHOCK-1"と名付けられていました。上の写真はその記事を参考にして製作したマイコンボードです。当時の記事をご存知の方が上の写真を見たら「記事で紹介されたもの全然違う」と思われるかも知れませんが、そこは山崎製作所が適当にアレンジしたものということでご勘弁ください(笑)。

 1970年代は、8080, 8085, Z80, 6800, 6502, SC/MP ... といった様々な8Bit CPUがリリースされ、コンピュータが次第に身近なものになってきました。1970年代後半のトランジスタ技術やCQ誌、各コンピュータ関連雑誌の広告を見ると、それらを搭載したマイコンのキットや完成品が多数販売されていました。大きく分別すると以下のようになります。

構成・特徴 機種
基本的にはモニタROMを持たず、CPUを止めてRAMに直接アクセスするためのDMA機構(多くの場合、アドレス/データと一対一で対応するスイッチとLED)を持つもの。キットが多い。 ALTAIR 8800,
IMSAI 8080,
SHOCK-1 ("初歩のラジオ"掲載)
Λ-1 ("RAM"掲載) ... など
モニタROMを搭載しているが、基本的には高級言語を搭載せず、簡素なコンソール(16進数のキーボードと7セグメントLEDなど)を備えるもの。
キットが多い。拡張パーツでBASIC言語やCRT I/Fが用意されている機種もあった。
TK-80, TK-85など
フルキーボード、CRT I/F、BASIC等の高級言語を搭載し、使い勝手がよいマシン。現在のパソコンに近い形のもの。完成品が多い。 Apple Ⅱ, PET, PC-8001など
雑誌の"初歩のラジオ"、"RAM"はずいぶん前に休刊 or 廃刊になっている。
"Λ-1"はRAM誌の連載記事でハードウェアはCPUボードを中心に、電子オルガン、カセットI/F、フルキーボード、CRT I/Fまで拡張された。また、ソフトウェアではモニタプログラムからアセンブラ、Tiny Basic言語まで搭載された。連載記事の内容は非常に丁寧であった。
作りっ放しで連載記事終了ではなく、時間をかけて一つの完成した形にまでΛ-1を高めた点は評価されるべきだと思う。


 1980年代になると、8ビット・パソコンの価格が下がり、一般家庭に普及し始めました。そしてマイコンを組み立てるというホビーは急速に廃れていきました。しかし、それまではトレーニングキットと称する組み立てマイコンキットが数多く販売されており、雑誌で製作記事もかなりあったようです。

 初歩のラジオの製作記事で紹介しているSHOCK-1のオリジナル版は細いジュンフロン線を用いたワイヤーラッピングで大変美しい配線を行っていましたが、山崎製作所版ではジュンフロン線の何倍も太い通常のビニール線をハンダ付けしているため、基板の裏は大変煩雑な状態になっております。また当時は(今も)地方に住んでいたため、部品集めは大変苦労しました。入手可能な部品を使って組み立てております。

 マイコンボードの構成はCPU (Z80), PPI, RAMとプログラムコード入力・確認のためのDMA回路からなる極めて単純なものでした。ROMは持たず、CPUをバスから切り離してDMAでRAMにアクセスして直接プログラムコードをRAMに書き込みます。プログラミング(というか実行コードの書き込み)が完了した後、DMA回路を切り離し、CPUからRAMへのアクセスを許可してCPUのRESETを解除することでCPUはRAMに書き込まれたコードの実行を開始するというものです。

 SHOCK-1の上段のトグル・スイッチ列(11個)はDMAアクセス時にアドレスを指定するもので、このシステムでは2kBのメモリ空間を指定できます。下段のトグル・スイッチ列(8列)はDMAアクセス時に書き込みデータを指定するものです。下段のLED(写真では6個しかないが、以前はデータバス分の8個あった)は上段のトグルSWで指定したアドレスから読み出したRAMのデータを"0", "1"の2進数で示しています。MW(Memory Write)スイッチを押下すると、8個のデータSWで指定した8ビットのデータが上段のトグルSWで指定したアドレスへ書き込まれます。

 実際の使用方法は、まずZ80のアセンブラ言語でプログラムを作成します。私はノートに手書きでアセンブラ言語のプログラムを書いていました。それをハンドアセンブルしてマシン語(実行コード)に変換します。この時にJUMP命令やデータ領域などのアドレスも決定します。次に完成したマシン語をDMAを使用してRAMに書き込みます。

 また、プログラムの終了時にCPUが停止するように、プログラムの最後にCPUの実行を停止させるHALT命令を配置します。Z80はこのHALT命令を実行すると、自分自身の実行を停止し外部にHALT信号を出します。この信号でLEDを点灯させることでユーザはプログラムが終了したことを知ります。実行結果をRAMに書き込むようにプログラムは組まれており、Z80がHALT状態に遷移した後で、DMAで実行結果が書き込まれたアドレスのデータを読み出し、実行結果を確認します。

 このマイコン完成後数ヶ月間、"RAMを全て0xFFで埋め尽くすプログラム"とか、"PPIを高速にOn/Offして音階を発生させるプログラム"など、小規模なプログラムを腐るほど作成してソフトウェア技術を身に付けていきました。ハンドアセンブルと、DMAで何もないところからシステムを立ち上げる技は、1970年代、ROMライターやパソコンすら持たない個人がマイコンシステムを立ち上げるには不可避のプロセスであり、この手の製作記事がよく雑誌で連載されました。以下のような手順でシステムを完成させます。

1). モニタプログラム(コンソールプログラム。200-300byte程度)を
DMAでRAM上に打ち込む。
2). コンソールのデバッグ。
コンソールが起動したら必要最小限のハードウェアチェック。
DMAでの作業はここまで。
3). コンソールを使ってROMライタープログラムをRAM上に打ち込む。
4). ROMライターでモニタプログラムをROM化。
5). ROM化したモニタプログラム起動。
これ以降の作業はROM化したモニタプログラムを使い、
コンソールから行う。
6). コンソールからハードウェアのチェック等実施。
マイコンボードとしてはこれで完成。
組込み用途では、さらにターゲットプログラムを開発する。
7). コンソールからターゲットプログラム入力・デバッグ。
8). ターゲットプログラムのデバッグ完了後、ROM化。完成。

 トグル・スイッチをパチパチやって、1ビットずつ設定を変えながらプログラムを入力するのは手間が掛かり過ぎます。最小限のハードウェアの動作確認ができたら、早急にモニタプログラムを開発してコンソールを使用したプログラム入力に移行したいところです。しかし初歩のラジオの連載記事では、SHOCK-1は最後までコンソールは搭載されませんでした。このマイコンボードでコンピュータとデジタル回路を学び、この技術はこの後大いに役に立ちました


戻る [山崎製作所MUSEUM]

�����}�����W�y�z�b�g�y�b�p�[�z �����������O�~�y�������������z Yahoo �y�V LINE���f�[�^�����[�������z500�~�`�I
�����z�[���y�[�W �������N���W�b�g�J�[�h �C�O�i���q�����@�C�O���s�����������I �C�O�z�e��