• NTVDM project update

    From Nick Andre@1:229/426 to All on Thursday, February 06, 2020 01:03:40
    I received a very detailed email from the author of Net2BBS/NETFOSS, which is a Telnet server for Windows. More specifically, the component NETFOSS allows the Telnet server to execute the 16-bit BBS by means of a "hook" in the way that NTVDM operates. To recap, NETFOSS is a 32-bit Windows dynamic link library (DLL) which essentially handles the Telnet-to-FOSSIL passover. 16-bit BBS/Comm stuff that is Fossil-aware, interacts with NETFOSS using the DLL.

    My understanding from what I read is that the DOS emulation of NTVDM can call Windows DLL's by means of actually executing an invalid or
    normally unrecognised instruction from within the DOS session. The NTVDM behavior on all 32-bit Windows "traps" the DOS call and instead acts on it as
    a DLL function-request.

    This technically makes sense as to how 16-bit BBS stuff and ZC1
    processing happily co-exists with Windows executables and programs. A mixture of both is currently in use on this system in several ways, without much thought as to how thats actually possible. Reminds me of how OS/2 and DOS executables were able to co-exist, or the other way around I think it was.

    Anyhow - in Windows XP, Server 2003 and prior, the NETFOSS.DLL file could reside in the same directory as the BBS/Telnet server. Microsoft revised
    NTVDM for Windows Vista and later 32-bit versions of Windows where for some reason, DLL's loaded in this way must be placed in the \Windows\System32 directory. Most likely done for security reasons or to stop notorious "DLL hell" problems that have plagued Windows for many years.

    The current behavior of this 64-bit NTVDM project testing is that the NETFOSS.DLL cannot be found no matter what directory it is placed in. So, I
    may need to escalate this to the developer team of this project to get their feedback since it appears that the DLL is not loaded at all or is not even being "trapped".

    This is the *only* holdup I can see that prevents me from really porting everything over - Its not a NetFoss problem, its a problem with the emulation.

    The author of Net2BBS/NETFOSS is awesome and appears to be receptive to what I was trying to accomplish.

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From mike ehlert@1:3634/12 to Nick Andre on Thursday, February 06, 2020 21:49:34
    Re: NTVDM project update
    By: Nick Andre to All on Thu Feb 06 2020 01:03:40

    Hi Nick!

    Thanks for the kind words.
    I installed the NTVDM64 binaries that are provided by Edward Mendelson at the University of Columbia web site, and I was very impressed how stable it has become since I last tried it 3 years ago. This is the version from Leecher1337 based on the leaked NT source code that was previously updated by the creator of the OpenNT package. The archive included an install batch file, and all I had to do was open an Administrator Command Prompt, and run the batch file. There was no need to edit any of the config/autoexec.NT fies. The installer suggested I should reboot Windows, but i did not need to. After playing around with the included DOS utils I installed RemoteAccess BBS and had it up and running in local mode. Next I installed Net2BBS and NetFoss. Net2BBS itself runs fine under Windows 64-bit, but NetFoss is designed to run under Windows x86 NTVDM. I replicated the issue you reported, and found that the issue was not that it needs a x64 NETFOSS.DLL, there is simply a bug in the NTVDM64 port that causes it to bomb during the NetFoss.DLL initialization.

    I read your post about the similar NXVDM fork which appears to have also originated from the OpenNT project, but it had not been updated in years so I only looked at the Leecher1337 fork dated Feb 1, 2020.

    I played around with the NetFoss code a bit last night and found a way to work around the bug, but it will require a bit of work to get it fuctional and due to the kluges I need to make the performance will not be quite as good as under
    x86. I'm going to build a separate version of NetFoss specifically for NTVDM64,
    and I hope to have a beta version of it out in about a week for testing. I'll post a message here when it's ready.

    Regards, Mike
    mike@pcmicro.com (this email is working again now) ;-)
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From mike ehlert@1:3634/12 to Nick Andre on Sunday, February 16, 2020 22:17:00
    Re: NTVDM project update
    By: Nick Andre to All on Thu Feb 06 2020 01:03:40

    Hi Nick,

    I received a very detailed email from the author of Net2BBS/NETFOSS, which is a Telnet server for Windows.

    Here's an update on getting NetFoss to work with the NTVDMx64 port by Leecher1337:

    I'm now able to get NETFOSS.DLL to load into this environment, though it took a
    lot more work then I had expected. I actually created a separate version of NetFoss due to major changes in order to work around all the compatibility isues I encountered, so I'm calling NetFoss64. Beta 1 is now available by request, but it currently only works in "COM port mode", so it is functional with the 64-bit version of NetSerial. However when I try to use it in normal "Telnet mode", it fails to recognize the socket that Net2BBS passes to it as a valid socket, which means there is an issue with the socket inheritance. Another issue I found is that batch files abort as soon as any DOS program loads as a TSR, so programs like ANSI.COM and NETFOSS.COM for example cause the
    batch file to abort as soon as it executes the TSR program. I found a workaround for that by using a DOS program called "BatLite" which compiles a batch file into a .com executable file, which does not cause the abort.
    As for the socket inheritance issue, I think I can work around that issue by changing the sequence of what gets loaded first. Currently Net2BBS spawns NF.BAT, which loads NetFoss, and then loads NetCom (The Telnet Communication Engine), which in turn launches the BBS Program (or door). It appears that when
    a DOS program gets loaded (such as NetFoss.com which is the DOS stub of the fossil driver that communicates with the Windows DLL) this causes NTVDMx64 to secretly replace the Command processor from x64 to x86, and this appears to be what kills the socket inheritance. I did a test to see if NetCOM.exe can send data to the socket if NetFoss.com is not loaded, and it can indeed which means it should be possible to make everything work in "Telnet Mode" by having NetCOM.EXE load NetFoss after it has inherited the socket, and then NetFoss will be able to then launch the BBS software. I'll let you know in a few days if that works out.

    By the way, I see that Leecher1337 used to run a telnet bbs at http://dose.0wnz.at :-)

    Regards, Mike
    PCMicro dot com
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From mike ehlert@1:3634/12 to Nick Andre on Tuesday, February 18, 2020 02:22:57
    Re: NTVDM project update
    By: mike ehlert to Nick Andre on Sun Feb 16 2020 22:17:00

    Re: NTVDM project update

    Hi Nick,

    I now have the socket inheritance issue in NetFoss64 resolved, so I've released
    a wide-beta version 0.02 which includes a readme.txt file with detailed intsructions on how to set it up. Anyone intrested in running NetFoss under 64-bit editions of Windows augmented with the NTVDMx64 from Leecher1337 is welcome to give it a try.

    NetFoss64 0.02beta can be downloaded from: https://pcmicro.com/netfoss/download.html

    So far I've only tested it with RemoteAccess BBS, but in the next few evenings I hope to test it with a number of other DOS BBS programs.

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From Nick Andre@1:229/426 to Mike Ehlert on Wednesday, February 19, 2020 00:58:27
    On 18 Feb 20 02:22:57, Mike Ehlert said the following to Nick Andre:

    Hi Nick,

    I now have the socket inheritance issue in NetFoss64 resolved, so I've released a wide-beta version 0.02 which includes a readme.txt file with detailed intsructions on how to set it up. Anyone intrested in running NetF under 64-bit editions of Windows augmented with the NTVDMx64 from Leecher13 is welcome to give it a try.

    Wow thats amazing! I will look into testing again probably later this upcoming weekend.

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From mike ehlert@1:3634/12 to Nick Andre on Wednesday, February 19, 2020 17:33:08
    Re: Re: NTVDM project update
    By: Nick Andre to Mike Ehlert on Wed Feb 19 2020 00:58:27

    Wow thats amazing! I will look into testing again probably later this upcoming weekend.

    Nick

    Sounds good. Last night I found another bug in the NTVDMx64 that I can't find a
    workaround for. When shelling to COMMAND.COM from a DOS program, for some reason the CD command refuses to change the directory. This even happens in local mode if I press Alt-J to "Swap to DOS", in either RemoteAccess or Proboard. Also if the DOS BBS attempts to run a door using a batch file that needs to change the directory to the door's directory, it ends up not working.

    Intrestingly you can run a Win32 door using NFU just fine.. I might have to convert NFU to run DOS door as well, but I've sumbitted the bug on Github and I've also contacted the NTVDMx64 developer directly so hopefully he can provide
    a quick fix.

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From mike ehlert@1:3634/12 to Nick Andre on Wednesday, February 26, 2020 11:48:52
    Re: Re: NTVDM project update
    By: Nick Andre to Mike Ehlert on Wed Feb 19 2020 00:58:27

    I now have the socket inheritance issue in NetFoss64 resolved, so I've released a wide-beta version 0.02 which includes a readme.txt file with detailed intsructions on how to set it up. Anyone intrested in running NetF under 64-bit editions of Windows augmented with the NTVDMx64 from Leecher13 is welcome to give it a try.

    Wow thats amazing! I will look into testing again probably later this upcoming weekend.

    A new version of NTVMDx64 was released yesterday, which is now based on the MinNT project which in turn was based on Windows 2000 source code and updated to support modern Windows. The previous versions of NTVDMx64 were based on Windows NT4. You can download the new version from the University of Columbia NTVDMx64 site. There are now two versions (English and Multilingual).

    This resolves the CD command issue when attempting to run a door from a DOS based BBS, so doors are working perfectly now. Just make sure your CD command does not end with a trailing backslash.

    I've updated NF64 a bit and will be releasing beta3 soon which runs faster.

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From Sean Dennis@1:18/200 to mike ehlert on Wednesday, February 26, 2020 16:25:02
    mike ehlert wrote to Nick Andre <=-

    I've updated NF64 a bit and will be releasing beta3 soon which runs faster.

    While I don't run Windows, I appreciate all the time and effort you have put into this project. It will be nice to run 16-bit DOS doors under Windows again.

    Later,
    Sean

    ___ MultiMail/Linux v0.52

    --- Maximus/2 3.01
    * Origin: Outpost BBS * bbs.outpostbbs.net:10123 (1:18/200)
  • From James Coyle@1:129/215 to mike ehlert on Thursday, February 27, 2020 06:19:13
    the MinNT project which in turn was based on Windows 2000 source code

    I've updated NF64 a bit and will be releasing beta3 soon which runs faster.

    This is great stuff (both the NTVDM64 and your own work) thanks for taking
    the time to get this going. Its starting to look like this 64-bit DOS stuff
    is worth investing some time into for Mystic as well!

    --- Mystic BBS v1.12 A46 2020/02/26 (Windows/64)
    * Origin: Sector 7 (1:129/215)
  • From Nick Andre@1:229/426 to Mike Ehlert on Thursday, February 27, 2020 14:39:00
    On 26 Feb 20 11:48:52, Mike Ehlert said the following to Nick Andre:

    I've updated NF64 a bit and will be releasing beta3 soon which runs faster.

    That is fantastic news. I will test this on Server 2019 sometime next week.

    Your hard work is greatly appreciated. There will be many Sysops glad to be able to finally move off 32-bit Windows and onto 64-bit!

    Nick

    --- Renegade vY2Ka2
    * Origin: Joey, do you like movies about gladiators? (1:229/426)
  • From Zazz@1:124/5014.4 to mike ehlert on Thursday, February 27, 2020 16:47:29
    Re: Re: NTVDM project update
    By: mike ehlert to Nick Andre on Wed Feb 26 2020 11:48:52

    A new version of NTVMDx64 was released yesterday, which is now based on the MinNT project which in turn was based on Windows 2000 source code and updated to support modern Windows. The previous versions of NTVDMx64 were based on Windows NT4. You can download the new version from the University of Columbia NTVDMx64 site. There are now two versions (English and Multilingual).

    This resolves the CD command issue when attempting to run a door from a DOS based BBS, so doors are working perfectly now. Just make sure your CD command does not end with a trailing backslash.

    I've updated NF64 a bit and will be releasing beta3 soon which runs faster.


    ok, am having trouble finding this mew version. Do you have the link info?

    Ruben Figueroa
    aka Zazz
    PBSync Prison BBS
    [1:124/5014.4]
    --- SBBSecho 3.08-Win32
    * Origin: PBSync Prison BBS, Mesquite, Tx (1:124/5014.4)
  • From mike ehlert@1:3634/12 to James Coyle on Wednesday, March 04, 2020 10:24:13
    Re: Re: NTVDM project update
    By: James Coyle to mike ehlert on Thu Feb 27 2020 06:19:13

    This is great stuff (both the NTVDM64 and your own work) thanks for taking the time to get this going. Its starting to look like this 64-bit DOS stuff is worth investing some time into for Mystic as well!

    Hi James,

    The other day I put together a guide for running doors under Mystic/W64 using NTVDMx64 and NetFoss64. When I initially tried it I noticed that doors would only work the first time during a call, and Leecher1337 was able to solve it by
    fixing the way his loader files worked so now doors work perfectly. The new loaders are not available from the University of Columbia's download site, but they are on Github. I added the updated loaders for Windows 10-x64 to the Mystic guide for now. You can find it on the NetFoss download page.

    I have found a couple doors (such as Vestland and the original DOS version of Usurper, that wont run because they use DPMI/XMS memory which NTVDMx64 doesn't support at this point.

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From mike ehlert@1:3634/12 to Nick Andre on Wednesday, March 04, 2020 10:29:34
    Re: Re: NTVDM project update
    By: Nick Andre to Mike Ehlert on Thu Feb 27 2020 14:39:00

    I've updated NF64 a bit and will be releasing beta3 soon which runs faster.

    That is fantastic news. I will test this on Server 2019 sometime next week.

    Hi Nick,

    The latest loaders for NTVMDx64 no longer require batch files to be compiled into .com files. They are not yet on the University of Columbia site just on Github, but I included the loaders for Windows 10-x64 in a guide I wrote for setting it up with Mystic which you can find on the NetFoss download page.

    I haven't gotten around to updating NF beta 3 yet due to being out of town last
    weekend but hope do to do so this coming weekend.

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From mike ehlert@1:3634/12 to Zazz on Wednesday, March 04, 2020 10:34:27
    Re: Re: NTVDM project update
    By: Zazz to mike ehlert on Thu Feb 27 2020 16:47:29

    A new version of NTVMDx64 was released yesterday, which is now based on the MinNT project which in turn was based on Windows 2000 source code and updated to support modern Windows. The previous versions of NTVDMx64 were based on Windows NT4. You can download the new version from the University of Columbia NTVDMx64 site. There are now two versions (English and Multilingual).

    ok, am having trouble finding this mew version. Do you have the link info?

    Hi Zazz,

    The NTVDMx64 download page at the University of Columbia is here: http://www.columbia.edu/~em36/ntvdmx64.html

    The NetFoss64 download page is here:
    https://pcmicro.com/netfoss/download.html

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From Zazz@1:124/5014 to mike ehlert on Wednesday, March 04, 2020 10:23:08
    ok, am having trouble finding this mew version. Do you have the link i

    Hi Zazz,

    The NTVDMx64 download page at the University of Columbia is here: http://www.columbia.edu/~em36/ntvdmx64.html

    The NetFoss64 download page is here: https://pcmicro.com/netfoss/download.html

    Regards, Mike

    Thanks! Got them.

    Ruben Figueroa aka Zazz
    Mystic Prison Board Sysop
    telnet://pbmystic.rdfig.net:24
    Web: www.rdfig.net

    --- Mystic BBS v1.12 A46 2020/02/27 (Windows/32)
    * Origin: Mystic Prison*Mesquite Tx*pbmystic.rdfig.net:24 (1:124/5014)
  • From mike ehlert@1:3634/12 to Zazz on Sunday, March 08, 2020 04:04:20
    Re: Re: NTVDM project update
    By: Zazz to mike ehlert on Wed Mar 04 2020 10:23:08

    I have released a new version of NetFoss64 for Windows x64. NF64 beta 0.03 runs
    noticeably faster then previous versions, and it now supports the classic NF.BAT style of a loader batch file. Previous betas required NetCom to be installed first due to issues in earlier versions of NTVDMx64, as well as requiring door batch files to be compiled into .com files, but thanks to Leecher fixing the reported issues in the previous NTVDMx64 builds NetFoss64 is
    now far simpler to configure.

    Version 0.03b of NetFoss64 requires the latest build of NTVDMx64, which is now available at the University of Columbia web site here:
    http://www.columbia.edu/~em36/ntvdmx64.html

    NetFoss64 does not include a telnet server, but it is compatible with Net2BBS which is included in the release version of NetFoss. Both can be downloaded here:
    https://pcmicro.com/netfoss/download.html

    Regards, Mike
    --- SBBSecho 3.10-Linux
    * Origin: SouthEast Star Mail HUB - SESTAR (1:3634/12)
  • From Shane O'Neill@1:305/3 to mike ehlert on Sunday, March 29, 2020 22:59:20
    On 08 Mar 2020, mike ehlert said the following...

    I have released a new version of NetFoss64 for Windows x64. NF64 beta
    0.03 runs noticeably faster then previous versions, and it now supports the classic NF.BAT style of a loader batch file. Previous betas required NetCom to be installed first due to issues in earlier versions of NTVDMx64, as well as requiring door batch files to be compiled into .com files, but thanks to Leecher fixing the reported issues in the previous NTVDMx64 builds NetFoss64 is now far simpler to configure.

    Mike I just got caught up on this topic and sounds great! I am so wanting to get off Win 32bit and move my Mystic to Win 64bit but I didn't want to loose all my Infocomm doors. I will have to look into this now for win 64bit.

    Will Doorway and the changes you worked on back in early fall of 2019 for the Infocomm games I was having display issues with work under Win 64bit going forward?

    --- Mystic BBS v1.12 A46 2020/03/02 (Windows/32)
    * Origin: 8-Bit Boyz BBS! -=[ bbs.8bitboyz.com port:6502 ]=- (1:305/3)
  • From MIKE EHLERT@1:123/140 to NICK ANDRE on Friday, July 24, 2020 20:14:52
    Hi Nick,

    It's been a few months since I posted, but I wanted to let you know I
    resumed working on NetFoss64 again and put out beta 0.04 yesterday which
    runs quite a bit faster then the previous versions. You can download it
    from https://pcmicro.com/netfoss/download.html

    A new version of NTVDMx64 released last month, and there is several
    bugfixes since then on github but this months binarys have not been
    added to the Columbia U website yet.

    Regards, Mike

    --- Platinum Xpress/Win/WINServer v3.0pr5
    * Origin: Fido Since 1991 | QWK by Web | BBS.FIDOSYSOP.ORG (1:123/140)
  • From Mauro Veiga@4:801/194.1 to MIKE EHLERT on Saturday, July 25, 2020 09:19:00
    Ola MIKE!

    ** 24.07.20 - 20:14, MIKE EHLERT wrote to NICK ANDRE:

    A new version of NTVDMx64 released last month, and there is several
    bugfixes since then on github but this months binarys have not been
    added to the Columbia U website yet.

    Great! :-)
    Please, let us know.

    []'s
    |
    ---------------- telnet://abutre.no-ip.org:2323 ----------- * ------
    |


    --- OpenXP 5.0.42
    * Origin: Point da Coruja - Brasil * (4:801/194.1)
  • From Rob Swindell to MIKE EHLERT on Wednesday, December 01, 2021 17:27:41
    Re: Re: NTVDM project update
    By: MIKE EHLERT to NICK ANDRE on Fri Jul 24 2020 08:14 pm

    Hi Nick,

    It's been a few months since I posted, but I wanted to let you know I resumed working on NetFoss64 again and put out beta 0.04 yesterday which runs quite a bit faster then the previous versions. You can download it
    from https://pcmicro.com/netfoss/download.html

    A new version of NTVDMx64 released last month, and there is several
    bugfixes since then on github but this months binarys have not been
    added to the Columbia U website yet.

    Thanks for your work with the NTVDMx64 guys. I just recently worked on the support for NTVDMx64 in Synchronet for Windows and I'm sure I benefited from your previous experience with and feedback to the devs of this awesome "tool" as I found the integration to be pretty easy.

    The only thing I really *had* to change in SBBSEXEC.DLL (still just a 32-bit DLL) was to include an "init routine" (like I used to before Windows Vista) and have dosxtrn.exe (my 16-bit component) pass the name of the "init routine" in DI when calling RegisterModule(). These changes only appear to be necessary because NTVDMx64 is based on an older version of NTVDM which had the "init routine" requirement. I'm doing this conditionally (only when run in WOW64), so I didn't need separate .exe or .dll for 64-bit systems.

    Hopefully this feedback might help simplify your implementation in netfoss as well.

    Thanks again,
    --
    digital man

    Sling Blade quote #17:
    Charles Bushman: A shovel just makes too goddamned much racket.
    Norco, CA WX: 72.1°F, 26.0% humidity, 4 mph N wind, 0.00 inches rain/24hrs