I'm pretty sure the resemblance was intentional so as to be an easier sell to customers familiar with 360 assembler.

There was a rumor that they had originally hoped to sell low-cost training machines to schools when real computers were expensive.

There is some architectural resemblance if you throw out most of the address modes, base registers, have fewer condition code bits... You end up with 16 two's complement registers, uniform size 8-bit op codes, RX, RR, and RI addressing modes (with a few variants).

A 16 bit quantity on the 16 bit machines was always, from the beginning, a "HALF WORD".

The assembler, "CAL" (Common Assembly Language) would assemble 16 or 32 bit source.

With care it was possible to write source code that could be assembled to either 16 or 32 bit object. Don's example uses some of the features, A(...) specifies an "address length" constant, 16 or 32 bit as appropriate. There was a whole set of opcode mnemonics that would assemble appropriately depending on the target. The BASIC interpreter was a key example, and was actually distributed in source form. I'd love to find a copy.

If you were really careful you could create a binary that would actually run on 16 or 32 bit machines without modification. Some of the hardware diagnostics are this way. Look for COMMON in the diagnostic title.

For a 32 bit target a different kind of careful would let you write position independent code.

On 02/16/2016 05:16 AM, [email protected] wrote:
Fascinating and very similar in syntax to the assembler for IBM OS/360 and
later. Does anybody know the history behind this?

On Mon, 15 Feb 2016 13:58:26 -0500 (EST)
[email protected] (Don Stalkowski) wrote:

*L EDIT32
TSKID = EDIT32
*ST
*13:19:38   EDIT32:PERKIN-ELMER OS/32 EDIT 03-145 R04-01
*EDIT32>GET HELLO.CAL
*EDIT32>T 1-12
*13:19:48   EDIT32:    1             SVC   1,SAY
*13:19:48   EDIT32:    2             SVC   3,0
*13:19:48   EDIT32:    3             ALIGN ADC
*13:19:48   EDIT32:    4    SAY      DB    X'28'
*13:19:48   EDIT32:    5             DB    X'00'
*13:19:48   EDIT32:    6             DS    2
*13:19:48   EDIT32:    7             DC    A(SAY1)
*13:19:48   EDIT32:    8             DC    A(SAY2)
*13:19:48   EDIT32:    9             DAS   2
*13:19:48   EDIT32:   10    SAY1     DC    C'HELLO WORLD '
*13:19:48   EDIT32:   11    SAY2     EQU   *-1
*13:19:48   EDIT32:   12             END
*EDIT32>END
_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh



_______________________________________________
Simh mailing list
[email protected]
http://mailman.trailing-edge.com/mailman/listinfo/simh

Reply via email to