Xref: news2.mv.net comp.os.msdos.djgpp:1058 From: Fabrice Frances Newsgroups: comp.os.msdos.djgpp Subject: Re: masm's coff output Date: Tue, 06 Feb 1996 17:22:07 +0100 Organization: Ecole Nationale Superieure d'Ingenieurs des Constructions Aeronautiques Lines: 29 Message-ID: <3117802F.7CBA126D@ensica.fr> References: <311381ff DOT 355150 AT news> NNTP-Posting-Host: linuxfly.ensica.fr To: dave AT davemac DOT demon DOT co DOT uk DJ-Gateway: from newsgroup comp.os.msdos.djgpp Dave McNeill wrote: > .386 > .model flat > > .code > > __go32_conventional_mem_selector proto > _fill_screen proto > > _fill_screen proc > > call __go32_conventional_mem_selector > ... > _fill_screen(): > 00001528: e8db080000 call __go32_conventional_mem_selector+5 ** ** Maybe I'm missing the point (I've not used M$ products for quite a long time), but it seems the 'proto' keyword generates an additional jmp to allow both near and far calls to routines. As __go32_conventional_mem_selector doesn't have such a jmp, the call generated with masm points to 5 bytes after the real start of the routine... so you shouldn't declare the external __go32_conventional_mem_selector routine with the 'proto' keyword Best regards, -- main(){int i,j,k,l,m,n,p;char *s="@_DO AT AJQ@AQQ AT OQO@A_Q AT AQQ@AQO@@@@ONN_QDQAQDAAODAOEDAAIDQAQNN_@@@@";for(j=0 ;j<16;j++)for(l=0;p=j%8,m=l-7+p,i=m/6,n=j*4+i,k=1<