🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #1539

Re: What is a Mainframe?

#1539
From: Mark Nelson
Date: Sun, 16 Jul 1989 19:02
42 lines
2499 bytes
In article <164@bms-at.UUCP> stuart@bms-at.UUCP (Stuart Gathman) writes:
>
>What you need is figures for a 3090, but there're hard to come by
>since  most mainframes run dinosaur OS's that have never heard of
>a source archive.  (Programmers tend not to use macros with their
>assembler, let alone a high level language.)
>
The Cray Operating System (COS) is written entirely in assembler.
Since it is essentially a RISC machine (modulo the vector instructions,
depending on your personal definition of RISC), and it has 64 bit words,
macros are used very heavily, especially for packing and unpacking bit
fields in tables.

Cray assembler is written very differently from any other assembler
I've used (6502, 8080, Z-80, 8086, PDP-10, PDP-11, 68000, Cyber 205).
Instead of giving instructions (or families of instructions) names
like MOV or ADD, the instructions are written symbolically, e.g.:

       A1      A2+A3       Integer add of Address registers 2 and 3
                           (24 bit), storing result in A register 1
       S7      100,A1      Memory load from word (100 + contents of
                           A1) to Scalar register 7 (64 bit)
       S1      S3*FS7      Floating point multiply of S3 times S7,
                           result in S1

Because of this unusual way of writing instructions, Cray assembler
has what are called "Opdefs", which are essentially macros recognized
by syntax rather than by name.  For example, the Cray has no divide
instruction.  But by properly defining an Opdef, it would be possible
to write

        S5      S2/FS4

which would expand into the four instruction sequence required to
do the divide.

Of course, I'm speaking for myself, not speaking for Cray Research
officially.

Mark Nelson                 ...!rutgers!udel!nelson or nelson@udel.edu
This function is occasionally useful as an argument to other functions
that require functions as arguments. -- Guy Steele
Technical Details
Message-ID: <19834@louie.udel.EDU>
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!bbn!gatech!udel!nelson
References: <125@ssp1.idca.tds.philips.nl> <20752@winchester.mips.COM> <27637@lll-winken.LLNL.GOV> <164@bms-at.UUCP> <1604@gazette.bcm.tmc.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!bbn!gatech!udel!nelson
From: nelson@udel.EDU (Mark Nelson)
Newsgroups: comp.arch
Subject: Re: What is a Mainframe?
Message-ID: <19834@louie.udel.EDU>
Date: 16 Jul 89 19:02:03 GMT
References: <125@ssp1.idca.tds.philips.nl> <20752@winchester.mips.COM> <27637@lll-winken.LLNL.GOV> <164@bms-at.UUCP> <1604@gazette.bcm.tmc.edu>
Sender: usenet@udel.EDU
Reply-To: nelson@udel.EDU (Mark Nelson)
Organization: University of Delaware and Cray Research
Lines: 42