• src/sbbs3/sbbsexec.c uartdefs.h

    From Rob Swindell to Git commit to main/sbbs/master on Sunday, May 08, 2022 00:43:59
    https://gitlab.synchro.net/main/sbbs/-/commit/7791b698bb633c3ebaa5e8db
    Modified Files:
    src/sbbs3/sbbsexec.c uartdefs.h
    Log Message:
    Improvements to virtual UART driver for Windows

    In the process of creating/testing the new Synchronet Virtual DOS Modem (SVDM) project, I made the following significant improvements:

    - Don't default the log level to DEBUG for debug builds
    - Add a "carrier change" event so carrier low to high transitions can be tracked too
    - Replace several lprintf() calls with lputs() for performance reasons
    - Specify 'volatile' storage for pending_interrupts
    - Interrupts are re-asserted if there are any pending interrupts after reading IIR register
    - Emulate FIFO enablement
    - Support RTS flow control signal
    - Remove conditional/configurable yields when polling LSR and MSR register, would just unnecessarily slow down terminal programs
    - Report "DCD change" in MSR correctly
    - Clean-up (e.g. close handles) in VDD_CLOSE handler
    - VDD_LOAD_INI_FILE allows an optional ini filename (instead of directory) as its argument - for loading an ini filename other than sbbsexec.ini (e.g. svdm.ini).

    Initialize log level in VDDInitialize(). For versions of Windows/NTVDM that use/call the "init proc" (this function), we just re-initialize global variables here.