Transcript ppt:3.5MB
BASIC、ときどき機械語
田中二郎@日本橋学館大学
30年以上の昔から・・・
真空管でラヂオ(12AU7)
トランジスタの登場(2SB56)
電気工作(2SC372)
デジタル回路(TTL 7400)
計算機?(ALU 74LS181)
マイコン
お小遣いとの闘い
少ない予算
めざせ、高性能!
創意工夫
1024×1を8ヶよりは、256×4を2ヶ
周辺回路は自作
入出力はスイッチとLED
↑ちょっと豪勢
SADCOM 80-1
CPU:TMS8080ANL
Clock:μPD8224D
⇒2MHz
メモリ:μPD2101AL-4 ×2
⇒256Bytes
開発環境
ハードウェアで、手いっぱい
メモリ容量が少ない(256Bytes)
入力が手動スイッチ
ハンドアセンブルで十分
機械語を記憶してしまう
・・・・・・三つ子の魂100まで・・・・・・
マイコン環境
電気屋でバイト
PDA-80(TK-80用開発機)
テレタイプ=紙テープが使える
⇒長いプログラムが書ける
最初につくったのは、逆アセンブラ
⇒モニタなどを解析
BASIC
TINY BASIC 大流行
DDJ(PaloAlto TinyBASIC)
Interface Age(POTATO BASIC)
アスキー(電大版BASIC)
インタプリタのソースを読む
⇒勉強になった
でも、目的は・・・・・・
⇒StarTrekゲーム
パソコン登場
TK-80BS
COMPO/BS
カセット再生ができる
⇒音楽付きゲーム
PC-8001
BASICがROMに入ってる
=中身がわからない
⇒解析だぁ~!
手段はBASIC
BASICで書く逆アセンブラ
評判がよかった?
⇒雑誌記事に
エディタやアセンブラもBASICで書く
⇒やったことは、DOSの改良
解析好き
PC-8801、PC-6001の逆アセンブル
⇒やはり、雑誌記事に
解析する側から、される側へ
パソコン用BASICインタプリタ作成のバイト
遅いクロック
=部品を減らすために、ビデオのクロック採用
少ないメモリ
=開発中に、BIOS側にメモリをとられる
実行クロック数・バイト数を数えよう
1クロック減るなら、数百行書き換える(^^
⇒マニア受けする機械になった
現在・・・
Z80の機械語・クロック数は、まだ覚えてる
「論よりRUN」で開発
↑基礎ができていれば、という条件付き
インタープリタ系言語が、やっぱり好き
perl でちょこちょこっと書く、今日この頃
⇒perl で逆アセンブラを書いちゃいました
PaloAltoTinyBasic + StarTrek
当時を思って、作ってみました
・インタープリタ=2KB
・ゲーム=5.5KB
・モニタ=3KB
当然、逆アセンブラ付き(^^
ゲームに、間違いを見つけた
メモリが余る
⇒ほかに何をいれよう?
AKI-80
Z80コンパチ(CPU+CTC,SIO,PIO)
12MHz
ROM:32K, RAM:32K
USB-Serial変換:FT232RL
Q&A
動きはじめるまで、1日かからない
9600bps, 8-bits, 1-stop, no-parity
割り込みは使っていません
LEDが光るのは、計算機として当然!
高輝度LEDを0.1mA程度で使用
電池がCPU板上だと、可愛くない