PDOS/386 API list
Posted: Sun Mar 10, 2024 7:31 am
PDOS/386 now supports the following APIs:
1. MSDOS 32-bit INT 21H (you can quibble about this one since it didn't exist)
2. Win32 (msvcrt.dll and kernel32.dll)
3. Linux (INT 80H)
4. OS/2 2.0 (doscalls.dll)
5. PDOS-generic (stack parameter containing struct containing C library function pointers plus extra stuff)
In order to accomplish that, I needed to get the first 4 of the above to stop relying on the stack (or registers) at entry to the executable, clearing the way for PDOS-generic. E.g. for Linux ELF I made it read /proc/<pid>/command instead of the stack.
What this means is that if you write your Linux/Win32/OS/2 programs "properly" (TM), they work on both real Linux etc and PDOS/386.
It is all based around C90 plus ANSI X3.64. ie that's the only thing I support (and even if you do that, you still need to follow the rules I just made up).
All the tools, including the slightly modified gcc 3.2.3, are C90-compliant and the system is self-hosting.
And it is all public domain in case you see a commercial opportunity and don't want any restrictions (ie you can close source it, and no credit required).
I started working on this on 1994-04-28.
On 2024-04-29 I'm planning on getting a life.
Or borrowing someone else's.
Or reading a book on someone else's.
Or googling to try to find a Wiki on how to get one.
http://pdos.org
1. MSDOS 32-bit INT 21H (you can quibble about this one since it didn't exist)
2. Win32 (msvcrt.dll and kernel32.dll)
3. Linux (INT 80H)
4. OS/2 2.0 (doscalls.dll)
5. PDOS-generic (stack parameter containing struct containing C library function pointers plus extra stuff)
In order to accomplish that, I needed to get the first 4 of the above to stop relying on the stack (or registers) at entry to the executable, clearing the way for PDOS-generic. E.g. for Linux ELF I made it read /proc/<pid>/command instead of the stack.
What this means is that if you write your Linux/Win32/OS/2 programs "properly" (TM), they work on both real Linux etc and PDOS/386.
It is all based around C90 plus ANSI X3.64. ie that's the only thing I support (and even if you do that, you still need to follow the rules I just made up).
All the tools, including the slightly modified gcc 3.2.3, are C90-compliant and the system is self-hosting.
And it is all public domain in case you see a commercial opportunity and don't want any restrictions (ie you can close source it, and no credit required).
I started working on this on 1994-04-28.
On 2024-04-29 I'm planning on getting a life.
Or borrowing someone else's.
Or reading a book on someone else's.
Or googling to try to find a Wiki on how to get one.
http://pdos.org