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

Geek Bar #2

Geek Bar #2

WebMSX(JavaScript版MSXエミュレータ)

C0bb4ea64703d1886a53d639cdb30d96?s=128

KOYAMA Hiroshi

October 31, 2017
Tweet

Transcript

  1. WEBMSXを改造して遊ぼう 株式会社あくしゅ   代表取締役   山崎泰宏  

  2. MSXとは •  1983年に米マイクロソフトとアスキーによって提唱された   8ビット・16ビットのパソコンの共通規格の名称   •  MSXとその後継規格であるMSX2(1985年)、MSX2+(1988年)、MSXturboR(1990年)の総称でもある。  

  3. 私とMSX •  ファミコンは買ってもらわなかったが、MSXは家にあった   •  それで小学校3年生の時に何気なくBASICを始めた   •  以来、ファミコンに勝ちたくてゲームを作り続け、友達に遊んでもらうも、  

    毎度クソゲーと呼ばれる結果に   •  どうしても面白い!すごい!と言われたくて、   ソースコードを印刷して小学校の休憩時間に読みながら改善ポイントなど書き込む   •  先生に没収され、親に連絡が行き、「息子さんが意味不明な暗号を眺めているのだが」と心配される  
  4. MSX・FAN最終号に投稿したプログラム   クソゲーも数打てば当たる  

  5. WEBMSXとは •  JavaScriptで書かれたMSXのエミュレータ   •  MSX2+相当の機能セットを持っている   •  CPUであるZ80MPUだけでなく、VDPや周辺装置との入出力も実装している  

  6. そもそもMSXってどうやって動いているのか (図解Z80って本がとても参考になります)  

  7. Z80MPUの構造 当日専用スライドなので割愛  

  8. 動作例 LD    A,  (HL)   ADD    A,  B

      0100H  7E   0101H  80   0102H  
  9. 初期状態 当日専用スライドなので割愛  

  10. ”7E”実行後 当日専用スライドなので割愛  

  11. MPUから周辺チップへのアクセス切り替え例 当日専用スライドなので割愛  

  12. メモリ読み出しを例にしたタイミングチャートの見方 次に変化するまではアドレスが   保持されていることを示している   データが出力されていることを示す。   水平線はハイインピーダンス   当日専用スライドなので割愛

     
  13. データ準備が出来ていないことを   MPUへ知らせる信号   当日専用スライドなので割愛  

  14. 当日専用スライドなので割愛  

  15. メモリとアクセス 当日専用スライドなので割愛  

  16. そんなこんなで動作する LD    A,  (HL)   ADD    A,  B

      0100H  7E   0101H  80   0102H   IN    A,  (8E)   0100H  DB   0101H  8E   0102H   メモリへのアクセス   I/Oデバイスへのアクセス  
  17. 抽象的に書くと Z80   MPU   RAM   I/O   Device

      BUS   ここにHTTPアクセスモジュールを接続してみたい   ハードウェアでやろうとすると大変だが   エミュレータなら簡単