How do you access more memory (above the 1MB) in DOS if the 640K of conventional memory are not enough? I have read a lot about this, but I couldn't figure out how to do this in actual code. Is there an API for this (like in HIMEM.SYS), or can I code it myself? Any answer is fine, whether it uses the XMS or the EMS standard or manually written code. From what I read, though, EMS requires specialized hardware, which is not very convenient.
If you can, please also explain if there are any differences between doing it on a 286 or a 386. Does it necessarily require switching to Protected Mode?