JR-100エミュレータ

松下通信工業製の8bitパソコンJR-100をPC上でエミュレートします。エミュレータの実装はCやC++で作成されるものが多いのですが、自分自身のJavaプログラミングの向上と、Javaで実装することによるマルチプラットフォームでの実行を目指しています。
エミュレータといえば実機のROMデータが必須なのですが、私はJR-100の面白さを多くの方にぜひ知ってもらいたいと思い、最初はROMデータ不要版(v1)を開発しました。ある程度できたところでROMデータを使う本格的なエミュレータの作成に着手し(v2)、現在にいたっています。

ダウンロードと実行方法

エミュレータver1

JR-100のROMデータなしでも動かせるお手軽エミュレータ。オリジナルのJR-100の仕様にない機能も追加して、JR-100の楽しさを追求していきます。(リリースノート)
※最近メンテナンスしていないので環境によってはまともに動作しないかもです。。。

“JR-100エミュレータver1” をダウンロード jr100.jar – 191 回のダウンロード – 1,001 KB

実行方法

ダウンロードしたjr100.jarファイルをそのまま実行してください。

エミュレータver2

JR-BASICのROMデータを利用した完全なエミュレータ。(リリースノート)

(2017/8/21) 音声再生の安定化とPROGファイル形式の拡張、バグフィックスを行いました。(→使い方)
(2017/7/17) ゲームパッドに対応しました。(→使い方)
(2017/6/18) CPU速度を変更する機能を追加しました。(→使い方)

“JR-100エミュレータver2” をダウンロード JR100v2-2.4.0.zip – 237 回のダウンロード – 1 MB

実行方法

ゲームパッド対応のためOS毎に少し実行方が変わりました。

  1. zipファイルをダウンロード
  2. 任意のフォルダに解凍
  3. JR-100のBASIC ROMファイルをjr100rom.prgというファイル名で同じフォルダ内に格納
  4. エミュレータを実行
    • Windowsの場合
      フォルダ内にあるjr100v2.vbsを実行する。
      もしくはPATH環境変数にzipファイルを解凍したフォルダを追加しjr100v2.jarを実行する。
    • MacOSの場合
      フォルダ内にあるjr100v2.jarをダブルクリックする。
      もしくはターミナルからjr100v2.jarを実行する。
    • Linuxの場合
      フォルダ内にあるjr100v2.shを実行する。
      もしくは環境変数LD_LIBRARY_PATHにzipファイルを解凍したフォルダを追加しjr100v2.jarを実行する。

カセットテープ吸い出しツール

貴重な資産であるカセットテープからのデータ読み込みをサポートツールも作成しています。(リリースノート)

“FSKローダ” をダウンロード loader.jar – 125 回のダウンロード – 164 KB

操作方法

ver2をWindowsで動かしたところ
ver2をWindowsで動かしたところ
ver2をMacで動かしたところ
ver2をMacで動かしたところ

ギャラリー

JR BLACK SPACE

マイコンBASICマガジン 1983年7月号 田辺健二さん作

「地球から隔たること数百年、暗黒星雲のど真ん中。闇にまぎれて、小惑星帯にサイロンの戦闘機が侵入しました。あなたは『レーダー』と『赤外線温度計』を作って戦闘機を発見し、やっつけてください。」(記事冒頭を引用)

2種類のセンサーを使って、画面中に潜んでいる戦闘機を見つける頭脳ゲームです。画面中には戦闘機の他に小惑星と宇宙生物も隠れていて、それぞれのセンサーで反応するものと反応しないものがあります。

この使い分けにコツがいるうえに、なにもせずに考えていると戦闘機から攻撃を受けてゲームオーバーになってしまうため、素早く考え戦闘機を発見する必要があるという、意外とリアルタイム性のあるゲームです。

ところで記事中で田辺さんが、レーダーを緑色、赤外線温度計を赤と青で表現できるとゲームが生きるとつぶやいていました。 そこでエミュレータ上でその意図を汲んで、色つきにしてみました
(カラーマップファイル: map_blackspace.txt (90 ダウンロード) )。

小さくすると鮮やかさが伝わりにくいですが、確かに色が映えています。JR-100でもJR-200のように色が使えたら…。

JR-100デモンストレーション

JR-100本体付属のカセットテープより

デモンストレーションプログラムです。ユーザ定義文字、サウンド機能等をちりばめて、JR-100の機能を理解するのにちょうど良いデモとなっています。 せっかくなので動画キャプチャしてみました。

スーパー・ディフレクション

マイコンBASICマガジン 1983年7月号 田辺健二さん作

「2種類の反射板を画面にうちこみ、それでボールを反射させ、5個のターゲットを打つゲームです。」(記事冒頭を引用)

開発記録

過去分1過去分2

参考文献

  • 松下電器産業株式会社編 , “JR-100ユーザーズマニュアル”, 松下電器産業, 1982
  • 松下通信工業株式会社編, “パソコンをマスターする本”, 誠文堂新光社, 1982, 142p.
  • 有澤誠編, 松下通信工業株式会社監修, “JR-100応用プログラム集”, 誠文堂新光社, 1982, 118p.
  • 岩田利王, “実践ディジタル・フィルタ設計入門”, CQ出版者, 2004, 231p.
  • 三上直樹, “ディジタル信号処理の基礎”, CQ出版者, 2000, 140p.
  • 岡村廸夫, “定本 OPアンプ回路の設計”, CQ出版者, 2000, 422p. (ISBM )
  • 横井与次郎, “マイクロコンピュータ基礎技術マニュアル”, ラジオ技術者, 1976, 380p.
  • “特集:初めての回路シミュレーション”, トランジスタ技術, CQ出版者, Vol.39, No.5, 2002, pp. 119-200
  • “半導体コレクション展示会場/MB8861”, http://www.st.rim.or.jp/~nkomatsu/miscproc/MB8861.html, (2005/12/5アクセス)
  • “6502.org/R6522 Versatile Interface Adapter (VIA)”, http://www.6502.org/archive/datasheets/rockwell_r6522_via.pdf (2005/12/5アクセス)
  • “6502.org/Versatile Interface Adapter (VIA) Differences”, http://www.6502.org/archive/datasheets/rockwell_via_differences.pdf (2005/12/5アクセス)

旧ページでいただいたコメント

  • 懐かしいですね〜JR-100は私の最初のPCでした。田辺健二さん憧れたなぁ。 — ガンダム大家 2009-10-20 (火) 23:30:19
  • 田辺健二さんのようにマイナー機種(当時はマイナーとは思っていませんでしたが)でも積極的にプログラムを投稿してくれる人は、とてもありがたかったですね。 — けむしろう 2009-10-21 (水) 00:38:14
  • HPを見ていると昔を思い出します。高校入学のお祝いに買ってもらって、BASIC覚えて、逆スクロールをしたくてマシン語を覚えました。 — うさてる 2009-11-21 (土) 12:29:44
  • ベーマガにも投稿して、2回載りました。掲載料一回5000円?は貴重なおこずかいでした。 — うさてる 2009-11-21 (土) 12:32:56
  • ユーザー定義文字を作るのに、方眼ノートを買って来て、ひたすらドット絵を作っていたなぁ。いろんな事を思い出します。 — うさてる 2009-11-21 (土) 12:37:18
  • うさてるさん、逆スクロールのためにマシン語を覚えるというのは基本ですね^^; エミュレータを動かせるようでしたらぜひご感想をお聞かせください。 — けむしろう 2009-11-23 (月) 20:57:47
  • 実家にJR100あるかどうか…なので、ROMデータのいらない1.0.0やってみます — うさてる 2009-11-24 (火) 10:22:01
  • jr100.jarをダウンロードすると、jr100.zipがダウンロードされて、展開してみたけどjr100.jarが見当たらないです。やり方間違ってますか? — うさてる 2009-11-26 (木) 18:23:35
  • ダウンロードしたファイルの拡張子を.zipから.jarに変えて実行してもダメですか? 手元の環境(Windows 7 + FireFox)ではダウンロードしたファイルのファイル名はjr100.jarでした。 — けむしろう 2009-11-26 (木) 22:52:08
  • 拡張子を.jarに変えると、実行プログラムがありません。となりまして、インターネットから探すに進むとWinZipというソフトを使えと出てきて、そこから飛ぶとCORELの企業ページでWinZip12.1を購入せよという流れになりますね — うさてる 2009-11-27 (金) 14:04:14
  • 環境はXPhome+IE6です。もしかするとまずはjavaを入れておかないとならないってことなのかな — うさてる 2009-11-27 (金) 14:12:07
  • すみません。出来ました。まずはjava入れとけよってことですね。 — うさてる 2009-11-27 (金) 14:22:58
  • 10 LOCATE RND(24),RND(32):PRINT CHR$(RND(100)+32):GOTO 10 これで延々と画面を眺めていたのを思い出しました — うさてる 2009-11-27 (金) 14:27:12
  • 意外にBASICコマンド、身体が覚えていますね — うさてる 2009-11-27 (金) 14:28:33
  • Java必須ですが分かりにくかったですね。説明を改善します。JR-100に限らず当時の8ビットマイコンではグラフィック系の文字が充実していて、見てて飽きないですね。 — けむしろう 2009-11-29 (日) 00:33:13
  • 早速、エミュレータ ver1をダウンロードして動かしました・・・おお!懐かしいあの画面。「National JR-100応用プログラム集」(誠文堂新光社1982年)が手元にあるので、暫く楽しめそうです。嬉しいなあ・・・ — りん 2010-03-22 (月) 07:54:08
  • りんさん、ご利用いただきありがとうございます。今は本業が煮詰まっていてエミュレータ作成に手が回っていませんが、うれしいお言葉のおかげでまたモチベーションが上がってきました。 — けむしろう 2010-03-29 (月) 00:44:53
  • エミュレータが開発されていると知って、実家のJR-100を発掘してきました。とりあえずROM吸い出しに成功し、動作しました。これからカセットテープの吸い出しにかかりますが、劣悪な環境で保存していたので中身が生きているかどうか心配です。要望なんですが、キーマッピングを設定できるとありがたいです。ctrl&-をBSに割り当てたり、ctrl&6789やIJKMやAZ,.をカーソルキーに割り当てられると便利そうです。 — にが 2010-07-08 (木) 11:28:26
  • 昔打ち込んだプログラムはほとんど取り込みできました — にが 2010-07-12 (月) 16:48:12
  • ただ、どうしても本体付属のdemonstrationの取り込みに失敗します。ヘッダエラーやチェックサムエラーではなく、ファイルそのものがloaderで読めないのですが — にが 2010-07-12 (月) 16:49:43
  • FSKローダーはファイルサイズに制限などありますか? — にが 2010-07-12 (月) 16:51:00
  • >にがさん キータイピングの件、改善を検討します。JR-100はカーソル移動や文字消去などの専用キーが無いため、そのままエミュレートすると不便なんですよね。 — けむしろう 2010-07-14 (水) 01:39:12
  • > にがさん FSKローダーのファイルサイズ制限について。もしかするとJVMのメモリ割り当てを増やせば読み込めるかもしれません。マニュアルのほうにも書いていますが、お使いのマシンがWindowsならコマンドプロンプトから “java -Xmx128M loader.jar” で実行してみてください。MacOSでもやり方はほぼ同じだと思います(未確認)。 — けむしろう 2010-07-14 (水) 01:42:07
  • 回答ありがとうございます。仰るように実行してみましたが実際には-jarオプションが必要のようで、>java -Xmx256M -jar loader.jar でうまく行きました。サンプリング周波数を44kHzにしていたので128Mでは不足してました。44kHzだと失敗が少ないですね。読みとりエラーが発生したプログラムもありましたが、手動で修正してほぼ100%動作できました — にが 2010-07-15 (木) 09:28:03
  • サンプルに倣ってカラーマップを弄ってみましたが、20年以上前の思い出が色つきで蘇りました。素晴らしいです! — にが 2010-07-15 (木) 09:40:00
  • 要望ばかりで心苦しいのですがスピコン(加速の方向で)があると嬉しいです。昔のBASICのゲームって遅いためにゲームバランスを損ねているものが多いもので…。 — にが 2010-07-15 (木) 09:48:20
  • > にがさん スピコンについて対応を検討します。とりあえずクロック周波数を増減できる機能があれば良さそうですね。 — けむしろう 2010-07-21 (水) 22:59:49
  • ありがとうございます。ウチのblogでベーマガのゲームレビュー書いてみました。http://niga2.sytes.net/にが 2010-07-28 (水) 21:30:39
  • バグかもしれないので報告です。org $1000;sei;sts $2000;lds $2000;cli;rtsで(アドレスはフリーエリアなら任意)usr関数から帰ってきませんでした。 — ふあう 2010-09-23 (木) 00:38:07
  • ちなみに退避アドレスを$2000からダイレクトページアドレスで実行した場合はちゃんと戻ってきました。 — ふあう 2010-09-23 (木) 15:46:10
  • ひさしぶりにJR100をみてここにたどりついて — ふぁすたとる 2014-11-17 (月) 08:36:01
  • •ひさしぶりにJR100をみてここにたどりついて エミュでVer2のほうでやって吸出しできたけどうまくいかない。設定みてやってるけどwavとローダがうまくいかないのかな。 — ふぁすたとる 2014-11-17 (月) 08:37:27
  • こんにちは。レトロパソコンの完成度の高いエミュレータに出会ってビックリしてます。JR-100でなくMZ-80Kユーザーでしたが、エミュレータ上でポツポツと昔打ちこんだBASICゲームを移植して、頭の体操にしています。ベーマガ懐かしい。ラ製別冊時代に2回投稿しました。 — sankaku 2015-12-31 (木) 03:12:49

投稿者: けむしろう

プログラミング、サーバ構築、電子工作、旅行が好きです。

コメントを残す

メールアドレスが公開されることはありません。