Technical Assembly Systemm (TASS) on the 650 had something called a program point. A program point was a one digit label, and the references to program points were suffixed with B for backwards and F for forward. It is perhaps the only thing on the 650 that I miss.
Somewhat more general was the QUAL statement in IBMAP, which designated a section of code in which labels were implicitly qualified with the section name. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 ________________________________________ From: IBM Mainframe Assembler List <ASSEMBLER-LIST@listserv.uga.edu> on behalf of Peter Relson <rel...@us.ibm.com> Sent: Saturday, August 4, 2018 10:23 AM To: ASSEMBLER-LIST@listserv.uga.edu Subject: Re: EQU * considered harmful >"This isn't a 'real' branch-that is, we aren't going very far..." Donald Knuth's assembler, which we had available in college in the 70's, had the concept of a "relative label". I can't remember if there was one name pattern for "forward" and one for "backward" or whether you couldn't use it for "backward". It avoided unnecessarily unreadable label names, and avoided the uniqueness problem. And when used properly (i.e., well within a "screen" amout) it was perfectly clear. The label name was like "1R" for "first one ahead, relative" or perhaps it was "find the first 1R label ahead", for example J 1R When used appropriately (as a substitue for all of these *+small_number types of cases) it avoided the maintainability problems of having to know how long everything was. By the way, I still remember being amazed at a demonstration of producing "N factorial" using IBM/360 assembler macro language (at least for small enough numbers). Peter Relson z/OS Core Technology Design