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
360
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
320
産業技術大学院大学 情報アーキテクチャ専攻 2016-06-25
koyama0612
1
870
Swift code in Swift
koyama0612
0
220
昔のLinuxの話 Our Memories of Linux
koyama0612
2
1.9k
iOS EDC 2013-11-07
koyama0612
1
1.8k
JTF2013: LT
koyama0612
0
150
Other Decks in Programming
See All in Programming
Scala におけるコンパイラエラーとの付き合い方
chencmd
2
430
A New Era of Testing
mannodermaus
2
520
Pythonで改めて考える「クラス(class)」の使いどころ
os1ma
3
870
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
610
Hermes: Better Performance with Bytecode Translation (React Universe 2024)
tmikov2023
0
100
LangChainの現在とv0.3にむけて
os1ma
4
940
エンジニア1年目で複雑なコードの改善に取り組んだ話
mtnmr
3
2k
LangGraphでのHuman-in-the-Loopの実装
os1ma
3
1.1k
Crafting Cross-Platform Adventures: Building a Game Engine with Kotlin Multiplatform
dwursteisen
0
130
実践!難読化ガイド
mitchan
0
220
What is Parser
yui_knk
9
4.2k
Featured
See All Featured
Scaling GitHub
holman
458
140k
Atom: Resistance is Futile
akmur
261
25k
Bash Introduction
62gerente
608
210k
The Cult of Friendly URLs
andyhume
76
6k
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
Adopting Sorbet at Scale
ufuk
73
8.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
BBQ
matthewcrist
83
9.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
47
48k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
Learning to Love Humans: Emotional Interface Design
aarron
270
40k
Documentation Writing (for coders)
carmenintech
65
4.3k
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アクセスモジュールを接続してみたい ハードウェアでやろうとすると大変だが エミュレータなら簡単