From: "Ramcor" Newsgroups: comp.os.msdos.djgpp Subject: SVGA transfers. Speed? Date: Sun, 17 May 1998 14:14:24 +0200 Organization: none Lines: 72 Message-ID: <355ed4d0.0@news.arrakis.es> NNTP-Posting-Host: caladan.arrakis.es To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk I have made a SVGA dumper routine in DJGPP but I feel this may be slow. Does anybody know how to optimize svga transfers? I own a S3 trio64 video card. I know these cards have some sort of optimisations functions to do with 2D graphics. Anybody knows how ? Thanx in advance! PD. I hope the code below serves well to anyone interested! Please feel free to distribute it to whoever you want. #include #include #include void ini_svga640(void) { __dpmi_regs regs; memset(®s, 0, sizeof regs); regs.x.ax = 0x4F02; regs.x.bx = 0x0101; __dpmi_int(0x10, ®s); __djgpp_nearptr_enable(); } void vuelca_a_svga640(char *punt) { // supone granularidad = 64kb. __dpmi_regs regs; memset(®s, 0, sizeof regs); regs.x.ax = 0x4F05; regs.x.bx = 0x0000; regs.x.dx = 0x0000; __dpmi_int(0x10, ®s); rep_movsl(punt, SCREENP, 16384); memset(®s, 0, sizeof regs); regs.x.ax = 0x4F05; regs.x.bx = 0x0000; regs.x.dx = 0x0001; __dpmi_int(0x10, ®s); rep_movsl(punt+65536, SCREENP, 16384); memset(®s, 0, sizeof regs); regs.x.ax = 0x4F05; regs.x.bx = 0x0000; regs.x.dx = 0x0002; __dpmi_int(0x10, ®s); rep_movsl(punt+65536*2, SCREENP, 16384); memset(®s, 0, sizeof regs); regs.x.ax = 0x4F05; regs.x.bx = 0x0000; regs.x.dx = 0x0003; __dpmi_int(0x10, ®s); rep_movsl(punt+65536*3, SCREENP, 16384); memset(®s, 0, sizeof regs); regs.x.ax = 0x4F05; regs.x.bx = 0x0000; regs.x.dx = 0x0004; __dpmi_int(0x10, ®s); rep_movsl(punt+65536*4, SCREENP, 11264); // el £ltimo banco no se completa }