I worked with an ASSEMBLER in the 70s, which allowed free-form input, too.
And it hat statement separators (commas in this case, because the
instructions
always had only one operand, so the comma was not needed to separate the
operands).
This way it was possible to write more than one statement (=
instruction) in one line.
Literals where specified by parantheses, IIRC - you could also put more
than one definition
in a literal, separated by comma. A literal could contain any kind of
information, even complete
sub-programs. For example, loading an address of a complicated structure
built of initialized constants into the B address register (or into an
index register) could be
done in one instruction, and even in one line, because the lines were
not limited in length
(if the source file was a variable length file and not punched cards,
for example).

But: the ASSEMBLER anyway produced a readable listing, where each
instruction
appeared in a separate line, together with its binary equivalent. And:
there was a
utility to convert a free-form program in a structured variant, where
every instruction
appeared on a separate line.

This was TAS - Telefunken ASSEMBLER - the ASSEMBLER of the Telefunken
TR 440 mainframe.

When I first met IBM ASSEMBLER in 1985, such restrictions like

- labels in col 1
- instructions (normally) in 10
- operands (if possible) in 16
- continuation char in 72

seemed somehow strange to me.

But anyway: the programs were not better or worse at that time; the
quality and readibility
of the sources depends on the programmer. He or she has to use the
features, that the
ASSEMBLER provides, carefully, and IMO features like comments and blank
lines etc.
to have to optical appearance of the source reflect the logical
structure are very important.

Kind regards

Bernd




Am 14.06.2012 18:35, schrieb Paul Gilmartin:

You're taking a step in the direction of free-form input.
Long ago, I worked (minimally) with such an assembler,
in which the programmer might code something like the
above either as:

EXIT:
RETURN (14,12),RC=0

or as:

EXIT:   RETURN (14,12),RC=0

or even:

        EXIT: RETURN (14,12),RC=0

Indention had no significance; the ':' always signified
a label.  (I make no judgment on stylistic merit.)

-- gil

Reply via email to