Mike,
Rather than mess with one of the assemblers running on the "Mainframe" would it be easier to modify the Z390 assembler which is written in Java and runs on any environment with java?
Dave
toggle quoted message
Show quoted text
-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Mike
Alexander
Sent: Wednesday, June 7, 2023 6:11 AM
To: [email protected]
Subject: Re: [H390-MTS] What changes were made to Assembler H to support
MTS and can those be ported to, say Assembler G?
There are a number of interesting questions here, I'll see what I can do to
answer some of them.
Assembling parts of MTS with ASMG is not going to be easy, or even possible.
There are other 370 assemblers that are closer to ASMH which might be a better
starting point. There have been a number of discussions about this on various
Hercules or MTS lists.
The ASMH in MTS is about three generations removed from ASMG. First you
have the extensive changes to the language IBM made. Then there are a
number of changes made at Stanford University. The MTS version is based on
the Stanford version with more changes. The update files in MTS go from the
IBM version through all these changes to the MTS version.
There are about 50 files containing well over 10,000 lines, probably at least
twice that or more.. And tthe starting point (IBM ASMH) is only distantly related
to ASMG.
There is a list of all the changes to the language between the IBM and MTS
versions of ASMH in MTS Volume 14 on page 18. It contains 27 items over 7
pages. Some are trivial, but some aren't, for example number 19 describes
forward references on ORG statements which are used in a number of macros in
MTS.
The expression on an ORG statement can contain symbols not yet
defined in the program. There must be exactly one way in which the
locations counters can be assigned, i.e., the ORGs must be resolvable
and unambiguous.
Number 25 and 26 describe significant extensions to USING statements and the
resolution of base/displacement values through them which are used extensively
in MTS. These two points take up about 4 pages.
This section of Vol 14 only describes language changes, not other changes such
as the PEXIT parameter which is used to improve the printed listing.
PISTLE is the Post IPL system loader. It loads code into shared VM during startup
or later when run by a system programmer. It is not related to RAMROD. There
is a command macro to invoke it somewhere, perhaps in MTS:CMDMACLIB.
During startup it is invoked from *S2L.
Installing something loaded by PISTLE simply means copying the new object to
whatever file *S2L loads it from.
PISTLE is related to the NAS loader which loads things into Named Address
Spaces. NASes are preloaded segments of storage which can be attached to
MTS tasks as required. For example ASMH is loaded into a NAS and *ASMH is a
small driver program which attaches the NAX and calls it. I think these existed in
D6, they are used extensively in the 1996 system.
D6 doesn't have working IP support, the Internet was pretty new in 1988.
As a side note it was sometime in 1989 that I put the first IP packets on an
ethernet at the University of London, somewhat to the consternation of the
local network support folks who thought that TCP/IP would swamp the ethernet
and were surprised when it didn't The 1996 system has decent support for the
Internet as it existed then (i.e. no encryption of any sort). This requires changes
to Hercules which are almost done.
I hope this helps a bit.
Mike
On 5 Jun 2023, at 22:09, John Palmer wrote:
Just wondering what changes were made to Assembler-H to make it
support MTS and could those be ported to Assembler-G.
Are there any other assemblers that work on MTS that could be modified
easier?
I got a bunch of rates stuff assembled successfully with Assembler G
after modifying some of the macros. The final piece is RNBRSUB. I
wrote a local copy with my own billing classes, but it
Has a bunch of includes that I have to restore from the distribution
tapes. Not sure there are landmines in there.
Comments in RNBRSUB say it can be installed with Pistle, which I
assume is a way to hot-swap system components without an IPL. Is there
some documentation on this? To install it permanently, I assume I use
RAMROD.
On TCP/IP – are there any Telnet connections configured in the d6.0A
TABLES? If I use Mike Alexander’s current code, will I be able to
test out internet stuff with d6.0A?
Anxiously awaiting d7.0, especially Confer. ?