SBC8080ルーズキット+TK-80サブボードの製作(TK-80サブボード製作編)

2019/01/11

 今回は、蛇の目基板に手配線で製作しますので、秋月電子の「両面スルホール・ガラス・ユニバーサル基板Aタイプ」から、幅はSBCサイズ、奥行きは、118mmに切り出すことにします。位置決めは、スタッキングコネクタをSBCボードと串刺しにし、切り出し線、取り付け穴決めを行い、加工をしました。


次にキーボードですが、ラベルキャップ付タクトスイッチの値段が25個そろえると結構高く、大きなピン穴が必要で、取り付け基板も作成が大変そうでしたので、割り切ってZK-80を購入して、キーボード部のみを流用しました。(残りは、何かに使いたいと思います)


①TK-80サブボードの配線


例のごとく、ソケットを配置・仮止めを行い、GNDと5Vラインを先にスズめっき線で配線し、パスコンも取り付けます。各ICに近くのCRを取り付け、ローカルな配線から接続していきます。最後に広域の配線を行うと、配線がしやすくなります。


一通りの配線チェックを行った後、TK-80サブボードのICを指さずに、SBC8080の上にTK-80 SUBボードを積み、SBC8080 CPUボードとSUBボードからTK-80サブボードへ必要な追加信号を接続し、正常に立ち上がることを確かめます。これで、ショート系の誤配線が無いことを確認できます。


次に、DMAアドレスを83F8、モードスイッチをAUTOにし、データバスに接続されている8255、74ACT573以外のICを差し込み、正常に立ち上がることを確かめます。最後は、8255、74ACT573を差し込み、正常に立ち上がることを確かめます。


下記は、配線済みのTK-80サブボードです。





機械語モード付きタイニーBASICからMONコマンドでモニターに入り、下記のプログラムで、LED表示をONします。


8000
MVI A,92
OUT FB
MVI A,80
OUT FA
RET
EXEC 8000


次に、下記により、指定されたLEDのセグメントが表示されればOKです。


83F8
DEFINE 01,02,04,08,10,20,40,80


以上のように問題なければ、CMT用の発振回路、DMA用NE555の出力波形を確認し、問題ないことを確かめます。この時点で、LEDが結構明るく、LEDセグメントドライバの電流が点灯時32mA程度となっており、気になるならR30~R37の電流制限抵抗値を増やすと良いかもしれません。


②TK-80モニタの動作確認


「TK-80ユーザーマニュアル」の「モニタ・アセンブル・リスト」からバイナリを抜出すと、「0」が「O」になっている部分が見つかりました。とりあえず修正後、ROMに書き込み立ち上げると、LEDの表示が「0000 0004」と表示はするものの、暴走しているようでした。


配線ミスを再度行ったところ、未配線が見つかり、修正しましたが、表示は変わりませんでした。このマニュアルの誤植について、指摘があったホームページをみつけましたので、全て反映しましたが、まだ駄目でした。そこで、「機械語モード付きタイニーBASIC」に戻し、TK-80モニタを逆アセンブルして、ソースコードとの比較をせっせと行うと、出てきました。すべてを修正すると、「0000 0000」の表示がされ、キーボードが動作するようになりました。


誤植ヵ所は、


0012	000A	D3F8		OUT	OFBH	; PROGRAM TO 8255
0057 006E C9 DAD B
0271 01CD E6FO0 ANI OFOH ; MASK 'F0'
0274 01D1 OF RRC
0275 01D2 OF RRC ; SHIFT RIGHT 4 BITS
0296 01E9 5C06 SEGD: DB 5CH,06H,5EH,4FH,66H,6DH
  5B4F
  666D
0360 024E D8F8 IN 0F8H ; KEY SCAN 0--->7
0426 02BC OF RRC ; DATA SHIFT


下記が、動作中のSBC8080+TK-80サブボードです。コンパクトに実現できました。



SBC8080 CPUボードのREADYヘッダーをTK-80接続、同様にSBC8080 SUBボードのINTヘッダーを切断すると、STEP動作も問題なく動作しました。CMT出力も問題なさそうでした。


最後に、下記のような内容を書き込み集合ROMを作成します。


0000-3FFF PTBEXSA

4000-5FFF MSBAS80

6000-7FFF TK-80 MONITOR


これで、ジャンパ切替のみで、SBC8080、TK-80両方が楽しめます。参考にしていただければと思います。

(再クロール更新:2022/12/22)

SBC8080ルーズキット+TK-80サブボードの製作(SBC8080製作編)

2019/01/10

 ①SBC8080 CPUボードの改造・製作


・8224のREADYから8080のREADYの配線を箔カットして、8080のREADYを中央ピンにして、8080のWAIT、8224のREADYの3Pヘッダーを追加する

・TK-80サブボードのため、8224の-STSTB、8080のD5、8080のINTEをピンフレームで出力する

・CPUクロックの水晶は、18.432MHzに変更する


その他は特に変更なくはんだ付けし、12Vの電圧確認、8224差し込み後の発振確認、-5Vの電圧確認まで行いました。


②SBC8080 SUBボードの改造・製作


・8251割り込み出力(RxRDY)とINTの配線を箔カットし、2Pピンヘッダーを追加する

・74HC4060および、水晶・CRの代わりにPIC12F1822を使用する

・74HC4060の2ピンから5ピンと12ピンから15ピン合計8ピンにDIP8ソケットを差し込むと箔カットは不要になる

・PIC12F1822の1ピンに5V、8ピンにGND、7ピンから1K抵抗を経由して8251のRXD(3ピン)、2ピンから8251の-RXC(25ピン)にジャンパを追加する



・ROM切替機能のため、下記のように、箔カットとジャンパ・ヘッダー・プルアップ抵抗(47K)を追加する


③PIC12F1822のファームウェア


SBC6809用のPIC12F1822との違いは、ピン番号の違いのみです。下記がソースプログラムの差分です。


< #define RXD RA4             // PIN3 RA4 RXD sensing Digital Input
---
> #define RXD RA0 // PIN7 RA0 RXD sensing Digital Input

< CCP1SEL = 0; // PIN5 CCP1 on RA2
---
> CCP1SEL = 1; // PIN2 CCP1 on RA5

< TRISA = 0b11111011; // PIN3 RA4 Digital Input
< // PIN5 CCP1 on RA2 Digital Output
< WPUA4 = 1; // PIN3 RA4 Pull-up enabled
---
> TRISA = 0b11011111; // PIN7 RA0 Digital Input
> // PIN2 CCP1 on RA5 Digital Output
> WPUA0 = 1; // PIN7 RA0 Pull-up enabled


下記はSBC8080 SUBボード用のファームウェアです。自己責任で自由に使用ください。


:020000001428C2
:100008007E14803120007F08F0000B1D102801307D
:10001800F9070030FA3D0B117008FF007E10090047
:100028001528F501F601F701F8017E1020001C28BB
:10003800F0302100990022001D1423008C01DF30CC
:1000480021008C0024000C140730210095002000AA
:100058009913980197019601F901FA01910192010A
:10006800E0308B00FC309C050C3025009300F1013A
:100078003330F120F901FA0100307A02F430031923
:10008800790203184B2820000C1C3E284028F9014F
:10009800FA01FF30F7007F30F800F501F601003073
:1000A800C1200030C1200230C1200330780219304D
:1000B80003197702031C6B28033076026B3003198F
:1000C800750203186B28F1013330F120C028013084
:1000D80078028D3003197702031C7D2801307602DF
:1000E800B6300319750203187D28F1011930F12083
:1000F800C02800307802C73003197702031C8F2804
:1001080000307602DB300319750203188F28F101DD
:100118000C30F120C02800307802853003197702AE
:10012800031CA428003076029430031975020318C2
:10013800A4281F30F4007408F1000830F120C0280A
:1001480000307802433003197702031CB9280030C5
:1001580076024930031975020318B9282030F400D3
:100168007408F1000330F120C0280E307A024F30B5
:1001780003197902031C3E28C028F10020000C1C3A
:10018800C2281810970196010C18C82818140C1CBE
:10019800CB2818101708F3001608F200710AD628A1
:1001A800F336F20C890BD42878087302031DDE2875
:1001B800770872020318E4287308F8007208F70039
:1001C80073087602031DEA287208750203180800EE
:1001D8007308F6007208F5000800F20071082100A3
:1001E8009800720820009B007236250091002000BC
:0401F8001C150800CA
:020000040001F9
:04000E00E4FFFFFF0D
:00000001FF

せっかくですので、SBC6809用のファームウェアも公開します。自己責任で自由に使用ください。


:020000001428C2
:100008007E14803120007F08F0000B1D102801307D
:10001800F9070030FA3D0B117008FF007E10090047
:100028001528F501F601F701F8017E1020001C28BB
:10003800F0302100990022001D1023008C01FB30B4
:1000480021008C0024000C160730210095002000A8
:100058009913980197019601F901FA01910192010A
:10006800E0308B00FC309C050C3025009300F1013A
:100078003330F120F901FA0100307A02F430031923
:10008800790203184B2820000C1E3E284028F9014D
:10009800FA01FF30F7007F30F800F501F601003073
:1000A800C1200030C1200230C1200330780219304D
:1000B80003197702031C6B28033076026B3003198F
:1000C800750203186B28F1013330F120C028013084
:1000D80078028D3003197702031C7D2801307602DF
:1000E800B6300319750203187D28F1011930F12083
:1000F800C02800307802C73003197702031C8F2804
:1001080000307602DB300319750203188F28F101DD
:100118000C30F120C02800307802853003197702AE
:10012800031CA428003076029430031975020318C2
:10013800A4281F30F4007408F1000830F120C0280A
:1001480000307802433003197702031CB9280030C5
:1001580076024930031975020318B9282030F400D3
:100168007408F1000330F120C0280E307A024F30B5
:1001780003197902031C3E28C028F10020000C1E38
:10018800C2281810970196010C1AC82818140C1EBA
:10019800CB2818101708F3001608F200710AD628A1
:1001A800F336F20C890BD42878087302031DDE2875
:1001B800770872020318E4287308F8007208F70039
:1001C80073087602031DEA287208750203180800EE
:1001D8007308F6007208F5000800F20071082100A3
:1001E8009800720820009B007236250091002000BC
:0401F8001C150800CA
:020000040001F9
:04000E00E4FFFFFF0D
:00000001FF

④SBC8080の動作確認


SBC8080 CPUボードのREADYヘッダーをオリジナル接続、SBC8080 SUBボードのINTヘッダーも同様にします。

PTBEXSA.HEXをHN58C256APに書き込み、SBC8080 SUBボードのROM設定ヘッダーを32KB EEPROMに設定後、USBシリアルインタフェース経由でTeraTermの画面に立上りメッセージが出ればOKです。出ない場合は、PIC12F1822の2ピンからクロックが出ていることなど、はんだ付け状態を確認します。


下記は、組み立て済みのSBC8080 CPUボードです。




下記は、組み立て済みのSBC8080 SUBボードです。




(再クロール更新:2022/12/22)

SBC8080ルーズキット+TK-80サブボードの製作(設計編)

2019/01/09

 SBC8080ルーズキットが紹介された時は、それだけではそれほど興味を引きませんでした。

ところが、たまたま懐かしいTK-80の記事を目にし、少し調べてみると、ZK-80やND8080など互換機が見つかりました。ZK-80は、安価ですが8080を使用していません。ND8080は、復刻版キットになっていますが、価格が高い難点があります。

そこで、SBC8080とのコラボでTK-80を実現できないかと考えました。


「復活!TK-80」など、資料を収集し、SBC8080回路図と比較をしました。TK-80のアドレス割り付け、システムタイミングの互換性を保つため、下記の改造が必要なことがわかりました。


・TK-80の8255アドレスをTK‐80マニュアルの記述から、F8-FBに割り当てるため、SBC8080の

 8251アドレスデコーダを流用する

・WAITタイミングは、TK-80と同じ接続ができるように切替ジャンパを追加する

・TK-80では、INTをSTEP動作に使用するので、SBC8080の8251(RxRDY)割り込み出力を切断で

 きるジャンパを追加する

・CPUクロックの水晶を18.432MHzに変更する


さらに、SBC6809ルーズキット製作時の改造項目も実施することにしました。


・EEPROM使用で、EPROM消去不要にできる

・ROMアドレスの分割で、機械語モード付きタイニーBASICやその他BASICを同時書き込みができる

・シリアルポートを115kbpsまで自動切替できる


さて、SBC8080を活用できることがわかったので、TK-80サブボードの回路設計に入りました。設計に当たっては、TK-80がTTLベースでしたが、HCMOSを前提に簡略化を行いました。


・LEDディスプレイのDMAアドレスは、83F8が競合する場合を考慮してFFF8に切り替えられるように

 する

・TK-80では、RESET信号がアクティブ時にLED表示が一桁のみ表示する問題を回避するために

 -MEMRを補正しているが、8255のPC7をHCMOSでプルダウン入力化によって、補正回路を

 不要にし、簡略化する

・LEDの桁ドライブとセグメントドライブのタイミング差による残像表示を解消するため、ブランキング

 期間を追加する

・ゲート数を少なくできる部分は、論理極性を最適化し、簡略化する

・CR部品の種類を少なくしたり、マニュアル通りのタイミングにならないCR定数を見直す


これが回路図(PDF)です。


LED表示関連で特記すべき部品は、基板の幅に合わせ幅40mmの4桁LEDと、ドライブ能力が高い74ACT573(データーバスがTTLの8228でドライブされているが、I<sub>OH</sub>が少なくて済むので74AC573でも可)です。


TK-80サブボードの製作には、蛇の目基板に手配線で行うことにしました。(基板製作もしたいのではありますが)

まず、使用する部品を大まか並べると、SBC8080ボードの大きさに収まらないことがわかりました。次にボード間の接続を考える必要があります。SBC-IOを利用することも考えましたが、デザイン的にしっくりこなかったため、何か良い方法が無いか検討しました。その結果、秋月電子の「ピンソケット 2×20(40P) ラズパイ用スタッキングコネクタ」を見つけました。これなら、用途に応じてスタッキング順序を自由に変えられるため、TK-80サブボードが少し大きくても収まり・デザインが良いとともに、信号確認が容易になります。


下記がイメージ図です。

(再クロール更新:2022/12/22)