1. 08 May, 2022 1 commit
    • Rob Swindell's avatar
      Support an optional ini filename argument, write to DOSXTRN.ERR · 5e9cc98f
      Rob Swindell authored
      If a 4th optional argument is provided, use that as the ini filename for virtual UART/FOSSIL driver settings instead of "sbbsexec.ini". Using this feature requires an updated sbbsexec.dll that supports an ini-filename argument (instead of a directory) to the VDD_LOAD_INI_FILE command.
      If DOSXTRN fails to execute the passed command-line, _spawnvp() returns -1, log the errno value and description to DOSXTRN.ERR (in the same directory as DOSXTRN.ENV). This will help diagnose issues executing DOS command-lines (e.g. file not found).
      Upon failure to open/create DOSXTRN.RET, don't prematurely terminate as that would skip a lot of important cleanup.
  2. 28 Apr, 2022 1 commit
  3. 14 Dec, 2021 1 commit
  4. 01 Dec, 2021 2 commits
    • Rob Swindell's avatar
      Remove the last remnants of Win9x/Me support · 717592bc
      Rob Swindell authored
      Allow "FOSSIL Only" as a configuration option for external programs in SCFG. This is a much easier method of disabling the virtual UART support in the Virtual UART/FOSSIL device driver (if/when necessary) than editing the sbbsexec.ini file (which is still supported).
    • Rob Swindell's avatar
      Fix some FOSSIL functions · 18bcbeb7
      Rob Swindell authored
      Function 0Ch (peek) never worked correctly (character was not returned in AX); I guess nothing uses this function (?).
      Function 01h (transmit char w/wait) now will set the timeout flag (0x8000) in the AX if the VDD_WRITE function fails (returns value other than 1).
      Optimize Function 18h (read block) - no need for the extra VDD_STATUS call.
      Use newly defined FOSSIL macros instead of magic numbers of port status bits.
      Log the git branch/hash values to the Windows debug log (via sbbsexec.dll).
  5. 30 Nov, 2021 1 commit
    • Rob Swindell's avatar
      Add support for NTVDMx64 · 6b5de04a
      Rob Swindell authored
      Yes, you can run 16-bit DOS doors on 64-bit (x64) Windows now.
      Install NTVDMx64 (http://www.columbia.edu/~em36/ntvdmx64.html, it's not as onerous as it sounds) and re-enable DOS program support in SBBS (i.e. make sure "NO_DOS" is not in your sbbs.ini [bbs] Options value) and voila: DOS doors work.
      This change adds an empty init routine to sbbsexec.dll since older versions of NTVDM (which NTVDMx64 is based on) required one. Also, the sbbsexec.dll should be located in your Synchronet "exec" directory when using NTVDMx64 (in addition to or instead of your Windows/System32 directory).
  6. 24 Nov, 2021 1 commit
    • Rob Swindell's avatar
      Implement FOSSIL function 0Dh (Keyboard read without wait) · a87ecd0f
      Rob Swindell authored
      As a work around for TradeWars 2 (v11.14 and v11.20) FOSSIL support:
      This door game would never call the FOSSIL "get received character"
      function (02h) . But I did notice that it was calling the "Keyboard
      read" functions. I never implemented the "Keyboard read" functions
      (figured the door game could read the keyboard itself if it wanted to),
      but appparently TW2 won't ever read the COM port (using function 02h)
      unless the Keyboard read function returns AX=0xFFFF (no keyboard data
      available). So now, I just do that and TW2 works (with FOSSIL I/O).
      Incremented the revision to 26.
      Logging the Git branch/hash and other helpful FOSSIL-debug stuff now.
  7. 16 Aug, 2020 1 commit
  8. 15 Apr, 2020 1 commit
    • rswindell's avatar
      So 20 years ago I decided that the DOSXTRN.ENV file created by SBBS would never · dfe45581
      rswindell authored
      have more than 10 environment variables defined in it. I added no bounds
      checking or dynamic allocation, so if the file contained more than 10
      environment variables (and it has since 2002), other stack memory in DOSXTRN
      would get over-written (classic buffer overflow).
      When I recently experimented with adding another environment variable (PCBDIR),
      all dosxtrn NTVDM instances would crash with a familiar but mysterious error
      dialog. This bug may have been causing other dosxtrn instances to crash for a
      long tmie.
      I also had an arbitrary limit on the number of command-line arguments, 16, with
      no bounds-checking, so passing a long list of space-separated arguments could
      also crash DOSXTRN.
      So I've increased both limits to 32 and added bounds checking. I had to break
      out the old 16-bit MSVC (v1.52) and an NT2K DDK (and remove the 64-bit int
      stuff from gen_defs.h) to get this thing to build. But here it is. Updated
      again after all these years. Who'd a thunk.
  9. 24 Jul, 2018 1 commit
    • rswindell's avatar
      The great Copyright year update and (mostly) removal of 2018: · f869ad3d
      rswindell authored
      Most of the copyright years in the source code were misleading (the date of
      most recent publish was actually later) and all were unnecessary. I've been
      removing copyright years piecemeal, for a long time, but I decided it was time
      to just perform a bulk search and (mostly) replace. In some cases, I left
      old copyright years on files that either are not used (and soon to be removed)
      or obsolete and unlikely to ever be touched again (e.g. Win9x FOSSIL VXD). Some
      of the runtime binaries still contain copyright years and those were updated to
  10. 28 Oct, 2006 1 commit
    • rswindell's avatar
      Work-arounds for Windows Vista: · 8c02b477
      rswindell authored
      If the sbbsexec.dll (VDD) load from the exec dir fails, load without a path
      specified (e.g .from \windows\System32\).
      Do not specify an init function, apparently not supported by Vista -
      RegisterModule() fails with AX=1 when an InitFunc is specified.
  11. 20 Jun, 2006 1 commit
  12. 25 May, 2006 2 commits
  13. 20 May, 2006 1 commit
  14. 16 May, 2006 1 commit
  15. 12 May, 2006 2 commits
  16. 10 May, 2006 2 commits
  17. 05 May, 2006 4 commits
  18. 04 May, 2006 1 commit
  19. 03 May, 2006 1 commit
  20. 05 Sep, 2005 1 commit
  21. 16 Sep, 2001 1 commit
  22. 21 Jul, 2001 1 commit
  23. 20 Jul, 2001 1 commit
  24. 19 Jul, 2001 1 commit
  25. 18 Jul, 2001 1 commit
  26. 10 Oct, 2000 1 commit