[MN-dev] [mndiff]: r51 - in trunk/2010: 2010.cc 2_71x6.cc 2_hw_mem.cc 2_nag.cc 2_vc.cc makefile
michael
subversion at mplayerhq.hu
Wed Jul 4 09:13:02 CEST 2007
Author: michael
Date: Wed Jul 4 09:13:01 2007
New Revision: 51
Log:
version from 1998-07-25 20:43
Modified:
trunk/2010/2010.cc
trunk/2010/2_71x6.cc
trunk/2010/2_hw_mem.cc
trunk/2010/2_nag.cc
trunk/2010/2_vc.cc
trunk/2010/makefile
Modified: trunk/2010/2010.cc
==============================================================================
--- trunk/2010/2010.cc (original)
+++ trunk/2010/2010.cc Wed Jul 4 09:13:01 2007
@@ -305,7 +305,7 @@ int main(int argc, char **argv){
if(page_flip==0) i= vgax * vgay * vb;
else i= vgax * vgay * vb << 1;
- vidbuf=(byte*)( map(mib->PhysBase, mib->PhysBase+i) - __djgpp_base_address);
+ vidbuf=(byte*)(map(mib->PhysBase, mib->PhysBase+i)) - __djgpp_base_address;
r.x.ax=0x4F02;
r.x.bx=vid | 16384;
Modified: trunk/2010/2_71x6.cc
==============================================================================
--- trunk/2010/2_71x6.cc (original)
+++ trunk/2010/2_71x6.cc Wed Jul 4 09:13:01 2007
@@ -85,7 +85,7 @@ int scan_pci_meteors(void){
write_pci(bus, dev, 0, PCI_IO_latency, 1, latency);
u=read_pci(bus, dev, 0, PCI_IO_base, 4) & (~0xFF); //fix me 4kb boundray
- meteors[i].saa7116=(saa7116*)(map(u, u+sizeof(saa7116)) - __djgpp_base_address);
+ meteors[i].saa7116=(saa7116*)( (char*)map(u, u+sizeof(saa7116)) - __djgpp_base_address );
printf("IRQ: %X INT: %X BUS: %X DEV: %X MemMap: %X\n",meteors[i].irq, meteors[i].intt, bus, dev, int(u));
// printf("%X %X\n",_go32_info_block.master_interrupt_controller_base, _go32_info_block.slave_interrupt_controller_base);
@@ -597,7 +597,7 @@ static void start_grab(void){
wait(wait_time);
- VID2MEMBUF grabVid2MemBufp= vid2MemBuf[ grabVid2MemBuf ];
+ volatile VID2MEMBUF grabVid2MemBufp= vid2MemBuf[ grabVid2MemBuf ];
if(oneField){
a_saa7116->dma.even[0]= a_saa7116->dma.odd [0]=
Modified: trunk/2010/2_hw_mem.cc
==============================================================================
--- trunk/2010/2_hw_mem.cc (original)
+++ trunk/2010/2_hw_mem.cc Wed Jul 4 09:13:01 2007
@@ -45,7 +45,7 @@ void locklin(void *start, void *end){
while(llp2!=NULL && llp2->next!=NULL) llp2=llp2->next;
meminfo.address=(unsigned long)(start);
- meminfo.size=(unsigned long)(end - start);
+ meminfo.size=(unsigned long)(int(end) - int(start));
if(__dpmi_lock_linear_region(&meminfo)!=0) error(Lock);
if(llp2!=NULL) llp2->next=llp;
@@ -68,7 +68,7 @@ void unlocklin(void *start, void *end){
if(llp==NULL) error(error_code(-8));
meminfo.address=(u_long)(start);
- meminfo.size=(u_long)(end - start);
+ meminfo.size=(u_long)(int(end) - int(start));
__dpmi_unlock_linear_region(&meminfo);
if(llp->start<start){
@@ -88,11 +88,11 @@ void unlocklin(void *start, void *end){
}
void lock(void *start, void *end){
- locklin(start + __djgpp_base_address, end + __djgpp_base_address);
+ locklin((char*)start + __djgpp_base_address, (char*)end + __djgpp_base_address);
}
void unlock(void *start, void *end){
- unlocklin(start + __djgpp_base_address, end + __djgpp_base_address);
+ unlocklin((char*)start + __djgpp_base_address, (char*)end + __djgpp_base_address);
}
void unlockall(void){
@@ -102,7 +102,7 @@ void unlockall(void){
llp=locklist;
while(llp!=NULL){
meminfo.address=(u_long)(llp->start);
- meminfo.size=(u_long)(llp->end - llp->start);
+ meminfo.size=(u_long)(int(llp->end) - int(llp->start));
__dpmi_unlock_linear_region(&meminfo);
llp2=llp;
llp=llp->next;
@@ -249,8 +249,8 @@ void allocCont(VID2MEMBUF *v2mb, int siz
for(int k=0; k<tryi; k++){
v2mb[*num-left+k].b=
(byte*)( map( vds_info.phys + slack + size*k
- , vds_info.phys + slack + size*k + size) // FIX ?-1
- - __djgpp_base_address);
+ , vds_info.phys + slack + size*k + size))
+ - __djgpp_base_address; // FIX ?-1
v2mb[*num-left+k].phys= vds_info.phys + size*k + slack;
}
Modified: trunk/2010/2_nag.cc
==============================================================================
--- trunk/2010/2_nag.cc (original)
+++ trunk/2010/2_nag.cc Wed Jul 4 09:13:01 2007
@@ -163,32 +163,119 @@ static inline int nagLineLogi2Phys(const
}
static inline void mod4Fix(byte *p, const int type){
+ asm(//"int $3 \n\t"
+ "cmpl $2, %%edi \n\t"
+ " jb 1f \n\t"
+ "cmpl $3, %%edi \n\t"
+ " jb 2f \n\t"
+ "3: \n\t"
+ " movb (%%esi, %%ecx), %%al \n\t"
+ " movb 4(%%esi, %%ecx), %%bl \n\t"
+
+ " movb 2(%%esi, %%ecx), %%ah \n\t"
+ " movb 6(%%esi, %%ecx), %%bh \n\t"
+ "7: \n\t"
+ " xorb $-1, %%al \n\t"
+ " xorb $-1, %%bl \n\t"
+
+ " xorb $-1, %%ah \n\t"
+ " xorb $-1, %%bh \n\t"
+
+ " movb %%al, 2(%%esi, %%ecx) \n\t"
+ " movb %%bl, 6(%%esi, %%ecx) \n\t"
+
+ " movb %%ah, (%%esi, %%ecx) \n\t"
+ " movb %%bh, 4(%%esi, %%ecx) \n\t"
+
+ " movb 8(%%esi, %%ecx), %%al \n\t"
+ " movb 12(%%esi, %%ecx), %%bl \n\t"
+
+ " movb 10(%%esi, %%ecx), %%ah \n\t"
+ " movb 14(%%esi, %%ecx), %%bh \n\t"
+
+ " addl $8, %%ecx \n\t"
+ "jnc 7b \n\t"
+ " jmp 8f \n\t"
+
+ "2: \n\t"
+ " movl (%%esi, %%ecx), %%eax \n\t"
+ " movl 4(%%esi, %%ecx), %%ebx \n\t"
+ "7: \n\t"
+ " xorl $0x00FF00FF, %%eax \n\t"
+ " xorl $0x00FF00FF, %%ebx \n\t"
+
+ " movl %%eax, (%%esi, %%ecx) \n\t"
+ " movl %%ebx, 4(%%esi, %%ecx) \n\t"
+
+ " movl 8(%%esi, %%ecx), %%eax \n\t"
+ " movl 12(%%esi, %%ecx), %%ebx \n\t"
+
+ " addl $8, %%ecx \n\t"
+ "jnc 7b \n\t"
+ " jmp 8f \n\t"
+
+ "1: \n\t"
+ " movb (%%esi, %%ecx), %%al \n\t"
+ " movb 4(%%esi, %%ecx), %%bl \n\t"
+
+ " movb 2(%%esi, %%ecx), %%ah \n\t"
+ " movb 6(%%esi, %%ecx), %%bh \n\t"
+ "7: \n\t"
+ " movb %%al, 2(%%esi, %%ecx) \n\t" // AGI 1 CYC
+ " movb %%bl, 6(%%esi, %%ecx) \n\t"
+
+ " movb %%ah, (%%esi, %%ecx) \n\t"
+ " movb %%bh, 4(%%esi, %%ecx) \n\t"
+
+ " movb 8(%%esi, %%ecx), %%al \n\t"
+ " movb 12(%%esi, %%ecx), %%bl \n\t"
+
+ " movb 10(%%esi, %%ecx), %%ah \n\t"
+ " movb 14(%%esi, %%ecx), %%bh \n\t"
+
+ " addl $8, %%ecx \n\t"
+ "jnc 7b \n\t"
+
+ "8: \n\t"
+
+ :
+ : "S" (int(p) + (wndx<<2) ),
+ "D" (type) ,
+ "c" (-wndx<<2)
+ : "%eax", "%ebx", "%ecx", "%edx", "%esi", "%edi");
+
+
+ /*
+
const bool xchg[4]={false, true, false, true};
const int neg [4]={ 0, 0, -1, -1};
- for(int x=0; x<(vgax<<1); x+=4){
- const byte u= p[x ];
- const byte v= p[x+2];
- if(xchg[type]){
+ if(xchg[type]){
+ for(int x=0; x<(wndx<<1); x+=4){
+ const byte u= p[x ];
+ const byte v= p[x+2];
+
p[x ]= (v^neg[type]) - neg[type];
p[x+2]= (u^neg[type]) - neg[type];
- }else{
- p[x ]= (u^neg[type]) - neg[type];
- p[x+2]= (v^neg[type]) - neg[type];
}
+ }else{
+ for(int x=0; x<(wndx<<1); x+=4){
+ const byte u= p[x ];
+ const byte v= p[x+2];
- }
-
-
+ p[x ]= (u^neg[type]) - neg[type];
+ p[x+2]= (v^neg[type]) - neg[type];
+ }
+ } */
}
void corrV(byte * p1, byte * p2, const int type, int *vPhase){
const bool xchg[4]={false, true, false, true};
const int neg [4]={ 0, 0, -1, -1};
- for(int x=0; x<(vgax<<1); x+=4){
+ for(int x=0; x<(wndx<<1); x+=4){
int u1= char(p1[x ]); // perhaps u><v
int v1= char(p1[x+2]);
@@ -577,7 +664,7 @@ void nag_decrypt(void){
if(cleMod4!=encMod4) mod4Fix(lowDriftLinep, type);
}
else{
- for(int x=0; x<(vgax<<1); x+=4){
+ for(int x=0; x<(wndx<<1); x+=4){
linep[x ]= lowDriftLinep[x ];
linep[x+2]= lowDriftLinep[x+2];
}
Modified: trunk/2010/2_vc.cc
==============================================================================
--- trunk/2010/2_vc.cc (original)
+++ trunk/2010/2_vc.cc Wed Jul 4 09:13:01 2007
@@ -49,7 +49,7 @@ void vc_decrypt(void){
long alg1=0, alg2=0, alg3=0;
color c;
-// show_points=1;
+ show_points=1;
const int vc_endx=wndx;
const int vc_startx=int(double(22-scales_x+3)/double(768-scales_x+scalee_x)*wndx);
Modified: trunk/2010/makefile
==============================================================================
--- trunk/2010/makefile (original)
+++ trunk/2010/makefile Wed Jul 4 09:13:01 2007
@@ -1,7 +1,7 @@
.SUFFIXES: .c .cc .h .o .asm .S .s
CFLAGS = -g
-CFLAGS = -O3 -m486 -fomit-frame-pointer -g -Wall -Wstrict-prototypes -malign-double -ffast-math -funroll-loops -fno-default-inline
+CFLAGS = -O3 -mpentium -fomit-frame-pointer -g -Wall -Wstrict-prototypes -malign-double -ffast-math -funroll-loops -fno-default-inline
AFLAGS = -f coff
.c.o: ; gcc $(CFLAGS) -c $<
More information about the Mndiff-dev
mailing list