Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Geek Bar #2
Search
KOYAMA Hiroshi
October 31, 2017
Programming
0
400
Geek Bar #2
WebMSX(JavaScript版MSXエミュレータ)
KOYAMA Hiroshi
October 31, 2017
Tweet
Share
More Decks by KOYAMA Hiroshi
See All by KOYAMA Hiroshi
Geek Bar #3
koyama0612
0
360
産業技術大学院大学 情報アーキテクチャ専攻 2016-06-25
koyama0612
1
1k
Swift code in Swift
koyama0612
0
290
昔のLinuxの話 Our Memories of Linux
koyama0612
2
1.9k
iOS EDC 2013-11-07
koyama0612
1
1.8k
JTF2013: LT
koyama0612
0
180
Other Decks in Programming
See All in Programming
Dart 参戦!!静的型付き言語界の隠れた実力者
kno3a87
0
170
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
240
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
0
210
マイコンでもRustのtestがしたい その2/KernelVM Tokyo 18
tnishinaga
0
170
なぜ今、Terraformの本を書いたのか? - 著者陣に聞く!『Terraformではじめる実践IaC』登壇資料
fufuhu
4
410
Streamlitで実現できるようになったこと、実現してくれたこと
ayumu_yamaguchi
2
280
リッチエディターを安全に開発・運用するために
unachang113
1
360
Terraform やるなら公式スタイルガイドを読もう 〜重要項目 10選〜
hiyanger
12
2.9k
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
0
320
新しいモバイルアプリ勉強会(仮)について
uetyo
1
250
대규모 트래픽을 처리하는 프론트 개발자의 전략
maryang
0
120
あまり知られていない MCP 仕様たち / MCP specifications that aren’t widely known
ktr_0731
0
220
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
The Cost Of JavaScript in 2023
addyosmani
51
8.8k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Making Projects Easy
brettharned
117
6.3k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Music & Morning Musume
bryan
46
6.7k
Writing Fast Ruby
sferik
628
62k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Transcript
WEBMSXを改造して遊ぼう 株式会社あくしゅ 代表取締役 山崎泰宏
MSXとは • 1983年に米マイクロソフトとアスキーによって提唱された 8ビット・16ビットのパソコンの共通規格の名称 • MSXとその後継規格であるMSX2(1985年)、MSX2+(1988年)、MSXturboR(1990年)の総称でもある。
私とMSX • ファミコンは買ってもらわなかったが、MSXは家にあった • それで小学校3年生の時に何気なくBASICを始めた • 以来、ファミコンに勝ちたくてゲームを作り続け、友達に遊んでもらうも、
毎度クソゲーと呼ばれる結果に • どうしても面白い!すごい!と言われたくて、 ソースコードを印刷して小学校の休憩時間に読みながら改善ポイントなど書き込む • 先生に没収され、親に連絡が行き、「息子さんが意味不明な暗号を眺めているのだが」と心配される
MSX・FAN最終号に投稿したプログラム クソゲーも数打てば当たる
WEBMSXとは • JavaScriptで書かれたMSXのエミュレータ • MSX2+相当の機能セットを持っている • CPUであるZ80MPUだけでなく、VDPや周辺装置との入出力も実装している
そもそもMSXってどうやって動いているのか (図解Z80って本がとても参考になります)
Z80MPUの構造 当日専用スライドなので割愛
動作例 LD A, (HL) ADD A, B
0100H 7E 0101H 80 0102H
初期状態 当日専用スライドなので割愛
”7E”実行後 当日専用スライドなので割愛
MPUから周辺チップへのアクセス切り替え例 当日専用スライドなので割愛
メモリ読み出しを例にしたタイミングチャートの見方 次に変化するまではアドレスが 保持されていることを示している データが出力されていることを示す。 水平線はハイインピーダンス 当日専用スライドなので割愛
データ準備が出来ていないことを MPUへ知らせる信号 当日専用スライドなので割愛
当日専用スライドなので割愛
メモリとアクセス 当日専用スライドなので割愛
そんなこんなで動作する LD A, (HL) ADD A, B
0100H 7E 0101H 80 0102H IN A, (8E) 0100H DB 0101H 8E 0102H メモリへのアクセス I/Oデバイスへのアクセス
抽象的に書くと Z80 MPU RAM I/O Device
BUS ここにHTTPアクセスモジュールを接続してみたい ハードウェアでやろうとすると大変だが エミュレータなら簡単