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

[WitchTech 00429] 16bit 版 LSIC-86WW



えるぴと申します。
TECH向けの議題かどうか解りませんが....

先日の9/2付けのアップデートで、LSIC-86 for WW の32bit版が削除され、
16bit版に置き換えられました。
そこで、16bit版のLSIC-86WWで手持ちのソースがコンパイルできるかどうか
試してみた所、

test.c 42: out of memory

のメッセージが出て、コンパイルに失敗してしまいました。
以下がコンパイルに失敗するソースです。
(mainに何も書かれていないのはご愛敬)

----test.c
int main(int argc, char *argv[])
{}

void fontRotateColorData(void far *src, void far *dst, int length)
{
	unsigned char	far *csrc, far *cdst;
	int		i, j;
	
	csrc = (unsigned char far *)src;
	cdst = (unsigned char far *)dst;
	for ( i = 0; i < length; i++ )
	{
		for ( j = 0; j < 2; j++ )
		{
			cdst[0*2+j] =
					(csrc[7*2+j] & 0x80) |
					(csrc[6*2+j] & 0x80) >> 1 |
					(csrc[5*2+j] & 0x80) >> 2 |
					(csrc[4*2+j] & 0x80) >> 3 |
					(csrc[3*2+j] & 0x80) >> 4 |
					(csrc[2*2+j] & 0x80) >> 5 |
					(csrc[1*2+j] & 0x80) >> 6 |
					(csrc[0*2+j] & 0x80) >> 7 ;
			cdst[1*2+j] =
					(csrc[7*2+j] & 0x40) << 1 |
					(csrc[6*2+j] & 0x40) |
					(csrc[5*2+j] & 0x40) >> 1 |
					(csrc[4*2+j] & 0x40) >> 2 |
					(csrc[3*2+j] & 0x40) >> 3 |
					(csrc[2*2+j] & 0x40) >> 4 |
					(csrc[1*2+j] & 0x40) >> 5 |
					(csrc[0*2+j] & 0x40) >> 6 ;
			cdst[2*2+j] =
					(csrc[7*2+j] & 0x20) << 2 |
					(csrc[6*2+j] & 0x20) << 1 |
					(csrc[5*2+j] & 0x20) |
					(csrc[4*2+j] & 0x20) >> 1 |
					(csrc[3*2+j] & 0x20) >> 2 |
					(csrc[2*2+j] & 0x20) >> 3 |
					(csrc[1*2+j] & 0x20) >> 4 |
					(csrc[0*2+j] & 0x20) >> 5 ;
			cdst[3*2+j] =
					(csrc[7*2+j] & 0x10) << 3 |
					(csrc[6*2+j] & 0x10) << 2 |
					(csrc[5*2+j] & 0x10) << 1 |
					(csrc[4*2+j] & 0x10) |
					(csrc[3*2+j] & 0x10) >> 1 |
					(csrc[2*2+j] & 0x10) >> 2 |
					(csrc[1*2+j] & 0x10) >> 3 |
					(csrc[0*2+j] & 0x10) >> 4 ;
			cdst[4*2+j] =
					(csrc[7*2+j] & 0x08) << 4 |
					(csrc[6*2+j] & 0x08) << 3 |
					(csrc[5*2+j] & 0x08) << 2 |
					(csrc[4*2+j] & 0x08) << 1 |
					(csrc[3*2+j] & 0x08) |
					(csrc[2*2+j] & 0x08) >> 1 |
					(csrc[1*2+j] & 0x08) >> 2 |
					(csrc[0*2+j] & 0x08) >> 3 ;
			cdst[5*2+j] =
					(csrc[7*2+j] & 0x04) << 5 |
					(csrc[6*2+j] & 0x04) << 4 |
					(csrc[5*2+j] & 0x04) << 3 |
					(csrc[4*2+j] & 0x04) << 2 |
					(csrc[3*2+j] & 0x04) << 1 |
					(csrc[2*2+j] & 0x04) |
					(csrc[1*2+j] & 0x04) >> 1 |
					(csrc[0*2+j] & 0x04) >> 2 ;
			cdst[6*2+j] =
					(csrc[7*2+j] & 0x02) << 6 |
					(csrc[6*2+j] & 0x02) << 5 |
					(csrc[5*2+j] & 0x02) << 4 |
					(csrc[4*2+j] & 0x02) << 3 |
					(csrc[3*2+j] & 0x02) << 2 |
					(csrc[2*2+j] & 0x02) << 1 |
					(csrc[1*2+j] & 0x02) |
					(csrc[0*2+j] & 0x02) >> 1 ;
			cdst[7*2+j] =
					(csrc[7*2+j] & 0x01) << 7 |
					(csrc[6*2+j] & 0x01) << 6 |
					(csrc[5*2+j] & 0x01) << 5 |
					(csrc[4*2+j] & 0x01) << 4 |
					(csrc[3*2+j] & 0x01) << 3 |
					(csrc[2*2+j] & 0x01) << 2 |
					(csrc[1*2+j] & 0x01) << 1 |
					(csrc[0*2+j] & 0x01) ;
		}
		csrc += 16;
		cdst += 16;
	}
}
----test.c end

このソースを、
lcc86 -c test.c
として、コンパイルのみ行うと、当方では、前述したエラーメッセージが
表示されてコンパイルエラーとなってしまいました。
LSIC-86WWのマニュアルを見ると、*リンカのエラーメッセージ*として
以下のエラーメッセージがあるのですが、ここではコンパイルしか
行っていないので、症状が異なりますよね?

Out of memory
    シンボルテーブルがあふれました。

という訳で、どうやって手持ちのソースをコンパイルしたら良いか
困り果てております。
皆さんの所では正常にコンパイルできますでしょうか?
まだ、どなたか回避策を知っている方があれば、お教え下さいm(_ _)m

#こんな事なら32bit版LSIC86-WWも同梱して欲しい。

--------
    えるぴ(渡邉 徹)    E-mail address : erupi@fa2.so-net.ne.jp



ML Archives