VOGONS


First post, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie

To enable DosBox application getting access to MS Server run on Windows, I have added all the required interrupt handler routines for Named Pipe transport to my CVS build. Now MS SQL DOS applications like isql.exe can run from DOSBOX for Windows perfectly, and the code is very simple actually.

The DOS client tools (dbnmpipe.exe/isql.exe) from SQL 6.X can be used to access SQL Servers up to SQL Server 2014 as long as Named-pipe is enabled on the server side.

Now you can run DOS SQL Server applications in DosBox and host your database on a Windows PC – either the host machine or another PC. I hope this function will be a part of next release.

Edit on 2k15.5.21:
Download link:
If you don't want to build DosBox by yourself, you can download the latest build with MS SQL Server support at https://www.x86dos.tk.

Attachments

  • Filename
    dos_files_cpp.diff.txt
    File size
    3.28 KiB
    Downloads
    171 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    dos_cpp.diff.txt
    File size
    1.87 KiB
    Downloads
    199 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    dos_network.h
    File size
    5.53 KiB
    Downloads
    201 downloads
    File license
    Fair use/fair dealing exception
Last edited by cyberwalker on 2015-05-21, 03:31. Edited 14 times in total.

Reply 2 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
Qbix wrote:

where did you add it ?

I created two files(*.cpp/*.h) to include new routines and added code sections to INT21H functions (3DH/3EH/3FH/40H/5F34H/5F35H/5F36H) in dos.cpp to handle networking . These testing snippets can be removed in seconds as the existing code remains intact. May I post these files for reviewing and testing?

Reply 6 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:

Tested but the same result (error) occured at the end of compilation though you added 'inline'.

It seems no code has been generated for the added file dos_network.h.
Is WIN32 defined in your build environment?

Reply 8 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:

Yes, Win32 is defined. Some other experimental patches which have "#ifdef win32" also say the environment is win32.

I am not familiar with GNU C++ and have no idea to the errors. Dos_newwork.h included to dos.cpp and dos_files.cpp is the only file I have added. I think you will figure it out.

Reply 10 of 17, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

1) You didn't add
#include <windows.h> into dos_netowrk.cpp. - Important!

2) Even though I added a filename 'dos_network.cpp' into
Makfile.am in src/dos directory,
it seems that dos.cpp and dos_files.cpp don't(or cannot?) detect dos_network.cpp.
Adding "#include dos_network.cpp" to dos.cpp & dos_files.cpp is not a complete solution.
- some errors are fixed but still other two erros (undefined reference) remained :
Network_TranscateNamedPipe in dos.cpp
NetworkHandleList in dos.cpp and dos_files.cpp.

Reply 11 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:
1) You didn't add #include <windows.h> into dos_netowrk.cpp. - Important! […]
Show full quote

1) You didn't add
#include <windows.h> into dos_netowrk.cpp. - Important!

2) Even though I added a filename 'dos_network.cpp' into
Makfile.am in src/dos directory,
it seems that dos.cpp and dos_files.cpp don't(or cannot?) detect dos_network.cpp.
Adding "#include dos_network.cpp" to dos.cpp & dos_files.cpp is not a complete solution.
- some errors are fixed but still other two erros (undefined reference) remained :
Network_TranscateNamedPipe in dos.cpp
NetworkHandleList in dos.cpp and dos_files.cpp.

Thank you.
(1). Dos_network.h updated.
But on my machine, #include <windows.h> is not required.
(2). Dos_network.cpp had been removed. Only dos_network.h is
required. Please download the latest files for testing.

Reply 12 of 17, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

You misentered something (Transact) in dos_network.h
I altered it to transcated...

I added the follwing lines to dos.cpp
+#ifdef WIN32
+Bit16u NetworkHandleList[DOS_FILES];
+#endif

To fix multi-definition error, I divided dos_network.h into two.
dos_network.h, dos_network2.h

Then, it was successful.

Attachments

  • Filename
    network.diff
    File size
    10.03 KiB
    Downloads
    222 downloads
    File license
    Fair use/fair dealing exception

Reply 13 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:
You misentered something (Transact) in dos_network.h I altered it to transcated... […]
Show full quote

You misentered something (Transact) in dos_network.h
I altered it to transcated...

I added the follwing lines to dos.cpp
+#ifdef WIN32
+Bit16u NetworkHandleList[DOS_FILES];
+#endif

To fix multi-definition error, I divided dos_network.h into two.
dos_network.h, dos_network2.h

Then, it was successful.

Bit16u NetworkHandleList[DOS_FILES] is defined in dos_files.cpp. Your dos_files.cpp is not the one I uploaded. Please refresh all the three files.

Reply 14 of 17, by ykhwong

User metadata
Rank Oldbie
Rank
Oldbie

Nope, you already moved all of the contests of dos_files.cpp into dos_files.h.
So I don't need dos_files.cpp any more.
And dos.cpp also required a line "Bit16u NetworkHandleList[DOS_FILES];" unexpectedly.

[EDIT]
All the files are inlcuded in network.diff that I attached.
Woud you check it, plz?

Reply 15 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie
ykhwong wrote:
Nope, you already moved all of the contests of dos_files.cpp into dos_files.h. So I don't need dos_files.cpp any more. And dos.c […]
Show full quote

Nope, you already moved all of the contests of dos_files.cpp into dos_files.h.
So I don't need dos_files.cpp any more.
And dos.cpp also required a line "Bit16u NetworkHandleList[DOS_FILES];" unexpectedly.

[EDIT]
All the files are inlcuded in network.diff that I attached.
Woud you check it, plz?

Thank you for testing.
I define NetworkHandleList[DOS_FILES] in dos_files.cpp, while your solution works definitely. Maybe putting NetworkHandleList[DOS_FILES], Files[DOS_FILES] and Drives[DOS_DRIVES] all together is better than including it elsewhere. The required files to enable SQL Named Pipe transport are dos.cpp, dos_files.cpp and dos_network.h. If you have build issues on your machine, your workaround can be used.

Reply 16 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie

Pre-build download link:
If you don't want to build DosBox by yourself, you can download the latest version with MS SQL Server (and DBCS like Chinese/Japanese/Korean) support at https://www.x86dos.tk.

SQLite compiled for DOS/DPMI

Reply 17 of 17, by cyberwalker

User metadata
Rank Newbie
Rank
Newbie

I just found out it had long been merged into DosBox-x and Daum build. So I will recommend their builds that have many other patches. It’s been years since I last visited the forum.

SQLite compiled for DOS/DPMI