SBC6809でBASICインタプリタとGAME09が使えるようにはなったが、それ以外だとプログラム言語はアセンブラになる。実数演算の必要なものはBASIC一択しか無い。SBC6809(ESP32)でもSDカードからBASIC読み込んで、その後BASテキストロードして実行ってのを毎回やるのは面倒くさい。そこで扱いやすいC言語あたりが欲しくなる。FM-8/7系とかで動くKコンパイラやFORTRANなんかも有るけど それらも、FBASICのROM内ルーチンありきの構造になってる。海外のだとsmall-cなんかも有るが、やはりTRS-cocoのROM内ルーチンがある前提だったりする。それ以外だとflexやOS-9上で動作するC-compilerがあるが、SBC6809の様なROM/RAM 32Kの狭い領域では使い物にならない。gcc6809も四苦八苦しながらビルドしてhelpとversion表示が出るまでは持っていったことが有るが いざ"hello world" とか 表示させようとすると 標準のライブラリがまともに揃っていない。ファイル上は それらしきlibgcc.aとかあるのだが どこに 表示データ送ってるのか? FLEXかOS-9前提のオブジェクト吐いてくるのかと予想している。 m6809-unknown-elf-gcc hello.c とかやっても、linux の gccなら a.outとか吐き出して。仮に実行できたりするんだが gcc6809では まず できない。ビルトインのライブラリ類を一切当てにしてはいけない。gcc6809のビルドの為のソースに 大体の必要なライブラリソースが含まれてるので それらを流用してsbc6809用のサブセットライブラリを作ってやることにする。 m6809-unknown-elf-gcc -O2 -S -fno-builtin -DFLOAT -DFLOAT_ONLY $1.c -o $1.asm 今使ってる オプションは こんな感じ。 -fno-builtin :ビルトイン関数は使わない -DFLOAT -DFLOAT_ONLY :実数演算が必要な場合、単精度のみ -S :アセンブルソースを出力するだけにする。 あと、 -nostdlib ...