Path: 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 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