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

Reply via email to