MobyGamer wrote on 2025-08-14, 04:04:
XMS doesn't allow near-instant banking of memory, so it isn't really possible. XMS is too slow for accessing sample data for a modplayer on a 286.
XMS perfectly allows real-time access... but only to protected mode software. It makes no sense for a mod player that is primarily targetted towards 8088 systems to be written as protected mode software, though (although if you would pull off clever tricks as the windows 3.0 real mode / standard mode distinction makes, you could write software that works in 8088 real mode and in 80286 protected mode, but that's a complicated project by itself).
Unless you go target protected mode, XMS access means that DOS is "suspended" for some time, the processor is put into a special configuration that allows access to XMS, some data is copied from/to/within XMS, and then the processor reconfigured into a DOS-compatible state and DOS is resumed. Using XMS like this in a DOS application is unsuitable for real-time applications (like playing back on the PC speaker), and still quite resource hungry if you need to copy a lot (this means: you would need a good caching algorithm to minimize "swaps" between XMS and conventional memory). On the other hand, EMS memory is "just there" with fast switching of the currently visible range (unless you are using software emulation like EMM286). Well, actually, if you have DMA-capable sound hardware in that 286, you can try EMM286, which uses XMS copies to fake EMS mapping, but don't expect great results.