[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[WitchTech 00571] Re: ワンべぇ 0.05 暫定 TC++1.0 版



TC++ 1.0 + MASM 6 でだましだまし作れるようになったのでまとめておきます。

Makefile
http://www.aichi-pu.ac.jp/ist/~ohkubo/diaryitem/20001212/Makefile

wonbe.c (0.05) へのパッチ
http://www.aichi-pu.ac.jp/ist/~ohkubo/diaryitem/20001212/diff.txt

TASM を持っていない人は
http://www.wonderwitch.com/ml/archives/hoge/msg00052.html
を参考に MASM (ml.exe) を入れましょう。

Makefile めちゃめちゃです。
なぜか tcc に -E オプションで ml.exe 指定できない(GNUmake のせい?)
んで無理矢理やってたり、アセンブラソースを grep -v でいじくったり。

で、Turbo な方々にぜひHELPお願いしたいのが

       extrn   __setargv__:far

って何?です。Witch 環境での正しいこの関数の定義は?

もう一つ疑問なのが

WORD registers[KEYWORD_ES-KEYWORD_AX+1];

で宣言された変数に asm でアクセスするときに、なんでわざわざ

      mov bx,registers[(KEYWORD_BX-KEYWORD_AX)*2]

とインデックスを *2 する必要があるのか、ということです。
そのくらいのアドレス解決はやってくれるはずじゃないの?
(それはもっと後世のバージョンになってからの話?)
TEXT_PUT_NUMERIC 辺り呼んで試してみると、確かにこのままで
パラメータ渡っているみたいで、これで正しいようなんですが...
ちなみに tcc から出てきた wonbe.asm を見ると:

_registers	label	word
	db	16 dup (?)

   ;		mov registers[(KEYWORD_BX-KEYWORD_AX)*2],bx
   ;	
	mov	 DGROUP:_registers[(0e1H-0e0H)*2],bx

ラベル[オフセット] という表現が、"label word" で効いてない、
ってことなんでしょうか? .lst 見てもようわからんす...

-- 
おおくぼ % ま、動きゃなんでもいいか。


ML Archives