COSMAC MicroBoard Computer

COSMACの評価ボードであるCDP18S020の主要機能を製作し、その上でUT4という小さなモニタプログラムを動作することを目標とします。可能であれば、CDP18S020の主要機能を再現したいところです。

COSMAC評価ボード CDP18S020

以下のドキュメントを参考にし、現在入手可能なパーツに置き換え、COSMAC評価ボード CDP18S020の主要部分を10cmx10cmの基板上に製作しています。合わせて、外部バスに拡張基板を接続し、評価ボードに実装されているLED表示やGPIO(CDP1852)を付加しました。

UT4モニタ

以下の情報を参考にしています。このバイナリをEEPROM 28C256に書き込んで使用しています。

回路図

現時点の回路図(PDF)です。

CPU Board

拡張ボード

TVディスプレイボード(つくるシリーズ7掲載回路)

STG1861ディスプレイ+16進キーボード

STG1861はSpare Time Gizmos' projects.で公開されているCDP1861 Pixie互換の回路です。
HEX KeyboardはCOSMAC VIPのマニュアルに掲載されている回路です。

部品表

  • BOM (Googleスプレッドシート) 基板別にシートになっています。
    • STG1861 display/Hex keyboard Rev 0.2
    • CPU Board Rev 0.4
    • Extention Board Rev 0.3
    • TV DISPLAY Board Rev 0.2

メモリマップ

CPU Board Rev 0.1では以下のようにしました。

  • 0000 - 1FFF 6264 RAM (U3) ... USER AREA 8KByte
  • 2000 - 7FFF 6264 RAM (U3)のイメージ(使用不可)
  • 8000 - 87FF 28C256 EEPROM (U2) ... UT4 MONITOR
  • 8800 - 8BFF 28C256 EEPROM (U2)のイメージ(使用不可)
  • 8C00 - 8FFF 6264 RAM (U4) ... UT4 REGISTER STORAGE(無くてもUT4は動きます)
  • 9000 - FFFF 28C256 EEPROM(U2)と6264 RAM (U4)のイメージ(使用不可)

CPU Board Rev 0.2/0.3ではシンプルにしました。UT4 REGISTER STORAGEは省略しました。

  • 0000 - 7FFF 62256 RAM (U3 or U5) ... USER AREA 32KByte
  • 8000 - 81FF 28C256 EEPROM (U2) ... UT4 MONITOR
  • 8200 - FFFF 28C256 EEPROM (U2) ... 未使用。今後アプリケーションを書き込む予定。

操作方法

  • RESET後にRUN U(Utirity)ボタンを押すと$8000のROMが$0000に一時的に配置され、UT4モニタが起動します。
  • RESET後にRUN P(Program)ボタンを押すと$0000に配置されたアプリケーションが実行されます。
  • S5をSTEPにして、RESET後にRUN Pを押すことで1ステップ実行されます。
  • UT4モニタの使いかたはCDP18S020のマニュアルを参照してください。具体的な操作例はブログにあります。

プリント基板

CPUボード(Rev 0.3)

2020/2/14にRev 0.3基板を発注し、2020/2/28に納品されました。

cosmac_cpu_rev03_gerber_view.jpg

※組み立て時にはS2, S3,S4のプッシュスイッチの取り付け向きに注意してください。導通状態になっているピンが1番ピンなので事前にテスターで確認してください。また、今回S5はトグルスイッチにしましたのでご注意ください。

拡張ボード(Rev 0.3)

2022/2/2に基板を発注し2022/2/13に納品されました。現時点では機能的には問題ありません。

cosmac_ex_rev03_gerber_view.jpg

TV DISPLAYボード(Rev 0.2)

2020/1/4に発注し1/9に納品されました。現時点では機能的には問題ありません。

cosmac_tv_rev02_gerver_viewer.png

STG1861ディスプレイ+16進キーボード(Rev 0.1)

2020/3/31に発注しました。4/21に納品されました。

cosmac_stg1861_rev0_1_gerber_view.jpg

ガーバーデータ

PCB Errata

プリント基板の修正情報です。

CPU Board Rev. 0.1

  1. S4「RUN P」の中点がどこにも繋がっていないパターンミスがありました。GNDに落としてください。(@yanataka様 ご報告ありがとうございました。)
  2. シリアル入力を反転させる必要があります。余っているゲートで対応するには、U16の14番ピン、15番ピンをソケットに差し込まずに、写真のように浮かしてジャンパー線をはんだ付けしてください。15番ピンをJP2のEF4ピンに、14番ピンをJP2のセンターピンに接続してください。
  3. バスがプルアップになっていますが、正しくはプルダウンです。次の基板で修正します。(2019/10/21追記)

CPU Board Rev. 0.2

  1. 特に問題は見つかっておりませんが、拡張コネクタを横向きに実装する基板スペースがないのではみ出します。はんだ付けの際は真横に取り付けるように注意してください。
  2. @yanatoku 様から、sunrise-ev.com/1802.htmのMCSMP20.binの動作報告をいただきました。ただし、MCSMP20ではRXがEF3とのことなので、次版ではRev. 0.1のように、シリアル入力をEF4、EF3から選択できるようにします。(2019/11/24追記)

CPU Board Rev. 0.3

  1. 特に問題は見つかっておりません

Extention Board Rev. 0.1

  1. U3のアドレスラッチの入力がDB0-DB7になっていました。正しくはA0-A7です。該当のICピンを浮かせてジャンパー線で修正してください。
  2. U8のMODEがVccにつながっていました。入力ポートなのでGNDが正しいです。パターンカットとジャンパー線で修正してください。
  3. U9のS8, S9は使用しません。次回の基板ではJ4のピン数を8Pに修正します。
  4. CPUボードに接続するIDCコネクタの向きが逆でした。多少接続しずらいですが、次回の基板で修正します。

Extention Board Rev. 0.2

  1. LEDの種類によっては輝度が高いことがあります。LEDへの電源を切るためのジャンパーピン(JP1)に、1KΩ程度の抵抗を入れるとLEDの輝度が落とせます。本来であれば各LEDごとに抵抗を入れるべきなのでこれは次回の修正事項とします。
  2. GPIOの入出力ピンのシルクがずれていて、よく見るとピン数とあっていません。次版でシルクを修正します。(2019/11/24追記)

Extention Board Rev. 0.3

  1. CPUバスの配置を左側に変更しましたが、その際に1番ピンの位置が1.27mm上側にずれていました。フラットケーブル接続では支障はありませんが、次回改版する機会があれば修正します。
  2. LEDの種類によっては1KΩでもまだ明るすぎると感じるかもしれません。事前に輝度を確認の上抵抗値を決定してください。

STG1861ディスプレイ+16進キーボード Rev. 0.1

  1. TV ON信号とTPB信号のANDをとってSTG1861に接続すべきでしたが、そのゲートを入れ忘れたため、2階建てはんだ付けでNANDゲートの4011を追加しました。(製作記事を参照

STG1861ディスプレイ+16進キーボード Rev. 0.2

  1. Rev. 0.1の修正版で基板発注中です。

テスト中の基板

2019/10/6現在の実験中のCPUボードです。一部手直しのためジャンパー線をはんだ付けしています。

cosmac_mbc_serial_fix.jpg

2019/10/20現在の実験中のCPUボードと拡張ボードRev. 0.1です。

cosmac_mbc_ex_make6.jpg

2019/10/27現在の実験中のCPUボードと拡張ボード Rev. 0.2です。

cosmac_mbc_ext_rev02_check.jpg

2019/11/16に製作したCOSMAC Microboard Computerです。下側がCPUボード(Rev0.2)と上側が拡張ボード(Rev0.2)です。

cosmac_mbc_running.jpg

アプリケーション

  1. 文字列を表示するプログラム
  2. TINY BASIC
  3. MCSMP20
  4. COSMAC VIP Operating System
  5. COSMAC VIP CHIP-8 Interpreter

テスターの皆様

3名のかたにテスターとしてご協力いただいています。ありがとうございます。

  • @DAI_2040 様
  • @Sabotenboy 様
  • @yanatoku 様

利用上の注意

  • 本サイトに掲載している回路、技術、プログラムなどは無保証です。
  • これらの利用によって発生したトラブルには責任を負いかねます。自己責任にてご利用ください。
  • KiCADデータおよびガーバーデータはCC BY-SA 4.0 (Copyright (C) 2019 Kazuhiro Ouchi)です。
  • サンプルプログラムはMITライセンスです。