[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00206] Re: ちょっとしたベンチマーク
- Subject: [WitchTech 00206] Re: ちょっとしたベンチマーク
- From: " 堀口 " <hiya@alpha-net.ne.jp>
- Date: Fri, 4 Aug 2000 01:36:15 +0900
おはつです。西風と申します。
> > Borland "ブランド" 最後の 16bit コンパイラは Borland C++ 5.0 に
> > 含まれている bcc.exe です。
> さて、誰か、このコンパイラ用のスタートアップコードを書きませんか〜?
とりあえずリンクするだけなら以下の方法でできます。
1)MASM を用意します。( LASM 持ってないもんで )
http://msdn.microsoft.com/vstudio/downloads/ppack/vcpp.exe
を解凍して ml.exe ml.err, h2inc.exe, h2inc.err, MasmRef.doc を取り出す。
これで MASM 6.15 が使えるようになります。
2)スタートアッププログラムにエントリーアドレスを設定する。
WWitch\src\tcc_rt\c0ww.asm の一番最後の end に _load0 を追加する。
end _load0
3)makefile を書き換えて MASM でアセンブル。
AS=ml
$(AS) /c /D DISPLAY_MODE_JAPANESE1 /Fo$(CRT0_JAPANESE1) c0ww.asm
$(AS) /c /D DISPLAY_MODE_JAPANESE2 /Fo$(CRT0_JAPANESE2) c0ww.asm
$(AS) /c /D DISPLAY_MODE_ASCII1 /Fo$(CRT0_ASCII1) c0ww.asm
$(AS) /c /D DISPLAY_MODE_ASCII2 /Fo$(CRT0_ASCII2) c0ww.asm
tasm.exe だと proc の引き数の関係で BP の値が壊れるので MASM 使ってます。
ここでできた c0wwasm1.obj ... は bcc の tlink でリンクできます。
ついでに、そのまま tcc でも使えます。
4)bcc でコンパイル。
コンパイルフラグ -x- で例外を使用しない。
-1 -x- -ms
でも、元が C のスタートアップだから以下のような問題があります。
・グローバルで宣言されたクラスのコンストラクタが呼ばれない。
・例外が使えない。
さらに C++ だと、
・メンバ関数はインスタンスが DS にあることを想定しているから
インスタンスを SS に作れない。
・operator new, delete を自作しなくてはならない。
などなど。
少しいじっただけですが、クラス、例外はほぼダメですかね。
でも、少し便利なC言語として割り切れば使えるかも。
'//' コメントが使えて
'表'なんかの文字列が化けない
って、これだけでも嬉んですけどね!
ああ、早く誰か本物のスタートアップ書いてくれないかなぁ!
-------------------
西風
ML Archives