PDOS/380
Posted: Sun Aug 01, 2010 7:54 am
Hi folks.
I have an existing operating system called PDOS (public domain operating system), which I started working on in the mid 90s. It was designed to be a clone of MSDOS, except have both a 32-bit and 16-bit version.
It is working to some extent, but I stopped working on it around 2002, and switched to working on the S/370 (IBM mainframe) processor instead - concentrating on porting PDPCLIB (public domain C runtime library) and GCC to that environment. That is all working fine.
Using the recently-ported GCC, I have now produced a S/370 (and S/380) version of PDOS, written in C. Like its 386 cousin, it consists of an IO.SYS (pload), an MSDOS.SYS (pdos) and COMMAND.COM (pcomm), and the intention is to look like MSDOS, but running MVS executables instead of MSDOS executables, and handling MVS SVC calls instead of INT86 calls.
I have started by doing the minimum required to get pcomm, which at the moment is basically an ordinary MVS hello world C program (which means that it has all the baggage of C, doing a lot of OS calls), to run.
With the proof of concept now done, I am now wondering if anyone would like to look at the fairly small amount of code involved, and suggest any structural changes before it gets stuck in stone and I paint myself into a corner?
500 lines of C ...
http://pdos.cvs.sourceforge.net/viewvc/ ... iew=markup
300 lines of assembler ...
http://pdos.cvs.sourceforge.net/viewvc/ ... iew=markup
Thanks. Paul.
22:40:33 * MSG FROM HERCULES: Welcome to PDOS!!!
22:40:33 * MSG FROM HERCULES: IPL device is 1b9
22:40:33 * MSG FROM HERCULES: PCOMM should reside on cylinder 2, head 0 of IPL device
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 24
22:40:33 * MSG FROM HERCULES: SVC code is 64
22:40:33 * MSG FROM HERCULES: SVC code is 27
22:40:33 * MSG FROM HERCULES: SVC code is 22
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 24
22:40:33 * MSG FROM HERCULES: SVC code is 64
22:40:33 * MSG FROM HERCULES: SVC code is 27
22:40:33 * MSG FROM HERCULES: SVC code is 22
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 24
22:40:33 * MSG FROM HERCULES: SVC code is 64
22:40:33 * MSG FROM HERCULES: SVC code is 27
22:40:33 * MSG FROM HERCULES: SVC code is 22
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: welcome to pcomm
22:40:33 * MSG FROM HERCULES: argc = 3
22:40:33 * MSG FROM HERCULES: arg 0 is <>
22:40:33 * MSG FROM HERCULES: arg 1 is <Hi>
22:40:33 * MSG FROM HERCULES: arg 2 is <There>
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 20
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 20
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 20
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 3
22:40:33 * MSG FROM HERCULES: return from PCOMM is 5
I have an existing operating system called PDOS (public domain operating system), which I started working on in the mid 90s. It was designed to be a clone of MSDOS, except have both a 32-bit and 16-bit version.
It is working to some extent, but I stopped working on it around 2002, and switched to working on the S/370 (IBM mainframe) processor instead - concentrating on porting PDPCLIB (public domain C runtime library) and GCC to that environment. That is all working fine.
Using the recently-ported GCC, I have now produced a S/370 (and S/380) version of PDOS, written in C. Like its 386 cousin, it consists of an IO.SYS (pload), an MSDOS.SYS (pdos) and COMMAND.COM (pcomm), and the intention is to look like MSDOS, but running MVS executables instead of MSDOS executables, and handling MVS SVC calls instead of INT86 calls.
I have started by doing the minimum required to get pcomm, which at the moment is basically an ordinary MVS hello world C program (which means that it has all the baggage of C, doing a lot of OS calls), to run.
With the proof of concept now done, I am now wondering if anyone would like to look at the fairly small amount of code involved, and suggest any structural changes before it gets stuck in stone and I paint myself into a corner?
500 lines of C ...
http://pdos.cvs.sourceforge.net/viewvc/ ... iew=markup
300 lines of assembler ...
http://pdos.cvs.sourceforge.net/viewvc/ ... iew=markup
Thanks. Paul.
22:40:33 * MSG FROM HERCULES: Welcome to PDOS!!!
22:40:33 * MSG FROM HERCULES: IPL device is 1b9
22:40:33 * MSG FROM HERCULES: PCOMM should reside on cylinder 2, head 0 of IPL device
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 24
22:40:33 * MSG FROM HERCULES: SVC code is 64
22:40:33 * MSG FROM HERCULES: SVC code is 27
22:40:33 * MSG FROM HERCULES: SVC code is 22
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 24
22:40:33 * MSG FROM HERCULES: SVC code is 64
22:40:33 * MSG FROM HERCULES: SVC code is 27
22:40:33 * MSG FROM HERCULES: SVC code is 22
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 24
22:40:33 * MSG FROM HERCULES: SVC code is 64
22:40:33 * MSG FROM HERCULES: SVC code is 27
22:40:33 * MSG FROM HERCULES: SVC code is 22
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: welcome to pcomm
22:40:33 * MSG FROM HERCULES: argc = 3
22:40:33 * MSG FROM HERCULES: arg 0 is <>
22:40:33 * MSG FROM HERCULES: arg 1 is <Hi>
22:40:33 * MSG FROM HERCULES: arg 2 is <There>
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 20
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 20
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 20
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 10
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 120
22:40:33 * MSG FROM HERCULES: SVC code is 3
22:40:33 * MSG FROM HERCULES: return from PCOMM is 5