110gc -- DataScope Graphics Component
サンプル「ぽたぽた」の説明
プログラムのソースコードはmain.c及び、pict.cgcになります。
main.cが実際の動作を記述しているソースファイルで、
コンパイルされてmain.relを生成します。
pict.cgcは、gcconvのテンプレートファイルで、
gcconvに通すことによりpict.cファイルに変換されます。
そのpict.cがコンパイルされて、pict.relが生成されます。
また、プログラムヘッダとしてheader.macがアセンブルされ
header.relが生成されます。
これらとgc.libが一緒にリンクされ、リンク出力 potapota.absになります。
(リンクコマンドファイルは、makefile中で、一時ファイルとして作成されます。)
この後、tuconvでs24形式に変換されます。
#pragma section area UserWork
byte heap_work[2000]; //ワークエリアのヒープ
#pragma section area f_area
byte heap_app[1000]; //アプリ固有データ領域内のヒープ
gcHeap* appheap= 0; //固有ヒープ
UserStart() {
...
gcAppInit(0);
workheap= gcHeapInit((void*)heap_work, sizeof(heap_work));
if(heap_inited==0) {
appheap= gcHeapInit((void*)heap_app, sizeof(heap_app));
};
gcHeapRegister(workheap); //ワークヒープ登録
gcHeapRegister(appheap); //固有ヒープ登録
gcHeapDefault(workheap, 0); //ワークヒープをデフォルトヒープへ
...
領域vacantは、初期状態で空いている部分を示します。虫(虫なのか?)が落ちて、
埋まっても、領域filledが増えるだけで、領域vacantは変化しません。
このようにこのプログラムでは領域を多用していますが、
おすすめしません。複雑な領域はメモリを食う上に遅いです。