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.
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net