Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Play PSG music on LUNA-88K - Utilization of I/O prosessor

472 views

Published on

Make LUNA-88K's PSG chip available by hardware patch and play music with private driver for I/O processor. Also run ancient CP/M on I/O processor.
This talk was held in Nagoya *BSD Users' Group session at Open Source Conference 2017 Nagoya.

Published in: Software
  • Be the first to comment

Play PSG music on LUNA-88K - Utilization of I/O prosessor

  1. 1. OSC 2017 Nagoya OpenBSD/luna88kのご紹介 LUNA-88KでPSG演奏 〜 I/Oプロセッサの活用 〜 Nagoya *BSD Users' Group Kenji Aoyama / ⻘⼭ 健治 Twitter: @ao_kenji
  2. 2. 2 毎年のおさらい…LUNAとは? • LUNAシリーズ – オムロン株式会社が1980年代後半〜90年代 初めに販売していたワークステーション • LUNA, LUNA-II – CPU:モトローラ68030/68040(m68k) – NetBSD/luna68kが動きます • LUNA-88K, LUNA-88K2 – CPU:モトローラ88100(m88k) MP対応 – OpenBSD/luna88kが動きます ⾒かけたら保護を!
  3. 3. 3 LUNA-88K{,2}:こんなマシンです 前面の 液晶パネル 個々のCPU動作 状況が分かる LEDマルチプロセッサ 対応 比較的 コンパクトな筐体 (ご家庭でもOK) CPU動作状況が 分かる電源ボタン Cバススロット (88K2のみ)
  4. 4. 4 製造後25年…いろいろ介護が必要です • 電源ユニット – コンデンサ交換してもらいました (Thanks to 筒井さん)
  5. 5. 5 製造後25年…いろいろ介護が必要です • 電源ユニット – コンデンサ交換してもらいました (Thanks to 筒井さん) • LUNA-88Kのキーが効かない – スペアのLUNA-88K2用キーボードをLUNA- 88Kに接続する変換器作りました
  6. 6. 6 製造後25年…いろいろ介護が必要です • 電源ユニット – コンデンサ交換してもらいました (Thanks to 筒井さん) • LUNA-88Kのキーが効かない – スペアのLUNA-88K2用キーボードをLUNA- 88Kに接続する変換器作りました • 50pin SCSI HDD – 手持ちのHDDも動かないものが増えています – 新たに SCSI2SD を導入してみました
  7. 7. 7 SCSI2SD V5 速度が最⼤2.6MB/sとのことですが LUNAはそこまで出ないので問題なし:-) 今回導入の新兵器:SCSI2SD MicroSD スロット 50pin SCSI コネクタ 電源 コネクタ Windows PCなどからUSB接続し て設定が必要です ターミネータ (不要時は外す) http://www.codesrc.com/mediawiki/index.php?title=SCSI2SD MicroUSB (設定用)
  8. 8. 8 OpenBSDとは? • OpenBSD プロジェクトでは、フリーでマルチ プラットホーム対応の 4.4BSD ベースの UNIX 系 OS を提供しています。 • プロジェクトで特に⼒を入れているのは、 移植 性、標準化、正当性、積極的なセキュリティ そ して 暗号機能の統合です。 • 半年に⼀度、定期的にリリースがあります。 • 最新リリース: OpenBSD 6.1 (2017年5月) http://www.openbsd.org/
  9. 9. 9 OpenBSD/luna88kとは? • OpenBSDのLUNA-88K{,2}への移植 • OpenBSD/mvme88kのコア部分+ NetBSD/luna68kのデバイス部分 • 歴史 – 2002年1月 移植開始 – 2004年4月 公式treeにcommit – 2007年8月〜2011年8月 電源ユニット故障により4年間放置 – 2011年8月 電源ユニットを移植→復活 – 2013年6月 OSC名古屋で初展示
  10. 10. 10 最近のトピック: XP, the final frontier • I/Oプロセッサ HD647180 – LUNAではXPと呼ばれています (auXiliary Processor?) – LUNAシリーズに搭載されている、Z80(上位) 互換のI/Oプロセッサ – 純正OSのUniOSではファームウェア(Z80 コード)が起動時に読み込まれている – OpenBSDでもユーザランドからZ80コードを 読み込ませられるのでは? – …と妄想中に⻑期出張になり手つかず
  11. 11. 11 そんなある日…驚きのtweet PSGってXPの先に接続されてい たはず…いったいどうやって? さっそく内容を拝⾒しました
  12. 12. 12 LUNAのI/O processor 筒井さん 発表資料より LUNA-88Kでも アドレスは同じ なのでいじれる はず(^_^) ここが MC88100 OpenBSD に変わるだけ http://sssslide.com/speakerdeck.com/tsutsui/osc2016-hiroshima-psg-tunes-on-netbsd-luna68k-again
  13. 13. 13 まずはCP/Mを動かしてみようか http://userweb.alles.or.jp/chunichidenko/ ~ 先達が残した実践的な情報を発⾒!
  14. 14. 14 CP/M on XP (トライアル版)の構成 XP HD647180 CP/M & Transient Command (32KB) RAM disk 32KB MC88100 OpenBSD Console I/O /dev/xp 共有メモリ64KB <中日電⼯さん記録からの変更点> •コンソール入出⼒ → 共有メモリ経由のttyデバイスに •メモリ配置 → 主記憶とRAMディスクそれぞれ32KBに LUNA本体 cu(1)から接続できるttyデバイスとRAMディスクで構成 /dev/xptty0 CP/M binary /dev/xp Disk image
  15. 15. 15 RAMディスク版CP/M⼀応動きました 実はCP/Mを実際に使ったことがないので、この先どうするか思案中(^_^)
  16. 16. 16 ところで… 初代LUNAにはYM2149(SSG)がついていてうらやましいなあ 筒井さん 発表資料より http://sssslide.com/speakerdeck.com/tsutsui/osc2016-hiroshima-psg-tunes-on-netbsd-luna68k-again
  17. 17. 17 そんなある日 ふと眺めたMiodさん(元OpenBSDの偉い方)の ” Omron Luna-88k prototype”ページより ... and sound chip, … え!? http://www.prumpleffer.de/~miod/machineroom/machines/omron/luna88k/index.html プロトタイプだから載ってるのか?
  18. 18. 18 さっそく手元マシンを確認 88K本体にPSGの出⼒端⼦はない。PSG内 蔵のI/Oポートだけ使用? → もったいない! → 出⼒つなげば⾳出るのでは? ←上中下3段の真ん中の基板に載って いたため気づきませんでした。
  19. 19. 19 早速テキトー配線 & テスト 筒井さんから初代LUNA用のサンプル プログラムをいただきました。
  20. 20. 20 回路といっても抵抗2個とコンデンサ 1個とコネクタだけ 気をよくして出⼒回路⼯作
  21. 21. 21 ⼀応仕上げ 今回このマシンを展示しています。 レトロサウンドをお楽しみください。
  22. 22. 22 おまけ︓man page ドライバは筒井さんに書いて いただいたので、man page を 書きました。
  23. 23. 23 まとめ(1) 今回は考古学&冒険!? <考古学> • 時をさかのぼり、(c)1979 なCP/Mを動かした • Z80アセンブラに郷愁 – DEC HLでHL==0になってもZフラグは⽴たないので すね…すっかり忘れてました <冒険> • 封印された石(YM2149)を発⾒! • 手を動かして、その⼒を解き放った – ⼯作があるとより楽しい • 気分はインディー・ジョーンズ!?
  24. 24. 24 まとめ(2) 何が面白いのか? • メーカが想定していないことを実現する – 別のOSを動作させる – 非純正ハードを接続して動かす – 元の設計を超えた動作をさせる – そのために試⾏錯誤しながらソフトを書く – これが、もどかしい時もあるけれど楽しい • 最後は「愛」と「執着心」:-)
  25. 25. 25 謝辞 • 荒尾さん・蛯原さん・江富さん – LUNA-88Kを送付いただきました • 筒井さん – 何回もの電源修理 & サンプル提供 & いつも アドバイスありがとうございます • Twitterでfavしていただける方 – 励みになります • 家族 – 怪しげな趣味に対する理解に感謝!
  26. 26. 26 あとはNBUGブースで… Nagoya *BSD Users' Group Kenji Aoyama / ⻘⼭ 健治 Twitter: @ao_kenji お待ちしてま〜す︕ Tower of LUNA

×