Date   

Priorities and Versioning

Harold Grovesteen
 

PRIORITIES

My #1 priority in SATK is fixing something that has been committed but
is not working correctly.

Functionality released by others to which SATK is trying for comparable
support is the next priority. SATK was built to help those developing
bare metal systems (there is more than Hercules today), to have a
vehicle by which they can test what they have developed. And it has
indeed been generally successful for that purpose. If functionality
has not been committed to SATK but others are working on it, then SATK
is missing its primary goal. So, missed functionality is priority #2.
This primarily effects ASMA, but could involve other tools.

Other enhancements are priority #3.

With my hiatus for 2 or 3 years from development, the project really
needs to focus on priority #2. Getting ASMA in particular "current"
with mainframe assembler coding current with the PoO, excluding
extended mnemonics.

Extended mnemonics are planned after instructions. If you need them,
enjoy trying out ASMA macros. In concept the latest extended mnemonics
are simple but some more complex internal design changes are required
to support them.


VERSIONING

It has been suggested I attend to that better than I have. I agree.
At present only ASMA has versioning. So what would you like to see?
I definitely do not plan to uptick for minor changes or every commit.

Open to your suggestions.

BTW, if you have not tried out SATK, what would you like to see that
would help you do so?

Harold Grovesteen


POP/PUSH USING is now available in ASMA.

Harold Grovesteen
 

Just about everybody who uses ASMA wants this enhancement. The latest
update to the SATK repository has this change including the ASMA
documentation.

POP/PUSH now includes the option of USING along with PRINT. NOPRINT
works as expected.

There are no plans to add ACONTROL at this time.

I will leave Issue #13 on github open until I have received feedback
that it can be closed.

Thanks,
Harold Grovesteen


Boot Loader Services

Harold Grovesteen
 

SATK now provides a set of reusable boot loaders for each of the
Hercules targeted architectures: S/360 (uses S/370 in BC-mode), S/370,
ESA/390, and z/Arch.

A set of programs in the guide directory, pgm5, use these boot loaders
and are provided illustrating the usage. In particular, these booted
programs use the boot loader services provided with the boot loader.

The Boot Loader Services are documented in the new manuals doc/BLS.odt
and doc/BLS.pdf. This manual discusses the concepts used in creation
of the boot loader services, how to use each service and the macros
supplied for use within booted programs, and to a lesser degree the
macros used in construction of the boot loaders themselves. The
multiple CPU and I/O architectures drives towards a lot of conditional
code supplied by internal loader macros.

Manuals doc/SATK.odt, doc/SATK.pdf, doc/io.odt, and doc/io.pdf have
been updated with a few additional general and I/O related macros
developed for the boot loader services.

I encourage the user to peruse the new capabilities. This is the
direction SATK is taking for boot loaders in general. The intention is
to extend the device types supported by the loaders and add services
that make sense.

If you are interested in a particular environment, review the assembly
listings provided. These are much easier to follow than the macros
themselves.

Your input would be appreciated.

Thanks,
Harold Grovesteen


Program 4 - Hello World with a boot loader released

Harold Grovesteen
 

Program 4 illustrates the use of a boot loader in conjunction with the
Hello World program used for program 3.

The Guide.pdf / Guide.odt files have been updated with new information
for the new sample program. New iplasma.py output is explained.
Accessing a FBA DASD device as a boot loader source is also described.

More on boot loaders is coming...

Enjoy!
Harold Grovesteen


Re: how to find UCBs or define them in a stand-alone "naked" OS context

Harold Grovesteen
 

Yup that is an alternative. Glad to hear those are still working for
you. :-).

Harold

On Tue, 2020-08-04 at 13:04 -0700, Fish Fish wrote:
Mark Waterbury wrote:

Does anyone have a definitive resource on how to define
or locate UCBs when running a stand-alone tool or other
OS (other than an IBM SCP that provides its own macro
interfaces to find a UCB)?
As both laddiehanus and Harold Grovesteen have already explained,
using STSCH sounds like what you are wanting.

However, since you are asking this question in the SATK forum, if
perhaps your question is instead, "How do I do I/O to a device in the
SATK standalone environment when there is no operating system
available to me?", the answer would be to refer to pages 32-42 of the
SATK manual, where it describes in the section "Performing
Input/Output Operations" how to use provided SATK macros to
accomplish your goal.

Basically, you use the IOCB macro to define your device(s), the
IOINIT and ENADEV macros to initialize the system, and then the RAWIO
macro to perform the actual I/O. It's pretty simple really.

Hope that helps!


Re: how to find UCBs or define them in a stand-alone "naked" OS context

Fish Fish
 

Mark Waterbury wrote:

Does anyone have a definitive resource on how to define
or locate UCBs when running a stand-alone tool or other
OS (other than an IBM SCP that provides its own macro
interfaces to find a UCB)?
As both laddiehanus and Harold Grovesteen have already explained, using STSCH sounds like what you are wanting.

However, since you are asking this question in the SATK forum, if perhaps your question is instead, "How do I do I/O to a device in the SATK standalone environment when there is no operating system available to me?", the answer would be to refer to pages 32-42 of the SATK manual, where it describes in the section "Performing Input/Output Operations" how to use provided SATK macros to accomplish your goal.

Basically, you use the IOCB macro to define your device(s), the IOINIT and ENADEV macros to initialize the system, and then the RAWIO macro to perform the actual I/O. It's pretty simple really.

Hope that helps!

--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: fish@...


Re: how to find UCBs or define them in a stand-alone "naked" OS context

Harold Grovesteen
 

Assuming the environment is the channel subsystem, the only way to
identify how to talk to a subchannel is through subchannel number.
However, you only know the subchannel as a device with its own
number.

The easiest way is to start with 0 (the IPL device by the way) and use
STSCH to retrieve its subchannel information block. Within the SCHIB
is a field called device number. By this number you know whether it is
the device you are wanting to communicate with.

If the device isn't the one you want, then you increment the subchannel
number by one and try again.

You know you are at the end of the configured subchannels when the
condition code from the STSCH is not zero.

When you find the one that you want, use its subchannel number to talk
to it with the START SUBCHANNEL to initiate the I/O. That instruction
will need an Operation Request Block to get the I/O started.

Note subchannel numbers require a 1 in bit position 15. Bits 16-31 of
the four byte number is where the subchannel number is placed. Bits 0-
14 must be zeros. Low-order full word if dealing with 64-bit
registers.

You will need the PoO manual to code all of this. Chapters 13-17 will
be your friend (sort of). Heavy reading. Just a heads up.

Harold Grovesteen

On Tue, 2020-08-04 at 09:27 -0700, Mark Waterbury wrote:
Does anyone have a definitive resource on how to define or locate
UCBs when running a stand-alone tool or other OS (other than an IBM
SCP that provides its own macro interfaces to find a UCB)?

Thanks in advance.


Re: how to find UCBs or define them in a stand-alone "naked" OS context

laddiehanus
 

Since it’s standalone there are none. If you want then you have to build them. Look at Start subchannel in principles of operations for info on starting an io operation 

Laddie

Sent from whatever device I am using.

On Aug 4, 2020, at 12:26 PM, Mark Waterbury <mark.s.waterbury@...> wrote:

Does anyone have a definitive resource on how to define or locate UCBs when running a stand-alone tool or other OS (other than an IBM SCP that provides its own macro interfaces to find a UCB)?

Thanks in advance.


how to find UCBs or define them in a stand-alone "naked" OS context

Mark Waterbury
 

Does anyone have a definitive resource on how to define or locate UCBs when running a stand-alone tool or other OS (other than an IBM SCP that provides its own macro interfaces to find a UCB)?

Thanks in advance.


Re: Opinions requested...

Fish Fish
 

Harold Grovesteen wrote:

<snip>

Sorry to hear about your disaster. Such incidences are never any fun. :(


[...]
The net of that is I had not built Hercules since 2016.
I decided to go with SDL Hyperion.
:))


While I believe the ipl scripts will operate with even 3.13,
my tests today produce different output than reside in the
repository. SDL Hyperion is just different.
(Duh!)


Would you prefer that the Hercules listing in the guide
directories remain as they are, or make them consistent
with where SATK will be in the future, that is, using
SDL Hyperion?
Well you KNOW what my answer is obviously going to be!

;-)

--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: fish@...


Re: Opinions requested...

Bert Lindeman
 

Harold,

Although I do not have even started to get into SATK I would prefer the doc to be future prepared.

Thank you, Harold,
Bert


Opinions requested...

Harold Grovesteen
 

Right in the middle of working on the Guide, my PC had a disaster and
then some. Fortunately it was not the PC itself, although I had to
backup a bunch of data, install a new OS, install and configure the
programs I use. Oh, and of course restore the data.

As an aside, I have left openSUSE behind and am using Kubutu. Much
happier.

The net of that is I had not built Hercules since 2016. I decided to
go with SDL Hyperion. While I believe the ipl scripts will operate
with even 3.13, my tests today produce different output than reside in
the repository. SDL Hyperion is just different.

Would you prefer that the Hercules listing in the guide directories
remain as they are, or make them consistent with where SATK will be in
the future, that is, using SDL Hyperion?

Harold Grovesteen


Where I am headed...

Harold Grovesteen
 

At present, iplasma.py is restricted to a simple IPL program.  It does
not understand how to IPL a boot program that reads the storage device
to access the booted program.

My plans are to continue work on iplasma.py to make it fully functional
for FBA volumes.

Others are on the list: CKD, Tape, and Card
Probably in that priority.

If you have any input on the future of SATK let me know your ideas.

Thanks,
Harold Grovesteen


Guide Program 3

Harold Grovesteen
 

I have just committed Guide Program 3 (and its associated samples
directory) to the SATK repository.

Program 3 is another version of Hello World.  The big difference from
the previous two programs is that the message is delivered using I/O.
 The program is a bit more complex and there is a lot more explanation
of how the program works to go along with it.

How the IPL channel program operates is also described in Program 3,
Step 2.

One of the challenges I have had in writing documentation is describing
how channel I/O operates.  I am thinking that a description for
programmers, as opposed to a description for hardware engineers, might
be appropriate.  Let me know what you think, please.

Thanks,
Harold Grovesteen


Re: SATK Status

Fish Fish
 

Harold Grovesteen wrote:

[...]
I develop SATK on Linux. Have not used Windows since
about 2003. I have at this late date no idea how SATK
is used on Windows. I know a few users do use it on
Windows.
<me: raises hand>


Suggestions from Windows users are particularly desirable
and any contributions for this environment would be
appreciated.
When I find time (HA!) I will try to write up how I myself do it via Visual Studio.


Thanks and Happy Bare-Metal'ing,
I always do. :)

Thank you for all of your effort on SATK over the years, Harold!

Much appreciated, buddy!


p.s. You still have some open GitHub Issues, some (most?) of which can probably be closed:

https://github.com/s390guy/SATK/issues

--
"Fish" (David B. Trout)
Software Development Laboratories
http://www.softdevlabs.com
mail: fish@...


Re: SATK Status

 

Yup, I discovered the new Guide while looking over the latest commits.

Very cool!

Bill


SATK Status

Harold Grovesteen
 

The new subscriptions to the group seems to have subsided, so I thought
a status would be helpful.

ASMA, a mainframe assembler supporting all platforms, old and new, with
a full battery of macro tools familiar to most mainframe assembler
programmers no longer has any issues with Python versions.  Python
changed some internal processing that needed accommodation within ASMA.

IPLASMA, the tool that creates an IPL capable medium acceptable to
Hercules is now functioning.  Still working on device support and
refinements.

A new SATK manual is available, doc/Guide.pdf.  It illustrates creating
a simple bare-metal program using ASMA and then creating an IPL capable
DASD volume.  This is new and intended to bring together the many
elements required to use SATK that may be a labyrinth for the new user.
 Samples are in samples/guide for each program.  They have all been
tested with what exists in the sample directory.  Your input on this is
would be appreciated.  Plans are to continue expansion of this manual.

Also, some Hercules documentation has been added to the doc/herc
directory.

I develop SATK on Linux.  Have not used Windows since about 2003.  I
have at this late date no idea how SATK is used on Windows.  I know a
few users do use it on Windows.  Suggestions from Windows users are
particularly desirable and any contributions for this environment would
be appreciated.

The main groups.io page has a link to SATK on github.  Use github to
report problems, issues, etc. or this group.  Either will get to me.

Thanks and Happy Bare-Metal'ing,
Harold Grovesteen


Welcome to SATK

Harold Grovesteen
 

And all things about Bare-Metal mainframe programs!

Harold Grovesteen