Keyboard Shortcuts
Likes
Search
VM/370 CE Assembler F, Assembler XF
On Mon, 22 Jan 2024 at 21:14, Mark A. Stevens via <marXtevens=[email protected]> wrote: I am still trying, as I can find time, to get Assembler G installed on VM/370. I've run into an EXEC that mentions Assembler F as separate from Assembler XF. Assembler F and XF are indeed completely different programs. For whatever reasons, IBM appears to have written XF to the same specs as F, but from scratch. There are a few minor new features, and the code is reentrant (whoop-de-do), but that's it. That notwithstanding that the vastly superior Assembler H already existed.
Weird but true.? H was always a chargeable Program Product, with source code available. There was a Version 2 of H, and that later morphed into the High Level Assembler - also not free, and also OCO. Assembler G is Assembler F with a bunch of additions and optimizations, and a compile&go option for student use. It's from the University of Waterloo. There is one more assembler - a version of XF used
to assemble code for the 3705 and similarly architected comms
controllers. I don't know if anyone has the source, but I think only the
instruction tables and some parts of code generation would have to have
been changed.
The module and message prefixes are: F???????? IEU G??????? ASMG XF?????? IFO/IFN H???????? IEV HLASM ASMA CWAX? CWA Source code for all three free ones is around, though G source is probably the least reliable. I know nothing about running G on VM/370, but I imagine it would run fine if invoked as an OS program. In other words I'm doubtful that there's an ASMG or the like command ready to go. There are various other assemblers out there for S/370 up to zArch code. I know of two commercial cross-assemblers that run on Intel platforms, and there is also a unique interactive one in TSS/360 that seems to have a unique code base. And of course in the Linux world the standard assembler can generate s390x code, though the input syntax and output formats are both radically different. Tony H. |
¿ªÔÆÌåÓýMark, To echo what Tony says, F and XF are different beasts. Basically, F was I think the pre MVS OS assembler, XF was distributed with MVS, VM and DOS. I have never seen ¡°F¡± on VM. I am sure I have had G running on VM because I tried it with GCC but gave up as it was no better. If I get time I¡¯ll see if I can find what I did. ? It looks like someone re-worked the source for ASMG here: ? ? there is also a note here:- ? ? which suggests that despite untested assertions elsewhere XF is faster than G and that using option BUF(MAX) speeds it up somewhat more ? Dave ? ? From: [email protected] <[email protected]> On Behalf Of Mark A. Stevens via groups.io
Sent: Tuesday, January 23, 2024 2:14 AM To: [email protected] Subject: [h390-vm] VM/370 CE Assembler F, Assembler XF ? I am still trying, as I can find time, to get Assembler G installed on VM/370. I've run into an EXEC that mentions Assembler F as separate from Assembler XF. |
¿ªÔÆÌåÓýAnd do not forget the assembler that comes with SATK, also called ASMA it appears. The SATK ASMA manual is at the doc/asma/ASMA.pdf in the github
repository. The syntax is extremely close to the legacy assemblers, a few additions.? The output is different but it works well for its targeted use with bare-metal programs on mainframes.? All instructions from the S/360 through the latest z PoO -13 are supported. Harold Grovesteen On 1/22/24 21:11, Tony Harminc wrote:
|
I hadn't realized that IBM rewrote F into XF while H was already available. Interesting. Would it be feasible to expand G into full H compatibility? AIUI, H started out as IBM's version of G... On Mon, Jan 22, 2024 at 9:11?PM Tony Harminc <tharminc@...> wrote:
--
Jay Maynard |
I would add, regarding ASMA, that the .OBJ object code generated is (in my experience) 100% compatible with IBM object decks, except that it does not include RLD information.
This means it should be usable in VM/CMS,DOS or DOS/VS provided you either determine its load address at assembly time, or write the code to be self-relocating. If you are writing bare metal/standalone programs it gives you full access to 390 and z/arch instructions without using assemblers designed for 24-bit architecture. Eddy Balem |
On Tue, Jan 23, 2024 at 06:36 AM, Jay Maynard wrote:
Would it be feasible to expand G into full H compatibility? AIUI, H started out as IBM's version of G...I believe it would from the code I have been living with. There are modules that support the following instruction sets This is why I have been trying to get this installed, as I believe it could be extended to other architectures.? The following is from V2L7_ASMG_University_of_Waterloo_Assembler_G_Usage_Guide_10th_ed_197606.pdf I found at https://ia902302.us.archive.org/19/items/bitsavers_univOfWateityofWaterlooAssemblerGUsageGuide10thed1_5575394/V2L7_ASMG_University_of_Waterloo_Assembler_G_Usage_Guide_10th_ed_197606.pdf INSTset= (ISet=)? The instruction set which the assembler recognizes
|
On Mon, Jan 22, 2024 at 09:11 PM, Tony Harminc wrote:
Assembler F and XF are indeed completely different programs. For whatever reasons, IBM appears to have written XF to the same specs as F, but from scratch. There are a few minor new features, and the code is reentrant (whoop-de-do), but that's it. That notwithstanding that the vastly superior Assembler H already existed. Weird but true.?Thank you very much for the history lesson. I read somewhere that G was written because of limitations in F, but I don't remember what those all were. Installing G on VM/370 is necessarily needed, but I am learning a lot along the way, and that makes it worth it for me. ?... Mark S. |
I would like to second Eddy Balem's plug of Harold Grovesteen's most excellent SATK/ASMA product:
* As Harold already knows, I'm his biggest fan. It's a *very* nice, well written product that allows you quickly and easily write stand alone programs in an assembler that is virtually identical to IBM's (there are some differences but they're minor IMO), and, as Ed said, produces output that is usable on virtually any/all IBM operating systems in existence (including, I might add, not just legacy ones like VM/370, DOS/VS, etc, but also modern ones too like z/OS and z/VM). I use it all the time to write test cases for Hercules. Just take a look at Hercules's "test" subdirectory and you'll see. If anyone is interested in playing around with or learning mainframe assembler without the hassle of needing an operating system to do so, I would *highly recommend* that you give it a try! Harold and/or myself will gladly provide you with whatever help you might need to get started with it. -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@... |
On Mon, Jan 22, 2024 at 07:11 PM, Tony Harminc wrote:
Remember, the suffixes for various products is not based on function level but how much (real) memory it needed; this was an era when the IBM S/360 65 maxed out at 1 MB core of fast core.? Even the S/370 model 165 was originally offered with only up to 3 MB of core.? (The way Hercules users can run MVT on a uniprocessor with 16 MB of cheap real memory was a fantasy in 1971.) Quoting Wikipedia: Function was certainly related to how much memory was needed, but (re)writing an F level component when the H component existed made perfect sense if the F level component needed a quarter of the??(expensive)?memory. Weird but true.? No, just pragmatic. -- Drew Derbyshire Software Hobbit (SRE Emeritus) |
On Tue, Jan 23, 2024 at 12:14 Drew Derbyshire <swhobbit@...> wrote:
That was true up to a point.? FORTRAN IV, as you note, had F, G, and H versions, which differed both in function and in required memory (and in overlay structure - remember overlays?).? But after a while, it became primarily a functional designation.? PL/I X, for example, was dramatically higher function than PL/I F, and could reasonably have been described as a new version of the language.? Waterloo's Asm G and SLAC's Assembler H used the "level" to indicate "newer and higher function", not "more RAM-hungry".? I vaguely recall using ASMGASM for MVT sysgens because it was smaller and faster. Ross Patterson? VMER emeritus? |
On Tue, Jan 23, 2024 at 13:50 Fish Fish <david.b.trout@...> wrote: > Drew Derbyshire In assuming Drew, like me later in my career, was called a "Site Reliability Engineer".? As to VMer, well, I spent 20 years or so working on VM/CMS systems, and once led the VM activities at SHARE. Ross |
Ross Patterson wrote:
Fish wrote:Ah. I wasn't familiar with that title. I've heard of CE (Customer Engineer) and SE (Systems Engineer), but not SRE. Thanks.Drew Derbyshire As to VMer, well, I spent 20 years or so working on VM/CMSCool! Thanks for the education. Appreciated. So I guess at this point I should probably say, "Ah. I see. Sorry for the intrusion. Please carry on then." :) -- "Fish" (David B. Trout) Software Development Laboratories mail: fish@... |
On Tue, 23 Jan 2024 at 12:14, Drew Derbyshire <swhobbit@...> wrote: On Mon, Jan 22, 2024 at 07:11 PM, Tony Harminc wrote: Yes, but...
Indeed. Only once in my life did I run on a real machine with 16 MB.. That was a 168MP at an IBM site when the university I worked at had a fire, and no DR plan. But all we got was a 2MB virtual machine to match our 165.
Yes, but... As has been pointed out in this thread, and - looking back - as early as 2007 on the Hercules lists - ASM H didn't follow that scheme for at least two reasons: Waterloo's ASMG already existed, and it would've been beyond bizarre for IBM to come out with an "Assembler G" program product that competed with the "real" (and free) ASMG that was already in wide use. ASM H is structured very differently from the IBM compilers of the day, including both ASM F and XF. ASM H *can* use a lot of main storage, and doesn't even need a work file if there is enough of it. But if you do give it a work file it effectively pages its data to it, and can get by in very little main storage. So the "design points" like F, G, and H are not so relevant to this kind of design. The older assemblers, in contrast, always use three work files - each for a different kind of data.? Adding main storage beyond a certain fairly low point won't make them run faster or reduce the size of the work files, and adding more work file space won't reduce the memory needed beyond a certain point. In other words each is a separate kind of resource. There are many many comments on these lists over the years on the various assemblers - my own first contribution seems to be from 2005, and that about where my email archive starts, so they may go back further. Maybe someone should consolidate them all for "convenience". Weird but true.? Yes, but...? :-) Tony H. |