Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
410
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
370
産業技術大学院大学 情報アーキテクチャ専攻 2016-06-25
koyama0612
1
1k
Swift code in Swift
koyama0612
0
320
昔のLinuxの話 Our Memories of Linux
koyama0612
2
2k
iOS EDC 2013-11-07
koyama0612
1
1.8k
JTF2013: LT
koyama0612
0
190
Other Decks in Programming
See All in Programming
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
350
20 years of Symfony, what's next?
fabpot
2
340
これだけで丸わかり!LangChain v1.0 アップデートまとめ
os1ma
6
1.7k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
140
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
580
愛される翻訳の秘訣
kishikawakatsumi
1
310
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.2k
30分でDoctrineの仕組みと使い方を完全にマスターする / phpconkagawa 2025 Doctrine
ttskch
3
790
【CA.ai #3】Google ADKを活用したAI Agent開発と運用知見
harappa80
0
290
Level up your Gemini CLI - D&D Style!
palladius
1
180
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
200
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1371
200k
Navigating Team Friction
lara
191
16k
Faster Mobile Websites
deanohume
310
31k
The Cult of Friendly URLs
andyhume
79
6.7k
Making Projects Easy
brettharned
120
6.5k
Unsuck your backbone
ammeep
671
58k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.8k
Docker and Python
trallard
47
3.7k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Music & Morning Musume
bryan
46
7k
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アクセスモジュールを接続してみたい ハードウェアでやろうとすると大変だが エミュレータなら簡単