Discussion:
MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick - Poor Man's 3270 Support
(too old to reply)
'Dave Wade' dave.g4ugm@gmail.com [hercules-390]
2015-12-03 18:23:02 UTC
Permalink
-----Original Message-----
Sent: 03 December 2015 18:16
Subject: Re: [hercules-390] Re: Sample OS - Madnick - Poor Man's 3270
Support
On Thu, 3 Dec 2015 18:00:34 -0000
Would it be possible to create an external macro pre-processor that
takes the existing code and just expands the macros?
I haven't been following this from the beginning but is the problem that
you
don't have the MTS assembler source or that you don't have the MTS
assembler itself?
MTS used a modified version of the IBM Assembler H to assemble some core
components. The base assembler is licenced code and so can't legally be
distributed with MTS and has been removed from the distributions.
What are people wanting to accomplish, exactly?
In effect do an MTS Sysgen, so re-assemble the system tables. At present
they have patched the binaries....

Dave
G4UGM
------------------------------------
------------------------------------
http://groups.yahoo.com/group/hercules-390
http://www.hercules-390.org
------------------------------------
Yahoo Groups Links
lists@openmailbox.org [hercules-390]
2015-12-03 18:57:06 UTC
Permalink
On Thu, 3 Dec 2015 18:23:02 -0000
Post by 'Dave Wade' ***@gmail.com [hercules-390]
-----Original Message-----
Sent: 03 December 2015 18:16
Subject: Re: [hercules-390] Re: Sample OS - Madnick - Poor Man's 3270
Support
On Thu, 3 Dec 2015 18:00:34 -0000
Would it be possible to create an external macro pre-processor that
takes the existing code and just expands the macros?
I haven't been following this from the beginning but is the problem that
you
don't have the MTS assembler source or that you don't have the MTS
assembler itself?
MTS used a modified version of the IBM Assembler H to assemble some core
components. The base assembler is licenced code and so can't legally be
distributed with MTS and has been removed from the distributions.
Thanks for your explanations. That's interesting to say the least. So the
MTS distribution people now have access to is essentially useless.

Can't anybody get whoever is in charge of that to at least release an
executable of the assembler? Do they not understand without the ability to
develop code releasing the rest of MTS thing ceases to have any meaning
except maybe as a demo?
Post by 'Dave Wade' ***@gmail.com [hercules-390]
What are people wanting to accomplish, exactly?
In effect do an MTS Sysgen, so re-assemble the system tables. At present
they have patched the binaries....
Is it possible somebody grabbed the distribution that still had the
assembler or that copies before the assembler was removed exist anywhere?
'Dave Wade' dave.g4ugm@gmail.com [hercules-390]
2015-12-03 20:11:54 UTC
Permalink
-----Original Message-----
Sent: 03 December 2015 18:57
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick -
Poor Man's 3270 Support
On Thu, 3 Dec 2015 18:23:02 -0000
Post by 'Dave Wade' ***@gmail.com [hercules-390]
-----Original Message-----
Sent: 03 December 2015 18:16
Subject: Re: [hercules-390] Re: Sample OS - Madnick - Poor Man's
3270 Support
On Thu, 3 Dec 2015 18:00:34 -0000
Would it be possible to create an external macro pre-processor
that takes the existing code and just expands the macros?
I haven't been following this from the beginning but is the problem that
you
don't have the MTS assembler source or that you don't have the MTS
assembler itself?
MTS used a modified version of the IBM Assembler H to assemble some
core components. The base assembler is licenced code and so can't
legally be distributed with MTS and has been removed from the
distributions.
Thanks for your explanations. That's interesting to say the least. So the
MTS
distribution people now have access to is essentially useless.
Can't anybody get whoever is in charge of that to at least release an
executable of the assembler?
That would still be in breach of the IBM licences.
Do they not understand without the ability to
develop code releasing the rest of MTS thing ceases to have any meaning
except maybe as a demo?
I think you exaggerate slightly. Its really only the terminal config that's
an issue.
Post by 'Dave Wade' ***@gmail.com [hercules-390]
What are people wanting to accomplish, exactly?
In effect do an MTS Sysgen, so re-assemble the system tables. At
present they have patched the binaries....
Is it possible somebody grabbed the distribution that still had the
assembler
or that copies before the assembler was removed exist anywhere?
I am pretty sure the MTS team have access to the assembler, as I am sure
they have a licence that does not specify a hardware serial number...
.. they are also well aware of the issues...
------------------------------------
------------------------------------
http://groups.yahoo.com/group/hercules-390
http://www.hercules-390.org
------------------------------------
Yahoo Groups Links
Kevin Monceaux Kevin@RawFedDogs.net [hercules-390]
2015-12-03 21:17:19 UTC
Permalink
Post by 'Dave Wade' ***@gmail.com [hercules-390]
I think you exaggerate slightly. Its really only the terminal config that's
an issue.
Actually changing the time zone would be easier with an ASMH replacement
available, or with the TABLES assembly converted to Plus. This is what I
have in my notes for patching the time zone during IPL:

Do you want to run the current system (yes or no)?
NO
Enter IPLREADER command:
LOAD
D6.0SYS.600/MP ENTRY=56D18 PSECT=100008 VIRTUAL=B0000...191A60 VIRTUAL_START=100
WRITTEN BY ID TSTP AT 14:41:27 FRI APR 22/88 BY Kevin Bosley
COM 14:40 Apr 22 - D6.0 XA/MP system for MTS600.
<<<<BOOM>>>>
Enter IPLREADER command:
MODIFY 5FA2 FE98C3E2E3
Enter IPLREADER command:
START

From elsewhere in my notes I think FE98C3C2C3 is for central standard time.
I failed to note the value to use to switch to daylight saving time.
--
Kevin
http://www.RawFedDogs.net
http://www.Lassie.xyz
http://www.WacoAgilityGroup.org
Bruceville, TX

What's the definition of a legacy system? One that works!
Errare humanum est, ignoscere caninum.
quatras.design@yahoo.com [hercules-390]
2015-12-03 21:31:02 UTC
Permalink
I have a lot of (mostly) fond memories of using MTS at Wayne State University. I was working for another company under contract, and they rented time on Wayne's Amdahl mainframe and on MTS.


Reviewing the discussion above, I am wondering if something like a "cross assemble" couldn't be done.


That is, export the desired source, maybe assemble it as needed on MVS 3.8, then copy back the object decks to MTS and link.


If I recall correctly, MTS used the MVS standard for object deck format, except they had something special for "low core symbol tables". Perhaps this could be accommodated with a post-processor, in case the object module had to be modified to make it MTS compatible.


It seems like this ought to work...
Gregg Levine gregg.drwho8@gmail.com [hercules-390]
2015-12-03 21:45:37 UTC
Permalink
Hello!
I freely admit that I'm something of a naif when it comes to writing
programs for Big Iron, but in my experiences in writing programs for
everything else, I'd frequently write macro expressions that would do
that.

What about the Tachyon Assembler? Doesn't it work in much the same way
as the ASM H one? Or even be fooled into working as such? In fact
given the fact that the GNU Toolchain we use practically every day
groks S/390 code why not use them?

But all of this was off the cuff and may be of no use.
----
Incidentally why is the group spending its time writing code for a
cluster of machines unrelated to this discussion, Dave M?
-----
Gregg C Levine ***@gmail.com
"This signature fought the Time Wars, time and again."
Post by ***@yahoo.com [hercules-390]
I have a lot of (mostly) fond memories of using MTS at Wayne State University. I was working for another company under contract, and they rented time on Wayne's Amdahl mainframe and on MTS.
Reviewing the discussion above, I am wondering if something like a "cross assemble" couldn't be done.
That is, export the desired source, maybe assemble it as needed on MVS 3.8, then copy back the object decks to MTS and link.
If I recall correctly, MTS used the MVS standard for object deck format, except they had something special for "low core symbol tables". Perhaps this could be accommodated with a post-processor, in case the object module had to be modified to make it MTS compatible.
It seems like this ought to work...
quatras.design@yahoo.com [hercules-390]
2015-12-03 22:10:55 UTC
Permalink
I understand that Tachyon is very close to ASM H. That might work. You would still be running it as a cross-assembler, so you'd have to export source from MTS, assemble it with Tachyon, then import the object back into MTS. Assuming (hopefully) that MTS hasn't tampered with the object code format in some undocumented way, this could be a viable option.


As a cross assembly process, it is not the most convenient way to do things, but at least it has a chance of working.
Tony Harminc tharminc@gmail.com [hercules-390]
2015-12-03 22:12:37 UTC
Permalink
Post by Gregg Levine ***@gmail.com [hercules-390]
What about the Tachyon Assembler? Doesn't it work in much the same way
as the ASM H one? Or even be fooled into working as such?
Close, but not quite. The MTS ASMH has at least one, and perhaps more,
features that are not in either Tachyon or HLASM.

Tony H.
Laddie Hanus laddiehanus@yahoo.com [hercules-390]
2015-12-03 22:22:49 UTC
Permalink
How about the z390 assembler? Open source, hlasm compatable. I have used the object decks with the 3.8 linkage editor.

Laddie Hanus
Post by Gregg Levine ***@gmail.com [hercules-390]
What about the Tachyon Assembler? Doesn't it work in much the same way
as the ASM H one? Or even be fooled into working as such?
Close, but not quite. The MTS ASMH has at least one, and perhaps more, features that are not in either Tachyon or HLASM.
Tony H.
Maarten Hoes hoes.maarten@gmail.com [hercules-390]
2015-12-03 22:25:53 UTC
Permalink
Post by Laddie Hanus ***@yahoo.com [hercules-390]
How about the z390 assembler? Open source, hlasm compatable.
The MTS ASMH has at least one, and perhaps more, features that are not in
either Tachyon or HLASM.
'Dave Gibney' gibney@pullman.com [hercules-390]
2015-12-04 07:03:38 UTC
Permalink
I am not at all familiar with these specifics, but is should be possible to accommodate almost anything of this nature with the macro/open code conditional assembly.



From: hercules-***@yahoogroups.com [mailto:hercules-***@yahoogroups.com]
Sent: Thursday, December 03, 2015 2:26 PM
To: hercules-***@yahoogroups.com
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick - Poor Man's 3270 Support
Post by Laddie Hanus ***@yahoo.com [hercules-390]
How about the z390 assembler? Open source, hlasm compatable.
The MTS ASMH has at least one, and perhaps more, features that are not in either Tachyon or HLASM.
[Non-text portions of this message have been removed]
quatras.design@yahoo.com [hercules-390]
2015-12-03 23:29:19 UTC
Permalink
"Close, but not quite. The MTS ASMH has at least one, and perhaps more, features that are not in either Tachyon or HLASM."


Do you what specifically that MTS assembler had that was nonstandard?


The only thing I can recall is it supported "low core symbols". I believe these were like external symbols, but they resolved to entry points in MTS rather than to an external library. It's sort of like the MTS equivalent of an SVC call, without having to do one.


Was there anything else?
quatras.design@yahoo.com [hercules-390]
2015-12-03 23:41:50 UTC
Permalink
I found the MTS volume 14, 360/370 Assemblers in MTS, page 18-24, lists 27 extensions MTS made to ASM H.


The manual is on bitsavers or on
http://deepblue.lib.umich.edu/bitstream/handle/2027.42/79622/MTSVol14-360370AssemblersInMTS-Sep1986.pdf?sequence=1&isAllowed=y http://deepblue.lib.umich.edu/bitstream/handle/2027.42/79622/MTSVol14-360370AssemblersInMTS-Sep1986.pdf?sequence=1&isAllowed=y


It would seem a cross-assemble may not be very easy after all, if they exploited all these features in their own code.
Kevin Monceaux Kevin@RawFedDogs.net [hercules-390]
2015-12-03 23:42:18 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
Do you what specifically that MTS assembler had that was nonstandard?
I don't know the specifics, but from a post on the H390-MTS mailing list:

i) the ASMH Program Product from IBM provided the base;

ii) enhancements to ASMH from SLAC that were included in the MTS
version of *ASMH; and

iii) MTS specific enhancements done within the MTS community, mostly and
perhaps entirely by Mike.
--
Kevin
http://www.RawFedDogs.net
http://www.Lassie.xyz
http://www.WacoAgilityGroup.org
Bruceville, TX

What's the definition of a legacy system? One that works!
Errare humanum est, ignoscere caninum.
Tony Harminc tharminc@gmail.com [hercules-390]
2015-12-04 18:00:15 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
"Close, but not quite. The MTS ASMH has at least one, and perhaps more,
features that are not in either Tachyon or HLASM."
Do you what specifically that MTS assembler had that was nonstandard?
The only thing I can recall is it supported "low core symbols". I believe
these were like external symbols, but they resolved to entry points in MTS
rather than to an external library. It's sort of like the MTS equivalent
of an SVC call, without having to do one.
Let me re-post something I posted in June 2015:
============================
Post by ***@yahoo.com [hercules-390]
The problem is that the ASMH used in MTS has some significant language
extensions that make it incompatible with ASMH running anywhere else.
You can't even assemble the MTS version of ASMH in any other version of
ASMH. It might be possible to write versions of the various macro
libraries for another assembler, but I'm not about to start that
effort. I've got enough things on my plate as it is. And even then
there would be significant source file changes required for some of the
changes described below even if no macros are used.
The MTS extensions to ASMH are described starting on page 18 of Volume
(4) Assembler expressions in macro values.
(19) ORG to a not-yet-defined symbol
(25) and (26) Labeled USING and qualified symbols.
(25) USING with a relocatable expression as base
I have no idea if any other assembler implements any of these. The
last three in particular are widely used, and not just in macros.
Most of these are in HLASM, but number (19) in particular is a very
strange one that I've never seen in any assembler. It is certainly not
implemented in current HLASM (I experimented), nor in the two
commercial assemblers I know of (Tachyon and Systems/Asm). To what
extent (4) is implemented is not clear. HLASM actually withdrew some
support a couple of releases ago for what might be part of (4).
============================
Tony H.
Ivan Warren ivan@vmfacility.fr [hercules-390]
2015-12-04 18:39:59 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
The MTS extensions to ASMH are described starting on page 18 of Volume
(4) Assembler expressions in macro values.
(19) ORG to a not-yet-defined symbol
(25) and (26) Labeled USING and qualified symbols.
(25) USING with a relocatable expression as base
I have no idea if any other assembler implements any of these. The
last three in particular are widely used, and not just in macros.
Wouldn't it be easier to adapt the source code and implement some macros
so that the whole can be assembled using say.. IFOX ?

Just an hypothesis since I haven't looked at the code itself.

--Ivan


[Non-text portions of this message have been removed]
Gerhard Postpischil gerhardp@charter.net [hercules-390]
2015-12-05 01:14:56 UTC
Permalink
Post by Tony Harminc ***@gmail.com [hercules-390]
Post by ***@yahoo.com [hercules-390]
(19) ORG to a not-yet-defined symbol
Most of these are in HLASM, but number (19) in particular is a very
strange one that I've never seen in any assembler. It is certainly not
implemented in current HLASM (I experimented), nor in the two
commercial assemblers I know of (Tachyon and Systems/Asm).
Depending on the way it's used, couldn't LOCTR serve for the forward ORG?

Gerhard Postpischil
Bradford, VT
quatras.design@yahoo.com [hercules-390]
2015-12-05 02:01:22 UTC
Permalink
As I understand LOCTR, it probably would not work to implement an ORG to an undefined address. LOCTR maintains a set of location counters. In old assemblers, if we think about the START or CSECT, that is one location counter. Then a DSECT is another location counter. In HLASM, LOCTR just generalizes this capability.


For an ORG to an undefined address to work, ORG would basically say "ORG x", where "x" is undefined. Then, the location counter from that point on would be 0+x, 1+x, 2+x, etc. Any labels defined under the control of that location counter would have "x" basically as a relocation factor that was not yet defined. Assuming it finally DID get defined, the assembler would have to go back and "fix up" any labels defined under the control of that "ORG x CSECT" if you will. For instance, if a label HERE was at relative X'10' from the start of ORG x, and eventually "x" got defined as a relocatable X'200', then HERE would have to be fixed up to be X'210'.


Clearly, it's possible to do this, but simply changing the location counter with LOCTR is not enough.


In any case, I contend this constructions like this in an assembler program are utterly unnecessary, and are just being clever without good reason. It's stuff that geeks do, but that doesn't make it a good idea.
Tony Harminc tharminc@gmail.com [hercules-390]
2015-12-05 04:40:45 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
For an ORG to an undefined address to work, ORG would basically say "ORG
x", where "x" is undefined. Then, the location counter from that point on
would be 0+x, 1+x, 2+x, etc. Any labels defined under the control of that
location counter would have "x" basically as a relocation factor that was
not yet defined. Assuming it finally DID get defined, the assembler would
have to go back and "fix up" any labels defined under the control of that
"ORG x CSECT" if you will. For instance, if a label HERE was at relative
X'10' from the start of ORG x, and eventually "x" got defined as a
relocatable X'200', then HERE would have to be fixed up to be X'210'.
Clearly, it's possible to do this, but simply changing the location
counter with LOCTR is not enough.
My guess is that they exploited the existing "lookahead" mode in ASMH (and
HLASM). Certain forward references already trigger this mode, though I
think only at conditional assembly time. Fromt eh HLASM book:

*Lookahead* *mode* is entered:

- When the assembler processes a conditional assembly instruction and
encounters an attribute reference (other than D' and O') to an ordinary
symbol that is not yet defined.
- When the assembler encounters a forward AGO or AIF branch in open code
to a sequence symbol that is not yet defined.

There are obviously programs that can be written that generate unresolvable
situations. (One might think of an analogue of the various "go back in time
and kill your grandparent" problems.) HLASM does a fair job of resolving
many of these, but there are others that are not truly unresolvable but
which it does not handle.

All this reminds me to ask if the MTS updates to ASMH are themselves
available. Clearly it's not feasible to base a whole new assembler on them,
but when combined with the original SLAC updates (which are available),
there may be useful clues.

Tony H.
'Dave Wade' dave.g4ugm@gmail.com [hercules-390]
2015-12-04 09:58:48 UTC
Permalink
For general use it is not an issue. The system has Assembler G loaded and I am pretty sure XF could be ported if needed, indeed it may already be there. I would really like to see a system than worked with TTY and 2741 terminals which I think could be done via the 2780 (I think, dumb comms controller anyway) support in Hercules, then APL could be used by a line mode terminal. There really is a lot of interesting software included with MTS some of which is not available elsewhere.

Dave



From: hercules-***@yahoogroups.com [mailto:hercules-***@yahoogroups.com]
Sent: 03 December 2015 21:31
To: hercules-***@yahoogroups.com
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick - Poor Man's 3270 Support





I have a lot of (mostly) fond memories of using MTS at Wayne State University. I was working for another company under contract, and they rented time on Wayne's Amdahl mainframe and on MTS.

Reviewing the discussion above, I am wondering if something like a "cross assemble" couldn't be done.

That is, export the desired source, maybe assemble it as needed on MVS 3.8, then copy back the object decks to MTS and link.

If I recall correctly, MTS used the MVS standard for object deck format, except they had something special for "low core symbol tables". Perhaps this could be accommodated with a post-processor, in case the object module had to be modified to make it MTS compatible.

It seems like this ought to work...
lists@openmailbox.org [hercules-390]
2015-12-04 07:24:46 UTC
Permalink
On Thu, 3 Dec 2015 20:11:54 -0000
Post by 'Dave Wade' ***@gmail.com [hercules-390]
Post by 'Dave Wade' ***@gmail.com [hercules-390]
Post by 'Dave Wade' ***@gmail.com [hercules-390]
MTS used a modified version of the IBM Assembler H to assemble some
core components. The base assembler is licenced code and so can't
legally be distributed with MTS and has been removed from the
distributions.
Thanks for your explanations. That's interesting to say the least. So the
MTS
Post by 'Dave Wade' ***@gmail.com [hercules-390]
distribution people now have access to is essentially useless.
Can't anybody get whoever is in charge of that to at least release an
executable of the assembler?
That would still be in breach of the IBM licences.
Post by 'Dave Wade' ***@gmail.com [hercules-390]
Do they not understand without the ability to
develop code releasing the rest of MTS thing ceases to have any meaning
except maybe as a demo?
I think you exaggerate slightly. Its really only the terminal config
that's an issue.
Without the assembler how is anybody supposed to be able to assemble new
code? Why does that only apply to "terminal config" rather than all new
code?
'Thomas Valerio' tjv@westwood-tech.com [hercules-390]
2015-12-04 16:41:21 UTC
Permalink
Post by ***@openmailbox.org [hercules-390]
Without the assembler how is anybody supposed to be able to assemble new
code? Why does that only apply to "terminal config" rather than all new
code?
Apparently I wasn't quite clear enough. What ever future there is for
MTS, the future is Plus, not assembly, not C, not any other language,
Plus, period. It is a complete systems programming language, literally
*huge* amounts of MTS are already in Plus, and any new systems
development, or any serious MTS code replacement project should be done in
Plus, not assembly, not C, not GOM, not any other language, Plus, period.
The assembler issue is only of concern for bug fixes of existing assembly
code, and that issue can be addressed with Plus as well. To say that the
MTS code that is publicly available is useless or is only a demo without
*asmh is wrong, naive and extraordinarily ignorant of the development of
MTS which started to turn towards Plus as early as the early 1980's. As I
said before, because of the amount of remaining assembly code in MTS a
*asmh compatible assembler is still a very valuable commodity, however,
it's absence or unavailability is *absolutely* *not* and *never will be*
an impediment to any future MTS development or code replacement projects.
Furthermore I would like to emphasize that Plus is a *far*, *far*, *far*
superior alternative to assembly code as well. While many of the features
and additions to *asmh, as well as the structured programming macros made
*asmh vastly superior to straight assembly language, it is still a
challenging and difficult programming environment when compared to a
higher level language.

If you don't know Plus or or not willing to learn Plus, more than half of
MTS and virtually every part of the system developed after the mid 80's
will be almost incomprehensible if you endeavor to explore the system
internals.

Thomas Valerio
Post by ***@openmailbox.org [hercules-390]
On Thu, 3 Dec 2015 20:11:54 -0000
Post by 'Dave Wade' ***@gmail.com [hercules-390]
Post by 'Dave Wade' ***@gmail.com [hercules-390]
Post by 'Dave Wade' ***@gmail.com [hercules-390]
MTS used a modified version of the IBM Assembler H to assemble some
core components. The base assembler is licenced code and so can't
legally be distributed with MTS and has been removed from the
distributions.
Thanks for your explanations. That's interesting to say the least. So the
MTS
Post by 'Dave Wade' ***@gmail.com [hercules-390]
distribution people now have access to is essentially useless.
Can't anybody get whoever is in charge of that to at least release an
executable of the assembler?
That would still be in breach of the IBM licences.
Post by 'Dave Wade' ***@gmail.com [hercules-390]
Do they not understand without the ability to
develop code releasing the rest of MTS thing ceases to have any
meaning
Post by 'Dave Wade' ***@gmail.com [hercules-390]
except maybe as a demo?
I think you exaggerate slightly. Its really only the terminal config
that's an issue.
Without the assembler how is anybody supposed to be able to assemble new
code? Why does that only apply to "terminal config" rather than all new
code?
Gavin Eadie gavin@umich.edu [hercules-390]
2015-12-04 18:14:27 UTC
Permalink
Post by 'Thomas Valerio' ***@westwood-tech.com [hercules-390]
Apparently I wasn't quite clear enough. What ever future there is for
MTS, the future is Plus, not assembly, not C, not any other language,
Plus, period.
.. I agree. My transition to Plus was easy and hugely increased my productivity.

It’s not a particularly meaningful comparison (Plus has no object oriented capabilities) but I liken Plus in the 80’s to Swift this year .. a language which is expressive, protects the programmer from many common mistakes, and doesn’t limit access to the computer hardware.
Post by 'Thomas Valerio' ***@westwood-tech.com [hercules-390]
If you don't know Plus or or not willing to learn Plus, more than half of
MTS and virtually every part of the system developed after the mid 80's
will be almost incomprehensible if you endeavor to explore the system
internals.
.. Tom’s earlier posting relating to rewriting TABLES in Plus caused me to take a closer look at that possibility.

(1) the “standalone” D6.0 version of TABLES is fairly short (~60 non blank, non-comment lines).

(2) there is other code, written in Plus, that builds object decks from descriptive files.

RMGR:SYMBUILD

| |
| I N I T I A L S Y M B O L T A B L E B U I L D E R |
| |
| This program builds an object module which is used as the initial |
| symbol table for the "STM" routines. It uses the PLUS object module |
| production routines, the "UBC command parser" and the symbol table |
| management routines. |
| |
| The input to this program consists of a series of lines, each of |
| which is empty, a comment, or describes a symbol and its properties |
| which are to be added to the symbol table. |
| |
| For details of the input specification, see the grammar. |
| |


(3) as noted in the above comments, the Plus compiler (since it, obviously, generates object code) includes a library of routines to do that so getting the object format correct is catered for.

.. All the above is said within the range of my knowledge; what I do not know is what the content and structure of the resulting object deck needs to be.
quatras.design@yahoo.com [hercules-390]
2015-12-04 19:29:35 UTC
Permalink
I just did a review of the Plus manual on the MTS archives. I would have to say that while using any HL language is better than assembler (for code of any substantial size), using Plus for this purpose seems odd. There does not appear to be anything in Plus that is in any significant way better than Pascal other than support for inline assembler. Any decent compliant C compiler would run circles around Plus.


In the same vein, the alterations made to ASMH for MTS are interesting and clever, but much larger systems (like MVS) seem to get along just fine without those changes. All it succeeds in doing is eliminating any other site running MVS from doing cross-assembles of MTS source code.


I see the efforts both in creating Plus and extending ASMH with proprietary extensions as misguided and ill-conceived. But, since these things exist and they made the decision to use them, current and potential MTS users will regrettably have to deal with them.


I had a thought about this. Surely there must exist some licensed MTS systems in operation today, at U-M if not elsewhere. It seems like it ought to be possible that external users could log onto such systems and perform ASMH executions. If these sites don't currently have real MTS logins enabled, perhaps external users could FTP the source code they needed assembled and email a request to have them assembled. People needing this capability would likely have to pay some fee to whoever has the MTS license, but surely some arrangements could be made.


Comments on this suggestion are invited.
'Thomas Valerio' tjv@westwood-tech.com [hercules-390]
2015-12-04 20:24:58 UTC
Permalink
I have been trying, I think somewhat valiantly, to educate and inform
people on some of the history of MTS development, so they might have a
little bit of a clue where their efforts might be better spent rather than
being so focused on *asmh or some kind of *asmh work around. Even if
*asmh were available I would *highly* discourage anyone doing any new work
in it because Plus is the proper tool for any future system work.

All of that being said, the entirety of the message below just makes my
brain hurt. This appears to basically be an executive summary of the
situation, rolled up in some 20/20 hindsight, except for the fact that the
gaps make the Grand Canyon look like a ditch, and I don't have the time or
the patience to fill them in. My DeLorean time machine is also out of
commission at that the moment, so that remedy for the current state of
affairs won't work either. In any case I feel like any future
contributions to to the discussion of this issue would be in vain.

Thomas Valerio
Post by ***@yahoo.com [hercules-390]
I just did a review of the Plus manual on the MTS archives. I would have
to say that while using any HL language is better than assembler (for code
of any substantial size), using Plus for this purpose seems odd. There
does not appear to be anything in Plus that is in any significant way
better than Pascal other than support for inline assembler. Any decent
compliant C compiler would run circles around Plus.
In the same vein, the alterations made to ASMH for MTS are interesting
and clever, but much larger systems (like MVS) seem to get along just
fine without those changes. All it succeeds in doing is eliminating any
other site running MVS from doing cross-assembles of MTS source code.
I see the efforts both in creating Plus and extending ASMH with
proprietary extensions as misguided and ill-conceived. But, since these
things exist and they made the decision to use them, current and
potential MTS users will regrettably have to deal with them.
I had a thought about this. Surely there must exist some licensed MTS
systems in operation today, at U-M if not elsewhere. It seems like it
ought to be possible that external users could log onto such systems and
perform ASMH executions. If these sites don't currently have real MTS
logins enabled, perhaps external users could FTP the source code they
needed assembled and email a request to have them assembled. People
needing this capability would likely have to pay some fee to whoever has
the MTS license, but surely some arrangements could be made.
Comments on this suggestion are invited.
Mike Stramba mikestramba@gmail.com [hercules-390]
2015-12-04 20:55:59 UTC
Permalink
Hi Thomas,

Before reading this read I had never heard of the Plus programming
language or even MTS ;)

I have the d60a distrib running now, and am exploring and learning,
and have started to read and run some of the examples in the
Plus-Oct1987.pdf
http://bitsavers.trailing-edge.com/pdf/univOfBritishColumbia/Plus-Oct1987.pdf

I ASSume Plus was created to do things that C or other HL languages of
the time couldn't do or not very well.

The Plus-Oct1987 vaguely / generally states the same, but I would
really like to hear from you the details of "Why / What is Plus".

Mike
Post by 'Thomas Valerio' ***@westwood-tech.com [hercules-390]
I have been trying, I think somewhat valiantly, to educate and inform
people on some of the history of MTS development, so they might have a
little bit of a clue where their efforts might be better spent rather than
being so focused on *asmh or some kind of *asmh work around. Even if
*asmh were available I would *highly* discourage anyone doing any new work
in it because Plus is the proper tool for any future system work.
All of that being said, the entirety of the message below just makes my
brain hurt. This appears to basically be an executive summary of the
situation, rolled up in some 20/20 hindsight, except for the fact that the
gaps make the Grand Canyon look like a ditch, and I don't have the time or
the patience to fill them in. My DeLorean time machine is also out of
commission at that the moment, so that remedy for the current state of
affairs won't work either. In any case I feel like any future
contributions to to the discussion of this issue would be in vain.
Thomas Valerio
Post by ***@yahoo.com [hercules-390]
I just did a review of the Plus manual on the MTS archives. I would have
to say that while using any HL language is better than assembler (for code
of any substantial size), using Plus for this purpose seems odd. There
does not appear to be anything in Plus that is in any significant way
better than Pascal other than support for inline assembler. Any decent
compliant C compiler would run circles around Plus.
In the same vein, the alterations made to ASMH for MTS are interesting
and clever, but much larger systems (like MVS) seem to get along just
fine without those changes. All it succeeds in doing is eliminating any
other site running MVS from doing cross-assembles of MTS source code.
quatras.design@yahoo.com [hercules-390]
2015-12-04 22:45:33 UTC
Permalink
Thomas, I understand you're a true believer in Plus. Hey, there was a time when I could do anything in COBOL, given enough effort. That included doing dynamic memory allocation and pointer arithmetic before the compiler supported it. I also speak from experience in using Pascal on MTS as part of my undergraduate computer science program.


I want you to understand that I don't say these things simply to annoy you. I am just trying to be honest. I have worked with many languages, and with compiler technology, so I understand languages both from an end user standpoint and from how compilers deal with them.


We must be honest; Plus is just a warmed-over Pascal, and not all that good of one. You are unhappy that people would want or need ASMH workarounds, but to me, I'd feel the same way around Plus workarounds. The only saving grace about Plus is that an MTS compiler for it still exists. Other than that, Plus is ugly, clumsy and awkward. It is hard to type, needlessly wordy with no compensating advantages. They can't make up their mind whether they want to require semicolons or not, so there's two pages of explanation on how to decide this, or if that doesn't help, you can flip a coin.


It makes a lot of assumptions I would call "paternalistic" in the IBM fashion - you know, where it makes arbitrary language decisions because the designers think they know better, whether that is true or not. One aspect of that is that source listings automatically reformat the source according to some algorithm, and this cannot be disabled. I am sorry, but if I choose to generate a source listing, I want my code to look identical to the files it came from, and even if reformatting is possible, it should be my choice, and not mandated by force.


Plus starts out by making the claim that it is platform independent, but then when you get to how a real implementation works, it is very dependent on platform specifics, word sizes, etc. They provide a platform independent means of describing the precision of an integer, and then lock their implementation into the limits of their platform. For instance, the language could describe a 64-bit integer, but the compiler doesn't support it because their platform doesn't. Platform independence is nice in theory, but it's meaningless if you don't follow through on it.


The claim about independence is all but meaningless. Further, since it is a proprietary language that was never widely used or standardized (unlike something like C) the task of porting it elsewhere is far more difficult than should be necessary.


I observed a number of aspects of Plus that seem archaic, inflexible or just strange.


It is derived from Pascal, yet uses /* */ as comments. Part of the appeal of deriving one language from another is to build on familiarity, yet this is a change merely for the sake of change. So, let's use C style /* */ comments. Well, if you're going to do that, why not support // comments like C++, which are more reliable, less likely to be used incorrectly, and are easier to type? No, Plus doesn't go there.


Then it decides to hold on to := as assignment, even though a simple = is much easier to type. But, not satisfied with that, it bolts on a C-style assignment operator syntax, but rather than using += for an increment assignment, it stubbornly hangs on to the colon, giving us the much more clumsy +:= instead. Why?


Plus claims to downplay punctuation in favor of keywords, and defines many of them. Yet, it uses punctuation for comparisons like <= when they could have used LE, etc. Not content with this, they defined the language to use the proprietary IBM not symbol ¬ instead of a more portable ~ or ^ but then they ALSO define a "not" keyword as an alternative, again because they cannot make up their minds.


Then, this language you love so much is a dead language; there's no more development being done on it, is there? Correct me, if I'm wrong. So you are stuck with all these dumb language design decisions that will never be corrected, because Plus is cast in stone.


Then there are all the good-intentions parts of the design that never got implemented, and never will, evidently. Apparently most or all of floating point math never got implemented. If we had something better than a half-finished compiler, there would more on which to judge its merits.


I know how difficult it is to write a compiler and get it working. I have nothing but respect for anyone that can accomplish such a task. And, clearly, Plus works because pieces of MTS are written in it. However, having said that, simply because a compiler works it doesn't mean that it's good or that it should be used. I could write code in binary that worked, but that wouldn't be good either.


It is a shame that the designers of Plus didn't try harder to consider contemporary language design paradigms. With a better insight into what makes one language good and another not, a much better Plus could have been designed.


I once had heard about an IBM/370 system that an auto company was running, at a time when the 370's were first coming out. They had a vast supply of "Autocoder" programs, which I understand was the assembler for the 1401 machines. The long-time programmers just loved their Autocoder, so they ran an IBM emulator to continue running Autocoder on this 370 machine that was initially IPL'd as DOS/VS, but once that was done, they ran the Autocoder emulator 24/7.


To me, running Plus on MTS is like writing in Autocoder. The only reason to do it is because you have a pile of legacy code, and you are infatuated with a dinosaur language of the past. Hey, we are all infatuated with dinosaur systems around here, and some of us are nearly as OLD as dinosaurs; or at least we feel that way on bad days. That doesn't mean it's a good thing. It's just a habit, a convention, it's what you are comfortable with. You are more than welcome to be fond of anything you like, but please don't act like Plus or MTS or any old system is the only way to do things. It's not.
Mike Stramba mikestramba@gmail.com [hercules-390]
2015-12-04 23:29:18 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
You are more than welcome to be fond of anything you like, but please don't
act like Plus or MTS or any old system is the only way to do things. It's
not.
Well the "things" in this case are developing MTS.

Thomas has already explained why Plus is the only realistic option.

Otherwise, when do *you* plan on porting / converting the whole system
to <your-language-of-choice> ;)

Mike
'Dave Wade' dave.g4ugm@gmail.com [hercules-390]
2015-12-05 00:05:59 UTC
Permalink
-----Original Message-----
Sent: 04 December 2015 23:29
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick -
Poor Man's 3270 Support
Post by ***@yahoo.com [hercules-390]
You are more than welcome to be fond of anything you like, but please
don't act like Plus or MTS or any old system is the only way to do
things. It's not.
Well the "things" in this case are developing MTS.
Thomas has already explained why Plus is the only realistic option.
Thomas has explained why he feels "Plus" is the only realistic option.
I am not so sure, in my youth I enjoyed doing things that others said were impossible.
And I never cease to be amazed at what someone can produce if the need is pressing enough.
Look at Hercules itself, the Z390 Java System Z emulator, and the recent mods to VM/370 to allow full screen i/o and TCP/IP via IUCV.

In this case What we need to produce is basically a "Configuration Table" , i.e. a bit pattern.
Someone has already managed to patch the table so in some ways we are half way there,
in that they understand enough of the binary format to patch it.
I am pretty sure if there was a pressing need to change this someone would figure out a way...
.. for example it might be simpler to directly parse the statements. This would require writing a new compiler ..
.. but with tools like LEXX and YACC this isn't as impossible as it once was.
Otherwise, when do *you* plan on porting / converting the whole system to
<your-language-of-choice> ;)
The whole system is not what needs changes. It is a small number of tables.
However the current system works fine for most people so I don't see this as pressing.
Mike
Dave
G4UGM
------------------------------------
------------------------------------
http://groups.yahoo.com/group/hercules-390
http://www.hercules-390.org
Could someone why manages this group change the above as the "latest" version of Hercules may be at "www.hercules-390.eu" or in GitHub.
Gavin Eadie gavin@umich.edu [hercules-390]
2015-12-05 00:28:53 UTC
Permalink
Post by 'Dave Wade' ***@gmail.com [hercules-390]
I am pretty sure if there was a pressing need to change this someone would figure out a way...
.. for example it might be simpler to directly parse the statements. This would require writing a new compiler ..
.. but with tools like LEXX and YACC this isn't as impossible as it once was.
.. here’s the (close enough) source of TABLES:

TPTABLES ID MSG1='Test pack configuration for D6.0 MTS'
PRINT NOGEN
CHPID PATH=((00,0),(01,1),(02,2),(0F,F)),TYPE=BL
*
* Channel 0: 9370 display devices, VM default console and
* unit record equipment.
*
CNTLUNIT CUNUMBR=000,PATH=(00),PROTOCL=D,SHARED=N,UNIT=3274, @
UNITADD=((00,8))
PTR1 IODEVICE ADDRESS=(0000),CUNUMBR=(000),UNIT=3287
DS01 IODEVICE ADDRESS=(0001,7),CUNUMBR=(000),UNIT=3270
*
CON1 IODEVICE ADDRESS=(0009),CUNUMBR=(***),UNIT=3270
RDR1 IODEVICE ADDRESS=(000C),CUNUMBR=(***),UNIT=RDR
PCH1 IODEVICE ADDRESS=(000D),CUNUMBR=(***),UNIT=PCH
PTR2 IODEVICE ADDRESS=(000E),CUNUMBR=(***),UNIT=PTR
CON2 IODEVICE ADDRESS=(001F),CUNUMBR=(***),UNIT=3270
*
* Channel 1: 9370 display devices, VM default tape drives
*
CNTLUNIT CUNUMBR=001,PATH=(01),PROTOCL=D,SHARED=N,UNIT=3274, @
UNITADD=((00,32))
PTR3 IODEVICE ADDRESS=(0100),CUNUMBR=(001),UNIT=3287
DS21 IODEVICE ADDRESS=(0101,31),CUNUMBR=(001),UNIT=3270
*
CNTLUNIT CUNUMBR=002,PATH=(01),PROTOCL=S,SHARED=N,UNIT=3803, @
UNITADD=((80,16))
T900 IODEVICE ADDRESS=(0180,16),CUNUMBR=(002),UNIT=9TP
*
* Channel 2: 3330, 3350, 3370, and 3380 disk drives
*
CNTLUNIT CUNUMBR=003,PATH=(03),PROTOCL=S,SHARED=N,UNIT=3830, @
UNITADD=((00,16))
D100 IODEVICE ADDRESS=(0200,16),CUNUMBR=(003),UNIT=3330
*
CNTLUNIT CUNUMBR=004,PATH=(03),PROTOCL=S,SHARED=N,UNIT=3830, @
UNITADD=((20,16))
D200 IODEVICE ADDRESS=(0220,16),CUNUMBR=(004),UNIT=3350
*
CNTLUNIT CUNUMBR=005,PATH=(03),PROTOCL=S,SHARED=N,UNIT=3370, @
UNITADD=((40,16))
D300 IODEVICE ADDRESS=(0240,16),CUNUMBR=(005),UNIT=3370
*
CNTLUNIT CUNUMBR=006,PATH=(03),PROTOCL=S,SHARED=N,UNIT=3880, @
UNITADD=((60,16))
D400 IODEVICE ADDRESS=(0260,16),CUNUMBR=(006),UNIT=3380
*
* Channel C: 9370 tape drives
*
T920 IODEVICE ADDRESS=(0C70),CUNUMBR=(***),UNIT=9TP
*
* Channel D: 9370 disk drives
*
D500 IODEVICE ADDRESS=(0D00,4),CUNUMBR=(***),UNIT=9335
*
* Channel E: 9370 disk drives
*
D600 IODEVICE ADDRESS=(0E00,4),CUNUMBR=(***),UNIT=9335
*
* Channel F: AA PCP (for use in testing at UM).
*
CNTLUNIT CUNUMBR=007,PATH=(0F),PROTOCL=D,SHARED=N,UNIT=MNET, @
UNITADD=((80,128))
AA00 IODEVICE ADDRESS=(0F80,127),CUNUMBR=(007),UNIT=MNET,TIMEOUT=N
AAOP IODEVICE ADDRESS=(0FFF),CUNUMBR=(007),UNIT=MNET,TIMEOUT=N

*
* Public volume definitions
*
MTS600 VOLUME PVN=1
*
SET SPAREVOLS=5
EJECT
SET INSTALLATION=MTS
SET HOSTNAME=MT
SET JOBTABLES=250
SET YEAR=88,TIMEZONE=EDT
SET OPERDEVS=(CON1,CON2,DS01,DS21)
SET CONSDEVS=(CON1,CON2,DS01,DS21)
SET BACKUPCONS=(CON1,CON2,DS01,DS21,DS02,DS22)
SET MOUNT_MNET=((AA00,AA0B))
SET S8BASE=600000
SET DROP_AREAS=(50,5)
SET SEGTBL_BUFFS=120
SET TRACE_PAGES=16
SET SPOOL_EXTENTS=((1,*SPOOL1))
SET PAGING_EXTENTS=((1,*PAG001))
SET SPAREDEVS=10
SET DISK_CACHE_TYPE=REAL
SET DISK_CACHE_SIZE=(1*256,1*256,8*256)
SET MM_DEVS=10

GENERATE
Mike Stramba mikestramba@gmail.com [hercules-390]
2015-12-05 02:07:40 UTC
Permalink
Gavin,
Is this specifically for the d6.0a release ?
Post by Gavin Eadie ***@umich.edu [hercules-390]
* Public volume definitions
*
MTS600 VOLUME PVN=1
*
It appears ??? that there is only one "public volume" ?

If so, are my efforts to add new dasd / volumes to the system futile ?

(See my thread "How to add new dasd to system (using Hercules) ?" in H390-MTS

Mike
Post by Gavin Eadie ***@umich.edu [hercules-390]
TPTABLES ID MSG1='Test pack configuration for D6.0 MTS'
PRINT NOGEN
CHPID PATH=((00,0),(01,1),(02,2),(0F,F)),TYPE=BL
*
* Channel 0: 9370 display devices, VM default console and
* unit record equipment.
*
UNITADD=((00,8))
PTR1 IODEVICE ADDRESS=(0000),CUNUMBR=(000),UNIT=3287
DS01 IODEVICE ADDRESS=(0001,7),CUNUMBR=(000),UNIT=3270
*
CON1 IODEVICE ADDRESS=(0009),CUNUMBR=(***),UNIT=3270
RDR1 IODEVICE ADDRESS=(000C),CUNUMBR=(***),UNIT=RDR
PCH1 IODEVICE ADDRESS=(000D),CUNUMBR=(***),UNIT=PCH
PTR2 IODEVICE ADDRESS=(000E),CUNUMBR=(***),UNIT=PTR
CON2 IODEVICE ADDRESS=(001F),CUNUMBR=(***),UNIT=3270
*
* Channel 1: 9370 display devices, VM default tape drives
*
UNITADD=((00,32))
PTR3 IODEVICE ADDRESS=(0100),CUNUMBR=(001),UNIT=3287
DS21 IODEVICE ADDRESS=(0101,31),CUNUMBR=(001),UNIT=3270
*
UNITADD=((80,16))
T900 IODEVICE ADDRESS=(0180,16),CUNUMBR=(002),UNIT=9TP
*
* Channel 2: 3330, 3350, 3370, and 3380 disk drives
*
UNITADD=((00,16))
D100 IODEVICE ADDRESS=(0200,16),CUNUMBR=(003),UNIT=3330
*
UNITADD=((20,16))
D200 IODEVICE ADDRESS=(0220,16),CUNUMBR=(004),UNIT=3350
*
UNITADD=((40,16))
D300 IODEVICE ADDRESS=(0240,16),CUNUMBR=(005),UNIT=3370
*
UNITADD=((60,16))
D400 IODEVICE ADDRESS=(0260,16),CUNUMBR=(006),UNIT=3380
*
* Channel C: 9370 tape drives
*
T920 IODEVICE ADDRESS=(0C70),CUNUMBR=(***),UNIT=9TP
*
* Channel D: 9370 disk drives
*
D500 IODEVICE ADDRESS=(0D00,4),CUNUMBR=(***),UNIT=9335
*
* Channel E: 9370 disk drives
*
D600 IODEVICE ADDRESS=(0E00,4),CUNUMBR=(***),UNIT=9335
*
* Channel F: AA PCP (for use in testing at UM).
*
UNITADD=((80,128))
AA00 IODEVICE ADDRESS=(0F80,127),CUNUMBR=(007),UNIT=MNET,TIMEOUT=N
AAOP IODEVICE ADDRESS=(0FFF),CUNUMBR=(007),UNIT=MNET,TIMEOUT=N
*
* Public volume definitions
*
MTS600 VOLUME PVN=1
*
SET SPAREVOLS=5
EJECT
SET INSTALLATION=MTS
SET HOSTNAME=MT
SET JOBTABLES=250
SET YEAR=88,TIMEZONE=EDT
SET OPERDEVS=(CON1,CON2,DS01,DS21)
SET CONSDEVS=(CON1,CON2,DS01,DS21)
SET BACKUPCONS=(CON1,CON2,DS01,DS21,DS02,DS22)
SET MOUNT_MNET=((AA00,AA0B))
SET S8BASE=600000
SET DROP_AREAS=(50,5)
SET SEGTBL_BUFFS=120
SET TRACE_PAGES=16
SET SPOOL_EXTENTS=((1,*SPOOL1))
SET PAGING_EXTENTS=((1,*PAG001))
SET SPAREDEVS=10
SET DISK_CACHE_TYPE=REAL
SET DISK_CACHE_SIZE=(1*256,1*256,8*256)
SET MM_DEVS=10
GENERATE
Gavin Eadie gavin@umich.edu [hercules-390]
2015-12-05 04:40:55 UTC
Permalink
Post by Mike Stramba ***@gmail.com [hercules-390]
If so, are my efforts to add new dasd / volumes to the system futile ?
(See my thread "How to add new dasd to system (using Hercules) ?" in H390-MTS
.. I’ll try it on my system and reply to your question in H390-MTS.
Kevin Monceaux Kevin@RawFedDogs.net [hercules-390]
2015-12-05 02:31:39 UTC
Permalink
Post by Mike Stramba ***@gmail.com [hercules-390]
Well the "things" in this case are developing MTS.
Thomas has already explained why Plus is the only realistic option.
Even if Plus has its Minuses if it's the only realistic option I'd
personally be more than happy with it.

Actually, though I'd love to see an *asmh alternative be made available such
a thing should probably be a long term goal at best. For the short term,
I'd rather see the 1996 MTS system get released, even without an *asmh
alternative. On that note, does anyone know the status of the 1996 MTS
system release?
--
Kevin
http://www.RawFedDogs.net
http://www.Lassie.xyz
http://www.WacoAgilityGroup.org
Bruceville, TX

What's the definition of a legacy system? One that works!
Errare humanum est, ignoscere caninum.
Gavin Eadie gavin@umich.edu [hercules-390]
2015-12-04 23:59:12 UTC
Permalink
Thomas, I understand you're a true believer in Plus. [
] Plus is just a warmed-over Pascal, and not all that good of one.
I happen to agree with Tom’s point of view, but see no contradiction in Quatras’ remarks.
The two points of view aren’t opposed .. “Use Plus” and “Plus has problems” are both true.

Right or wrong, our choices were made decades ago.
Only Doctor Who can change them (and even he’s wary of doing such things).

Plus generated code for S/370, PDP-11 and Moto68000.
I wrote quite a lot of Macintosh code in Plus.
Gregg Levine gregg.drwho8@gmail.com [hercules-390]
2015-12-05 00:10:22 UTC
Permalink
Hello!
Did someone mention me? Yes your choices are indeed yours, and at the
moment I'm busy saving a planet from itself. (Again!)
-----
Gregg C Levine ***@gmail.com
"This signature fought the Time Wars, time and again."
Post by Gavin Eadie ***@umich.edu [hercules-390]
Thomas, I understand you're a true believer in Plus. [
] Plus is just a warmed-over Pascal, and not all that good of one.
I happen to agree with Tom’s point of view, but see no contradiction in Quatras’ remarks.
The two points of view aren’t opposed .. “Use Plus” and “Plus has problems” are both true.
Right or wrong, our choices were made decades ago.
Only Doctor Who can change them (and even he’s wary of doing such things).
Plus generated code for S/370, PDP-11 and Moto68000.
I wrote quite a lot of Macintosh code in Plus.
------------------------------------
------------------------------------
Gerhard Postpischil gerhardp@charter.net [hercules-390]
2015-12-05 01:07:36 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
Then it decides to hold on to := as assignment, even though a simple =
is much easier to type. But, not satisfied with that, it bolts on a
C-style assignment operator syntax, but rather than using += for an
increment assignment, it stubbornly hangs on to the colon, giving us the
much more clumsy +:= instead. Why?
Way back when I wrote a program to analyze character frequencies across
several volumes worth of source files. I then tried to convince the
manufacturer of an ASCII CRT to offer a keyboard where the most frequent
symbols were allocated to simplify typing (their extant key assignments
didn't exactly match anything else on the market). I had no luck, and
can only observe they're no longer in business.
Post by ***@yahoo.com [hercules-390]
Plus claims to downplay punctuation in favor of keywords, and defines
many of them. Yet, it uses punctuation for comparisons like <= when
they could have used LE, etc. Not content with this, they defined the
language to use the proprietary IBM not symbol ¬ instead of a more
portable ~ or ^ but then they ALSO define a "not" keyword as an
alternative, again because they cannot make up their minds.
"A foolish consistency is the hobgoblin of a small mind" R. W. Emerson

If Cowlishaw could design REXX without reserved words, why did nobody
else (considering only languages in frequent use - there may be some I'm
not aware of)?
Post by ***@yahoo.com [hercules-390]
I know how difficult it is to write a compiler and get it working. I
have nothing but respect for anyone that can accomplish such a task.
And, clearly, Plus works because pieces of MTS are written in it.
However, having said that, simply because a compiler works it doesn't
mean that it's good or that it should be used. I could write code in
binary that worked, but that wouldn't be good either.
I took a quick look at the UBC documentation; I found absolutely nothing
that I could see as justification for calling it a systems language. I
can see it for developing systems utilities and applications, but
nothing I would consider "systems" per se.
Post by ***@yahoo.com [hercules-390]
I once had heard about an IBM/370 system that an auto company was
running, at a time when the 370's were first coming out. They had a
vast supply of "Autocoder" programs, which I understand was the
assembler for the 1401 machines. The long-time programmers just loved
their Autocoder, so they ran an IBM emulator to continue running
Autocoder on this 370 machine that was initially IPL'd as DOS/VS, but
once that was done, they ran the Autocoder emulator 24/7.
I'm not sure we're talking about the same installation, but a colleague
told me about an installation heavily invested in Autocoder, that
decided to run on a 7094 using an Autocoder simulator. When the 360 line
came out, they ran the 7094 emulator running the 14xx simulator to run
Autocoder.

I guess we missed a chance - I worked at National Information Systems
for a while, and they had a program, offered with and without conversion
services, to produce 360 assembler code from 14xx decks.

Gerhard Postpischil
Bradford, VT
Vince Coen vbcoen@gmail.com [hercules-390]
2015-12-05 12:14:27 UTC
Permalink
Small points (excuse me jumping in) site using autocode (1401) long with
the 1401 emulator) was NOT because they liked to program in it but when
migrating from the 1401 system to 360 allowed them to run existing
programs on new kit without change and therefore extra costs and man
power regardless of programming language and that includes autocode,
Cobol, Fortran, RPG.

Later as time and resources allowed application code was fully migrated
over to the 360. In the case of Cobol it was fairly straight forwards
although took time. For the autocode applications, that was a differing
kettle of fish and many was replaced with a rewritten version using
Cobol, BAL depending on its application.

Where I worked the 1401 was then used solely as input to a 7094 as
against both in its own right and as a input stream to the 7094 and both
of these was used to migrate work off the unit record equipment - again
in turn to native working on the 360 usually as RPG code.

Over time these processes were converted / updated / rewritten and
expanding to native 360 in some cases still as RPG or its later brothers
e.g., RPG 2 or Cobol.


This was in the mid to late 60's and yes I started in 1963.

The other tools you are referring to go back a very long time and C was
not in any way a primary programming language let alone on a 360 or
later and still isn't. Many of the internal code base used for the O/S
and infrastructure is in PL/1 or its derivatives although clearly called
BAL code to support the lower level interfaces. .Some of the original
360 code used just about any thing from BAL to a range of language tools
as each shop / department in IBM did there own thing - Like many other
manufacturers it was not forced on a team what they must use and a good
example of that was with ICL -> ICL for their O/S VME which was mostly
written in ALGOL 68R - fast to do but a real dog to debug! So not
difference there than with BAL.

Should also point out that the choice of programming tool / languages is
even more flexible today although I would hope for everyone's sake that
they now restrict the list somewhat.

Having said that PL/1 and its mates can be compared easily to C and C++
which are a cleaner and more readable language than say BAL (+ macro
etc) or any other similar tool but in the case of C or original PL/1 not
a lot better in the one line of code to one (-ish) line of machine
code. Most programmers prefer to work in high level languages any day
of the week if only to get out of the way of micro thoughts in
programming - the days/times of the 50's and early 60's I am pleased to
say are long gone - thankfully !




Older guy - OK not that old (68).

Vince
Post by ***@yahoo.com [hercules-390]
Thomas, I understand you're a true believer in Plus. Hey, there was a
time when I could do anything in COBOL, given enough effort. That
included doing dynamic memory allocation and pointer arithmetic before
the compiler supported it. I also speak from experience in using
Pascal on MTS as part of my undergraduate computer science program.
I want you to understand that I don't say these things simply to annoy
you. I am just trying to be honest. I have worked with many
languages, and with compiler technology, so I understand languages
both from an end user standpoint and from how compilers deal with them.
We must be honest; Plus is just a warmed-over Pascal, and not all that
good of one. You are unhappy that people would want or need ASMH
workarounds, but to me, I'd feel the same way around Plus
workarounds. The only saving grace about Plus is that an MTS compiler
for it still exists. Other than that, Plus is ugly, clumsy and
awkward. It is hard to type, needlessly wordy with no compensating
advantages. They can't make up their mind whether they want to
require semicolons or not, so there's two pages of explanation on how
to decide this, or if that doesn't help, you can flip a coin.
It makes a lot of assumptions I would call "paternalistic" in the IBM
fashion - you know, where it makes arbitrary language decisions
because the designers think they know better, whether that is true or
not. One aspect of that is that source listings automatically
reformat the source according to some algorithm, and this cannot be
disabled. I am sorry, but if I choose to generate a source listing, I
want my code to look identical to the files it came from, and even if
reformatting is possible, it should be my choice, and not mandated by
force.
Plus starts out by making the claim that it is platform independent,
but then when you get to how a real implementation works, it is very
dependent on platform specifics, word sizes, etc. They provide a
platform independent means of describing the precision of an integer,
and then lock their implementation into the limits of their platform.
For instance, the language could describe a 64-bit integer, but the
compiler doesn't support it because their platform doesn't. Platform
independence is nice in theory, but it's meaningless if you don't
follow through on it.
The claim about independence is all but meaningless. Further, since
it is a proprietary language that was never widely used or
standardized (unlike something like C) the task of porting it
elsewhere is far more difficult than should be necessary.
I observed a number of aspects of Plus that seem archaic, inflexible or just strange.
It is derived from Pascal, yet uses /* */ as comments. Part of the
appeal of deriving one language from another is to build on
familiarity, yet this is a change merely for the sake of change. So,
let's use C style /* */ comments. Well, if you're going to do that,
why not support // comments like C++, which are more reliable, less
likely to be used incorrectly, and are easier to type? No, Plus
doesn't go there.
Then it decides to hold on to := as assignment, even though a simple =
is much easier to type. But, not satisfied with that, it bolts on a
C-style assignment operator syntax, but rather than using += for an
increment assignment, it stubbornly hangs on to the colon, giving us
the much more clumsy +:= instead. Why?
Plus claims to downplay punctuation in favor of keywords, and defines
many of them. Yet, it uses punctuation for comparisons like <= when
they could have used LE, etc. Not content with this, they defined the
language to use the proprietary IBM not symbol ¬ instead of a more
portable ~ or ^ but then they ALSO define a "not" keyword as an
alternative, again because they cannot make up their minds.
Then, this language you love so much is a dead language; there's no
more development being done on it, is there? Correct me, if I'm
wrong. So you are stuck with all these dumb language design decisions
that will never be corrected, because Plus is cast in stone.
Then there are all the good-intentions parts of the design that never
got implemented, and never will, evidently. Apparently most or all of
floating point math never got implemented. If we had something better
than a half-finished compiler, there would more on which to judge its
merits.
I know how difficult it is to write a compiler and get it working. I
have nothing but respect for anyone that can accomplish such a task.
And, clearly, Plus works because pieces of MTS are written in it.
However, having said that, simply because a compiler works it doesn't
mean that it's good or that it should be used. I could write code in
binary that worked, but that wouldn't be good either.
It is a shame that the designers of Plus didn't try harder to consider
contemporary language design paradigms. With a better insight into
what makes one language good and another not, a much better Plus could
have been designed.
I once had heard about an IBM/370 system that an auto company was
running, at a time when the 370's were first coming out. They had a
vast supply of "Autocoder" programs, which I understand was the
assembler for the 1401 machines. The long-time programmers just loved
their Autocoder, so they ran an IBM emulator to continue running
Autocoder on this 370 machine that was initially IPL'd as DOS/VS, but
once that was done, they ran the Autocoder emulator 24/7.
To me, running Plus on MTS is like writing in Autocoder. The only
reason to do it is because you have a pile of legacy code, and you are
infatuated with a dinosaur language of the past. Hey, we are all
infatuated with dinosaur systems around here, and some of us are
nearly as OLD as dinosaurs; or at least we feel that way on bad days.
That doesn't mean it's a good thing. It's just a habit, a convention,
it's what you are comfortable with. You are more than welcome to be
fond of anything you like, but please don't act like Plus or MTS or
any old system is the only way to do things. It's not.
quatras.design@yahoo.com [hercules-390]
2015-12-06 17:43:00 UTC
Permalink
Not to argue, but my story about Autocoder was based on a real example of what was happening at a General Motors plant in Livonia, Michigan. Believe it or not, the programmers there DID love Autocoder. Why would I say that? Because even though their mainframe was a 370 running DOS/VS, they embarked on writing NEW Autocoder applications, not just running the old ones. The programmers were in the UAW, and they were a bunch of dinosaurs who didn't want to learn anything new. So they didn't.
'John P. Hartmann' jphartmann@gmail.com [hercules-390]
2015-12-06 18:00:44 UTC
Permalink
It is interesting to compare what IBM did then with what the DEC Alpha
designers did for backwards compatibility.
Post by ***@yahoo.com [hercules-390]
Not to argue, but my story about Autocoder was based on a real example
of what was happening at a General Motors plant in Livonia, Michigan.
Believe it or not, the programmers there DID love Autocoder. Why would
I say that? Because even though their mainframe was a 370 running
DOS/VS, they embarked on writing NEW Autocoder applications, not just
running the old ones. The programmers were in the UAW, and they were a
bunch of dinosaurs who didn't want to learn anything new. So they didn't.
Vince Coen vbcoen@gmail.com [hercules-390]
2015-12-06 19:23:18 UTC
Permalink
I assume from your answer that "UAW" is some kind of a union.

Never worked in any IT company or department where such has been present
- not really a ready made prospective member arena as I have always
found that IT salary was somewhat higher than the factory floor !

However being a IT manager and director (read SEO or similar for the
USA) I would not dream of asking my staff if it was OK for them to use
old kit to develop on or to and any thing else. They were told how
what when and were etc - to my mind that is the job of management.

But hey - most of my working life has been in Europe apart for a small
project in Barbados (migrating undocumented 1401 machine code to ICL
Cobol as the kit was rapidly running out of life on site and they
decided to use the one and only other m/f on the Island that was owned
by the government where they could buy time on it.

Funny that, was taken on for three months but it took close to 15 to do
but I blame working with no docs and only machine code and no sources
from the autocode written programs so it was to them an own goal.

Things we did when we were young :)


Vince
.
Post by ***@yahoo.com [hercules-390]
Not to argue, but my story about Autocoder was based on a real example
of what was happening at a General Motors plant in Livonia, Michigan.
Believe it or not, the programmers there DID love Autocoder. Why
would I say that? Because even though their mainframe was a 370
running DOS/VS, they embarked on writing NEW Autocoder applications,
not just running the old ones. The programmers were in the UAW, and
they were a bunch of dinosaurs who didn't want to learn anything new.
So they didn't.
------------------------------------------------------------------------
'John P. Hartmann' jphartmann@gmail.com [hercules-390]
2015-12-06 19:52:04 UTC
Permalink
Union of auto workers. We know that even in Denmark.
Post by Vince Coen ***@gmail.com [hercules-390]
I assume from your answer that "UAW" is some kind of a union
'Thomas Valerio' tjv@westwood-tech.com [hercules-390]
2015-12-07 17:33:53 UTC
Permalink
I didn't have the time to respond to this message until now, pardon my
tardiness.

I really didn't want to respond to this thread but since this message
seemed aimed directly at me I felt like I had no choice. This is a public
list and the idea that someone could read this at a later date and infer
things from my failure to respond didn't sit well with me.

So very first off DO NOT, I repeat, *ABSOLUTELY* *DO* *NOT* *PUT* *WORDS*
*IN* *MY* *MOUTH*. You are certainly welcome to speak for yourself, *DO*
*NOT* *TRY* *TO* *SPEAK* *FOR* *ME*. I may absolutely *LOVE* Plus, I may
absolutely *DETEST* Plus, but your assertion of my opinion of Plus is
wholly and completely *BASELESS*, you do not have any evidence or
assertion by me what so ever, either here or any where else on the
internet about my opinion of Plus as a computer programming language,
good, bad or indifferent. On this point you are orders of magnitude
beyond clueless.

MTS is a dead system, there is only one system that I know of in the world
that is still up on a regular basis and doing anything of even minor
consequence. Plus is a dead language, although it could cross compile,
and may have been ported to another operating system/architecture or two,
it was never widely available and is virtually unknown outside of the MTS
community. So the fact is that the resources that are available to invest
in the future of MTS are *severely* limited. As far as any new system
code for MTS is concerned, the only *real* choices are Assembler H, using
*asmh, GOM, and Plus. Assembler H is a legacy, licensed, IBM program
product, which I am pretty certain we have a pretty firm if not final
answer from IBM that we will not be given permission to distribute, even
OCO, even on a dead operating system being distributed for
legacy/educational/hobby purposes only. I don't think anyone is really
interested in discussing GOM. So that leaves Plus, this is not a debate,
this is not a discussion, I didn't get to vote then, then I certainly
don't get to vote now and you absolutely don't get a vote. It just is,
MTS is a legacy system. What I did say and what I will continue to say is
that Plus is the only *reasonable* language for any future work in MTS,
whether I like it not, whether I think it is a good language or not or
whether you or anyone else thinks it's just a "warmed over Pascal".

The other reason that I felt it was important to respond is that I think
it is critical for anyone who reads this thread or seeks to look at/learn
about MTS, this person's opinion of Plus is completely immaterial, and
their criticism is a pointless straw man argument. For what purpose, some
casual, ancient MTS user that by his own admission hasn't even bothered to
install/run the currently available system, who appears to simply want to
hear himself talk, or trot old war stories about people that did something
that he disagreed with? Please, save your breath. You want to really be
honest?? Really, you trot out several paragraphs of criticism of a
computer language that was designed more than 4 decades ago and only came
in to modest usage 3 1/2 decades ago and argue about those design
decisions like there are decisions to me made today. Have you totally
lost it???? The fact is that these kinds of arguments/criticism/debate
only make sense in the context of resources to be allocated, there are
*NO* resources to be allocated, this is a *LEGACY* system, you want be
honest, then you need to get a grip on reality, while many things are
possible, only some things are realistic, and using any other language for
system development on MTS is *NOT* realistic. For an extra dose of
honesty, your opinion of Plus, my opinion of Plus, everyone else in the
*world's* opinion of Plus is complete immaterial, it *DOESN'T* matter, it
is not going to change a damn thing. There are no resources to port GCC
to MTS, to license *Asmh, or to come up with any other solution for system
development for MTS. We can barely find the resources to build a test
pack, and finish the Hercules/MTS TCP/IP work.

I know I am starting to repeat myself at this point, so I think I'll just
finish this up with this. You are way past annoying, you are completely
out of your element with your comments, you are mostly ignorant of any MTS
development history prior to it's shutdown and completely and totally
ignorant of what happened between the MTS shutdown announcement and it's
public availability several years ago. So unless and until you have
something to say that materially, positively contributes to maintaining
MTS as an interesting, living legacy/footnote in the history of computing,
please keep your stupid straw man arguments and other totally ignorant
opinions to yourself.

Thomas Valerio

p.s. I have tried to be polite and civilized, but this message really made
me livid. I apologize to others on this list if this message is upsetting
or bothersome, but I absolutely could not let this person's
assertions/opinions go unchallenged.
Post by ***@yahoo.com [hercules-390]
Thomas, I understand you're a true believer in Plus. Hey, there was a
time when I could do anything in COBOL, given enough effort. That
included doing dynamic memory allocation and pointer arithmetic before the
compiler supported it. I also speak from experience in using Pascal on
MTS as part of my undergraduate computer science program.
I want you to understand that I don't say these things simply to annoy
you. I am just trying to be honest. I have worked with many languages,
and with compiler technology, so I understand languages both from an end
user standpoint and from how compilers deal with them.
We must be honest; Plus is just a warmed-over Pascal, and not all that
good of one. You are unhappy that people would want or need ASMH
workarounds, but to me, I'd feel the same way around Plus workarounds.
The only saving grace about Plus is that an MTS compiler for it still
exists. Other than that, Plus is ugly, clumsy and awkward. It is hard
to type, needlessly wordy with no compensating advantages. They can't
make up their mind whether they want to require semicolons or not, so
there's two pages of explanation on how to decide this, or if that
doesn't help, you can flip a coin.
It makes a lot of assumptions I would call "paternalistic" in the IBM
fashion - you know, where it makes arbitrary language decisions because
the designers think they know better, whether that is true or not. One
aspect of that is that source listings automatically reformat the source
according to some algorithm, and this cannot be disabled. I am sorry,
but if I choose to generate a source listing, I want my code to look
identical to the files it came from, and even if reformatting is
possible, it should be my choice, and not mandated by force.
Plus starts out by making the claim that it is platform independent, but
then when you get to how a real implementation works, it is very
dependent on platform specifics, word sizes, etc. They provide a
platform independent means of describing the precision of an integer, and
then lock their implementation into the limits of their platform. For
instance, the language could describe a 64-bit integer, but the compiler
doesn't support it because their platform doesn't. Platform independence
is nice in theory, but it's meaningless if you don't follow through on
it.
The claim about independence is all but meaningless. Further, since it
is a proprietary language that was never widely used or standardized
(unlike something like C) the task of porting it elsewhere is far more
difficult than should be necessary.
I observed a number of aspects of Plus that seem archaic, inflexible or just strange.
It is derived from Pascal, yet uses /* */ as comments. Part of the
appeal of deriving one language from another is to build on familiarity,
yet this is a change merely for the sake of change. So, let's use C
style /* */ comments. Well, if you're going to do that, why not support
// comments like C++, which are more reliable, less likely to be used
incorrectly, and are easier to type? No, Plus doesn't go there.
Then it decides to hold on to := as assignment, even though a simple = is
much easier to type. But, not satisfied with that, it bolts on a C-style
assignment operator syntax, but rather than using += for an increment
assignment, it stubbornly hangs on to the colon, giving us the much more
clumsy +:= instead. Why?
Plus claims to downplay punctuation in favor of keywords, and defines
many of them. Yet, it uses punctuation for comparisons like <= when they
could have used LE, etc. Not content with this, they defined the
language to use the proprietary IBM not symbol ¬ instead of a more
portable ~ or ^ but then they ALSO define a "not" keyword as an
alternative, again because they cannot make up their minds.
Then, this language you love so much is a dead language; there's no more
development being done on it, is there? Correct me, if I'm wrong. So
you are stuck with all these dumb language design decisions that will
never be corrected, because Plus is cast in stone.
Then there are all the good-intentions parts of the design that never got
implemented, and never will, evidently. Apparently most or all of
floating point math never got implemented. If we had something better
than a half-finished compiler, there would more on which to judge its
merits.
I know how difficult it is to write a compiler and get it working. I
have nothing but respect for anyone that can accomplish such a task.
And, clearly, Plus works because pieces of MTS are written in it.
However, having said that, simply because a compiler works it doesn't
mean that it's good or that it should be used. I could write code in
binary that worked, but that wouldn't be good either.
It is a shame that the designers of Plus didn't try harder to consider
contemporary language design paradigms. With a better insight into what
makes one language good and another not, a much better Plus could have
been designed.
I once had heard about an IBM/370 system that an auto company was
running, at a time when the 370's were first coming out. They had a vast
supply of "Autocoder" programs, which I understand was the assembler for
the 1401 machines. The long-time programmers just loved their Autocoder,
so they ran an IBM emulator to continue running Autocoder on this 370
machine that was initially IPL'd as DOS/VS, but once that was done, they
ran the Autocoder emulator 24/7.
To me, running Plus on MTS is like writing in Autocoder. The only reason
to do it is because you have a pile of legacy code, and you are
infatuated with a dinosaur language of the past. Hey, we are all
infatuated with dinosaur systems around here, and some of us are nearly
as OLD as dinosaurs; or at least we feel that way on bad days. That
doesn't mean it's a good thing. It's just a habit, a convention, it's
what you are comfortable with. You are more than welcome to be fond of
anything you like, but please don't act like Plus or MTS or any old
system is the only way to do things. It's not.
kerravon86@yahoo.com.au [hercules-390]
2015-12-08 02:48:27 UTC
Permalink
Hi Thomas.
There are no resources to port GCC to MTS,
Would the equation change if someone
were to port GCC to MTS?

I have already ported GCC to MVS,
CMS (Dave W did that), VSE, MUSIC/SP
(Dave E did that), so it is probably
technically feasible to port to MTS too,
especially if there is a reason to do so.
I thought the fact that c89 already
existed on MTS would mean that
there is no need for GCC.

BFN. Paul.






---In hercules-***@yahoogroups.com, <***@...> wrote :

I didn't have the time to respond to this message until now, pardon my
tardiness.

I really didn't want to respond to this thread but since this message
seemed aimed directly at me I felt like I had no choice. This is a public
list and the idea that someone could read this at a later date and infer
things from my failure to respond didn't sit well with me.

So very first off DO NOT, I repeat, *ABSOLUTELY* *DO* *NOT* *PUT* *WORDS*
*IN* *MY* *MOUTH*. You are certainly welcome to speak for yourself, *DO*
*NOT* *TRY* *TO* *SPEAK* *FOR* *ME*. I may absolutely *LOVE* Plus, I may
absolutely *DETEST* Plus, but your assertion of my opinion of Plus is
wholly and completely *BASELESS*, you do not have any evidence or
assertion by me what so ever, either here or any where else on the
internet about my opinion of Plus as a computer programming language,
good, bad or indifferent. On this point you are orders of magnitude
beyond clueless.

MTS is a dead system, there is only one system that I know of in the world
that is still up on a regular basis and doing anything of even minor
consequence. Plus is a dead language, although it could cross compile,
and may have been ported to another operating system/architecture or two,
it was never widely available and is virtually unknown outside of the MTS
community. So the fact is that the resources that are available to invest
in the future of MTS are *severely* limited. As far as any new system
code for MTS is concerned, the only *real* choices are Assembler H, using
*asmh, GOM, and Plus. Assembler H is a legacy, licensed, IBM program
product, which I am pretty certain we have a pretty firm if not final
answer from IBM that we will not be given permission to distribute, even
OCO, even on a dead operating system being distributed for
legacy/educational/hobby purposes only. I don't think anyone is really
interested in discussing GOM. So that leaves Plus, this is not a debate,
this is not a discussion, I didn't get to vote then, then I certainly
don't get to vote now and you absolutely don't get a vote. It just is,
MTS is a legacy system. What I did say and what I will continue to say is
that Plus is the only *reasonable* language for any future work in MTS,
whether I like it not, whether I think it is a good language or not or
whether you or anyone else thinks it's just a "warmed over Pascal".

The other reason that I felt it was important to respond is that I think
it is critical for anyone who reads this thread or seeks to look at/learn
about MTS, this person's opinion of Plus is completely immaterial, and
their criticism is a pointless straw man argument. For what purpose, some
casual, ancient MTS user that by his own admission hasn't even bothered to
install/run the currently available system, who appears to simply want to
hear himself talk, or trot old war stories about people that did something
that he disagreed with? Please, save your breath. You want to really be
honest?? Really, you trot out several paragraphs of criticism of a
computer language that was designed more than 4 decades ago and only came
in to modest usage 3 1/2 decades ago and argue about those design
decisions like there are decisions to me made today. Have you totally
lost it???? The fact is that these kinds of arguments/criticism/debate
only make sense in the context of resources to be allocated, there are
*NO* resources to be allocated, this is a *LEGACY* system, you want be
honest, then you need to get a grip on reality, while many things are
possible, only some things are realistic, and using any other language for
system development on MTS is *NOT* realistic. For an extra dose of
honesty, your opinion of Plus, my opinion of Plus, everyone else in the
*world's* opinion of Plus is complete immaterial, it *DOESN'T* matter, it
is not going to change a damn thing. There are no resources to port GCC
to MTS, to license *Asmh, or to come up with any other solution for system
development for MTS. We can barely find the resources to build a test
pack, and finish the Hercules/MTS TCP/IP work.

I know I am starting to repeat myself at this point, so I think I'll just
finish this up with this. You are way past annoying, you are completely
out of your element with your comments, you are mostly ignorant of any MTS
development history prior to it's shutdown and completely and totally
ignorant of what happened between the MTS shutdown announcement and it's
public availability several years ago. So unless and until you have
something to say that materially, positively contributes to maintaining
MTS as an interesting, living legacy/footnote in the history of computing,
please keep your stupid straw man arguments and other totally ignorant
opinions to yourself.

Thomas Valerio

p.s. I have tried to be polite and civilized, but this message really made
me livid. I apologize to others on this list if this message is upsetting
or bothersome, but I absolutely could not let this person's
assertions/opinions go unchallenged.
Thomas, I understand you're a true believer in Plus. Hey, there was a
time when I could do anything in COBOL, given enough effort. That
included doing dynamic memory allocation and pointer arithmetic before the
compiler supported it. I also speak from experience in using Pascal on
MTS as part of my undergraduate computer science program.
I want you to understand that I don't say these things simply to annoy
you. I am just trying to be honest. I have worked with many languages,
and with compiler technology, so I understand languages both from an end
user standpoint and from how compilers deal with them.
We must be honest; Plus is just a warmed-over Pascal, and not all that
good of one. You are unhappy that people would want or need ASMH
workarounds, but to me, I'd feel the same way around Plus workarounds.
The only saving grace about Plus is that an MTS compiler for it still
exists. Other than that, Plus is ugly, clumsy and awkward. It is hard
to type, needlessly wordy with no compensating advantages. They can't
make up their mind whether they want to require semicolons or not, so
there's two pages of explanation on how to decide this, or if that
doesn't help, you can flip a coin.
It makes a lot of assumptions I would call "paternalistic" in the IBM
fashion - you know, where it makes arbitrary language decisions because
the designers think they know better, whether that is true or not. One
aspect of that is that source listings automatically reformat the source
according to some algorithm, and this cannot be disabled. I am sorry,
but if I choose to generate a source listing, I want my code to look
identical to the files it came from, and even if reformatting is
possible, it should be my choice, and not mandated by force.
Plus starts out by making the claim that it is platform independent, but
then when you get to how a real implementation works, it is very
dependent on platform specifics, word sizes, etc. They provide a
platform independent means of describing the precision of an integer, and
then lock their implementation into the limits of their platform. For
instance, the language could describe a 64-bit integer, but the compiler
doesn't support it because their platform doesn't. Platform independence
is nice in theory, but it's meaningless if you don't follow through on
it.
The claim about independence is all but meaningless. Further, since it
is a proprietary language that was never widely used or standardized
(unlike something like C) the task of porting it elsewhere is far more
difficult than should be necessary.
I observed a number of aspects of Plus that seem archaic, inflexible or just strange.
It is derived from Pascal, yet uses /* */ as comments. Part of the
appeal of deriving one language from another is to build on familiarity,
yet this is a change merely for the sake of change. So, let's use C
style /* */ comments. Well, if you're going to do that, why not support
// comments like C++, which are more reliable, less likely to be used
incorrectly, and are easier to type? No, Plus doesn't go there.
Then it decides to hold on to := as assignment, even though a simple = is
much easier to type. But, not satisfied with that, it bolts on a C-style
assignment operator syntax, but rather than using += for an increment
assignment, it stubbornly hangs on to the colon, giving us the much more
clumsy +:= instead. Why?
Plus claims to downplay punctuation in favor of keywords, and defines
many of them. Yet, it uses punctuation for comparisons like <= when they
could have used LE, etc. Not content with this, they defined the
language to use the proprietary IBM not symbol ¬ instead of a more
portable ~ or ^ but then they ALSO define a "not" keyword as an
alternative, again because they cannot make up their minds.
Then, this language you love so much is a dead language; there's no more
development being done on it, is there? Correct me, if I'm wrong. So
you are stuck with all these dumb language design decisions that will
never be corrected, because Plus is cast in stone.
Then there are all the good-intentions parts of the design that never got
implemented, and never will, evidently. Apparently most or all of
floating point math never got implemented. If we had something better
than a half-finished compiler, there would more on which to judge its
merits.
I know how difficult it is to write a compiler and get it working. I
have nothing but respect for anyone that can accomplish such a task.
And, clearly, Plus works because pieces of MTS are written in it.
However, having said that, simply because a compiler works it doesn't
mean that it's good or that it should be used. I could write code in
binary that worked, but that wouldn't be good either.
It is a shame that the designers of Plus didn't try harder to consider
contemporary language design paradigms. With a better insight into what
makes one language good and another not, a much better Plus could have
been designed.
I once had heard about an IBM/370 system that an auto company was
running, at a time when the 370's were first coming out. They had a vast
supply of "Autocoder" programs, which I understand was the assembler for
the 1401 machines. The long-time programmers just loved their Autocoder,
so they ran an IBM emulator to continue running Autocoder on this 370
machine that was initially IPL'd as DOS/VS, but once that was done, they
ran the Autocoder emulator 24/7.
To me, running Plus on MTS is like writing in Autocoder. The only reason
to do it is because you have a pile of legacy code, and you are
infatuated with a dinosaur language of the past. Hey, we are all
infatuated with dinosaur systems around here, and some of us are nearly
as OLD as dinosaurs; or at least we feel that way on bad days. That
doesn't mean it's a good thing. It's just a habit, a convention, it's
what you are comfortable with. You are more than welcome to be fond of
anything you like, but please don't act like Plus or MTS or any old
system is the only way to do things. It's not.
Mike Schwab Mike.A.Schwab@gmail.com [hercules-390]
2015-12-04 20:39:26 UTC
Permalink
Last MTS system shutdown in 1999.
https://en.wikipedia.org/wiki/Michigan_Terminal_System


On Fri, Dec 4, 2015 at 1:29 PM, ***@yahoo.com
[hercules-390] <hercules-***@yahoogroups.com> wrote:
<deleted>
Post by ***@yahoo.com [hercules-390]
I had a thought about this. Surely there must exist some licensed MTS systems in operation today, at U-M if not elsewhere. It seems like it ought to be possible that external users could log onto such systems and perform ASMH executions. If these sites don't currently have real MTS logins enabled, perhaps external users could FTP the source code they needed assembled and email a request to have them assembled. People needing this capability would likely have to pay some fee to whoever has the MTS license, but surely some arrangements could be made.
Comments on this suggestion are invited.
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?
Gavin Eadie gavin@umich.edu [hercules-390]
2015-12-04 22:15:17 UTC
Permalink
Post by ***@yahoo.com [hercules-390]
I see the efforts both in creating Plus and extending ASMH with
proprietary extensions as misguided and ill-conceived. But, since these
things exist and they made the decision to use them, current and potential
MTS users will regrettably have to deal with them.
.. you made Tom's brain hurt but imagine how much the brains of about forty
of the smartest programmers I have ever met interacted over this topic
decades ago. Every pro/con was hotly debated (as a quiet, well-mannered,
immigrant Brit, I couldn't believe that people who liked and admired each
other could scream at each other like that and remain engaged).

No decision was made lightly, no decision was unanimous, and probably no
decisions were downright wrong!
Post by ***@yahoo.com [hercules-390]
I had a thought about this. Surely there must exist some licensed MTS
systems in operation today, at U-M if not elsewhere.
.. there is not.
Post by ***@yahoo.com [hercules-390]
Comments on this suggestion are invited.
.. I'm not interested in spending more time revisiting choices I made half
my life ago and cannot change, and, as Tom also noted earlier, sentences
beginning with the word "surely," and other guesses and assumptions, are
usually incorrect. And, "I've not read the code, but .." gets the
attention it deserves!
Gavin Eadie gavin@umich.edu [hercules-390]
2015-12-03 20:41:03 UTC
Permalink
[repeating a little of what Dave just said]
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least. So the
MTS distribution people now have access to is essentially useless.
.. "useless" seems an excessively negative characterization.
Post by ***@openmailbox.org [hercules-390]
Can't anybody get whoever is in charge of that to at least release an
executable of the assembler? Do they not understand without the ability to
develop code releasing the rest of MTS thing ceases to have any meaning
except maybe as a demo?
.. If "whoever is in charge of that" is the people who made the MTS
distribution available, they would like nothing more than to release some
executable version of the assembler. I've been a member of this list for
many years and IBM's policies regarding making ASMH available has been a
subject of frustration for as long as I can remember (and not just for this
MTS issue).
Michael Kerpan madcrow.maxwell@gmail.com [hercules-390]
2015-12-03 21:05:24 UTC
Permalink
Side question: at one point an additional hobbyist release of MTS was
planned that would include extra software for which permission to
distribute had come too late for inclusion in 6a. Did that ever happen?

Mike
Post by Gavin Eadie ***@umich.edu [hercules-390]
[repeating a little of what Dave just said]
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least. So the
MTS distribution people now have access to is essentially useless.
.. "useless" seems an excessively negative characterization.
Post by ***@openmailbox.org [hercules-390]
Can't anybody get whoever is in charge of that to at least release an
executable of the assembler? Do they not understand without the ability to
develop code releasing the rest of MTS thing ceases to have any meaning
except maybe as a demo?
.. If "whoever is in charge of that" is the people who made the MTS
distribution available, they would like nothing more than to release some
executable version of the assembler. I've been a member of this list for
many years and IBM's policies regarding making ASMH available has been a
subject of frustration for as long as I can remember (and not just for this
MTS issue).
lists@openmailbox.org [hercules-390]
2015-12-04 07:28:36 UTC
Permalink
On Thu, 3 Dec 2015 15:41:03 -0500
Post by Gavin Eadie ***@umich.edu [hercules-390]
[repeating a little of what Dave just said]
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least. So
the MTS distribution people now have access to is essentially useless.
.. "useless" seems an excessively negative characterization.
It was based on my (possible mis)understanding that there is no assembler
that can be used to write new code on MTS. If there is no assembler than I
think useless is not a negative characterization but simply accurate and
neutral.

Perhaps I missed something, as I am late to the party.
Post by Gavin Eadie ***@umich.edu [hercules-390]
Post by ***@openmailbox.org [hercules-390]
Can't anybody get whoever is in charge of that to at least release an
executable of the assembler? Do they not understand without the ability
to develop code releasing the rest of MTS thing ceases to have any
meaning except maybe as a demo?
.. If "whoever is in charge of that" is the people who made the MTS
distribution available, they would like nothing more than to release some
executable version of the assembler. I've been a member of this list for
many years and IBM's policies regarding making ASMH available has been a
subject of frustration for as long as I can remember (and not just for
this MTS issue).
Until a few posts ago I didn't understand where the problem was, and what I
had read until then suggested it was a problem with MTS not releasing the
assembler, not IBM.
'Dave Wade' dave.g4ugm@gmail.com [hercules-390]
2015-12-04 10:02:59 UTC
Permalink
-----Original Message-----
Sent: 04 December 2015 07:29
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick -
Poor Man's 3270 Support
On Thu, 3 Dec 2015 15:41:03 -0500
Post by Gavin Eadie ***@umich.edu [hercules-390]
[repeating a little of what Dave just said]
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least.
So the MTS distribution people now have access to is essentially
useless.
Post by Gavin Eadie ***@umich.edu [hercules-390]
.. "useless" seems an excessively negative characterization.
It was based on my (possible mis)understanding that there is no assembler
that can be used to write new code on MTS. If there is no assembler than I
think useless is not a negative characterization but simply accurate and
neutral.
Perhaps I missed something, as I am late to the party.
There is at least one assembler. It just won't re-assemble some of the
system config files.


Dave
lists@openmailbox.org [hercules-390]
2015-12-04 11:23:21 UTC
Permalink
On Fri, 4 Dec 2015 10:02:59 -0000
Post by ***@openmailbox.org [hercules-390]
-----Original Message-----
Sent: 04 December 2015 07:29
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick
- Poor Man's 3270 Support
On Thu, 3 Dec 2015 15:41:03 -0500
Post by Gavin Eadie ***@umich.edu [hercules-390]
[repeating a little of what Dave just said]
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least.
So the MTS distribution people now have access to is essentially
useless.
Post by Gavin Eadie ***@umich.edu [hercules-390]
.. "useless" seems an excessively negative characterization.
It was based on my (possible mis)understanding that there is no
assembler that can be used to write new code on MTS. If there is no
assembler than I think useless is not a negative characterization but
simply accurate and neutral.
Perhaps I missed something, as I am late to the party.
There is at least one assembler. It just won't re-assemble some of the
system config files.
Thanks and sorry for my misunderstanding.
Mike Stramba mikestramba@gmail.com [hercules-390]
2015-12-04 12:03:53 UTC
Permalink
http://try-mts.com/programming-languages-in-mts/
Post by ***@openmailbox.org [hercules-390]
On Fri, 4 Dec 2015 10:02:59 -0000
Post by ***@openmailbox.org [hercules-390]
-----Original Message-----
Sent: 04 December 2015 07:29
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick
- Poor Man's 3270 Support
On Thu, 3 Dec 2015 15:41:03 -0500
Post by Gavin Eadie ***@umich.edu [hercules-390]
[repeating a little of what Dave just said]
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least.
So the MTS distribution people now have access to is essentially
useless.
Post by Gavin Eadie ***@umich.edu [hercules-390]
.. "useless" seems an excessively negative characterization.
It was based on my (possible mis)understanding that there is no
assembler that can be used to write new code on MTS. If there is no
assembler than I think useless is not a negative characterization but
simply accurate and neutral.
Perhaps I missed something, as I am late to the party.
There is at least one assembler. It just won't re-assemble some of the
system config files.
Thanks and sorry for my misunderstanding.
kerravon86@yahoo.com.au [hercules-390]
2015-12-04 12:29:27 UTC
Permalink
That link says:

Exists in D6.0, but does not run
•*C89 A C compiler that conforms with the 1989 ANSI standard.

I wonder why that is. Maybe we need
a GCCMTS.

BFN. Paul.





---In hercules-***@yahoogroups.com, <***@...> wrote :

http://try-mts.com/programming-languages-in-mts/ http://try-mts.com/programming-languages-in-mts/
Post by ***@openmailbox.org [hercules-390]
On Fri, 4 Dec 2015 10:02:59 -0000
Post by ***@openmailbox.org [hercules-390]
-----Original Message-----
Sent: 04 December 2015 07:29
Subject: Re: MTS Assembler - RE: [hercules-390] Re: Sample OS - Madnick
- Poor Man's 3270 Support
On Thu, 3 Dec 2015 15:41:03 -0500
Post by Gavin Eadie ***@umich.edu [hercules-390]
[repeating a little of what Dave just said]
<
Post by ***@openmailbox.org [hercules-390]
Thanks for your explanations. That's interesting to say the least.
So the MTS distribution people now have access to is essentially
useless.
Post by Gavin Eadie ***@umich.edu [hercules-390]
.. "useless" seems an excessively negative characterization.
It was based on my (possible mis)understanding that there is no
assembler that can be used to write new code on MTS. If there is no
assembler than I think useless is not a negative characterization but
simply accurate and neutral.
Perhaps I missed something, as I am late to the party.
There is at least one assembler. It just won't re-assemble some of the
system config files.
Thanks and sorry for my misunderstanding.
'Thomas Valerio' tjv@westwood-tech.com [hercules-390]
2015-12-03 19:31:30 UTC
Permalink
When I was gainfully employed by the University of Michigan, I put in a
serious amount of effort in making the system more robust. The idea of
the white knight systems programmer riding in to save the day and solving
a problem that prevented the system from having to be reloaded really left
a sour taste in my mouth. It was my opinion that if there were systemic
or chronic problems they needed to be addressed directly rather than after
the fact. Fortunately most of the other staff shared my opinion, but not
all, and when I was in a position to do so I refactored a fair amount of
code to convert it to Plus and obviously to make it more robust. In an
ideal world where resources were not in short supply and MTS was still a
viable and useful resource for the university or other reasonably sized
organization, I would have loved to have seen the entirety of MTS that was
still in assembly language converted to Plus. The point of all of that is
that there shouldn't be any particular reason why the current tables
assembly couldn't be converted to Plus. If the entire system were written
in Plus, tables would have eventually been converted. Plus is a
*complete* systems programming language, there is nothing that can be done
in assembly language that can't be done in Plus, including the replacement
of the tables assembly. Since completely rewriting everything in MTS that
still requires *asmh is not really realistic, I can still see tremendous
value in a replacement for *asmh, however, the absence of *asmh is not
really the major obstacle to future progress that some people have made it
out to be. Just my $.02

Thomas Valerio
Post by 'Dave Wade' ***@gmail.com [hercules-390]
-----Original Message-----
Sent: 03 December 2015 18:16
Subject: Re: [hercules-390] Re: Sample OS - Madnick - Poor Man's 3270
Support
On Thu, 3 Dec 2015 18:00:34 -0000
Would it be possible to create an external macro pre-processor that
takes the existing code and just expands the macros?
I haven't been following this from the beginning but is the problem that
you
don't have the MTS assembler source or that you don't have the MTS
assembler itself?
MTS used a modified version of the IBM Assembler H to assemble some core
components. The base assembler is licenced code and so can't legally be
distributed with MTS and has been removed from the distributions.
What are people wanting to accomplish, exactly?
In effect do an MTS Sysgen, so re-assemble the system tables. At present
they have patched the binaries....
Dave
G4UGM
Loading...