Skip to content
Snippets Groups Projects
  1. Dec 01, 2021
    • 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).
      18bcbeb7
    • Rob Swindell's avatar
      The sem_wait() call was just a bad idea after-all · 48874e1e
      Rob Swindell authored
      The sem_wait() call from vdd_read() that was fixed in the previous commit to this file was a bad idea to begin with:
      There is (often) not a 1:1 ratio of bytes in the receive ring buffer and the semaphore count, so we'd often halt here waiting for the semaphore to be signaled even though there were still characters in the receive buffer. This caused (new) stalls/hangs in keyboard input in DOS door games. We didn't see this previously because the sem_wait() call just didn't work (wrong semaphore pointer value).
      
      Now, call sem_trywait_block() in vdd_read(), but only if the RingBufRead() returned 0 (no bytes read) and even then, only block/wait for a maximum of 30 seconds (same as X00 FOSSIL driver). This blocking behavior is specified for FOSSIL function 02h (Get received character with wait) and would not have worked previous to the previous "fix", so now we have that corrected behavior too. The FTSC spec says the wait is indefinite, but I think a 30 second timeout (ala X00) is more reasonable.
      
      Log the git brach/hash instead of the old CVS revision.
      
      GetMailSlotInfo() apparently always fails on Windows 7 with error 87 (even using Microsoft's own sample code), so lower the log message severity of that failure from ERR to DEBUG. Apparently this is pretty harmless anyway as nothing really needs the write-mailslot status. <shrug>
      48874e1e
    • Rob Swindell's avatar
      Add a debug line when wrapping split-screen chat lines. · 39c82c50
      Rob Swindell authored
      Is this the point when the lost chars problem happens?
      39c82c50
  2. Nov 30, 2021
  3. Nov 28, 2021
  4. Nov 26, 2021
  5. Nov 24, 2021
    • 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.
      a87ecd0f
    • Rob Swindell's avatar
      Continuation of previous commit (support for UART-only doors on Windows) · 5cf93814
      Rob Swindell authored
      Needed the actually mapping of XTRN_UART -> EX_UART mode flag here.
      5cf93814
  6. Nov 23, 2021
    • Rob Swindell's avatar
      Allow FOSSIL mode of the Win32 virtual UART/FOSSIL driver to be disabled · 5b36ab9a
      Rob Swindell authored
      When configuring an external program, a Win32 sysop can now choose to *only* enable the virtual UART (and not the FOSSIL driver) feature of the Synchronet virtual UART/FOSSIL driver (dosxtrn.exe/sbbsexec.dll). Some programs (e.g. TradeWars 2) will always use the FOSSIL driver if one is detected and in order to force the use of COM/UART driver for I/O (if that is desired), then one must disable the FOSSIL driver. It's a rare use case, but I can see the potential need.
      
      Renamed the "Intercept I/O" option in SCFG to "I/O Method" and make it clear that "Socket" (for native programs) and "FOSSIL or UART" (for 16-bit DOS programs) is the default method (what was previously identified as "No" I/O Interception).
      
      If a sysop want to disable the virtual UART support (on Win32, e.g. so *only* FOSSIL is available to one or all DOS programs), they do that via their sbbsexec.ini file.
      5b36ab9a
    • Rob Swindell's avatar
      e8793d25
    • Rob Swindell's avatar
      MSVC 1.5c defines _MSDOS, not __MSDOS__ · b1fcb452
      Rob Swindell authored
      This change needed to build dosxtrn.exe (again).
      b1fcb452
  7. Nov 19, 2021
  8. Nov 18, 2021
  9. Nov 17, 2021
    • Rob Swindell's avatar
      Include twit-listed sender name in quotes in log message · 3c55d333
      Rob Swindell authored
      Since mail server log messages have their white-space condensed, it was not obvious why some sender's name would match a twitlist.cfg line that filters names beginning with a space: "\ *" because the initial space of the sender's name was condensed/combined with space before it in the log message.
      3c55d333
  10. Nov 16, 2021
    • Rob Swindell's avatar
      Initialize time zone variable (zone) · ed1f4ab1
      Rob Swindell authored
      As found and reported by Talisam author, apam (HAPPYLND).
      
      sscanf() won't initialize the buffer of the argument passed if the format string is not matched, so when there was no hexadecimal/SMB timezone value, the timezone specified in the ISO date/time string (if any) would be overwritten with 0, converted from the uninitialized 'zone' variable (unlikely to be valid hex-ASCII chars). Thanks apam!
      ed1f4ab1
    • Rob Swindell's avatar
      Add support for "name@address" syntax in twitlist.cfg · 47bb6691
      Rob Swindell authored
      where "address" is a QWKnet ID or path or a FidoNet originating address. Wildcards can be used (e.g. "*@VERT").
      
      For Trikester.
      47bb6691
    • Rob Swindell's avatar
      Add command-line specifier for user's real name (auto-quoted) · d1705535
      Rob Swindell authored
      %+ will now expand to the current user's real name, automatically enclosed in quotes if it contains any spaces.
      d1705535
  11. Nov 12, 2021
    • Rob Swindell's avatar
      Generate a MSGID kludge for netmail messages created by SBBSecho · e10b39d1
      Rob Swindell authored
      The "serialno" field is a bad/naive one (a time_t value), but this is really just an experiment for Ragnarok to see if this fixes issue #306 (with hotdoged receiving AreaFix responses/notices).
      e10b39d1
    • Rob Swindell's avatar
      Fix sbbsfile.nam contents: contained file's description instead of name · 7ff0e5c8
      Rob Swindell authored
      Found during review of previous commit.
      Introduced as part of the new file base branch merge (commit fcf58640).
      7ff0e5c8
    • Rob Swindell's avatar
      Don't write uploaded filename and description to env variables · 7fd781cd
      Rob Swindell authored
      Environment variables are shared among all threads of a process (e.g. all nodes of a instance of sbbs), so this scheme of passing the uploaded filename and description to an external file tester (upload processor) via environment variables has always been fraught with the possibility of failure or flakiness in Synchronet v3. Since I very much doubt that any upload processor is actually using this scheme, just remove it. Upload processors can and should)use the sbbsfile.nam and sbbsfile.des text files created in the node directory instead.
      7fd781cd
    • Rob Swindell's avatar
      Log an error and exit immediately when a local linked-node is configured · 5012efb1
      Rob Swindell authored
      When a linked-node (in echocfg->Linked Nodes) contains one of the local system's FTN addresses, display/log an error and exit immediately, e.g.:
      Configuration ERROR: Linked node #20 is your own address: 1:103/705
      
      I'd perform this check in EchoCfg, but:
      1. echocfg doesn't read the BBS's configuration files (where the local FTN addresses are configured), and
      2. some sysops just directly edit their sbbsecho.ini file
      5012efb1
Loading