Submit Search
Upload
N88-BASIC Language
•
1 like
•
1,665 views
sunflat
Follow
NL-Nagoya 2016/04/16
Read less
Read more
Software
Report
Share
Report
Share
1 of 15
Recommended
EE
EE
Tatsumi Naganuma
モバイルノート
モバイルノート
s1170024
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
Ren’pyの御紹介
Ren’pyの御紹介
zgock
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
monochrojazz
激安コンピュータがアツい!あるいは最近作っているものの話
激安コンピュータがアツい!あるいは最近作っているものの話
Ryota Suzuki
Open design computer project(boost)
Open design computer project(boost)
Ito Takahiro
seccamp2012 チューター発表
seccamp2012 チューター発表
Hirotaka Kawata
Recommended
EE
EE
Tatsumi Naganuma
モバイルノート
モバイルノート
s1170024
Mt basic as-os_on_danbot
Mt basic as-os_on_danbot
たけおか しょうぞう
Ren’pyの御紹介
Ren’pyの御紹介
zgock
XRDPで怠惰な日々を送る
XRDPで怠惰な日々を送る
monochrojazz
激安コンピュータがアツい!あるいは最近作っているものの話
激安コンピュータがアツい!あるいは最近作っているものの話
Ryota Suzuki
Open design computer project(boost)
Open design computer project(boost)
Ito Takahiro
seccamp2012 チューター発表
seccamp2012 チューター発表
Hirotaka Kawata
お化け
お化け
たけおか しょうぞう
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
Kenji Aoyama
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
Kenichiro MATOHARA
20130216 workshop
20130216 workshop
Yoichiro Sakurai
Summer camp2018 group2
Summer camp2018 group2
openrtm
1999年 最新バックアップ事情
1999年 最新バックアップ事情
Masatoshi Itoh
Pengenalan komputer
Pengenalan komputer
AndryL2
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1
openrtm
Lt大会資料 張田浩明
Lt大会資料 張田浩明
hharita
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
Kunihiko HAYASHI
計算機理論入門01
計算機理論入門01
Tomoyuki Tarumi
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
CMSI計算科学技術特論A(10) 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A(10) 行列計算における高速アルゴリズム1
Computational Materials Science Initiative
CMSI計算科学技術特論A(11) 行列計算における高速アルゴリズム2
CMSI計算科学技術特論A(11) 行列計算における高速アルゴリズム2
Computational Materials Science Initiative
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
Taisuke Fukuno
マイコンを語る
マイコンを語る
otmb
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
schoowebcampus
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
antibayesian 俺がS式だ
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
Atsushi Hayakawa
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
Shinichi Nakagawa
More Related Content
What's hot
お化け
お化け
たけおか しょうぞう
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
Kenji Aoyama
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
たけおか しょうぞう
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
Kenichiro MATOHARA
20130216 workshop
20130216 workshop
Yoichiro Sakurai
Summer camp2018 group2
Summer camp2018 group2
openrtm
1999年 最新バックアップ事情
1999年 最新バックアップ事情
Masatoshi Itoh
Pengenalan komputer
Pengenalan komputer
AndryL2
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1
openrtm
Lt大会資料 張田浩明
Lt大会資料 張田浩明
hharita
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
Kunihiko HAYASHI
計算機理論入門01
計算機理論入門01
Tomoyuki Tarumi
What's hot
(12)
お化け
お化け
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
"PC-9801-86 sound board on LUNA", at NBUG Meeting 2014-12
Lispマシン ドキュメント和訳とか、 ちびLispとか
Lispマシン ドキュメント和訳とか、 ちびLispとか
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
20130216 workshop
20130216 workshop
Summer camp2018 group2
Summer camp2018 group2
1999年 最新バックアップ事情
1999年 最新バックアップ事情
Pengenalan komputer
Pengenalan komputer
Rsj2013 sekiyama 1
Rsj2013 sekiyama 1
Lt大会資料 張田浩明
Lt大会資料 張田浩明
FirefoxOS を AndroidStick で動かしてみた(updated)
FirefoxOS を AndroidStick で動かしてみた(updated)
計算機理論入門01
計算機理論入門01
Viewers also liked
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
suno88
CMSI計算科学技術特論A(10) 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A(10) 行列計算における高速アルゴリズム1
Computational Materials Science Initiative
CMSI計算科学技術特論A(11) 行列計算における高速アルゴリズム2
CMSI計算科学技術特論A(11) 行列計算における高速アルゴリズム2
Computational Materials Science Initiative
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
Taisuke Fukuno
マイコンを語る
マイコンを語る
otmb
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
schoowebcampus
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
antibayesian 俺がS式だ
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
Takanori Suzuki
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
Atsushi Hayakawa
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
Shinichi Nakagawa
Viewers also liked
(10)
8bit 時代のプログラミング事情を訪ねて
8bit 時代のプログラミング事情を訪ねて
CMSI計算科学技術特論A(10) 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A(10) 行列計算における高速アルゴリズム1
CMSI計算科学技術特論A(11) 行列計算における高速アルゴリズム2
CMSI計算科学技術特論A(11) 行列計算における高速アルゴリズム2
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
世界最安値!? 鯖江産コンピューターIchigoJam 〜福井技術者の集い その2〜
マイコンを語る
マイコンを語る
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
通巻450号!日本最古のパソコン情報誌「I/O」編集長が語る、続くメディアとは
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
RとPythonによるデータ解析入門
RとPythonによるデータ解析入門
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
野球Hack!~Pythonを用いたデータ分析と可視化 #pyconjp
Similar to N88-BASIC Language
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
たけおか しょうぞう
Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
たけおか しょうぞう
LTで分かる!アセンブラ
LTで分かる!アセンブラ
Toru Nayuki
Meltdown を正しく理解する
Meltdown を正しく理解する
Norimasa FUJITA
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
Daisuke Masubuchi
Unix architecture
Unix architecture
raw-hide
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
NUCで始めるVMware Tanzu
NUCで始めるVMware Tanzu
Hirotaka Sato
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
Preferred Networks
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
Yukio Saito
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
Kei Mikage
kagamicomput201705
kagamicomput201705
swkagami
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
Izumi Tsutsui
OSC名古屋2015をネタにLinuxユーザの マーケットリサーチを試してみた Market Research about Linux users on...
OSC名古屋2015をネタにLinuxユーザの マーケットリサーチを試してみた Market Research about Linux users on...
Netwalker lab kapper
Similar to N88-BASIC Language
(15)
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711-a@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
Dataflow140711@Kernel/VM北陸1
LTで分かる!アセンブラ
LTで分かる!アセンブラ
Meltdown を正しく理解する
Meltdown を正しく理解する
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
Unix architecture
Unix architecture
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書く
NUCで始めるVMware Tanzu
NUCで始めるVMware Tanzu
Topology Managerについて / Kubernetes Meetup Tokyo 50
Topology Managerについて / Kubernetes Meetup Tokyo 50
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Craft CMSに最適なサーバはどんな環境?
Craft CMSに最適なサーバはどんな環境?
kagamicomput201705
kagamicomput201705
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
OSC名古屋2015をネタにLinuxユーザの マーケットリサーチを試してみた Market Research about Linux users on...
OSC名古屋2015をネタにLinuxユーザの マーケットリサーチを試してみた Market Research about Linux users on...
More from sunflat
2015年6月 sunflat開発履歴
2015年6月 sunflat開発履歴
sunflat
自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史
sunflat
MSX Language
MSX Language
sunflat
Windows Phone
Windows Phone
sunflat
LLNagoya Apple
LLNagoya Apple
sunflat
第3話 「チートも、隠しクラスも、あるんだよ」
第3話 「チートも、隠しクラスも、あるんだよ」
sunflat
いにしえの開発環境
いにしえの開発環境
sunflat
端末IDとActivityの話
端末IDとActivityの話
sunflat
Amazon EC2 (Nagoya reject02)
Amazon EC2 (Nagoya reject02)
sunflat
iPhone and iPad Memory Management
iPhone and iPad Memory Management
sunflat
AppStore Report 2009/03 by Sunflat
AppStore Report 2009/03 by Sunflat
sunflat
More from sunflat
(11)
2015年6月 sunflat開発履歴
2015年6月 sunflat開発履歴
自作ゲーム配布方法の歴史
自作ゲーム配布方法の歴史
MSX Language
MSX Language
Windows Phone
Windows Phone
LLNagoya Apple
LLNagoya Apple
第3話 「チートも、隠しクラスも、あるんだよ」
第3話 「チートも、隠しクラスも、あるんだよ」
いにしえの開発環境
いにしえの開発環境
端末IDとActivityの話
端末IDとActivityの話
Amazon EC2 (Nagoya reject02)
Amazon EC2 (Nagoya reject02)
iPhone and iPad Memory Management
iPhone and iPad Memory Management
AppStore Report 2009/03 by Sunflat
AppStore Report 2009/03 by Sunflat
N88-BASIC Language
1.
N88-BASIC Language Sunflat
2.
自己紹介 • Twitter: @sunflat •
仕事 • Sunflat GAMES: ゲーム開発 • Misoca: 請求書サービス開発 • ドラクエ10: 冒険者
3.
N88-BASIC言語とは? • 昔、NECのPC-88/PC-98シリーズに 搭載されていたプログラミング言語 • 25年ほど前(1991年〜) EPSON製のPC-98互換機で N88-BASICを使っていた •
当時自分で書いたプログラムを 読み返してみよう!
4.
EPSON PC-286C • PC-98互換機 •
CPU 80286 10MHz • RAM 640KB • FDD2基 • NECのPC-98より だいぶ安かった • 定価168,000円 • キーボード一体型 MSXっぽくて良い
5.
ディスクのデータ吸出し • エミュレータで実行させるため、 当時のFDのデータを吸い出した • ノート型PC-98をヤフオクで落札 (2008年ごろ。3000円ぐらい) •
P.D.P.というツールで吸出し http://d.hatena.ne.jp/sunflat/20081205
6.
発掘されたプログラム例 • エミュレータ(T98-Next)で動作デモ • 洞窟探検ゲーム(スペースキーで操作)
7.
洞窟探検ゲームのプログラム • 当時はYISoftと名乗っていた
8.
謎1: ぎっしり詰まったコード • Minifyした結果ではない MSX-FANより •
MSX-FAN(雑誌)に掲載された1画面プログラム などを打ち込んでプログラミングを覚えた • 「長方形にぎっしり詰まったコード = 美しいコード」 という、歪んだ美意識が育まれた
9.
謎2: 無意味なコード • 変数名も適当(キーボード配置が近い3文字)
10.
無意味なコードを除去後 • 動作は同じだが、長方形が崩れて美しくない • 綺麗な長方形にするために、わざと 無意味なコードを追加したと思われる
11.
謎3: 周辺チップへの直接アクセス • OUT命令:
グラフィックチップ(GDC)にアクセスして 映像を縦に拡大表示している(高速化のため) • VOICE REG 命令: FM音源チップ(YM2608)に アクセスして音を出している(詳細不明)
12.
謎4: バイナリデータ列 機械語(マシン語) 自機の画像 パレット(色)
13.
機械語の中身を解析 • Online Disassembler(Webサービス) •
i8086(16ビット)の機械語をアセンブリ言語に変換 VRAMのデータをスライドさせて、 画面を左スクロールしている
14.
その他は、割と普通のコード • 読みづらいけど 初期設定 データ読込 描画 自機移動 ゲームオーバー
15.
まとめ • 昔N88-BASICで書いたプログラムを 読んでみたが、解析が大変だった • ぎっしり詰まったコードスタイル •
高速化のため、一部が機械語 • ポート番号などを直接数値で記述 • 25年後に読んでも分かりやすい ソースコードを書こう!