1. Copy files you need.
[ 7/30/2007 update. XP is not listed explicitly in the instructions below but it can be installed by substituting base directories and for XP *.sys file installs please follow the Win 2K (branch) install instructions. For exmaple the instructions below give the source as "\d0server4\users\angstadt\b6nt\" so substitute the latest version on would use: "\d0server4\users\angstadt\b6xp_v2" as the new source. The hightest/latest version for Win 2K is "\d0server4\users\angstadt\b6nt_v3" etc.
In cases where a file is not under the newer directory root than go back to the original directory.. It means it was not changed. (The reason for this complication is that I am out of quota on this server.) For example givio.sys is unchanged throughout so that one is still the original as below.
There may be some different "mapmem.sys" lurking around.. some don't support dma. The good one is as stated in the section below and also here: "\d0server4\users\angstadt\mapmem\sys\I386\mapmem.sys"
There are also newer ones for the 810 in B810. it only does longword (32 bit) dma's and is supposed to also do hugeword (64 bit) dma capability but i have never managed to make that work (unsuported.. though the source is there if you want to try to make it work. Unfortunately the 810 no longer does 16 bit dma. This is a "feature" of the hardware unless SBS fixed it... As of about a year ago (the ones we bought anyway) so unless they've changed it the 810 does not support 16 bit dma.
There are some versions ending in "big". This refers to the maximum size of the dma safe buffer in mapmem.sys, mapbig.sys ect. the normal mamem.sys is 64k bytes. that means that the dma cannot be longer than 64 kbytes. So if one needs/wants a bigger DMA then one wants to use "d0server4\users\angstadt\b6xp_V2BIG" as the root and "d0server4\users\angstadt\b6xp_V2BIG\sys\obj\I386\mapbig.sys" for dma's up to 512 kilo-bytes in length. (Although the SBS boards are scatter/gather capable of much larger sizes...for the sake of software simplicity I do not use this feature(s)... And since most of needs are small (64K) and some of our machines were originally limited.. and I wanted to use the simpler"continuguous DMA safe buffer... it is most likely to work asking for as little as possible.)
(You can use an XP version on Win 2k if u want... the B810 version has the larger dma byte length limitation by default.)
There are more details in various "aReadme.txt" and possibly "ntdv617.ver" (text) files under the sub-directory of interest. The later versions include improved DMA (tuneable) performance and microsecond precision timing (delays and profiling) capability when run on Pentium II's or above. Hope this helps. End of 7/30/2007 update.]
| Copy from: | To: | Notes/Comments |
| d0server4\users\angstadt\b6nt\sys\giveio.sys | c:\winnt\system32\drivers\giveio.sys | recompile of dale roberts giveio via ddj http://www.ddj.com/ftp/1996/1996.05/directio.zip/ |
| d0server4\users\angstadt\mapmem\sys\i386\mapmem.sys | c:\winnt\system32\drivers\mapmem.sys | version in d0server4\users\angstadt\b6nt\sys\mapmem.sys does not support dma |
| d0server4\users\angstadt\b6nt\sys\instdrv.exe | c:\any_(temp)_directory_you_want\instdrv.exe | (useful) Microsoft utility to install any *.sys driver (changes registry!) |
| d0server4\users\angstadt\b6nt\bntdv617\debug\bntdv617.dll | c:\winnt\system32\bntdv617.dll | ring3 (user) driver dll that calls giveio.sys and mapmem.sys |
| d0server4\users\angstadt\b6nt\bnt617ex\debug\bnt617ex.exe | c:\b6nt\bnt617ex.exe | Window simple peek/poke program to test bntdv617.dll (and all that it calls) |
| d0server4\users\angstadt\b6nt\xlsnt617\EXCEL8.XLB | c:\winnt\EXCEL8.XLB | Optional: this contains a custom Excel Toolbar for Initing the Bit3 which some sheets may use. |
2. Install the driver (in the registry still logged in as administrator):
Open up a command prompt and from the sub-directory where "instdrv.exe"
is and type:
"instdrv giveio c:\winnt\system32\drivers\giveio.sys"
"instdrv mapmem c:\winnt\system32\drivers\mapmem.sys"
You should get back 3 lines with "success..." for both giveio and mapmem
in the
first word of each line. If you don't then something went wrong....
You can undo whatever went wrong by typing in the command prompt:
"instdrv giveio remove"
or
"instdrv mapmem remove"
("instdrv ?" {will list help/options}
(whichever didn't go right) and repeat these steps as necessary until
the filespech is correct the way you want it and with "success.." in the
first word of each line for both giveio and mapmem.
This says to NT V4.x and/or Win 2K that there is a driver with the logical
name of
"giveio" (or "mapmem") and it can be found in c:\winnt...blah blah
blah (wherever!). So it puts a
"giveio" (or "mapmem") entry in the registry which will be needed later.
(Better than doing all of the registry editing by hand as in step 3.b.
below.)
3. Set the drivers to start at boot time automatically:
a. If You are running NT V4.x then drill down to "Devices"
by double clicking each of the following
(starting from the "Desktop") on:
"My Computer"
"Control
Panel"
"Devices"
then scroll down to "giveio" and select it
by clicking on it and then click on the Startup"
button and then click on the "Automatic" (radio)
button and then the "OK" button and then "Close" button.
then scroll down to "mapmem" and set it to
"Automatic" as above.
(Note: if giveio and/or mapmem is not there
then reboot and repeat this step (only for the one(s) not there). If it
is still not there then
go back to the previous step.)
b. If you are running Win 2K it's almost easier to edit the
registry than to use the new interface (they've removed the "devices" entry from
the control panel.)
If You are running Win2k then drill down to "System"
by double clicking each of the following
(starting from the "Desktop") on:
"My Computer"
"Control Panel"
"System"
"Hardware" (single click from now on as they are tabs and buttons)
"Device Manager"
"View"
"Show hidden devices"
  on "Non-Plug and Play Drivers" make sure that branch is expanded (click on "+" if not)
right click on "giveio" and select"properties"
then click on the "Driver" tab
finally on the "Startup" pull down (sub-)window select "Automatic". ("Type" appears to the left of it").
after this is done click on the "OK" button.
do the same for "mapmem" so it is in "Automatic" as well. Both of these
should appear under the "Non-Plug and Play Drivers" gray diamond.
(Note: if giveio and/or mapmem is not there
then reboot and repeat this step (only for the one(s) not there). If it
is still not there then
go back to the previous step.)
OR You can (still) do the last step by editing
the registry
(with regedit or whatever) as administrator
and do a
search for "giveio" which for NT should be
in:
"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\giveio"
(note that the above is exact on my machines
(without the quotes) butt if one is
running from a different "ControlSet" than
that obviously should be changed instead and/or as well!
(if in doubt all instances should be edited).)
You need to change the "Start" value from 0x03 (manual) to 0x02 (automatic).
Repeat whatever you did for "giveio" for the
"mapmem" driver as above.
(Both giveio and mapmem should now be set
to "Automatic".
This means that they will be started at boot
time which leads us
to the next and last step!)
4. Reboot.
After booting you're done! You can now run bnt617ex.exe to test the
installation and copy whatever spreadsheet to a local directory and run
it o.k.
Note that failure to reboot will mean the *.sys driver(s) will not be started so that a givio.sys or mapmem.sys "connect failed" message will occur and that somehow "Automatic" in step 3 above means the driver(s) should start sometime during the boot sequence.
Caution: mapmem.sys has single threading protection so be sure to close bnt617ex.exe before trying to use a spreadsheet or other program that uses bntdv617.dll (and vice-versa) else things won't work. (A message saying that it cannot connect to "mapmem.sys" will come up when the bit3 is initialized.) if this happens in Excel and bnt617ex.exe is not running close Excel and restart it as something has been corrupted. This usually only happens if a VB macro is stopped via ctrl-break. (My unproven theory is that that VB somehow causes bntdv617.dll and its mapmem.sys connection to be broken (possibly by reloading (another instance) bntdv617)... once broken the single-threading in mapmem.sys blocks the thread (second instance of bntdv617) from (again) reconnecting. Although this can be annoying especially when developing/debugging VB macros, restarting Excel quickly recovers. (I've left the thread protection in mapmem as a guard to prevent different callers from getting indeterminate results from potential multiple users applications.)
updated May 8,2007 (removed instdrv incorrect switch delimiter and added the "instdrv ?". r.a.
last updated July 30,2007 (added rudimentary substitution info about XP and other options.)