Cで書いたプログラムはそれを動作させるためにある程度のお膳立てが必要でそのためのサンプルコードが付属していました。これをそれぞれの環境に合わせてカスタマイズしろ、ということです
まず必要なのがスタートアップルーチン。スタックの設定、静的変数のクリア・初期化、最後にCプラグラムのmain()関数にジャンプするという動作です。アプリケーションはモニタから起動されモニタの環境を継承するのでスタックの設定はしなくても良いですが、ここは雛型のまま全く手を入れないで使うことにします。
大事なのはこのルーチンがアプリケーションより前、一番最初にリンクさせることで、そうしないと_startupのアドレスがユーザRAMの先頭0x20000になってくれません
スタートアップルーチン:stc92ml.asm
内蔵レジスタのアドレスを定義したファイルです。これをインクルードしておけばレジスタ名称でアクセスすることができます。直しは要りません
I/Oアドレス定義ファイル:io900h1.h
出来上がったオブジェクトをリンクして実アドレスへリロケートする指示ファイルです。今回ボードに拡張しているSRAMの先頭アドレス、サイズを雛型に対して追記しています EMEM1 : org=0x020000, len=0x020000
さらにセクション指示でコードエリアは外付け拡張SRAM0x20000~、データエリアはCPU内蔵SRAM0x2000~と記述しました
リンケージファイル:c92.lcf