• Please review our updated Terms and Rules here

double memory with PM32 D-bit

kerravon

Experienced Member
Joined
Oct 31, 2021
Messages
137
If I have a PM16 OS and program (both written by me), so that I have 8192 selectors (including both GDT and LDT), and I tile them to the max, and sequentially, and run everything in privileged mode, but I need to also write and execute memory, in a simple manner, so two selectors for each memory block halves my selectors down to 4096, then I can address 256 MiB of RAM.

On an 80386, if I use PM32 and set the D-bit to indicate a segment is 16-bit rather than 32-bit, then I have access to double the number of selectors, ie 16384, and thus I can address 512 MiB of RAM under this scheme.

My question is - am I missing anything? ie are there any PM16 instructions or something like that that stop working when I am using PM32 (but with every selector 16-bit)?

Another question - is it possible to do BIOS calls - at least rudimentary ones to access the disk - in PM16? If so, can the BIOS read data into the entire address space, ie 256 MiB?

Thanks.
 
IIRC, there are 8192 GDT selectors. Do you actually have to have read/write access to every byte of memory?

What I remember was that the 80286 virtual memory system could allocate up to 2 GB but I don't remember how to do it. It feels wrong to saddle a 386+ with 286 code that can't run on an actual 286.

The IBM ABIOS could be called from protected mode. Otherwise, for most normal BIOS functions, it was necessary to switch to a real mode piece that called the BIOS or write matching protected mode code.
 
IIRC, there are 8192 GDT selectors. Do you actually have to have read/write access to every byte of memory?

Yes, I want a simple design, inspired by MSDOS.

What I remember was that the 80286 virtual memory system could allocate up to 2 GB but I don't remember how to do it. It feels wrong to saddle a 386+ with 286 code that can't run on an actual 286.

The PM16 applications will run fine on both PDOS/286 and PDOS/386-PM-not-quite-16 or whatever it is called.

Your PM16 application binaries (source unavailable/lost/whatever) will simply get double the available memory when run on the 386.

(Note that I am trying to decide what the best thing to do in the 1983 or whatever timeframe is, not 2024 - I am not offering an opinion on 2024)

The IBM ABIOS could be called from protected mode. Otherwise, for most normal BIOS functions, it was necessary to switch to a real mode piece that called the BIOS or write matching protected mode code.

Thanks. I wasn't aware of the ABIOS. I looked it up and it's not something that I will use.
 
Back
Top