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
980
Swift code in Swift
koyama0612
0
280
昔の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
Is Xcode slowly dying out in 2025?
uetyo
1
180
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
150
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
390
A comprehensive view of refactoring
marabesi
0
970
Using AI Tools Around Software Development
inouehi
0
1.2k
Passkeys for Java Developers
ynojima
3
880
Gleamという選択肢
comamoca
6
740
レガシーシステムの機能調査・開発におけるAI利活用
takuya_ohtonari
0
610
生成AIで日々のエラー調査を進めたい
yuyaabo
0
620
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
560
「ElixirでIoT!!」のこれまでとこれから
takasehideki
0
370
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
0
180
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Adopting Sorbet at Scale
ufuk
77
9.4k
Become a Pro
speakerdeck
PRO
28
5.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
920
How to train your dragon (web standard)
notwaldorf
92
6.1k
Done Done
chrislema
184
16k
The Language of Interfaces
destraynor
158
25k
Visualization
eitanlees
146
16k
Why Our Code Smells
bkeepers
PRO
337
57k
Site-Speed That Sticks
csswizardry
10
650
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
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アクセスモジュールを接続してみたい ハードウェアでやろうとすると大変だが エミュレータなら簡単