Almost lost technologies

ここは昔の CPU を用いた工作記事を書くために用意しました。

MELPS 740(M50747) SBC

他の工作は AVR 関連で考え中なので、制作例を全く見ないこのプロセッサ手を出してみることにして検討中です。
一部の方は御存知の通り、これは MCS6502 の拡張で CMOS 版ですが、いわゆる 65C02 とはかな~り異なります。プロセッサ的には以下のような違いがあるのですが……

(1) MELPS 740 シリーズと 65C02 共通の拡張
  ・BRA(Branch always) 命令
  ・BRK命令で割り込みが入っても割り込みが消えない。
(2) MELPS 740 シリーズと R65C02 共通の拡張
  ・ZP 内のメモリアドレスのビットセット、ビットリセット、テスト&分岐命令。
    ただし、バイナリ互換性なし。
  ・Aレジスタの INC/DEC 命令。バイナリ互換性なし(というか逆になっている)。
(3) MELPS 740 シリーズのみの拡張
  ・ZP内のメモリに即値を書く LDM命令
  ・Aレジスタのビットセット、ビットリセット、テスト&分岐命令。
  ・ZP内のメモリの4ビット右ローテート。
  ・JSR命令の ZP 間接/特殊ページ。
  ・Tbit による間接アドレスモード切り替え
(4) 65C02 のみの拡張
  ・X, Y レジスタのスタック退避・回復命令
  ・ZP内/絶対番地のメモリに '0' を書く STM 命令。
    740 には LDM 命令があるので ZP内は対応可能。
  ・TEST & SET/RESET 命令。
  ・演算命令のインデックスレジスタなし間接アドレッシングモード、
    BIT命令の間接アドレッシングモード/即値指定。
  ・間接分岐でのページまたぎのバグ修正。リセット時に Dビットをクリア
  ・未定義命令を NOP とした。

…… 一番の違いは、ZP内に I/O レジスタが配置されていることでしょう。このせいで単純な 6502 との置き換えができなくなっています。
それもシリーズでマップが異なるという鬼畜仕様で、組み込みに振り切れすぎ。
大雑把に言って以下のようになっています。

(1) M5074x, 50708, 509xx などの初期の 740シリーズ
  マイクロプロセッサモードで使うと、$E8-$FF まで I/O が専有。一番扱いやすい。
(2) M50734, 7400シリーズ
  ものによって多少違うが、$D0 あたりから $FF までを専有。
(3) 37xxx, 38xxx, 7460 シリーズ
  最下位 $00-$3F を専有。大抵の 6502 のソフトと干渉すると思われる。
  乗除算命令を持ち、速度も速いのだが今回の目的には使えない。

それと、多ピンパッケージ品の一部はマイクロプロセッサモードを持ち、マスクROM品だろうと内部の ROM をバッサリ無効化して外部メモリをアクセスさせるようにできるため、使うとしたらその手のものか、最初から ROM のない M50734 あたりということになります。最も現時点での入手性は、この M50747 や M50734, M38027あたりかと。一応まだ Renesasからも手に入るっぽいけど、最近の品種なのでちょっとどうかと。

M50747ESP

今回考えている M50747ESP は EPROMワンタイム、UARTとポートいくつかあり、最小限のメモリ信号が出ているもので、メモリさえ繋げばシングルボードコンピュータができそうです。若松通商さんにまだ少数ですがあるようです。セラミックパッケージの窓付きにしないのは、この CPU の書き込み機なんて作る気もしないから。

回路はこんな感じ。UART のクロックを内部で作るのが困難な作りで、仕方がないので外部からつぎ込んでいます。Universal Monitor 移植中。CPU判別は書いた。

 

M50747 SBC