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
420
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
1.1k
Swift code in Swift
koyama0612
0
350
昔のLinuxの話 Our Memories of Linux
koyama0612
2
2k
iOS EDC 2013-11-07
koyama0612
1
1.9k
JTF2013: LT
koyama0612
0
210
Other Decks in Programming
See All in Programming
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
Angular-Apps smarter machen mit Gen AI: Lokal und offlinefähig - Hands-on Workshop!
christianliebel
PRO
0
110
go directiveを最新にしすぎないで欲しい話──あるいは、Go 1.26からgo mod initで作られるgo directiveの値が変わる話 / Go 1.26 リリースパーティ
arthur1
2
550
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.8k
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
220
Windows on Ryzen and I
seosoft
0
290
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
270
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
590
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
310
AI時代のソフトウェア開発でも「人が仕様を書く」から始めよう-医療IT現場での実践とこれから
koukimiura
0
150
Claude Code の Skill で複雑な既存仕様をすっきり整理しよう
yuichirokato
1
380
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.9k
Featured
See All Featured
Ruling the World: When Life Gets Gamed
codingconduct
0
170
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.1k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
120
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
390
Documentation Writing (for coders)
carmenintech
77
5.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
GitHub's CSS Performance
jonrohan
1032
470k
Building Adaptive Systems
keathley
44
3k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
140
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アクセスモジュールを接続してみたい ハードウェアでやろうとすると大変だが エミュレータなら簡単