Hi. I have mentioned the PDOS (Public Domain Operating System) project before, but just recently I have updated it to work on z/Arch.
It's still somewhat in "Proof of Concept" stage, but it is already producing interesting results. You can obtain a CKD image from the bottom of this page: http://pdos.org The image works under standard Hercules, but it probably won't work on real z/Arch hardware unless you have third-party hardware to give it a local 3270 to IPL from, or run it under z/VM. I'd like to run it from the HMC 3270 "SYSG" instead, but I don't know what code changes I need to make to do that. z/PDOS should IPL from all z/Arch hardware, including hardware that starts in AM64. You can see the startup code here: https://sourceforge.net/p/pdos/gitcode/ci/master/tree/pdpclib/sapstart.asm where it does a SIGP which may fail because it is already in z/Arch mode, but that is ignored, followed by a BSM to put it into AM64 if it isn't already. z/PDOS is written in C and assembler and should build on z/OS (I built on MVS/380). The C compiler used is GCCMVS which uses the i370 target. The interesting thing about the i370 code is that it is AMODE-neutral, ie the 32-bit instructions are the same regardless of whether it is AM24, AM31, AM64 or even a theoretical AM32. What this means is that when running as AM64 the full 4 GiB is available, and there is a command "memtest" which demonstrates a memcpy (MVC) crossing the 2 GiB bar. z/PDOS is designed to run a subset of MVS programs. That subset is currently largely C programs built with GCCMVS. There is one other problem in that the i370 target sometimes produces negative indexes, usually -1, expecting that to be truncated to a value in the 2 GiB or 4 GiB range. That doesn't happen in AM64 and instead the index goes into the 4 GiB to 8 GiB range. I was able to get "gcc --version" to work by giving Hercules 8 GiB of memory instead of 4 GiB, but the proper solution is to somehow restrict indexing to values in the 0-2 GiB range, and force an addition/subtraction in the rare situation where you want a negative index. Anyone interested in assisting? Thanks. Paul. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
