Date: Tue, 23 Sep 1997 09:29:31 -0600 (MDT) From: Roger Ivie Subject: Re: ClosedDos??? To: OPENDOS AT delorie DOT com Message-id: <01INZ6DGLWIABG735I@cc.usu.edu> MIME-version: 1.0 Content-type: TEXT/PLAIN; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Precedence: bulk Arkanoid wrote: >> Date: Mon, 22 Sep 1997 16:18:48 -0600 (MDT) >> From: Roger Ivie >> Subject: Re: ClosedDos??? >> To: OPENDOS AT delorie DOT com >> FWIW, it's been my experience that a VAX can keep pace with an Alpha that >> is running at twice the clock rate. The fundamental difficulty is that it >> didn't take long for Alphas to start running more than twice the clock >> rate of the fastest VAXen; that is the fundamental magic of RISC. >There are some other things: > > The machine is not bare number-crunching device. If you compare TPS numbers >for those things it is not so bad for VAXen. True. However, my experience has been that a VAX can keep pace with an Alpha that is running twice the clock rate on _precisely_ those things which the VAX does better than an Alpha: byte manipulation, etc. For number-crunching, the VAX is much worse. > VAX programs could be manually optimized: remember that Macro-11 _is_ a >valid programming language - and it is hard to imagine someone coding big >projects in Alpha assembler. (back to C vs ASM discussion on this list) That would be Macro-32 if it's for the VAX. When I looked at some of my VMS device drivers which I had ported to the Alpha (written in Macro-32 and run through Digital's Macro-32 to Alpha compiler), I discovered that in many cases it would be possible for a hand-coded routine to be entered, do the work, and exit before the standard procedure prolog code emitted by the Macro-32 compiler had finished saving the registers that were going to be used. I started rewriting chunks of my drivers in Macro-64. Unfortunately, I got bogged down in byte-aligned accesses (which are _really_ evil on the Alpha) so I gave up. It has been some time since I have looked at the code generated for the more recent device drivers I've been doing in C. The Alpha/VMS guys have done a lot of work to make C an excellent language to use for writing VMS device drivers. The only drivers I still do in Macro-32 are ones that either execute on the VAX, are ported from the VAX (i.e., have executed on the VAX), or deal with portions of the kernel that are not yet C-friendly (such as the terminal class/port driver interface). C doesn't fit everywhere. I doubt I could find a C compiler which works well enough write a CP/M-80 BIOS, yet I have no qualms about using C for embedded 68HC11 code (the 68HC11 is much more C-friendly than the 8080). Were I writing MS-DOS device drivers, I would certainly look at doing them in C. Roger Ivie ivie AT cc DOT usu DOT edu