[Simh] Interdata OS/32: hello-world in CAL32

Davis Johnson davis at frizzen.com
Thu Feb 18 21:16:32 EST 2016


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, lists at openmailbox.org 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)
> dstalk at execulink.com (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
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh
>
>



More information about the Simh mailing list