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