Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!uwm.edu!bionet!agate!ucbvax!MTU.EDU!matt From: matt@MTU.EDU ("Matthew T. Kromer") Newsgroups: comp.lang.asm370 Subject: why code in 370 Assembler Message-ID: <9104171319.AA25106@ucbvax.Berkeley.EDU> Date: 17 Apr 91 12:03:04 GMT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: IBM 370 Assembly Programming Discussion List Distribution: inet Organization: The Internet Lines: 49 Doug Schales said it: 370 is fun. You can do so much more by going directly to 370... all of the SVCs and DIAGs are available directly, and the macro facility in assemblers XF and H is quite powerful. Once you develop a good set of subroutines, it is quite easy to whip off a fast, small executable. One of the problems with IBM's newer releases of higher level languages (at least under VM, the environment I use) is the neutering of the language libaries to produce a stand-alone module. You now have to go through gyrations with PRELOAD to suck in all of the libraries before you can GENMOD an executable, and the resulting object file may be well over half a megabyte in size. This is extremely slow to load and often slow to execute. Plus, you get run-time libraries that want to run away with your program. PL/I for example, tries it's hardest to convert what ever you have into what ever it thinks you want. This may be great if you want to write something entirely in PL/I, but if you want to get to the guts of VM, you have to begin making direct calls to CMS or CP services. At this point, I find writing a small set of assembler interfaces to these routines to be called by a higher level language (take your pick which one) is a pain in the ass when I can do the whole thing in assembly and get a small, stand-alone, and fast object file. I also suppose it depends on your perspective. Most Unix systems programmers never touch assembler except when they have to, Unix being coded mostly in C. CP is coded in 370 assembler, and CMS is coded in PL/AS. Thus I have quite a bit of incentive to use 370 if I want to generate a new CP command, rather than try to convince CP that it should load some run-time support library. I really find that the 370 instruction set is rich enough that I never miss higher level languages. (The exception being Rexx--and the Rexx EXECCOMM interface to assembler is quite easy to use and very powerful.) In general, I find the prevailing attitudes toward IBM System 370/System 390 architecture to be quite uninformed. Granted, the 360s *are* dinosaurs in the 90s... which is the reason IBM has evolved the line though to 370s to XA to ESA. I see many examples in modern CS textbooks that compare state of the art microprocessors to an IBM 360. Given the 25 year difference, it's not surprising that a PC can outperform a 360. I haven't seen a workstation yet that comes close to running circles around a 3090. Certainly one can obtain faster calculations with less expense on a smaller machine, but to assume micro technology is growing in leaps and bounds while mainframe technology is stagnant is rather ignorant. It reminds me of the CS faculty at a certain university which, upon seeing the two 5 1/4" microcode diskette drives on a 3092 processor control unit, said: "Oh, your computer boots off floppy too!" (These same faculty later commented on the difficult learning curve of a Macintosh... but their approach to IBM mainframes is common.) Matthew T. Kromer Discussion in private is welcomed to: MATT@MTUS5.cts.mtu.edu