| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 117.1 | my 2 � | UFP::MURPHY | Rick, Washington,District of Confusion | Sun Nov 16 1986 20:19 | 6 | 
|  |     Two that I can think of:
    1. Writing a transfer vector for a sharable image.
    2. Writing a device driver (more precisely, the part that accesses
       the device registers, where you must be careful of the instructions
       used)
    	-Rick
 | 
| 117.2 |  | QUARK::LIONEL | Reality is frequently inaccurate | Sun Nov 16 1986 21:52 | 13 | 
|  |     Only 5 occasions?  This is silly.  Assembly language is often the
    only thing that makes sense - at least given the state of things
    on VMS today.  I wouldn't write high-performance math routines in
    anything else.  Also, code that juggles call frames (such as the
    code in the exception dispatching facility, Ada multitasking (on
    VMS), etc.
    
    But it is true that MACRO is used much more often than is necessary
    in VMS.  Modula2 is not a standard DEC development language, so
    why learn it over others?  If you want a good high-level applications
    implementation language, pick Pascal or Ada.  And it's foolish not
    to learn BLISS if you work for DEC.
					Steve
 | 
| 117.3 | My mother didn't raise me to be a register allocator | NOBUGS::AMARTIN | Alan H. Martin | Sun Nov 16 1986 22:10 | 15 | 
|  | Re .1:
I thought that either Macro or Bliss could be used for device drivers
on VMS.  (Not that I've written any in either language).
Re .2:
I believe that DEBUG wades through stack frames using Bliss code, including
the use of symbols from STARLET instead of magic offsets.  On the other
hand, the condition handling facility might be one of those places where
the last bit of speed counts.
Also, I read about 4 defined levels of VAX diagnostic software someplace
recently, and two of them can only be done in Macro.
				/AHM/THX
 | 
| 117.4 | The only offerings presently... | NEXUS::MORGAN | Walk in Balance... | Sun Nov 16 1986 22:18 | 10 | 
|  |     Since I work at the DDC I don't really have to do any programing
    whatsoever.  I just wanted to learn a language different from Basic.
    My home micro can run just about any 68000 based language.  Pascal,
    Fourth, Modula2, Fortran, Macro and Basic are the offerings presently.
    It seemed that since Pascal was so popular that Modula2 was the
    appropiate choice. But then again I am a complete novice, (so what
    do I know?) B^)
    
      Mikie?
    
 | 
| 117.5 | What's the Basic for these? | PASTIS::MONAHAN |  | Mon Nov 17 1986 05:01 | 7 | 
|  |     	My Bliss manual does not show a way of generating a SVPCTX
    instruction, and as far as I can remember device driver FDT routines
    normally terminate with a JMP to an address in VMS, so probably
    both of those things should be done in Macro.
    
    	Self modifying code is always fun, and I would hate to try that
    in anything other than Macro....    :-)
 | 
| 117.6 |  | QUARK::LIONEL | Reality is frequently inaccurate | Mon Nov 17 1986 09:57 | 7 | 
|  |     VMS drivers can ONLY be written in MACRO, not BLISS.  (But this
    is a VMS property - on VAXELN, one can write drivers in Ada!)
    
    Of the languages you list, I'd pick Pascal as being the one most
    unlike BASIC that is similar to "real" languages of today.  I like
    FORTRAN too.
    					Steve
 | 
| 117.7 | driver = MACRO + BLISS | CLOUD::SHIRRON | Stephen F. Shirron, 223-3198 | Mon Nov 17 1986 10:48 | 6 | 
|  |     Re .6:  But, drivers can call FDT routines written in BLISS.  So
    while much of the driver must be written in MACRO, lots of the hard
    work can be done in BLISS.
    
    stephen
    (the VS100 driver was written that way)
 | 
| 117.8 | these are a few of my favorite things | TAHOE::HAYNES | Charles Haynes | Mon Nov 17 1986 12:46 | 38 | 
|  |     I *really* don't want to start any wars, but I work for DEC and I write
    all of my code in C and Modula-2, and I don't have much motivation to
    learn MACRO *or* Bliss. (Actually I once knew Macro-11, and I have a
    nodding acquaintance with Bliss.) 
    
    I work in UEG.
    
    Enough on that subject.
    
    If you want to learn a good, fairly "modern" language, that was
    designed to support modular design, information hiding, and other
    such "good" things, then Modula-2 is an obvious choice. Arguing
    about the merits of one language over another usually devolve into
    shouting matches, or religious arguments, or (rarely, when all
    participants are reasonable) an agreement to disagree on matters
    of taste.
    
    Pascal is a reasonable language, but it's lack of an integrated
    "separate compilation" feature makes it difficult to call a "modular"
    language. Granted, many if not most versions of pascal available
    today have some kind of modularity, but I claim (opinion here!)
    that they are not as well integrated as in Modula-2. Since both
    languages were designed by the same person, and Modula-2 was designed
    later, and for systems software, I'd learn it.
    
    [Actually, I'd rather write in Mesa, but that's another story...]
    
    Ada is a fine language, but it suffers from a scarcity of decent
    implementations. My impression is that it is a "large" language,
    unlike Pascal, or Modula-2. If you have Ada available to you, by
    all means learn it, and use it.
    
    After all that, I have to say, if I were out shopping for a language
    translator for my PC today, I'd buy Turbo Pascal. It's fast, it's
    mature, and it's available for a wide variety of machines.
    
    	Hope this helps,
    	-- Charles
 | 
| 117.9 | Pascal is improving | TLE::REAGAN | John R. Reagan | Mon Nov 17 1986 18:50 | 9 | 
|  |     The draft extended Pascal standard has a separate compilation feature
    that look alot like Modula-2 (IMPORT, EXPORT, IMPLEMENTATION, etc...).
    
    I'd rate it more than Modula-2, but less than Ada.
    
    Other features in the new standard may make standard Pascal a usable
    language if it can overcome its reputation.
    
    			-John
 | 
| 117.10 | When will Pascal look like Ada? | TLE::MEIER | Bill Meier | Thu Nov 20 1986 10:09 | 7 | 
|  | < Note 117.9 by TLE::REAGAN "John R. Reagan" >
                            -< Pascal is improving >-
At that rate, sames like Pascal and Ada will almost converge, with the exception
of Ada having overloading and tasking? (what else did I forget ...)
And, of course, ACS. How can you live without a compilation system manager? :-)
 | 
| 117.11 |  | PSW::WINALSKI | Paul S. Winalski | Sun Nov 23 1986 19:39 | 13 | 
|  | RE: 117.7
If the FDT routine does anything non-trivial, it cannot be written in BLISS.
Many of the system interfaces for drivers have ugly calling conventions
such as:  system JUMPs to your code, you RSB back, or vice versa.  BLISS does
not support such calling conventions.
Even if it is possible for particular FDT routines to be written in BLISS,
it is not a good idea because it is totally unsupported.  The only supported
driver interface macros are in MACRO.  If you write a driver in BLISS, you're
on your own.
--PSW
 | 
| 117.12 | Thanx for the comments... | NEXUS::MORGAN | Walk in Balance... | Sun Nov 23 1986 22:58 | 4 | 
|  |     Thanx for all the comments folks.  I'll probably wind up with Modula2
    or Pascal.
    
      Mikie?
 | 
| 117.13 | Driver in BLISS is possible | MARVIN::WARWICK | Oh No - it's the Pathetic Sharks !!! | Thu Jan 15 1987 08:45 | 6 | 
|  |     
    	Just out of interest, it is possible to write a driver in BLISS
    (well, only using about a page of MACRO). Indeed, I know of drivers
    for three forthcoming devices, which are written in BLISS.
    
    Trev
 | 
| 117.14 |  | QUARK::LIONEL | Three rights make a left | Thu Jan 15 1987 09:48 | 5 | 
|  |     Re: .13
    
    If you need MACRO at all, then clearly the whole thing isn't in
    BLISS.  That a lot of the driver can be in BLISS is good, though.
    					Steve
 | 
| 117.15 |  | NOGOV::HAXBY | John Haxby -- Definitively Wrong | Thu Jan 15 1987 10:12 | 6 | 
|  |     All the drivers in Ultrix/Unix are written in C.  The drivers for
    the Cambridge something-i-forget-the-name-of-it'll-come-to-me-in-a-minute
    are written in Algol 68 aprt from stubs to get some registers into
    veriables.
    
    								jch
 | 
| 117.16 | Well, mostly in Bliss | HOMBRE::CONLIFFE | Store in a horizontal position | Fri Jan 16 1987 16:13 | 13 | 
|  | |    	Just out of interest, it is possible to write a driver in BLISS
|    (well, only using about a page of MACRO).     
    
A few years ago (VMS V2.n, V3.0 days), a couple of demented software people
and I hacked together a LPDRIVER which was "mostly" in BLISS. We used MACRO
to define the data structures (DPT_STORE, DDBTAB, FUNCTAB) to avoid a major
recoding effort, and I think that was all.  I've got the source somehere on
the 31 magtapes in my office and at home; if there's any interest, I'll see
if I can dig it out.
			Nigel
 | 
| 117.17 |  | DSSDEV::JACK | Marty Jack | Sun Jun 14 1987 23:02 | 20 | 
|  |     To my mind, the four most important reasons why BLISS isn't very
    suitable for writing drivers are:
    
	You can't generate the driver prologue.
    
    	You can't have anything extra on the stack when you call a resource
    	allocating procedure (e.g., REQMPR).  The stack contains only the
    	second return PC.
    
    	You can't control the instructions that are used to access the
    	I/O page.
    
    	The interrupt service routine has to do odd stack manipulations at
    	the beginning and end with REI.
    
    In a driver for a complex device, there may be algorithms of
    significant complexity that need to be executed without interacting
    with the system-provided I/O framework, so it may make some sense
    to consider BLISS for these pieces, but I wouldn't go to the trouble
    unless they were big pieces.
 |