BASIC、ときどき機械語 田中二郎@日本橋学館大学
30年以上の昔から・・・ 真空管でラヂオ(12AU7) トランジスタの登場(2SB56) 電気工作(2SC372) デジタル回路(TTL 7400) 計算機?(ALU 74LS181) マイコン
お小遣いとの闘い 少ない予算 めざせ、高性能! 創意工夫 1024×1を8ヶよりは、256×4を2ヶ 周辺回路は自作 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) TINY BASIC 大流行 DDJ(PaloAlto TinyBASIC) Interface Age(POTATO BASIC) アスキー(電大版BASIC) インタプリタのソースを読む ⇒勉強になった でも、目的は・・・・・・ ⇒StarTrekゲーム
パソコン登場 TK-80BS COMPO/BS カセット再生ができる ⇒音楽付きゲーム PC-8001 BASICがROMに入ってる カセット再生ができる ⇒音楽付きゲーム PC-8001 BASICがROMに入ってる =中身がわからない ⇒解析だぁ~!
手段はBASIC 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板上だと、可愛くない