Legacy6502開発計画のお知らせ
多くのスーパープログラマを育てた伝説のCPU 6502を搭載したマイコンを復活。
(このページの内容はニュースリリースです。このページの文書と写真は転載自由です)
技術少年出版のWEBサイトへ訪問いただきありがとうございます。
技術少年出版では、8bit CPU 6502を搭載したマイコン Legacy6502を開発中です。
発売予定は、今後の開発の進捗を見て公表します。
6502は理解し易いアセンブラプログラムと、シンプルな構造のCPUアーキテクチャにより、深いレベルでコンピュータを学ぶ事ができます。
そのような利点を持つ6502を搭載したオールインワンのマイコンLegacy6502の開発を進めています。
Legacy6502は、6502のエミュレータではありません。実際に電流が流れて、6502 CPUが動作します。I/O制御も出来ます。
本記事は、Legacy6502開発プロジェクトの告知です。ご意見、ご希望を歓迎いたします。
Legacy6502 試作機:メイン基板は、コンソール接続により、キーボード基板無しで単独動作可能。
製品版での変更予定:プリンタ部分は単独基板となる。パラレル・インターフェースが実装される。LED文字表示は液晶表示となる。
8bit CPU 6502とは
日本の8bitマイコンでは馴染みが薄い6502ですが、世界的には、AppleII、PET2001、VIC-20等に採用されて、多くのスーパープログラマが最初に学んだCPUが6502となりました。
日本では、初代ファミリーコンピューター、PCエンジンに6502の互換CPUが採用されて、同じく、多くのスーパープログラマが6502でプログラミング技術を競いました。
Linuxの開発者 リーナス・トーバルズ氏は、小学生時代に6502を搭載したVIC-20でBASICプログラミングを学び、その後、6502のアセンブラで本格的なプログラミングを開始しました。
任天堂の社長になった伝説のプログラマー 岩田聡氏は、PET2001にて6502のプログラム開発に精通して、ファミコンのヒットゲームを多数開発して、それが縁で任天堂の社長になりました。
個性的なCPU 6502の誕生にはストーリーが有りました。
DEC社のミニコンのCPUアーキテクチャと命令体系を取り入れた重装備のMPU MC6800の設計者が、出来上がったMC6800を使ってアセンブラプログラミングを実際に行ってみたところ、これほど多くの命令数は必要無いという事に気が付きました。そこで、CPUアーキテクチャをシンプルにして、命令数を実際に使う命令だけに減らして、シンプルで高速、プログラムし易い、安い、という特徴を持ったMCS6502を設計しました。
この目論見が当たって、MCS6502は、AppleII、PET2001、VIC-20に採用されて、8bitパソコン用CPUとして、全世界的に最も売れたCPUになりました。
Legacy6502 試作機:入手出来ない6502の周辺チップは、CPLDにて再現している。
製品版での変更予定:プリンタ部分は単独基板となる。パラレル・インターフェースが実装される。LED文字表示は液晶表示となる。
Legacy6502
技術少年出版では、この6502のCPUアーキテクチャが理解し易い、アセンブラプログラミングし易いという特徴に注目して、以前より、入門用マイコンとして提供できないかと考えていました。
6502を搭載したマイコンは以前より存在しましたが、学びに活用できるアセンブラなどの開発ソフトウェアが有りませんでした。
そこで着目したのが、アセンブラなどの開発ツールが揃ったロックウェル・インターナショナル社のAIM-65です。
AIM-65には、高性能なアセンブラ、コンパイラ言語などが充実しています。プログラミングを学ぶ入門機としては十分な構成です。
課題は、CPU 6502は、辛うじて入手出来ますが、6502の周辺チップは入手不可能です。
そこで、21世紀の技術であるCPLD(プログラムによる書き換えが可能な論理回路デバイス)を利用して入手不可能な6502の周辺チップを再現する事でAIM-65を互換機として復活できる事になりました。
21世紀の技術で復活したのが、AIM-65互換機 Legacy6502です。
左:ロックウェル・インターナショナル社のAIM-65 右:Legacy6502試作機
Legacy6502のハードウェア
エミュレータで6502の機能を実現するのでは無く、6502 CPUを搭載しています。
Legacy6502は、CPUが実装されている「メイン基板」と、「キーボード基板」で構成されます。
メイン基板は、ターミナルモードのPCなどの端末を接続すると単体で動作して、キーボード基板を必要としません。
発売時は、メイン基板に対して、キーボード基板を別売りとして、選択オプション製品とする予定です。
試作機では、メイン基板に感熱プリンタが実装されていますが、製品版ではプリンタを別基板に移し、オプションとします。
製品版では、「メイン基板」、「キーボード基板」、「プリンタ基板」の3枚構成になります。
製品版の「メイン基板」には、外部インターフェースとして、パラレルポートを実装します。各種実験が出来ます。
製品版では、試作機のLED式英数字表示器を、液晶表示器に変更する予定です。
Legacy6502のハードウェア概要
- CPU W65C02S (ウェスタンデザインセンター社製) クロック:2Mhz~最高16MHz(オーバークロックモード)
- システムVIA W65C22S : TTYインターフェース、タイマー (ウェスタンデザインセンター社製)
- システムROM FLASHメモリ SST39LF040-45 : 容量512KB
( Silicon Storage Technology社、Microchipの子会社 )
- システムRAM SRAM AS7C34096A-10 : 512KBのうち64KBを使用 ( Alliance Memory社 )
- 制御用CPLD : Xilinx社のCPLD XC9572XL-VQ64にクロック分周、アドレスデコード、ウエイト生成のロジックを書込
- PIA2 : Xilinx社のCPLD XC9572XL-VQ64 に R6520 PIA のポートA, B の出力機能を書込。
更に、感熱プリンタ用UART-TXを追加。
- RIOT2 : Xilinx社のCPLD XC9572XL-VQ64 に R6532 RIOT のポートA出力、ポートB入力の機能を書込
- ユーザー拡張VIA W65C22S (ウェスタンデザインセンター社製)
ユーザーが自由に使用できる汎用ポート、タイマー、SIOチップ
- メイン基板には、20文字1行のLED式英数字表示器を実装できる。製品版では液晶式英数字表示器を予定しています。
Legacy6502 試作機:入手出来ない6502の周辺チップは、CPLDにて再現している。
製品版での変更予定:プリンタ部分は単独基板となる。パラレル・インターフェースが実装される。LED文字表示は液晶表示となる。
Legacy6502のソフトウェア
- 8KB 実数型BASIC言語 インタプリタ
9桁の演算精度を持つBASIC言語インタプリタです。
プログラムの各行には行番号がつけられており、行番号 + 処理内容 (式、コマンド)の形式で入力することでプログラム編集も行われます。
インタプリタにより、プログラムの編集と実行がその場で処理されるので入門用に適しています
- 6502 2パスアセンブラ
システムROM(4KByte)常駐型(レジデント)の2パスアセンブラです。
2パス方式を採用しており、1回のアセンブラ起動でソースコードを2回読み込んで処理します。
パス1でシンボル値を決定してシンボルテーブルを生成します。
パス2ではシンボルテーブル参照してアドレスと実際のオブジェクトコードを生成します。
この方式により小容量のRAMでも、RAM容量を超える大規模なプログラムを開発できる構成となっています。
ソース入力とオブジェクト出力は、メモリ ― メモリ、メモリ ― TTY、TTY(PC端末) ― メモリなどが指定できます。
- FORTH言語
逆ポーランド記法をベースにした連鎖性プログラミング言語です。
プログラム作成時は対話型でワードと呼ばれる関数をインクリメンタルにコンパイルしながら辞書に追加して行きます。
新たなワードを定義する際、辞書に登録されているワードはすべて使用可能で、ボトムアップでプログラム作成します。
プログラム実行時にはインタプリタがワードを実行するというユニークな言語です。
このFORTHは一番古い標準であるFORTH-79以前のシステムであり、機能的に不足のものもありますが
ワード追加によりカバーできます。例えばSTRINGワードの追加により文字列の処理も可能になります。
- MATHPACK
FORTH用の実数演算ワードのパッケージです。
- PL/65 コンパイラ
6502用のセルフコンパイラで構造化記述( 行番号を必要とせず、GOTO文に頼らない記述 )が可能な言語です。
PL/65のソースを入力とし、6502のアセンブラソースを出力します。
イメージとしては「8ビットマイコンR6502のアセンブラコードを書く代わりに構造化プログラミングができる言語」
すなわち「6502用高級アセンブラ(プリプロセッサ)」です。
扱えるデータはBYTE(8bit)とBYTEの一次元配列です。
PRINTやINPUTといった入出力関数のサポートはありません。
- 12KB 実数型BASIC言語 インタプリタ
8KB BASICインタプリタより機能拡張されたBASICインタプリタ。
- Instant PASCAL インタプリタ
構造化記述が可能なプログラミング言語です。
RAM上にトークン化されたソースコードを置き、インタプリタにより実行する形式のPASCALトレーナー(学習用)です。
すなわち、プログラム入力時にトークン形式への行ごとの変換を行い、ローカル構文チェック、即時フィードバックします。
プログラム実行時にはインタプリタが複数行にまたがる構文チェックを行います。
データの型として INTEGER, REAL, STRING, BOOLIAN, ENUMERATED, CHAR があります。
FILE型はサポートされていません。
組み込み関数には ABS, ARCTAN, CHR, COS, EXP, FUNC, LN, ODD, ORD, PRED,
ROUND, SIN, SQR, SQRT, SUCC, TRUNC
があります。
Legacy6502 試作機:BASICインタプリタなどの実行結果や、プログラムリストを感熱プリンタに出力可能。
製品版での変更予定:プリンタ部分は単独基板となる。パラレル・インターフェースが実装される。LED文字表示は液晶表示となる。
Legacy6502の今後の予定
2023年4月時点では、試作基板で動作しています。
Legacy6502製品版に向けて、以下の改良を行います。
- 「メイン基板」「キーボード基板」「プリンタ基板」の3枚構成に変更
- 「メイン基板」のLED式英数字表示器を、液晶式英数字表示器に変更
- 「メイン基板」にパラレル式のI/Oポートを新設
Legacy6502製品版の発売予定は、開発の進捗を確認して公表します。
Legacy6502の販売は、技術少年出版WEBサイト、販売代理店、ECサイトにて販売いたします。
「マイコン博物館」にて、ミュージアムグッズとしても販売します。
Legacy6502のお問い合わせ
Legacy6502に関する、ご質問、ご意見、ご希望をお寄せください。