Neo6502 › 記事 › Neo6502
Neo6502:本物の 65C02 と RP2040 を 30 ユーロで — 私たちの取り組み
Olimex のボード、Tachibana が注目する理由、進行中の 10 のプロジェクト — そして、まだ言えないこと。
Neo6502 は Olimex の小さなボード(80 × 55 mm、OSHW 認証のオープンハードウェア、30 ユーロ)である:本物の W65C02S プロセッサ、2 MB フラッシュ付き RP2040 マイクロコントローラ、DVI/HDMI 出力、キーボード用 USB-A ホストポート、UEXT コネクタ、6502 バスコネクタ、音声出力。Paul Robson が書いたファームウェアは RP2040 をこのマシンのチップセットにする:320×240・256 色の映像、スプライト、タイル、ブリッター、4 声の音、USB メモリ上の FAT32 ファイル — すべて $FF00 の API を通じて 6502 から制御する。NeoBASIC は即座に起動し、C(llvm-mos、cc65)とアセンブラに対応する。
Neo6502 の概要
| プロセッサ | W65C02S |
| マイクロコントローラ | RP2040, 2 MB flash |
| 映像 | DVI/HDMI — 320×240, 256 |
| キーボード | USB-A host |
| 拡張 | UEXT, 6502 bus |
| 音声 | 3.5 mm, speaker |
| サイズ・ライセンス | 80 × 55 mm, OSHW |
| 価格 | 30 € |
320×240・256 色、6.25 MHz、約 61 KB の使用可能 RAM は私たちのリポジトリの文書の値、それ以外は Olimex の製品ページによる。
1. Tachibana が注目する理由
6.25 MHz の 65C02、約 61 KB の使用可能 RAM(画面は RP2040 側にある)、本物のパレット、高速なファイル:私たちの Oric 移植にとって速度は 6 倍、メモリは 3 倍で、しかも実在し、入手でき、30 ユーロのマシンである。さらに 6502 バスがコネクタに引き出されている。私たちはこれをソフトウェアの試験台であり、同時に移植先のプラットフォームと見ている。
2. Phosphoneo — リファレンスモデル
Phosphoric の系譜にある Phosphoneo は Neo6502 のゴールデンモデルエミュレータである:サイクル駆動、SingleStepTests オラクル(254 万ケース)で 100 % 検証済みの 65C02 コア、公式コードからリンクしたファームウェア API、決定論的なツール群(ヘッドレス、画面キャプチャ、自動入力、トレース、セーブステート)。スプリント 1 完了(v0.2.0):NeoBASIC がヘッドレスで起動し、キャプチャは公式エミュレータと一致する。
3. Neo6502kbd — キーボード
ファームウェアは ASCII キューと各キーの生の状態を提供する。Neo6502kbd は 6502 側に 65C02 アセンブラ(ca65)のドライバを加える:キー押下の検出、イベントキュー(スキャンコード、修飾キー)、読みやすい .kmap ファイル(us、fr)から neokbd(生成・検証・シミュレーションを行う Go 製ツール)でコンパイルされる、設定可能な 基本 / Shift / AltGr / Ctrl のマッピング。
4. Neo6502bbc — BBC Micro のゲーム
BBC Micro と Neo6502 は同じ 6502 を持つ。BBC のゲームは $FFxx の固定ベクタ経由で MOS を呼ぶため、付け替えが容易だ。Neo6502bbc は OSWRCH、OSBYTE、OSWORD、OSCLI、OSRDCH、OSFIND、OSGBPB をファームウェア API に振り向ける。エピック 3 が進行中:BBC Model B エミュレータ(reload、bbc ブランチ)が PC 上で MOS 1.20、BASIC 2、DFS を起動し、Spellbinder を最初のプレイ可能な部屋まで進める。これらの移植では Neo6502 は Oric より有利だ:ネイティブ 320 ピクセル、MODE 5 の正確な 4 色。
5. ファームウェアのフォーク
文書化された 3 つのスプリント:PC エミュレータと基準キャプチャ;映像モード(PicoDVI の予算、マルチモード構成、9×14 フォントの Hercules 720×350、16 色の 320×256、画面ページ、XOR スプライト);システム(ティック IRQ、6502 カーネル内の 10 ベクタのプリエンプティブスケジューラ、RP2040 のマルチブート:セレクタと 480 KB のフラッシュスロット 4 つに Neo ファームウェアと reload の BBC / Oric / Apple //e イメージを置き、モニタから選ぶ)。
6. AsteroNeo — Astéroric の移植
AsteroNeo は、Oric-1 向けの Asteroids 研究クローンである Astéroric の移植です。ゲームロジック(ウェーブ、分裂、円盤の AI、ハイパースペース、ハイスコア — アーケード ROM rev 4 の逆アセンブルから転写)は cc65 の C のままで、Oric のハードウェアに触れていた部分はすべてファームウェア API に置き換えました — モード 0(320×240)の XOR 線とピクセル、アーケードの形状から導出して滑らかにした多角形(24/16/10 頂点)の小惑星を RP2040 が描画(アセンブラの poly_xor)、再割り当て可能な HID コードによるキーボード、4 チャンネルサウンド、60 Hz のフレーム上で 30 Hz のゲームステップ。スプリント 1 完了、スプリント 2(プレイテストと仕上げ)進行中:v0.2.0、バイナリ asteroneo.neo を GitHub と Framagit で公開、ホストテスト(gcc)、Phosphoneo のキャプチャをビット単位で比較、公式エミュレータでのスモークテスト。
7. Neo6502Prophet — プログラムリポジトリ
Neo6502Prophet は、Neo6502 コミュニティのプログラムリポジトリである Prophet サーバーの、Go による独立した再実装です:クライアント prophet.neo のプロトコルをバイト単位で再現、一項目ずつ強化(トークン付き更新、範囲制限した入力、閉じ込めたファイル、SHA-256 フィンガープリント)、HTTP と HTTPS の二重待ち受け、.neo の静的検証と Phosphoneo での動的監査(56 プログラム中 56 を再生)、ウェブインターフェース、AsteroNeo を掲載した自前のリポジトリ。prophet.3617.fr で本番稼働中。ネイティブ GUI クライアントに着手。
8. 構想段階のプロジェクト
Neo6502drive:Feather RP2040 USB Host 上の仮想ハードディスクとフロッピー、FAT32 USB メモリとして(MSC モード、ドライバ不要)または UEXT ブロックデバイスとして。Oric 2 Neo:Neo6502 上の新世代 Oric、Oric-1/Atmos 互換、ROM とファームウェアで拡張。Neo6502civ:6502 アセンブラの Civilization 1(モノクロフレームバッファをブリット)。Neo6502scumm:SCUMM v0 インタプリタによる Maniac Mansion。すべてスプリント 0:構想のみ、コードなし。
9. まだ言えないこと
これらの部品はどれもまだ実機で動いていない:すべて公式エミュレータ、Phosphoneo、コシミュレーション(libemul)で検証している。DVI レンダラ、クロック切り替え、タイマ、バスループは机の上に Neo6502 が届くのを待っている。検証手順は書き上げてあり、ボードが届き次第実行する。