Skip to main content
18 events
when toggle format what by license comment
Nov 21, 2020 at 20:00 comment added Raffzahn @LeoB. Originally namelength was restricted to 8 characters, so not much more. The macro language is IMHO the best ever devised. Simple but extreme powerful. Sure, no OO-Langage, but wouldn't be of much help anyway. It was used to agreat degree all over the /360 word. Heck, most of the OS configuration works by macros (in that way, the OS was kind of open source :))-
Nov 21, 2020 at 18:17 comment added Leo B. Some macro names could have been shortened. In most programming systems, names could be no longer than 6 (significant) characters, as the 48-bit word of BESM-6 packs 6 bytes. I would not be surprised if the prototype library is indeed third-party; it depends on the company or institution the code of the IBM Macro Assembler and the accompanying software had been lifted from, to be brought to the Moscow Institute of Applied Math for reverse-engineering and porting. The macroprocessor was a part of the assembler, which itself followed the IBM syntax quite closely.
Nov 21, 2020 at 10:57 comment added Raffzahn @LeoB. Quotation is only done by ' and only then are spaces allowed. Sublists do not differ. /360 assembler is very straight forward and handling of spaces is fundamental for compatibility, so I simply picked the first reference. Also, as mentioned, the names are very un-IBM, at least for additional packages. Usually all macros belonging to a package always start with the same prefix (Like DFH for CICS). OS is an exception. so it's rather third party - if at all, sure it's assembler, not just some other language?
Nov 21, 2020 at 4:56 comment added Leo B. FILE NAME was indeed a comment; the rest is a pity (this is a more specific indication that spaces were not allowed even in sublists (although, demonstrably, it would not be hard to implement). Then my only remaining hope is that some "higher level programming" macro package with similar macro names existed to try figuring out the meaning of the macros and replacing them manually.
Nov 21, 2020 at 1:17 history edited Raffzahn CC BY-SA 4.0
added 1 character in body
Nov 21, 2020 at 1:14 history edited LаngLаngС CC BY-SA 4.0
Corrected Spelling
Nov 21, 2020 at 0:39 comment added Raffzahn @LeoB.A line like ` ЕХРR (FNM = $) FILE NAME` would take EXPR as macro name, (FNM as operand and the rest as comment. To make it a calid source line it must have been written as ` ЕХРR (FNM=$),FILE,NAME`. So I would assume that these macros are not taken from any /360 package, at least not literal. But the whole syntax is odd. So I wouldn't wonder if it's a genuine Sovjet development since it relies on the workings of this specific assembler. Not to mention that communicationon a /360 woudl be most likely CICS and CICS macro level looks quite different.
Nov 21, 2020 at 0:36 comment added Raffzahn @LeoB. Well, this very much settles that the Assembler used is incompatible with the /360 assembler, as this does not allow spaces within parameters. Not back than and not now. See here: One or more spaces outside a quoted string indicates the end of the operands of a macro instruction. Thus spaces should only be used inside quoted strings. The behaviour shown would make many /360 sources fail.
Nov 21, 2020 at 0:01 comment added Leo B. Printing the macro argument (A = 1,(B = 2,(C = 3)),D = 4) I get (A,=,1,(B,=,2,(C,=,3)),D,=,4) which means that spaces in lists were treated as element separators. Then it makes sense to write tokens separated by spaces for easier parsing.
Nov 20, 2020 at 23:45 comment added Raffzahn @LeoB. F did support N', but I'm not sure about sublists, Both was available in H. Assember nerver brought a lib of their own. Libs were always supplied with each OS - and of course did usually only cover OS functions. But as mentioned, there were many additional products and suppliers. Your example look somewhat like supplied for a communication package, doesn't it? But it does not look like CICS, as that would have tons of DFH* macros. So yes, it might need luck to find the source. Also, I'm a bit confused by the spaces, as a space is in /360 asm not allowed (unquoted) in source.
Nov 20, 2020 at 23:26 comment added Leo B. The BESM-6 version of the macro package was referred by the name ASTRA (for ASsembly TRAnslator, I guess). As the macro names are in English, and as the infrastructure (the basic assembly syntax and the macro syntax) has ported from IBM, I doubt that it was completely Soviet-made; there must have been a prototype.
Nov 20, 2020 at 23:20 comment added Leo B. The boilerplate printed by the macroprocessor mentions November 1978, and it does support multi-level sublists , except the N' syntax for the number of operands. If there was no standard macro package, then I'm out of luck unless someone recognizes familiar macro names and has access to the source code for the package.
Nov 20, 2020 at 23:17 comment added Raffzahn @LeoB. Long story short, I doubt you'll find the library without knowing what it's named and were it came from. Chances are good it's been a custom development. As there isn't 'the' library nor 'the' supplier. fir /360 macros/development.
Nov 20, 2020 at 23:17 comment added Raffzahn @LeoB. Err. I do not believe the level of macro language you want is the one mentioned in the IBM link supported, as that's the description of IBM's HLASM. There is a long line of development between the original /260 Assembler (D, E or F) of the 1960s and HLASM which debuted (IIRC) in the early 1990 - quite after the package you're looking for, right? Also, there were Zillions of macro libraries. Manufacturers offered a variety of libraries for different products/usage, Third party did as well, and especially every program that offered an interface did provided its macro libraries.
Nov 20, 2020 at 23:11 history edited Raffzahn CC BY-SA 4.0
added 244 characters in body
Nov 20, 2020 at 22:53 comment added Leo B. Thanks, but if there were indeed multiple variants and versions of macro languages and packages, an arbitrary one won't help. I'm interested in packages written in the macro language described in ibm.com/support/knowledgecenter/SSQ2R2_14.2.0/… hoping that a package contains macros named BINDA, STRIT and EXPR - then with a high probability it would be the prototype of the one I need to compile a program written in it.
Nov 20, 2020 at 22:48 history edited Raffzahn CC BY-SA 4.0
added 844 characters in body
Nov 20, 2020 at 22:37 history answered Raffzahn CC BY-SA 4.0