[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00571] Re: ワンべぇ 0.05 暫定 TC++1.0 版
- Subject: [WitchTech 00571] Re: ワンべぇ 0.05 暫定 TC++1.0 版
- From: Hirotaka OHKUBO <ohkubo@ist.aichi-pu.ac.jp>
- Date: Thu, 14 Dec 2000 03:03:17 +0900
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