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.