MZ-80A ROMディスク
概要
Sharp MZ80A は 48K RAM と 4K ROM を搭載しており、2K ユーザー RAM/ROM と 4K フロッピードライブ ROM を追加するオプションがあった以外、ハードウェアレベルでのメモリ拡張の余地はなく、電源投入時に使用できる追加ファームウェアを搭載する方法がありませんでした。アドオンはテープやフロッピーから制御ファームウェアを RAM にロードする方法に頼らざるを得ず、貴重なアプリケーション空間が消費されてしまいました。同時代の一部のマシンでは「バンキング」と呼ばれる方式が使われていました。これは大容量メモリを CPU アドレス空間内の小さなブロックに収め、必要な機能や接続されたハードウェアに応じて切り替えるという仕組みです。BBC Micro はその一例で、最大 16 バンク×16 KB を実現し、マシンをはるかに使いやすくしていました。
私が取り組んでいた別プロジェクトのひとつは、40/80 カラム切り替えカラー表示でした。このアップグレードには専用ソフトウェアが必要で、オリジナルモニターの完全な書き直しか、80 カラムモード用のパッチ済みコピーが必要になります。マシンをできる限りオリジナルに近い状態に保ちたかったため書き直しは選択肢になく、2 つの ROM(40 カラム用のオリジナルと 80 カラム用のパッチ済み版)が必要となりました。
こうして Sharp MZ80A に ROM ページングが必要になりました。つまり、使用するハードウェアアップグレードに応じて 4K モニター ROM アドレス空間に「切り替えて」使える複数の 4K ROM を収容するために、現代のフラッシュ RAM を使用するという発想です。
また、大容量フラッシュ RAM を使えば、テープやフロッピーに置かれていたプログラムを格納して高速ロードでき、コンピューターをより便利に使えることも分かりました。
このアップグレードはさらに一歩進み、4K モニター ROM と 2K ユーザー ROM 空間を使って最大 4×512 KB のフラッシュ RAM および/または 1×512 KB のスタティック RAM をマップします。これにより複数のページング ROM(理論上 1024×2K スロットおよび 128×4K スロット)および/またはページング RAM(256×2K スロット)が提供されます。バンキングを制御するための専用ソフトウェアも含まれており、私はこれを「ROM ファイリングシステム」と呼んでいます。
私が取り組んでいた別プロジェクトのひとつは、40/80 カラム切り替えカラー表示でした。このアップグレードには専用ソフトウェアが必要で、オリジナルモニターの完全な書き直しか、80 カラムモード用のパッチ済みコピーが必要になります。マシンをできる限りオリジナルに近い状態に保ちたかったため書き直しは選択肢になく、2 つの ROM(40 カラム用のオリジナルと 80 カラム用のパッチ済み版)が必要となりました。
こうして Sharp MZ80A に ROM ページングが必要になりました。つまり、使用するハードウェアアップグレードに応じて 4K モニター ROM アドレス空間に「切り替えて」使える複数の 4K ROM を収容するために、現代のフラッシュ RAM を使用するという発想です。
また、大容量フラッシュ RAM を使えば、テープやフロッピーに置かれていたプログラムを格納して高速ロードでき、コンピューターをより便利に使えることも分かりました。
このアップグレードはさらに一歩進み、4K モニター ROM と 2K ユーザー ROM 空間を使って最大 4×512 KB のフラッシュ RAM および/または 1×512 KB のスタティック RAM をマップします。これにより複数のページング ROM(理論上 1024×2K スロットおよび 128×4K スロット)および/またはページング RAM(256×2K スロット)が提供されます。バンキングを制御するための専用ソフトウェアも含まれており、私はこれを「ROM ファイリングシステム」と呼んでいます。
この文書は ROM ファイリングシステム および CP/M の文書とともに、RomDisk ドキュメントの起点となります。このリポジトリにはスキーマティクス、PCB ガーバーファイル、そして RomDisk ハードウェア・ROM ファイリングシステム・CP/M ソフトウェアを実装する Gitea リポジトリのサブモジュールが含まれています。
RomDisk ハードウェア
現在では Raspberry Pi などのすぐに使える開発ボードや STM32 シリーズなどのスタンドアロンマイクロコントローラーと豊富なソフトウェアライブラリを使えば、古い技術向けのアップグレードを作るのは非常に容易になっています。
ROM エミュレーターとして STM32F シリーズマイクロコントローラーを使うことも検討しました。価格・性能・パッケージングの面でのメリットがあるからです。しかしこのプロジェクトおよびその他の Sharp MZ80A アップグレードプロジェクト(tranZPUter を除く)の目標は、古い技術を使い、マシンをオリジナルに保つことでした。
コスト削減のために部品選定が重要な商業プロジェクトとは異なり、このプロジェクトでは Sharp が発売された当時に入手可能だった 74 シリーズなどの部品を使った学習の旅が焦点です(ただし、必要な機能のためにわずかに後から登場した大容量フラッシュ RAM とスタティック RAM は除きます)。
以下のサブセクションでは、すべてのバージョンを比較も含めてハードウェア設計と PCB の概要を説明します。
ROM エミュレーターとして STM32F シリーズマイクロコントローラーを使うことも検討しました。価格・性能・パッケージングの面でのメリットがあるからです。しかしこのプロジェクトおよびその他の Sharp MZ80A アップグレードプロジェクト(tranZPUter を除く)の目標は、古い技術を使い、マシンをオリジナルに保つことでした。
コスト削減のために部品選定が重要な商業プロジェクトとは異なり、このプロジェクトでは Sharp が発売された当時に入手可能だった 74 シリーズなどの部品を使った学習の旅が焦点です(ただし、必要な機能のためにわずかに後から登場した大容量フラッシュ RAM とスタティック RAM は除きます)。
以下のサブセクションでは、すべてのバージョンを比較も含めてハードウェア設計と PCB の概要を説明します。
v1.1 統合スキーマティク

RomDisk のバージョン 1.1 は比較的シンプルで、モニター ROM ソケットとユーザー ROM ソケットのそれぞれに 512K フラッシュ RAM を追加しました。フラッシュ RAM 内の正しい 4K/2K ページをプログラム制御で選択するためにラッチが追加されています。
v1.1 PCB
バージョン 1.0 PCB(マイナーな変更で v1.1 となったもの)。当初は細ピン DIP メモリデバイスを使用する予定でしたが、PDIP に変更したためボードを修正する必要がありました。

v2.0
バージョン 2.0 は v1.1 の開発成果を受け継ぎ、短所を改善したものです。具体的には、より多くのフラッシュ RAM 空間の必要性、SD カードの追加、追加スタティック RAM です。
SD カードの開発は当初、Sharp パラレルプリンターカードを使ったビットバン方式から始まり、ソフトウェアと基本的なフレームワークを構築しました。その後、ハードウェア SPI 回路を追加しました。ハードウェア回路はフラッシュ RAM デバイスとほぼ同等の速度であるのに対し、ソフトウェア SPI 回路はフロッピーディスクより速いもののROM より体感できるほど遅いです。
RomDisk 上の ROM ファイリングシステムで動作するよう CP/M(カスタム CBIOS を書くことで)を移植した際、RAM 不足という問題に気づきました。ROM バンキングをしても CP/M に使えるのは 46K のみで、名作 Star Trek V2 などのプログラムが動作しませんでした。この問題を解決するために追加の 512K RAM デバイスが加えられました。このRAM は 2K セグメントでページングでき、CP/M の制御ブロックや変数などのストレージとして使用することでより多くの空間を確保できるようになります。
これらすべてをまとめたものが v2.0 設計であり、スキーマティクスと PCB の詳細は以下のサブセクションに示します。
SD カードの開発は当初、Sharp パラレルプリンターカードを使ったビットバン方式から始まり、ソフトウェアと基本的なフレームワークを構築しました。その後、ハードウェア SPI 回路を追加しました。ハードウェア回路はフラッシュ RAM デバイスとほぼ同等の速度であるのに対し、ソフトウェア SPI 回路はフロッピーディスクより速いもののROM より体感できるほど遅いです。
RomDisk 上の ROM ファイリングシステムで動作するよう CP/M(カスタム CBIOS を書くことで)を移植した際、RAM 不足という問題に気づきました。ROM バンキングをしても CP/M に使えるのは 46K のみで、名作 Star Trek V2 などのプログラムが動作しませんでした。この問題を解決するために追加の 512K RAM デバイスが加えられました。このRAM は 2K セグメントでページングでき、CP/M の制御ブロックや変数などのストレージとして使用することでより多くの空間を確保できるようになります。
これらすべてをまとめたものが v2.0 設計であり、スキーマティクスと PCB の詳細は以下のサブセクションに示します。
v2.0 メモリスキーマティク

ハードウェアバージョン 2 は v1 の製作経験を基に構築されています。コーディドラッチ(0xEFF8〜0xEFFF 領域での指定回数の読み取りが必要なプログラマブルなもの)を追加し、制御レジスターと I/O へのアクセスを有効化します。それ以外の時はメモリとしてアクセスされます。また 2 つの追加(オプション)メモリを搭載してストレージと RAM を増加させています。追加の 2 デバイスはどちらもフラッシュ RAM にするか、1 つをフラッシュ RAM、もう 1 つをスタティック RAM にするかを選べます。スタティック RAM は CP/M の機能(利用可能な SD ドライブ数、TPA アプリケーションに使えるメモリ量など)を向上させるためのものです。
スキーマティクはメモリとコントロールロジックの 2 つの機能に分割されています。上記はモニター ROM を置き換える単一の 512K フラッシュ RAM を保持する新しいメモリスキーマティクです。書き込みアクセスは不可能です。なぜなら Sharp の基盤ハードウェアがモニター ROM 選択時の書き込みをブロックするからです。ユーザー ROM ソケットには 3 つのデバイスが搭載されています:バージョン 1 からの 512K フラッシュ RAM(書き込みアクセス付き)と追加の 2 デバイスです。
スキーマティクはメモリとコントロールロジックの 2 つの機能に分割されています。上記はモニター ROM を置き換える単一の 512K フラッシュ RAM を保持する新しいメモリスキーマティクです。書き込みアクセスは不可能です。なぜなら Sharp の基盤ハードウェアがモニター ROM 選択時の書き込みをブロックするからです。ユーザー ROM ソケットには 3 つのデバイスが搭載されています:バージョン 1 からの 512K フラッシュ RAM(書き込みアクセス付き)と追加の 2 デバイスです。
v2.0 コントロールロジックスキーマティク

2 番目のスキーマティクはコントロールロジックです。メインボードからのメモリ選択信号を、アドレスデコードと上位アドレスラインのためのプログラマブルラッチと組み合わせて必要なメモリ選択ラインを生成します。
コーディドラッチ(74HCT191)が追加されており、0xEFF8〜0xEFFF 領域への読み取りがプログラマブルな回数行われたときのみ I/O を有効化します。U14 のビット 5:3 が 74HCT191 を起動するために必要な読み取り操作回数を制御します。起動時に U14 ビット 5:3 は 0 であり、I/O を有効化するには 0xEFF8〜0xEFFF 領域への 16 回の読み取りを行って 74HCT191 の TC(ターミナルカウント)を起動し、次いで 0xEFF8〜0xEFFF 内の I/O 制御レジスターを有効化します。制御レジスターがアクティブな間、メモリ領域 0xE800〜0xEFF7 は選択されたフラッシュ RAM/RAM デバイスへのアクセスを維持します。0xEFF9 の位置から読み取ると 74HCT191 がリセットされて制御レジスターが無効化され、0xEFF8〜0xEFFF は選択されたフラッシュ RAM/RAM にアクセスするようになります。
さらに 2 つの SPI 回路が追加されており、選択に応じてどちらか一方のみが PCB に実装されます。1 つ目は Z80 を使って正しいシリアル信号とクロック信号を生成して SD カードと通信するソフトウェアビットバン SPI です。この方式はハードウェアコンポーネントが少なくて済みますが、かなり低速です。2 つ目は 8MHz で動作するハードウェア SPI で、Z80 が読み取りを実行するよりも短い時間で 1 バイトを転送/受信でき、フラッシュ RAM ストレージに近いパフォーマンスを実現します。
コーディドラッチ(74HCT191)が追加されており、0xEFF8〜0xEFFF 領域への読み取りがプログラマブルな回数行われたときのみ I/O を有効化します。U14 のビット 5:3 が 74HCT191 を起動するために必要な読み取り操作回数を制御します。起動時に U14 ビット 5:3 は 0 であり、I/O を有効化するには 0xEFF8〜0xEFFF 領域への 16 回の読み取りを行って 74HCT191 の TC(ターミナルカウント)を起動し、次いで 0xEFF8〜0xEFFF 内の I/O 制御レジスターを有効化します。制御レジスターがアクティブな間、メモリ領域 0xE800〜0xEFF7 は選択されたフラッシュ RAM/RAM デバイスへのアクセスを維持します。0xEFF9 の位置から読み取ると 74HCT191 がリセットされて制御レジスターが無効化され、0xEFF8〜0xEFFF は選択されたフラッシュ RAM/RAM にアクセスするようになります。
さらに 2 つの SPI 回路が追加されており、選択に応じてどちらか一方のみが PCB に実装されます。1 つ目は Z80 を使って正しいシリアル信号とクロック信号を生成して SD カードと通信するソフトウェアビットバン SPI です。この方式はハードウェアコンポーネントが少なくて済みますが、かなり低速です。2 つ目は 8MHz で動作するハードウェア SPI で、Z80 が読み取りを実行するよりも短い時間で 1 バイトを転送/受信でき、フラッシュ RAM ストレージに近いパフォーマンスを実現します。
v2.0 PCB
従来のスキーマティクおよび PCB ボードと同様に、このプロジェクトは KiCad スキーマティクキャプチャーと PCB レイアウトで設計されています。以下はコンポーネントの実装と組み立てを待つ完成したボードです。



v2.1
バージョン 2.1 は整理とバグ修正を行ったバージョンです。v2.0 でエラーを発見しました(Sharp MZ デコーダーがユーザー ROM のアドレスでなくてもユーザー ROM チップセレクトパルスを常に生成するという問題で、リフレッシュアドレスロジックデコードによるものと判明しました)。これがコントロールラッチリセットに干渉していました。そのため、ワイヤー AND ゲートを追加し、コーディドラッチをリセットする選択ラインを変更しました。
またこの機会に PCB のシルクスクリーンを整理し、Sharp MZ マザーボードに合わせてマーキングの向きを統一しました(以下のサブセクションを参照)。
またこの機会に PCB のシルクスクリーンを整理し、Sharp MZ マザーボードに合わせてマーキングの向きを統一しました(以下のサブセクションを参照)。
v2.1 メモリスキーマティク

バージョン 2.1 は v2.0 のバグ・短所の修正版です。v2.0 の回路図は既に変更を反映して更新されていますが、物理的なボードはコンポーネントの追加と配線で対応しています。したがってこの回路図は v2.0 と同一です(振り返ると、変更時点で v2.1 を作成するべきで、v2.0 のスキーマティクを更新すべきではありませんでした)。
元の v2.0 と v2.1 設計の間でメモリスキーマティクに変更はありません。
元の v2.0 と v2.1 設計の間でメモリスキーマティクに変更はありません。
v2.1 コントロールロジックスキーマティク

2 番目のスキーマティクはコントロールロジックです。v2.0 から v2.1 への変更点は、ダイオードで作成した AND ゲートの追加と、コーディドラッチクリア信号としての 0xEFF9 の再配線です。
v2.1 PCB
従来のスキーマティクおよび PCB ボードと同様に、このプロジェクトは KiCad スキーマティクキャプチャーと PCB レイアウトで設計されています。以下は組み立て済みの PCB と MZ-80A への取り付け例です。



取り付け手順
RomDisk の取り付けには、Sharp MZ-80A を開けてマザーボード上のモニター ROM とユーザー ROM チップの位置を確認する必要があります。
手順:
- マシンの電源を切り、電源ケーブルを外します。
- ケースの底面にある 2 本のネジを外し、トップカバーを持ち上げます。
- IC2(モニター ROM、Z80 近くの 24 ピン DIP)と IC3(ユーザー ROM、24 ピン DIP)の位置を確認します。チッププーラーまたは平刃のマイナスドライバーを使い、両端を均等にこじって曲げないように注意しながら慎重に両チップを取り外します。
- RomDisk PCB を取り付けます。2 列の DIP リフタービンアレイが空になった ROM ソケットに直接差し込まれます。ピン 1 のマーカーが揃うようにボードの向きを合わせ、完全に着座するまでしっかりと押し込みます。
- SD カードソケットケーブルをアクセスしやすい位置に配線します。多くのビルダーは既存の CMT 開口部を使うか、リアパネルに小さなスロットを切り込んでいます。
- ケースを閉じます。
フラッシュ ROM のプログラミング
フラッシュ ROM チップ(SST39SF040、各 512 KB)は取り付け前にプログラミングが必要です。あらかじめビルドされた ROM イメージは RFS Gitea リポジトリ の
releases/ ディレクトリから入手できます。minipro ユーティリティを備えた TL866 II+ または互換プログラマーが必要です。
| イメージファイル | フラッシュチップ | 説明 |
|---|---|---|
MROM_ROMDISK_256.bin |
U1(モニター ROM ソケット) | モニター ROM バンク:SA-1510、80 カラム SA-1510、CP/M CBIOS、RFS MROM ユーティリティ、1Z-013A モニター、IPL |
USER_ROM_256.bin |
U4(ユーザー ROM ソケット、チップ 1) | RFS バンク 0〜7、CP/M CBIOS バンク 8〜11、パック済み MZF アプリケーション |
USER_ROM_II_256.bin |
U5(ユーザー ROM ソケット、チップ 2) | 追加 MZF アプリケーション(オプション) |
USER_ROM_III_256.bin |
U6(ユーザー ROM ソケット、チップ 3) | 追加 MZF アプリケーション(オプション) |
# 各チップをボード外でプログラミングします(ソケットから取り外し、プログラミングして再挿入): minipro -p SST39SF040 -w MROM_ROMDISK_256.bin # モニター ROM チップ(U1) minipro -p SST39SF040 -w USER_ROM_256.bin # ユーザー ROM チップ 1(U4) minipro -p SST39SF040 -w USER_ROM_II_256.bin # ユーザー ROM チップ 2(U5、搭載時) minipro -p SST39SF040 -w USER_ROM_III_256.bin # ユーザー ROM チップ 3(U6、搭載時)
モニター ROM チップ(U1)は回路上での書き込みができません。Sharp MZ-80A のハードウェアがモニター ROM アドレス空間への書き込みアクセスをブロックするためです。すべてのフラッシュチップは挿入前にプログラミングが必要です。
SD カードイメージの書き込み
あらかじめビルドされた SD カードイメージは 10 個の RFS ドライブ(0〜9)と 7 個の CP/M ディスクイメージを単一のローバイナリに統合したものです。パーティションテーブルなしで SD カードに直接書き込まれます。
# Linux / macOS — /dev/sdX をご利用の SD カードデバイスに置き換えてください(lsblk または diskutil で確認): dd if=SHARP_MZ80A_RFS_CPM_IMAGE_1.img of=/dev/sdX bs=4M status=progress sync
2 GB 以上の FAT フォーマット済みマイクロ SD カードであれば使用できます。イメージは約 500 MB(10 RFS ドライブ + 7 CP/M ディスクイメージ)を占有します。カード上のイメージ領域を超えた残りのスペースは未使用となります。
RomDisk ソフトウェア
RomDisk ハードウェアを使用するには、バンクページングを可能にする包括的な Z80 アセンブラーメソッドを記述する必要があり、それに伴ってマシンのモニター(BIOS)機能をアップグレードする能力も生まれます。この Z80 ソフトウェアが ROM ファイリングシステムを形成しており、RFS リポジトリの Gitea リポジトリで公開されています。
ROM ファイリングシステム
ROM ファイリングシステム(RFS)は Sharp MZ-80A 向けのソフトウェアアップグレードで、主に MZ-80A RomDisk との組み合わせを想定していますが、tranZPUterFusionX プラットフォームにも移植されています。このソフトウェアは、最大 4×512 KB のフラッシュ RAM と 1×512 KB のスタティック RAM を搭載したリフタースocketを持つ RomDisk ドーターカードを介して、マザーボードのモニター ROM とユーザー ROM を置き換えます。
フラッシュ RAM の 1 つがモニター ROM ソケットにページングされ、他のフラッシュ RAM/スタティック RAM がユーザー ROM ソケットにページングされます。モニターフラッシュ RAM の最初の 32 KB(8 スロット×4K)とユーザーフラッシュ RAM の最初の 24 KB(12 スロット×2K)がページング ROM 専用で、残りは 256 バイトセクターにパックされた Sharp MZF 形式のバイナリイメージのストレージとして使われます。
起動時にモニター ROM が 0xE800 の RFS ファームウェアを検出して実行します。RFS が初期化され、SA-1510 サインオンバナーに
+ RFS vx.xx が付加されます。これは SD カードの状態に関わらず表示されます。SD カードはその後別途初期化されます。見つからない場合や初期化できない場合は、エラーコードが表示されて失敗を示します。オリジナルの * プロンプトが表示され、すべてのオリジナル SA-1510 コマンドが完全な RFS コマンドセットとともに引き続き利用可能です。詳細は RFS ユーザーマニュアル、テクニカルガイド、デベロッパーズガイドを参照してください。
Sharp MZ-700 モード
tranZPUter SW バージョン 2.1 ボードが開発され、RFS ソフトウェアは K64F プロセッサーなしでこのボードと共存できるよう更新されました(プロセッサーは搭載可能ですが RFS ではそのサービスを使用しません)。このボードは Sharp MZ-700 のハードウェアレベルの互換性ロジックを追加し、メモリ管理とキーボードリマッピングの両方をハードウェア内で行います。
このアップグレードに対応するため、RFS は MZ-700 の 1Z-013A モニター ROM とそれを有効化するコマンドを含むよう更新されました。有効化されると、マシンが互換モードに設定され、1Z-013A ROM がプライマリモニターとしてロードされてリセットされます。キーボードはリアルタイムにリマッピングされ、メモリも同様です。S-BASIC のロード、カセットの読み書きなどが物理的には MZ-80A 上で動作しながら MZ-700 上と同様に機能します。
このアップグレードに対応するため、RFS は MZ-700 の 1Z-013A モニター ROM とそれを有効化するコマンドを含むよう更新されました。有効化されると、マシンが互換モードに設定され、1Z-013A ROM がプライマリモニターとしてロードされてリセットされます。キーボードはリアルタイムにリマッピングされ、メモリも同様です。S-BASIC のロード、カセットの読み書きなどが物理的には MZ-80A 上で動作しながら MZ-700 上と同様に機能します。
RomDisk の入手
MZ-80A RomDisk は Tindie で完成品またはキット(フラッシュ ROM 書き込み済み)として入手できます。 あるいは、以下のパーツリストを使用して地元の販売店や Ebay から部品を購入することもできます。
必要なスキルレベル
PCB の組み立てには良好な SMD はんだ付けスキルが必要です。実績のある手順は以下のとおりです:
- ナノソルダーペーストをシリンジに入れ、各パッドに少量注入します。
- コンポーネントをパッドに配置します。ペーストの滲みや橋かけはあまり問題になりません(過剰なはんだをパッドに乗せなければ、はんだは熱源の周りに集中するためブリッジになりにくいです)。
- 0.5mm はんだこてを約 350℃ に設定し、各 IC とコンポーネントのピンに当てます。ブリッジが生じた場合は、熱を加えながら針を使ってブリッジを引き出します。
- あるいは、細ノズルで低風量の 350℃ のヒートガンを使い、はんだが流れて結合するまでコンポーネントの小区画を加熱します。
- 完成後、組み立てたボードをイソプロピルアルコールで洗浄し、余分なナノソルダーやフラックスを除去します。
上記の変形として IR オーブン(または 350℃ に達するキッチンオーブン)を使う方法もあります。はんだとコンポーネントを乗せたボードをオーブンに入れ、はんだが溶けるまで見守り、取り出して冷却します。ブリッジや接合不良の部品については若干の修正が必要な場合があります。
部品表
RomDisk v2.1 の製作コストを以下の表に示します。はんだペーストやフラックスなどの消耗品は含みません。表の全詳細を確認するには右にスクロールしてください。
ソース: MZ80-ROMPG_v2_1.sch
コンポーネント数: 68
| Ref | Qty | Price (Unit) | Price (10) | Price (100) | Price Ea (5 Off Sum) | Price Ea (10 Off) | Value | Cmp name | Footprint | Description | Vendor | ||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C2, C1, C3, C4, C6, C5, C12, C8, C9, C7, C15, C18, C10, C22, C20, C19, C11, C21, C13, C14, C16, | 21 | 0.2232 | 0.2232 | 0.1117 | 4.6872 | 2.3457 | 100nF | C_Small | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Unpolarized capacitor, small symbol | https://uk.farnell.com/multicomp/mc0805f104m500ct/cap-0-1-f-50v-20-y5v-0805/dp/2627484 | ||
| C17, | 1 | 0.0641 | 0.0641 | 0.0641 | 0.0641 | 100pF | C_Small | Capacitor_SMD:C_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Unpolarized capacitor, small symbol | https://uk.farnell.com/vishay/tmcma0j107mtrf/cap-100-f-6-3v-20/dp/2491474 | |||
| C23, | 1 | 0.7116 | 0.7116 | 0.7116 | 0.7116 | 100uF | CP_Small | Capacitor_SMD:C_1206_3216Metric_Pad1.42x1.75mm_HandSolder | Polarized capacitor, small symbol | https://uk.farnell.com/kemet/c0805c101j1gactu/cap-100pf-100v-5-c0g-np0-0805/dp/1414655 | |||
| D2, D1, | 2 | 0.358 | 0.213 | 0.716 | 0.426 | 1N5817 | 1N5817 | Diode_SMD:D_SOD-123 | 20V 1A Schottky Barrier Rectifier Diode, DO-41 | https://www.mouser.co.uk/ProductDetail/821-B0520LWRHG | |||
| J1, | 1 | 0.582 | 0.582 | 0.582 | 0.582 | SD CARD | Conn_01x06 | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Horizontal | Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/) | https://uk.farnell.com/wurth-elektronik/613006143121/connector-rcpt-6pos-1row-2-54mm/dp/2827951 | |||
| JP1, | 1 | 0.2652 | 0.22 | 0.2652 | 0.22 | A15/A14 | Jumper_NC_Dual | Connector_PinHeader_2.00mm:PinHeader_1x03_P2.00mm_Vertical | Dual jumper, normally closed | https://uk.farnell.com/te-connectivity/2355045-3/connector-header-3pos-1row-2mm/dp/3289742 | |||
| JP2, | 1 | 0.2652 | 0.22 | 0.2652 | 0.22 | A15/~WE~ | Jumper_NC_Dual | Connector_PinHeader_2.00mm:PinHeader_1x03_P2.00mm_Vertical | Dual jumper, normally closed | https://uk.farnell.com/te-connectivity/2355045-3/connector-header-3pos-1row-2mm/dp/3289742 | |||
| JP3, | 1 | 0.2652 | 0.22 | 0.2652 | 0.22 | A14/~WE~ | Jumper_NC_Dual | Connector_PinHeader_2.00mm:PinHeader_1x03_P2.00mm_Vertical | Dual jumper, normally closed | https://uk.farnell.com/te-connectivity/2355045-3/connector-header-3pos-1row-2mm/dp/3289742 | |||
| Jumper, JP1-3 | 3 | 0.057 | 0.057 | 0.171 | 0.171 | 2 pin jumper | https://uk.farnell.com/multicomp/mc-2205bg/mini-shunt-jumper-2way-2mm-pbt/dp/2834677 | ||||||
| JP4, | 1 | 0 | 0 | 0 | 0 | ~LTCHRST~ | SolderJumper_2_Open | Jumper:SolderJumper-2_P1.3mm_Bridged_Pad1.0x1.5mm | Solder Jumper, 2-pole, open | ||||
| JP6, | 1 | 0 | 0 | 0 | 0 | MOSI SEL | SolderJumper_3_Bridged12 | Jumper:SolderJumper-3_P1.3mm_Bridged2Bar12_Pad1.0x1.5mm | 3-pole Solder Jumper, pins 1+2 closed/bridged | ||||
| JP7, | 1 | 0 | 0 | 0 | 0 | UD1 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Bridged_Pad1.0x1.5mm | Solder Jumper, 2-pole, closed/bridged | ||||
| JP8, | 1 | 0 | 0 | 0 | 0 | UD2 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Bridged_Pad1.0x1.5mm | Solder Jumper, 2-pole, closed/bridged | ||||
| JP9, | 1 | 0 | 0 | 0 | 0 | UD3 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Bridged_Pad1.0x1.5mm | Solder Jumper, 2-pole, closed/bridged | ||||
| LG1, | 1 | 0 | 0 | 0 | 0 | Argo Logo | MountingHole | Graphic:Argo | Mounting Hole without connection | ||||
| R3, R2, R1, | 3 | 0.122 | 0.045 | 0.366 | 0.135 | 560R | R_Small_US | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Resistor, small US symbol | https://www.mouser.co.uk/ProductDetail/71-CRCW0805560RFKEAC | |||
| R4, | 1 | 0.0106 | 0.0106 | 0.0106 | 0.0106 | 220R | R_Small_US | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Resistor, small US symbol | https://uk.farnell.com/walsin/wr08x2200ftl/res-220r-1-150v-0805-thick-film/dp/2502698 | |||
| R5, R10, | 2 | 0.077 | 0.017 | 0.154 | 0.034 | 1K8 | R_Small_US | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Resistor, small US symbol | https://www.mouser.co.uk/ProductDetail/652-CR0805JW-182ELF | |||
| R8, R7, R6, | 3 | 0.077 | 0.018 | 0.231 | 0.054 | 1K2 | R_Small_US | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Resistor, small US symbol | https://www.mouser.co.uk/ProductDetail/652-CR0805FX-1151ELF | |||
| R9, | 1 | 0.077 | 0.045 | 0.077 | 0.045 | 10K | R_Small_US | Resistor_SMD:R_0805_2012Metric_Pad1.15x1.40mm_HandSolder | Resistor, small US symbol | https://www.mouser.co.uk/ProductDetail/71-CRCW080510K0FKEAC | |||
| U2, | 2 | 2.22 | 1.87 | 4.44 | 3.74 | (Monitor ROM) | 2732_Socket | Package_DIP:DIP-24_W15.24mm_Socket | REPROM 4 Ko | https://uk.rs-online.com/web/p/pcb-sockets/1981590/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E53656172636847656E65726963267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C7061727469616C267365617263685F7061747465726E5F6D6174636865643D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B24267365617263685F7061747465726E5F6F726465723D313333267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D4B4559574F52445F53494E474C455F414C5048415F4E554D45524943267365617263685F7370656C6C5F636F72726563745F6170706C6965643D59267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D5353512D3131322D30332D472D53267365617263685F6B6579776F72645F6170703D5353512D3131322D30332D472D53267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D | |||
| U3, | 2 | 2.22 | 1.87 | 4.44 | 3.74 | (User ROM) | 2716_Socket | Package_DIP:DIP-24_W15.24mm_Socket | REPROM 2KO | https://uk.rs-online.com/web/p/pcb-sockets/1981590/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E53656172636847656E65726963267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C7061727469616C267365617263685F7061747465726E5F6D6174636865643D5E5B5C707B4C7D5C707B4E647D2D2C2F255C2E5D2B24267365617263685F7061747465726E5F6F726465723D313333267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D4B4559574F52445F53494E474C455F414C5048415F4E554D45524943267365617263685F7370656C6C5F636F72726563745F6170706C6965643D59267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D5353512D3131322D30332D472D53267365617263685F6B6579776F72645F6170703D5353512D3131322D30332D472D53267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D | |||
| U2/U3 Straight Pin Header | 4 | 1.504 | 1.504 | 6.016 | 6.016 | https://uk.rs-online.com/web/p/pcb-headers/6742309/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E525353746F636B4E756D626572267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C267365617263685F7061747465726E5F6D6174636865643D5E2828282872737C5253295B205D3F293F285C647B337D5B5C2D5C735D3F5C647B332C347D5B705061415D3F29297C283235285C647B387D7C5C647B317D5C2D5C647B377D29292924267365617263685F7061747465726E5F6F726465723D31267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D52535F53544F434B5F4E554D424552267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D3637342D32333039267365617263685F6B6579776F72645F6170703D36373432333039267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D | |||||||
| U1,U4,U5,U6 32pin Turned Pin Socket | 4 | 0.774 | 0.774 | 3.096 | 3.096 | https://uk.rs-online.com/web/p/dil-sockets/1974081/?relevancy-data=7365617263685F636173636164655F6F726465723D31267365617263685F696E746572666163655F6E616D653D4931384E525353746F636B4E756D626572267365617263685F6C616E67756167655F757365643D656E267365617263685F6D617463685F6D6F64653D6D61746368616C6C267365617263685F7061747465726E5F6D6174636865643D5E2828282872737C5253295B205D3F293F285C647B337D5B5C2D5C735D3F5C647B332C347D5B705061415D3F29297C283235285C647B387D7C5C647B317D5C2D5C647B377D29292924267365617263685F7061747465726E5F6F726465723D31267365617263685F73745F6E6F726D616C697365643D59267365617263685F726573706F6E73655F616374696F6E3D267365617263685F747970653D52535F53544F434B5F4E554D424552267365617263685F77696C645F63617264696E675F6D6F64653D4E4F4E45267365617263685F6B6579776F72643D3139372D34303831267365617263685F6B6579776F72645F6170703D31393734303831267365617263685F636F6E6669673D3026&searchHistory=%7B%22enabled%22%3Atrue%7D | |||||||
| U5, U4, U1, | 2 | 1.4 | 1.34 | 2.8 | 2.68 | SST39SF040 | SST39SF040-Memory_Flash | Package_DIP:DIP-32_W15.24mm_Socket | https://www.mouser.co.uk/ProductDetail/804-39SF0407CPHE | ||||
| U6, | 1 | 4.04 | 3.52 | 4.04 | 3.52 | AS6C4008-55PCN | AS6C4008-55PCN-Memory_RAM | Package_DIP:DIP-32_W15.24mm_Socket | https://uk.rs-online.com/web/p/sram/7444561/?cm_mmc=UK-PPC-DS3A-_-google-_-DSA_UK_EN_Semiconductors_Index-_-SRAM%7C+Products-_-DYNAMIC+SEARCH+ADS&matchtype=b&aud-826607888587:dsa-1212641595354&s_kwcid=AL!7457!3!504893415565!b!!g!!&gclid=Cj0KCQjw4cOEBhDMARIsAA3XDRh4TCTF_wYFuxNMcgRPi_SnsWjU6rH-V_O0fBiKy5KjJ19J3uHoBHIaAuSTEALw_wcB&gclsrc=aw.ds | ||||
| U7, | 1 | 0.374 | 0.286 | 0.374 | 0.286 | 74HCT30 | 74LS30 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | 8-input NAND | https://www.mouser.co.uk/ProductDetail/771-HCT30D653 | |||
| U8, U16, | 2 | 0.343 | 0.257 | 0.686 | 0.514 | 74HCT32 | 74LS32 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | Quad 2-input OR | https://www.mouser.co.uk/ProductDetail/771-74HCT32D-T | |||
| U9, | 1 | 0.58 | 0.479 | 0.58 | 0.479 | 74LS04 | 74LS04 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | Hex Inverter | https://www.mouser.co.uk/ProductDetail/595-SN74LS04DR | |||
| U10, | 1 | 0.328 | 0.274 | 0.328 | 0.274 | 74HCT139 | 74LS139 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | Dual Decoder 1 of 4, Active low outputs | https://www.mouser.co.uk/ProductDetail/771-74HCT139D-Q100J | |||
| U11, | 1 | 0.252 | 0.207 | 0.252 | 0.207 | 74HCT125 | 74LS125 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | Quad buffer 3-State outputs | https://www.mouser.co.uk/ProductDetail/771-74HCT125D-T | |||
| U12, U14, U13, | 3 | 0.374 | 0.319 | 1.122 | 0.957 | 74HCT273 | 74HCT273 | Package_SO:SOIC-20W_7.5x12.8mm_P1.27mm | 8-bit D Flip-Flop, reset | https://www.mouser.co.uk/ProductDetail/771-74HCT273D-T | |||
| U15, U18, | 2 | 0.343 | 0.257 | 0.686 | 0.514 | 74HCT00 | 74LS00 | Package_SO:SOIC-14_3.9x8.7mm_P1.27mm | quad 2-input NAND gate | https://www.mouser.co.uk/ProductDetail/771-74HCT00D-T | |||
| U17, | 1 | 0.282 | 0.232 | 0.282 | 0.232 | 74HCT138 | 74LS138 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | Decoder 3 to 8 active low outputs | https://www.mouser.co.uk/ProductDetail/Nexperia/74HCT138D653?qs=P62ublwmbi8MKahyK7iY6g%3D%3D | |||
| U19, | 1 | 0.694 | 0.572 | 0.694 | 0.572 | 74HCT191 | 74LS191 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | 4-bit Synchronous Up/Down binary Counter | https://www.mouser.co.uk/ProductDetail/595-CD74HCT191M | |||
| U20, | 1 | 0.343 | 0.281 | 0.343 | 0.281 | 74HCT595 | 74LS595 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | 8-bit serial in/out Shift Register 3-State Outputs | https://www.mouser.co.uk/ProductDetail/771-74HCT595DQ100118 | |||
| U21, | 1 | 0.411 | 0.361 | 0.411 | 0.361 | 74HCT163 | 74LS163 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | Synchronous 4-bit programmable binary Counter | https://www.mouser.co.uk/ProductDetail/771-HCT163D653 | |||
| U22, | 1 | 0.442 | 0.376 | 0.442 | 0.376 | 74HCT165 | 74LS165 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | Shift Register 8-bit, parallel load | https://www.mouser.co.uk/ProductDetail/771-74HCT165D-T | |||
| Y1, | 1 | 0.442 | 0.418 | 0.442 | 0.418 | 16MHz | Crystal_Small | Crystal:Crystal_SMD_Abracon_ABM3-2Pin_5.0x3.2mm | Two pin crystal, small symbol | https://www.mouser.co.uk/ProductDetail/815-ABM3-16-B2-T | |||
| SD Card Adaptor | 1 | 2.77 | 2.6 | 2.77 | 2.6 | https://www.ebay.co.uk/itm/233362415633?hash=item36557be011:g:-xwAAOSwXk1dmxM7 | |||||||
| PCB - PCBWay | 1 | 3.7635 | 3.7635 | 3.7635 | 3.7635 | ||||||||
| 小計 | 46.5736 | 39.8655 | |||||||||||
| 送料 | 5 | 5 | |||||||||||
| VAT @ 20% | 10.315 | 8.9731 | |||||||||||
| 合計(GBP) | 61.89 | 53.84 |
1 枚だけの価格は必ずしも実態を反映していません。一部のコンポーネントは 10 個/50 個/100 個単位でしか購入できないためです。たとえば PCB 単体でも 10 枚で USD80(税込み)となり、複数個購入のコストを製作枚数で割り振る必要があります。
クレジット
サードパーティの設計に基づいているか派生したコンポーネントについては、関連するソースファイルのヘッダーやコード内でオリジナル作者の著作権表示を掲載し、適切なクレジットを付与しています。サードパーティのソフトウェアはすべて、私の知る限りオープンソースで自由に使用可能です。ライセンス上の制限を持つコンポーネントが見つかった場合は、このリポジトリから削除し、代わりに適切なリンク/設定を提供します。
ライセンス
本設計(ハードウェアおよびソフトウェア)は GNU Public Licence v3 のもとでライセンスされています。
GNU Public License v3
本プロジェクト中で GPL v3 と表記されているソースファイルおよびバイナリファイルはフリーソフトウェアです。Free Software Foundation が発行する GNU 一般公衆利用許諾書(バージョン 3 またはそれ以降のバージョン)の条件のもとで、再配布および/または改変することができます。
ソースファイルは有用であることを期待して配布されていますが、商品性や特定目的への適合性に関する保証を含め、いかなる保証も行いません。詳細については GNU 一般公衆利用許諾書をご参照ください。
本プログラムとともに GNU 一般公衆利用許諾書のコピーを受け取っているはずです。受け取っていない場合は http://www.gnu.org/licenses/ をご覧ください。
ソースファイルは有用であることを期待して配布されていますが、商品性や特定目的への適合性に関する保証を含め、いかなる保証も行いません。詳細については GNU 一般公衆利用許諾書をご参照ください。
本プログラムとともに GNU 一般公衆利用許諾書のコピーを受け取っているはずです。受け取っていない場合は http://www.gnu.org/licenses/ をご覧ください。