Errius wrote on 2023-01-28, 19:59:
XMS on a 16-bit CPU? Don't you need 32-bit CPU for that?
XMS itself is just a bunch of API calls for copying data to and from extended memory, abstracting away all the switches into protected mode and back. You can do this on a 286 if you have RAM above 1 MB. Part of the reason for XMS instead of just accessing the memory directly is needing to hide hardware differences with Gate A20, and for multiple programs to use extended memory at once. As I looked at the XMS spec recently, two ways programs would "allocate" extended memory before XMS existed where to either hook the interrupt vector to get the amount of extended memory and subtract out their allocation before returning to the caller (allocating top down), or alternatively, using a fake VDISK header on the block of memory (allocating bottom up) as PC-DOS VDISK was the first program to use extended memory of any form on an AT, and it bypassed HIMEM.SYS/XMS and did not need either.