Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LUNA x PC-6001 Dual PSG Demo / OSC2017Kyoto

LUNA x PC-6001 Dual PSG Demo / OSC2017Kyoto

OSC2017 京都の NetBSDセミナーで発表した『LUNA × PC-6001 Dual PSG デモができるまで』のスライドです。

Avatar for Izumi Tsutsui

Izumi Tsutsui

August 04, 2017
Tweet

More Decks by Izumi Tsutsui

Other Decks in Programming

Transcript

  1. 「わけがわからないよ」 と言われてました LUNAは、ご当地京都市に本社のある オムロンさんが平成の初めのころに 販売していたワークステーションです。 メインCPUのMC68030に加えて I/O用の サブプロセッサとしてZ80互換CPUを持ち、 80年代に人気を博した NECのパソコン

    PC-6001と同じPSG音源も載せています。 その Z80とPSG音源に着目して、 PC-6001用のPSG音源ドライバとNetBSD を使ってLUNAに音楽を演奏させてみよう、 というデモンストレーション展示です。
  2. PC-6001 スペック •CPU: 8bit Z80互換 4MHz •RAM: 標準 16KB, 最大32KB

    •グラフィック: 128×192ドット 4色 256×192ドット モノクロ2色 •音源:PSG 3和音 •標準価格:89,800円
  3. • NEC PC-6001/mkII • SHARP X1シリーズ • 富士通 FM-7/FM-77シリーズ •

    MSX • SHARP MZ-5500 だいたい ’80年代前半のマシン。 85年以降は FM音源チップ搭載機が主流に PSG音源を搭載したマシン 出典: https://ja.wikipedia.org/wiki/Programmable_Sound_Generator
  4. 初代LUNA構成 OMRON TECHNICS Vol.29 No.1 “LUNA(デスクトップWS)のハードウェア” PSG (SSG) は ここにある

    メインCPU MC68030 デバイス サブCPU HD647180 デバイス MC68030 HD647180
  5. HD647180 とは  日立製 Zilog Z80 上位互換マイコン • 6.144MHz クロック

    • タイマ、シリアル、DMA内蔵 • MMU内蔵で1MBアドレスサポート • 647180は ワンタイム PROM版
  6. リセット信号 割り込み要求 LUNA I/Oプロセッサ (XP) 構成 MC68030 NetBSD カーネル 支配下

    8255 PIO HD647180 独立動作 共有 メモリ 64KB アドレス 71000000h 〜 7100FFFFh アドレス 0000h 〜 FFFFh YM2149 SSG タイマ SCI
  7. リセット信号 割り込み要求 XPデバイスドライバ実装(1) MC68030 NetBSD カーネル 支配下 8255 PIO HD647180

    独立動作 共有 メモリ 64KB アドレス 71000000h 〜 7100FFFFh アドレス 0000h 〜 FFFFh YM2149 SSG タイマ SCI 演奏プログラム PSGドライバ 以下の ioctl(2) を実装 ・指定したZ80コードをロード ・HD647180をリセット  ⇒これで演奏プログラムを実行
  8. リセット信号 割り込み要求 XPデバイスドライバ実装(2) MC68030 NetBSD カーネル 支配下 8255 PIO HD647180

    独立動作 共有 メモリ 64KB アドレス 71000000h 〜 7100FFFFh アドレス 0000h 〜 FFFFh YM2149 SSG タイマ SCI 演奏プログラム PSGドライバ ユーザープロセス /dev/xp 経由 プロセス 仮想アドレス 制御コマンド PSGドライバ用 曲データ 共有メモリ mmap(2) を実装 ⇒ユーザープロセスから  曲データのダウンロード  および演奏開始停止制御が  可能に