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 ファイリングシステム」と呼んでいます。

この文書は ROM ファイリングシステム および CP/M の文書とともに、RomDisk ドキュメントの起点となります。このリポジトリにはスキーマティクス、PCB ガーバーファイル、そして RomDisk ハードウェア・ROM ファイリングシステム・CP/M ソフトウェアを実装する Gitea リポジトリのサブモジュールが含まれています。


RomDisk ハードウェア

現在では Raspberry Pi などのすぐに使える開発ボードや STM32 シリーズなどのスタンドアロンマイクロコントローラーと豊富なソフトウェアライブラリを使えば、古い技術向けのアップグレードを作るのは非常に容易になっています。

ROM エミュレーターとして STM32F シリーズマイクロコントローラーを使うことも検討しました。価格・性能・パッケージングの面でのメリットがあるからです。しかしこのプロジェクトおよびその他の Sharp MZ80A アップグレードプロジェクト(tranZPUter を除く)の目標は、古い技術を使い、マシンをオリジナルに保つことでした。

コスト削減のために部品選定が重要な商業プロジェクトとは異なり、このプロジェクトでは Sharp が発売された当時に入手可能だった 74 シリーズなどの部品を使った学習の旅が焦点です(ただし、必要な機能のためにわずかに後から登場した大容量フラッシュ RAM とスタティック RAM は除きます)。

以下のサブセクションでは、すべてのバージョンを比較も含めてハードウェア設計と PCB の概要を説明します。

v1.1 統合スキーマティク

image

RomDisk のバージョン 1.1 は比較的シンプルで、モニター ROM ソケットとユーザー ROM ソケットのそれぞれに 512K フラッシュ RAM を追加しました。フラッシュ RAM 内の正しい 4K/2K ページをプログラム制御で選択するためにラッチが追加されています。

v1.1 PCB


バージョン 1.0 PCB(マイナーな変更で v1.1 となったもの)。当初は細ピン DIP メモリデバイスを使用する予定でしたが、PDIP に変更したためボードを修正する必要がありました。

Assembled PCB


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 の詳細は以下のサブセクションに示します。

v2.0 メモリスキーマティク

image

ハードウェアバージョン 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 デバイスです。

v2.0 コントロールロジックスキーマティク

image

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 ストレージに近いパフォーマンスを実現します。

v2.0 PCB


従来のスキーマティクおよび PCB ボードと同様に、このプロジェクトは KiCad スキーマティクキャプチャーと PCB レイアウトで設計されています。以下はコンポーネントの実装と組み立てを待つ完成したボードです。

PCB TopSide

PCB UnderSide

Assembled PCB


v2.1

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

またこの機会に PCB のシルクスクリーンを整理し、Sharp MZ マザーボードに合わせてマーキングの向きを統一しました(以下のサブセクションを参照)。

v2.1 メモリスキーマティク

image

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

元の v2.0 と v2.1 設計の間でメモリスキーマティクに変更はありません。

v2.1 コントロールロジックスキーマティク

image

2 番目のスキーマティクはコントロールロジックです。v2.0 から v2.1 への変更点は、ダイオードで作成した AND ゲートの追加と、コーディドラッチクリア信号としての 0xEFF9 の再配線です。

v2.1 PCB


従来のスキーマティクおよび PCB ボードと同様に、このプロジェクトは KiCad スキーマティクキャプチャーと PCB レイアウトで設計されています。以下は組み立て済みの PCB と MZ-80A への取り付け例です。

PCB TopSide

PCB UnderSide

Installation


取り付け手順

RomDisk の取り付けには、Sharp MZ-80A を開けてマザーボード上のモニター ROM とユーザー ROM チップの位置を確認する必要があります。
手順:
  1. マシンの電源を切り、電源ケーブルを外します。
  2. ケースの底面にある 2 本のネジを外し、トップカバーを持ち上げます。
  3. IC2(モニター ROM、Z80 近くの 24 ピン DIP)と IC3(ユーザー ROM、24 ピン DIP)の位置を確認します。チッププーラーまたは平刃のマイナスドライバーを使い、両端を均等にこじって曲げないように注意しながら慎重に両チップを取り外します。
  4. RomDisk PCB を取り付けます。2 列の DIP リフタービンアレイが空になった ROM ソケットに直接差し込まれます。ピン 1 のマーカーが揃うようにボードの向きを合わせ、完全に着座するまでしっかりと押し込みます。
  5. SD カードソケットケーブルをアクセスしやすい位置に配線します。多くのビルダーは既存の CMT 開口部を使うか、リアパネルに小さなスロットを切り込んでいます。
  6. ケースを閉じます。

フラッシュ 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 上と同様に機能します。

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/ をご覧ください。