VOGONS

Common searches


First post, by RayeR

User metadata
Rank Oldbie
Rank
Oldbie

Hi,
during my nvidia hacking journey I remembered linux tool NVclock which can do various O'C settings and also display debug info about nV cards. So I decided to make Win32 and DOS port. They are not ideal but works. A question for DOS/DJGPP programmers about memory mapping - see bottom of readme:

NVClock 0.8 beta 4 DOS & WIN32 port by RayeR, 25.1.2009
*******************************************************

This ports are based on NVClock sources downloaded from:
http://www.linuxhardware.org/nvclock/#download.

There already existed win32 port but it was too obsolete
and disabled in configure. I had to tweak configure and
make scripts to reenable it. Also some fixes of sources
was needed. I did code clean-up to fix all warnings that
appeared on -Wall. Then I added a feature to read softstrap
bits from NV4x BIOS (appended to BIOS info, see -i option).

To run and compile win32 version you need to download
and install MemAccess Library 1.4 from:
http://www.zealsoftstudio.com/memaccess/download.html
This will install NT KMD or VXD to enable physical
memory access to MMIO registers. Warnig: not available
for Windows Vista/7. To compile sources I used MinGW32
with GCC 3.4.5 from:
http://www.mingw.org

Because I'm a DOS fan I also created DOS port of NVClock.
I need to write own PCI and physical memory handling
routines, see BACKEND\back_dos.c. Accessing PCI is quite
easy, I go directly thorugh PCI IO ports. To map the MMIO
registers I used DPMI wrapper __djgpp_map_physical_memory()
that maps physical memory over your page-aligned allocated
virtual memory buffer. This requires DPMI 1.0 server or
support of DPMI function 0508h - CWSDPMI has it but e.g.
Win9x not. Then I'm not sure about unmapping this memory
and because freeing of allocated buffers caused problems
I leaved it mapped but I seems to work. I tested it on my
Asus 7900GT PCI-E VGA.

To compile sources I used DJGPP 2.04 from:
http://www.delorie.com/djgpp
with GCC 4.3.2. Because of DJGPP is missing getopt_long()
function I bundled BACKEND\getopt.h, BACKEND\getopt.c,
BACKEND\getopt1.c from findutils 4.17 sources.
If you want to compile with short file names use
MAKEFILE.DJ instead.

http://rayer.ic.cz/programm/programe.htm#NVCLOCK