Hi ECM,
I added XMS support (Extended Memory that isn't lockable, HMA with A20 always enabled, and UMBs) to 8086tiny.
I do not understand. 8086 only has address lines A0 to A19, how can XMS, HMA and A20 exist on 8086 hardware at all? In theory, you could implement something which copies around memory between the first 640k of memory and the last 384k of the first megabyte, but most of that will be in use for BIOS and graphics, or simply not have any usable RAM installed? A feasible approach might be drivers which use hardware-based EMS (which *can* be more than 1 MB even on 8086 CPU) as base of an implementation of the XMS API, and maybe even UMB, but neither A20 nor HMA could exist on such hardware with 8086?
I found that at the time FreeCOM expected to run on a 186 or 286 when using XMS. (The 286 instructions unrelated to Protected Mode are all present on the 186 already.)
That makes perfect sense to me. FreeCOM is welcome to make use of 286 optimizations given that PC which have sensible amounts of XMS available must be PC which have 286+ CPU.
This may have been fixed since, after I reported it in 2019: https://github.com/FDOS/freecom/issues/15 Just something to consider when you implement XMS on an 8086.
Regards, Eric _______________________________________________ Freedos-user mailing list Freedos-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/freedos-user