VOGONS


First post, by noshutdown

User metadata
Rank Oldbie
Rank
Oldbie

we know that while the 286 can address 16mb of ram in theory, just like the 386sx. but the 286 protected mode was unpopular, and i found this explanation on wiki:

Several shortcomings such as the inability to access the BIOS or DOS calls, due to inability to switch back to real mode without resetting the processor, prevented widespread usage.
Acceptance was additionally hampered by the fact that the 286 only allowed memory access in 16 bit segments via each of four segment registers, meaning only 4*64K bytes could be accessed at a time. Because changing a segment register in protected mode caused a 6byte segment descriptor to be loaded into the CPU from memory, the segment register load instruction took many tens of processor cycles, making it much slower than on the 8086; therefore, the strategy of computing segment addresses on-the-fly in order to access data structures larger than 128 kilobytes (the combined size of the two data segments) became impractical,

now i have two questions:
1. if one can't access the BIOS or DOS calls, what else can they do?
2. we know that 16bit x86 cpus have 4 segment registers: code, data, stack and extra, each being 64KB long, so one would have to change a segment register whenever a program uses more than 256KB of ram. so whats the difference between protected mode and real mode using more than 256KB of ram? is changing segment registers simply a lot slower in 286 protected mode?