SBC6800 技術資料
SBC6800 はモトローラ MC6800 で動作するシングルボードコンピュータです。1970 年代に流行した数々の有名なソフトウェア、たとえば Mikbug、VTL、MicroBASIC などを再現することができます。

SBC6800 の概要

SBC6800 は現在なお入手可能な部品でモトローラ MC6800 を動かしてみようというオープンソースのプロジェクトです。プリント基板はスイッチサイエンスで有償頒布しています。部品はご自身で用意してください（ただし、ROM のみ SBC6800 用 ROM セットを有償頒布しています）。運用には AC アダプタと USB- シリアル変換ケーブルが必要です。
部品表、回路図、各種の技術的な情報は本文書に記載し、関連のソフトウェアはデータパックで別途配布します。
❶プリント基板─スイッチサイエンス（https://www.switch-science.com/catalog/3581/）で購入してください。
❷クロックジェネレータ─ PIC12F1822 にデータパックの mc6800crgen.hex を書き込んだ上で取り付けてください。
❸通信クロックジェネレータ─ PIC12F1822 にデータパックの osc1536.hex を書き込んだ上で取り付けてください。
❹シリアル端子─ TTL-232R-5V または同等の USB- シリアル変換ケーブルでパソコンと接続してください。
❺ ROM ─ 2732 型～ 27256 型に対応します。有償頒布の SBC6800 用 ROM セットをご利用いただくことができます。
❻ DC ジャック─電圧 5V、電流 2A 以上、内径 2.1 mm、センタープラスの AC アダプタを接続してください。
❼ RAM ─ HM6264ASP/ 同 ALSP に対応します。プリント基板を加工すると HM6116ASP// 同 ALSP に対応します。
❶❷

❸

❹

❺

❻

❼

プリント基板は海外の格安製造サービスで製造しておりますので、厳密に見ると加工に多少の荒れや歪みがあります
が、目立つ傷、シルクのカスレ、機能上の問題がなければ良品の扱いとさせていただきます。プリント基板の部品面には部品番号が印刷されています。部品表や回路図の部品番号と照合し、所定の位置に部品を取り付けてください。RAMに HM6116ASP/ 同 ALSP を取り付ける場合はハンダ面のソルダバッドを加工する必要があります。

◉部品面

◉ハンダ面

スイッチサイエンスの SBC6800 ルーズキットのページ─ https://www.switch-science.com/catalog/3581/

本体の部品本体の部品は下に示す部品表にしたがって揃えてください。部品表の部品番号とプリント基板の部品番号を照合し、所定の位置に取り付けると完成です。DC ジャック（CON1）は一般的な平脚ではなく細脚ですのでご注意ください。IC類は IC ソケットを介して取り付けます。ROM（IC2）はスイッチサイエンスで販売している SBC6800 用 ROM セットをご利用いただけます。TTL（IC5 と IC6）は標準タイプまたは LS タイプでなければなりません（HC タイプはダメです）。
部品表
部品番号

仕様

数量

代替可能品

試作時購入元若松通商、オレンジピコ

［注 1］

IC1

MC68A00P

1HD468A00P

IC22764 型の EPROM

12732 型～ 27256 型

若松通商、オレンジピコ（EEPROM）
［注 2］

IC3

HM6264ASP/ 同 ALSP

1HM6116ASP/ 同 ALSP

若松通商、オレンジピコ

IC4

MC68A50P

1HD63A50P

若松通商、オレンジピコ

IC5SN74LS138N

1HD74LS138P

千石電商、若松通商、オレンジピコ

IC6SN74LS00N

1HD74LS00P

千石電商、若松通商、オレンジピコ
秋月電子通商、オレンジピコ［注 3］

IC7 ～ IC8

PIC12F1822-I/P

2

─

R14.7k Ω（1/4W）

1

カーボン抵抗

秋月電子通商、オレンジピコ［注 4］

C1 ～ C80.1 μ F（50V）

8積層セラミックコンデンサ

秋月電子通商C910 μ F ～ 100 μ F（16V） 1

電解 / タンタルコンデンサ

秋月電子通商、オレンジピコ

CON118742

12.1mm φ細脚 DC ジャック

秋月電子通商、スイッチサイエンス

S1SS-12D00-G5

1スライドスイッチ

秋月電子通商、オレンジピコ─

2227-40-06

140 ピン IC ソケット 600mil

秋月電子通商、オレンジピコ─

2227-28-06

128 ピン IC ソケット 600mil

秋月電子通商、オレンジピコ─

2227-28-03

128 ピン IC ソケット 300mil

秋月電子通商、オレンジピコ─

2227-24-06

124 ピン IC ソケット 600mil

オレンジピコ─2227-16-03

116 ピン IC ソケット 300mil

秋月電子通商、オレンジピコ─

2227-14-03

114 ピン IC ソケット 300mil

秋月電子通商、オレンジピコ─

2227-08-03

28 ピン IC ソケット 300mil

秋月電子通商、オレンジピコ

1

1 列 L 型ピンヘッダ

千石電商、秋月電子通商、オレンジピコ

─

［注 5］

2545-1X40［注 1］標準の 6800 で動作する例が多数ありますが、68A00 または 68B00 のご利用を推奨します。
［注 2］プリント基板のソルダバッドを加工する必要があります［注 3］IC7 に mc6800crgen.hex、IC8 に osc1536.hex を書き込んでください［注 4］積層セラミックコンデンサはピン間隔 2.54mm で統一しています［注 5］40 ピンのうち 6 ピンのみを使用します［通販サイト］
秋月電子通商─ http://akizukidenshi.com/
オレンジピコ─ https://store.shopping.yahoo.co.jp/orangepicoshop/
千石電商─ http://www.sengoku.co.jp/
若松通商─ http://wakamatsu.co.jp/biz/※ aitendo に SBC6800 部品パック（IC 類を除く）がございます─ https://www.aitendo.com/product/16812※ 2020 年 8 月 15 日時点の情報です。

プログラムの書き込み

MC6800 が要求するクロックとリセット信号は PIC12F1822（IC7）で生成します。PIC12F1822 に mc6800crgen.hex を書き込んでから取り付けてください。mc6800crgen.hex を書き込むと PIC12F1822 は下に示す機能を持ちます。
5V─❶
リセット出力（負論理）─❷
クロック出力φ2─❸
MCLR─❹❽─GND❼─手動リセット入力（負論理）❻─無接続❺─クロック出力φ1

MC68A50 が要求する通信クロックは PIC12F1822（IC8）で生成します。PIC12F1822 に osc1536.hex を書き込んでから取り付けてください。osc1536.hex を書き込むと PIC12F1822 は下に示す機能を持ちます。
5V─❶❽─GND

無接続─❷❼─無接続無接続─❸❻─無接続

MCLR─❹❺─通信用クロック出力

ROM（IC2）には MC6800 の機械語を書き込みます。データパックに Mikbug（Mikbug.HEX）や VTL（VTLSA.HEX）などの機械語ファイルがあります。使用する ROM により、書き込みかたが次のとおり異なります。
◉ 2732 型─次ページ「代替メモリの使用法」で説明します。
◉ 2764 型─機械語ファイルの $E000 を ROM の $0000 に指定して書き込みます。
◉ 27128 型─機械語ファイルの $C000 を ROM の $0000 に指定して書き込みます。そのうち $E000 以降が有効です。
◉ 27256 型─機械語ファイルの $8000 を ROM の $0000 に指定して書き込みます。そのうち $E000 以降が有効です。

ROM の書き込みには紫外線消去型 EPROM のイレーサと書き込み装置が必要です。これらをお持ちでないかたは、スイッチサイエンスで販売している SBC6800 用 ROM セット（1500 円 + 税）をご利用ください。Mikbug および VTL を書き込んだ ROM の 2 個セットです。使用する ROM は新品の 27256 型で、メーカーや品番は出荷時期により異なります。
●が Mikbug です。
●が VTL です。
動作確認後に印を付けています。

EPROM の品不足と原価高騰により、販売の継続が難しくなりつつあります。当面の在庫は確保しましたが、いずれ販売終了せざるを得ないかもしれません。ご自身で書き込みできるかたは、ご自身で部品調達し、書き込んでいただけますよう、ご協力をお願いいたします。

スイッチサイエンスの SBC6800 用 ROM セットのページ─ https://www.switch-science.com/catalog/3582/

代替メモリの使用法

ROM（IC2）に 2732 型を使用する場合は、次のように書き込んで、取り付けます。
❶機械語ファイルの $E000 を ROM の $0000 に指定して書き込みます。
❷書き込み装置がイレースチェックとベリファイをしないように設定します。
❸機械語ファイルの $F000 を ROM の $0000 に指定して上書きします。
❹ IC ソケットのインデックス側を空けて尻揃えで取り付けます。

RAM（IC3）に HM6116ASP/ 同 ALSP を使用する場合は、次のようにプリント基板を加工して、取り付けます。
❶プリント基板はソルダバッドの接続しているほうを切断し、離れているほうをハンダブリッジします。
❷ IC ソケットのインデックス側を空けて尻揃えで取り付けます。

断切
続接運用に必要となるもの

SBC6800 を運用するには AC アダプタと USB- シリアル変換ケーブルが別途必要です。
◉ AC アダプタ─電圧 5V、電流 2A 以上、内径 2.1 mm、センタープラス（秋月電子通商 GF12-US0520 など）◉ USB- シリアル変換ケーブル─ FTDI TTL-232R-5V または同等品（信号電圧 5V に設定できるもの）

GF12-US0520

TTL-232R-5V

SBC6800 のシリアル端子に印刷されている信号名は MC6850 の出力です。これと USB- シリアル変換ケーブルの信号がたすき掛けになるように接続します。すなわち、TXD ⇄ RXD、CTS ⇄ RTS（または DTR）、GND ⇄ GND となるのが正常です。なお、信号電圧 3.3V/5V 対応 USB- シリアル変換ケーブルを利用される場合は 5V に設定してください。

TTL-232R-5V の接続例

CH340G の接続例

端末ソフトの設定

SBC6800はパソコンの端末ソフトで操作します。通信方式は非同期シリアル、通信速度は9600bps、通信形式はデー
タ長8ビット、パリティなし、ストップビット1です。また、ファイルのアップロードなどに備え、多少の遅延を設定してください。端末ソフトがTeraTermの場合、［設定］→［シリアルポート］と選択して下に示すとおり設定します。

回路図

REV05は無接続
REV06以降はGND

SBC6800 の回路図を下に示します。部品番号はプリント基板や部品表と一致しています。

アドレスマップ

SBC6800 のアドレスマップを下に示します。

$0000

標準メモリの場合

$0000
$07FF

代替メモリの場合6116ASP/ 同 ALSP 実装領域

6264ASP/ 同 ALSP 実装領域

$1800
$1FFF

$1FFF

6116ASP/ 同 ALSP ゴースト

$8000
$8018

6850（ステータス）$8019

6850（データ）

27256 無効領域

$C000

27128 無効領域

$E000

$E000

2732 実装領域
2764 実装領域

$EFFF
$F000
2732 ゴースト

$FFFF

$FFFF

SBC6800 版 Mikbug

データパックの MIKBUG.* は SBC6800 版の Mikbug です。本家 Mikbug の使いかたなどはネットの MIKBUG Operating
System（https://deramp.com/swtpc.com/MP_A/MIKBUG_Index.htm）で配布されているマニュアルをご覧ください。
ただし、本家の変数領域は $A000 ～ですが、SBC6800 版は $1F00 ～です。したがって、P コマンドや G コマンドに関係する変数領域のアドレスは、本家のマニュアルの $A000 ～を $1F00 ～に読み替えてください。

$0000
空き領域

$1EFF
$1F00
$1FFF

Mikbug 変数領域

$8018

6850（ステータス）$8019

6850（データ）$1F02

記録開始アドレス（上位）$1F03

記録開始アドレス（下位）$1F04

記録終了アドレス（上位）$1F05

記録終了アドレス（下位）$1F48

実行開始アドレス（上位）$1F49

実行開始アドレス（下位）$E07E

文字列出力サブルーチン$E1AC1 文字入力サブルーチン$E1D1

1 文字出力サブルーチン$E000

Mikbug 本体$FFFF
書籍『モトローラ 6800 伝説』（ラトルズ）は SBC6800 版 Mikbug のより丁寧な使いかたと MicroBASIC1.3 の動かしかたを説明しています。そのほか MC6800 と SBC6800 のありとあらゆる情報が満載です。
◉出版社の商品紹介ページ─ http://www.rutles.net/products/detail.php?product_id=794◉アマゾンの商品紹介ページ─ https://www.amazon.co.jp/dp/4899774729/◉スイッチサイエンスの商品紹介ページ─ https://www.switch-science.com/catalog/3575/

SBC6800 版 Mikbug 用 MITS Altair680 BASIC

データパックの MA680BAS.s は SBC6800 版 Mikbug 用 MITS Altair680 BASIC です。これは本来の MITS Altair680 BASICに、はせりんさんご提供のパッチと開始アドレスを追加してあります。したがって、Mikbug の L コマンドで読み込み、そのまま G コマンドで実行することができます。操作の一例を次に示します。端末ソフトが TeraTerm で、別項「端末ソフトの設定」にしたがって設定してあるものとします。

❶ L を押す❷［ファイル］→［ファイル送信］を選択❸ MA680BAS.s を選択❹待つ（このダイアログが閉じてもまだしばらく続きます）❺ G を押すMITS Altair680 BASIC は最初に 3 つの質問をします。それぞれ、次のとおり答えてください。
◉ MEMORY SIZE? ─ 7935 以下の数字を入力◉ TERMINAL WIDTH? ─ 1 行文字数を入力◉ WANT SIN-COS-TAN-ATN? ─三角関数を使うなら Y、使わないなら N を入力

SBC6800 版 VTL

データパックの VTLSA.* は SBC6800 で単独動作する VTL（正式名称は VTL-2）です。本家 VTL は MITS Altair680 のモニタで起動しますが、VTLSA.* は ROM に書き込んでおいて直接起動する構造に修正してあります。VTLSA.* の使いかたは本家 VTL と同じです。VTL についてはネットにたくさんの情報が上がっていますから検索してください。また、書籍『モトローラ 6800 伝説』（ラトルズ）
でプログラムの実例を交えながら説明しています。

$0000
VTL 作業領域$0108& に代入する値はつねに 264* に代入できる最小値は 1024
RAM 空き領域

$1FFF
$2000

6116ASP/ 同 ALSP を取り付けた場合* に代入できる最大値は 2048

* に代入できる最大値は 8192
未実装領域

VTL は起動したあと使用する前に、実装されている RAM のうちプログラム保存領域の範囲を指定します。まず、システ
ム変数 * に末尾のアドレスを代入します。これは最低 1024、最大 8192（RAM が HM6116ASP/ 同 ALSP なら 2048）です。
次に、システム変数 & に先頭のアドレスを代入します。これは、つねに 264 です。指定をしないで使うと暴走します。

別途配布物一覧

データパック（sbc6800_datapack.zip）は下に示すファイルを含みます。

filelist.txt - ファイルリスト。このページと同じ内容です。
SBC6800eagle - SBC6800 の EAGLE データ。
mc6800crgen.hex - PIC12F1822 をクロックジェネレータとして使うファームウェア。
mc6800crgen.X - mc6800crgen.hex の MPLAB XIDE プロジェクト。
osc1536.hex - PIC12F1822 をボーレートジェネレータとして使うファームウェア。
osc1536.X - osc1536.hex の MPLAB XIDE プロジェクト。
TESTPOL.* - 端末と文字のやり取りをするテストプログラム。
TESTINT.* - 端末と文字のやり取りをするテストプログラムの受信割り込み版。
MIKBUG.* - SBC6800 用 MIKBUG。
MICBAS13.* - SBC6800 用 MIKBUG で動作する MicroBASIC Ver.1.3。
RNDSORT.BAS - MicroBASIC Ver.1.3 のサンプルプログラム。
VTLSA.* - SBC6800 用 VTL 単独動作可能版。
VTLALPHA.VTL - VTL のサンプルプログラム。
PROM680.* - SBC6800 用 680 モニタ (MITS Altair680 モニタ移植版 )。
VTL.* - 本家 VTL。SBC6800 用 680 モニタと同じ ROM に上書きすると J FC00 で起動。
MA680BAS.s - SBC6800 用 MIKBUG で動作する MITS Altair680 BASIC VER1.1 REV3.2。
ASCIIART.BAS - MITS Altair680 BASIC で動くマンデルブロ集合プログラム。

SBC6800eagle は CC BY-SA 3.0 です。
mc6800crgen.*、osc1536.*、TESTPOL.*、TESTINT.*、RNDSORT.BAS はパブリックドメインです。
そのほかのファイルは原作者の宣言にしたがってください。

データパックは下に示すページのリンクからダウンロードしてください。
◉スイッチサイエンスの SBC6800 ルーズキットのページ─ https://www.switch-science.com/catalog/3581/◉『モトローラ 6800 伝説』サポートページ─ http://www.rutles.net/download/472/index.html（更新がやや遅れます）

SBC6800 技術資料
2017 年 12 月 30 日 初版発行
2021 年 2 月 15 日 改訂第 3 版発行
著者─鈴木哲哉
Copyright © 2017-2021 Tetsuya Suzuki
CC BY-SA 3.0