マイコン

マイクロプロセッサ・マイクロコントローラ等です。

Z8613を動かす (その2:クロスアセンブラ)

2018-07-05 22:41 — asano

テーマ

ハードウェアが出来たら次はソフトウェアです。

Z8はハンドアセンブルできないほど複雑ではありませんが、アセンブラくらいは欲しいところです。今回のZ8だけでなくSBC6303ボードのHD63C03やMC6803、さらには手持ちのいろいろなプロセッサにも使いたいので出来れば多くのプロセッサに対応しているとありがたい。

ということで候補に挙がったのが「The Macroassembler AS」です。

開発ペースは遅い(というか止まっている?)ようですが、現時点でかなりの数のプロセッサに対応しています。8ビットが中心ですが、16ビット以上にも一部対応といったところでしょうか。マクロは使えますが、リロケータブルオブジェクトの出力は出来ません。

GNU binutils(の中の「as」)にも期待していたのですが、こちらは上とは逆で32ビットが中心で残念ながらZ8には非対応でした。

Z8613を動かす (その1:ハードウェア)

2018-07-04 22:41 — asano

テーマ

カテゴリー

Z8613でパッケージの一部が欠けていると書きました。ただ心配していてもしょうがないので実際に動かしてみることにします。

Z8613 テストボード
とりあえず簡単なテストが出来るボードを作ってみました。

クロックは8MHzの発振器、それにリセット回路を付けています。

何かするたびにROMを書き直すのは面倒なのでシリアルポートも用意しました。パラレルポートにキーとLEDを付ける手もありますが、動かすまでが大変なので...

シリアルなら次のように順を追って試すことが出来ます。

  1. 固定文字の出力(いわゆるHello, worldのようなもの)
  2. エコーバック
  3. モニタプログラム

1なら数十バイトのプログラムで出来るはずです。モニタまで動けばROMを書き直すことなくポートを弄ったりできるようになります。

HD63A03RP と SBC6303ルーズキット

2018-06-27 23:00 — asano

テーマ

カテゴリー

MC6803との比較用に国内のショップからHD63A03RPを入手しました。

HD63A03RP
日立がMC6803をCMOS化したもので、これは1.5MHz版です。

日立のデートコード(3桁)は年が1桁しかないので製造年が特定できません。1985年か1995年か、日立ロゴがあるので2005年や2015年ではないのでしょう。

自分で回路作って確認したいところですが、ちょうど良さそうなキットがありました。「電脳伝説」のvintagechipsさんのSBC6303ルーズキット、スイッチサイエンスで購入できます。

これは基板のみなので部品は全て別途調達する必要があります。

マイナーなZ80周辺LSI

2018-06-17 22:25 — asano

テーマ

カテゴリー

昔のプロセッサ誌を調べていたらZ80の面白い周辺LSIの紹介記事「Z80 GLU と Z80 SPCT」を見つけましたので、今回はこれについて書きたいと思います。現物を持っていないので写真は無しです。

まずはZ84C80, Z84C81 Z80 GLU(General Logic Unit)です。

これはよく使われる以下の機能をまとめたものです。

  • クロック発振器
  • DRAMコントローラ(アドレスのマルチプレクサも含む)
  • ROM用のアドレスデコーダ
  • メモリあるいはI/O用のアドレスデコーダ
  • リセット回路・ウォッチドッグタイマ
  • WAIT挿入回路
  • Z8500系デバイスとのインターフェイス(Z84C80のみ)
  • パワーダウンモードへの移行(Z84C80のみ)
  • GPIO

一部のピンは共有になっているので同時に全てが使えるわけではありません。

怪しいMC6803

2018-06-10 20:02 — asano

テーマ

カテゴリー

最近手に入れたMC6803なのですが、かなり怪しい気がします。

MC6803P
マーキングが読みにくいですが「MC6803P」「C35P」「QQDT0348」とあります。

MC6803とはパソコンではあまり馴染みの無い型番ですね。

まずMotorolaがMC6800を元に命令を拡張した上でROM,RAM,Timer,I/Oなどを集積してシングルチップマイコンのMC6801を作りました。これはバイナリレベルでMC6800の上位互換になっているので汎用のプロセッサとしても有用です。そこでMC6801からROMを取り除いたのがこのMC6803というわけです。

BASIC内蔵マイコン

2018-06-07 23:08 — asano

テーマ

カテゴリー

先日のINS8073はBASICインタプリタを内蔵していましたが、似たようなものは他にもいくつかありました。

  1. NS INS8073
    CPUはSC/MP IIIでROMは2.5kBです。内蔵RAMだけでは不足なので最低256バイト以上のRAMを外付けする必要があります。

    このBASICはNIBL(National Industrial BASIC Language)と呼ばれており、そのサイズからもわかる通りいわゆるTiny BASICです。扱える数値は16ビットの整数のみです。

  2. NS INS8075
    CPUは上と同じくSC/MP IIIでROM容量は4kBに増えています。

    資料が少なく4kBの容量とN2BASICの名称以外の詳細は不明です。

Hitachi H8/338

2018-06-05 22:30 — asano

テーマ

カテゴリー

HD6473308CP10は合計10個でてきたのでH8/330用アダプタでブランクチェックしてみたところ9つのブランク品が確認できましたが、残り1つはよく見るとHD6473388(H8/338)が混じっていました。

HD6473388CP10
これがHD6473388CP10、H8/330との主な違いは以下の通りです。

  • ROM: 16kB → 48kB
  • RAM: 512B → 2kB
  • SCI(Serial Communication Interface): 1ch → 2ch
  • D/A Converter: None → 8bit 2ch

ピン配置は互換のようですが、問題はROMの容量が増えていることです。

Zilog Z8613

2018-05-30 20:47 — asano

テーマ

カテゴリー

先日のINS8073と一緒にこんなものも入手できました。

Z8613RS
ZilogのZ8613RS、マスクROM版のZ8611の開発用のものでUV-EPROM用のソケットを搭載したピギーバック品です。

似たようなものにROMソケットの代わりにピン数を増やして64ピンシュリンクDIPとしたZ8612というものもあります。Z8611と差し替えはできませんが一般的なパッケージなのでおそらくZ8613より安価だったのではないかと思います。
データシートではZ8612を「Development Device」(開発用デバイス)、Z8613を「Prototyping Device」(試作用デバイス)と区別していますね。開発中はZ8612を使い、実機と同じ基板を起こす試作からは差し替え可能なZ8613を使うという事のようです。だったら最初からZ8613だけで良いように思えます。

INS8073ボードを作る (その2)

2018-05-27 21:09 — asano

テーマ

カテゴリー

前回シリアル出力の論理が逆であるのがわかったので、インバータも基板上に搭載しました。

INS8073ボード 表側
左上の2×4コネクタは電源とシリアルポート、前回も書いたようにピン配置はMAA-1にあわせてあります。

その右はリセット回路です。

8ピンDIPサイズ(ピンは4本)はSG-8002DCという発振器です。これは発振器とPLLを内蔵していて周波数がプログラマブルというもので、標準的な周波数をプログラム済みのもののほか専用のライタで好きな周波数をプログラムできる未書込み品もあります。ここで使っているのは16MHzの標準品です。