The IBM/360 Macro Assembly language was quite powerful, allowing non-trivial compile-time string manipulation.
Did macro packages exist which would facilitate programming at a (slightly) higher level, like writing expressions in an infix form, allowing a form of structured programming, standardizing subroutine calling conventions, accessing bit-fields conveniently, etc?
The reason I'm asking it that one of the BESM-6 assembly languages was a syntax-level port of the IBM/360 assembler, including the macro language, e.g.
macro
mnop &a,&b,&c,&d,&e,&f,&g,&h
aif (&a eq '').x
gbla &cnt global arith. variable
mnote * comment &cnt
&cnt seta &cnt+1
nop &a
mnop &b,&c,&d,&e,&f,&g,&h
.x anop
mend
MNOP FIRST,SECOND,THIRD,FOURTH
expands to
0001 0001 MACRO
0002 0002 MNOP &A,&B,&C,&D,&E,&F,&G,&H
0003 0003 AIF (&A EQ ’’).X
0004 0004 GBLA &CNT GLOBAL ARITH. VARIABLE
0005 0005 MNOTE * COMMENT &CNT
0006 0006 &CNT SETA &CNT+1
0007 0007 NOP &A
0008 0008 MNOP &B,&C,&D,&E,&F,&G,&H
0009 0009 .X ANOP
0010 0010 MEND
0011 0011 MNOP FIRST,SECOND,THIRD,FOURTH
0012 0005 * COMMENT 0
0013 +0007+ NOP FIRST
0014 0005 * COMMENT 1
0015 +0007+ NOP SECOND
0016 0005 * COMMENT 2
0017 +0007+ NOP THIRD
0018 0005 * COMMENT 3
0019 +0007+ NOP FOURTH
But the precompiled macro package for "higher-level" programming (likely also ported from IBM/360 with the appropriate architecture-dependent modifications) is missing.
Here's a few examples of using the macros from the package:
RЕG (М1 = 1,М2 = 2,М3 = 3,М4 = 4,М5 = 5)
КТ1 ВINDА (А(PAGE1)+KMD+М14)
FКТ3 SТRIТ (NCMD,0,0,8),(NARCH,0,40,8),(SND,0,16,8)
ЕХРR (FNM = $) FILE NAME
ЕХРR (SND = (OWNER,ADDR)) SENDER
ЕХРR (NUMREQ = (OWNER,REQ)) REQUEST NUMBER
IFА (QUEUE),Z=DISCRD NO REQUEST
Searching the web for the most distinctive macro names BINDA
and STRIT
doesn't help.
If a macro package with those or similar macros existed for the IBM/360 Macro Assembler, getting access to its source code would be of great help.