Apple1 のドキュメント

Apple1のドキュメントやBASICのプログラムは、Briel Computer の replica1用に提供されているCurrent replica 1 plus CD: replica 1 plus CDApple1 をダウンロードして頂くのが良いと思います。

ダウンロードしたファイル内にはreplica1の回路図やファームウェアなどもありますので興味のある方は詳しく調べてみてください。

  • r1pluscd.zip\CD\manuals APPLE1のドキュメント類があります
  • r1pluscd.zip\CD\software BASICファイルがあります

replica1ですが現在はReactiveMicroの方で入手可能ですので興味のある方どうぞ。

広告

R6502 Apple1 Replicaを作る

Apple1レプリカも今回で3機種目です。L-Star PlusA-ONEのクーロン、そして今回がR6502 Apple1 Replicaという3種でApple1の本当のクーロンは残念ながらありません。

Hvetebolleで公開されているR6502 Apple1 Replicaを作らせていただきました。こちらのバージョンはビデオ出力&キーボード対応はありませんがArduino NANOを使用したUSBシリアルでのPC接続が可能な構成になっています。また、RC2014に対応したバックプレーンにて拡張も可能な構成になっているようです。

作成に当たってGithubで公開されているデータについて下記変更をさせていただきました。変更させて頂いたKicadおよびPIC12F1822のデータはこちらに公開させていただきます。ライセンスはオリジナルの”GNU GENERAL PUBLIC LICENSE”です。

  • PIC12F1822の追加
  • X1の代わりにPIC12F1822で1MHzのクロック供給
  • NE555の代わりにPIC12F1822でパワーオンリセットおよびリセットSWの500mseリセットを生成

部品表

品名品番個数商社
ROM28C2561
RAMHM622561
CPUR6502(WD65C02)1
IC74LS001
IC74LS041
IC74LS1381① ②
ICMCP23S171  ②
ICMC68211
ICPIC12F18221① ②
ICArduino NANO1  ②
コンデンサ0.1μF(104)8① ②
コンデンサ0.01μF(103)1① ②
抵抗3.3KΩ5  ②
抵抗330Ω1  ②
抵抗10KΩ1  ②
ICソケット8pin1① ②
ICソケット14pin2① ②
ICソケット16pin1① ②
ICソケット28pin300mil1① ②
ICソケット28pin600mil2① ②
ICソケット40pin2① ②
ピンソケットピンソケット1×152  ②
ジャンパージャンパーピン8① ②
ピンヘッダーピンヘッダー 1×22① ②
ピンヘッダーピンヘッダー 1×33① ②
L型ピンヘッダーL型ピンヘッダー 1×21① ②
L型ピンヘッダーL型ピンヘッダー 1×401① ②
LEDLED1① ②
タクトスイッチ6mx6m1① ②
商社は
①オレンジピコショップ秋月電子通商

L型ピンヘッダーについては各社で扱っている形状が異なります。
個人的には②の形状を使用しています。(1x40は実装していません)
RC2014用の1x40の形状は①のタイプが通常使用されている様です。

Arduino NANOはamazonにてUSBシリアルがCH340の物がUSBシリアルがFTDIに比較して安いです。
私はこちらの物を購入しました。

オレンジピコショップさんで3,603円=3,393+210(IC、ICソケット、ジャンパー等)
秋月電子さんで1,385円=885+500(IC,抵抗、コンデンサ、ピンヘッダー等)
Arduino NANO 450円
で基板以外に部品代で5,500円ほどかかります。
参考に各ショップでの購入品を下記に追加いたしました。HM62256が在庫なしの為640円抜けています。

PIC12F1822を使用しない場合は、
NE555は②にあります。
水晶発振器は 千石電商オンラインショップ にあります
 水晶発振器 1MHz ハーフサイズ 水晶発振器 1MHz フルサイズ 

組付け

基板と部品がそろったら背の低い部品から取り付けて半田付していきます。

抵抗を実装します。(R2,R3,R4は実装しません)

  • 黒枠 R1,R6,R7,R8,R10に3.3KΩを実装します
  • 青枠 R5に330Ωを実装します
  • 黄枠 R9に10KΩを実装します
  • USB POWERのL型ピンヘッダー2×1を実装しても良いと思います

コンデンサを実装します。(C6,C11は実装しません)

  • 黒枠 C1,C2,C3,C4,C5,C7,C8,C9に0.1μF(104)を実装します
  • 黄枠 C12に0.01 μF(103)を実装します

ICソケットを実装します。(U6は実装しません)

  • U1,U8に40ピンICソケットを実装します
  • U2,U4に28ピン600milICソケットを実装します
  • U3に16ピンICソケットを実装します
  • U5,U7に 14ピンICソケットを実装します
  • U9に28ピン300milICソケットを実装します
  • U10に8ピンICソケットを実装します

LED、タクトスイッチ、L型ピンヘッダー、ピンソケットを実装します。

  • LEDは、上記のように足の長い方がアノード、短い方がカソードで写真に合わせて挿入し実装
  • タクトスイッチを実装
  • L型ピンソケットは黄色①、黒②の商社で扱っている者になります
  • ピンソケット1×14はArduino NANO用2個に実装

ピンヘッダーを実装します。

  • 2x1のピンヘッダーを2か所実装
  • 3x1のピンヘッダーを5か所実装

ジャンパーピンを実装します。

  • 黄枠 ショート
  • 青枠 WD65C02の場合はオープン、他のCPUの場合はショート
  • 緑枠 イネーブル側をショート(イネーブル位置は基板裏側を確認)
  • 水色枠 ROMに0番地から書き込みましたのでグランドとショート

水色枠の拡大写真です。(C12は裏側に0.01μFのコンデンサを実装しています)

プログラム書込み

1. Arduino NANOへの書込み 
  RC6502-Apple-1-Replica-master\RC6502 Serial IO\pia_communicator\pia_communicator.ino
  スケッチをコンパイルして書き込みます。
  コンパイル時にMCP23S17-masterライブラリが必要になります。

2.28C256への書込み
   RC6502-Apple-1-Replica-master\RC6502 ROM\firmware\8K Basic & Monitor.bin 
  を0番地( $0000-$1FFF )から書き込んで下さい。

3.PIC12F1822への書込み
  R6502ckgen\R6502ckgen.hex
  を書き込んで下さい

1,2についてはgithubからダウンロードしたファイル
3についてはこのblogからダウンロードしたファイル

ICを実装

この画像には alt 属性が指定されておらず、ファイル名は 190816003.png です
  • PIC12F1822
  • MCP23S17
  • MC6821
  • R6502
  • HM62256
  • 28C256
  • 74LS138
  • 74LS04
  • 74LS00
  • Arduino NANO

確認

  • テスタなどで電源、グランドがショートしていないことを確認
  • 半田付け忘れが無いか確認
  • ジャンパー設定を確認

APPLE1のドキュメントやBASICファイルの入手方法を参考にして下さい。

R6502 Apple1 replica の使い方はこちらを参考にしてください。 (作成予定です)

Apple1 Replicaの3種目を作った

L-Star PlusA-ONEのクーロン、今回がR6502 Apple1 Replicaと3種類目のApple1レプリカを作りました。

R6502 Apple1 Replica で今回作成したボードです。
WD65C02とHD63B21を使用していますのでロジックICは74HCシリーズを使用しています。
PIC12F1822の8,7ピンがオープンで1MHz、ショートで2MHz動作になります。
WD65C02は2MHzでもOKでした。(当たり前ですね)
個人的にA-ONEと言うApple1 Replica品のクーロンです。
1番最初に作ったボードです。

今回作成したR6502 Apple1 ReplicaはHvetebolleで開発の経緯をgithubでそのデータを公開されています。

水晶発振器とNE555を使用した回路をPIC12F1822に置き換えた変更版を作成させて頂きました。今回の変更時にArduino NANOで対応する方法もありましたが今回はPIC12F1822に置き換える方法を選択させていただきました。

変更したデータについては作成方法と合わせてKiCADデータ&PICのソースを公開させていただきます。

MB8861/70BL基板が届いた

No1910のMB8861/70が届きました。

SBC8861/70BLボードはSBC68系の拡張コネクタ端子仕様になっています。SBC80系とは電源を含めて端子位置が異なるのでSBC-BUSを使うときは設定を確認しないとね。

SBC8861/70BLボードです。

まだPIC16F18857が無いので作っても動作確認できません。

先ず抵抗とダイオードを実装。

次は、コンデンサを実装。

そしてICソケットを実装。

使用しない部品を除いて実装完了。

MiniUSBは、裏側にUSBシリアルCH330と一緒に動作確認後にテスト用に実装予定です。水晶振動子はクロック精度が必要な場合に実装する予定の為、私は使用しないと思います。

NSC800 DXボード2枚目です

フラットパッケージのICが来ましたのでNSC800DXボードの2枚目を作りました。

今回は、オプション部も実装済みです。まだ1枚目のデバッグが終わっていないので動作確認を実施できません。

JP5,JP6は、外部SRAM使用切替え用のソリッドジャンパーで1-2をパターンカットし2-3を接続しています。

D8755へのゼロプレシャーソケット搭載ですが一応可能なようです。ギリギリです!

NSC800 dxボードを作った

NSC800DX No1907を組付けました。

NSC800DXの最小構成(MCS8085相当品)

NSC830が無いのでD8755を代わりに使用しています。この3チップの構成はMCS8085相当になります。

この構成の問題点はD8755はNMOS品の為インタフェースはTTL相当でNSC800はCMOS品でD8755からNSC800へのVIHのレベルが仕様外動作(実力での動作)を期待している所です。

D8755にはMCS8085で使用していたMMー8000のRAM&IOアドレスを修正したバージョンを作成しMCS8085用サブボードを付けて動作確認です。

この構成では7セグLEDが消灯しています。
動作していないようですね

残念ながら動作しませんでした。確認の為NSC800の9ピン(CLK)の周波数を確認しました。

5MHzの水晶をNSC800の下に付けてありますので期待は2.5MHzが出力される予定で2.499MHzで期待通りOKです。

NSC810はRAMが128バイトでD8156の256バイトより少ないのでダメもとでD8156に変更して動作確認をします。

D8156では7セグLEDに表示が出ます。またキーの0からFの入力もOKです。という事でNSC800はD8755,D8156とのインタフェースは実力でできている様です。

ファンクションキーが動作しないのはテーブルアドレスの修正忘れが原因ですのでこちらはD8755のROMを変更すればよさそうです。

NSC810を使用した時に動作しない原因について現在は不明です。ソフト修正のバグかインタフェースなど再度確認いたします。

基板が届いた

No1907,08,09の3種の基板が届きました。

届いた基板ですが、No1907はゼロプレッシャーのソケットの位置を合わせたつもりが1穴分ずれていました。NSC800,180,8755を上方向に変更したrev02のアートワーク修正を行いました。動作確認がまだですから修正は逐次追加予定です。ただしrev02を作るかは未定です。

No1909は、P1,P2のコネクタの1番ピン位置が誤っていました。それとP1,P2の間隔が誤っているではないですか、これは大きな問題です。こちらもアートワーク修正してrev02作成しました。こちらはPICのソフトと動作確認ができればrev02の基板は作る方向ですね。

これから基板を組付けてゆっくり動作確認予定です。

MB8861/70用ボード

MB8861/70に対応したCPUボードを、SBC-I/O rev03を使用する構成で検討中です。構成としてはSBC-IOを使用するのでRAMは非搭載、ROMはPICによるブートローダで対応する構成としました。

SBC8861/70ボード

テスト用のrev01ですのでPICはPIC16F18857を使用する予定です。ブートローダは、データバスとリード信号およびRAMのイネーブル・ディセーブル制御で対応します。

MB8861とMB8870は、MC6802アダプタ相当の構成として今回は、MC6808対応の為にRE信号のHi/Lowも追加しました。

PIC用にはソフトのデバッグ用にISP端子とシリアル通信用のコネクタおよびUSBシリアル化の為にCH330を搭載できる構成になっています。この辺はテスト様ですね。

SBC-I/O の方はrev03としてrev02からは、2か所修正し修正内容は、①RAMを他のICの方向に合わせました。②ブザー様にトランジスタを追加しました。

SBC-I/O rev03

現在のMB8861はSBC6800ルーズキットで、MIKBUG2.0が動作しています。この環境ではMC68A00が推薦環境の為MB8861Eが対応品になりますが、推薦環境を忘れていてMB8861NとMB8861Hを購入したためMC68B00相当品のMB8861Hを使用しています。

SBC6800ルーズキット+MB8861H

MB8870は、クロックジェネレータの問題は発生しませんのでMB8870N(MC6802相当品)をDAIさんのボードで、MIKBUG2.0が動作しています。

DAIさんボード+MB8870N

MB8870で使用しているSBC6800用6802アダプタの回路図がなっかたので追加しました。このアダプタはPIC12F1822の変更が必要です。

このアダプタ用のPDF回路図&ソースファイルはこちらからダウンロードください。

SBC6800用アダプタはICソケットを使用しています。現在使用しているアダプタの写真(使い回し)です。

MB8870動作環境

MC68B02Pの動作するボードを久々に引っ張りだしました。理由はMB8861とMB8870を購入したので動作確認が目的です。

今回使用したボードはこの状態で保管していたDAIさんから頂いたMC6800用のボードです。電脳伝説さんがSBC6800を作られていた時に同時進行で作られていたボードです。

DAIさんから頂いたMC6800用のボードです。

こちらのボードは、AKI80と同様にROMの下にフラットパッケージの32KSRAMを搭載している所です。また、ROMもバンク切り替え用のスイッチが付いているので2種類のソフトを搭載可能です。

今回はMB8870の使用を考えていますので現在のMIKBUG 2.0とMCS8085用のモニターで使用させて頂いた Electrelicさんの Universal MonitoのMC6800版を搭載予定です。

MC6800用のボードの為MC6802用にはSBC6800用6802アダプタを取り付けてあります。また、クロックジェネレータ用のPIC12F1822を変更済みのはずです。

一応動作確認で電源を入れてMIKBUG 2.0 の起動メッセージが確認できました。実は、USBシリアルのコネクタの向きが逆になっていることを忘れて起動しなくて焦りましたが逆に接続しなおして起動しました。

これでMB8870の動作環境の準備ができました。

最初はMC6802とMB8870の違いを確認する為のUniversal Monitoの準備からです。

現在のSBC6800ですが、BUSを拡張した2枚とノーマルの1枚があるのですがノーマルの1枚が見当たらない様です。BUSを拡張した2枚は他のボードにICを取っていかれて動作確認にはちょっと時間がかかるので今回はDAIさんから頂いたボードの出番になりました。

SBC6800は動作させるにはICが足りないのとその後の動作確認がいる様です。それと1枚たりない。

しかし、今回の目的にはこちらの方が最適と思っています。MB8861の確認はSBC6800を使用する予定です。

TFT LCD用ボード

3.2インチTFT LCD Shield & 3.5インチTFT LCD Shield用のボードを作ってみる。

TFT LCD用ボード

3.2インチ&3.5インチも5V仕様のパラレルは8080対応インタフェースとなっているのでSBCボード系でも動作可能と思われるので確認用のボードを作ってみようと思います。SDカードは今回ノーサポートです。

TFT LCD回路図 16ビット対応で573とキーボード様にPIC16F18857が乗っています。
TFT LCD SilkS

問題はソフトだよね。