生成されるオブジェクトコードの構造、DOS管理下でのプログラムのロード、実行方法を
詳細に調べると勉強になるかも知れませんが、さすがに今さら感もあるのであまり深く考えず
簡単に専用ツールを使ってスタンドアロン化を実現してみます。
まずは改めてユーザプログラムのコンパイル。
これでリロケータブルのオブジェクトファイルを生成します
次にリンカでユーザプログラムにスタートアップルーチンや各種ライブラリをリンクしていきます。
重要なのはターゲット環境にないDOSのサービスを代替する支援モジュール群で
MSDOSのファンクションコールINT21Hや例外処理をトラップしてエミュレートする機能を含みます
自前で用意した286libはボード上のシリアルI/Fやタイマ、LED等の制御ライブラリ。
xprintfは本来のライブラリの中のprintf系関数がDOSのサービスを利用するためにリンクできないので
その代替ルーチンです。