140 likes | 529 Views
BASIC、ときどき機械語. 田中二郎@日本橋学館大学. 30 年以上の昔から・・・. 真空管でラヂオ(12AU7) トランジスタの登場(2SB56) 電気工作(2SC372) デジタル回路(TTL 7400) 計算機?(ALU 74LS181) マイコン. お小遣いとの闘い. 少ない予算 めざせ、高性能! 創意工夫 1024×1 を8ヶよりは、 256× 4を2ヶ 周辺回路は自作 入出力はスイッチとLED ↑ちょっと豪勢. SADCOM 80-1. CPU:TMS8080ANL Clock:μPD8224D
E N D
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板上だと、可愛くない