z/PDOS university challenge

2023-06-14 Thread Paul Edwards
I now have a pure public domain 3390 disk containing z/PDOS
and assorted utilities.

There isn't a lot of public domain (as opposed to copyrighted
freeware like most z/Linux stuff) stuff available for the mainframe,
so currently there are only crude editing capabilities available.

But you can IPL from DVD/ftp, card reader, tape or 3390.

http://pdos.org

Oh yeah - there's a subset of C90 available so you can write
very limited C. That's the limit of what is available in the
public domain.

Also you can run .com files the same way you could on MSDOS.

.exe files are IEBCOPY unloads. MVS API in both cases.

BFN. Paul.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/PDOS-32 test on real hardware

2023-01-16 Thread Paul Edwards
On Wed, 21 Dec 2022 03:44:56 -0600, Paul Edwards  wrote:

>Would someone be able to try out the latest z/PDOS on
>real hardware?

There is a new version at http://pdos.org which allows
IPL from tape (and restore from 3390 disk image on
tape) - no IBM or other vendor software required - and
it has been confirmed to work on real hardware.

Pics here:

https://groups.io/g/hercules-380/message/2190
https://groups.io/g/hercules-380/message/2191
https://groups.io/g/hercules-380/message/2193

The first IPL is directly on an LPAR.

The second one, with a real terminal was under z/VM.

BFN. Paul.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/PDOS-32 test on real hardware

2022-12-21 Thread Paul Edwards
On Wed, 21 Dec 2022 20:15:49 +, Rahim Azizarab  
wrote:

>I don't have access to real iron; but did you ever try to run it under qemu 
>x390?

As far as I know, qemu doesn't support CKD disks or
connecting a 3270 terminal.

But if that assumption is wrong, I can try it if you give
me a syntax that works for a 3390-1 and what I need
to do to attach a 3270.

Thanks. Paul.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/PDOS-32 test on real hardware

2022-12-21 Thread Rahim Azizarab
I don't have access to real iron; but did you ever try to run it under qemu 
x390?

emu-system-s390x  -display none -machine s390-ccw-virtio -m 2048M -cpu 
max,zpci=on,msa5-base=off -drive file=dasd/ubuntu.qcow2,format=qcow2 \
 -net nic,model=virtio \
-vnc 127.0.0.1:4 \
    -net nic \
    -net user,id=user.0,hostfwd=tcp::-:22 &






regards;

Rahim 



   

 

On Wednesday, December 21, 2022 at 03:45:08 AM CST, Paul Edwards 
 wrote:  
 
 Hi.

Would someone be able to try out the latest z/PDOS on
real hardware?

It's available from http://pdos.org (down the bottom)

It is a 3390-1 CKD image and you will need OSS-ICC in
order to define a 3270 terminal (SYSG is not used).

In addition you will need to know the subchannel id of the
3270 terminal and zap the CKD image with that number,
unless the guess of x'0001' is correct (it's correct
on Hercules).

This version of z/PDOS runs in AM64 and maps the 4-8 GiB
region on to 0-4 GiB so that 32-bit applications have the full
4 GiB available, and negative indexes (which in AM64
resolve to addresses above 4 GiB) are not an issue.

It's effectively AM32, but not really, because it doesn't rule out
the possibility of 64-bit programs running also. If you were to
change the DAT tables, 64-bit programs could access virtual
addresses above 8 GiB which would presumably map to
real memory above 4 GiB.

The executables that it runs are marked as AM31, suitable
for running on z/OS, and also run as AM24 on MVS 3.8J.
But z/PDOS runs them unconditionally as AM64=32.

Note - not just source code compatible - the unchanged
executables run on all those environments (MVS 3.8J
will ignore the AM31 and run as AM24, z/PDOS will ignore
the AM31 and run as AM64/32).

Theoretically, anyway. I've only tested on Hercules/380,
not real z/Arch hardware that I don't have access to.

Thanks. Paul.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
  

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


z/PDOS-32 test on real hardware

2022-12-21 Thread Paul Edwards
Hi.

Would someone be able to try out the latest z/PDOS on
real hardware?

It's available from http://pdos.org (down the bottom)

It is a 3390-1 CKD image and you will need OSS-ICC in
order to define a 3270 terminal (SYSG is not used).

In addition you will need to know the subchannel id of the
3270 terminal and zap the CKD image with that number,
unless the guess of x'0001' is correct (it's correct
on Hercules).

This version of z/PDOS runs in AM64 and maps the 4-8 GiB
region on to 0-4 GiB so that 32-bit applications have the full
4 GiB available, and negative indexes (which in AM64
resolve to addresses above 4 GiB) are not an issue.

It's effectively AM32, but not really, because it doesn't rule out
the possibility of 64-bit programs running also. If you were to
change the DAT tables, 64-bit programs could access virtual
addresses above 8 GiB which would presumably map to
real memory above 4 GiB.

The executables that it runs are marked as AM31, suitable
for running on z/OS, and also run as AM24 on MVS 3.8J.
But z/PDOS runs them unconditionally as AM64=32.

Note - not just source code compatible - the unchanged
executables run on all those environments (MVS 3.8J
will ignore the AM31 and run as AM24, z/PDOS will ignore
the AM31 and run as AM64/32).

Theoretically, anyway. I've only tested on Hercules/380,
not real z/Arch hardware that I don't have access to.

Thanks. Paul.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


Re: z/PDOS

2021-10-10 Thread Salva Carrasco
Paul, the SYSG console seems to be used with the SERVC (B220) opcode 
(Undocumented in the POP).

Take a look to service.c in the Hercules source code.

--
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


z/PDOS

2021-10-09 Thread Paul Edwards
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 lists...@listserv.ua.edu with the message: INFO IBM-MAIN