|  |     Hi,                                                     
    
    The customer (same one!) wants to know...
    
    I looked at the C example in SYS$EXAMPLES.  The comments in 
    that example state that a 3 512-byte block is used to guarantee 
    space for an aligned 2 512-byte block which is made into a 
    buffer object.   Is this the way one *should* do it? Give it 
    one more and let the services do the alignment?  Or should we 
    ensure that the pages are aligned properly for Alpha systems?  
    Is either way acceptable/recommended? 
    
    He is finding that a call to $CREATE_BUFOBJ with inadr=00021400 
    returns retadr=00020000).  The return address in the above is 
    aligned on an Alpha page boundary, but isn't the same address 
    as "inadr" -- though both address values are aligned on a 512-byte 
    boundary.  Is this expected behavior?
    
    Lastly, in .1:
    
    >>The calling standard makes this "high level" vs "low level" language
    >>discussion something best left up to the user to decide.  As a general
    >>preference, I tend to use higher-level languages in preference to Macro.
    >>(The OpenVMS documentation also "encourages" the programmer to use
    >>something other than Macro32.)
    
    Can you give me a pointer to the reference?
    
    Thanks,
    
    Elin
 | 
|  |     Re: .3
    
    The doc. for $CREATE_BUFOBJ_64 says that start_va will be rounded _down_
    to a CPU-specific page boundary (this is presently an 8K page on Alpha)
    
.3>    Can you give me a pointer to the reference?
    
    See, for example, Chapter 1 of "Migrating to an OpenVMS AXP System:
    Porting VAX MACRO Code" manual in the OpenVMS Programmer's Shelf.
    
    John.
 |