OpenVMS Frequently Asked Questions (FAQ), Part 1/11 - DEC

This is a discussion on OpenVMS Frequently Asked Questions (FAQ), Part 1/11 - DEC ; Archive-name: dec-faq/vms/part1 Posting-Frequency: quarterly Last-modified: 11 Apr 2005 Version: VMSFAQ_20050411-01.TXT The OpenVMS Frequently Asked Questions (FAQ) ABSTRACT This document contains answers to many common questions on the OpenVMS operating system, and covers OpenVMS, and OpenVMS running on Itanium, Alpha, and ...

+ Reply to Thread
Results 1 to 10 of 10

Thread: OpenVMS Frequently Asked Questions (FAQ), Part 1/11

  1. OpenVMS Frequently Asked Questions (FAQ), Part 1/11


    Archive-name: dec-faq/vms/part1
    Posting-Frequency: quarterly
    Last-modified: 11 Apr 2005
    Version: VMSFAQ_20050411-01.TXT



    The OpenVMS Frequently Asked Questions (FAQ)




    ABSTRACT

    This document contains answers to many common questions
    on the OpenVMS operating system, and covers OpenVMS,
    and OpenVMS running on Itanium, Alpha, and VAX
    hardware.

    This document is available in various formats, and
    the text-format version of this FAQ is generally the
    easiest format to search.




    Revision/Update Information OpenVMS V8.2

    Revision/Update Information: Revision Date/April 2005











    FAQ
















    __________________________________________________ ______________

    Contents

    __________________________________________________ ________
    PREFACE i

    __________________________________________________ ________
    OPENVMS FREQUENTLY ASKED QUESTIONS (FAQ) iii

    __________________________________________________ ______________
    CHAPTER 1 INTRODUCTION 1-1

    __________________________________________________ ________
    1.1 WHAT CORE OPENVMS URLS DO YOU NEED TO KNOW? 1-1

    __________________________________________________ ________
    1.2 WHAT ARE THE OPENVMS USENET NEWSGROUPS? 1-2
    1.2.1 What is the scope of the comp.os.vms
    newsgroup? 1-2
    1.2.2 What newsgroups carry VMS-related
    information? 1-2
    1.2.3 What newsgroup archives are available? 1-3
    1.2.4 What is the INFO-VAX mailing list? 1-3
    1.2.4.1 How do I subscribe to or unsubscribe from
    INFO-VAX?, 1-3

    __________________________________________________ ________
    1.3 WHAT IS [N]ETIQUETTE? 1-5

    __________________________________________________ ________
    1.4 WHAT OPENVMS USER GROUP(S) ARE AVAILABLE? 1-8

    __________________________________________________ ________
    1.5 OPENVMS SUPPORT, QUESTIONS AND COMMENTS? 1-9
    1.5.1 Corporate contacts for OpenVMS Business
    Issues? 1-9
    1.5.2 OpenVMS Ambassadors? 1-10
    1.5.3 Contact for OpenVMS Marketing Issues and
    Questions? 1-10
    1.5.4 Contact URLs for OpenVMS Technical
    Issues? 1-10



    iii







    Contents




    __________________________________________________ ______________
    CHAPTER 2 GENERAL INFORMATION 2-1

    __________________________________________________ ________
    2.1 WHAT IS OPENVMS? WHAT IS ITS HISTORY? 2-1

    __________________________________________________ ________
    2.2 WHAT IS THE DIFFERENCE BETWEEN VMS AND
    OPENVMS? 2-3

    __________________________________________________ ________
    2.3 WHAT'S IN A NAME? TERMINOLOGY AND PRODUCTS? 2-3
    2.3.1 How do I port from VMS to OpenVMS? 2-4

    __________________________________________________ ________
    2.4 WHICH IS BETTER, OPENVMS OR UNIX? 2-4

    __________________________________________________ ________
    2.5 IS HP CONTINUING FUNDING AND SUPPORT FOR
    OPENVMS? 2-5

    __________________________________________________ ________
    2.6 WHAT OPENVMS DISTRIBUTION KITS ARE AVAILABLE? 2-5
    2.6.1 Where can I download OpenVMS and Layered
    Product Kits? 2-8

    __________________________________________________ ________
    2.7 IN WHAT LANGUAGE IS OPENVMS WRITTEN? 2-8

    __________________________________________________ ________
    2.8 OBTAINING AND TRANSFERING OPENVMS LICENSES? 2-9
    2.8.1 Questions asked by Hobbyist OpenVMS
    licensees? 2-9
    2.8.2 OpenVMS Educational and CSLG licenses? 2-10
    2.8.3 What developer and partner licensing
    programs are available? 2-10
    2.8.4 How do I obtain or transfer an OpenVMS
    license? 2-11

    __________________________________________________ ________
    2.9 DOES OPENVMS SUPPORT THE EURO CURRENCY
    SYMBOL? 2-11

    __________________________________________________ ________
    2.10 OPENVMS PORTS? ITANIUM? PORTS TO IA-32, EM64T OR
    AMD64 SYSTEMS? 2-11

    iv







    Contents




    __________________________________________________ ________
    2.11 ARE THERE ANY NETWORK-ACCESSIBLE OPENVMS
    SYSTEMS? 2-15

    __________________________________________________ ________
    2.12 WHAT VERSION OF OPENVMS DO I NEED? 2-16

    __________________________________________________ ________
    2.13 HOW CAN I SUBMIT OPENVMS FREEWARE? 2-18

    __________________________________________________ ________
    2.14 PORTING APPLICATIONS TO OPENVMS? 2-18

    __________________________________________________ ________
    2.15 WHAT RESOURCES ARE AVAILABLE TO OPENVMS SOFTWARE
    DEVELOPERS? 2-19

    __________________________________________________ ________
    2.16 MEMORY MANAGEMENT, RESOURCE MANAGEMENT, PROCESS
    SCHEDULING, ETC? 2-20

    __________________________________________________ ________
    2.17 BASIC UNITS OF MEASUREMENT? 2-21
    2.17.1 How many bytes are in a disk block? 2-22
    2.17.2 How many bytes are in a memory page? 2-23
    2.17.3 How do I convert? Disk Blocks? KB, MB,
    GB, TB? 2-24

    __________________________________________________ ______________
    CHAPTER 3 DOCUMENTATION 3-1

    __________________________________________________ ________
    3.1 WHERE CAN I FIND ONLINE COPIES OF OPENVMS
    MANUALS? 3-1

    __________________________________________________ ________
    3.2 WHAT ONLINE INFORMATION AND WEBSITES ARE
    AVAILABLE? 3-2

    __________________________________________________ ________
    3.3 HOW DO I EXTRACT THE CONTENTS OF A HELP TOPIC TO A
    TEXT FILE? 3-5

    __________________________________________________ ________
    3.4 DOES OPENVMS MARKETING HAVE AN E-MAIL
    ADDRESS? 3-5

    v







    Contents




    __________________________________________________ ________
    3.5 WHERE CAN I LEARN ABOUT OPENVMS EXECUTIVE
    INTERNALS? 3-5

    __________________________________________________ ________
    3.6 WHERE CAN NEW USERS FIND TUTORIAL INFORMATION ABOUT
    OPENVMS? 3-6
    3.6.1 Tutorial Websites? 3-6
    3.6.2 Books and Tutorials? 3-8

    __________________________________________________ ________
    3.7 WHAT OPENVMS MAILING LISTS ARE AVAILABLE? 3-9

    __________________________________________________ ________
    3.8 WHAT IS THIS ASK THE WIZARD WEBSITE I'VE HEARD
    ABOUT? 3-11

    __________________________________________________ ________
    3.9 WHERE CAN I FIND THE LATEST C RUN-TIME LIBRARY
    MANUALS? 3-12

    __________________________________________________ ______________
    CHAPTER 4 TIME AND TIMEKEEPING 4-1

    __________________________________________________ ________
    4.1 A BRIEF HISTORY OF OPENVMS TIMEKEEPING,
    PLEASE? 4-1
    4.1.1 Details of the OpenVMS system
    time-keeping? 4-2
    4.1.1.1 VAX hardware time-keeping details..., 4-3
    4.1.1.1.1 TOY clock, 4-3
    4.1.1.1.2 EXE$GQ_SYSTIME, 4-3
    4.1.1.1.3 EXE$GQ_TODCBASE, 4-3
    4.1.1.1.4 EXE$GL_TODR, 4-4
    4.1.1.2 Alpha hardware time-keeping details..., 4-5
    4.1.1.2.1 Battery-Backed Watch (BB_WATCH) Chip, 4-5
    4.1.1.2.2 EXE$GQ_SYSTIME, 4-6
    4.1.1.2.3 EXE$GQ_SAVED_HWCLOCK, 4-6
    4.1.1.3 Why does VAX need a SET TIME at least once a
    year?, 4-7
    4.1.2 How does OpenVMS VAX maintain system
    time? 4-7


    vi







    Contents




    __________________________________________________ ________
    4.2 KEEPING THE OPENVMS SYSTEM TIME SYNCHRONIZED? 4-9
    4.2.1 Why do my cluster batch jobs start
    early? 4-10
    4.2.2 Why does my OpenVMS system time drift? 4-11
    4.2.3 Resetting the system time into the
    past? 4-12
    4.2.4 How can I drift the OpenVMS system
    time? 4-12
    4.2.5 How can I configure TCP/IP Services NTP
    as a time provider? 4-13

    __________________________________________________ ________
    4.3 MANAGING TIMEZONES, TIMEKEEPING, UTC, AND DAYLIGHT
    SAVINGS? 4-15
    4.3.1 Creating and Managing Timezone
    Definitions? 4-17
    4.3.2 Timezones and Time-related Logical
    Names? 4-18
    4.3.3 How to troubleshoot TDF problems on
    OpenVMS? 4-20
    4.3.4 Customizing your TDF (Timezone)
    Setting? 4-21

    __________________________________________________ ________
    4.4 WHY DOES THE SET TIME COMMAND FAIL? HELP MANAGING
    DTSS? 4-22

    __________________________________________________ ________
    4.5 SETTING TIME ON ALPHASERVER ES47, ES80, GS1280
    CONSOLE? 4-24

    __________________________________________________ ________
    4.6 UTC VS GMT VS VS UT1/UT1/UT2 TDF? WHAT ARE THESE
    ACRONYMS? 4-26

    __________________________________________________ ______________
    CHAPTER 5 SYSTEM MANAGEMENT INFORMATION 5-1

    __________________________________________________ ________
    5.1 WHAT IS AN INSTALLED IMAGE? 5-1

    __________________________________________________ ________
    5.2 ARE THERE ANY KNOWN VIRUSES FOR OPENVMS? 5-2

    vii







    Contents




    __________________________________________________ ________
    5.3 SOURCES OF OPENVMS SECURITY INFORMATION? 5-4

    __________________________________________________ ________
    5.4 HOW DO I MOUNT AN ISO-9660 CD ON OPENVMS? 5-4

    __________________________________________________ ________
    5.5 HOW DO I EXTRACT THE CONTENTS OF A PCSI KIT? 5-6

    __________________________________________________ ________
    5.6 EMERGENCY (CONVERSATIONAL) SYSTEM STARTUP? 5-7
    5.6.1 I've forgotten the SYSTEM password - what
    can I do? 5-11
    5.6.2 My product licenses have expired - what
    can I do? 5-11

    __________________________________________________ ________
    5.7 HOW DO I CHANGE THE NODE NAME OF AN OPENVMS
    SYSTEM? 5-12

    __________________________________________________ ________
    5.8 WHY DOESN'T OPENVMS SEE THE NEW MEMORY I JUST
    ADDED? 5-14

    __________________________________________________ ________
    5.9 HOW DO I CHANGE THE TEXT IN A USER'S UIC
    IDENTIFIER? 5-15

    __________________________________________________ ________
    5.10 WHAT ARE THE OPENVMS VERSION UPGRADE PATHS? 5-16
    5.10.1 OpenVMS Alpha Upgrade (or Update) Paths 5-16
    5.10.2 OpenVMS I64 Upgrade Paths 5-19
    5.10.3 OpenVMS VAX Release Upgrade Paths 5-19
    5.10.4 OpenVMS Cluster Rolling Upgrade Paths 5-20
    5.10.5 OpenVMS Product Version and Support
    Information 5-21
    5.10.6 OpenVMS Alpha and I64 Upgrade
    Terminology 5-22

    __________________________________________________ ________
    5.11 WHY DO I HAVE A NEGATIVE NUMBER IN THE PAGEFILE
    RESERVABLE PAGES? 5-23

    __________________________________________________ ________
    5.12 DO I HAVE TO UPDATE LAYERED PRODUCTS WHEN UPDATING
    OPENVMS? 5-24

    viii







    Contents




    __________________________________________________ ________
    5.13 HOW DO I CHANGE THE VOLUME LABEL OF A DISK? 5-25

    __________________________________________________ ________
    5.14 HOW CAN I SET UP A SHARED DIRECTORY? 5-26

    __________________________________________________ ________
    5.15 WHY DO I GET EXTRA BLANK PAGES ON MY HP
    PRINTER? 5-27

    __________________________________________________ ________
    5.16 DRIVERS AND CONFIGURATION OF NEW GRAPHICS
    CONTROLLERS? 5-28
    5.16.1 The ELSA GLoria Synergy 5-28
    5.16.2 PowerStorm 300, PowerStorm 350 5-29
    5.16.3 PowerStorm 3D30, PowerStorm 4D20 5-29
    5.16.4 Radeon 7500 5-30

    __________________________________________________ ________
    5.17 HOW CAN I ACQUIRE OPENVMS PATCHES, FIXES, AND
    ECOS? 5-30

    __________________________________________________ ________
    5.18 HOW DO I MOVE THE QUEUE MANAGER DATABASE? 5-31

    __________________________________________________ ________
    5.19 HOW DO I DELETE AN UNDELETABLE/UNSTOPPABLE (RWAST)
    PROCESS? 5-32

    __________________________________________________ ________
    5.20 HOW DO I RESET THE ERROR COUNT(S)? 5-33

    __________________________________________________ ________
    5.21 HOW DO I FIND OUT IF THE TAPE DRIVE SUPPORTS
    COMPRESSION? 5-35

    __________________________________________________ ________
    5.22 CAN I COPY SYSUAF TO ANOTHER VERSION? TO VAX? TO
    ALPHA? 5-35

    __________________________________________________ ________
    5.23 HOW DO I DELETE (TIMEOUT) IDLE PROCESSES? 5-38

    __________________________________________________ ________
    5.24 DO I NEED A PAK FOR THE DECEVENT (HP ANALYZE)
    TOOL? 5-38

    ix







    Contents




    __________________________________________________ ________
    5.25 INITIALIZE ACCVIO AND ANSI TAPE LABEL
    SUPPORT? 5-39

    __________________________________________________ ________
    5.26 HOW DO I RECOVER FROM INSVIRMEM ERRORS? 5-39

    __________________________________________________ ________
    5.27 HOW CAN I PREVENT A SERIAL TERMINAL LINE FROM
    INITIATING A LOGIN? 5-40

    __________________________________________________ ________
    5.28 HOW DOES PCSI USE THE IMAGE BUILD_IDENT
    FIELD? 5-40

    __________________________________________________ ________
    5.29 HOW CAN I TELL WHAT SOFTWARE (AND VERSION) IS
    INSTALLED? 5-42

    __________________________________________________ ________
    5.30 WHAT FILE CHECKSUM TOOLS ARE AVAILABLE FOR
    OPENVMS? 5-43

    __________________________________________________ ________
    5.31 WHAT (AND WHERE) IS THE OPENVMS MANAGEMENT
    STATION? 5-43

    __________________________________________________ ________
    5.32 HOW TO DETERMINE CURRENT DISK FRAGMENTATION
    LEVEL? 5-43

    __________________________________________________ ________
    5.33 SYSBOOT-I-FILENOTLOC, UNABLE TO LOCATE
    SYS$CPU_ROUTINES? 5-44

    __________________________________________________ ________
    5.34 HOW CAN I CUSTOMIZE THE DCPS DEVICE CONTROL FOR A
    NEW PRINTER? 5-45

    __________________________________________________ ________
    5.35 WHY DO $GETDEV MOUNTCNT AND SHOW DEVICE MOUNT COUNTS
    DIFFER? 5-46

    __________________________________________________ ________
    5.36 WHAT SOFTWARE IS NEEDED FOR POSTSCRIPT
    PRINTERS? 5-46

    x







    Contents




    __________________________________________________ ________
    5.37 HOW DO I REMOVE A PCSI-INSTALLED PATCH (ECO)
    KIT? 5-46

    __________________________________________________ ________
    5.38 SYSINIT-E, ERROR MOUNTING SYSTEM DEVICE,
    STATUS=0072832C 5-47

    __________________________________________________ ________
    5.39 RESOLVING LICENSE PAK PROBLEMS? 5-47

    __________________________________________________ ________
    5.40 CHANGING THE OPENVMS VERSION NUMBER? 5-49

    __________________________________________________ ________
    5.41 HOW TO PREVENT USERS FROM CHOOSING OBVIOUS
    PASSWORDS? 5-50

    __________________________________________________ ________
    5.42 PLEASE HELP ME WITH THE OPENVMS BACKUP
    UTILITY? 5-52
    5.42.1 Why isn't BACKUP/SINCE=BACKUP working? 5-52
    5.42.1.1 Why has OpenVMS gone through the agony of
    this change?, 5-52
    5.42.1.2 Can you get the old BACKUP behaviour
    back?, 5-52
    5.42.2 What can I do to improve BACKUP
    performance? 5-53
    5.42.3 Why is BACKUP not working as expected? 5-53
    5.42.4 How do I fix a corrupt BACKUP saveset? 5-55
    5.42.5 How do I write a BACKUP saveset to a
    remote tape? 5-56
    5.42.6 How to perform a DoD security disk
    erasure? 5-57
    5.42.7 How to enable telnet virtual terminals? 5-59
    5.42.7.1 Volume Shadowing MiniCopy vs MiniMerge?, 5-59
    5.42.7.1.1 Mini-Copy?, 5-60
    5.42.7.1.2 Mini-Merge?, 5-61

    __________________________________________________ ________
    5.43 PLEASE EXPLAIN DELETE/ERASE AND FILE LOCKS? 5-61

    __________________________________________________ ________
    5.44 MANAGING FILE VERSIONS? 5-62

    xi







    Contents




    __________________________________________________ ______________
    CHAPTER 6 INFORMATION ON MAIL 6-1

    __________________________________________________ ________
    6.1 MAIL KEEPS SAYING I HAVE NEW MESSAGES, BUT I DON'T.
    WHAT DO I DO? 6-1

    __________________________________________________ ________
    6.2 HOW DO I SEND OR READ ATTACHMENTS IN VMS
    MAIL? 6-1

    __________________________________________________ ________
    6.3 HOW CAN I BLOCK SMTP MAIL RELAY SPAM? 6-3

    __________________________________________________ ______________
    CHAPTER 7 INFORMATION ON UTILITIES 7-1

    __________________________________________________ ________
    7.1 HOW DO I PLAY AN AUDIO CD ON MY WORKSTATION? 7-1

    __________________________________________________ ________
    7.2 HOW DO I ACCESS A MICROSOFT WINDOWS FLOPPY DISK FROM
    OPENVMS? 7-2

    __________________________________________________ ________
    7.3 HOW DO I PLAY SOUND FILES ON AN ALPHASTATION?
    DECSOUND DOESN'T WORK. 7-3

    __________________________________________________ ________
    7.4 HOW DO I READ IBM EBCDIC TAPES ON OPENVMS? 7-3

    __________________________________________________ ________
    7.5 HOW CAN I PATCH AN OPENVMS ALPHA IMAGE? 7-4

    __________________________________________________ ______________
    CHAPTER 8 DCL DETAILS 8-1

    __________________________________________________ ________
    8.1 DCL SYMBOLS AND OPENVMS LOGICAL NAMES? 8-1

    __________________________________________________ ________
    8.2 HOW DO I RUN A PROGRAM WITH ARGUMENTS? 8-3

    __________________________________________________ ________
    8.3 HOW CAN I CLEAR THE SCREEN IN DCL? 8-5

    xii







    Contents




    __________________________________________________ ________
    8.4 USING REPLY/LOG FROM DCL? DISABLING CONSOLE
    OPCOMS? 8-5

    __________________________________________________ ________
    8.5 HOW DO I GENERATE A RANDOM NUMBER IN DCL? 8-6

    __________________________________________________ ________
    8.6 WHAT DOES THE MCR COMMAND DO? 8-7

    __________________________________________________ ________
    8.7 HOW DO I CHANGE THE OPENVMS SYSTEM PROMPT? 8-7

    __________________________________________________ ________
    8.8 CAN I DO DECNET TASK-TO-TASK COMMUNICATION WITH
    DCL? 8-8

    __________________________________________________ ________
    8.9 HOW CAN I GET THE WIDTH SETTING OF A
    TERMINAL? 8-9

    __________________________________________________ ________
    8.10 WHY DOESN'T DCL SYMBOL SUBSTITUTION WORK? 8-9

    __________________________________________________ ________
    8.11 HOW CAN I SUBSTITUTE SYMBOLS IN A PIPE? 8-10

    __________________________________________________ ________
    8.12 USE OF RUN/DETACH, LOGINOUT, AND LOGICAL
    NAMES? 8-10

    __________________________________________________ ________
    8.13 HOW TO USE ESCAPE AND CONTROL CHARACTERS IN
    DCL? 8-11

    __________________________________________________ ______________
    CHAPTER 9 FILES 9-1

    __________________________________________________ ________
    9.1 HOW CAN I UNDELETE A FILE? 9-1

    __________________________________________________ ________
    9.2 WHY DOES SHOW QUOTA GIVE A DIFFERENT ANSWER THAN
    DIR/SIZE? 9-1

    __________________________________________________ ________
    9.3 HOW DO I MAKE SURE THAT MY DATA IS SAFELY WRITTEN TO
    DISK? 9-2

    xiii







    Contents




    __________________________________________________ ________
    9.4 WHAT ARE THE LIMITS ON FILE SPECIFICATIONS AND
    DIRECTORIES? 9-3

    __________________________________________________ ________
    9.5 WHAT IS THE LARGEST DISK VOLUME SIZE OPENVMS CAN
    ACCESS? 9-4

    __________________________________________________ ________
    9.6 WHAT IS THE MAXIMUM FILE SIZE, AND THE RMS RECORD
    SIZE LIMIT? 9-7

    __________________________________________________ ________
    9.7 HOW DO I WRITE CD-RECORDABLE OR DVD MEDIA ON
    OPENVMS? 9-7
    9.7.1 CD and DVD notation, terminology? 9-10
    9.7.2 Use of RRD42 and other older
    (embossed-media) CD drives? 9-12
    9.7.3 Creating Bootable OpenVMS I64 CD or DVD
    Media? SYS$SETBOOT? 9-13

    __________________________________________________ ________
    9.8 WHAT I/O TRANSFER SIZE LIMITS EXIST IN
    OPENVMS? 9-14

    __________________________________________________ ________
    9.9 CAN I USE ODBC TO CONNECT TO OPENVMS DATABASE
    FILES? 9-14

    __________________________________________________ ________
    9.10 IF MY DISKS ARE SHOWN AS VIOC COMPATIBLE, AM I USING
    XFC? 9-15

    __________________________________________________ ________
    9.11 RMS SEQUENTIAL FILES AND PLATFORM
    PORTABILITY? 9-15

    __________________________________________________ ______________
    CHAPTER 10 OPENVMS PROGRAMMING INFORMATION 10-1

    __________________________________________________ ________
    10.1 MODULAR PROGRAMMING, FACILITY PREFIXES AND SYMBOL
    NAMING? 10-1

    xiv







    Contents




    __________________________________________________ ________
    10.2 CAN I HAVE A SOURCE CODE EXAMPLE OF
    CALLING...? 10-2

    __________________________________________________ ________
    10.3 HOW DO I GET THE ARGUMENTS FROM THE COMMAND
    LINE? 10-4

    __________________________________________________ ________
    10.4 HOW DO I GET A FORMATTED ERROR MESSAGE IN A
    VARIABLE? 10-5

    __________________________________________________ ________
    10.5 HOW DO I LINK AGAINST SYS$SYSTEM:SYS.STB ON AN ALPHA
    SYSTEM? 10-5

    __________________________________________________ ________
    10.6 HOW DO I DO A SET DEFAULT FROM INSIDE A
    PROGRAM? 10-5

    __________________________________________________ ________
    10.7 HOW DO I TURN MY FORTRAN COMMON INTO A SHAREABLE
    IMAGE ON ALPHA? 10-5

    __________________________________________________ ________
    10.8 HOW DO I CONVERT BETWEEN IEEE AND VAX FLOATING
    DATA? 10-6

    __________________________________________________ ________
    10.9 HOW DO I GET THE ARGUMENT COUNT IN A FORTRAN
    ROUTINE? 10-7

    __________________________________________________ ________
    10.10 HOW DO I GET A UNIQUE SYSTEM ID FOR LICENSING
    PURPOSES? 10-7

    __________________________________________________ ________
    10.11 WHAT IS AN EXECUTABLE, SHAREABLE, SYSTEM OR UWSS
    IMAGE? 10-8

    __________________________________________________ ________
    10.12 HOW DO I DO A FILE COPY FROM A PROGRAM? 10-9

    __________________________________________________ ________
    10.13 WHAT IS A DESCRIPTOR? 10-10

    xv







    Contents




    __________________________________________________ ________
    10.14 HOW DO I CREATE A PROCESS UNDER ANOTHER
    USERNAME? 10-12

    __________________________________________________ ________
    10.15 WHY DO LIB$SPAWN, LIB$SET_SYMBOL FAIL IN DETACHED
    PROCESSES? 10-13

    __________________________________________________ ________
    10.16 WHERE CAN I OBTAIN BLISS, AND THE LIBRARIES AND
    SUPPORTING FILES? 10-14

    __________________________________________________ ________
    10.17 HOW CAN I OPEN A FILE FOR SHARED ACCESS? 10-15

    __________________________________________________ ________
    10.18 HOW CAN I HAVE COMMON SOURCES FOR MESSAGES,
    CONSTANTS? 10-16

    __________________________________________________ ________
    10.19 HOW DO I ACTIVATE THE OPENVMS DEBUGGER FROM AN
    APPLICATION? 10-16

    __________________________________________________ ________
    10.20 DEALING WITH ENDIAN-NESS? 10-17

    __________________________________________________ ________
    10.21 HOW TO RESOLVE LINK-I-DATMISCH ERRORS? 10-17

    __________________________________________________ ________
    10.22 HP C AND OTHER OPENVMS C PROGRAMMING
    CONSIDERATIONS? 10-18
    10.22.1 Other common C issues 10-21
    10.22.2 Other common C++ issues 10-23

    __________________________________________________ ________
    10.23 STATUS OF PROGRAMMING TOOLS ON OPENVMS VAX? 10-25

    __________________________________________________ ________
    10.24 CHOOSING A VERSION NUMBER FOR APPLICATION
    CODE? 10-26

    __________________________________________________ ________
    10.25 SELECTING A PROCESS DUMP DIRECTORY? 10-27

    __________________________________________________ ________
    10.26 ACCESS TO ITANIUM ASSEMBLER? 10-28

    xvi







    Contents




    __________________________________________________ ______________
    CHAPTER 11 DECWINDOWS 11-1

    __________________________________________________ ________
    11.1 HOW DO I LET SOMEONE ELSE DISPLAY SOMETHING ON MY
    WORKSTATION? 11-1

    __________________________________________________ ________
    11.2 HOW DO I CREATE A DISPLAY ON ANOTHER
    WORKSTATION? 11-3

    __________________________________________________ ________
    11.3 HOW CAN I GET THE INFORMATION FROM SHOW DISPLAY INTO
    A SYMBOL? 11-3

    __________________________________________________ ________
    11.4 HOW DO I GET A LOG OF A DECTERM SESSION? 11-4

    __________________________________________________ ________
    11.5 WHY IS DECWINDOWS MOTIF NOT STARTING? 11-4

    __________________________________________________ ________
    11.6 HOW DO I SET THE TITLE ON A DECTERM WINDOW? 11-6

    __________________________________________________ ________
    11.7 HOW DO I CUSTOMIZE DECWINDOWS, INCLUDING THE LOGIN
    SCREEN? 11-7
    11.7.1 How do I customize DECwindows
    keymapping? 11-10
    11.7.2 Why does the DELETE key delete forward
    instead of backward? 11-10

    __________________________________________________ ________
    11.8 WHY DOESN'T XTAPPADDINPUT() WORK ON OPENVMS? 11-12

    __________________________________________________ ________
    11.9 WHY DO THE KEYBOARD ARROW KEYS MOVE THE DECWINDOWS
    CURSOR? 11-13

    __________________________________________________ ________
    11.10 WHY DOES HALF MY DECWINDOWS DISPLAY BLANK? 11-13

    __________________________________________________ ________
    11.11 %DECW-W-NODEVICE, NO GRAPHICS DEVICE FOUND ON THIS
    SYSTEM? 11-14

    xvii







    Contents




    __________________________________________________ ________
    11.12 HOW CAN I RESET THE WARNING BELL VOLUME? 11-16

    __________________________________________________ ________
    11.13 HOW CAN I ALTER THE DECWINDOWS CDE BACKDROP? 11-17

    __________________________________________________ ________
    11.14 HOW CAN I ENABLE THE DECWINDOWS TCP/IP
    TRANSPORT 11-17

    __________________________________________________ ________
    11.15 CAN I USE DECWINDOWS 1.2-* ON OPENVMS V7.3-2 OR
    LATER? 11-17

    __________________________________________________ ________
    11.16 HOW TO ADD FONTS INTO DECWINDOWS? 11-18

    __________________________________________________ ______________
    CHAPTER 12 MISCELLANEOUS INFORMATION 12-1

    __________________________________________________ ________
    12.1 WHERE CAN I FIND INFORMATION ON ESCAPE AND CONTROL
    SEQUENCES? 12-1

    __________________________________________________ ________
    12.2 DOES DECPRINT (DCPS) WORK WITH THE LRA0 PARALLEL
    PORT? 12-3

    __________________________________________________ ________
    12.3 HOW DO I CHECK FOR FREE SPACE ON A (BACKUP)
    TAPE? 12-3

    __________________________________________________ ________
    12.4 CORRECTLY USING LICENSE PAKS AND LMF? 12-4

    __________________________________________________ ______________
    CHAPTER 13 FINDING AND USING SOFTWARE 13-1

    __________________________________________________ ________
    13.1 WHERE CAN I FIND FREEWARE/SHAREWARE/SOFTWARE FOR
    OPENVMS? 13-1



    xviii







    Contents




    __________________________________________________ ________
    13.2 WHERE CAN I FIND UNIX TOOLS FOR OPENVMS? 13-15
    13.2.1 C system and library routines 13-15
    13.2.2 X Windows utilities and routines 13-15
    13.2.3 TCP/IP Tools and Utilities for OpenVMS? 13-16
    13.2.4 The vi text editor 13-16
    13.2.5 The Emacs Text Editor 13-16
    13.2.6 Various GNU tools 13-17
    13.2.6.1 GCC compiler, 13-17

    __________________________________________________ ________
    13.3 WHAT IS THE STATUS OF PL/I ON OPENVMS? 13-18

    __________________________________________________ ________
    13.4 WHERE CAN I GET THE MOZILLA WEB BROWSER? 13-18

    __________________________________________________ ________
    13.5 WHERE CAN I GET JAVA FOR OPENVMS? 13-19

    __________________________________________________ ________
    13.6 OBTAINING USER INPUT IN DCL CGI SCRIPT? 13-20

    __________________________________________________ ________
    13.7 HOW CAN A BATCH JOB GET ITS OWN BATCH ENTRY
    NUMBER? 13-21

    __________________________________________________ ________
    13.8 HOW DO I CONVERT TO NEW CMS OR DTM LIBRARIES? 13-21

    __________________________________________________ ________
    13.9 WHERE CAN I GET PERL FOR OPENVMS? 13-22

    __________________________________________________ ________
    13.10 OBTAINING THE DECMIGRATE (AEST OR VEST, AND TIE)
    TRANSLATOR? 13-24

    __________________________________________________ ________
    13.11 WHERE CAN I GET ZIP, UNZIP, SELF-EXTRACTING ZIP,
    ETC? 13-25

    __________________________________________________ ________
    13.12 ARE VAX HARDWARE EMULATORS AVAILABLE? 13-26


    xix







    Contents




    __________________________________________________ ______________
    CHAPTER 14 HARDWARE INFORMATION 14-1

    __________________________________________________ ________
    14.1 WHAT ARE THE OPENVMS DIFFERENCES AMONG VAX, ALPHA,
    AND IA-64? 14-1

    __________________________________________________ ________
    14.2 SEEKING PERFORMANCE INFORMATION FOR ALPHA (AND VAX)
    SYSTEMS? 14-3

    __________________________________________________ ________
    14.3 CONSOLE COMMANDS, SERIAL LINES, AND CONTROLS? 14-3
    14.3.1 What commands are available in the Alpha
    SRM console? 14-4
    14.3.2 What does SRM mean? What is PALcode? 14-4
    14.3.3 Alpha COM ports and VAX console serial
    line information? 14-5
    14.3.3.1 Which terminal device name is assigned to the
    COM ports?, 14-5
    14.3.3.2 Which serial port is the console on the
    MicroVAX 3100?, 14-5
    14.3.3.3 How can I set up an alternate console on a
    VAXstation?, 14-6
    14.3.3.4 Please explain the back panel of the MicroVAX
    II, 14-6
    14.3.4 What are Alpha console environment
    variables? 14-8
    14.3.5 What are the boot control flag values? 14-9
    14.3.5.1 What are the I64 IPB boot flag values?, 14-9
    14.3.5.2 What are the Alpha APB boot flag
    values?, 14-10
    14.3.5.3 What are the VAX VMB boot flag values?, 14-12
    14.3.6 How do I boot an AlphaStation without
    monitor or keyboard? 14-15
    14.3.7 Downloading and using SRM console
    Firmware? 14-16
    14.3.7.1 Where can I get updated console firmware for
    Alpha systems?, 14-16
    14.3.7.2 How do I reload SRM firmware on a half-flash
    Alpha system?, 14-17
    14.3.7.3 How do I switch between AlphaBIOS/ARC and SRM
    consoles?, 14-18
    14.3.8 Console Management Options 14-21

    xx







    Contents




    14.3.9 Why do my EFI Boot Aliases Fail? 14-22
    14.3.10 Can OpenVMS access the EFI console Boot
    Aliases? 14-22
    14.3.11 Downloading and using EFI Console
    Firmware? 14-22

    __________________________________________________ ________
    14.4 WHAT PLATFORMS WILL OPENVMS OPERATE ON? 14-24
    14.4.1 on the Alpha Multia? 14-26
    14.4.2 on AlphaPC 164LX? AlphaPC 164SX? 14-28
    14.4.2.1 on the NoName AXPpci33 system?, 14-28
    14.4.3 on the Alpha XL series? 14-29
    14.4.4 OpenVMS on the Personal Workstation -a
    and -au series? 14-29
    14.4.4.1 OpenVMS on the Whitebox Windows-Only series
    Alpha?, 14-31
    14.4.4.2 OpenVMS and Personal Workstation ATA (IDE)
    bootstrap?, 14-32
    14.4.5 On the Intel Itanium IA-64 platform? 14-32
    14.4.5.1 Where can I get Intel Itanium
    information?, 14-33

    __________________________________________________ ________
    14.5 WHAT IS THE LEAST EXPENSIVE SYSTEM THAT WILL RUN
    OPENVMS? 14-33

    __________________________________________________ ________
    14.6 WHERE CAN I GET MORE INFORMATION ON ALPHA
    SYSTEMS? 14-34

    __________________________________________________ ________
    14.7 DESCRIBE ALPHA INSTRUCTION EMULATION AND INSTRUCTION
    SUBSETS? 14-35

    __________________________________________________ ________
    14.8 SO HOW DO I OPEN UP THE DEC 3000 CHASSIS? 14-37

    __________________________________________________ ________
    14.9 WHAT IS BYTE SWIZZLING? 14-37

    __________________________________________________ ________
    14.10 WHAT IS THE LAYOUT OF THE VAX FLOATING POINT
    FORMAT? 14-39

    xxi







    Contents




    __________________________________________________ ________
    14.11 WHERE CAN I FIND MORE INFO ABOUT VAX SYSTEMS? 14-40

    __________________________________________________ ________
    14.12 WHERE CAN I FIND INFORMATION ON NETBSD FOR VAX
    SYSTEMS? 14-40

    __________________________________________________ ________
    14.13 WHAT SYSTEM DISK SIZE LIMIT ON THE MICROVAX AND
    VAXSTATION 3100? 14-40

    __________________________________________________ ________
    14.14 WHAT ARE THE VAX PROCESSOR (CPU) CODES? 14-42

    __________________________________________________ ________
    14.15 WHERE CAN I GET SOFTWARE AND HARDWARE SUPPORT
    INFORMATION? 14-43

    __________________________________________________ ________
    14.16 WHERE CAN I GET HARDWARE SELF-MAINTENANCE SUPPORT
    ASSISTANCE? 14-44

    __________________________________________________ ________
    14.17 WHY DOES MY SYSTEM HALT WHEN I POWER-CYCLE THE
    CONSOLE TERMINAL? 14-45

    __________________________________________________ ________
    14.18 CAN I REUSE OLD KEYBOARDS, MICE AND MONITORS WITH A
    PC? 14-45

    __________________________________________________ ________
    14.19 WHICH VIDEO MONITOR WORKS WITH WHICH GRAPHICS
    CONTROLLER? 14-47

    __________________________________________________ ________
    14.20 WHERE CAN I GET INFORMATION ON STORAGE
    HARDWARE? 14-49

    __________________________________________________ ________
    14.21 WHY DOES MY LK401 KEYBOARD UNEXPECTEDLY
    AUTOREPEAT? 14-49

    __________________________________________________ ________
    14.22 PROBLEM - MY LK411 SENDS THE WRONG KEYCODES OR SOME
    KEYS ARE DEAD 14-50

    xxii







    Contents




    __________________________________________________ ________
    14.23 WHICH DE500 VARIANT WORKS WITH WHICH OPENVMS
    VERSION? 14-50

    __________________________________________________ ________
    14.24 THIRD-PARTY OR UNSUPPORTED
    DISK/TAPE/CONTROLLERS/SCSI/WIDGETS? 14-52
    14.24.1 Lists of third-party widgets on
    OpenVMS? 14-55
    14.24.2 Are the 2X-KZPCA-AA and SN-KZPCA-AA LVD
    Ultra2 SCSI? 14-55
    14.24.3 Resolving DRVERR fatal device error? 14-56

    __________________________________________________ ________
    14.25 LOOKING FOR CONNECTOR WIRING PIN-OUTS? 14-56

    __________________________________________________ ________
    14.26 WHAT CONNECTORS AND WIRING ADAPTERS ARE
    AVAILABLE? 14-59

    __________________________________________________ ________
    14.27 WHAT IS FLOW CONTROL AND HOW DOES IT WORK? 14-61

    __________________________________________________ ________
    14.28 CD AND DVD DEVICE REQUIREMENTS? 14-63

    __________________________________________________ ______________
    CHAPTER 15 INFORMATION ON NETWORKS AND CLUSTERS 15-1

    __________________________________________________ ________
    15.1 HOW TO CONNECT OPENVMS TO A MODEM? 15-1

    __________________________________________________ ________
    15.2 OPENVMS AND IP NETWORKING? 15-1
    15.2.1 How to connect OpenVMS to the Internet? 15-1
    15.2.2 Connecting to an IP Printer? 15-1
    15.2.3 How do I connect a PostScript printer via
    TCP/IP? 15-2
    15.2.4 How do I set a default IP route or
    gateway on OpenVMS? 15-3
    15.2.5 How can I set up reverse telnet (like
    reverse LAT)? 15-4
    15.2.6 Why can't I use PPP and RAS to connect to
    OpenVMS Alpha? 15-4

    xxiii







    Contents




    __________________________________________________ ________
    15.3 OPENVMS AND DECNET NETWORKING? 15-4
    15.3.1 Can DECnet-Plus operate over IP? 15-5
    15.3.2 What does "failure on back translate
    address request" mean? 15-5
    15.3.3 Performing SET HOST/MOP in DECnet-Plus? 15-6

    __________________________________________________ ________
    15.4 HOW TO DETERMINE THE NETWORK HARDWARE
    ADDRESS? 15-6
    15.4.1 How do I reset the LAN (DECnet-Plus NCL)
    error counters? 15-9
    15.4.2 How do I install DECnet Phase IV on VMS
    7.1? 15-9

    __________________________________________________ ________
    15.5 HOW CAN I SEND (RADIO) PAGES FROM MY OPENVMS
    SYSTEM? 15-10

    __________________________________________________ ________
    15.6 OPENVMS, CLUSTERS, VOLUME SHADOWING? 15-11
    15.6.1 OpenVMS Cluster Communications Protocol
    Details? 15-11
    15.6.1.1 OpenVMS Cluster (SCS) over DECnet? Over
    IP?, 15-11
    15.6.1.2 Configuring Cluster SCS for path load
    balancing?, 15-12
    15.6.1.2.1 Cluster Terminology?, 15-12
    15.6.1.2.2 Cluster Communications Control?, 15-14
    15.6.1.2.3 Cluster Communications Control Tools and
    Utilities?, 15-15
    15.6.2 Cluster System Parameter Settings? 15-16
    15.6.2.1 What is the correct value for EXPECTED_VOTES
    in a VMScluster?, 15-16
    15.6.2.2 Explain disk (or tape) allocation class
    settings?, 15-18
    15.6.2.2.1 How to configure allocation classes and
    Multi-Path SCSI?, 15-19
    15.6.3 Tell me about SET HOST/DUP and SET
    HOST/HSC 15-20
    15.6.4 How do I rename a DSSI disk (or tape?) 15-22
    15.6.5 Where can I get Fibre Channel Storage
    (SAN) information? 15-23

    xxiv







    Contents




    15.6.6 Which files must be shared in an OpenVMS
    Cluster? 15-23
    15.6.7 How can I split up an OpenVMS Cluster? 15-24
    15.6.8 Details on Volume Shadowing? 15-26
    15.6.8.1 Does volume shadowing require a non-zero
    allocation classes?, 15-26


    __________________________________________________ ______________
    INDEX

    __________________________________________________ ______________
    TABLES

    1-1 Core Websites 1-1

    1-2 INFO-VAX Mail Server Commands 1-4

    2-1 OpenVMS Alpha Media Kits 2-6

    2-2 OpenVMS I64 Order Numbers 2-6

    2-3 OpenVMS I64 Media Suffix 2-7

    2-4 OpenVMS Source Listings Kits 2-7

    2-5 OpenVMS Alpha Version Rule-Of-Thumb 2-17

    3-1 OpenVMS Websites 3-2

    3-2 OpenVMS Tutorial and Documentation Websites 3-6

    3-3 DP Books 3-8

    3-4 OpenVMS Mailing Lists 3-10

    11-1 X Windows Display Commands 11-1

    14-1 I64 Conversational Bootstrap Flags 14-10

    14-2 Alpha Conversational Bootstrap Flags 14-11

    14-3 VAX Conversational Bootstrap Flags 14-12

    14-4 DE500 Speed and Duplex Settings 14-51

    14-5 DEC MMJ Pin-out 14-56

    14-6 PC DB9 Pin-out 14-57

    14-7 MicroVAX DB9 Pin-out 14-58

    14-8 DECconnect MMJ Connectors and Adapters 14-59

    15-1 Cluster Common Shared Files 15-23

    xxv











    __________________________________________________ ______________

    Preface










































    i











    __________________________________________________ ______________

    OpenVMS Frequently Asked Questions (FAQ)


    This is the OpenVMS Frequently Asked Questions (FAQ)
    posting for the comp.os.vms and comp.sys.dec usenet
    newsgroups.

    Suggestions and Updates Welcome!

    Please send your suggestions for changes,
    additions, or corrections directly to FAQ Editor
    (hoff{atsign}hp{period}com)

    No Support Questions, Please

    Please do not send technical questions to the
    FAQ Editor (hoff{atsign}hp{period}com) . The FAQ
    Editor (hoff{atsign}hp{period}com) is not in a
    position to answer general questions, nor to
    provide general product support. Rather, please
    post your questions to the appropriate newsgroup,
    or please contact your preferred hardware and/or
    software support organization(s) directly.

    Your understanding in this matter is greatly
    appreciated.

    If you believe any particular discussion worthy
    of inclusion in a future edition of the FAQ and
    particularly once you have or know both the question
    and the answer, please then send the entire discussion
    along to the FAQ Editor (hoff{atsign}hp{period}com) for
    potential inclusion.

    Do note that the FAQ Editor (hoff{atsign}hp{period}com)
    takes URL link continuity seriously, and strives to
    maintain current links. This is, however, a large
    task, and it is only becoming more difficult. URL
    link continuity is also something that you can
    assist with, of course. If you should find a dead
    link or a stale URL pointer, please notify the FAQ
    Editor (hoff{atsign}hp{period}com) . If you have
    or can find the current, correct or updated URL,
    of course, that greatly assists the FAQ Editor

    iii







    OpenVMS Frequently Asked Questions (FAQ)




    (hoff{atsign}hp{period}com) in maintaining the most
    current set of links.

    Thank you!

    Post to Newsgroups With Care!

    Please consider reading Section 1.3 before
    posting to the comp.os.vms or any other
    newsgroups. (What you post can come back to haunt
    you.)

    _____________________________
    Contributors

    Many people have contributed to this FAQ, directly
    and/or indirectly. In many cases, part or all of
    an answer included in the FAQ has been adapted from
    one or more postings from the comp.os.vms or other
    newsgroup-this though individual citations and specific
    quotations are generally not included in this FAQ.
    (The FAQ Editor (hoff{atsign}hp{period}com) wishes to
    thank to all of those folks who post answers to the
    newsgroups, and that have contributed to the contents
    of this FAQ.)

    The following is an incomplete list of the folks that
    have contributed directly or indirectly to the contents
    of the OpenVMS FAQ. Additions, corrections, and updates
    to this list of contributors and to the contents of
    the FAQ itself are welcome, and all omissions and
    misspellings are unintentional. Thanks to each of the
    contributors here, and to all of the folks that have
    participated in the FAQ and in the newsgroups.

    Paul Anderson, Jason Armistead, Zoltan Arpadffy,
    John AtoZ, Bailey, Jeremy Begg, Colin Blake, Ken
    Blaylock, Kenneth Block, Bol, Craig Berry, Mark
    Berryman, Jim Becker, Verell Boaen, Bol, Jim Brankin,
    Richard Brodie, Robert Alan Byer, Jeff Campbell,
    Scott Campbell, Antonio Carlini, Keith Cayemberg,
    Ken Chaney, Cristy, John Croll, David J. Dachtera,
    Robert Deininger, Dale Dellutri, Leo Demers, Sue
    Denham, Thomas Dickey, Eric Dittman, Jim Dunham,
    Eric, Glenn Everhart, Ken Fairfield, Yaacov Fenster,
    Gunther Froehlin, Harry Garonzik, Derek Garson,

    iv







    OpenVMS Frequently Asked Questions (FAQ)




    John Gillings, Andy Goldstein, Clair Grant, Hunter
    Goatley, Ruth Goldenberg, Vance Haemmerle, Ki Suk Hahn,
    SHarris, Fletcher Hearns, Phillip Helbig, Hein van
    den Heuvel, Stephen Hoffman, Eberhard Heuser-Hofmann,
    Sue Holt, Horn, Jaf, Leif Jansson, Kevin Jenkins,
    Don Jones, Henry Juengst, inazu_k, Geoff Kingsmill,
    Fred Kleinsorge, Felix Kreisel, Veli Korkko, Ruslan R.
    Laishev, Norm Lastovica, p_lee, Jerry Leichter, Richard
    Levitte, Steve Lionel, Kerry Main, John E. Malmberg,
    David Mathog, Dale Miller, Dick Munroe, Patrick Moreau,
    Morrison, otis, George Pagliarulo, Keith Parris, Plass,
    pvhp, David Rabahy, Stan Rabinowitz, Mike Raspuzzi,
    Steve Reece, Ian Ring, Aaron Sakovich, Warren Sander,
    Mark Schafer, Brian Schenkenberger, Atlant Schmidt,
    Wayne Sewell, Steven Shamlian, Sue Skonetski, Scott
    Snadow, Scott Squires, stfp, Dave Sweeney, Mike
    Thompson, Arne Vajh°j, Martin Vorlńnder, Peter Weaver,
    William Webb, Williams, Paul Winalski, Uwe Zinser.

    Again, any omission from this list and any errors
    or misspellings are entirely unintentional. Please
    notify the FAQ Editor (hoff{atsign}hp{period}com) of
    any omissions, corrections, or updates that might
    be needed within this list. And thanks to each of
    these individuals for their assistance and for their
    contributions, and particularly for sharing their
    expertise.

    __________________________________________________ ________
    FAQ Archives and FAQ Locations

    The OpenVMS FAQ is archived in (at least) the following
    locations:

    o http://www.hp.com/go/openvms/faq/

    o ftp://rtfm.mit.edu/pub/usenet/comp.os.vms/

    o news://comp.answers

    o news://news.answers

    o http://www.faqs.org/

    o http://www.google.com/

    o http://www.kjsl.com/vmsfaq

    v







    OpenVMS Frequently Asked Questions (FAQ)




    o http://eisner.decus.org/vms/faq.htm

    o http://www.hoffmanlabs.org

    Other internet FAQs are generally available in these
    locations:

    o news://comp.answers

    o news://news.answers

    o ftp://rtfm.mit.edu/pub/usenet/

    o http://www.faqs.org/

    o http://www.google.com/

    __________________________________________________ ________
    FAQ File Formats and Production Information

    This FAQ is available in ASCII text, Postscript,
    Bookreader, and HTML, and potentially in other file
    formats. Certain formats, such as the Adobe Acrobat PDF
    conversion from the Postscript format, are provided
    downstream from the FAQ text formatting, and are
    provided and maintained by others.

    As the HTML-format FAQ is not a single monolithic (and
    accordingly large) HTML file, it is the most difficult
    format to search using the most common standard
    (platform-local) tools. Accordingly, the FAQ Editor
    (hoff{atsign}hp{period}com) recommends downloading,
    using and searching the ASCII text FAQ format.

    The OpenVMS FAQ is maintained in DECdocument SDML
    format and all FAQ maintenance and the primary output
    file format conversions are performed on OpenVMS
    systems. For information on the DECdocument product,
    please contact Touch Technologies.





    vi







    OpenVMS Frequently Asked Questions (FAQ)



    __________________________________________________ ________
    Old FAQ Section Notations Available in Index

    For the folks that are familiar with older editions of
    this FAQ and specifically for those folks looking for
    the older section name keywords, please see the index
    entries located under FAQ Sections (Old). These older
    section names include the prefixes DCL, DECW, DOC,
    FILES, MISC, MGMT, INTRO, SOFT, VMS, etc., followed by
    the section number.

    __________________________________________________ ________
    The Fine Print

    Corrections and suggestions are welcome. Should you
    believe you can provide better stewardship of this FAQ,
    or should you have strong feelings over the content,
    structure, organization or implementation of the FAQ,
    do realize you may be offered the editorship. The
    editor maintains this document as a free service to
    the OpenVMS community.

    While the information contained here is believed
    correct, the use of any and all information acquired
    from this document is entirely at the risk of the
    user(s). If your system should crash or your data
    should become corrupted or the answer(s) found here
    should be found erroneous, that is solely your risk and
    your responsibility.

    Though the editor of this FAQ is an employee of
    Hewlett-Packard Company (HP), this posting and the
    information contained within this FAQ are is not an
    official statement of HP, nor a commitment by HP. All
    information, comments or opinions included, cited or
    otherwise referenced here may or may not reflect the
    stated opinions of HP, of the editor, or of any other
    entity.

    All trademarks, registered trademarks, servicemarks and
    registered servicemarks used or referenced here are the
    properties of their respective owner(s) or holders.
    Please route any corrections, requests or related
    updates to the FAQ Editor (hoff{atsign}hp{period}com)

    vii







    OpenVMS Frequently Asked Questions (FAQ)




    The redistribution, reposting and/or the web-serving of
    complete and unaltered copies of this FAQ document is
    permitted. Other uses only with prior permission.

    The master copy of this FAQ is posted at

    o http://www.hp.com/go/openvms/faq

    Translations of this FAQ into various languages may
    be available, please contact the maintainer(s) of
    any translated document for assistance or feedback
    involving the particular translated edition of this
    FAQ.































    viii












    __________________________________________________ _____

    1 Introduction



    __________________________________________________ ________
    1.1 What core OpenVMS URLs do you need to know?

    If you have no other OpenVMS URLs bookmarked, you
    will want to be familiar with the URLs listed in
    Table 1-1:

    __________________________________________________ ______________
    Table 1-1 Core Websites

    __________________________________________________ ______________
    URL_______Contents________________________________ ______________

    Core OpenVMS Information, including roadmaps and release
    schedules

    http://www.hp.com/go/openvms/

    OpenVMS and Core Layered Product Documentation

    http://www.hp.com/go/openvms/doc/

    Core OpenVMS Support Search Engine URLs, the ITRC support and
    discussion forums, and the ITRC FTP-accessable Patch Area

    http://askq.compaq.com/ (Natural Language Search
    Assistant)

    http://www.itrc.hp.com/

    ftp://ftp.itrc.hp.com/openvms_patches/

    The OpenVMS Freeware

    http://www.hp.com/go/openvms/freeware/

    The OpenVMS Hobbyist License Program

    __________http://www.openvmshobbyist.org/_______________________

    1-1







    Introduction



    __________________________________________________ ________
    1.2 What are the OpenVMS Usenet Newsgroups?

    There are a huge number of newsgroups available, some
    of which discuss topics of interest to folks using
    OpenVMS operating system. Key among these are the
    comp.os.vms newsgroup and the vmsnet.* heirarchy of
    newsgroups.

    _____________________________
    1.2.1 What is the scope of the comp.os.vms newsgroup?

    The comp.os.vms newsgroup is the primary newsgroup
    for discussion of the HP OpenVMS operating system and
    the computer systems on which it runs. Questions about
    layered products which run on OpenVMS are also welcome,
    though many of them (in particular, language compilers
    and database systems) have more specific newsgroups. If
    a question has some relationship to OpenVMS, it belongs
    in comp.os.vms.

    _____________________________
    1.2.2 What newsgroups carry VMS-related information?

    The vmsnet.* hierarchy is operated by the Encompass
    users group (formerly known as DECUS), and contains
    various newsgroups of interest, including vmsnet.misc
    and vmsnet.alpha.

    Sprechen Sie Deutsch? Besuchen Sie bitte den newsgroup
    de.comp.os.vms.

    The comp.sys.dec newsgroup carries general discussions
    about various HP computer systems, and specifically
    systems that were acquired by HP as part of the
    acquisition of Compaq, systems which had previously
    been acquired by Compaq as part of the acquisition of
    Digital Equipment Corporation (DIGITAL).

    Also of interest are resources and conferencing systems
    including Encompasserve (formerly known as DECUServe)
    and Ken Farmer's OpenVMS.Org forums:

    o telnet://eisner.decus.org/

    o http://www.openvms.org/

    1-2







    Introduction



    _____________________________
    1.2.3 What newsgroup archives are available?

    Extensive archives of INFO-VAX mailings and
    comp.os.vms postings are archived and available at
    SRI: ftp://crvax.sri.com/info-vax/.

    Google also has extensive newsgroup archives available
    at

    o http://www.google.com/

    _____________________________
    1.2.4 What is the INFO-VAX mailing list?

    INFO-VAX is a mailing list which is bidirectionally
    gatewayed to the comp.os.vms newsgroup. This means
    that postings to comp.os.vms get automatically sent to
    INFO-VAX subscribers and messages sent to the INFO-VAX
    list are automatically posted to comp.os.vms. INFO-VAX
    can be a useful way to participate in the newsgroup
    if you can't access the newsgroup directly through
    a newsreader. Note that INFO-VAX is a closed mailing
    list, which means that only subscribers may post to it.
    Please see Section 1.2.4.1 for information on how to
    subscribe, and how you can subscribe such that you can
    post from multiple addresses but still receive no more
    than one copy of the mailings.

    Please remember that propogation delays can and do
    vary, meaning that mailings and postings may be delayed
    or even lost. It is quite possible that postings
    may not be delivered for several days, and that some
    postings will appear out of the expected order.

    For details on the available archives, please see
    Section 1.2.3.

    _____________________________
    1.2.4.1 How do I subscribe to or unsubscribe from INFO-VAX?

    The address for subscription requests is Info-VAX-
    Request[at]Mvb.Saic.Com. Subscription requests are
    handled automatically by a mail server. This mail
    server ignores the subject line and processes each
    line of the message as a command.

    1-3







    Introduction




    The syntax for subscribing and unsubscribing, as well
    as setting various parameters on your subscription,
    is:

    __________________________________________________ ______________
    Table 1-2 INFO-VAX Mail Server Commands

    __________________________________________________ _____
    Command____________________Description____________ _____

    HELP Acquire information on mail
    server

    SUBSCRIBE INFO-VAX Join to the mailing list

    UNSUBSCRIBE INFO-VAX Leave the mailing list

    SET INFO-VAX DIGEST Select periodic omnibus
    mail messages from the mail
    server, rather than multiple
    individual messages for each
    posting.

    SET INFO-VAX NODIGEST Separate mail delivery of
    each message posted

    SET INFO-VAX NOMAIL Establish an email address
    for posting, though not for
    receiving, mail.

    SET INFO-VAX MAIL Establish an email address
    for both posting and for
    receiving mail from the
    ____________________________________mailing_list._ ______________

    The mail server is not case-sensitive; case is
    irrelevant. Settings and policies can be retrieved
    from the mail server, typically using HELP.

    The INFO-VAX moderator can be contacted directly at the
    email address Mark.Berryman[at]Mvb.Saic.Com.



    1-4







    Introduction



    __________________________________________________ ________
    1.3 What is [n]etiquette?

    Before posting or emailing a question, please use
    the available local resources, such as the OpenVMS
    manuals, the HELP, and the resources and information
    in and referenced by this FAQ. Please use these first.
    Also please specifically read the release notes and
    (if appropriate) the cover letter for the product you
    are using. (The release notes are generally placed in
    SYS$HELP:.) Quite often, these simple steps will allow
    you to quickly find the answer to your own question-and
    more quickly than waiting for a response to question
    posted to a newsgroup, too. These steps will save
    you time, and will also help ensure you have a good
    reputation with the folks that might be included to
    answer one of your future questions, a question not
    covered in these resources. Put another way, if you do
    not want your questions to be ignored in the future-
    and please remember that the folks in the newsgroups
    do not have to answer your questions-you won't want
    to "annoy the natives" by asking a question that has
    already been answered far more times more than you
    might have realized, or a question whose answer is
    readily available had you made a small effort.

    When posting, please consider the following
    suggestions:

    o There is no particularly reliable way to recall,
    erase, delete, or otherwise hide a message once it
    is emailed or once posted. Once your message has
    reached an external email server or multiple news
    servers, the entire text is effectively a permanent
    fixture of the network. And using the available
    search engines, a fixture that is easy to locate
    and to correlate. (Do not assume that all tools or
    archives will honor the do-not-cache attributes,
    either-postings marked as such can be among the most
    interesting ones to cache, after all.)

    For details on some of the many available archives,
    please see Section 1.2.3.


    1-5







    Introduction




    o Include a valid e-mail address in the text of your
    posting or in a "signature" appended to the end.
    Reply-to addresses in headers often get garbled.
    Anonymous addresses can also simply be ignored, as
    fake addresses are regularly used by folks that are
    "trolling" and by folks that are spamming. (Though
    to avoid spam-harvesting of your email address,
    consider adding characters or a field into the
    address-but remember to include details around which
    characters or fields should be removed or altered if
    you decide to be particularly clever here.)

    o If you are submitting a question, please be as
    specific as you can. Include relevant information
    such as processor type, product versions (OpenVMS
    and layered products that apply), error message(s),
    DCL command(s) used, and a short, reproducible
    example of problems. Say what you've tried so
    far, so that effort isn't duplicated. Keep in mind
    that there's not yet a telepathy protocol for the
    Internet. (The more detailed your description, the
    better that people can help you with your question.)

    o If responding to a posting, include in your reply
    only as much of the original posting as is necessary
    to establish context. As a guideline, consider that
    if you've included more text than you've added,
    you've possibly included too much. Never include
    signatures and other irrelevant material.

    o Please be polite. If the question isn't worded
    the way you think is correct or doesn't include
    the information you want, try to imagine what
    the problem might be if viewed from the poster's
    perspective. Requests for additional detailed
    information are often better sent through mail
    rather than posted to the newsgroup.

    o If you have a problem with HP (or any other
    vendor's) product, please use the appropriate
    support channel. Do not assume that newsgroup
    postings will get read, will be responded to by the
    appropriate developers, or will be later followed up
    upon.

    1-6







    Introduction




    o If you are posting from a web browser, news reader
    or if you are posting via email sent to INFO-VAX,
    please turn off MIME, vcard, attachments, and other
    mechanisms that assume anyone reading the post
    has the corresponding capability-use the text-only
    option of your web browser, news reader, or mailer.
    Usenet is traditionally a text-only medium, and
    many comp.os.vms participants will use tools that
    have this support disabled, or that do not have this
    support. If the message uses MIME or attachments or
    such, the text of your message will be buried in a
    large pile of gibberish, and some tools will send
    multiple copies of the text within a single posting.

    o If you find that the postings of a particular user
    are uninteresting, annoying, or off-topic, most
    newsreaders include a filter or killfile mechanism,
    and many mail clients have similar filtering
    capabilities. Please do not "flame"-to email or
    to post vitriol - any individual that might annoy
    you, please enable and filter all of that user's
    postings. Posting of vitriol and of "flames" will
    eventually come back to haunt you; netizens and the
    net itself have a very large and a very long memory.
    Similarly, readers that decide that your postings
    are not worthy of reading will similarly tend to
    filter or to killfile all of your postings. Please
    play nice, in other words.

    Before posting your question to the comp.os.vms
    newsgroup or sending your message to the INFO-VAX list,
    also please take the time to review available etiquette
    information, such as that included in the following
    documents:

    widftp://rtfm.mit.edu/pub/usenet/
    news.answers/usenet/primer/part1

    widftp://rtfm.mit.edu/pub/usenet/
    news.answers/usenet/faq/part1

    widftp://rtfm.mit.edu/pub/usenet/
    news.answers/usenet/emily-postnews/part1

    1-7


    --

    ---------------------------- #include -----------------------------
    For additional, please see the OpenVMS FAQ -- www.hp.com/go/openvms/faq
    --------------------------- pure personal opinion ---------------------------
    Hoff (Stephen) Hoffman OpenVMS Engineering hoff[at]hp.com


  2. OpenVMS Frequently Asked Questions (FAQ), Part 2/11


    Archive-name: dec-faq/vms/part2
    Posting-Frequency: quarterly
    Last-modified: 11 Apr 2005
    Version: VMSFAQ_20050411-02.TXT







    Introduction




    widftp://rtfm.mit.edu/pub/usenet/
    news.answers/usenet/writing-style/part1

    widftp://rtfm.mit.edu/pub/usenet/
    news.answers/usenet/posting-rules/part1

    This information will document the etiquette of
    newsgroups, as well as providing you with the knowledge
    the vast amount of newsgroup-related information that
    is readily available to you, and where to find it...

    Note

    Please do not post security holes or system
    crashers

    Rather, please report these problems directly to
    HP. Why? So that HP has a chance to resolve and
    distribute a fix before other customer sites can
    be affected.

    Most folks in the newsgroups are honest and
    deserve to know about potential security
    problems, but a few folks can and will make
    nefarious use of this same information. Other
    sites will hopefully return the courtesy,
    and will not post information that will
    potentially compromise your site and your
    computer environment.

    __________________________________________________ ________
    1.4 What OpenVMS user group(s) are available?

    Encompass, the Enterprise Computing Association,
    is a user group comprised of information technology
    professionals that are interested in the Enterprise-
    oriented products, services, and technologies of
    Compaq and of the former DIGITAL. Encompass offers
    newsletters, the Encompass website, and offers various
    gatherings and related services, including symposia
    events and local users group meetings.

    Encompass is a descendent of the organization known as
    DECUS, the Digital Equipment Computer Users Society.

    1-8







    Introduction




    For more information on Encompass, please visit the
    Encompass web site:

    o http://www.encompassus.org/

    The organization comprised of customers of Hewlett-
    Packard Company (HP) that is probably most analogous to
    the Encompass organization is Interex:

    o http://www.interex.org/

    Like Encompass, Interex offers various services
    and events of interest to folks that presently work
    with and/or that wish to learn about HP products and
    offerings. Please see the Interex website for details.

    __________________________________________________ ________
    1.5 OpenVMS Support, Questions and Comments?

    The following section includes contacts for OpenVMS
    Feedback, and information on how to obtain technical
    support information.

    _____________________________
    1.5.1 Corporate contacts for OpenVMS Business Issues?

    The HP corporate contact for OpenVMS business issues is
    Ann McQuaid, the HP General Manager directly in charge
    of OpenVMS and OpenVMS Engineering, while feature
    requests and other related matters should be routed
    to MaryJane Vazquez, the OpenVMS Business Manager.

    Ann and MaryJane will quite obviously respond best to
    cogently-worded OpenVMS corporate-level business issues
    or requests. With all due respect to all involved,
    neither Ann nor MaryJane are appropriate contacts for
    technical support matters nor for technical support
    requests, nor for any other non-corporate-related, non-
    business-related issues-these questions are best routed
    to the local or regional customer support center; to
    the support, technical and engineering teams.

    To reach Ann or MaryJane via electronic mail, place a
    dot between the first and the surname, and append the
    expected HP.COM domain.

    1-9







    Introduction



    _____________________________
    1.5.2 OpenVMS Ambassadors?

    The OpenVMS Ambassadors are senior HP engineers with
    advanced technical knowledge and advanced training in
    OpenVMS, with detailed knowledge of current and future
    OpenVMS releases and product plans, and with contacts
    directly with the HP and ISV hardware and software
    engineering organizations developing OpenVMS and
    OpenVMS hardware platforms, as well as layered products
    and tools. Further, Ambassadors are experienced with
    integrating HP OpenVMS and application-specific
    products and ISV applications to solve specific
    business requirements.

    OpenVMS Ambassadors are based throughout the world.

    Your HP sales representative or HP reseller will be
    able connect you with your local OpenVMS Ambassador.

    _____________________________
    1.5.3 Contact for OpenVMS Marketing Issues and Questions?

    Please see Section 3.4.

    _____________________________
    1.5.4 Contact URLs for OpenVMS Technical Issues?

    For technical issues and technical support, please
    contact your software support organization, or your
    local HP Customer Support Center or HP Reseller. In
    North America, you can call 1-800-HP-INVENT.

    Please remember to review and to bookmark the following
    support URLs:

    o http://www.hp.com/go/openvms/

    o http://askq.compaq.com/

    o http://www.hp.com/go/openvms/wizard/

    o ftp://ftp.itrc.hp.com/openvms_patches/


    1-10












    __________________________________________________ _____

    2 General Information



    __________________________________________________ ________
    2.1 What is OpenVMS? What is its history?

    OpenVMS, originally called VMS (Virtual Memory System),
    was first conceived in 1976 as a new operating system
    for the then-new, 32-bit, virtual memory line of
    computers, eventually named VAX (Virtual Address
    eXtension).

    The first VAX model, the 11/780, was code-named "Star",
    hence the code name for the VMS operating system,
    "Starlet", a name that remains to this day the name
    for the system library files (STARLET.OLB, etc.).

    VMS version X0.5 was the first released to customers,
    in support of the hardware beta test of the VAX-11/780,
    in 1977. VAX/VMS Version V1.0 shipped in 1978, along
    with the first revenue-ship 11/780s.

    OpenVMS was designed entirely within HP and
    specifically within the former Digital Equipment
    Corporation (DIGITAL). Two of the principal designers
    were Dave Cutler and Dick Hustvedt, though with a wide
    variety of other contributors. OpenVMS was conceived
    as a 32-bit, virtual memory successor to the RSX-
    11M operating system for the PDP-11. Many of the
    original designers and programmers of OpenVMS had
    worked previously on RSX-11M, and many concepts from
    RSX-11M were carried over to OpenVMS.

    OpenVMS VAX is a 32-bit, multitasking, multiprocessing
    virtual memory operating system. Current
    implementations run on VAX systems from HP and
    other vendors, as well as on hardware emulators;
    for additional information on emulators, please see
    Section 13.12 and


    2-1







    General Information




    OpenVMS Alpha is a 64-bit multitasking, multiprocessing
    virtual memory operating system. Current
    implementations run on Alpha systems from HP, and other
    vendors.

    OpenVMS has also been ported to the Intel IA-64
    architecture, and specifically to HP Integrity
    systems using microprocessors from the Intel Itanium
    Processor Family. This implementation of OpenVMS is
    officially known as "HP OpenVMS for Integrity Servers"
    and more commonly as "OpenVMS I64", and it operates
    in the native Itanium IA-64 architecture and 64-
    bit environment. OpenVMS I64 provides support for
    applications requiring 32- or 64-bit virtual addressing
    capabilities entirely within the native 64-bit Itanium
    execution environment. (For details on this and related
    terminology, please see Section 14.4.5.)

    For more details on OpenVMS and its features, please
    read the OpenVMS Software Product Description at:

    o http://h18000.www1.hp.com/info/spd/

    OpenVMS typically uses SPD 25.01.xx, SPD 41.87.xx,
    and SPD 82.35.xx.

    Additional information on the general features of
    various OpenVMS releases, release dates, as well as the
    development project code names of specific releases, is
    available at:

    o http://www.openvms.compaq.com/openvms/os/openvms-
    release-history.html

    Additional historical information-as well as pictures
    and a variety of other trivia-is available in the VAX
    20th anniversary book:

    o http://www.openvms.compaq.com/openvms/20th/vmsbook.pdf

    For information on the FreeVMS project, and on hobbyist
    and educational versions of OpenVMS, please see:

    o http://www.free-vms.org/

    o http://www.openvmshobbyist.org/

    2-2







    General Information




    o http://www.openvmsedu.com/

    Also please see the related software licensing topics
    Section 2.8.4, Section 2.8.1, and Section 2.15.

    __________________________________________________ ________
    2.2 What is the difference between VMS and OpenVMS?

    VMS and OpenVMS are two names for the same operating
    system. Originally, the operating system was called
    VAX-11/VMS; it changed to VAX/VMS at around VAX/VMS
    V2.0. When the VMS operating system was ported to the
    Alpha platform, it was renamed OpenVMS, for both VAX
    and Alpha (and for the Itanium Processor Family), in
    part to signify the high degree of support for industry
    standards such as POSIX, which provides many features
    of UNIX systems.

    For those versions with POSIX, an OpenVMS license
    allows you to install and run POSIX for OpenVMS at
    no additional charge; all you need is the media and
    documentation which can be found on the Consolidated
    Distribution and On-Line Documentation CD-ROMs. Support
    for the POSIX package on more recent OpenVMS releases
    is not available, various parts of POSIX such as calls
    from the API are being integrated more directly into
    OpenVMS. For more information on POSIX for VMS see
    question SOFT2

    What became confusing is that the OpenVMS name was
    introduced first for OpenVMS AXP V1.0 causing the
    widespread misimpression that OpenVMS was for Alpha
    AXP only, while "regular VMS" was for VAX. In fact,
    the official name of the VAX operating system was
    changed as of V5.5, though the name did not start to be
    actually used in the product until V6.0.

    __________________________________________________ ________
    2.3 What's in a Name? Terminology and Products?

    The proper names for OpenVMS on the various platforms
    are "OpenVMS VAX", "OpenVMS Alpha", and "OpenVMS I64".
    Use of "OpenVMS AXP" and of "VAX/VMS" are deprecated.

    2-3







    General Information




    The VAX and Alpha terms are largely interchangeably
    used as the names of platforms, of processor or
    microprocessor implementations, and of the respective
    computing architectures.

    Somewhat confusing to long-time OpenVMS users, Intel
    IA-32, IA-64, and EM64T, and AMD AMD64 are the names of
    various computing architectures and of architectural
    extensions. Only. These are not the names of any
    implementations, nor of any platforms.

    Intel Itanium is the name of a family of microprocessor
    implementations of the Intel IA-64 architecture, as
    Intel Pentium and Xeon are the names of families of
    microprocessor implementations of Intel IA-32 and
    (potentially) of the EM64T extensions.

    I64 is the generic name for the various HP Integrity
    platforms supported by HP OpenVMS for Integrity Servers
    (and more commonly as "OpenVMS I64"); for the platforms
    supported by OpenVMS I64. (For additional related
    terminology, please see Section 14.4.5.)

    _____________________________
    2.3.1 How do I port from VMS to OpenVMS?

    You already did. Wasn't that easy? Please see
    Section 2.2 for details.

    __________________________________________________ ________
    2.4 Which is better, OpenVMS or UNIX?

    This question comes up periodically, usually asked by
    new subscribers amd new posters who are long-time UNIX
    or Linux users. Sometimes, the question is ignored
    totally; other times, it leads to a long series of
    repetitive messages that convince no one and usually
    carry little if any new information. Please do everyone
    a favor and avoid re-starting this perpetual, fruitless
    debate.

    That said, OpenVMS and the better implementations of
    UNIX are all fine operating systems, each with its
    strengths and weaknesses. If you're in a position
    where you need to choose, select the one that best
    fits your own requirements, considering, for example,

    2-4







    General Information




    whether or not the layered products or specific OS
    features you want are available, and considering the
    expected cost-of-ownership over the lifetime of the
    system installation.

    __________________________________________________ ________
    2.5 Is HP continuing funding and support for OpenVMS?

    Yes.

    Active development of new OpenVMS releases is underway,
    as well as the continuation of support.

    Please see the following URLs for details, roadmaps,
    and related information:

    o http://www.hp.com/go/openvms/

    __________________________________________________ ________
    2.6 What OpenVMS distribution kits are available?

    Various distributions are available.

    For the most current information on the available part
    numbers and current products (OpenVMS distribution
    kits, media, documentation, etc) and the most current
    associated licensing information, please see the
    current OpenVMS Software Product Description (SPD)
    document, available at:

    o http://h18000.www1.hp.com/info/spd/

    OpenVMS typically uses SPD 25.01.xx, SPD 41.87.xx,
    and SPD 82.35.xx.

    The CD-ROMs listed in Table 2-1 contain just the
    OpenVMS Alpha operating system. The operating system
    distribution kits are bootable, and can be used to run
    BACKUP from the optical media, as well as performing an
    installation or upgrade.




    2-5







    General Information




    __________________________________________________ ______________
    Table 2-1 OpenVMS Alpha Media Kits

    __________________________________________________ _____
    Part______________Description_____________________ _____

    QA-MT1AG-H8 OpenVMS Alpha V6.2-1H3 hardware
    release CD-ROM; also requires QA-
    MT1AA-H8.6.2

    QA-MT1AR-H8 OpenVMS Alpha V7.1-2 maintenance
    release CD-ROM

    QA-MT1AT-H8 OpenVMS Alpha V7.2-1 maintenance
    release CD-ROM

    QA-MT1AU-H8 OpenVMS Alpha V7.2-2 maintenance
    release CD-ROM

    QA-MT3AA-H8 OpenVMS Alpha and VAX products and
    documentation on CD-ROM

    QA-MT3AE-H8 OpenVMS Alpha and VAX documentation
    ___________________________on_CD-ROM____________________________

    OpenVMS I64 is distributed on DVD-ROM media, and is
    bootable. OpenVMS I64 licensing is implemented on a
    per-processor-socket basis, with the classic license
    tiers based on the numbers of processor sockets that
    can be present. Further, three general product and
    licensing groupings are optionally available with
    OpenVMS I64, the Foundation Operating Environment
    (FOE), the Enterprise Operating Environment (EOE), and
    (as/when/if available) the Mission Critical Operating
    Environment (MCOE). Seperate per-product licenses are
    generally also available for various of the products
    within the Operating Environment groups.

    __________________________________________________ ______________
    Table 2-2 OpenVMS I64 Order Numbers

    __________________________________________________ _____
    Part______________Description_____________________ _____

    BA322AA#??? OpenVMS I64 FOE Product

    BA323AA#??? OpenVMS I64 EOE Product

    _________BA324AA#???_______OpenVMS_I64_MCOE_Produc t_____________

    2-6







    General Information




    The product suffix required for the order numbers
    listed in Table 2-2 can be found in Table 2-3.

    __________________________________________________ ______________
    Table 2-3 OpenVMS I64 Media Suffix

    __________________________________________________ _____
    Suffix____________Description_____________________ _____

    A18 OpenVMS I64 FOE V8.2 DVD media

    AJR OE media kit on DVD media

    _________0D1_______________Factory_installation___ ______________

    The OpenVMS VAX, OpenVMS Alpha and OpenVMS I64 source
    listings sets referenced in Table 2-4 include the
    source listings of most of OpenVMS, and these machine-
    readable distributions are invaluable for any folks
    working directly with OpenVMS internals, as well as for
    folks interested in seeing examples of various OpenVMS
    programming interfaces.

    __________________________________________________ ______________
    Table 2-4 OpenVMS Source Listings Kits

    __________________________________________________ _____
    Part______________Description_____________________ _____

    QB-MT1AB-E8 OpenVMS Alpha Source Listings kit and
    license

    QT-MT1AB-Q8 OpenVMS Alpha Source Listings Updates

    BA422AA OpenVMS I64 Source Listings kit and
    license

    QB-001AB-E8 OpenVMS VAX Source Listings kit and
    license

    QT-001AB-Q8 OpenVMS VAX Source Listings Updates

    BA422AA OpenVMS I64 source listings kit and
    ___________________________license________________ ______________

    Additional OpenVMS packages and technologies including
    NetBeans, XML, SOAP, UDDI, JDK, Perl, Tomcat, SSL
    and such are discussed within the OpenVMS e-Business
    Infrastructure Package SPD 80.58.xx. Again, please see
    the OpenVMS SPD and the documents and parts referenced
    there for the most current information.

    2-7







    General Information



    _____________________________
    2.6.1 Where can I download OpenVMS and Layered Product Kits?

    HP customers with commercial licenses and support
    contracts can download software product distribution
    kits from the following HP website:

    o http://www1.sqp.com/

    You can also find pointers to the Software Rollout
    Report and to the OpenVMS SPD listings via the above
    SQP website.

    Information on obtaining and transfering licenses
    is available in Section 2.6 and Section 2.8.4, while
    information on the OpenVMS Hobbyist licensing program
    and on obtaining hobbyist product distribution kits is
    in Section 2.8.1.

    __________________________________________________ ________
    2.7 In what language is OpenVMS written?

    OpenVMS is written in a wide variety of languages.

    In no particular order, OpenVMS components are
    implemented using Bliss, Macro, Ada, PLI, VAX and DEC
    C, Fortran, UIL, VAX and Alpha SDL, Pascal, MDL, DEC
    C++, DCL, Message, and Document. And this is certainly
    not a complete list. However, the rumor is NOT true
    that an attempt was made to write pieces of OpenVMS in
    every supported language so that the Run-Time Libraries
    could not be unbundled. (APL, BASIC, COBOL and RPG are
    just some of the languages NOT represented!)

    There are a large variety of small and not-so-small
    tools and DCL command procedures that are used as part
    of the OpenVMS build, and a source code control system
    capable of maintaining over a hundred thousand source
    files across multiple parallel development projects,
    and overlapping releases.





    2-8







    General Information



    __________________________________________________ ________
    2.8 Obtaining and Transfering OpenVMS licenses?

    The following sections describe hobbyist and
    educational license programs, as well as information on
    commercial licenses and transfers.

    For information on the available commercial OpenVMS
    licenses and for information on license transfers,
    please see Section 2.8.4. OpenVMS Hobbyist licenses
    are discussed in Section 2.8.1. For information
    on the licensing implementation, troubleshooting
    licensing problems, on the License Unit Requirements
    Table (LURT), and other related details, please see
    Section 5.39. For configuring and troubleshooting LMF,
    see Section 12.4.

    _____________________________
    2.8.1 Questions asked by Hobbyist OpenVMS licensees?

    If you are a member of an HP-recognized user group
    (eg: Encompass, Enterex, DECUS), and are considering
    acquiring and using a VAX, Alpha or (soon) IA-64 system
    for hobbyist (non-commercial) use, (free) license
    product authorization keys (PAKs) for OpenVMS VAX,
    OpenVMS Alpha, (soon) OpenVMS I64, and layered products
    are available.

    In addition to the license keys, OpenVMS VAX and
    Alpha distribution CD-ROM distribution kits are
    available with OpenVMS, DECwindows Motif, DECnet
    and TCP/IP networking, compilers, and a variety
    of layered products. (A hobbyist distribution for
    OpenVMS I64 is expected.) (While the hobbyist CD-
    ROM distributions are intended for and tailored for
    OpenVMS Hobbyists, the contents and capabilities of the
    Hobbyist installation kits included within the OpenVMS
    Hobbyist distribution do not differ from the standard
    distribution installation kits. The products are chosen
    to reflect the most popular products and the space
    available on the media.)

    If you have questions on what else is authorized by the
    license agreement and on what other distribution media
    is available to you, well, please read the applicable
    software license agreement(s).

    2-9







    General Information




    For further information, please link to:

    o http://www.openvmshobbyist.org/

    On the OpenVMS Hobbyist license registration form
    at the above website (as of August 2004), you are
    offered the choice of the "OpenVMS VAX" license(s), the
    "OpenVMS Alpha" license(s), and the "Layered Products"
    licenses. You will want the operating system license
    for your particular OpenVMS platform and you will
    want the "Layered Products" licenses. You will want
    to select and to acquire two sets of license PAKs.

    For vendors wishing to license products specifically
    for hobbyist use (and to not issue hobbyist PAKs),
    the program provides hobbyists with the license PAK
    OPENVMS-HOBBYIST.

    If you plan to use a hardware emulator (eg: VAX
    emulator) on a Microsoft Windows platform, make sure
    you have an OpenVMS distribution kit that can be
    installed and/or booted with the particular emulator
    package you plan to use. For additional information on
    emulators, please see Section 13.12 and particularly
    please see the emulator-related documentation.

    _____________________________
    2.8.2 OpenVMS Educational and CSLG licenses?

    For information on OpenVMS licenses for educational
    customers, please see the HP Campus Software
    License Grant (CSLG) license program and the OpenVMS
    Educational license program:

    o http://www.openvmsedu.com/

    _____________________________
    2.8.3 What developer and partner licensing programs are
    available?

    Commercial software developers can join the HP DSPP
    program, and can (potentially) receive discounts
    on various software product licenses and software
    distributions, as well as on hardware purchases.

    o http://www.hp.com/go/dspp/

    2-10







    General Information




    The DSPP program is the descendent of the DIGITAL ISVN
    and DIGITAL ASAP programs and the Compaq CSA program,
    and the analogous developer and partner programs at HP.


    Please see Section 2.15 for additional details on the
    DSPP program.

    For information on the OpenbVMS Hobbyist and
    OpenVMS Educational license programs, please see
    Section 2.8.1.

    _____________________________
    2.8.4 How do I obtain or transfer an OpenVMS license?

    To transfer a commercial OpenVMS license from one owner
    to another, or to purchase a commercial license, you
    can contact HP at regional sales office or reseller.

    For information on the hobbyist license program, please
    see Section 2.8.1.

    __________________________________________________ ________
    2.9 Does OpenVMS support the Euro currency symbol?

    OpenVMS can generate the %xA4 character code used for
    the Euro, and the DECwindows DECterm can display the
    glyph. Please check with the vendor of your terminal or
    terminal emulator for additional details.

    __________________________________________________ ________
    2.10 OpenVMS Ports? Itanium? Ports to IA-32, EM64T or AMD64
    systems?

    OpenVMS has been ported to and is operational on four
    architectures: VAX, Alpha, IA-64, and IA-32. The first
    three have available native ports of OpenVMS, the
    fourth is available via emulation. VAX is the oldest
    architecture, and limited to 32-bit virtual and up
    to 34-bit physical addressing. The Alpha and IA-64
    architectures are both 64-bit architectures, with
    64-bit virtual addressing available. The available
    IA-32 emulation is provided for the OpenVMS VAX and
    other VAX operating systems, and provides a 32-bit
    VAX environment. For additional information on the
    emulation, please see Section 13.12.

    2-11







    General Information




    As for (the lack of) a native port for IA-32, OpenVMS
    Engineering presently and continues to believe that
    there would be insufficient market (read: profit,
    customer interest) to justify the cost involved in
    a native port of OpenVMS to systems using the Intel
    IA-32 architecture. In addition to the direct costs
    involved in any port and in addition to the substantial
    effort involved in moving backwards from a 64-bit
    environment on Alpha and on IA-64 to a 32-bit platform
    (such as IA-32), and the exceedingly non-trivial device
    qualification costs and the costs in moving backwards
    into older PCI and I/O environments (IA-32 systems
    more than a few years old have equivalently aged I/O
    support and buses), each organization and each person
    maintaining a product or a package for OpenVMS will
    have to justify a port to "OpenVMS IA-32", "OpenVMS
    EM64T" or "OpenVMS AMD64", akin to the decisions and
    the effort involved in porting a product from OpenVMS
    VAX to OpenVMS Alpha, or the port to OpenVMS I64.

    Platform ports of many of the various products can
    be easy, and many of the ports of applications using
    documented OpenVMS features are expected to require
    little more than a source rebuild. Other products can
    and do depend on platform-specific or undocumented
    features, and the associated ports can be more
    involved. Regardless, ports of operating systems are
    very large and involved projects. The prerequisite
    product requirements for an OpenVMS operating system
    port are also non-trivial, as well-compilers in
    particular are obviously required, and the suite of
    compilers provided must maintain a very high degree of
    source-level compatibility across the platforms. In the
    case of the HP Integrity port, OpenVMS I64 V8.0 used
    cross-compilers and cross-tools operating on OpenVMS
    Alpha systems, while V8.2 and later have various native
    compilers available.

    The OpenVMS I64 port was centrally built using the
    existing OpenVMS Alpha environment and around the work
    and the knowledge from the OpenVMS Alpha port, and
    OpenVMS Engineering fully expects that customers and
    ISVs will use and will continue to use OpenVMS Alpha
    systems to assist with their own ports to OpenVMS I64.

    2-12







    General Information




    OpenVMS Engineering fully expects to see customers
    using mixed-architecture clusters and fully shared file
    systems, as well.

    OpenVMS Engineering is well aware of the AMD AMD64
    (64-bit) platform and processors. (At least one of the
    available VAX emulators can reportedly utilize parts
    of the AMD64 instruction set, please contact the VAX
    emulator vendor(s) or maintainer(s) for assistance
    and details on their products.) OpenVMS Engineering
    is also well aware of the Intel EM64T platform and
    processors. There are no plans to provide a native port
    of HP OpenVMS for any systems based on the AMD AMD64
    nor Intel EM64T architectures.

    As part of the work leading to the Itanium port, senior
    engineers had extensively evaluated the products and
    the architectures available across the high-end 64-bit
    computing space, and chose to target Itanium for 64-bit
    environments-this while under the Compaq organization.
    This included looking at IA-32. HP (a co-developer of
    Itanium with Intel) had seperately chosen to target
    Intel Itanium for its high-end computer products.
    Compaq then announced plans for the future of Alpha
    through EV7-series products and platforms, and HP
    (entirely seperately) announced plans for PA-RISC
    products and platforms. The Itanium target has been
    maintained consistently since the Itanium port was
    announced by Compaq, and has also been consistently
    maintained by HP and by the combined company. For those
    folks prefering to follow the schedules and the product
    deliveries, OpenVMS Engineering had OpenVMS I64 V8.0
    ready (internally) ahead of schedule-and with more
    features available within the release than had been
    originally planned for the release. (For information
    on and for schedules of future OpenVMS releases,
    please see the roadmap that is available at the OpenVMS
    website.)

    OpenVMS I64 itself does not require and does not plan
    to utilize the Itanium IA-32 32-bit environment for
    the operation of OpenVMS itself. OpenVMS I64 V8.0 and
    later run natively on the Itanium processor family,
    with no use of IA-32 instructions. While OpenVMS

    2-13







    General Information




    can and does support 32-bit OpenVMS applications
    and addressing on Itanium, this is done with sign-
    extension addressing techniques entirely analogous to
    what was done with 32-bit applications operating in
    the 64-bit Alpha environment. Both OpenVMS 32-bit and
    64-bit applications operate within the native Itanium
    instruction set and run-time environment, and do not
    use the Itanium IA-32 environment.

    But yes, a native IA-32 port or a native AMD AMD64 or
    Intel EM64T port of OpenVMS would certainly be nice
    to have-this, of course, following the traditional
    Linux preference for having a Linux port available for
    most (all?) computer architectures known, and even
    for certain high-end refrigerators and toasters,
    and similar appliance-like devices. (The downside
    of this all-encompassing approach: this requires
    near-infinite engineering and support costs from
    the various vendors involved, and the qualification
    efforts and costs of most everything-everywhere. Or
    reduced or eliminated testing and support efforts. Or
    an unfortunate combination of these two. These costs
    are huge, and the benefits derived from the work are
    comparatively small when given the comparable costs
    of more targeted (and thus supported and supportable)
    hardware configurations-the platform targets are and
    must be carefully selected and considered by each
    vendor. Put another way, there are no plans to provide
    a native port of HP OpenVMS for systems based on Intel
    IA-32 processors, nor for systems based on AMD AMD64
    nor Intel EM64T architectures and processors.

    All this material having been written, have you
    looked at the system configurations and pricing of
    the available HP Integrity Intel Itanium systems? Low-
    end computer hardware is clearly a commodity product,
    and the systems are priced, serviced, upgraded, and
    replaced accordingly. Intel Itanium is a commodity
    microprocessor presently used in platforms available
    from various hardware vendors, including (obviously)
    from HP. Further, Itanium is a microprocessor available
    from and supported by Intel, a semiconductor vendor
    known for exceedingly high-volume microprocessor
    fabrication process and production capabilities.

    2-14







    General Information




    For information on supported platforms and processors,
    please see the OpenVMS Software Product Description
    (SPD) at:

    o http://h18000.www1.hp.com/info/spd/

    OpenVMS typically uses SPD 25.01.xx, SPD 41.87.xx,
    and SPD 82.35.xx.

    Please see Section 14.4.5 for Intel Itanium
    terminology.

    __________________________________________________ ________
    2.11 Are there any network-accessible OpenVMS systems?

    Yes, though various restrictions can and do apply.

    o Hobbes
    Hobbes is a MicroVAX 3100 Model 40 for which
    free access and accounts are available to OpenVMS
    enthusiasts. This system has BASIC, Pascal, Fortran,
    and C compilers installed. If you would like an
    account on Hobbes, please see the FAQ at

    o http://www.hobbesthevax.com/

    o OpenVMS Galaxy Test-Drive
    HP currently offers an OpenVMS Galaxy Test-Drive
    system, based on an AlphaServer 4100 series
    configured as two instances of the OpenVMS operating
    system. For details, please visit:

    o http://www.testdrive.hp.com/

    o HP DSPP Test-Drive
    The HP DSPP program offers various test-drive
    systems, including an HP Integrity Itanium
    development system and an HP OpenVMS I64
    installation on an HP Integrity rx2600 server.
    (The DSPP program can offers discount, LMF PAKGEN
    PAK generation support, and other benefits for
    developers.) For details on the DSPP program and
    on the test-drive systems, please see section
    Section 2.8.3 and please visit:

    o http://www.testdrive.hp.com/

    o http://www.hp.com/dspp/

    2-15







    General Information




    The test-drive systems do require registration,
    though access to the systems is free.

    o Encompasserve
    Encompasserve offers free access an OpenVMS Alpha
    system.

    o telnet://eisner.decus.org/

    o OpenECS
    OpenECS offers free access to a VAX 6000 model 530
    system. If interested, please visit:

    o http://vax6k.openecs.org/

    o The Deathrow Cluster
    The maintainers of the Deathrow Cluster offer access
    to an OpenVMS VAX and an OpenVMS Alpha system,
    configured in a cluster.

    o telnet://deathrow.vistech.net

    o The Preatorian Public OpenVMS Cluster
    The maintainers of the Deathrow Cluster offer access
    to an OpenVMS Alpha cluster. Details are at the
    website listed below:

    o http:://www.preatorian.net

    __________________________________________________ ________
    2.12 What version of OpenVMS do I need?

    For information on supported platforms, please see
    the OpenVMS Software Product Description (SPD) for the
    particular OpenVMS version of interest.

    o http://h18000.www1.hp.com/info/spd/

    OpenVMS typically uses SPD 25.01.xx, SPD 41.87.xx,
    and SPD 82.35.xx.

    For a table of the minimum and (as applicable) maximum
    OpenVMS versions required for various platforms, please
    see the hardware support chart at HP OpenVMS website
    and (as available) the following (potentially volatile;
    intra-website) link:

    o http://h71000.www7.hp.com/openvms/hw_
    supportchart.html

    2-16







    General Information




    For information on the Multia, related Alpha
    single-board computers, or other officially
    unsupported systems, please see Section 14.4.1 and
    Section 14.4.2.1.

    The following is a rule-of-thumb for Alpha platform
    support. The table Table 2-5 contains the earliest
    OpenVMS Alpha release with support for a particular
    series of Alpha microprocessors:

    __________________________________________________ ______________
    Table 2-5 OpenVMS Alpha Version Rule-Of-Thumb

    __________________________________________________ _____
    MicroprocessorOpenVMS
    Generic_____Generation____Version_____General_Comm ents_

    EV4 21064 V1.0 few systems;
    most EV4 require
    later; upgrade
    available

    EV5 21164 V6.2 subsequent
    upgrade available

    EV56 21164A V6.2-1H3 subsequent
    upgrade to V7.1
    and later

    EV6 21264 V7.1-2 subsequent
    upgrade typically
    to V7.2-1 or
    later

    EV67 21264A V7.1-2 subsequent
    upgrade typically
    to V7.2-1 or
    later

    EV68 21264B, C V7.2-1 believed/probable;
    and D currently an
    unconfirmed
    _______________________________________________exp ectation______

    Specific hardware present and various system
    configurations can require OpenVMS Alpha releases later
    than those referenced in Table 2-5.

    2-17







    General Information



    __________________________________________________ ________
    2.13 How can I submit OpenVMS Freeware?

    For the guidelines and submission info, please visit
    the URL:

    o http://www.hp.com/go/openvms/freeware/

    To order the current OpenVMS Freeware CD-ROM kit
    (shipping and handling charges apply), please request
    part number QA-6KZAA-H8.

    __________________________________________________ ________
    2.14 Porting applications to OpenVMS?

    Porting can range from simple to rather complex, and
    depends on the features used on the original platform.

    This section covers generic porting, and porting among
    OpenVMS VAX OpenVMS Alpha, and OpenVMS I64. (Porting
    among OpenVMS VAX, OpenVMS Alpha and OpenVMS I64
    is often quite simple and involves little more than
    rebuilding from source, though a few applications using
    features specific to the platform or the architecture,
    or using undocumented or unsupported interfaces can and
    likely will require some additional effort to port.)

    Several manuals on porting from OpenVMS VAX to OpenVMS
    Alpha are available in the OpenVMS documentation set,
    including information on porting VAX Macro32 assembler
    code to the Macro32 compiler on OpenVMS Alpha, on
    management differences, on upgrading privileged code,
    and application migration:

    o http://www.hp.com/go/openvms/doc/

    Documentation on porting to OpenVMS I64 is available,
    as well.

    Details on the C programming environment are available
    at:

    o http://www.openvms.compaq.com/commercial/c/c_
    index.html

    2-18







    General Information




    Details on porting VAX C to HP C are are available at:

    o http://www.openvms.compaq.com/commercial/c/index_
    vax.htm

    An OpenVMS Porting Library is available at:

    o http://www.openvms.compaq.com/ebusiness/Technology.html

    Information on the Enterprise Toolkit, a Visual-based
    development environment for developing applications for
    OpenVMS using a Microsoft platform, is available at:

    o http://www.openvms.compaq.com/commercial/et/et_
    index.html

    Details on DCE, CORBA, BridgeWorks, and COM/DCOM
    middleware is available at:

    o http://www.openvms.compaq.com/commer...iddleware.html

    Information on the COE standards is available at:

    o http://diicoe.disa.mil/coe/

    A wide variety of programming development tools and
    middleware are available as commercial products (eg:
    DECset, IBM WebSphere MQ-formerly MQseries), and
    various tools are also available as shareware or as
    Freeware. Please see other sections of this FAQ, and
    please see:

    o http://www.compaq.com/csa/directory/

    __________________________________________________ ________
    2.15 What resources are available to OpenVMS software
    developers?

    The HP Developer and Software Product Partner (DSPP)
    program is open to and intended to support and to
    assist HP OpenVMS software partners, consultants, and
    service providers:

    o http://www.hp.com/dspp/

    DSPP provides members with various benefits, please see
    the website for details.

    2-19







    General Information




    For those not familiar with the DSPP program or with
    its history, the DIGITAL Association of Software and
    Application Partners (ASAP) program and the DIGITAL
    Independent Software Vendors Network (ISVN) program
    were incorporated into the Compaq CSA program, and the
    CSA program has subsequently been incorporated into the
    HP DSPP program.

    Please see Section 2.8.3 for additional details on the
    DSPP program.

    __________________________________________________ ________
    2.16 memory management, resource management, process
    scheduling, etc?

    So you have been instructed to write a school research
    paper on OpenVMS, and you need technical content
    on the OpenVMS Virtual Memory System, on any memory
    segmentation, on OpenVMS Resource Management, on the
    OpenVMS File System, on the OpenVMS user interface,
    etc.

    Invariably, your professor/instructor/teacher will
    ask you a series of questions. Most commonly, the
    questions will request descriptions of one or more of
    the following items, and at varying levels of detail:

    o process scheduling algorithm(s)

    o Interprocess comunications

    o Process or system synchronization constructs

    o Memory management and/or virtual memory
    implementation

    o RMS or XQP file structures

    o Resource management

    o History of HP OpenVMS

    o History of Compaq and/or of Digital Equipment
    Corporation (DEC)

    2-20







    General Information




    Any particular presentation or research paper, and
    particularly a scholastic presentation, can have
    many different potential target audiences, and very
    different presentation levels. Further, the usual
    underlying reason for scholastic presentations and
    scholastic research projects really has little to do
    with the subject matter, it is a task specifically
    intended to teach the student(s) (eg: you) how to
    perform the research. The instructor already knows
    most of (all of?) the information that you have been
    asked to collect.

    For very technical details on OpenVMS and OpenVMS
    internals, the book you want is the Internals and Data
    Structures Manual (IDSM), available in your school
    or computing center library, and the IDSM can also be
    purchased. Additional technical details of the Alpha
    microprocessor are available in the Alpha Architecture
    Reference Manual documentation that is available for
    download. (Pointers to Alpha technical documentation
    are available in Section 14.6, and elsewhere.)

    For higher-level (less technical) details, the OpenVMS
    documentation set is available on-line. The Programming
    Concepts and the File Systems manual are probably the
    best manuals to start with, depending on the particular
    level of detail the research requires.

    And please understand the hesitation of various folks
    to provide you with a completely-written research
    report on your topic. Why? We might have to work with
    you after you graduate-you need to know how to perform
    at least basic research on your own, regardless of the
    topic.

    __________________________________________________ ________
    2.17 Basic Units of Measurement?

    OpenVMS and the underlying hardware use various units
    of measurement for disk and memory storage, and related
    abbreviations also typically exist. This section
    covers the most common units, and the associated
    abbreviations.

    2-21







    General Information



    _____________________________
    2.17.1 How many bytes are in a disk block?

    A disk block is the minimum unit of disk storage
    allocation in OpenVMS.

    Under OpenVMS VAX and OpenVMS Alpha, the disk volume
    block size is consistent, with each block containing
    512 bytes.

    The minimum disk allocation granularity actually
    permissible (in the ODS-2 and ODS-5 volume structures
    commonly used on OpenVMS) is determined on a per-volume
    basis, and is typically based on a combination of the
    total number blocks on the disk volume and the total
    size of the volume storage bitmap. The allocation
    granularity is known as the volume cluster factor-
    the cluster factor is the number of blocks in a disk
    cluster, and it is the smallest number of blocks that
    can be allocated on a particular disk volume.

    Prior to OpenVMS V7.2, the maximum permissible size of
    the bitmap requires larger cluster factors as volume
    sizes increase. Starting with V7.2, the bitmap can be
    larger, and cluster factors as small as one block can
    be used.

    The number of bytes in a file can be determined by
    multiplying the number of blocks allocated for the file
    times the number of bytes in a block. For sequential
    files (only), the FFB (XAB$W_FFB, in the File Header
    XAB) value can be used to find out how much of the
    last (XAB$L_EBK) block is used. FFB and EBK are
    meaningful only for sequential files, and only in
    a limited context-partial block allocations are not
    permitted. For other file formats, the EOF marker is
    not meaningful.

    Disk allocations always occur only in units of the
    cluster factors, which can be from one block up to
    (potentially) clusters of eighteen blocks or more,
    depending on the volume cluster factor. (OpenVMS V7.2
    and later optionally provide for a cluster factor of
    one up to volumes of approximately 137 gigabytes.)

    2-22







    General Information




    OpenVMS assumes that the device driver and the
    underlying storage device will present the file system
    with addressable units of storage of 512 bytes in size,
    or the appearance of same. Various third-party CD-ROM
    devices, for instance, support only 2048 byte blocks,
    and such devices are incompatible with the standard
    OpenVMS device drivers.

    To determine the number of bytes required for a file
    from DCL, one option uses the f$file_attributes item
    EOF, multiplied by the size of a block in bytes (512).
    This does not account for the unused space in the last
    block of a sequential file, but it also does not have
    to differentiate sequential files from other files.

    _____________________________
    2.17.2 How many bytes are in a memory page?

    A memory page is the minimum unit of memory allocation
    in OpenVMS. With OpenVMS VAX, the memory page size
    matches the disk block size: it is always 512 bytes.

    With OpenVMS Alpha, the memory page size is variable,
    and it can range from 8192 bytes (8 kilobytes) up
    to 64 kilobytes. The current system page size can be
    determined using the sys$getsyi or f$getsyi PAGE_SIZE
    item. Programs with hardcoded constants for the memory
    page size (or page alignment) should always assume a
    page size of 64 kilobytes.

    On OpenVMS I64, the memory page size is also variable,
    ranging from 4096 bytes (4 kilobytes) up to 256
    megabytes (MB) and potentially up to 4 gigabytes (GB).
    As with OpenVMS Alpha, sys$getsyi and f$getsyi and the
    PAGE_SIZE itemcode can and should be used to determine
    the current system page size. In general, OpenVMS I64
    will use a page size of 8 kilobytes, or larger.

    On OpenVMS Alpha and on OpenVMS I64, a 512 byte area
    of memory- equivalent in size to an OpenVMS VAX memory
    page-is often refered to as a "pagelet".



    2-23







    General Information



    _____________________________
    2.17.3 How do I convert? Disk Blocks? KB, MB, GB, TB?

    The smallest granularity of disk storage addressing is
    called a disk block, or sometimes a disk sector. Groups
    of disk blocks are usually organized together into
    the smallest unit of storage that can be allocated,
    and this unit is called a disk cluster. The number
    of blocks in a cluster is the cluster factor, and is
    established when the disk volume is initialized.

    Each individual disk block is composed of five hundred
    twelve (512) bytes, or one-half kilobyte. Each byte is
    comprised of eight bits. A bit represents the smallest
    unit of information, typically refered to as a one or a
    zero.

    OpenVMS tends to uses base two notation for disk
    storage, while disk storage capacity specifications
    from most storage vendors will generally use base ten
    notation.

    An OpenVMS disk block is 512 bytes in size; this is
    one-half kilobyte in base two notation.

    The following table describes the prefix, the
    abbreviation, and the associated base ten (as used by
    marketing and by storage vendors) and base two (OpenVMS
    and various other operating systems) values.

    Base Ten Base Two
    -------------------------------- ----------------------
    Kilobyte (KB) 10**3 1000 2**10 1024
    Megabyte (MB) 10**6 1000000 2**20 1048576
    Gigabyte (GB) 10**9 1000000000 2**30 1073741824
    Terabyte (TB) 10**12 1000000000000 2**40 1099511627776
    Petabyte (PB) 10**15 1000000000000000 2**50 1125899906842624
    Exabyte (EB) 10**18 1000000000000000000 2**60 ****************

    The base ten representation of the 2**40 value is
    1099511627776, which is obviously rather ugly. When
    viewed as a base eight or base sixteen (octal or
    hexadecimal, respectively) value, the value is far
    nicer. Specifically, the value is 10000000000 and
    40000000 when represented in octal and hexadecimal,
    respectively.

    2-24







    General Information




    FAQ Notation

    Within the OpenVMS FAQ, a thousand bits (either
    assuming base two or base ten, as determined by
    the context) is refered to as a kilobit, and is
    always represented by the appreviation Kb, while
    a thousand bytes is refered to as a kilobyte and
    is always abbreviated as KB. Similar notational
    usage also holds for Megabits (Mb) and Megabytes
    (MB), and for the various other units.

    OpenVMS operating system references to system and
    storage are generally to the base-two version (eg:
    1024, in the case of a kilobyte or kilobit) while
    storage hardware references and hardware specifications
    are generally to the base-ten version (eg: 1000).

    To convert OpenVMS disk blocks to (base two) kilobytes
    (KB; 1024 bytes), simply divide by two. To convert
    blocks to (base two) megabytes, divide by 2048. Blocks
    to (base two) gigabytes (GB), divide by 2097152.
    These particular divisions can also be performed using
    bitshifts: to divide a value by two, shift the binary
    value rightward by one bit position.

    To convert OpenVMS disk blocks to (base ten) kilobytes,
    divide by approximately 1.953125.

    For those folks with an interest in odd applications
    for prefixes, and particularly for those folks also
    rummaging around deep within the OpenVMS operating
    system, a microfortnight is approximately one second.












    2-25












    __________________________________________________ _____

    3 Documentation



    __________________________________________________ ________
    3.1 Where can I find online copies of OpenVMS manuals?

    The HP OpenVMS and HP Layered Product documentation is
    copyrighted material.

    HTML format on-line product documentation sets for
    specific HP OpenVMS products are presently available
    at:

    o http://www.hp.com/go/openvms/doc/

    Documentation is offered on separately orderable CD-ROM
    media through a subscription to the Consolidated On-
    Line Documentation (ConOLD) product (see Section 2.6.)
    ConOLD manuals are readable with BNU, a viewer that is
    supplied with the documentation distribution. BNU can
    display HTML, Bookreader, and documentation in other
    formats.

    MGBOOK, a viewer for Bookreader-format documentation
    is available for character-cell terminals (eg. VTxxx)
    via the WKU VMS Freeware file server - see question
    Section 13.1 for details.

    Information on the XPDF DECwindows PDF viewer for
    OpenVMS is available in Section 13.1, and XPDF kits
    are available on various Freeware distributions. An
    alternative on OpenVMS Alpha uses the Adobe Java PDF
    viewer, though this viewer is generally considered
    to be both slower and more resource-intensive when
    compared to the XPDF viewer.






    3-1







    Documentation



    __________________________________________________ ________
    3.2 What online information and websites are available?

    On your OpenVMS system, the HELP command can provide
    a wealth of information, not only on DCL commands
    but on system services (HELP System_Services) and
    Run-Time Library routines (HELP RTL_Routines). The
    introduction displayed when you type the HELP command
    with no additional keywords provides further pointers.

    OpenVMS Marketing runs a web server at
    http://www.hp.com/go/openvms/

    Here, you will find product information, strategy
    documents, product roadmaps, the contents of the latest
    OpenVMS Freeware CD-ROM and more.

    __________________________________________________ ______________
    Table 3-1 OpenVMS Websites

    __________________________________________________ ______________
    URL_______Sponsor_________________________________ ______________

    HP OpenVMS Marketing

    http://www.hp.com/go/openvms/

    Encompass DFWCUG

    http://www.openvmshobbyist.org/

    Arne Vajh°j

    http://www.levitte.org/~ava/

    Saiga Systems

    http://www.saiga.com/

    Wayne Sewell

    http://www.tachysoft.com/

    proGIS Software

    http://www.progis.de/openvms.htm

    Jeff Cameron

    http://www.jcameron.com/vms/

    David Mathog's (quite useful) information about OpenVMS.

    http://seqaxp.bio.caltech.edu/www/soft_doc.html

    Cracking

    3-2







    Documentation



    __________________________________________________ ______________
    Table 3-1 (Cont.) OpenVMS Websites

    __________________________________________________ ______________
    URL_______Sponsor_________________________________ ______________

    "The Beave"
    Includes system cracking information that can be of interest
    to OpenVMS System Managers, and to OpenVMS Network and Security
    Managers.

    http://www.vistech.net/users/beave/hack-vms-faq

    Undocumented Features

    DECUS Deutchland

    http://www.decus.de:8080/www/vms/qaa/undoc.htmlx

    Arne Vajh°j

    http://www.levitte.org/~ava/vms_tip.htmlx

    The OpenVMS Freeware contains various examples of undocumented
    features and interfaces

    http://www.hp.com/go/openvms/freeware/

    Comparision of UNIX and Linux shell commands and DCL Commands

    http://www.mcsr.olemiss.edu/unixhelp/VMStoUNIX.html

    Bibliographies

    http://www.levitte.org/~ava/vms_book.htmlx

    Introductory

    Please see Table 3-2 for listings of introductory web
    sites and related materials.

    Programming

    An OpenVMS Programming FAQ

    http://www.pdv-systeme.de/users/martinv/VMS_
    Programming_FAQ.html

    Networking

    Tutorial information and tips for connecting OpenVMS systems to
    the Internet

    http://www.tmesis.com/internet/

    Documentation and Specifications for DECnet Phase IV, DECnet
    task-to-task DCL examples, and a whole lot more.

    http://www.hp.com/go/openvms/wizard/

    3-3







    Documentation



    __________________________________________________ ______________
    Table 3-1 (Cont.) OpenVMS Websites

    __________________________________________________ ______________
    URL_______Sponsor_________________________________ ______________

    HP OpenVMS Documentation

    Please see Table 3-2 for listings of documentation web
    sites and related materials.

    System Performance

    See Section 14.2.

    Patch (ECO) Kits

    For the HP Services FTP server hosting Various
    contract-access and non-contract access ECO (patch)
    kits, see section Section 5.17.

    Catalogs and Pricing

    HP Product QuickSpecs and product information

    http://www.hp.com/go/productbulletin/

    The HP Systems and Options Catalog (SOC) archive

    http://www.compaq.com/products/
    quickspecs/soc_archives/SOC_Archives.html

    Hardware and Software Archives

    The VAXarchive, including hardware and software information

    http://vax.sevensages.org/index.html

    A VAX to Alpha upgrade diary

    http://www3.sympatico.ca/n.rieck/docs/alpha_diary.html

    Scanned versions of old DIGITAL manuals from DFWCUG

    http://www.montagar.com/~patj/dec/hcps.htm

    A wide variety of HP VAX, Alpha, platform and other product
    documentation. Some introductory, some technical.

    http://www.compaq.com/support/techpubs/qrg/index.html

    dtrwiz's Datatrieve website

    __________http://dtrwiz.home.netcom.com/________________________

    3-4







    Documentation



    __________________________________________________ ________
    3.3 How do I extract the contents of a HELP topic to a text
    file?

    To extract all the text of a HELP topic (and its
    subtopics) to a text file for perusal with a text
    editor, printing out, etc., use the following command:

    $ HELP/OUT=filename.txt help-topic [help-subtopic]

    If the help text you want is not in the standard
    help library (for example, it's help for a utility
    such as MAIL that has its own help library), add
    /LIBRARY=libname after the HELP verb. To see the
    names of help library files, do a directory of
    SYS$HELP:*.HLB.

    __________________________________________________ ________
    3.4 Does OpenVMS Marketing have an e-mail address?

    Yes - if you can't get the answers to marketing
    questions elsewhere, if you have comments or complaints
    about OpenVMS, send mail to openvms-info{atsign}hp.com.
    This address is not a support channel, and is solely
    intended to provide informal method to communicate
    directly with members of OpenVMS Marketing.

    __________________________________________________ ________
    3.5 Where can I learn about OpenVMS executive internals?

    The OpenVMS Internals and Data Structure manual
    (IDSM) explains how the OpenVMS executive works.
    The book covers the operating system kernel: process
    management; memory management; the I/O subsystem; and
    the mechanisms that transfer control to, from, and
    among these. It gives an overview of a particular area
    of the system, followed by descriptions of the data
    structures related to that area and details of the code
    that implements the area.

    The first edition of the OpenVMS Alpha internals book
    describes Version 1.5. Although there have been several
    releases of OpenVMS Alpha since Version 1.5 (V6.1,
    V6.2, V7.0, V7.1, etc) and many details in the book are
    no longer accurate, it continues to provide a strong
    conceptual description of OpenVMS internals.

    3-5







    Documentation




    This book has been split into five pieces, each to be
    updated separately. The first such volume, published
    in early 1997, was "OpenVMS Alpha Internals and
    Data Structures: Scheduling and Process Control,"
    which covers the Version 7.0 implementation of true
    multithreading and the changed scheduling model it
    implies.

    The internals books are available through Digital
    Press, see Section 3.6

    __________________________________________________ ________
    3.6 Where can new users find tutorial information about
    OpenVMS?

    First, see if your local site has information on this
    topic. Each site can have site-specific features and
    configuration. Some sites will have site-specific new
    user's documentation, covering various site-specific
    things that are difficult or impossible for the general
    OpenVMS documentation to cover.

    _____________________________
    3.6.1 Tutorial Websites?

    Various websites with OpenVMS information are
    available; Table 3-2 contains some suggested URLs.

    __________________________________________________ ______________
    Table 3-2 OpenVMS Tutorial and Documentation Websites

    __________________________________________________ _____
    URL_______Sponsor_________________________________ _____

    Introductory

    http://www.levitte.org/~ava/vms_faq.htmlx

    http://seqaxp.bio.caltech.edu/www/vms_sheet.html

    http://seqaxp.bio.caltech.edu/www/vms_beginners_
    faq.html

    Various introductory materials

    http://www.montagar.com/openvms_class/

    3-6







    Documentation



    __________________________________________________ ______________
    Table 3-2 (Cont.) OpenVMS Tutorial and Documentation Websites

    __________________________________________________ _____
    URL_______Sponsor_________________________________ _____

    Members of the Encompass DFWCUG maintain
    a website with many materials available,
    including an Overview of OpenVMS, an
    Introduction to DCL and the TPU Editor,
    Advanced DCL Command Procedures, OpenVMS
    Operations: Batch, Print, Tape, an
    Introduction to OpenVMS Management, to
    OpenVMS User Management, to OpenVMS
    Network Management, and to OpenVMS Cluster
    Management. These training materials have
    been presented at various DECUS symposia.

    http://www.mcsr.olemiss.edu/unixhelp/VMStoUNIX.html

    A comparison table of various command-level
    tasks, with information on the UNIX and Linux
    shell command(s), and on the OpenVMS DCL
    command(s).

    HP OpenVMS Documentation

    http://www.hp.com/go/openvms/doc/

    Various introductory guides as well as more
    advanced manuals are available in the OpenVMS
    and layered product documentation set.

    HP OpenVMS Training

    http://www.compaq.com/training/home.html
    http://www.openvms.compaq.com/wbt/index.html

    HP offers training information and Technical
    Resource Kits (TRKs) and other Training for
    OpenVMS. An OpenVMS certification (testing)
    program is also available.

    http://www.jcameron.com/vms/

    An OpenVMS Quiz

    http://www.CCSScorp.com/

    CCSS Interactive Learning has OpenVMS
    training materials

    3-7







    Documentation



    __________________________________________________ ______________
    Table 3-2 (Cont.) OpenVMS Tutorial and Documentation Websites

    __________________________________________________ _____
    URL_______Sponsor_________________________________ _____

    http://www.acersoft.com/

    AcerSoft Training information, and Shannon
    Knows Punditry

    http://www.mindiq.com/

    MindIQ training information

    http://www.quadratrix.be/

    Quadratrix; OpenVMS training, products and
    services; affiliated with Global Knowledge
    ___________________and_KeyJob_____________________ ______________

    _____________________________
    3.6.2 Books and Tutorials?

    Some of the OpenVMS books that are or have been
    available from the Digital Press imprint

    o http://www.bh.com/

    are listed in Table 3-3:

    __________________________________________________ ______________
    Table 3-3 DP Books

    __________________________________________________ ______________
    Title_and_Author_____________________ISBN_________ ______________

    Getting Started with OpenVMS System 1-55558-281-8
    Management
    David Donald Miller

    Introduction to OpenVMS, 5th 1-55558-194-3
    Edition
    Lesley Ogilvie Rice

    Introduction to OpenVMS 1-878956-61-2
    David W Bynon

    OpenVMS Alpha Internals: Scheduling 1-55558-156-0
    and Process Control

    3-8







    Documentation



    __________________________________________________ ______________
    Table 3-3 (Cont.) DP Books

    __________________________________________________ ______________
    Title_and_Author_____________________ISBN_________ ______________

    OpenVMS AXP Internals and Data 1-55558-120-X
    Structures: Version 1.5

    OpenVMS System Management Guide 1-55558-143-9
    Baldwin, et al

    The OpenVMS User's Guide, Second 1-55558-203-6
    Edition
    Patrick Holmay

    Using DECwindows Motif for OpenVMS 1-55558-114-5
    Margie Sherlock

    VAX/VMS Internals and Data 1-55558-059-9
    Structures: Version 5.2

    Writing Real Programs in DCL, 1-55558-191-9
    Second Edition
    Hoffman and Anagnostopoulos

    Writing OpenVMS Alpha Device 1-55558-133-1
    Drivers in C
    Sherlock_and_Szubowicz____________________________ ______________

    For various featured OpenVMS books, also please see the
    books link at the OpenVMS website:

    o http://www.hp.com/go/openvms

    For a bibliography of various OpenVMS books, please
    see:

    o http://www.levitte.org/~ava/vms_book.htmlx

    __________________________________________________ ________
    3.7 What OpenVMS mailing lists are available?

    Various OpenVMS mailing lists are available, with some
    of the available lists detailed in Table 3-4.

    3-9







    Documentation




    __________________________________________________ ______________
    Table 3-4 OpenVMS Mailing Lists

    __________________________________________________ ______________
    Subscription____________________Interest_Area_____ ______________

    OpenVMS Freeware archive FSupdate@goatley.com
    announcement list FSupdate-request@goatley.com[1]

    Two-way echo of VMSnet-Internals@goatley.com
    vmsnet.internals VMSnet-Internals-
    request@goatley.com[1]

    OpenVMS Alpha Internals Alpha-IDS@goatley.com
    discussions Alpha-IDS-request@goatley.com[1]

    BLISS discussions BLISSters@goatley.com
    BLISSters-request@goatley.com[1]

    Process Software MultiNet Info-MultiNet@process.com
    mailing list (news gateway) Info-MultiNet-
    request@process.com[1]

    Process Software TCPware Info-TCPware@process.com
    mailing list (news gateway) Info-TCPware-
    request@process.com[1]

    Process Software PMDF mailing Info-PMDF@process.com
    list (news gateway) Info-PMDF-request@process.com[1]

    The SRI CHARON-VAX VAX CHARON-VAX-Users@process.com
    emulator package CHARON-VAX-Users-
    request@process.com[1]

    Info-Zip's Zip & UnZip Info-Zip@wku.edu
    discussion list Info-Zip-Request@wku.edu[1]

    RADIUS-VMS, a RADIUS server radius-vms@dls.net
    for OpenVMS discussion forum radius-vms-request@dls.net[1]

    Internet Service Providers vms-isps@dls.net
    (ISPs) running OpenVMS vms-isps-request@dls.net[1]

    __________________________________________________ ______________
    [1]This is the subscription address. Usually, you will want to
    send a mail message with no subject line, and a SUBSCRIBE or
    HELP command in the body of the mail message.

    3-10







    Documentation



    __________________________________________________ ______________
    Table 3-4 (Cont.) OpenVMS Mailing Lists

    __________________________________________________ ______________
    Subscription____________________Interest_Area_____ ______________

    Users of Mark Daniel's WASD http://wasd.vsm.com.au/
    web server for OpenVMS VAX
    and Alpha exists. Information
    about this list server and
    details on how to subscribe to
    the list are available at the
    referenced website.

    VMS Forum http://www.neurophys.wisc.edu/comp/ava/vms_
    ________________________________forum.htmlx_______ ______________

    __________________________________________________ ________
    3.8 What is this Ask The Wizard website I've heard about?

    The HP OpenVMS Ask The Wizard (ATW) website was an
    informal area discussing OpenVMS, containing questions
    and answers on a wide variety of topics.

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    To access a cited topic directly, use the URL filename
    WIZ_topic-number.HTML, or use the topic search engine.
    Cited topics are shown in parentheses, and act as
    unique topic addresses. These should not be confused
    with the relative topic numbers shown at the site.
    For example, the topic (1020) can be accessed directly
    using the URL filename wiz_1020.html, at the web site
    that the following URL resolves into:

    o http://www.hp.com/go/openvms/wizard/

    A zip archive (named wizard.zip) containing all of
    the available topics and questions can be downloaded
    from the above URL. The wizard.zip zip archive is
    completely regenerated when/if existing topics posted
    out to the ATW website are updated. Copies of this
    wizard.zip archive also generally ship out on the
    OpenVMS Freeware, as well.

    3-11


    --

    ---------------------------- #include -----------------------------
    For additional, please see the OpenVMS FAQ -- www.hp.com/go/openvms/faq
    --------------------------- pure personal opinion ---------------------------
    Hoff (Stephen) Hoffman OpenVMS Engineering hoff[at]hp.com


  3. OpenVMS Frequently Asked Questions (FAQ), Part 3/11


    Archive-name: dec-faq/vms/part3
    Posting-Frequency: quarterly
    Last-modified: 11 Apr 2005
    Version: VMSFAQ_20050411-03.TXT








    Documentation




    New (informal) questions and discussions are now being
    directed away from the ATW area to the ITRC area, and
    specifically to the ITRC discussion forums:

    o http://www.itrc.hp.com/

    __________________________________________________ ________
    3.9 Where can I find the latest C run-time library manuals?

    The C run-time library (RTL) reference documentation
    has been moved from the C language documentation set
    to the OpenVMS documentation set. For the most recent
    version of the C RTL documentation and the OpenVMS
    standard C library, please see the OpenVMS manuals.

    In addition to the user-mode C RTL, there is a second
    kernel-mode RTL accessable to drivers on OpenVMS Alpha
    and OpenVMS I64. For details on this second library and
    on the duplicate symbol errors that can be triggered
    when this library is referenced during an incorrectly-
    specified LINK command, please see Section 10.22.1.
    For general information on this kernel RTL, see the
    Digital Press book Writing OpenVMS Device Drivers in C.
    For details, please see the associated OpenVMS source
    listings distribution.

    o http://www.hp.com/go/openvms/doc/

















    3-12












    __________________________________________________ _____

    4 Time and Timekeeping



    This chapter discusses time, timekeeping, system
    time synchronization, clock skew and clock drift,
    implications of using SUBMIT/AFTER=TOMORROW, and other
    time-related topics.

    __________________________________________________ ________
    4.1 A brief history of OpenVMS Timekeeping, please?

    Why does OpenVMS regards November 17, 1858 as the
    beginning of time...

    The modified Julian date adopted by the Smithsonian
    Astrophysical Observatory (SAO) for satellite tracking
    is Julian Day 2400000.5, which turns out to be midnight
    on November 17, 1858.

    SAO started tracking satellites with an 8K (nonvirtual)
    36-bit IBM 704 in 1957 when Sputnik went into orbit.
    The Julian day was 2435839 on January 1, 1957. This is
    11225377 octal, which was too big to fit into an 18-bit
    field. With only 8K of memory, the 14 bits left over by
    keeping the Julian date in its own 36-bit word would
    have been wasted. SAO also needed the fraction of the
    current day (for which 18 bits gave enough accuracy),
    so it was decided to keep the number of days in the
    left 18 bits and the fraction of a day in the right 18
    bits of one word.

    Eighteen bits allows the truncated Julian Day (the SAO
    day) to grow as large as 262143, which from November
    17, 1858, allowed for 7 centuries. Possibly, the date
    could only grow as large as 131071 (using 17 bits),
    but this still covers 3 centuries and leaves the
    possibility of representing negative time. The 1858
    date preceded the oldest star catalogue in use at SAO,
    which also avoided having to use negative time in any
    of the satellite tracking calculations.

    4-1







    Time and Timekeeping




    The original Julian Day (JD) is used by astronomers and
    expressed in days since noon January 1, 4713 B.C. This
    measure of time was introduced by Joseph Scaliger in
    the 16th century. It is named in honor of his father,
    Julius Caesar Scaliger (note that this Julian Day is
    different from the Julian calendar that is named for
    the Roman Emperor Julius Caesar!).

    Why 4713 BC? Scaliger traced three time cycles and
    found that they were all in the first year of their
    cyle in 4713 B.C. The three cycles are 15, 19, and 28
    years long. By multiplying these three numbers (15 * 19
    * 28 = 7980), he was able to represent any date from
    4713 B.C. through 3267 A.D.

    The starting year was before any historical event known
    to him. In fact, the Jewish calendar marks the start
    of the world as 3761 B.C. Today his numbering scheme
    is still used by astronomers to avoid the difficulties
    of converting the months of different calendars in use
    during different eras.

    The following web sites:

    o http://www.openvms.compaq.com/openvms/products/year-
    2000/leap.html

    o http://www.eecis.udel.edu/~ntp/

    o http://www.nist.gov/

    o http://www.boulder.nist.gov/timefreq/

    o http://www.tondering.dk/claus/calendar.html

    o http://es.rice.edu/ES/humsoc/Galileo/Things/gregorian_
    calendar.html

    are all good time-related resources, some general and
    some specific to OpenVMS.

    _____________________________
    4.1.1 Details of the OpenVMS system time-keeping?

    4-2







    Time and Timekeeping



    _____________________________
    4.1.1.1__VAX_hardware_time-keeping details...

    4.1.1.1.1 TOY clock

    This is battery backed up hardware timing circuitry
    used to keep the correct time of year during rebooting,
    power failures, and system shutdown. This clock only
    keeps track of months, days, and time. The time is kept
    relative to January 1st, at 00:00:00.00 of the year the
    clock was initiailized.
    The VAX Time-Of-Year (TOY) clock (used to save the time
    over a reboot or power failure) is specified as having
    an accuracy of 0.0025%. This is a drift of roughly 65
    seconds per month.

    The VAX Interval Time is used to keep the running time,
    and this has a specified accuracy of .01%. This is a
    drift of approximately 8.64 seconds per day.

    Any high-IPL activity can interfere with the IPL 22
    or IPL 24 (this depends on the VAX implementation)
    clock interrupts-activities such as extensive device
    driver interrupts or memory errors are known to slow
    the clock.

    _____________________________
    4.1.1.1.2 EXE$GQ_SYSTIME

    This is the OpenVMS VAX system time cell. This cell
    contains the number of 100ns intervals since a known
    reference. This cell is incremented by 100000 every
    _________10ms_by_an_hardware_interval timer.

    4.1.1.1.3 EXE$GQ_TODCBASE

    This cell contains the time and date the system time
    was last adjusted by EXE$SETTIME. It uses the same
    format as EXE$GQ_SYSTIME. On adjustment of the system
    time a copy of EXE$GQ_SYSTIME is stored in this cell in
    both memory and on disk. This cell is used to get the
    year for the system time.



    4-3







    Time and Timekeeping



    _____________________________
    4.1.1.1.4 EXE$GL_TODR

    This cell contains the time and date the system time
    was last adjusted by EXE$SETTIME. It uses the same
    format as the time of year clock. On adjustment of the
    system time this cell gets saved back to both memory
    and disk. The contents of this cell are used to test
    the validity of the TOY clock.
    The system parameters SETTIME and TIMEPROMPTWAIT
    determine how the system time will be set.

    o IF SETTIME = 0 and the TOY clock is valid
    THEN the contents of the TOY clock are compared to
    those of EXE$GL_TODR. IF the TOY clock is more than
    a day behind EXE$GL_TODR
    THEN the TOY clock is presumed invalid.

    o IF the TOY clock is within a day of EXE$GL_TODR
    THEN the system time is calculated as follows:

    o EXE$GQ_SYSTIME = EXE$GQ_TODCBASE + ((TOY_CLOCK -
    EXE$GL_TODR) * 100000)

    o IF SETTIME = 1 or the TOY clock is invalid
    THEN the value of TIMEPROMPTWAIT determines how to
    reset the time of year. IF TIMEPROMPTWAIT > 0
    THEN the user is prompted for the time and date,
    for a length of time equal to TIMEPROMPTWAIT
    microfortnights.

    o IF TIMEPROMPTWAIT = 0
    THEN the time of year is the value of EXE$GL_TODR
    + 10ms.

    o IF TIMEPROMPTWAIT < 0
    to proceed until they do so.

    o THEN the user is prompted for the time and date
    and unable

    When booting a CD-ROM containing an OpenVMS VAX system,
    the system will typically be deliberately configured
    prompt the user to input the time - this is necessary
    in order to boot with the correct time.

    4-4







    Time and Timekeeping




    If either TIMEPROMPTWAIT or SETTIME are set to zero,
    OpenVMS VAX will use the TOY clock to get the time
    of year, and the year will be fetched from the
    distribution medium. The value of the year on the
    distribution medium (saved within the SYS.EXE image)
    will most likely be that of when the kit was mastered,
    and cannot be changed. Unless the current year happens
    to be the same year as that on the distribution, most
    likely the year will be incorrect. (Further, with the
    calculation of Leap Year also being dependent on the
    current year, there is a possibility that the date
    could be incorrect, as well.)

    _____________________________
    4.1.1.2__Alpha_hardware_time-keeping details...

    4.1.1.2.1 Battery-Backed Watch (BB_WATCH) Chip

    This is battery backed up hardware timing circuitry
    used to keep the correct time of year during rebooting,
    power failures, and system shutdown. This clock keeps
    track of date and time in 24 hour binary format.
    The BB_WATCH time is used to initialize the running
    system time during bootstrap, and the BB_WATCH time
    is read when the SET TIME command is issued with no
    parameters; when the running system time is reset to
    the value stored in the BB_WATCH. The running system
    time is written into the BB_WATCH when the SET TIME
    command is issued with a parameter.

    The specification for maximum clock drift in the Alpha
    hardware clock is 50 parts per million (ppm), that
    is less than ▒0.000050 seconds of drift per second,
    less than ▒0.000050 days of drift per day, or less
    than ▒0.000050 years of drift per year, etc. (eg: An
    error of one second over a day-long interval is roughly
    11ppm, or 1000000/(24*60*60).) Put another way, this
    is .005%, which is around 130 seconds per month or 26
    minutes per year.

    The software-maintained system time can drift more than
    this, primarily due to other system activity. Typical
    causes of drift include extensive high-IPL code (soft
    memory errors, heavy activity at device IPLs, etc) that

    4-5







    Time and Timekeeping




    are causing the processing of the clock interrupts to
    be blocked.

    _____________________________
    4.1.1.2.2 EXE$GQ_SYSTIME

    This is the OpenVMS Alpha system time cell. This cell
    contains the number of 100ns intervals since November
    17, 1858 00:00:00.00. This cell is incremented by
    _________100000_every_10ms_by an hardware interval timer.

    4.1.1.2.3 EXE$GQ_SAVED_HWCLOCK

    This cell is used by OpenVMS Alpha to keep track of the
    last time and date that EXE$GQ_SYSTIME was adjusted. It
    keeps the same time format as EXE$GQ_SYSTIME. The value
    in this cell gets updated in memory and on disk, every
    time EXE$GQ_SYSTIME gets adjusted.

    o The system parameters SETTIME and TIMEPROMPTWAIT
    determine how the system time will be set.

    o If SETTIME = 0
    then EXE$INIT_HWCLOCK reads the hardware clock to
    set the system time.

    o IF TIMEPROMPTWAIT > 0
    THEN the value of TIMEPROMPTWAIT determines how
    long the user is prompted to enter the time
    and date. If time expires and no time has been
    entered the system acts as if TIMEPROMPTWAIT = 0.

    o IF TIMEPROMPTWAIT = 0
    THEN the system time is calculated from the
    contents of EXE$GQ_SAVED_HWCLOCK + 1.

    o IF TIMEPROMPTWAIT < 0
    THEN the user is prompted for the time and date
    and unable to continue until the information is
    entered.

    Unlike the VAX, the Alpha hardware clock tracks the
    full date and time, not just the time of year. This
    means it is possible to boot from the CD-ROM media
    without entering the time at the CD-ROM bootstrap.
    (This provided that the time and date have been
    initialized, of course.)

    4-6







    Time and Timekeeping




    IA-64 (Itanium) hardware time-keeping details to be
    added...

    _____________________________
    4.1.1.3 Why does VAX need a SET TIME at least once a year?

    Because the VAX Time Of Year (TOY) has a resolution of
    497 days, the VAX system time is stored using both the
    TOY and the OpenVMS VAX system image SYS.EXE. Because
    of the use of the combination of the TOY and SYS.EXE,
    you need to issue a SET TIME command (with the time
    parameter specified) at least once between January 1st
    and about April 11th of each year, and whenever you
    change system images (due to booting another OpenVMS
    VAX system, booting the standalone BACKUP image, an ECO
    that replaces SYS.EXE, etc).

    The SET TIME command (with the current time as a
    parameter) is automatically issued during various
    standard OpenVMS procedures such as SHUTDOWN, and it
    can also obviously be issued directly by a suitably
    privileged user. Issuing the SET TIME command (with a
    parameter) resets the value stored in the TOY, and (if
    necessary) also updates the portion of the time (the
    current year) saved in the SYS.EXE system image.

    This VAX TOY limit is the reason why OpenVMS VAX
    installation kits and standalone BACKUP explicitly
    prompt for the time during bootstrap, and why the time
    value can "get weird" if the system crashes outside the
    497 day window (if no SET TIME was issued to update the
    saved values), and why the time value can "get weird"
    if a different SYS$SYSTEM:SYS.EXE is used (alternate
    system disk, standalone BACKUP, etc).

    _____________________________
    4.1.2 How does OpenVMS VAX maintain system time?

    VAX systems maintain an interval clock, and a hardware
    clock.

    The VAX hardware clock is called the TOY ("Time Of
    Year") clock. The register associated with the clock is
    called the TODR ("Time Of Day Register").

    4-7







    Time and Timekeeping




    The TOY clock-as used-stores time relative to January
    first of the current year, starting at at 00:00:00.00.
    It is a 100 Hz, 32-bit counter, incremented every 10ms,
    and thus has a capacity of circa 497 days.

    OpenVMS (on the VAX platform) stores system date
    information-and in particular, the current year-in
    the system image, SYS$SYSTEM:SYS.EXE.

    The TOY is used, in conjunction with the base date
    that is stored and retrieved from the system image, to
    initialize the interval clock value that is stored in
    EXE$GQ_SYSTIME.

    Once the interval clock is loaded into the running
    system as part of the system bootstrap, the system
    does not typically reference the TOY again, unless a
    SET TIME (with no parameters) is issued. The interval
    clock value is updated by a periodic IPL22 or IPL24
    (depending on the specific implementation) interrupt.
    (When these interrupts are blocked as a result of the
    activity of higher-IPL code-such as extensive driver
    interrupt activity or a hardware error or a correctable
    (soft) memory error-the clock will "loose" time, and
    the time value reported to the user with appear to have
    slowed down.)

    When SET TIME is issued with no parameters, the TOY
    clock is loaded into the system clock; the running
    system clock is set to the time stored in the TOY
    clock. This assumes the TOY clock is more accurate
    than the system clock, as is normally the case.

    On most (all?) VAX systems, the battery that is
    associated with the TOY clock can be disconnected and
    replaced if (when) it fails-TOY clock failures are
    quite commonly caused by a failed nickel-cadmium (NiCd)
    or lithium battery, or by a failed Dallas chip.






    4-8







    Time and Timekeeping



    __________________________________________________ ________
    4.2 Keeping the OpenVMS system time synchronized?

    To help keep more accurate system time or to keep
    your system clocks synchronized, TCP/IP Services NTP,
    DECnet-Plus DTSS (sometimes known as DECdtss), DCE
    DTS, and other techniques are commonly used. If you do
    not or cannot have IP access to one of the available
    time-base servers on the Internet, then you could use
    dial-up access to NIST or other authoritative site, or
    you can use a direct connection to a local authorative
    clock.

    There exists code around that processes the digital
    (ie: binary) format time that is available via a
    modem call into the NIST clock (the Automated Computer
    Telephone Service (ACTS) service), and code that grabs
    the time off a GPS receiver digital link, or a receiver
    (effectively a radio and a codec) that processes the
    time signals from radio stations WWV, WWVH, WWVB, or
    similar.

    Processing the serial or hardware time protocols
    often involves little more than reading from an EIA232
    (RS232) serial line from the receiver, something that
    is possible from most any language. Information on
    correctly drifting the OpenVMS system clock to match
    the time-base time is available within the logic of at
    least one OpenVMS Freeware package.

    One example of acquring a time-base through local
    integrated hardware involves the IRIG time format
    (IRIG-A, -B, -G), a binary signal containing the
    current time in hours, minutes, seconds and days
    since the start of the current year. IRIG can also
    contain the time of day as the number of seconds since
    midnight. HP Custom Systems and third-party vendors
    have variously offered IRIG-based reader/generator
    modules for OpenVMS systems.

    One of the easiest approaches is a network-based
    GPS or other similar receiver. Basically, this is a
    network server box that provides an NTP server with
    the necessary hardware for external synchronization.
    In addition to the antenna and the receiver and
    processing components, these devices provide a network

    4-9







    Time and Timekeeping




    interface (NIC) and support for an NTP time server,
    and applications including the NTP support within
    TCP/IP Services and within various third-party IP
    stacks can then be used to synchronize with the the NTP
    information provided by time-base receivers. No other
    host software is required, and no host configuration
    steps and no host software beyond NTP are required.

    Differing time servers (DECnet-Plus DTSS, DCE DTS, NTP,
    etc) do not coexist particularly well, particularly if
    you try to use all these together on the same node.
    Please pick and use just one. (If needed, you can
    sometimes configure one package to acquire its timebase
    from another protocol, but one and only one time server
    package should have direct control over the management
    of and drifting of the local OpenVMS system time. In
    the specific case of DECnet-Plus DTSS, older product
    versions and versions V7.3 and later provide a provider
    module, a module which permits DTSS to acquire its time
    from NTP. For details on this, please see the comments
    in the module DTSS$NTP_PROVIDER.C.)

    Unlike DECnet-Plus, TCP/IP Services NTP is not capable
    of connecting to a time-base other than the network
    time base or the local system clock. Third-party and
    open source NTP implementations are available for
    OpenVMS, as well.

    Useful URLs:

    o http://www.boulder.nist.gov/timefreq/service/nts.htm

    o http://www.boulder.nist.gov/timefreq/service/acts.htm

    o http://www.boulder.nist.gov/timefreq/

    o http://www.time.gov/

    _____________________________
    4.2.1 Why do my cluster batch jobs start early?

    Your system time is skewed across your cluster members,
    and the cluster member performing the queue management
    tasks has a system time set later than the system time
    of the member running the batch job.

    4-10







    Time and Timekeeping




    This behaviour is most noticable when using
    SUBMIT/AFTER=TOMORROW and similar constructs, and
    use of /AFTER="TOMMOROW+00:01:00" or such is often
    recommended as a way to avoid this. The combination
    time value specified should be larger than the maximum
    expected time skew. In the example shown, the maximum
    cluster clock skew is assumed less than 1:00.

    You can also maintain your system times in better
    synchronization, with available tools described in
    Section 4.2 and elsewhere.

    _____________________________
    4.2.2 Why does my OpenVMS system time drift?

    Memory errors, hardware problems, or most anything
    operating at or above IPL 22 or IPL 24 (clock IPL is
    system family dependent; code executing at or above
    the clock IPL will block the processing of clock
    interrupts), can cause the loss of system time. Clock
    drift can also be caused by normal (thermal) clock
    variations and even by the expected level of clock
    drift.

    When clock interrupts are blocked as a result of the
    activity of high-IPL code-such as extensive driver
    interrupt activity or a hardware error or a correctable
    (soft) memory error-the clock will "loose" time, and
    the time value reported to the user with appear to have
    slowed down. Correctable memory errors can be a common
    cause of system time loss, in other words. Heavy PCI
    bus traffic can also cause lost time.

    One bug in this area involved the behaviour of certain
    graphics controllers including the ELSA GLoria Synergy
    PBXGK-BB; the PowerStorm 3D10T effectively stalling
    the PCI bus. See Section 5.16 for details on the ELSA
    GLoria Synergy controller, and make certain you have
    the current GRAPHICS ECO kit installed.

    Clock drift can also be (deliberately) caused by the
    activity of the DTSS or NTP packages.

    Also see Section 4.1.1.2.1, Section 4.1.1, and
    Section 4.2.4.

    4-11







    Time and Timekeeping



    _____________________________
    4.2.3 Resetting the system time into the past?

    You can resynchronize system time using DCL commands
    such as SET TIME and SET TIME/CLUSTER, but these
    commands can and obviously will cause the current
    system time to be set backwards when the specified time
    predates the current system time. This time-resetting
    operation can cause application problems, and can
    adversely effect applications using absolute timers,
    applications that assume time values will always be
    unique and ascending values, and applications.

    Setting the time backwards by values of even an hour
    has caused various run-time problems for applications
    and layered products. For this reason, this technique
    was not considered supported during the Year 2000 (Y2K)
    testing; a system or cluster reboot was strongly
    recommended as the correct means to avoid these
    problems.

    Application programmers are encouraged to use the time-
    related and TDF-related events that are available with
    the $set_system_event system service, and/or to use
    UTC or similar time, as these techniques can permit
    the application to better survive retrograde clock
    events. (There is an ECO to repair problems seen in
    the DECnet-Plus support for generating TDF events from
    DTSS, and this applies to V7.3 (expected to be in ECO4
    and later) V7.3-1 (expected to be in ECO3 and later)
    and V7.3-2 (expected to be in ECO1 and later). Apply
    the most current DECnet-Plus ECO kits for these OpenVMS
    releases, for best TDF event support from DECnet-Plus.)

    See Section 4.2.4 and Section 4.2.1.

    _____________________________
    4.2.4 How can I drift the OpenVMS system time?

    With DECdts and TCP/IP Services NTP, the system time
    value is "drifted" (rather than changed), to avoid the
    obvious problems that would arise with "negative time
    changes". The same basic clock drifting technique is
    used by most (all?) time servers operating on OpenVMS,
    typically using the support for this provided directly
    within OpenVMS.

    4-12







    Time and Timekeeping




    An example of the technique used (on OpenVMS VAX)
    to drift the system time is the SETCLOCK tool on the
    OpenVMS Freeware.

    For information on the use of the EXE$GL_TIMEADJUST and
    EXE$GL_TICKLENGTH cells on OpenVMS Alpha, see OpenVMS
    AXP Internal and Data Structures, located on page 348.

    For those areas which switch between daylight savings
    time (DST) and standard time, the time value is not
    drifted. The time is adjusted by the entire interval.
    This procedure is inherent in the definition of the
    switch between DST and standard time. (Do look at
    either not switching to daylight time, or (better)
    using UTC as your time-base, if this change-over is not
    feasible for your environment.)

    See Section 4.2.4 and Section 4.2.3.

    _____________________________
    4.2.5 How can I configure TCP/IP Services NTP as a time
    provider?

    An NTP time provider provides its idea of the current
    time to NTP clients via the NTP protocol. Most systems
    are NTP clients, but...

    NTP has a heirarchy of layers, called strata. The
    further away from the actual NTP time source (Internet
    time servers are at stratum 1), the lower the strata
    (and the larger the number assigned the statum).

    NTP explicity configured at stratum one provides time
    to NTP operating at lower strata, and the provided time
    is acquired based on the local system time or via some
    locally-accessible external time source.

    NTP at other (lower) strata both receive time from
    higher strata and can provide time to lower strata,
    and automatically adjust the local stratum. The highest
    stratum is one, and the lowest available stratum is
    fifteen.

    The TCP/IP Services NTP package can operate at any
    stratum, and can be configured as a peer, as a client,
    or as a broadcast server. NTP can also provide time to
    a DECnet-Plus DTSS network, see Section 4.2.

    4-13







    Time and Timekeeping




    With TCP/IP Services V5.0 and later, the only supported
    reference clock is the LCL (local system clock). If
    your system has an excellent clock or if the system
    time is being controlled by some other time service
    or peripheral (such as DTSS services, GPS services,
    a cesium clock, a GPIB controller or other similar
    time-related peripheral), you can configure NTP to use
    the system clock as its reference source. This will
    mimic the master-clock functionality, and will configre
    NTP as a stratum 1 time server. To do this, enter the
    following commands in TCPIP$NTP.CONF:

    server 127.127.1.0 prefer
    fudge 127.127.1.0 stratum 0

    For local-master functionality, the commands are very
    similiar. Use:

    server 127.127.1.0
    fudge 127.127.1.0 stratum 8

    The difference between these two is the stratum, and
    the omission of the prefer keyword. Specifying a higher
    stratum allows the node to act as a backup NTP server,
    or potentially as the sole time server on an isolated
    network. The server will become active only when all
    other normal synchronization sources are unavailable.
    The use of "prefer" causes NTP to always use the
    specified clock as the time synchronization source.

    With the TCP/IP Services versions prior to V5.0,
    the NTP management is rather more primitive. To
    configure the local OpenVMS system from an NTP
    client to an NTP server (on TCP/IP Services versions
    prior to V5.0), add the following line to the
    sys$specific:[ucx$ntp]ucx$ntp.conf file:

    master-clock 1

    Also, for TCP/IP Services prior to V5.0, see the NTP
    template file:

    SYS$SPECIFIC:[UCX$NTP]UCX$NTP.TEMPLATE

    4-14







    Time and Timekeeping




    Note that NTP does not provide for a Daylight Savings
    Time (DST) switch-over, that switch must arise from
    the timezone rules on the local system and/or from the
    SYS$EXAMPLESAYLIGHT_SAVINGS procedure. (Further,
    there is a known bug in SYS$EXAMPLESAYLIGHT_
    SAVINGS.COM in V7.3, please obtain the available ECO
    kit.)

    For current TCP/IP Services and related OpenVMS
    documentation, please see:

    o http://www.hp.com/go/openvms/doc/

    __________________________________________________ ________
    4.3 Managing Timezones, Timekeeping, UTC, and Daylight Savings?

    You will want to use the command procedure:

    o SYS$MANAGER:UTC$TIME_SETUP.COM

    to configure the OpenVMS Timezone Differential Factor
    (TDF) on OpenVMS V6.0 and later. Select the BOTH
    option. This configures the OpenVMS TDF settings,
    though it may or may not configure the TDF and the
    timezone rules needed or used by other software
    packages. Please do NOT directly invoke the following
    command procedures:

    o SYS$MANAGER:UTC$CONFIGURE_TDF.COM ! do not directly
    use

    o SYS$MANAGER:UTC$TIMEZONE_SETUP.COM ! do not directly
    use

    TCP/IP Services V5.0 and later use the OpenVMS TDF,
    UTC, and timezone support. Earlier versions use a TDF
    mechanism and timezone database that is internal to the
    TCP/IP Services package. Also on the earlier versions,
    the TDF must be manually configured within TCP/IP
    Services, in addition to the OpenVMS configuration
    of the TDF.

    DECnet-Plus in V7.3 and later uses the OpenVMS TDF,
    UTC, and timezone support, and displays its timezone
    prompts using UTC$TIME_SETUP.COM. Earlier versions use
    a TDF TDF mechanism, timezone database, and automatic
    switch-over that is internal to the DECnet-Plus

    4-15







    Time and Timekeeping




    package. Also on earlier versions, the TDF must be
    configured within the DECnet-Plus DECdtss package, in
    addition to the OpenVMS configuration of the TDF.

    Application code using HP C (formerly Compaq C,
    formerly DEC C) will use the OpenVMS UTC and TDF
    mechanisms when the C code is compiled on OpenVMS V7.0
    and later (and when the macro _VMS_V6_SOURCE is NOT
    defined). HP C does NOT use the OpenVMS UTC and TDF
    mechanisms when the C code is compiled on OpenVMS
    releases prior to V7.0, or when the preprocessor
    declaration _VMS_V6_SOURCE is declared.

    DCE DTS TDF management details to be determined.

    In OpenVMS Alpha V6 releases (V6.1, V6.2, V6.2-1Hx,
    etc), the TDF value is written to SYS$BASE_IMAGE.EXE.
    With OpenVMS Alpha V7.0 and later and with OpenVMS VAX
    V6.0 and later, SYS$SYSTEM:SYS$TIMEZONE.DAT contains
    the TDF. This means that OpenVMS Alpha systems will
    need to have the TDF value reset manually-usually
    within SYSTARTUP_VMS.COM-on reboots prior to V7.0.

    During OpenVMS Bootstrap, the SYSINIT module reads
    SYS$TIMEZONE.DAT to acquire the TDF for use in the
    system global cell EXE$GQ_TDF. This is done to ensure
    that the system boots with a valid TDF (a value which
    may be zero). The UTC system services get the TDF
    from this cell. These services, as well as the HP C
    RTL, must have a valid TDF. (Prior to OpenVMS V7.3,
    if either DECnet-Plus or DECnet/VAX Extensions is
    configured and run, the image DTSS$SET_TIMEZONE.EXE
    is invoked and can override the TDF and timezone rule
    settings from SYSINIT or from UTC$TIME_SETUP.COM-
    this image runs even if DTSS is disabled. If the
    settings do not match (due to inconsistencies in
    timezone specification in UTC$TIME_SETUP.COM and
    NET$CONFIGURE.COM), DTSS will reset the values to match
    its definitions.)

    Prior to OpenVMS V7.3, daylight savings time switchover
    is handled automatically only when DCE DTS or DECnet-
    Plus DTSS is in use. In V7.3, OpenVMS can be configured
    to automatically switch over to daylight savings
    time, and also generates an event that interested

    4-16







    Time and Timekeeping




    applications can use to detect the switch-over between
    standard time and daylight time.

    The manual switchover between daylight savings time
    and standard time is correctly accomplished via the
    SYS$EXAMPLESAYLIGHT_SAVINGS.COM command procedure
    procedure.

    Note

    NTP (alone) does NOT provide automatic switch-
    over.

    Note

    The DST switch-over does NOT drift the time
    value; the switch-over applies the entire
    difference as a unit, as is standard and expected
    practice. (Do look at either not switching
    to daylight time, or (better) using UTC as
    your time-base, if this one-hour change is
    not feasible within your environment.) (For
    information associated with drifting the systen
    time, please see Section 4.2.4.)

    If you switch the TDF or daylight savings time setting,
    you will also want to restart or reconfigure any time-
    sensitive applications (those not using the time
    differential factor (TDF) change event available in
    V7.3 and later). Examples of these applications can
    include the need to restart the NFS client and NTP. (In
    the case of NTP, will want to try to "drift" the time
    (see Section 4.2 and see Section 4.2.4), and will find
    that the daylight savings time switch-over will exceed
    the NTP-defined maximum threshold allowed for drifting.
    Hence the NTP restart is required.)

    _____________________________
    4.3.1 Creating and Managing Timezone Definitions?

    One issue with the UTC implementation on OpenVMS is
    the behaviour of C functions and other programs that
    use SYS$TIMEZONE_RULE; the OpenVMS mechanism assumes
    all control over the timezone and the daylight time
    switchover. This allows calculation of the time by the
    C library and various applications.

    4-17







    Time and Timekeeping




    This can be incompatible with a system or application
    that requires manual modifications to the DST or TDF
    settings, or that requires a local or customized
    timezone definition. For such a site to ensure
    the timekeeping is correct, the site must provide
    procedure that sets the local time and the TDF when
    the SYS$TIMEZONE_RULE says to do it.

    If a site requires a non-standard time switch-over, as
    in coordinating with a shift change or due to changes
    in the local or regional timezone rules, the site
    will need to use the zic compiler to create a custom
    timezone rule.

    Additionally, applications may need to have special
    actions taken or actions queued just before the time
    change takes effect. If the application source code is
    available, one of the best ways to handle this is via
    the TDF and time-change notification events available
    via the OpenVMS sys$set_system_event system service.

    For information on zic and related tools used to manage
    the OpenVMS Timezone database, please see the DEC C
    Run-time Library Utilities Reference Manual-though the
    title would imply otherwise, this particular manual
    is part of the OpenVMS documentation set, and not
    part of the HP C (formerly Compaq C, formerly DEC C)
    documentation set.

    For related information, see Section 4.3.4.

    _____________________________
    4.3.2 Timezones and Time-related Logical Names?

    Various logical names are used to manage time and
    timezones, and you should avoid direct modification
    of these logical names as the implementations are
    subtle and quick to change. As discussed in section
    Section 4.3.3, you will want to use the following
    command procedure to maintain the time and the
    timezone:

    o SYS$MANAGER:UTC$TIME_SETUP.COM

    4-18







    Time and Timekeeping




    If you want to venture into uncharted territories and
    modify the TDF used within older releases of TCP/IP
    Services-within releases prior V5.0-you can attempt to
    use the following undocumented commands:

    SET TIME/DIFF=[positive or negative TDF integer]
    GENERATE TIME

    to reset the value of the logical name UCX$TDF.

    Prior to OpenVMS V7.3, the command:

    $ SETTZ :== $SYS$SYSTEMTSS$SET_TIMEZONE
    $ SETTZ MODIFY

    can be used to modify the settings of the SYS$TIMEZONE_
    DAYLIGHT_SAVING, SYS$TIMEZONE_DIFFERENTIAL, and
    SYS$TIMEZONE_NAME system logical names based on the
    SYS$TIMEZONE_RULE.

    The following are other TDF-related logical names
    used/available on OpenVMS systems, with typical
    Daylight Savings and Standard Settings for the US
    Eastern Time (ET) timezone.

    $daylight_time:
    $ DEFINE/SYSTEM/EXECUTIVE MAIL$TIMEZONE EDT
    $ DEFINE/SYSTEM/EXECUTIVE NOTES$TIMEZONE "-0400 EDT"
    $ DEFINE/SYSTEM/EXECUTIVE LISP$DAYLIGHT_SAVING_TIME_P true ! Not 'EDT'
    $ DEFINE/SYSTEM/EXECUTIVE LISP$TIME_ZONE 05 ! Constant
    $
    $standard_time:
    $ DEFINE/SYSTEM/EXECUTIVE MAIL$TIMEZONE EST
    $ DEFINE/SYSTEM/EXECUTIVE NOTES$TIMEZONE "-0500 EST"
    $ DEFINE/SYSTEM/EXECUTIVE LISP$DAYLIGHT_SAVING_TIME_P false ! Not 'EST'
    $ DEFINE/SYSTEM/EXECUTIVE LISP$TIME_ZONE 05 ! Constant
    $
    $ DEFINE/SYSTEM/EXECUTIVE UCX$NFS_TIME_DIFFERENTIAL -
    'f$integer(f$element(0," ",f$logical("notes$timezone"))/-100)'

    For information on modifying these timezone logical
    names and on managing the timezone rules, see
    Section 4.3.1.

    4-19







    Time and Timekeeping



    _____________________________
    4.3.3 How to troubleshoot TDF problems on OpenVMS?

    This is an OpenVMS Alpha system prior to V7.0 and the
    startup is not invoking the procedure:

    SYS$MANAGER:UTC$TIME_SETUP.COM

    This is an OpenVMS system prior to V6.0, where there is
    no OpenVMS TDF nor UTC available.

    The version of the application does not use the
    OpenVMS TDF. This includes TCP/IP Services prior to
    V5.0, applications using HP C built on or targeting
    OpenVMS prior to V7.0, and systems using the DECnet-
    Plus DTSS mechanisms prior to the release associated
    with OpenVMS V7.3. (DCE DTS TDF management details to
    be determined.)

    If you should find either of the following two
    timezone-related database files located in
    SYS$SPECIFIC:[SYSEXE]:

    o SYS$SPECIFIC:[SYSEXE]SYS$TIMEZONE.DAT

    o SYS$SPECIFIC:[SYSEXE]SYS$TIMEZONE_SRC.DAT

    These two files are in an erroneous location and must
    be recreated in the correct directory:

    SYS$COMMON:[SYSEXE]

    If the DCL command:

    $ DIRECTORY SYS$SYSTEM:SYS$TIMEZONE*.DAT

    shows these files in SYS$SPECIFIC:[SYSEXE], then delete
    them and use SYS$MANAGER:UTC$TIME_SETUP.COM to recreate
    them.

    On OpenVMS versions prior to V7.3, if the file:

    $ SYS$STARTUPTSS$UTC_STARTUP.COM

    is present on your system, then you may need to invoke:

    $ @SYS$UPDATETSS$INSTALL_TIMEZONE_RULE.COM

    to recreate the timezone files correctly. Invoke
    this command immediately after [re]executing
    SYS$MANAGER:UTC$TIME_SETUP.COM.)

    4-20







    Time and Timekeeping




    If SYS$UPDATETSS$INSTALL_TIMEZONE_RULE.COM is not
    present on your system, then you may need to execute
    the following commands:

    $ DELETE SYS$STARTUPTSS$UTC_STARTUP.COM
    $ DEASSIGN/SYSTEM/EXEC SYS$TIMEZONE_RULE.

    If your system time is being reported as being off by
    one hour (or whatever the local DST change), please see
    sections Section 4.6, Section 4.3 and Section 10.22.1.

    _____________________________
    4.3.4 Customizing your TDF (Timezone) Setting?

    Individual, local, and regional differences on the use
    (or the lack of use) of Daylight Savings Time (DST) are
    quite common.

    If you need to add (or remove) daylight savings
    time for your area or otherwise alter the rules for
    your local area, you will probably end up creating a
    variation to an existing timezone rule.

    The necessary zone line to add for WhereEverLand will
    probably look something like this:

    # Zone NAME GMTOFF RULES/SAVE FORMAT [UNTIL]
    Zone WhereEver 2:00 - WhereEver

    The OpenVMS source files for the timezone rules are
    stored here:

    SYS$COMMON:[SYS$ZONEINFO.SYSTEM.SOURCES]

    You'll then want to use zic to create your own timezone
    definition.

    The zic compiler is documented in the OpenVMS
    Documentation Set, in the HP C Run-Time Library
    Reference Manual. (Despite the name of this manual,
    it is part of the OpenVMS documentation set and not of
    the C manuals.)

    Once you have created the new rule, use
    SYS$MANAGER:UTC$TIME_SETUP.COM to select the new
    timezone-with V7.3 and later, this tool will notice the
    new timezone and will offer it, on earlier releases,
    you may/will have to hack the tool somewhat.

    4-21







    Time and Timekeeping




    Note

    As mentioned in Section 4.3.2, please don't
    modify or redefine the TZ logical name (found on
    older configurations), or the SYS$TIMEZONE_NAME
    logical name, or any other time- or timezone-
    related logical names directly yourself. Rather,
    please use the zic compiler and/or the UTC$TIME_
    SETUP.COM procedure.

    For various timezone rules, see the tar.gz files (these
    are gzipped tar archives) available at:

    o ftp://elsie.nci.nih.gov/pub/

    For related information, see Section 4.3.1.

    __________________________________________________ ________
    4.4 Why does the SET TIME command fail? Help managing DTSS?

    If you try to set the system time with the SET TIME
    command, and see one of the following messages:

    %SET-E-NOTSET, error modifying time
    -SYSTEM-F-IVSSRQ, invalid system service request

    %SET-E-NOTSET, error modifying time
    -SYSTEM-E-TIMENOTSET, time service enabled;
    enter a time service command to update the time

    This occurs if the time on the local system is
    controlled by a time service software, for example
    the distributed time service software (DTSS) provided
    as part of the DECnet-Plus installation. The DTSS
    software communicates with one or more time servers
    to obtain the current time. It entirely controls the
    local system time (for DECnet-Plus, there is a process
    named DTSS$CLERK for this); therefore, the usage of
    the SET TIME command (and the underlying $SETTIM system
    service) is disabled.

    The first message is displayed on systems running
    DECnet-Plus V6.1 and earlier. On systems with newer
    DECnet-Plus software, the second (and more informative)
    message is given.

    4-22







    Time and Timekeeping




    You shouldn't have to change the time manually - you
    should be doing this through the time server - but if
    you insist... you'll have to shutdown DTSS:

    $ RUN SYS$SYSTEM:NCL
    DISABLE DTSS
    DELETE DTSS

    This will shutdown DTSS$CLERK. You may then change the
    system time as usual. To restart the DTSS software,
    type

    $ @SYS$STARTUPTSS$STARTUP

    You will need a number of privileges to ussue this
    command, and you must also be granted the NET$MANAGE
    identifer to shutdown and to restart DTSS.

    If you wish to "permanently" disable DTSS on a system
    running DECnet-Plus, the above NCL sequence must be
    performed each time the system is bootstrapped. (On
    DECnet-Plus V7.3 and later, you can define the logical
    name NET$DISABLE_DTSS to disable the DTSS startup. This
    logical name must be defined in the command procedure
    SYLOGICALS.COM, as this logical name must be present
    and defined sufficiently early in the OpenVMS system
    bootstrap sequence for it to function.)

    If DTSS is running and no time servers are configured,
    you can (and will) see the following messages at
    regular intervals:

    %%%%%%%%%%% OPCOM 2-SEP-1999 19:41:20.29 %%%%%%%%%%%
    Message from user SYSTEM on UNHEDI
    Event: Too Few Servers Detected from: Node LOCAL:.mynode DTSS,
    at: 1999-09-02-19:41:20.296-04:00Iinf
    Number Detected=0,
    Number Required=1
    eventUid 5FA70F4F-616E-11D3-A80E-08002BBEDB0F
    entityUid DE9E97DE-6135-11D3-8004-AA000400BD1B
    streamUid D6513A46-6135-11D3-8003-AA000400BD1B

    You can either configure the appropriate number of time
    servers, or you can disable DTSS, or you can ignore it
    and (if OPCOM is set to write to the log via via the
    logical names in SYLOGICALS.COM/SYLOGICALS.TEMPLATE)
    clean out OPERATOR.LOG regularly.

    4-23







    Time and Timekeeping




    You can also simply disable the display of these
    messages:

    $ run sys$system:ncl
    block event dispatcher outbound stream local_stream -
    global filter -
    ((Node, DTSS), Too Few Servers Detected)

    If you wish to disable the automatic TDF adjustment
    for daylight savings time (on OpenVMS versions prior to
    V7.3), you can use the command:

    $ run sys$system:ncl
    set dtss automatic TDF change = false

    or alternatively, you can set the local timezone to one
    that does not include the automatic daylight savings
    time change-over.

    OpenVMS V7.3 and later simplify time and timezone
    management.

    __________________________________________________ ________
    4.5 Setting time on AlphaServer ES47, ES80, GS1280 console?

    To set the base system time on an member of the
    AlphaServer ES47, AlphaServer ES80 or AlphaServer
    GS1280 series system family, you must access the
    Platform Management Utility (PMU). The PMU is
    implemented within this family of related AlphaServer
    systems, and is part of a layer providing services
    beyond those of the traditional Alpha SRM console
    layer, and within a layer architecturally implemented
    beneath the SRM console. In particular, the PMU and
    related management components are used to provide
    services across multiple vPars or nPars partitions.
    In particular, the SRM obtains and manages the local
    system time on these systems as a delta time offset
    from the underlying base system time. Neither the
    SRM console nor OpenVMS directly accesses nor alters
    the underlying base system time nor other information
    maintained within the PMU layer.


    4-24







    Time and Timekeeping




    The PMU uses the System Management components,
    centrally including the Backplane Manager (MBM) module
    found in each drawer, user interface, PCI and CPU
    management components, and the interconnections among
    these provided by the private system management LAN.
    When the system has power applied and the main breakers
    are on, the MBMs are active.

    The PMU offers a command line interface for a serial
    communications or telnet connection and allows command
    and control of the MBM, and of the server. The PMU and
    the MBM system management components are responsible
    for the following tasks:

    o Show the system configuration and provide the basic
    debugging capability

    o Initiate the firmware update or load the test
    firmware version

    o Power on or off, halt, or reset the system or
    partition

    o The system partitioning and cabling functions

    o Displays of the health of hardware environment,
    including such constructs as fans, power supplies
    and environmental and temperature values.

    o Remote server management tasks

    o The connection to the virtual SRM console

    o Set and show the base system time.

    You can use the MBM commands SHOW TIME and SET TIME to
    view and to manipulate the base system time. The delta
    time value for the primary MBM will be indicated, and
    it is this value in conjunction with the base time that
    is used to generate the time available to OpenVMS via
    the SRM console. If you issue a SET TIME=time command
    from OpenVMS, the delta time will change, but not the
    MBM base system time. If you change the MBM base system
    time, the calculated time available to OpenVMS via the
    SRM console(s) will change. (Resetting the base time
    thus involves changing the base system time, and then
    issuing SET TIME=time command(s) to each of the OpenVMS

    4-25







    Time and Timekeeping




    vPars or nPars environments to adjust the respective
    delta time values.) Rebooting, resetting or issuing an
    MBM SET TIME will reset the system time.

    The time and data values stored in the primary MBM
    and replicated in the zero or more secondary MBMs that
    might be present within the system are coordinated.

    To enter the PMU from the SRM console, and to exit back
    to SRM:

    MBM - (PMU, Platform Management Utility)

    From SRM P00> enter {Esc} {Esc} MBM
    CTRL/[ CTRL/[ MBM (MBM must be uppercase)
    MBM> connect (to exit to SRM)

    The is the escape character. Use the cited
    key sequences to enter the PMU. You can also access
    the PMU through a modem, or from a terminal or terminal
    emulator or terminal server connected to the server
    management LAN. Having the server management LAN
    bridged to an untrusted LAN can be unwise, however,
    and with risks analogous to those of configuring a
    traditional VAX or Alpha console serial line to an open
    terminal server or to a dial-in modem.

    See the AlphaServer GS1280

    __________________________________________________ ________
    4.6 UTC vs GMT vs vs UT1/UT1/UT2 TDF? What are these acronyms?

    The results of an international compromise-though
    some would say an international attempt to increase
    confusion-UTC is refered to as "Coordinated Universal
    Time" (though not as CUT) in English and as "Temps
    Universel CoordinnÚ" (though not as TUC) in French.
    (No particular information exists to explain why UTC
    was chosen over the equally nonsensical TCU, according
    to Ulysses T. Clockmeister, one of the diplomats that
    helped establish the international compromise.)

    Universal Time UT0 is solar time, UT1 is solar time
    corrected for a wobble in the Earth's orbit, and UT2
    is UT1 corrected for seasonal rotational variations in
    rotation due to the Earth's solar orbit.

    4-26







    Time and Timekeeping




    GMT-Greenwich Mean Time-is UT1. GMT is the time
    at the classic site of the since-disbanded Royal
    Greenwich Observatory; at the most widely-known tourist
    attraction of Greenwich, England.

    UTC is based on an average across multiple atomic
    clocks, and is kept within 0.9 seconds of GMT, through
    the insertion (or removal) of seconds. In other words,
    UTC matches GMT plus or minus up to 0.9 seconds, but
    UTC is not GMT.

    TDF is the Timezone Differential Factor, the interval
    of time between the local time and UTC. Areas that
    celebrate daylight savings time (DST) will see periodic
    changes to the TDF value, when the switch-over between
    daylight savings time and standard time occurs.
    The switch-over itself is entirely left to local
    governmental folks, and can and has varied by political
    entity and politics, and the switch-over has varied
    over the years even at the same location.

    If your local OpenVMS system time is off by one
    hour (or whatever the local DST change) for some or
    all applications, you probably need to reset your
    local TDF. (For related details, please see sections
    Section 4.3 and Section 10.22.1.)

    Further discussions of history and politics, the Royal
    Observers' outbuildings, and the compromise that left
    the English with the Time Standard (the Prime Meridian)
    and the French with the standards for Distance and
    Weight (the Metric System) are left to other sources.
    Some of these other sources include the following URLs:

    o ftp://elsie.nci.nih.gov/pub/

    o http://physics.nist.gov/GenInt/Time/time.html

    o http://nist.time.gov/





    4-27












    __________________________________________________ _____

    5 System Management Information



    __________________________________________________ ________
    5.1 What is an installed image?

    The term "install" has two distinct meanings in
    OpenVMS. The first relates to "installing a product",
    which is done with either the SYS$UPDATE:VMSINSTAL.COM
    command procedure or the POLYCENTER Software
    Installation (PCSI) utility (PRODUCT command). The
    second meaning relates to the use of the INSTALL
    utility, which is what concerns us here.

    The INSTALL utility is used to identify to OpenVMS
    a specific copy of an image, either executable or
    shareable, which is to be given some set of enhanced
    properties. For example, when you issue the SET
    PASSWORD command, the image SYS$SYSTEM:SETP0.EXE is
    run. That image needs to have elevated privileges to
    perform its function.

    The other important attribute is /SHARED. This means
    that shareable parts of the image (typically read-only
    code and data) are loaded into memory only once and are
    shared among all users on a system. Executable images
    can be installed /SHARED as well as shareable library
    images. (The term "shareable" has dual meanings here,
    too. See the OpenVMS Programming Concepts Manual for
    further details.)

    It's important to note that there is no such thing as
    "installing a shareable image with privileges". The
    INSTALL utility will let you do it, but the privileges
    you specify will be ignored. To have a callable routine
    run with enhanced privileges that are not available
    to its caller, you must construct your routines as
    "user-written system services" (UWSS) and install
    the shareable image with the /PROTECT qualifier.
    See the OpenVMS Programming Concepts Manual for more
    information on user-written system services. Note also
    that in many cases the need to grant privileges to an

    5-1







    System Management Information




    image can be replaced with the use of the "Protected
    Subsystems" feature that grants a rights identifier to
    an image. See the OpenVMS Guide to System Security for
    information on Protected Subsystems.

    __________________________________________________ ________
    5.2 Are there any known viruses for OpenVMS?

    Viruses and worms are common on personal computers
    because the operating systems involved, such as
    the Microsoft MS-DOS, Windows 95, Windows 98 and
    Windows ME variants, do not particularly protect
    the operating system or the file system against
    hostile action by programs. Microsoft Windows NT,
    Windows 2000 and Windows XP do implement protections
    for specific configurations and do implement memory
    protection models, but many users of these systems
    choose to operate with full adminstrator access and
    thus the available protections are entirely defeated
    and entirely not relevent, and any program that can
    activate itself or can cause the user to activate the
    code can subvert the operating system and take over the
    hardware, at which point the malicious code can do most
    anything it wishes, including hiding copies of itself
    in other programs or in the file system, redistributing
    itself via mail, IM, or network connections, or can be
    used as a zombie in staging attacks on other systems.

    This is less likely with multi-user systems such as
    OpenVMS, Unix, Linux, MVS and other platforms for
    various reasons. First, the operating system runs in a
    privileged mode in memory that is protected against
    modification by normal user programs. Any program
    cannot simply take over the hardware as it can on
    operating systems without security and particularly
    without memory page protections. Secondly, multi-
    user systems can be set up so that non-privileged
    programs cannot modify system programs and files on
    disk, and this is normal for most installations. Both
    of these protection schemes mean that traditional viral
    infections don't work on these OSes. Third, typical
    applications and configurations tend to prevent the
    uncontrolled execution of untrusted code as part
    of received mail messages or web access; one of the

    5-2







    System Management Information




    central vulnerabilities of the Microsoft Windows
    platform involves its intentionally easy ability to
    dynamically (and transparently) activate code and
    macros that are embedded within mail messages and
    within data files.

    It is possible for OpenVMS and other multi-user systems
    to become infected by viruses or worms, but to do so,
    the program containing the virus must be run from a
    user account that has amplified privileges. So long as
    the system administrator is careful that only trusted
    applications are run from such accounts (and this
    is generally the case) and so long as there are no
    OpenVMS system security breaches (due to malicious
    operator activity, OpenVMS errors, or errors within
    trusted and privileged product packages) there is
    no of modifications to the operating system or other
    protected files from the virus or the worm.

    The FAQ maintainer is aware of a few (and very old)
    DECnet worms that have affected OpenVMS systems on
    DECnet networks ("WANK" was one), but is aware of no
    OpenVMS viruses that are loose in the field.

    To protect against viruses and other attempts at
    system interference or misuse, please follow the
    security recommendations in the OpenVMS Guide to System
    Security. Additionally, you will want to keep your
    OpenVMS ECOs current and you will want to apply all
    mandatory ECO kits and any security MUPs for OpenVMS
    and OpenVMS products, and you will want to keep to
    OpenVMS releases with Prior Version Support (PVS) or
    with Current Version Support. (This is obviously a
    general system maintenance recommendation, in addition
    to being a good system security recommendation-new
    security features and capabilities are implemented in
    more recent OpenVMS releases, for instance.) You may
    also want to consider optional software products which
    can monitor your system for intrusion or infection
    attempts. Computer Associates (CA) offers various
    products in this area, as to other vendors.

    Rocksoft offers the Veracity data integrity tool (for
    info, send mail to demo@rocksoft.com). MD5 tools are
    also available.

    5-3







    System Management Information




    Tools to scan OpenVMS file systems for Microsoft
    Windows infections are and have been available,
    including a commercial package from Sophos , and a
    port of the open source Clam Antivirus scanner at
    http://www.clamav.net/ and with an OpenVMS port at
    http://fafner.dyndns.org/~alexey/clamav.zip.

    These scanning tools are particularly useful for
    systems running Samba or Advanced Server (PATHWORKS),
    as these servers tend to have a higher population of
    files intended for Microsoft Windows systems users,
    and as common virus and worm attacks can find and
    infect files on the file shares that these products can
    provide. These infections do not target OpenVMS itself,
    though the OpenVMS server (and any other platform and
    any other server capable of storing files for Windows
    systems) can silently host files containing common
    Microsoft Windows infections.

    __________________________________________________ ________
    5.3 Sources of OpenVMS security information?

    Where can I get information on OpenVMS system security?

    o http://www.hp.com/go/openvms/doc

    o http://www.blacksheepnetworks.com/se...urces/openvms/

    __________________________________________________ ________
    5.4 How do I mount an ISO-9660 CD on OpenVMS?

    ISO-9660 support was added in the following releases:

    o OpenVMS VAX V6.0

    o OpenVMS AXP V1.5

    An add-on ISO-9660 kit was also available for OpenVMS
    VAX V5.5, V5.5-1, V5.5-2, and V5.5-2H4. This requires
    the installation of the F11CD kit from the InfoServer
    CD, from the Consolidated Distribution CD under the
    InfoServer area, or the F11CD ECO kit. (Upgrades to V6
    and later are strongly recommended.)

    5-4







    System Management Information




    By default, OpenVMS senses the specific type of media.
    If you are working with dual-format media-media that
    uses both the ODS-2 and ISO-9660 formats on the same
    CD-ROM-then MOUNT will first detect and then default
    to the ODS-2 format. If you wish to override this and
    explicitly mount the media using ISO-9660, use the
    command:

    $ MOUNT/MEDIA_FORMAT=CDROM device-name[:] [volume-label]

    In most circumstances, you will not need nor will
    you want to include an explicit /MEDIA_FORMAT
    specification. For further information, please refer to
    the OpenVMS MOUNT Utility Manual. Particularly note the
    information on the MOUNT /MEDIA_FORMAT and /UNDEFINED_
    FAT qualifiers.

    The MOUNT /UNDEFINED_FAT qualifier is of interest
    because ISO-9660 media can be mastered on a wide
    variety of operating system platforms, and these
    platforms do not necessarily support the semantics
    needed for files containing predefined record formats.
    The /UNDEFINED_FAT allows you to specify the default
    attributes for files accessed from volumes using the
    ISO-9660 format.

    An example which works for most CD-ROMs is:

    $ MOUNT/MEDIA_FORMAT=CDROM/UNDEFINED_FAT=STREAM:2048 DUA0: FREEWARE

    This particular MOUNT command forces access to the
    CD-ROM media using the ISO-9660 volume structure, and
    the use of the MOUNT /UNDEFINED_FAT qualifier causes
    any file whose file attributes are "undefined" to be
    returned with "stream" attributes with a maximum record
    length 2048.

    On OpenVMS, the ISO-9660 format is (internally)
    considered to be the ODS-3 file structure, while the
    High Sierra extensions to the standard are considered
    to be the ODS-4 file structure. The Rock Ridge
    extensions are not currently available on OpenVMS.


    5-5







    System Management Information




    For details on ODS-1 and ODS-2 file specifications,
    see Kirby McCoy's VMS File System Internals Manual
    (published by Digital Press, but potentially out of
    print), and see:

    o http://pdp-11.trailing-edge.com/www/ods1.txt

    o Look for the Freeware V5.0 directory ODS2 at
    http://www.hp.com/go/openvms/freeware/

    __________________________________________________ ________
    5.5 How do I extract the contents of a PCSI kit?

    A growing number of OpenVMS products are being provided
    in PCSI (POLYCENTER Software Installation) kits which
    are installed using the PRODUCT INSTALL command. These
    are alternatives to or replacement for VMSINSTAL kits
    which were BACKUP savesets. PCSI kits are not BACKUP
    savesets and are structured differently from VMSINSTAL
    kits.

    If you want to extract product files from a PCSI
    kit, create a directory into which the kit should be
    expanded and use the following command:

    $ PRODUCT COPY prodname /SOURCE=[where-the-kit-is] -
    /DEST=[destination-directory] /FORMAT=REFERENCE

    A PCSI kit file has a file specification of the
    following form:

    DEC-VAXVMS-FORTRAN-V0603-141-1.PCSI

    In this example, "FORTRAN" is the "prodname". PCSI
    will expand the kit files into the directory you
    specify and subdirectories beneath such as [SYSEXE],
    [SYSLIB], etc., reflecting the eventual destination
    of files found there. Most of the actual product
    files (images, etc.) will be in the subdirectories.
    In the top-level directory will be a file with the
    file type PCSI$DESCRIPTION that specifies where various
    files should go. For more details, see the POLYCENTER
    Software Installation Developer's Guide for OpenVMS,
    which can be found in the OpenVMS documentation on the
    Consolidated Online Documentation CD-ROM.

    5-6







    System Management Information



    __________________________________________________ ________
    5.6 Emergency (Conversational) System Startup?

    If you need to perform system management operations
    on an OpenVMS system and cannot access the system
    through normal means-the password on the SYSTEM
    username was forgetten and no other privileged
    usernames are available, or one or more core system
    product authorization key (PAK) software licenses
    are unavailable or expired-then you must perform a
    conversational (emergency) bootstrap.

    Here are the steps:

    1 Halt the system. Exactly how this is done depends
    on the specific system model: Depending on the
    model, this can involve pressing the button,
    entering on the console, or pressing the
    key on the console.

    2 At the console prompt, use a console command to
    boot into the SYSBOOT utility. (SYSBOOT allows
    conversational changes to system parameters.) (The
    console syntax for the conversational bootstrap
    varies by system model and by system architecture-
    this typically involves specifying a flag with
    the lowest bit set. See Section 14.3.5 for related
    details.) For example:

    On VAX, use one of the following three commands
    depending on the particular model of VAX system
    involved:

    B/R5:1
    B/1
    @GENBOO

    On Alpha:

    b -flags 0,1

    If your system has a non-zero system root (such
    as root SYSE, shown here), you will have to use a
    console command such as the following:

    5-7







    System Management Information




    On VAX:

    B/E0000001
    B/R5:E0000001
    @

    On Alpha:

    b -flags e,1

    On the IA-64 architecture systems, you can establish
    and manage an EFI boot alias for a conversational
    bootstrap as discussed in Section 14.3.5.1 and
    in Section 14.3.10, or you can use VMS_LOADER.EFI
    interactively as shown here. Of the core mechanisms
    discussed in Section 14.3.5.1, the following uses
    an EFI Shell command to perform a conversational
    bootstrap of root SYSE via the partition device
    fsn:. There are alternative mechanisms available.

    fsn:\efi\vms\vms_loader.efi -flags e,1

    If your Alpha system has a hardware password
    (various systems support a password that prevents
    unauthorized access to the console), you will need
    to know theis password and will need to enter it
    using the LOGIN or similar command at the console.
    If you get an "Inv Cmd" error trying to perform a
    conversational bootstrap, and you do not have the
    hardware console password for the console LOGIN
    command, you are stuck-you will need to call for
    hardware service for assistance in resetting the
    hardware console password. The implementation and
    the syntax used for the console password mechanism
    does vary by implementation.

    3 Once at the SYSBOOT prompt, request that OpenVMS
    read the system startup commands directly from the
    system console, that the window system (if any)
    not be started, and that OpenVMS not record these
    particular parameter changes for subsequent system
    reboots:


    5-8







    System Management Information




    SET/STARTUP OPA0:
    SET WINDOW_SYSTEM 0
    SET WRITESYSPARAMS 0
    CONTINUE

    4 At the $ prompt, the system will now be accepting
    startup commands directly from the console. Type the
    following two DCL commands:

    $ SPAWN
    $ @SYS$SYSTEM:STARTUP

    5 You should now see the dollar ($) prompt of DCL.

    The result of these two commands will be the normal
    system startup, but you will be left logged in
    on the console, running under a fully privileged
    username. Without the use of the SPAWN command, you
    would be logged out when the startup completes.

    Perform the task(s) required, such as resetting
    the password on the SYSTEM username as described
    in Section 5.6.1 or registering one or more license
    product authorization keys (PAKs) as described in
    Section 5.6.2.

    6 Once you log out of this session, the system will
    complete the startup and can be used normally. You
    can choose to reboot the system, but that is not
    necessary.

    Some system managers will suggest a method using
    the UAFALTERNATE system parameter rather than the
    SET/STARTUP OPA0: command shown. This approach is
    not always available and is accordingly less commonly
    recommended, as there can easily be an alternate user
    authorization database (SYS$SYSTEM:SYSUAFALT.DAT)
    configured on the system. With a system manager that
    has configured an alternate SYSUAFALT.DAT file, the
    UAFALTERNATE method will fail-well, assuming you do
    not know the password of a privileged username stored
    within SYSUAFALT.DAT, of course.


    5-9







    System Management Information




    The UAFALTERNATE system parameter is used to trigger
    what is sometimes known as the console backdoor. The
    OPA0: system console is critical to system operations
    and system security, and will allow access when the
    SYSUAF system authorization database is unavailable
    or corrupted, when core product license PAKs are not
    registered, expired or disabled (NOLICENSE errors), or
    in various other cases of system failures. All this is
    in addition to the role of the console in the display
    of certain system-critical event messages. Access
    to the OPA0: console has a security exposure that is
    equivalent to direct access to the system hardware.

    When LOGINOUT detects an error (such as a SYSUAF
    corruption, by a missing SYSUAF, missing product
    licenses, or other trigger), it will prevent access
    to the OpenVMS system from all terminals except the
    system console. The OPA0: system console will be
    allowed access, and the resulting process will be
    fully privileged. Resetting the UAFALTERNATE system
    parameter-in the absence of an alternate SYSUAF system
    authorization database-will cause the console backdoor
    to be opened simply because LOGINOUT cannot locate
    SYS$SYSTEM:SYSUAFALT.DAT. When the authorization
    database cannot be located, access will be granted
    from the console only.

    For further information on emergency startup and
    shutdown, as well as for the official OpenVMS
    documentation on how to change the SYSTEM password from
    the console in an emergency, please see the OpenVMS
    System Manager's Manual in the OpenVMS documentation
    set.

    For information and recommendations on setting up
    OpenVMS system security, please see the NCSC Class
    C2 appendix of the Guide to OpenVMS System Security
    manual, also in the OpenVMS documentation set.

    You can also use the conversational bootstrap technique
    shown earlier (the steps until SET/STARTUP) to alter
    various system parameters, as well. At the SYSBOOT
    prompt, you can enter new parameters values:

    5-10







    System Management Information




    SHOW MAXPROCESSCNT
    SET . 64
    CONTINUE

    The <.> is a shorthand notation used for the last
    parameter examined within SYSGEN and SYSBOOT.

    _____________________________
    5.6.1 I've forgotten the SYSTEM password - what can I do?

    If you have forgotten or do not have the password
    for the SYSTEM username, you must perform the
    conversational bootstrap as described in Section 5.6,
    and must enter the following commands once you have
    reached the dollar ($) prompt:

    $ SET DEFAULT SYS$SYSTEM: ! or wherever your SYSUAF.DAT resides
    $ RUN SYS$SYSTEM:AUTHORIZE
    MODIFY SYSTEM /PASSWORD=newpassword
    EXIT

    You have now reset the password on the SYSTEM
    username.

    _____________________________
    5.6.2 My product licenses have expired - what can I do?

    If you have a system with no licenses for OpenVMS or
    for OpenVMS users and thus cannot log into the OpenVMS
    system normally, you should be able to log into the
    console serial terminal-this is the terminal device
    known as OPA0:-and perform the commands necessary.

    For systems that are not configured with an accessable
    console serial terminal-as can be the case with how
    some DECwindows workstations are configured-you
    must log in over the network or from a local serial
    connection. If you cannot log in over a network
    connection (SET HOST, telnet, etc) or from another
    local serial terminal connection, you will have to
    halt the system and perform a conversational bootstrap
    as described in Section 5.6. You must then enter
    licensing-related commands once the conversational
    bootstrap has reached the dollar ($) prompt.

    5-11


    --

    ---------------------------- #include -----------------------------
    For additional, please see the OpenVMS FAQ -- www.hp.com/go/openvms/faq
    --------------------------- pure personal opinion ---------------------------
    Hoff (Stephen) Hoffman OpenVMS Engineering hoff[at]hp.com


  4. OpenVMS Frequently Asked Questions (FAQ), Part 5/11


    Archive-name: dec-faq/vms/part5
    Posting-Frequency: quarterly
    Last-modified: 11 Apr 2005
    Version: VMSFAQ_20050411-05.TXT







    System Management Information




    know nor have access to the (cleartext) passwords of
    other users.

    Accordingly, OpenVMS does not store the cleartest
    password. Further, OpenVMS uses a password hashing
    algorithm, not an encryption algorithm. This means that
    storage of a cleartext password is deliberated avoided,
    and the cleartext value is deliberately very difficult
    to obtain. The hash is based on a Purdy Polynomial,
    and the hash itself includes user-specific values in
    addition to the password, values that make the results
    of the password hash unique to each user.

    Regardless of the use of a password hashing scheme, if
    a copy of your password file should become available to
    a system cracker, you will want to force all users to
    use new passwords immediately.

    If you should require a user to verify a password,
    use the username, the user's salt value (this value
    is acquired via $getuai) and the user's specified
    cleartext password, and compare the resulting hashed
    value (using a call to $hash_password) against the
    saved hashed password value (this value also acquired
    via $getqui). For reasons of security, avoid saving
    a cleartext password value in any data files, and do
    not maintain the cleartext password in memory longer
    than required. (Use of sys$acm on V7.3-1 and later is
    recommended.)

    Kerberos authentication (client and server) is
    available on OpenVMS V7.3 and later. Integration of
    Kerberos support into various Compaq and into third-
    party products is expected.

    External authentication is available in V7.3-1
    and later, with support for user-written external
    authentication in V7.3-2 and later.

    If you are simply looking for OpenVMS access and
    the SYSTEM and all other privileged passwords are
    forgotten or otherwise unavailable, please see section
    Section 5.6 and/or the OpenVMS documentation set.

    Also please see the NCSC C2 guidelines in the OpenVMS
    security manual.

    5-51







    System Management Information



    __________________________________________________ ________
    5.42__Please_help_me_with_the OpenVMS BACKUP utility?

    5.42.1 Why isn't BACKUP/SINCE=BACKUP working?

    If you are seeing more files backed up than previously,
    you are seeing the result of a change that was made to
    ensure BACKUP can perform an incrementation restoration
    of the files. In particular, if a directory file
    modification date changes, all files underneath it are
    included in the BACKUP, in order to permit incremental
    restoration should a directory file get renamed.

    _____________________________
    5.42.1.1 Why has OpenVMS gone through the agony of this change?

    When a directory is renamed, the modified date is
    changed. When the restoration needs to restore the
    directory and its contents, and the restoration should
    not result in the restoration of the older directory
    name when a series of incremental BACKUPs are restored.
    Thus an incremental BACKUP operation needs to pick up
    all of the changes.

    Consider performing an incremental restoration, to
    test the procedures. This testing was how OpenVMS
    Engineering found out about the problem that was
    latent with the old BACKUP selection scheme-the
    old incremental BACKUP scheme would have missed
    restoring any files under a renamed directory. Hence
    the change to the selection mechanisms mentioned in
    Section 5.42.1.

    _____________________________
    5.42.1.2 Can you get the old BACKUP behaviour back?

    Yes, please see the /NOINCREMENTAL qualifier available
    on recent OpenVMS versions (and ECO kits). Use of
    this qualifier informs BACKUP that you are aware of
    the limitations of the old BACKUP behaviour around
    incremental disk restorations.




    5-52







    System Management Information



    _____________________________
    5.42.2 What can I do to improve BACKUP performance?

    Use the documented commands in the manual for
    performing incremental BACKUPs. Use the documented
    incremental procedures. Don't try to use incremental
    commands in a non-incremental context.

    Also consider understanding and then using /NOALIAS,
    which will likely be a bigger win than will anything to
    do with the incremental BACKUPs, particularly on system
    disks and any other disks with directory aliases.

    See the OpenVMS V6.2 release notes for additional
    details.

    _____________________________
    5.42.3 Why is BACKUP not working as expected?

    First, please take the time to review the BACKUP
    documentation, and particularly the BACKUP command
    examples. Then please download and install the most
    current BACKUP eco kit. Finally, please please set the
    process quotas per the System Management documentation.
    These steps tend to resolve most problems seen.

    BACKUP has a very complex interface, and there
    are numerous command examples and extensive user
    documentation available. For a simpler user interface
    for BACKUP, please see the documentation for the
    BACKUP$MANAGER tool.

    As for recent BACKUP changes, oddities, bugs, etc:

    o A change made in OpenVMS V6.2 WILL cause more files
    to be included into a file-based BACKUP saveset
    using /SINCE=BACKUP as all files underneath any
    directory with a sufficiently recent (selected)
    date will be included in the saveset. This change
    was deliberate and intentional, and was mandated
    by the need to provide a functional incremental
    restoration.

    Without the inclusion of these apparently-extra
    files, an incremental saveset can NOT be reliably
    restored.

    5-53







    System Management Information




    o As part of the OpenVMS V6.2 change, the /SINCE
    command-without the specification of the =BACKUP
    keyword-selected more files than it should have.
    This is a bug. This bug has been remedied in the
    OpenVMS BACKUP source code and in some of (all of?)
    the BACKUP ECO kits.

    When working with BACKUP, you will want to:

    o Ensure you have your process quotas set per the
    recommendations in the OpenVMS System Management
    documentation. Deviation from these values can and
    will lead to access violation (ACCVIO) and other
    untoward behaviour.

    o Get the current BACKUP ECO kit and install it BEFORE
    you attempt to troubleshoot any problems.

    o Learn about the /NOINCREMENTAL (new) and /NOALIAS
    (V6.2 and later) command qualifiers. The former
    qualifier returns to the pre-V6.2 behaviour of the
    /SINCE file selection mechanism, while the latter
    (specified with /IMAGE) reduces the replication
    of files on system disks and other disks with file
    alias and directory alias entries. Both of these can
    reduce the numbers of files that will be selected
    and thus included into the saveset.

    Learn what /IGNORE=INTERLOCK means. This command
    probably does not provide what you think it does-
    those file system interlocks that this command is
    ignoring were implemented for a reason, after all.
    Ignoring these interlocks can lead to missed data
    and potentially to corruptions to individual files
    stored within the output saveset, corruptions that
    may or may not be reported. For details on this
    BACKUP command qualifier, please see the Ask The
    Wizard topic (2467).

    When working with the BACKUP callable API:

    o Build your applications with the most current BACKUP
    API available. Changes made to the V7.1-2 and V7.2
    API were incompatible with the V7.1 and V7.2-1 and
    later APIs, and this incompatibility was repaired
    via a BACKUP ECO kit. Do NOT build your application

    5-54







    System Management Information




    with the versions of the BACKUP API that shipped
    with V7.1-2 and V7.2, as these are incompatible with
    the BACKUP API constants that were used on other
    versions.

    _____________________________
    5.42.4 How do I fix a corrupt BACKUP saveset?

    BACKUP savesets can be corrupted by FTP file transfers
    and by tools such as zip (particularly when the zip
    tool has not been asked to save and restore OpenVMS
    file attributes or when it does not support OpenVMS
    file attributes), as well as via other means of
    corruptions.

    If you have problems with the BACKUP savesets after
    unzipping them or after an FTP file transfer, you can
    try restoring the appropriate saveset attributes using
    the tool:

    $ @RESET_BACKUP_SAVESET_FILE_ATTRIBUTES.COM

    This tool is available on the OpenVMS Freeware (in
    the [000TOOLS] directory). The Freeware is available
    at various sites-see the Freeware location listings
    elsewhere in the FAQ-and other similar tools are also
    available from various sources.

    In various cases, a SET FILE/ATTRIBUTES command can
    also be used. As the parameters of this command must be
    varied as the target BACKUP saveset attributes vary,
    this approach is not recommended.

    Also see the "SITE VMS", /FDL, and various other file-
    attributes options available in various FTP tools. (Not
    all available FTP tools support any or all of these
    options.)

    Browser downloads (via FTP) and incorrect (binary or
    ascii FTP transfer modes) are notorious for causing
    RMS file corruptions and particularly BACKUP saveset
    corruptions. You can sometimes help encourage the
    browser to select the correct FTP transfer type code
    (via RFC1738):

    o ftp://host/urlname.ext;type=i ! request ftp
    image/binary transfer

    5-55







    System Management Information




    o ftp://host/urlname.ext;type=a ! request ftp
    ascii/text transfer

    You can also often configure the particular web browser
    to choose the appropriate transfer mode by default,
    based on the particular file extensions, using a
    customization menu available in most web browsers. You
    can select that the specific file extentions involved
    use the FTP binary transfer mode, which will reduce the
    number of corruptions seen.

    _____________________________
    5.42.5 How do I write a BACKUP saveset to a remote tape?

    How to do this correctly was described at DECUS long
    ago. On the OpenVMS host with the tape drive, create
    the following SAVE-SET.FDL file:

    RECORD
    FORMAT fixed
    SIZE 8192

    Then create BACKUP_SERVER.COM:

    $ !
    $ ! BACKUP_SERVER.COM - provide remote tape service for BACKUP.
    $ !
    $ set noon
    $ set rms/network=16
    $ allocate mka500 tapedev
    $ mount/nounload/over:id/block=8192/assist tapedev
    $ convert/fdl=SAVE-SET sys$net tapedev:save-set.
    $ dismount/unload tapedev
    $ stop/id=0

    On the node where you want to do the backup, use the
    DCL command:

    $ backup -
    srcfilespec -
    node"user pwd"::"task=backup_server"/block=8192/save



    5-56







    System Management Information




    One area which does not function here is the volume
    switch; multi-reel or multi-cartridge savesets. Since
    the tape is being written through DECnet and RMS and
    the magtape ACP, BACKUP won't see the media switch
    and will split an XOR group across the reel boundary.
    BACKUP might well be willing to read such a multi-
    reel or multi-cartridge saveset (directly, not over
    the net) as the XOR blocks are effectively ignored
    until and unless needed for error recovery operations.
    BACKUP likely will not be able to perform an XOR-based
    recovery across reel or cartridge boundaries.

    Unfortunately BACKUP can't read tapes over the network
    because the RMS file attributes on a network task
    access look wrong; the attributes reported include
    variable length records.

    _____________________________
    5.42.6 How to perform a DoD security disk erasure?

    Sometimes refered to as disk, tape, or media
    declassification, as formatting, as pattern erasure,
    or occasionally by the generic reference of data
    remanence. Various references to the US Deparment of
    Defence (DoD) or NCSC "Rainbow Books" documentation are
    also seen in this context.

    While this erasure task might initially appear quite
    easy, basic characteristics of the storage media and
    of the device error recovery and bad block handling
    can make this effort far more difficult than it might
    initially appear.

    Obviously, data security and sensitivity, the costs
    of exposure, applicable legal or administrative
    requirements (DoD, HIPPA or otherwise), and the
    intrinsic value of the data involved are all central
    factors in this discussion and in the decision of the
    appropriate resolution, as is the value of the storage
    hardware involved.

    With data of greater value or with data exposure
    (sometimes far) more costly than the residual value
    of the disk storage involved, the physical destruction
    of the platters may well be the most expedient,

    5-57







    System Management Information




    economical, and appropriate approach. The unintended
    exposure of a bad block containing customer healthcare
    data or of credit card numbers can quite be costly,
    of course, both in terms of the direct loss, and the
    longer-term and indirect costs of such exposures.

    Other potential options include the Freeware RZDISK
    package, the OpenVMS INITIALIZE/ERASE command (and
    potentially in conjunction with the $erapat system
    service) and OpenVMS Ask The Wizard (ATW) topics
    including (841), (3926), (4286), (4598), and (7320).
    For additional information on sys$erapat, see the
    OpenVMS Programming Concepts manual and the OpenVMS
    VAX examples module SYS$EXAMPLESOD_ERAPAT.MAR. Some
    disk controllers and even a few disks contain support
    for data erasure. Some DSSI Disk ISEs, for instance.

    For the prevention of casual disk data exposures,
    a generic INITIALIZE/ERASE operation is probably
    sufficient. This is not completely reliable,
    particularly if the data is valuable, or if legal,
    administrative or contractual restrictions are
    stringent-there may well be revectored blocks that
    are not overwritten or not completely overwritten by
    this erasure, as discussed above, and these blocks can
    obviously contain at least part of most any data that
    was stored on the disk - but this basic disk overwrite
    operation is likely sufficient to prevent the typical
    information disclosures.

    You will want to consult with your site security
    officer, your corporate security or legal office, with
    HP Services or your prefered service organization,
    or with a firm that specializes in erasure or data
    declassification tasks. HP Services does traditionally
    offer a secure disk declassification service.








    5-58







    System Management Information



    _____________________________
    5.42.7 How to enable telnet virtual terminals?

    To enable virtual terminal support for telnet and
    rlogin devices, add the following logical name
    definitions into SYLOGICALS.COM:

    $ DEFINE/SYSTEM/EXECUTIVE TCPIP$RLOGIN_VTA TRUE
    $ DEFINE/SYSTEM/EXECUTIVE TCPIP$TELNET_VTA TRUE

    See SYS$STARTUP:SYLOGICALS.TEMPLATE for details on the
    typical contents of SYLOGICALS.COM.

    In SYSTARTUP_VMS.COM, ensure that a command similar to
    the following is invoked:

    $ SYSMAN IO CONNECT VTA0/NOADAPTER/DRIVER=SYS$LOADABLE_IMAGES:SYS$TTDRIVER.EXE

    In MODPARAMS.DAT, add the following line or (if already
    present) mask the specified hexidecimal value into an
    existing TTY_DEFCHAR2, and perform a subsequent AUTOGEN
    with an eventual reboot:

    TTY_DEFCHAR2 = %X20000

    This value is TT2$M_DISCONNECT.

    On older TCP/IP Services-versions prior to V5.0-you
    will have to perform the following UCX command:

    $ UCX
    UCX> SET CONF COMM/REMOTE=VIRTUAL

    _____________________________
    5.42.7.1 Volume Shadowing MiniCopy vs MiniMerge?

    MiniMerge support has been available for many years
    with OpenVMS host-based volume shadowing, so long as
    you had MSCP controllers (eg: HSC, HSJ, or HSD) which
    supported the Volume Shadowing Assist known as "Write
    History Logging".

    If you are interested in mini-merge and similar
    technologies, please see the Fibre Channel webpage
    and the information available there:

    o http://www.openvms.compaq.com/openvms/fibre/

    5-59







    System Management Information




    Mini-Merge support was originally intended to be
    controller-based and was expected with HSG80 series
    storage controllers and was expected to require ACS 8.7
    and OpenVMS Alpha V7.3-1.

    Host-based Mini-Merge (HBMM) is now available for
    specific OpenVMS releases via a shadowing ECO kit,
    and is also present in OpenVMS V8.2 and later. HBMM
    applies to the HSG80 series and-like host-based volume
    shadowing-to most other (all other?) supported storage
    devices.

    The following sections describe both Mini-Copy and
    Mini-Merge, and can provide a basis for discussions.

    _____________________________
    5.42.7.1.1 Mini-Copy?

    A Shadowing Full Copy occurs when you add a disk to an
    existing shadowset using a MOUNT command; the entire
    contents of the disk are effectively copied to the
    new member (using an algorithm that goes through in
    127-block increments and reads one member, compares
    with the target disk, and if the data differs, writes
    the data to the target disk and loops back to the
    read step, until the data is equal for that 127-
    block section). (This is one of the reasons why the
    traditional recommendation for adding new volumes to
    a shadowset was to use a BACKUP/PHYSICAL copy of an
    existing shadowset volume, simply because the reads
    then usually matched and thus shadowing usually avoided
    the need for the writes.)

    If you warn OpenVMS ahead of time (at dismount time)
    that you're planning to remove a disk from a shadowset
    but re-add it later, OpenVMS will keep a bitmap
    tracking what areas of the disk have been modified
    while the disk was out of the shadowset, and when you
    re-add it later with a MOUNT command OpenVMS only has
    to update the areas of the returned disk that the bit-
    map indicates are now out-of-date. OpenVMS does this
    with a read source / write target algorithm, which is
    much faster than the shenanigans the Full Copy does,
    so even if all of the disk has changed, a Mini-Copy is
    faster than a Full Copy.

    5-60







    System Management Information



    _____________________________
    5.42.7.1.2 Mini-Merge?

    A Shadowing Merge is initiated when an OpenVMS node
    in the cluster (which had a shadowset mounted) crashes
    or otherwise leaves unexpectedly, without dismounting
    the shadowset first. In this case, OpenVMS must ensure
    that the data is identical, since Shadowing guarantees
    that the data on the disks in a shadowset will be
    identical. In a regular Merge operation, Shadowing uses
    an algorithm similar to the Full Copy algorithm (except
    that it can choose either of the members' contents
    as the source data, since both are considered equally
    valid), and scans the entire disk. Also, to make things
    worse, for any read operations in the area ahead of
    what has been merged, Shadowing will first merge the
    area containing the read data, then allow the read to
    occur.

    A Merge can be very time-consuming and very I/O
    intensive. If a node crashes, the surviving nodes can
    query to determine what exact areas of the disk the
    departed node was writing to just before the crash,
    and thus Shadowing only needs to merge just those few
    areas, so this tends to take seconds, as opposed to
    potentially requiring many minutes or even hours for a
    regular full Merge.

    __________________________________________________ ________
    5.43 Please explain DELETE/ERASE and File Locks?

    DELETE/ERASE holds the file lock and also holds a
    lock on the parent directory for the duration of the
    erasure. This locking can obviously cause an access
    conflict on either the file or on the directory-
    it might well pay to rename files into a temporary
    directory location before issuing the DELETE/ERASE,
    particularly for large files and/or for systems with
    multiple overwrite erase patterns in use; for any
    systems where the DELETE/ERASE erasure operation will
    take a while.




    5-61







    System Management Information



    __________________________________________________ ________
    5.44 Managing File Versions?

    Some applications will automatically roll file
    version numbers over, and some will require manual
    intervention. Some will continue to operate without the
    ability to update the version, and some will be unable
    to continue. Some sites will specifically (attempt to)
    create a file with a version of ;32767 to prevent the
    creation of additional files, too.

    To monitor and resolve file versions, you can use
    commands including:

    $ SET FILE/VERSION_LIMIT=n filename
    $ SET DIRECTORY/VERSION_LIMIT=n [directory]

    And you can also monitor file version numbers, and
    can report problems with ever-increasing file versions
    to the organization(s) supporting the application(s)
    generating files with ever-increasing version numbers
    for details on potential problems, and for any
    recommendations on resetting the version numbers for
    the particular product or package. If required, of
    course.

    The following pair of DCL commands-though obviously
    subject to timing windows- can be used to rename
    all the versions of a file back down to a contiguous
    sequence of versions starting at 1:

    $ RENAME file.typ;* RENAME.TMP;
    $ RENAME RENAME.TMP;* file.typ;

    The key to the success of this RENAME sequence is the
    specification of (only) the trailing semicolon on the
    second parameter of each of the RENAME commands.

    You may also see the numbers of files reduced with
    DELETE commands, with multiple directories, or with
    PURGE commands such as the following examples:

    $ PURGE/BEFORE="-2-"
    $ PURGE/BEFORE="TODAY-2-"
    $ PURGE/KEEP=10"

    5-62







    System Management Information




    You can use DFU (Freeware) to quickly and efficiently
    scan for all files with large(r) version numbers:

    DFU SEARCH/VERSION=MINIMUM=nnnn

    If you are creating or supporting an application,
    selecting temporary or log file filenames from among
    a set of filenames-selecting filenames based on time,
    on process id, on the day of week, week number, or
    month, on the f$unique lexical (V7.3-2 and later), etc-
    is often useful, as this approach more easily permits
    on-line adjustments to the highest file versions and
    easily permits on-line version compression using
    techniques shown above. With differing filenames,
    you are less likely to encounter errors resulting
    from files that are currently locked. You can also
    detect the impending version number limit within the
    application, and can clean up older versions and roll
    the next file version creation to ;1 or such.

    Also see Section 9.4.























    5-63












    __________________________________________________ _____

    6 Information on Mail



    __________________________________________________ ________
    6.1 MAIL keeps saying I have new messages, but I don't. What do
    I do?

    if you see the %MAIL-W-NONEWMAIL, no new messages error
    reported when MAIL indicates you have messages, then
    the NEWMAIL count has become skewed from reality.

    The count of new mail messages is kept separately
    from your mail folder, and is stored in VMSMAIL_
    PROFILE.DATA. It sometimes happens that this count
    differs from what is stored in your mail folder. If
    this arises, invoke MAIL and repeatedly enter the
    READ/NEW command (or press the keypad hyphen key on
    an LK-compatible keyboard) until you see no new mail
    messages. Then enter the command one more time. This
    will resynchronize the counters.

    If you are operating in a cluster and find your mail
    counts inconsistent across cluster members, your
    customer is likely missing a definition of the VMSMAIL_
    PROFILE logical name-and is probably also missing
    definitions of other logical names associated with
    other shared files-or has one or more inconsistent
    definitions of this and likely of other logical names.

    For details on the configuration data files that
    must be shared within a cluster, please see
    SYS$STARTUP:SYLOGICALS.TEMPLATE on V7.2 and later.

    __________________________________________________ ________
    6.2 How do I send or read attachments in VMS MAIL?

    Is there any way to send or read mail with files as
    attachments from VMS?



    6-1







    Information on Mail




    Not directly with the OpenVMS MAIL facility, but there
    are several other options:

    o Install PINE, available commercially from Innosoft
    or free from Andy Harper. With PINE you can both
    send and receive MIME messages, if you have the
    appropriate viewers available.

    o http://www.process.com/

    o http://www.agh.cc.kcl.ac.uk/files/vms/pine-vms/

    o ftp://ftp2.kcl.ac.uk/pub/vms/pine-vms/

    o If you are working from an X Windows display, you
    can use the OpenVMS version of Netscape Navigator or
    Mozilla. The mail download protocol chosen to access
    the mail server from the Navigator or Mozilla mail
    client can be POP or IMAP, with the former causing
    messages to be downloaded while the latter permits
    messages to be retained on the mail server. Most
    folks prefer IMAP for this reason.

    o MPACK/MUNPACK. To send a MIME mail, construct the
    message with attachments manually using MPACK. You
    cannot send the resulting file directly through MAIL
    because an extra blank header line will be inserted
    between your message and the OpenVMS MAIL headers,
    which will cause the message to appear as plain text
    in most mail programs. Some TCP/IP stacks provide
    a work around for this problem, and if that doesn't
    work, you should generally be able to force the
    message directly into the SMTP port of your mail
    machine. Examples of both methods are in:

    o http://seqaxp.bio.caltech.edu/pub/SOFTWARE/mmail.com

    To read a MIME mail message, open it in MAIL,
    extract it to a file, then use MUNPACK to break
    out and decode the attachments.

    MPACK/MUNPACK tools are also available on OpenVMS
    Freeware V5.0.

    o With OpenVMS V7.2 and later, use the MIME tool
    supplied with OpenVMS.

    6-2







    Information on Mail



    __________________________________________________ ________
    6.3 How can I block SMTP mail relay spam?

    Use the anti-spam capabilities present in the TCP/IP
    Services V5.1 and later SMTP servers.

    Use a firewall.

    On earlier TCP/IP Services releases, some simple DCL
    can reportedly prevent relay SMTP spam. Use the UCX
    command SHOW SERVICE SMTP/FULL to find the directory
    containing the UCX$SMTP_RECV_STARTUP.COM file, and
    insert the following DCL:

    $ !
    $ ! Block spam.
    $ !
    $ MY_ADDRESS_LONG[0,32]=F$INTEGER(F$TRNLNM("SYS$REM_NODE")-"::")
    $ MY_ADDRESS=F$FAO("!UB.!UB.!UB.!UB",F$CVUI(0,8,MY_ADDRESS_LONG),-
    F$CVUI(8,8,MY_ADDRESS_LONG),F$CVUI(16,8,MY_ADDRESS _LONG),-
    F$CVUI(24,8,MY_ADDRESS_LONG))'"
    $ MY_ADDRESS_REVERSE=F$FAO("!UB.!UB.!UB.!UB",-
    F$CVUI(24,8,MY_ADDRESS_LONG),F$CVUI(16,8,MY_ADDRES S_LONG),-
    F$CVUI(8,8,MY_ADDRESS_LONG),F$CVUI(0,8,MY_ADDRESS_ LONG))'"
    $ WRITE SYS$OUTPUT F$TIME()+" "+F$TRNLNM("SYS$REM_NODE")+MY_ADDRESS
    $ UCX SHOW HOST 'MY_ADDRESS_REVERSE'.INPUTS.ORBS.ORG
    $ IF $STATUS.EQ.1
    $ THEN
    $ WRITE SYS$OUTPUT "SPAM from relay rejected"
    $ EXIT
    $ ENDIF
    $ UCX SHOW HOST 'MY_ADDRESS_REVERSE'.SPAMSOURCES.ORBS.ORG
    $ IF $STATUS.EQ.1
    $ THEN
    $ WRITE SYS$OUTPUT "SPAM source relay rejected"
    $ EXIT
    $ ENDIF
    $ !
    $ ! Run receiver.
    $ !
    $ run sys$system:ucx$smtp_receiver.exe
    $ goto exit



    6-3












    __________________________________________________ _____

    7 Information on Utilities



    __________________________________________________ ________
    7.1 How do I play an audio CD on my workstation?

    If you've installed the DECwindows examples, you'll
    find DECW$CDPLAYER.C, .DAT, .EXE, .UIL, and .UID.
    Copy the .UID and .DAT files to DECW$USER_DEFAULTS:
    (typically SYS$LOGIN, define the logical name
    DECW$CD_PLAYER to be the device name of your CD-ROM
    drive (eg. DKA400, give yourself PHY_IO and DIAGNOSE
    privileges, and run the .EXE. (These privileges are
    required, as the access to the CD-related extensions
    will require the use of the privilege-protected IO$_
    DIAGNOSE I/O function code.) You can also install
    the image with these privileges. See the source for
    additional details - note that the comments regarding
    the need for SYSGEN CONNECT are no longer applicable
    (at least as of VMS V5.5-2).

    There's also SYS$EXAMPLES:CDROM_AUDIO.C and .EXE,
    a non-Motif program, available on OpenVMS VAX, and
    DECW$EXAMPLESECW$CDPLAYER.* on OpenVMS VAX and
    OpenVMS Alpha.

    The standard OpenVMS ATA (IDE) SYS$DQDRIVER device
    driver does not support the necessary does not
    support the necessary IO$_DIAGNOSE function code
    that is required for access to audio CD media
    commands (on OpenVMS versions prior to V7.3), but
    an updated SYS$DQDRIVER device driver (source
    code and all) with this capability and with the
    source code of an updated DECW$CDPLAYER CD audio
    player is available on the OpenVMS Freeware website
    (www.hp.com/go/openvms/freeware/, look for the
    directory /dqdriver/), and these updates are also
    included on OpenVMS Freeware V5.0, and OpenVMS ECO
    kits containing newer versions of the driver are
    available. Freeware V6.0 has a version of DQDRIVER
    that is newer than that of the OpenVMS Alpha V7.3-2

    7-1







    Information on Utilities




    release, with additional capabilities and with improved
    error diagnostics.

    OpenVMS Alpha V7.3 and later include a version of
    SYS$DQDRIVER with the necessary IO$_DIAGNOSE support.

    __________________________________________________ ________
    7.2 How do I access a Microsoft Windows floppy disk from
    OpenVMS?

    The HP Advanced Server (formerly known as PATHWORKS)
    for OpenVMS product includes an unsupported and
    undocumented utility called PCDISK, and this tool can
    read and write various Microsoft MS-DOS and Microsoft
    Windows FAT-format diskettes.

    ProGIS in Germany sells a product called VMove which
    supports DOS files on many different device types. For
    more information, send mail to info@progis.de.

    Engineering Software has a product called VAKSAT
    which will read, write, and erase files on MS-DOS FAT
    diskettes. Available for both VAX and Alpha. Contact
    ed@cityscape.co.uk for more information.

    MadGoat PC Exchange (PCX) is a utility for copying
    files to and from MS-DOS and Microsoft Windows (FAT)
    format diskettes under OpenVMS, using an RX23 (3.5"),
    RX26 (3.5"), or RX33 (5.25") diskette drive. For 3.5"
    diskettes, high-density disks can be read or written;
    double-density disks are read-only. Only high-density
    disks are supported on the RX33.

    o http://www.madgoat.com/

    The Freeware package WINFX is available on Freeware
    V6.0, and can read the FAT volume structure.

    o http://www.hp.com/go/openvms/freeware/





    7-2







    Information on Utilities



    __________________________________________________ ________
    7.3 How do I play sound files on an AlphaStation? DECsound
    doesn't work.

    Various of the more recent AlphaStation systems use
    a different sound board (Microsoft Sound System) than
    the earlier DEC 3000 series systems, and DECsound,
    as supplied by DECwindows Motif, doesn't support
    this board nor this interface. HP offers an optional
    product, Multimedia Services (MMOV) for OpenVMS:

    o http://h18000.www1.hp.com/info/spd/

    OpenVMS typically uses SPD 25.01.xx, SPD 41.87.xx,
    and SPD 82.35.xx.

    which provides a replacement for DECsound for this card
    as well as many other features (an AVI and MPEG player,
    video capture support, etc.)

    Ensoniq sound support is also available.

    __________________________________________________ ________
    7.4 How do I read IBM EBCDIC tapes on OpenVMS?

    Most (all?) IBM EBCDIC-based systems can read and write
    ANSI-labeled ASCII magtapes. Fixed-length records
    (MOUNT /FOREIGN /BLOCKSIZE=512 /RECORDSIZE=512, for
    one-block records) and the DCL COPY command can be
    used to transfer fixed-record-size text files out onto
    tape media, or to read from fixed-record tape media.
    Please consult the IBM documentation for the details
    and command syntax needed when reading and writing ANSI
    media using IBM JCL or other applicable IBM command
    language.

    There exists various freeware around (TAPECOPY, ETAPE,
    TCOPY, MTEXCH) that can read and write EBCDIC tapes.
    Visit the Encompasserve (DECUS) website software
    archives search engine and search for "EBCDIC" for
    details.

    o http://www.encompassus.org

    OpenVMS does not include an integrated tool for
    EBCDIC tape processing, but does provide a character
    conversion API useful within application programs.

    7-3







    Information on Utilities




    One source for ETAPE is:

    o http://www.ualr.edu/ftp/vms/ETAPE_SRC/

    The OpenVMS Freeware V5.0 distribution included this
    ETAPE tool, as well.

    __________________________________________________ ________
    7.5 How can I patch an OpenVMS Alpha image?

    Using the OpenVMS Freeware tool ZAP:

    o Look for the RMS_TOOLS directory on Freeware V5.0:
    http://www.hp.com/go/openvms/freeware/

    tell ZAP to read a block (bucket) of information
    based on the virtual block number (VBN), using X for
    hexadecimal. Dump yourself into the OpenVMS debugger
    with R2 pointing into the buffer, EXAMINE/INSTRUCTION
    as needed, alter the buffer as required, GO to get out
    of the debugger and back into ZAP, and use the ZAP W
    command to write the updated block.






















    7-4












    __________________________________________________ _____

    8 DCL Details



    __________________________________________________ ________
    8.1 DCL Symbols and OpenVMS Logical Names?

    DCL symbols are programming-style variables implemented
    within the DCL command interpreter, and these are
    used both for programming and to provide command
    verb synonyms. Symbols are local to the command
    interpreter operating within a particular process,
    and are not shared. Lists of symbols can be copied into
    subprocesses during a subprocess creation operation,
    but these symbols are neither copied back into the
    parent process when the subprocess exits, nor are
    symbols ever shared across processes.

    Symbols can be specified in and utilized in basic
    mathematical operations, and bit-level operations are
    available with the f$cvsi and f$cvui bit extraction
    lexical functions, and with the square-brackets
    notation for bit insertion (see Section 8.13 for an
    example), and with bitwise operators. Symbols are of
    two basic types, STRING and INTEGER, and these (or an
    undefined symbol) can be differentiated with the f$type
    lexical function. DCL symbols can also be used as a
    mechanism to abbreviate a DCL command verb, or an easy
    way to invoke a DCL command procedure.

    Symbols can have local or global scope within a
    process, and scope is affected by nested procedure
    calls and DCL constructs such as CALL and SET SCOPE,
    but such discussions are beyond the scope of this
    section.

    OpenVMS Logical names can store device names, device
    and directory specifications, rooted or searchlist
    specifications, and full filenames. Logical names can
    also store arbitrary data, but there are no native
    mathematical or bitwise operators available. Analogous
    to DCL symbols, process-local logical names can be
    copied into subprocesses during a subprocess creation

    8-1







    DCL Details




    operation, but these process-local logical names are
    neither copied back into the parent process when the
    subprocess exits, nor are these logical names ever
    shared.

    Logical names are implemented deep within the OpenVMS
    executive, and are organized into logical name tables.
    Logical names can be stored in tables private to a
    process( LNM$PROCESS, the process-local logical name
    table) , that can be shared among processes in the same
    job tree ( LNM$JOB, the job logical name table) or in
    logical name tables that are shared among larger groups
    of processes (eg: LNM$GROUP, the UIC group logical
    name table and LNM$SYSTEM, the system-wide logical name
    table). Logical names are centrally intended to provide
    various I/O-related capabilities, including device
    independence and configuration customization-correctly-
    written application programs can use logical names to
    avoid embedding specific device or device and directory
    specifications, and to allow filename and configuration
    customizations.

    One of the most powerful capabilities of logical names
    beyond the device independence provided involves the
    defaulting capabilities; you can use RMS parsing
    (directly, or with mechanisms such as the f$parse
    lexical function) to provide a filename and a default
    filename. To provide the mechanism that allows SYSUAF
    to be located in an arbitrary position or even an
    arbitrary filename, a construct similar to the
    following is used:

    $ UAF = F$PARSE("SYSUAF","SYS$SYSTEM:.DAT")

    This design allows the logical name SYSUAF to be
    optionally defined, and - when present-to specify the
    particular location and name of the file. Portions
    of the full file specification that are omitted are
    retrieved using the default translation of SYS$SYSTEM:
    and the file type of .DAT.

    Logical names also have assigned processor modes, as
    some translations must be trustworthy. In the example
    above, only trusted and privileged system users should
    be able to redirect the SYSUAF authorization database,

    8-2







    DCL Details




    so any definition of the SYSUAF logical name must be
    made in EXECUTIVE mode in a trusted logical name table.

    As for common OpenVMS terminology, logical names are
    "defined" and the associated processing is refered to
    as "translation", while symbols are "equated" and the
    associated processing is refered to as "substitution".
    "Lexical functions" are processing routines built
    into DCL, and typically prefixed with f$. Many of the
    lexical functions are built upon correspondingly-named
    system services, though not all.

    Symbol substitution occurs only when the DCL command
    interpreter is reading and processing the command
    input; for information on DCL symbol substitution, see
    Section 8.10. For program access, see the RTL routines
    lib$set_symbol and lib$get_symbol.)

    For information on logical name translation, please see
    f$trnlnm lexical function and the DCL commands DEFINE
    and DEASSIGN, as well as underlying system services
    such as sys$trnlnm. Logical name translation occurs
    when requested, or as the file or I/O operation is
    started.

    Please see the OpenVMS User's Guide in the OpenVMS
    documentation set for a far more detailed description
    of these constructs.

    For related materials, please see Section 8.10 and
    Section 8.11.

    __________________________________________________ ________
    8.2 How do I run a program with arguments?

    The RUN command does not accept arguments. To pass
    arguments to a program, you must use what is called
    a "foreign command", and either an explicit command
    as shown here, or an automatic foreign command. For
    example:

    $ unzip :== $disk:[dir]unzip.exe
    $ unzip -?

    8-3







    DCL Details




    The leading $ in the equivilence name for the symbol
    definition is what makes the DCL symbol a foreign
    command. If the device and directory are omitted,
    SYS$SYSTEM: is assumed.

    Under OpenVMS V6.2 and later, DCL supports automatic
    foreign command definition via the logical name
    DCL$PATH. An example of a definition of this logical
    name is:

    $ DEFINE DCL$PATH SYS$DISK:[],ddcu:[mytooldir],SYS$SYSTEM:

    DCL will first look for a command in the DCL command
    table, and if no match is found and if DCL$PATH is
    defined, it will then look for command procedures and
    executable images with filenames matching the command
    specified, in the directories specified via DCL$PATH.
    The first match found is invoked, and under OpenVMS,
    the DCL$PATH support will cause a command procedure to
    be activated in preference to an executable image.

    For more information on foreign commands or on
    automatic foreign command support, see the OpenVMS
    User's Manual.

    See also Section 10.3.

    If you want to create a detached process that takes
    arguments from a command line, it must be run under the
    control of a command line interpreter (CLI) (typically
    DCL). This is done by placing the command line in a
    file, specifying SYS$SYSTEM:LOGINOUT.EXE as the image
    to run and the command file as the input. For example:

    $ OPEN/WRITE CMD TEMP_INPUT.COM
    $ WRITE CMD "$ MYCOMMAND arguments"
    $ CLOSE CMD
    $ RUN/DETACHED SYS$SYSTEM:LOGINOUT /INPUT=TEMP_INPUT.COM

    Various OpenVMS library calls (such as lib$spawn(),
    cli$dcl_parse(), and the C library system() call)
    require access to a command line interpreter such as
    DCL to perform requested actions, and will not operate
    if a CLI is not available.

    8-4







    DCL Details




    When a CLI is not available, these calls typically
    return the error status SS$_NOCLI. And as mentioned
    above, invoke the image LOGINOUT to cause a CLI (such
    as DCL) to be mapped into and made available in the
    context of the target process.

    For examples of how TCP/IP Services sets up its foreign
    commands (which includes tools such as uuencode
    and uudecode), please see the DCL command procedure
    SYS$STARTUP:TCPIP$DEFINE_COMMANDS.COM.

    Also see Section 8.12.

    __________________________________________________ ________
    8.3 How can I clear the screen in DCL?

    The simplest way is the TYPE/PAGE NLA0: command.

    You can set up a symbol to clear the screen in your
    LOGIN.COM:

    $ CLS :== TYPE/PAGE NLA0:

    __________________________________________________ ________
    8.4 Using REPLY/LOG from DCL? Disabling Console OPCOMs?

    Your terminal must be enabled as an operator terminal
    before the REPLY/LOG command can be used, but a DCL
    procedure (batch command file, system startup, etc)
    does not have an associated terminal. To make this
    work, use the following sequence to enable the OPA0:
    console as the operator terminal, then the REPLY/LOG
    command will be accepted:

    $ DEFINE/USER SYS$COMMAND _OPA0:
    $ REPLY/LOG
    $ DEFINE/USER SYS$COMMAND _OPA0:
    $ REPLY/ENABLE

    To disable the system console terminal (OPA0 as an
    operator terminal, use the following command:

    $ DEFINE/USER SYS$COMMAND _OPA0:
    $ REPLY/DISABLE

    8-5







    DCL Details




    Also see SYLOGICALS.COM (and SYLOGICALS.TEMPLATE) for
    information on configuring the behaviour of OPCOM,
    including the (default) use of the system console
    (OPA0 as an operator terminial and the specific
    contents and behaviour of the system operator log file
    OPERATOR.LOG.

    __________________________________________________ ________
    8.5 How do I generate a random number in DCL?

    With V7.3-2 and later, f$unique can be useful
    here. Alternatively, here is a pseudo-random number
    generator, just do a GOSUB RAND and the global symbol
    RANDOM will contain a randomly generated number. You
    can feed the generator a ceiling value (__CEIL) or a
    new seed (__SEED).

    $! RAND - returns a positive random number ("RANDOM") between 0 and
    $! __CEIL - 1.
    $! sharris-at-sdsdmvax.fb3.noaa.gov
    $ RAND:
    $
    $ IF F$TYPE(__SEED) .EQS. ""
    $ THEN
    $ ! seed the random number generator, ...
    $ __NOW = F$CVTIME()
    $ __HOUR = 'F$EXTRACT(11,2,__NOW)'
    $ __MINUTE = 'F$EXTRACT(14,2,__NOW)'
    $ __SECOND = 'F$EXTRACT(17,2,__NOW)'
    $ __TICK = 'F$EXTRACT(20,2,__NOW)'
    $
    $ __SEED == __TICK + (100 * __SECOND) + (6000 * __MINUTE) + -
    (360000 * __HOUR)
    $ ! the generator tends to do better with a large, odd seed, ...
    $ __SEED == (__SEED .OR. 1)
    $ ! clean up, ...
    $ DELETEX/SYMBOL __NOW
    $ DELETEX/SYMBOL __HOUR
    $ DELETEX/SYMBOL __MINUTE
    $ DELETEX/SYMBOL __SECOND
    $ DELETEX/SYMBOL __TICK
    $ ENDIF
    $
    $ IF F$TYPE(__CEIL) .EQS. "" THEN __CEIL = %X3FFFFFFF

    8-6







    DCL Details




    $
    $ __SEED == __SEED * 69069 + 1
    $
    $ RANDOM == (__SEED.AND.%X3FFFFFFF)/(%X40000000/__CEIL)
    $
    $ RETURN

    __________________________________________________ ________
    8.6 What does the MCR command do?

    The MCR is an artifact of RSX compatibility mode, the
    operating system from which OpenVMS is descended. MCR
    is the Monitor Console Routine, and the command is
    intended to activate RSX compatibility mode utilities.
    When used on OpenVMS, the command is most commonly
    used to run the specified image and-because the tool
    detects the image is not a compatibility-mode image-
    it acts as a form of RUN command with the default
    file specification of SYS$SYSTEM:.EXE. MCR passes any
    (optional) command line arguments in a fashion similar
    to a foreign command. In other words:

    $ MCR FOO BAR

    is equivalent to:

    $ FOO :== $FOO
    $ FOO BAR

    MCR is not documented. Use of a foreign command or the
    DCL$PATH mechanism is preferred. For details on this,
    see Section 8.2.

    __________________________________________________ ________
    8.7 How do I change the OpenVMS system prompt?

    You can use the SET PROMPT command for this purpose.
    SET PROMPT sets the DCL prompt to the specified string.

    When you want to display variable information, you
    will need to establish a tie-in that provides the
    information to the SET PROMPT command as required.

    If you wish to display the default directory for
    instance, you will have to establish a tie between
    the SET DEFAULT command and the SET PROMPT commands, as
    there is no direct way to get the default directory as

    8-7







    DCL Details




    the DCL prompt. You can easily acquire or create a set
    of DCL command procedures that perform the SET DEFAULT
    and SET PROMPT for you. These DCL command procedures
    often use a command such as:

    $ set prompt='f$environment("default")'

    More advanced users could implement a system service or
    other intercept, and use these tools to intercept the
    directory change and reset the prompt accordingly.
    (This approach likely involves some kernel-mode
    programming, and requires write access to various
    undocumented OpenVMS data structures.)

    There are related tools available from various sources,
    including the following web sites:

    o ftp://ftp.hhs.dk/pub/vms/setpmt/

    o ftp://ftp.tmesis.com/sys_service_hook.src

    o James F. Duff has also made available a Macro32 tool
    known as TIME_PROMPT, a tool that sets the prompt to
    the current system time.

    o Many folks have contributed DCL procedures to
    perform this task. Visit the newsgroup archives
    for information and examples.

    __________________________________________________ ________
    8.8 Can I do DECnet task-to-task communication with DCL?

    Yes, you can do this with DCL.

    The OpenVMS DECnet documentation shows various simple
    examples using the task object and the TYPE command to
    trigger the execution of a DCL command procedure on a
    remote node. An example DCL command procedure that is
    rather more advanced than using the TYPE command as a
    trigger is included in the Ask The Wizard area:

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    8-8







    DCL Details




    DCL does not include support asynchronous I/O, thus a
    predetermined protocol or a predetermined "turn-around"
    command sequence must be implemented in order to avoid
    protocol deadlocks-cases where both tasks are trying to
    write or both tasks are trying to read. The task that
    is writing messages to the network must write (or write
    and read) a predetermined sequence of messages, or it
    must write a message that tells the reader that it can
    now start writing messages. (This is the essence of a
    basic half-duplex network protocol scheme.)

    __________________________________________________ ________
    8.9 How can I get the width setting of a terminal?

    $ width = f$getdvi(terminal,"DEVBUFSIZ")

    __________________________________________________ ________
    8.10 Why doesn't DCL symbol substitution work?

    The DCL symbol substitution processing occurs only
    at the DCL prompt, not within data and not within
    files. If you wish to perform symbol substitution in
    this environment, you typically write a small file
    containing the command(s) and data to be invoked-
    potentially only the data-and you then invoke the
    created procedure or reference the specified data.

    In this case, use of a file containing nolinemode
    commands or other techniques might be useful-you will
    want to ensure that the text editor you use does not
    attempt to use screen mode or similar, as this is not
    generally considered adventageous within a command
    procedure.

    Tools such as FTP have alternatives: COPY/FTP.

    DCL symbol substitution occurs in two passes, using
    the ampersand and the apostrophe. In most cases, only
    the apostrophe is necessary. In a few cases-such as the
    DCL PIPE command-you will may need to use the ampersand
    to get the substitution to work. The following example
    uses ampersand substitution to transfer the contents of
    the header into a logical name:

    $ PIPE CC/VERSION | (READ SYS$PIPE hdr ; DEFINE/JOB/NOLOG hdr &hdr )

    8-9







    DCL Details




    A logical name (in the job logical name table; shared
    by all processes in the current job) was used as DCL
    symbols cannot be returned back out from a DCL PIPE or
    other spawned subprocess.

    For related materials, please see Section 8.1 and
    Section 8.11.

    __________________________________________________ ________
    8.11 How can I substitute symbols in a PIPE?

    Use DCL ampersand substitution, and not apostrophe
    substitution.

    $ pipe show system | search sys$input opcom | (read sys$input pid ;
    pid=f$element(0," ",pid) ; define/system opcom_pid &pid)
    $ show log opcom_pid
    "OPCOM_PID" = "0000020B" (LNM$SYSTEM_TABLE)

    __________________________________________________ ________
    8.12 Use of RUN/DETACH, LOGINOUT, and logical names?

    With a command to create a detached process such as:

    $ RUN/DETACHED SYS$SYSTEM:LOGINOUT /INPUT=TEMP_INPUT.COM

    If you are trying to use a logical name as the /INPUT,
    /OUTPUT or /ERROR on a RUN/DETACH command, then
    you must translate the logical name specifications
    to physical references before passing them, or the
    definitions must reside in a logical name table that is
    visible to the newly-created process.

    Also note that LOGINOUT only creates the SYS$LOGIN,
    SYS$LOGIN_DEVICE, and SYS$SCRATCH logical names if it
    is processing a login that is based on the contents of
    a SYSUAF record-without access to the associated SYSUAF
    record, this information is not available to LOGINOUT.
    (If you want to see these particular logical names
    created, then please specify the /AUTHORIZE qualifier
    on the RUN/DETACHED command.)

    If you do not specify LOGINOUT as the image, then
    there is no easy way to get these logical names. Also,
    any logical names that are used in the target image
    file specification must also be in a logical name
    table accessible (by default) by the newly-created

    8-10







    DCL Details




    detached process. Shared tables include the group (if
    the process is in the same UIC group) and the system
    table. (If the target process is to be in another UIC
    group, a suitablly privileged user or application can
    create the necessary logical name(s) directly in the
    other group logical name table.)

    When in doubt, create a short DCL command file as
    input, and use a SHOW LOGICAL and similar commands
    to examine the context. (And use physical device and
    directory references on the RUN/DETACH of the LOGINOUT
    image, when specifying this command file as /INPUT.)
    Also remember to check both security auditing and
    system accounting when troubleshooting problems with
    the RUN/DETACH.

    Also see Section 8.2.

    __________________________________________________ ________
    8.13 How to use escape and control characters in DCL?

    To write a message and then the bell character, use:

    $ bell[0,7] = 7
    $ write sys$output "Hello''bell'"

    To write blinking text, use:

    $ esc[0,7] = 27
    $ text = "Blinking Text"
    $ write sys$output "''esc'[5m''text'''esc'[m"

    Also see sections Section 11.6, Section 12.1.











    8-11












    __________________________________________________ _____

    9 Files



    __________________________________________________ ________
    9.1 How can I undelete a file?

    OpenVMS doesn't have an "undelete" function. However,
    if you are quick to write-protect the disk or if you
    can guarantee that no new files get created or existing
    files extended, your data is still on the disk and
    it may be possible to retrieve it. The FLORIAN tool
    available from various websites can potentially recover
    the file, see question Section 13.1 for pointers. Other
    alternatives here include the DFU tool, available on
    the OpenVMS Freeware CD-ROM distribution.

    If you are setting up a user environment for yourself
    or for others, it is quite easy to use DCL to intercept
    the DELETE command, using a symbol:

    $ DEL*ETE :== @SYS$LOGIN:MYDELETE.COM

    The DELETE symbol will cause the procedure to
    be invoked whenever the user enters the DELETE
    command, and it can copy the file(s) to a "trashcan"
    subdirectory before issuing a "real" DELETE on the
    files. Other procedures can retrieve the file(s) from
    the "trashcan" subdirectory, and can (and should) clean
    out the "trashcan" as appropriate. (Realize that this
    DELETE symbol can interfere with DELETE/GLOBAL and
    other similar DCL commands.)

    __________________________________________________ ________
    9.2 Why does SHOW QUOTA give a different answer than DIR/SIZE?

    DIRECTORY/SIZE doesn't take into account the size of
    file headers which are charged to your quota. Also,
    unless you use DIRECTORY/SIZE:ALL, you will see only
    the "used" size of the file, not the allocated size
    which is what gets charged against your quota. Also,
    you may have files in other directories.

    9-1







    Files




    $ DIRECTORY/SIZE=ALL/GRAND [username...]
    Grand total of D1 directories, F1 files, B1/B2 blocks.
    $ DIRECTORY/SIZZ=ALL/GRAND [-]username.DIR
    Grand total of 1 directory, 1 file, B3/B4 blocks.
    $ SHOW QUOTA
    User [username] has B5 blocks used, B6 available
    of B7 authorized and permitted overdraft of B8 blocks on disk

    If the user has no files in other directories and
    all file-headers are only 1 block, then the following
    should apply:

    B5=B2+B4+F1+1

    If the diskquota has drifted out of synchronization,
    then the system-manager can force a quota rebuild-due
    to various factors, the quota file can potentially
    drift from the actual use over time, and a periodic
    rebuild can be performed at appropriate intervals.

    Also be aware that the DIRECTORY/SIZE command can
    report larger values than might otherwise be expected
    when used to evaluate files and/or directories that
    are alias links-such as the system roots on OpenVMS
    system disks-as the command reports a total that
    is cumulative over all of the files and directories
    examined, without regard for which ones might be
    alias entries and which are not. (In other words, a
    DIRECTORY/SIZE of an entire OpenVMS system disk will
    report a disk useage value larger than the (usually
    more accurate) value reported by the SHOW DEVICE
    command. This as a result of the alias entries linking
    each SYS$SYSDEVICE:[SYSCOMMON]SYS*.DIR directory file
    and the SYS$SYSDEVICE:[000000]VMS$COMMON.DIR file
    together.)

    __________________________________________________ ________
    9.3 How do I make sure that my data is safely written to disk?

    If your application must absolutely guarantee that
    data is available, no matter what, there's really no
    substitute for RMS Journaling and host- or controller-
    based shadowing. However, you can achieve a good degree
    of data integrity by issuing a SYS$FLUSH RMS call at
    appropriate times (if you're using RMS, that is.) If
    you're using a high-level language's I/O system, check

    9-2







    Files




    that language's documentation to see if you can access
    the RMS control blocks for the open file. In C you can
    use fflush followed by fsync.

    For details on disk bad block handling on MSCP and
    on SCSI disk devices, please see Ask The Wizard (ATW)
    topic (6926).

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    __________________________________________________ ________
    9.4 What are the limits on file specifications and directories?

    A file specification has an aggregate maximum size of
    255 characters (NAM$C_MAXRSS) at present, assuming
    ODS-2 limits and traditional DCL process parsing
    settings (SET PROCESS/PARSE_STYLE). The node and
    device specification may be up to 255 characters each-
    file name and file types may be up to 39 characters
    each. File versions are from 1 through 32767, though
    0 (latest version), -0 (oldest version) and -n (n'th
    previous version) can be used in most contexts. A file
    specification may not have more than 8 directories and
    subdirectories or-with a rooted directory, two sets of
    eight are possible-and while it is possible to create
    subdirectories of greater depth, accessing them under
    ODS-2 is somewhat problematic in most cases, and thus
    should be avoided.

    Under ODS-5 with extended DCL parsing (SET
    PROCESS/PARSE_STYLE), the filename length limits
    are up around 4,095 (NAML$C_MAXRSS) characters, and
    directories can be around 255 levels deep.

    Application developers should use OpenVMS-supplied
    routines for parsing file specifications - this ensures
    that changes in what is allowable will not tend to
    break your application. Consider that various parts of
    the file specification may contain quoted strings with
    embedded spaces and other punctuation! Some routines
    of interest are SYS$FILESCAN, SYS$PARSE and LIB$TRIM_

    9-3







    Files




    FILESPEC. For further information, see the OpenVMS
    Guide to File Applications.

    Performance of larger directory files improves
    (greatly) with OpenVMS V7.2 and later-operations on
    directory files of 128 blocks and larger were rather
    slower on earlier OpenVMS releases due to the smaller
    size of the directory cache and due to the directory
    I/O processing logic.

    For fastest directory deletions, consider a reverse
    deletion-delete from the last file in the directory to
    the first. This reversal speeds the deletion operation
    by avoiding unnecessary directory I/O operations as
    the files are deleted. Tools such as the Freeware DFU
    can be used for this purpose, as can various available
    reverse-DELETE DCL command procedures.

    Also see Section 5.44.

    __________________________________________________ ________
    9.5 What is the largest disk volume size OpenVMS can access?

    One Terabyte (TB; 2**31 blocks of 2**9 bytes;
    0x07FFFFFFF blocks). 255 volumes in a volume set.
    The largest contiguous allocation possible for any
    particular file is 0x03FFFFFFF blocks.

    Prior to the release of V6.0, the OpenVMS file system
    was limited to disk volumes of 8.38 GB (2**24 blocks,
    16777216 blocks) or less.

    On some systems, there are restrictions in the console
    program that limit the size of the OpenVMS system disk.
    Note that data disks are not affected by console
    program limits. For example, all members of the
    VAXstation 3100 series are limited to a system disk
    to 1.073 GB or less due to the console, though larger
    data disks are possible. This limit due to the SCSI
    drivers used by and built into the console ROM to read
    the OpenVMS bootstrap files, and these same drivers are
    also used by OpenVMS to write the system crashdump.


    9-4







    Files




    There are numerous discussions of this VAXstation
    3100 in the comp.os.vms newsgroup archives. Please
    use Google newsgroup search to search the archives for
    further details, for discussions of the workarounds,
    and for details of the potential for a simple failed
    bootstrap and particularly for discussions of the
    potential for severe system disk corruptions on
    crashes.

    Some SCSI disks with capacities larger than 8.58
    gigabytes (GB) will require the use of an OpenVMS ECO
    kit (eg: ALPSCSI04_062 or later; see Section 14.24
    for details) for new SCSI device drivers. Failure to
    use this ECO can cause "rounding errors" on the SCSI
    disk device capacity-OpenVMS will not use nor display
    the full capacity of the drive-and "%sysinit-e-error
    mounting system device status equals 000008C4" (8C4
    -> "%SYSTEM-?-FILESTRUCT, unsupported file structure
    level") errors during bootstrap. (One workaround for
    the bootstrap when the bitmap is located far into the
    disk is the use of INIT/INDEX=BEGIN.) The problem here
    involves the particular extensions and fields used for
    larger capacity disks within the SCSI specifications
    and within the various intepretations of same.

    For ATA (IDE) disk drives:

    o Versions of SYS$DQDRIVER *BEFORE* X-15 topped out at
    8.455 GB.

    Fixed drivers (equal or greater than "X-15") were
    shipped in:

    o OpenVMS Alpha V7.2-1, and later

    o V7.2 UPDATE V1.0 ECO, and later

    o V7.1-2 UPDATE V1.0 ECO, and later

    o V7.1-2 UPDATE V3.0 ECO, and later

    o The newer SYS$DQDRIVER driver operates to disks up
    to 33 GB without (known) problems, and effectively
    works with rather larger disks (up to circa 137
    GB) but is known to report an incorrect number of
    "cylinders" with disks above 33 GB.

    9-5







    Files




    See Section 14.4.4.2 for additional ATA SYS$DQDRIVER
    information.

    Be aware that a known restriction in certain older
    versions of the Alpha SRM Console prevents booting most
    ATA (IDE) drives larger than 8.455 GB, depending on
    exactly where the various files are located on the
    volume. Updated SRM consoles for systems with SRM
    and ATA (IDE) drive support are (will be) available.
    (OpenVMS Engineering has successfully bootstrapped
    20GB ATA (IDE) disks using the appropriate SRM console
    version.)

    Note

    All disk-related listed in this section are
    stated in units of "disk (base ten) gigabytes"
    (1 GB = 10^9 bytes) and not in units of "software
    (base two) gigabytes" (1 GB = 2^30; 1 GB =
    1073741824.) bytes. Please see Section 14.24 for
    details of the nomenclature and of the units.

    Be aware that larger disks that are using an extension
    of SCSI-2- disks that are using a mode page field
    that the SCSI-2 specifications normally reserved for
    tape devices-to permit a larger disk volume size will
    require a SCSI driver update for OpenVMS, and this
    change is part of V7.1-2 and later, and also part of
    ALPSCSI07_062 and later. (These larger disks disks
    will typically report a DRVERR, or will see the volume
    size "rounded down".) SCSI disks larger than 16777216
    blocks cira 8.455 GB (base ten); 8GB (base two) require
    this ECO, or require the use of OpenVMS Alpha V7.1-2 or
    later.

    Applications written in C can be limited to file
    sizes of two gigabytes and less, as a result of the
    use of longword values within C file operations, and
    specifically off_t. This restriction is lifted in
    OpenVMS V7.3-1 and later, and with the application of
    the C ECO kits available for specific earlier releases.
    The use of a longword for off_t restricts applications
    using native C I/O to file sizes of two gigabytes or
    less, or these applications must use native RMS or XQP
    calls for specific operations.

    9-6







    Files




    Also see Section 14.13, Section 14.24.

    __________________________________________________ ________
    9.6 What is the maximum file size, and the RMS record size
    limit?

    RMS can store individual files of a size up to the
    maximum supported volume size. Under OpenVMS V6.0 and
    later, the volume size and the RMS maximum file size
    limit is 2**31 * 512 bytes-one terabyte (1 TB).

    "Use a volume set to provide a large, homogeneous
    public file space. You must use a volume set to create
    files that are larger than a single physical disk
    volume. (The file system attempts to balance the load
    on the volume sets, for example, by creating new files
    on the volume that is the least full at the time.)"

    "You can add volumes to an existing volume set at any
    time. The maximum number of volumes in a volume set is
    255."

    The RMS formats-sequential, relative, and indexed-
    are limited by the one terabyte maximum volume size.
    RMS relative files are further limited to a number of
    records that will fit in 32 bits-4 billion records.
    Sequential and indexed formats do not have a record
    limit.

    Also see Section 2.17.1, Section 14.24.

    __________________________________________________ ________
    9.7 How do I write CD-Recordable or DVD media on OpenVMS?

    How to create CD-R, CD-RW, DVD-R, DVD+R, DVD-RW, or
    DVD+RW media on OpenVMS?

    Recording (writing) of CD and DVD optical media
    requires a recording or media mastering application
    or tool, and both commercial and non-commercial
    options are available. Please see CDRECORD (both non-
    DVD and DVD versions are available, and at least one
    commercial version is available), and also see DVDwrite
    (commercial) or DVDRECORD (open source). A port of
    CDRECORD is present in OpenVMS V7.3-1 and later; see
    Section 9.7.

    9-7







    Files




    o Acquire a comparatively recent SCSI-based or ATA
    (IDE) CD-R or DVD-R/RW or DVD+R/RW drive. Older
    drives can be very problematic, while newer drives
    are readily available, and are cheap and very fast.
    Related device requirements information is available
    in Section 14.28.

    o Get the most recent LDDRIVER available on the
    Freeware. Versions of LDDRIVER are latent in
    OpenVMS Alpha V7.3-1 and later. (Look within
    SYS$MANAGER:CDRECORD.COM for related details.)

    Use of the current ECO kit for LDDRIVER (as
    available), or of the version of LD distributed
    with V8.2 (kitted on Freeware V7.0 as LD071), or
    later is prefered. (If you are not running the
    specified version, you will want to upgrade or you
    will want to use the DCL command SET FILE/CACHING_
    ATTRIBUTES=NO_CACHING on the LD partition file.
    This is a workaround for an incompatibility found
    between older LDDRIVER versions and the XFC caching
    support.) Alternatively, you can acquire and load
    the VD64 package from the Freeware.

    o Get CDRECORD or CDWRITE or other similar recording
    tool.

    CDRECORD (part of CDRTOOLS), CDWRITE, and
    DVDRECORD (part of DVDRTOOLS) packages
    (DVDRECORD is a fork of CDRECORD) are freely
    available, and versions of CDRECORD are
    available on the Freeware V6.0 distribution. (
    http://www.hp.com/go/openvms/freeware/ ) An OpenVMS
    port of the cmcd CD audio ripper is also reportedly
    available. http://www.amb.org/xmcd/

    Versions of CDRECORD (non-DVD) are latent in OpenVMS
    Alpha V7.3-1 and later. Commercial versions of
    CDDRECORD-with DVD capabilities-are also available
    for various platforms, and particularly a variant of
    CDRECORD known as CDRECORD-ProDVD.

    Beware the tool chosen: some versions and
    configurations of CDRECORD can record DVD media,
    as can the DVDRECORD package, as can the commercial
    DVDwrite package. Many versions of CDRECORD cannot
    record DVD media, including the version of CDRECORD

    9-8







    Files




    latent within OpenVMS and the version found on
    Freeware V6.0; these versions cannot record DVD
    media.

    o Build the contents of the disk on the LD or VD64
    device partition.

    o Use the chosen recording tool to record the contents
    of the LD or VD64 partition directly onto the
    optical medium.

    Alternatively, consider the following command on
    OpenVMS Alpha V7.3-1 and later:

    @SYS$MANAGER:CDRECORD.COM HELP

    While folks have had success getting PC-based CD-R/RW
    or DVD-R/RW or DVD+R/RW tools to work with OpenVMS
    partitions, it is far easier and more reliable to use
    the OpenVMS-based versions of these tools and directly-
    attached devices. If you use a Windows-based tool, you
    will want to specifically select its raw mode, image
    mode, or block-copy mode, depending on the terminology
    within the particular tool. The transfer mode and
    selections is variously refered to as a disk-at-once
    (DAO) 2048-byte block ISO Mode 1 raw/image/block data
    disk recording mode.

    More details: Creation of CD recordable or DVD
    recordable media under OpenVMS typically involves
    one of two approaches: the use of the optional CD-R
    (`Scribe') capabilities available for the InfoServer or
    other "offline" hardware packages (PC-based packages
    will be included in this), or the use of a host-based
    package such as the CDRECORD or CDWRITE13_VMS or other
    utilities, including OpenVMS ports of common open-
    source tools made available by Dr. Eberhard Heuser-
    Hofmann and various others. Commercial packages and
    options are also available. Dr. Heuser-Hofmann has
    DVDwrite , a commercial package which can record DVD
    media. ( http://home.tiscali.de/dvd4openvms )

    OpenVMS can read ODS-2, ODS-5, and ISO-9660 format
    CD-ROMs. (If you are very careful, you can create a
    dual-format CD-R; a CD-R with both ODS-2 and ISO-9660
    or both ODS-5 and ISO-9660 or both.)

    9-9

    --

    ---------------------------- #include -----------------------------
    For additional, please see the OpenVMS FAQ -- www.hp.com/go/openvms/faq
    --------------------------- pure personal opinion ---------------------------
    Hoff (Stephen) Hoffman OpenVMS Engineering hoff[at]hp.com


  5. OpenVMS Frequently Asked Questions (FAQ), Part 6/11


    Archive-name: dec-faq/vms/part6
    Posting-Frequency: quarterly
    Last-modified: 11 Apr 2005
    Version: VMSFAQ_20050411-06.TXT







    Files




    InfoServer hardware configurations are no longer
    available from HP, but may potentially be acquired
    through other means; as used equipment. InfoServer
    support also has very specific CD-R recording device
    prerequisites, and these recording devices are no
    longer generally available.

    Packages related to the use of DVD archiving are also
    available, see the multi-volume capabilities of the
    DVDarchive/restore Freeware.

    http://www.geocities.com/SiliconVall.../vmscdwri.html

    Additional information is available at the following
    sites:

    o http://www.djesys.com/vms/cdrom.html

    o http://www.cd-info.com/CDIC/Technology/CD-R/vms.html

    o http://www.faqs.org/faqs/cdrom/cd-
    recordable/part1/preamble.html

    o http://www.tmesis.com/CDrom/

    o http://www.tditx.com/~odsiso/

    U.S. Design offers a package that includes the tools
    necessary to create a CD or DVD-R with either ISO-9660
    or ODS-2 format, for standalone CD-R/RW, DVD-R, or
    DVD+R/RW drives, for recent OpenVMS versions. Details
    are available at:

    o http://www.usdesign.com/

    Also see Section 9.7.2 for details on access to
    recorded media on older CD-ROM drives.

    _____________________________
    9.7.1 CD and DVD notation, terminology?

    CD-ROM is pre-recorded Compact Disk media, and is
    the original and oldest CD format. The original CD
    media was physically stamped, a recording process that
    is now largely reserved to the highest-volume media
    reproduction requirements.

    9-10







    Files




    CD-R is CD Recordable, a write-once storage medium
    that can be read by all but the oldest of CD drives;
    a format which can be read and often even recorded by
    most CD-RW drives.

    CD-RW is CD ReWritable, a format which is readable by
    many CD drives and by most CD-R drives, and with media
    that can be recorded and re-recorded by CD-RW drives.

    CD media recording speeds are listed as multiples of
    150 kilobytes per second, so a 10X drive records at
    1500 kilobytes (1.5 megabytes) per second. 600 MB (70
    minutes) and 700 MB (80 minutes) recording capacities
    are both widely available. The minutes designation is
    derived from the traditional audio-format recording
    capacity of the particular media.

    DVD-R/RW is the older of two common Digital Versatile
    Disk recording formats, and the DVD-R Recordable or
    DVD-RW ReWritable media can be read by many DVD drives.
    As with CD-R formats in older CD drives, older DVD
    and particularly first-generation DVD players may have
    problems reading this media format.

    DVD+R/RW is the newer of the two common Digital
    Versatile Disk recording formats, and the DVD+R
    Recordable or DVD+RW ReWritable media can be read
    by many DVD drives. Akin to DVD-R/RW media, older
    and particularly first-generation DVD drives can have
    problems reading this media format.

    The DVD Plus-series drives and media tend to record
    faster than Minus drives, as (as of this writing)
    the Plus (+) drives do not require an initial media
    formatting pass and the Minus (-) drives do. While the
    appropriate Plus (+) or Minus (-) DVD raw media must
    be chosen for the particular DVD recorder (and DVD
    recording drives that are compatible with and capable
    of using both Plus and Minus media are available),
    the resulting recorded media is generally readable
    (playable) in all recent DVD drives and DVD players,
    regardless of type. (Compatibility is best within the
    same media-series devices of course, but be certain
    to verify compatibility across devices regardless of

    9-11







    Files




    the particular device or particular recording media
    chosen.)

    Presently Plus (+) media is slightly more expensive
    than Minus (-), but with the prices of all CD and
    all DVD media continuing to consistently fall, the
    differences in DVD media costs are becoming irrelevent
    for all but the production of huge volumes of DVD
    media.

    The rated DVD recording speeds are in multiples of 1353
    kilobytes per second, thus a DVD 1X drive is roughly
    equivalent to a CD 9X drive in I/O requirements and
    transfer speed.

    DVD drive recording speed can and does vary. DVD disk
    drive recording speed is limited by the rated recording
    speed of the media used, so the slower (and cheaper)
    DVD media will not record any more quickly in a faster
    drive. A 2.4X DVD drive loaded with 1X media will
    record at 1X.

    _____________________________
    9.7.2 Use of RRD42 and other older (embossed-media) CD drives?

    The RRD42 series SCSI CD-ROM drive is sufficiently old
    that it can have problems processing CD-R and CD-RW
    media. Other very old CD drives can have equivalent
    media compatibility problems when attempting to read
    (much) newer CD media and newer CD media technologies.
    These older CD drives are generally intended for use
    with the so-called embossed media, rather than with
    non-embossed recorded (recordable) media now in common
    circulation.

    Please consider using a slightly-less-ancient CD-ROM
    or CD-R or CD-RW drive when working with non-embossed
    recorded CD media.

    To paraphrase one knowledgable-though deliberately
    nameless-storage engineer, "The RRD42 drive is just
    past the drooling idiot stage".


    9-12







    Files



    _____________________________
    9.7.3 Creating Bootable OpenVMS I64 CD or DVD Media?
    SYS$SETBOOT?

    If you are creating a bootable CD or DVD media for
    use with OpenVMS I64, you will want to specify the
    SYS$SETBOOT block size of 2048, and you will also want
    a disk cluster factor that is a multiple of four via
    INITIALIZE/CLUSTER=4 (or 8, or...), or you will want
    to ensure that SYS$EFI.SYS and SYS$DIAGNOSTICS.SYS
    are aligned to a multiple of four blocks; to a 2048
    byte boundary. This alignment and this blocking is
    only necessary for OpenVMS I64, and only when creating
    optical media OpenVMS I64 for bootstraps.

    The default 512-byte block setting used by SYS$SETBOOT
    is the correct and expected value for traditional disk
    bootstraps on OpenVMS I64 systems.

    Once the boot files are loaded, OpenVMS I64 operates
    with 512-byte blocks; as is the case with ATAPI disks
    on OpenVMS Alpha, all application code will only see
    512-byte blocks on optical media on OpenVMS I64.

    OpenVMS I64 V8.2 and later are expected to
    have a version of SYS$SETBOOT that will flag a
    misaligned SYS$EFI.SYS and (if present) a misaligned
    SYS$DIAGNOSTICS.SYS file.

    For information on SYS$SETBOOT and the SET BOOTBLOCK
    command, please see Section 14.3.9 and see the
    OpenVMS documentation. The purpose and intent of the
    SYS$SETBOOT.EXE image and the SET BOOTBLOCK command
    is analogous to the WRITEBOOT.EXE image on existing
    OpenVMS VAX and OpenVMS Alpha systems.

    For information on CD and DVD optical media drives
    on OpenVMS, please see Section 14.28. For additional
    related information on creating bootable OpenVMS media,
    please see Ask The Wizard topic (9820).





    9-13







    Files



    __________________________________________________ ________
    9.8 What I/O transfer size limits exist in OpenVMS?

    The maximum transfer size is an attribute of the
    particular I/O device, controller and driver
    combination; there is no inherent limit imposed by
    OpenVMS (other than the fact that, today, byte counts
    and LBNs are generally limited to 32 bits).

    The maximum size of a device I/O request is limited
    by the value in UCB$L_MAXBCNT, which is set by the
    device driver based on various factors. (Also check the
    setting of the MAXBUF system parameter for buffered I/O
    transfers, and check the process quotas.)

    Currently, SCSI drivers limit I/O transfers to FE00(16)
    bytes, 65024 bytes (decimal). The reasons for this
    transfer size limitation are largely historical.
    Similarly, DSSI devices are limited to the same value,
    this for hardware-specific reasons. Transfers to HSC
    and HSJ device controllers via the CI are limited
    to 1,048,576 bytes. Client MSCP-served devices are
    limited to 65535 bytes-to help ensure that the I/O
    fragmentation processing happens on the client and not
    on the server system.

    Parts of the OpenVMS I/O subsystem are optimized for
    data transfers less than 64KB, because (obviously)
    most I/O operations are (substantially) less than that.
    OpenVMS can handle larger transfers, if the driver and
    the device can handle it.

    Also see Section 9.4, Section 9.5.

    __________________________________________________ ________
    9.9 Can I use ODBC to connect to OpenVMS database files?

    Yes, you can use various available third-party packages
    that permit remote ODBC clients to access RMS files and
    various commercial databases via the network.

    For RMS, consider acquiring one of the packages
    available from EasySoft, Attunity Connect (formerly
    known as ISG Navigator), Oracle (DB Integrator),
    SolutionsIQ, OpenLink Software (OpenLink Universal
    Data Access), and Synergex.

    9-14







    Files




    The unixODBC package available at
    http://www.unixodbc.org has variously been found to
    operate on OpenVMS, as well.

    For specific commercial databases (other than RMS,
    of course), contact the database vendor directly for
    assistance.

    __________________________________________________ ________
    9.10 If my disks are shown as VIOC Compatible, am I using XFC?

    Yes, you are using XFC caching.

    Disks that are using XFC caching use communication and
    coordination protocols that are compatible with the
    older VIOC caching implementation. With the initial
    implementation of XFC on OpenVMS, you can use the
    command SHOW MEMORY/CACHE to see no disks reported
    in full XFC mode; all disks shown will be listed in
    "VIOC Compatable Mode".

    If you have the OpenVMS system parameter VCC_FLAGS set
    to 2 and are using OpenVMS Alpha V7.3-1 or later, or
    are using OpenVMS Alpha V7.3 with the VMS73_XFC V2.0
    ECO kit or later or with the UPDATE kits, you are using
    XFC.

    Another confusion: the XFC product version is and
    remains V1.0 in all released configurations, please do
    not confuse the internal XFC product version (displayed
    by various commands) with the version number associated
    with the various ECO kit(s). XFC V1.0 does not permit
    volumes to enter full XFC caching, as displayed by the
    "Vols in Full XFC mode" portion of the DCL command SHOW
    MEMORY/CACHE output.

    __________________________________________________ ________
    9.11 RMS Sequential Files and Platform Portability?

    When working with mixed platforms, you will want to
    become familiar with the various RMS sequential record
    formats, including Variable with Fixed Control (VFC),
    stream, stream LF, and stream CR, among other record
    formats.

    9-15







    Files




    Switching formats uses CONVERT/FDL or SET
    FILE/ATTRIBUTES. The former converts files, the
    latter resets attributes. Text editors tend to select
    attributes when creating new files that may or may
    not meet requirements. If the default attributes do
    not match your requirements, create a stub file, SET
    FILE/ATTR, then edit the existing file. (Most editors
    will preserve attributes on an existing file.)

    When working with Windows, stream is usually the best
    choice for sequential file operations. Stream LF
    is most commonly used with UNIX and C applications.
    Windows and UNIX tend not to be able to directly read
    files of "unexpected" sequential RMS record formats.

    VFC is a common OpenVMS format, encoding the record
    length into the record. It is this extra data that can
    cause corruption-like problems when viewed without RMS;
    either directly via $qio or via the file system API on
    other operating system platforms. You will want to look
    at the low-level record formats, and at the RMS and
    the Files and Applications documentation in the OpenVMS
    manuals.

    If transfering through other platforms, use of a
    current version of Zip (with the "-Vv" or "-V" option)
    and unzip, or use of a BACKUP saveset will contain
    and maintain the RMS file and record attributes. (For
    BACKUP and its own attributes requirements, see the
    restoration tool.)














    9-16












    __________________________________________________ _____

    10 OpenVMS Programming Information



    __________________________________________________ ________
    10.1 Modular Programming, Facility Prefixes and Symbol Naming?

    Please first review the OpenVMS Programming Concepts
    Manual and the Guide to Modular Programming manuals.
    Both are available within the OpenVMS documentation
    set, and provide details of the expected norms for
    OpenVMS programs.

    o Learn about the facility prefix, and use a the
    appropriate prefix uniformly throughout all external
    symbols, all logical names, and all files located
    in shared directories. The prefix and the use of
    the dollar sign (<$>) and the underscore (<_>) help
    avoid collisions with other products. Use of the
    dollar sign is reserved to registered products.

    o Please consider use of tools such as the Freeware
    SDL package, and the GNM package. These permit you
    to generate include files and message documentation
    akin to that of OpenVMS, providing users of your
    product with a familiar environment.

    o For product installations, consider use of the PCSI
    installation utility, and provide a product-specific
    configuration DCL command procedure (usually
    SYS$MANAGERrefix$CONFIG.COM) if configuration
    is required.

    o The product startup file is usually named
    SYS$STARTUPrefix$STARTUP.COM, and the
    shutdown file (if needed) is usually
    SYS$STARTUPrefix$SHUTDOWN.COM.

    OpenVMS provides a registry for facility prefixes
    and for MESSAGE message compiler codes. To request
    a prefix and a message facility code for a product
    you distributinng to other customer sites, send your

    10-1







    OpenVMS Programming Information




    request in a mail message addressed to product[-at-
    sign-]hylndr.sqp.zko.dec.com, requesting the submission
    form and details of the registration process.

    Note

    Please do not request facility prefixes for
    products that local to your business, your
    site, or your system. Facility prefixes and
    message codes and the facility registration
    process are intended solely for HP products
    and Partner Products (and yes, even OpenVMS
    Freeware packages) that will be distributed
    across multiple OpenVMS customer sites.

    For a list of common coding bugs, please see the
    remainder of this section of the FAQ and specifically
    Section 10.22, please also see the Ask The Wizard topic
    (1661), and for information on debugging an OpenVMS
    application, please see topic (7552).

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    __________________________________________________ ________
    10.2 Can I have a source code example of calling...?

    Please use the available SEARCH command on OpenVMS, and
    please remember to search the available resources,
    including the support databases and the newsgroup
    archives. Please also realize that most OpenVMS system
    services use similar calling sequences, meaning that an
    example of calling sys$getjpi can be used as an example
    for sys$getsyi and sys$getdvi. Students: please do not
    expect folks to write your homework for you. As for
    search resources:

    o SEARCH SYS$EXAMPLES:*.* target

    o SEARCH TCPIP$EXAMPLES:*.* target

    o http://askq.compaq.com/

    o http://www.hp.com/go/openvms/freeware/

    10-2







    OpenVMS Programming Information




    o http://www.google.com/

    OpenVMS programming documentation, including the
    numerous example programs found in recent versions of
    the OpenVMS Programming Concepts manual, is available:

    o http://www.hp.com/go/openvms/doc/

    As for details of argument passing, most OpenVMS system
    services and RTL routines pass string arguments by
    descriptor. Languages which support native string
    data types create descriptors automatically; those
    which do not (eg., C) require that you set them up
    explicitly. For further details on using descriptors
    and particularly for using descriptors from C, please
    see Section 10.13.

    There is extensive information available on how to call
    OpenVMS system services and OpenVMS Run-Time Library
    routines, including examples in numerous languages.
    Among the best available references are:

    o Your language's User Manual

    o OpenVMS Programming Environment Manual

    o OpenVMS Programming Concepts Manual

    o OpenVMS Programming Interfaces: Calling a System
    Routine

    o OpenVMS Calling Standard

    In addition, you can also locate answers, source
    code examples and related discussions in the Natural
    Language Search Assistant (AskQ) database:

    o http://askq.compaq.com/

    In this area, you will find the source code of
    programming examples for calls to many of the
    OpenVMS system services (and from various programming
    languages), including calls to core services
    sys$getjpi[w], sys$getsyi[w] and sys$qio[w], as well
    as source code examples for calls to many other system
    services and run-time library routines, and examples of

    10-3







    OpenVMS Programming Information




    one of the more difficult calling interfaces found on
    OpenVMS systems, that of the smg$create_menu routine.

    Arne Vajh°j has put together a collection of OpenVMS
    example programs. It can be found at:

    o ftp://ftp.hhs.dk/pub/vms/

    Additional information and examples for OpenVMS are
    available via:

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8. and
    via:

    o http://www.hp.com/go/openvms/freeware/

    __________________________________________________ ________
    10.3 How do I get the arguments from the command line?

    If you're writing a program and want to accept
    arguments from a foreign command, you can use LIB$GET_
    FOREIGN to get the command line and parse it yourself,
    or if you're programming in C, use the normal argc/argv
    method.

    To write an application which uses the normal DCL
    verb/qualifier/parameter syntax for invocation, see
    the description of the CLI$ routines in the OpenVMS
    Callable Utility Routines Reference Manual.

    It is possible to write an application which can be
    used both ways; if a DCL verb isn't used to invoke
    the image, the application parses the command line
    itself. One way to do this is to call CLI$GET_VALUE for
    a required parameter. If it is not present (or you get
    an error), call LIB$GET_FOREIGN to get the command line
    and do the manual parse.

    See also Section 8.2.

    10-4







    OpenVMS Programming Information



    __________________________________________________ ________
    10.4 How do I get a formatted error message in a variable?

    Use the SYS$PUTMSG system service with an action
    routine that stores the message line(s) in the variable
    of your choice. Be sure the action routine returns
    a "false" (low bit clear) function value so that
    SYS$PUTMSG doesn't then try to display the message
    (unless you want it to.) See the description of $PUTMSG
    in the System Services Reference Manual for an example
    of using an action routine.

    __________________________________________________ ________
    10.5 How do I link against SYS$SYSTEM:SYS.STB on an Alpha
    system?

    LINK/SYSEXE is the OpenVMS Alpha equivalent of linking
    against SYS.STB. This links against the base image:
    SYS$BASE_IMAGE.EXE

    Also see Section 10.11, particularly for pointers to
    the details on shareable images and shareable image
    creation, and see Section 10.22 for details of inner-
    mode floating point requirements, of data alignment,
    requirements for use of /NOSYSLIB, and other related
    inner-mode programming details, and see Section 10.11
    for image-related information.

    __________________________________________________ ________
    10.6 How do I do a SET DEFAULT from inside a program?

    The problem is that SYS$SETDDIR only changes the
    default directory - NOT the default disk. The default
    disk is determined by the logical SYS$DISK. If you want
    to change the default disk within a program, then call
    LIB$SET_LOGICAL to change the logical SYS$DISK. You
    will need to call both LIB$SET_LOGICAL and SYS$SETDDIR
    to change both default disk and the default directory!

    __________________________________________________ ________
    10.7 How do I turn my Fortran COMMON into a shareable image on
    Alpha?

    You need to add SYMBOL_VECTOR=(=PSECT)
    to your options file. On OpenVMS VAX all OVR/REL/GBL
    psects were automatically exported into the shareable
    image's Global Symbol Table. On OpenVMS Alpha you have
    to tell the linker that you want this done by means

    10-5







    OpenVMS Programming Information




    of the PSECT keyword in the SYMBOL_VECTOR options file
    statement.

    This has several advantages over OpenVMS VAX. First,
    you don't have to worry about the address of the psect
    when you try to create a new, upwardly compatible
    version of the shareable image. Second, you can control
    which psects, if any, are made visible outside the
    shareable image.

    By default, COMMON PSECTs in HP Fortran for OpenVMS
    Alpha (as well as most other OpenVMS Alpha compilers)
    are NOSHR. On VAX, the default was SHR which required
    you to change the attribute to NOSHR if you wanted
    your COMMON to be in a shareable image but not write-
    shared by all processes on the system. If you do want
    write-sharing, use:

    CDEC$ PSECT common-name=SHR

    in the Fortran source code (the CDEC$ must be begin in
    column 1) or a linker options file PSECT_ATTR statement
    to set the COMMON PSECT attribute to SHR.

    For further information, see the Linker manual.

    __________________________________________________ ________
    10.8 How do I convert between IEEE and VAX floating data?

    In OpenVMS V6.1 and later, the routine CVT$CONVERT_
    FLOAT is documented in the LIB$ Run-Time Library
    Reference Manual, and can perform floating point
    conversions between any two of the following floating
    datatypes: VAX (F,D,G,H), little-endian IEEE (single,
    double, quad), big-endian IEEE (single, double, quad),
    CRAY and IBM System\370, etc.

    HP Fortran (all OpenVMS platforms) has a feature which
    will perform automatic conversion of unformatted
    data during input or output. See the HP Fortran
    documentation for information on "non-native data in
    I/O" and the CONVERT= OPEN statement keyword.

    There are floating-point conversion source code
    packages available for various platforms.

    10-6







    OpenVMS Programming Information




    For further floating-point related information, see:

    o http://www.hhs.dk/anonymous/pub/vms/collection/ieee.zip

    __________________________________________________ ________
    10.9 How do I get the argument count in a Fortran routine?

    On VAX, many programmers would use a MACRO routine
    which accessed the AP register of the caller to
    get the address of the argument list and hence the
    argument count. This was not guaranteed to work on VAX,
    but usually did. However, it doesn't work at all on
    OpenVMS Alpha, as there is no AP register. On Alpha
    systems, you must use a language's built-in function to
    retrieve the argument count, if any. In Fortran this is
    IARGCOUNT, which is also available in DEC Fortran on
    OpenVMS VAX.

    Note that omitting arguments to Fortran routines is
    non-standard and is unsupported. It will work in
    many cases - read the DEC Fortran release notes for
    additional information.

    __________________________________________________ ________
    10.10 How do I get a unique system ID for licensing purposes?

    Many software developers desire to use a unique
    hardware ID to "lock" a given copy of their product
    to a specific system. Most VAX and Alpha systems do
    not have a unique hardware-set "system ID" that can
    be used for this purpose. HP OpenVMS products do not
    use hardware IDs in the licensing methods, as many
    users consider a hardware-based licensing scheme to be
    negative attribute when considering software purchases.

    HP OpenVMS uses a software-based system called the
    License Management Facility (LMF). This provides for
    software keys (Product Authorization Keys or PAKS)
    which support capacity and user-based license checking.
    HP offers an LMF PAK Generator to CSA members-see
    Section 2.13.

    For information on licensing, please see Section 12.4.

    10-7







    OpenVMS Programming Information




    However, if a hardware-based method is required, the
    most common method is based on an Ethernet adaptor
    hardware address. Sample source code for implementing
    this is available at:

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    __________________________________________________ ________
    10.11 What is an executable, shareable, system or UWSS image?

    Executable code in OpenVMS typically resides in
    an image-an image is a file-the file extension is
    typically .EXE-that contains this code. Common types
    of images include executable images, shareable images,
    system images, and protected (UWSS) images.

    Executable images are programs that can be directly
    executed. These images can grant enhanced privileges,
    with an INSTALL of the image with /PRIVILEGE, or can
    grant enhanced access with the specification of a
    subsystem identifier on the ACL associated with the
    image.

    Shareable images contain code executed indirectly,
    these images are referenced from executable images
    and/or from other shareable images. These images can
    not grant enhanced privileges, even with the use of
    INSTALL with /PRIVILEGE or a subsystem identifier.
    These shareable images can be dynamically activated
    (a LINK that occurs at run-time) via the LIB$FIND_
    IMAGE_SYMBOL run-time library (RTL) routine. (See
    `protected images' for information on `privileged
    shareable images'.)

    System images are intended to run directly on the
    VAX or Alpha hardware-these are normally used for the
    kernel code that comprises an operating system.

    Protected images-also refered to as User-Written System
    Services (UWSS), or as privileged shareable images-are
    similiar in some ways to a standard shareable images,
    but these images include a `change mode' handler, and

    10-8







    OpenVMS Programming Information




    execute in an `inner' processor mode (privileged mode;
    executive or kernel), and code executing in inner modes
    has implicit SETPRV privilege. Must be INSTALLed with
    /PROTECT. Note that inner-mode code has restrictions
    around calling library routines, around calling various
    system services, and around calling code located in
    other protected or shareable images.

    Loadable images and device drivers are images that can
    be used to add code into the OpenVMS kernel. Pseudo-
    device drivers are a particularly convenient way to
    add executable code, with associated driver-defined
    data structures, into the kernel. The pseudo-device
    driver includes the UCB and DDB data structures, and a
    calling interface with support for both privileged and
    unprivileged access to the driver code via sys$qio[w]
    calls.

    A cookbook approach to creating OpenVMS shareable
    images is available at the URL:

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    __________________________________________________ ________
    10.12 How do I do a file copy from a program?

    There are several options available for copying files
    from within a program. Obvious choices include using
    lib$spawn(), system(), sys$sndjbc() or sys$creprc()
    to invoke a DCL COPY command. Other common alternatives
    include using the callable convert routines and the
    BACKUP application programming interface (V7.1 and
    later).







    10-9







    OpenVMS Programming Information



    __________________________________________________ ________
    10.13 What is a descriptor?

    A descriptor is a data structure that describes
    a string or an array. Each descriptor contains
    information that describes the type of the data being
    referenced, the size of the data, and the address
    of the data. It also includes a description of the
    storage used for the data, typically static or dynamic.
    Descriptors are passed by reference.

    The following are examples of creating and using
    descriptors in C, with the use of the angle brackets
    normally expected by the C include statements
    deliberately altered in deference to HTML:

    #include {descrip.h}
    #include {lib$routines.h}
    #include {stsdef.h}
    int RetStat;
    char TxtBuf[TXTSIZ]
    struct dsc$descriptor StaticDsc =
    { 0, DSC$K_DTYPE_T, DSC$K_CLASS_S, NULL };
    struct dsc$descriptor DynDsc =
    { 0, DSC$K_DTYPE_T, DSC$K_CLASS_D, NULL };
    int DynDscLen = 255;
    $DESCRIPTOR( ConstDsc, "This is a string" );

    /* finish setting up a static descriptor */
    StaticDsc.dsc$w_length = TXTSIZ;
    StaticDsc.dsc$a_pointer = (void *) TxtBuf;

    /* finish setting up a dynamic descriptor */
    RetStat = lib$sget1_dd( &DynDscLen, &DynDsc );
    if ( !$VMS_STATUS_SUCCESS( RetStat ) )
    return RetStat;

    /* release the dynamic storage */
    RetStat = lib$sfree1_dd( &DynDsc );
    if (!$VMS_STATUS_SUCCESS( RetStat ))
    return RetStat;

    Static descriptors reference storage entirely under
    application program control, and the contents of the
    descriptor data structure can be modified as required
    (by the application). OpenVMS routines do not modify
    the contents of a static descriptor, nor do they alter

    10-10







    OpenVMS Programming Information




    the address or length values stored in the static
    descriptor. (The term "static" refers to the descriptor
    data structure, and not necessarily to the storage
    referenced by the descriptor.)

    Dynamic descriptors reference storage under the
    control of the run-time library, and the contents of
    a dynamic descriptor data structure-once initialized-
    can only be modified under control of run-time library
    routines. The dynamic storage referenced by the dynamic
    descriptor is allocated and maintained by the run-time
    library routines. Various OpenVMS routines do alter
    the contents of the descriptor data structure, changing
    the value for the amount and the address of the storage
    associated with the dynamic descriptor, as required.
    Routines can obviously access and alter the contents of
    the storage referenced by the descriptor.

    OpenVMS languages that include support for strings
    or arrays are expected to use descriptors for the
    particular structure. Most OpenVMS languages, such
    as Fortran and BASIC, use descriptors entirely
    transparently. Some, like DEC C, require the programmer
    to explicitly create and maintain the descriptor.

    For further information on string descriptors, see
    the OpenVMS Programming Concepts manual, part of the
    OpenVMS documentation set.

    Fortran defaults to passing integers by reference
    and characters by descriptor. The following sites
    discuss mixing Fortran and C source code in the same
    application:

    o http://www.hhs.dk/anonymous/pub/vms/misc/FORTRAN_C_
    CALL.COM

    o ftp://ftp.hhs.dk/pub/vms/misc/FORTRAN_C_CALL.COM






    10-11







    OpenVMS Programming Information



    __________________________________________________ ________
    10.14 How do I create a process under another username?

    Many server processes can operate within the context of
    the target user using privileges, using calls such
    as sys$chkpro and (more commonly in this context)
    sys$check_access as needed to determine if access would
    be permitted for the specified user within the current
    security model.

    With OpenVMS V6.2 and later, the persona system
    services (SYS$PERSONA_*) can be used to assume the
    persona of the specified user-these allow the server to
    operate as the specified user, in a controlled fashion.
    The persona services can be used as a "wrapper" around
    a sys$creprc process creation call, as well-this will
    create a seperate process entirely under the assumed
    persona.

    Information on the persona system services is included
    in the OpenVMS V6.2 new features documentation,
    and in the OpenVMS V7.1 and later system services
    documentation. These system services exist and are
    supported in OpenVMS V6.2 and later releases.

    Typical mechanisms for creating a process under another
    username include:

    o personna services around a sys$creprc call. See
    above.

    o via DECnet task-to-task, using explicit
    specification of username and password, or using
    a DECnet proxy. This creates a network-mode job
    under the target user. The network-mode job might
    do little more than a RUN/DETACH of an image passed
    in via task-to-task-task-to-task communications
    are fully available using strictly DCL-to-DCL
    processing, or using a compiled language and DCL,
    etc.)

    o SUBMIT/USER, or the username argument on the
    sys$sndjbc call. This creates a batch-mode job under
    the specified username. The batch-mode job might do
    little more than a RUN/DETACH of an image passed in
    via a parameter.

    10-12







    OpenVMS Programming Information




    o the UIC argument on the sys$creprc call. This mimics
    the UIC of the target user, and is certainly not the
    prefered mechanism for this task.

    o Via pseudo-terminals...

    There are likely a few other mechanisms around...
    There are various tools available from DECUS and other
    sources that allow various forms of user impersonation,
    as well. These tools will require version-dependent
    kernel code and enhanced privileges for some of (or all
    of) their operations.

    __________________________________________________ ________
    10.15 Why do lib$spawn, lib$set_symbol fail in detached
    processes?

    The processing within run-time library (RTL) calls
    such as lib$attach, lib$disable_ctrl, lib$do_command,
    lib$enable_ctrl, lib$get_symbol, lib$run_program,
    lib$set_symbol, lib$set_logical, and lib$spawn, is
    dependent on and requires the presence of a command
    language interpreter (CLI), such as DCL. Without a CLI
    present in the current process, these calls will fail
    with a "NOCLI, no CLI present to perform function"
    error.

    Detached processes typically do not have a CLI present.

    In place of lib$spawn, sys$creprc can often be used.
    The context of the parent process (symbols and logical
    names) will not be propogated into the subprocess when
    sys$creprc is used, though when there is no CLI present
    in the process this (lack of) propogation is moot.

    To create a detached process with a CLI, you must
    specify LOGINOUT as the target image as discussed
    elsewhere in the FAQ, or only use these calls (and
    any other calls requiring a CLI) from images that are
    running in an "interactive", "batch", or "other" mode
    process.

    Also note that the lib$spawn and the C system call
    will fail in a CAPTIVE login environment. The lib$spawn
    call can be gotten to work in this environment with the
    specification of the TRUSTED flag.

    10-13







    OpenVMS Programming Information



    __________________________________________________ ________
    10.16 Where can I obtain Bliss, and the libraries and
    supporting files?

    The Bliss language compilers and documentation are
    available on the OpenVMS Freeware distributions.

    Bliss language source code that contains the following
    statement:

    LIBRARY 'SYS$LIBRARY:STARLET.L32';

    or similar requires the presence of the Bliss
    libraries. These libraries are created on the target
    system using the Bliss require files, and are built
    using the following Bliss commands:

    STARLET.L32 contains the public interfaces to OpenVMS:

    $ BLISS /LIBRARY=SYS$COMMON:[SYSLIB]STARLET.L32 -
    SYS$LIBRARY:STARLET.REQ

    LIB.L32 contains both the public and private interfaces
    to OpenVMS:

    $ BLISS /LIBRARY=SYS$COMMON:[SYSLIB]LIB.L32 -
    SYS$LIBRARY:LIB.REQ+SYS$LIBRARY:STARLET.REQ

    The equivilent files for Bliss64 are created with:

    $ BLISS/A64/LIBRARY=SYS$COMMON:[SYSLIB]LIB.L64 -
    SYS$LIBRARY:LIB.R64+STARLET.REQ+STARLET.R64
    $ BLISS/A64/LIBRARY=SYS$COMMON:[SYSLIB]STARLET.L64 -
    SYS$LIBRARY:STARLET.R64

    Some Bliss code may also require the OpenVMS VAX
    architecture flags. The following is the equivilent
    of the Alpha ARCH_DEFS.REQ module:







    10-14







    OpenVMS Programming Information




    !
    ! This is the OpenVMS VAX version of ARCH_DEFS.REQ, and
    ! contains the architectural definitions for conditionally
    ! compiling OpenVMS Bliss sources for use on VAX systems.
    ! (If you should encounter compilation errors here, please
    ! seriously consider upgrading your Bliss compiler.)
    !
    MACRO VAXPAGE = 1%;
    MACRO BIGPAGE = 0%;
    !
    MACRO VAX = ! = 1 if compiled BLISS/VAX
    %BLISS(BLISS32V)%; ! = 0 if not compiled BLISS/VAX

    MACRO EVAX = ! = 1 if compiled BLISS/E* (Obsolete, old name)
    (%BLISS(BLISS32E) OR %BLISS(BLISS64E))%; ! = 0 if compiled /VAX /Inn

    MACRO ALPHA = ! = 1 if compiled BLISS/E* (New arch name)
    (%BLISS(BLISS32E) OR %BLISS(BLISS64E))%; ! = 0 if compiled /VAX /Inn

    MACRO IA64 = ! = 1 if compiled BLISS/I* (New arch name)
    (%BLISS(BLISS32I) OR %BLISS(BLISS64I))%; ! = 0 if compiled /VAX or /Ann

    MACRO ADDRESSBITS =
    %BPADDR%; ! = 32 or 64 based on compiler used

    Some Bliss code may require the definition files for
    the OpenVMS older LIBRTL routine lib$tparse, or the
    newer lib$table_parse call:

    $ BLISS /LIBRARY=SYS$COMMON:[SYSLIB]TPAMAC.L32 -
    SYS$LIBRARY:TPAMAC.REQ

    __________________________________________________ ________
    10.17 How can I open a file for shared access?

    When creating a file, it is often useful to allow other
    applications and utilities-such as TYPE-to share read
    access to the file. This permits you to examine the
    contents of a log file, for instance.

    A C source example that demonstrates how to do this is
    available in topic (2867) in the OpenVMS Ask The Wizard
    area:

    o http://www.hp.com/go/openvms/wizard/

    10-15







    OpenVMS Programming Information




    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    Depending on the environment, you may need to use C
    calls such as fsync and fflush, and-in specific cases-
    the setvbuf(_IONBF) call.

    __________________________________________________ ________
    10.18 How can I have common sources for messages, constants?

    Use the GNM tools on the OpenVMS Freeware to have
    common sources for MSG (message) files and SDML
    (Document) documentation files. Use the DOCUMENT
    command to convert the SDML documentation into the
    necessary formats (Text, Postscript, HTML, etc). Use
    the MESSAGE/SDL tool (latent in OpenVMS) to create an
    SDL file based on the messages. Then use the SDL tool
    (available on the OpenVMS Freeware) to convert the SDL
    file into language-specific definitions. (There is also
    a converter around to convert SDL into SDML, if you
    want to get pictures of the data structures for your
    documentation.)

    __________________________________________________ ________
    10.19 How do I activate the OpenVMS Debugger from an
    application?

    #include {lib$routines.h}
    #include {ssdef.h}
    #include {string.h}

    main()
    {
    char ascic_debug_commands[128];
    char *dbgcmd = "*show calls;go;exit";

    strcpy( ascic_debug_commands, dbgcmd );
    ascic_debug_commands[0] = (char) strlen( dbgcmd ) -
    1;

    lib$signal(SS$_DEBUG,1,ascic_debug_commands);

    return 1;
    }

    10-16







    OpenVMS Programming Information



    __________________________________________________ ________
    10.20 Dealing with Endian-ness?

    OpenVMS VAX, OpenVMS Alpha and OpenVMS I64 (as well
    as all Microsoft Windows implementations) all support
    and all use the little-endian byte ordering. Certain
    Alpha microprocessors and certain Intel Itanium
    processors can be configured to operate in big-endian
    and potentially in bi-endian mode. HP-UX typically
    operates big-endian.

    With little-endian byte order, the least significant
    byte is always the first byte; the byte at the lowest
    address. With big-endian byte ordering, the byte
    storage order in memory is dependent on the size of the
    data (byte, word, longword) that is being referenced.

    Endian-ness is a problem has been solved many times
    before. Some of the typical solutions include
    htonl/htons and ntohl/ntohs in the standard C
    library and the TCP/IP Services XDR (eXternal Data
    Representation) libraries. One of the more recently
    introduced network formats, and one that is seeing
    extensive press and marketing coverage, is XML.

    __________________________________________________ ________
    10.21 How to resolve LINK-I-DATMISCH errors?

    The message LINK-I-DATMISCH is informational, and
    indicates that the version of the specified shareable
    image found in the system shareable image directory
    does not match the version of the shareable image that
    was originally loaded into IMAGELIB.OLB, one of the
    OpenVMS libraries typically searched by the LINKER.

    From a privileged username, you can usually completely
    repair this via the following DCL command:

    $ LIB/REPLACE/SHARE SYS$LIBRARY:IMAGELIB.OLB SYS$SHARE:LIBRTL.EXE

    This command assumes that the shareable image that
    was found in the SYS$SHARE: area is valid and upward-
    compatiable, and that the image has simply replaced an
    older version without also updating IMAGELIB.

    10-17







    OpenVMS Programming Information



    __________________________________________________ ________
    10.22 HP C and other OpenVMS C Programming Considerations?

    VAX C V3.2 was released for OpenVMS VAX systems in
    1991. DEC C V4.0 replaced VAX C V3.2 in 1993 as the HP
    C compiler for OpenVMS VAX systems. HP C is the ANSI
    C compiler for OpenVMS Alpha systems. VAX C predates
    the ANSI C standards, and has various areas that are
    not compliant with ANSI C requirements. HP C is an ANSI
    C compiler, and can also compile most VAX C code when
    /STANDARD=VAXC is specified. Versions of this compiler
    between V3.2 and V6.5 (exclusive) were known as DEC C,
    DIGITAL C, and Compaq C.

    Both compilers can be installed at the same time on the
    same OpenVMS VAX system, allowing a migration from VAX
    C to DEC C, and allowing the same DEC C code to be used
    on OpenVMS VAX and OpenVMS Alpha.

    The system manager can choose the system default C
    compiler when HP C is installed on a system with VAX C,
    and a C programmer can explicitly select the required
    compiler for a any particular compilation.

    A current "C" license PAK allows access to both VAX C
    and HP C on the same OpenVMS VAX system.

    Various HP C versions can be installed on OpenVMS VAX
    V5.5-2 and later. OpenVMS VAX releases such as V5.5-2
    and V6.0 will require the installation of a HP C RTL
    kit, a kit that is included with the HP C compiler.
    OpenVMS VAX versions V6.1 and later do not require a
    seperate RTL kit, but HP C RTL ECO kits are available
    to resolve problems found with the C RTL on various
    OpenVMS releases.

    With HP C, for automatic resolution of the standard C
    library routines by the LINKER utility, use the /PREFIX
    qualifier, such as /PREFIX=ALL_ENTRIES. If a particular
    application program replaces an existing C library
    routine, use /PREFIX=(ALL_ENTRIES,EXCEPT=(...)). (VAX
    C required explicit specification of an RTL shareable
    image or C object library during the link.)


    10-18







    OpenVMS Programming Information




    When the /PREFIX is requested, the compiler generates
    a "decc$" prefix on the specified symbols. This prefix
    allows the LINKER to resolve the external symbols
    against the symbols present in the DECC$SHR library.
    The DECC$SHR library is included in the IMAGELIB.OLB
    shareable image library, and IMAGELIB is searched by
    default when any program (written in any language) is
    LINKed. Because the standard C library routine names
    are very likely to match application routines written
    in other languages, a prefix "decc$" is added to the C
    symbol names to assure their uniqueness; to prevent
    symbol naming conflicts. C programs, however, can
    sometimes have private libraries for various purposes,
    and the external routines share the same names as
    the library routines. (This is not recommended, but
    there are applications around that use this technique.)
    Thus the need to explicity specify whether or not the
    "decc$" prefix should be prepended to the external
    symbol names by the compiler.

    The qualifiers, and most (all?) with associated
    pragmas, that may be of interest when migrating VAX
    C code to HP C include:

    o Failure to specify the prefixing qualifier (on
    certain and usually older versions of C) can cause
    the compiler to not add the prefixes for the names
    of the C library routines into the references
    placed in the object module, which can in turn
    cause problems resolving the external symbols in
    the library when the object code is linked:

    /PREFIX=ALL_ENTRIES

    o Some VAX C programs erroneously write to the string
    literals. By default, HP C does not allow the
    constants to change.

    /ASSUME=WRITABLE_STRING_LITERALS

    o Enables sharing ("shr") of globals and of extern
    variables. HP C sets externs as non-shareable
    ("noshr"), VAX C as "shr".

    /SHARE_GLOBALS

    10-19







    OpenVMS Programming Information




    o VAX C assumes common block model for external
    linkages.

    /EXTERN_MODE=COMMON_BLOCK

    o Refers to the padding placed between member elements
    within a struct. Disabling member alignment packs
    the data more tightly into memory, but this
    packaging has performance implications, both on
    OpenVMS VAX and particularly on OpenVMS Alpha
    systems.

    /[NO]MEMBER_ALIGNMENT

    o Enable all manner of useful compiler diagnostics:

    /WARN=ENABLE=(LEVEL4,QUESTCODE)/STANDARD=PORT/ACCEPT=NOVAXC_KEYWORDS

    You can disable extraneous diagnostics with the
    following:

    #ifdef __DECC
    #pragma message save
    #pragma message disable /* insert message tag here */
    #endif

    Permit structure members to be naturally aligned
    whenever possible, and avoid using /NOMEMBER_
    ALIGNMENT. If you need to disable member alignment,
    use the equivilent #pragma to designate the specific
    structures. The alignment of structure members normally
    only comes into play with specific unaligned data
    structures-such as the sys$creprc quota itemlist-
    and with data structures that are using data that was
    organized by a system using byte or other non-member
    alignment.

    Versions of HP C such as V6.0 include the capability to
    extract the contents of the standard header libraries
    into directories such as SYS$SYSROOT:[DECC$LIB...],
    and provide various logical names that can be defined
    to control library searches. With HP C versions such
    as V6.0, the default operations of the compiler match
    the expectations of most OpenVMS programmers, without
    requiring any definitions of site-specific library-
    related logical names. (And logical names left from

    10-20







    OpenVMS Programming Information




    older DEC C versions can sometimes cause the compiler
    troubles locating header files.)

    HP C V5.6 and later include a backport library, a
    mechanism by which HP C running on older OpenVMS
    releases can gain access to newer RTL routines added
    to the RTL in later OpenVMS releases-the language RTLs
    ship with OpenVMS itself, and not with the compilers.

    Example C code is available in SYS$EXAMPLES:, in
    DECW$EXAMPLES (when the DECwindows examples are
    installed), in TCPIP$SERVICES (or on older releases,
    UCX$EXAMPLES) when HP TCP/IP Services is installed), on
    the Freeware CD-ROMs, and at web sites such as

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    _____________________________
    10.22.1 Other common C issues

    The localtime() function and various other functions
    maintain the number of years since 1900 in the "struct
    tm" structure member tm_year. This field will contain a
    value of 100 in the year 2000, 101 for 2001, etc., and
    the yearly incrementation of this field is expected to
    continue.

    The C epoch typically uses a longword (known as time_
    t) to contain the number of seconds since midnight
    on 1-Jan-1970. At the current rate of consumption of
    seconds, this longword is expected to overflow (when
    interpreted as a signed longword) circa 03:14:07 on
    19-Jan-2038 (GMT), as this time is circa 0x7FFFFFFF
    seconds since the C base date. (The most common
    solution is to ensure that time_t is an unsigned.)

    If C does not correctly handle the display of the
    local system time, then check the UTC configuration
    on OpenVMS-the most common symptom of this is a skew of
    one hour (or whatever the local daylight savings time
    change might be). This skew can be caused by incorrect
    handling of the "is_dst" setting in the application

    10-21







    OpenVMS Programming Information




    program, or by an incorrect OpenVMS UTC configuration
    on the local system. (See section Section 4.3.)

    Floating point is prohibited in OpenVMS Alpha inner-
    mode (privileged) code, and in any process or other
    execution context that does not have floating point
    enabled. C programmers developing and working with
    OpenVMS Alpha high-IPL kernel-mode code such as device
    drivers will want to become familiar with the floating
    point processing available in the environment, and with
    the C compiler qualifier /INSTRUCTION_SET=[NO]FLOATING_
    POINT. Device drivers and other similar kernel-mode C
    code must be compiled with /INSTRUCTION_SET=FLOATING_
    POINT and /EXTERN_MODEL=STRICT_REFDEF.

    Additionally, the SYS$LIBRARY:SYS$LIB_C.TLB/LIBRARY
    parameter will be needed to be appended to the module
    specification or declared via the C compiler's include
    library logical name mechanism when the C compiler is
    resolving kernel-mode data structures and definitions.
    This library contains OpenVMS kernel-mode and other
    system declaractions, and particularly a mixture
    of undocumented definitions and declarations, and
    particularly definitions and declarations that are
    subject to change (and that can accordingly lead to
    requirements for the recompilation of application
    code).

    In addition to the user-mode C Run-Time Library (RTL)
    mentioned in the OpenVMS C RTL documentation and
    referenced over in Section 3.9, there is a second and
    parallel kernel-mode RTL accessable to device drivers
    and other kernel code on OpenVMS Alpha and OpenVMS
    I64. The most common time this second C library is
    noticed is when C code is (erroneously) linked with
    /SYSEXE/SYSLIB, and duplicate symbol errors typically
    then arise. As code running in supervisor-, executive-
    or kernel-mode context cannot call out a user-mode
    RTL or other user-mode library, you will want to
    respecify the command as LINK /SYSEXE/NOSYSLIB. This
    will eliminate the duplicate symbol errors, since only
    the kernel-mode library will be referenced, and it will
    also avoid calling out into the user-mode libraries.

    10-22







    OpenVMS Programming Information




    When sharing variables with other languages, here is
    some example HP C code...

    ...
    #pragma extern_model save
    #pragma extern_model strict_refdef
    extern int VMS$GL_FLAVOR;
    #pragma extern_model restore
    ...

    and here is some associated example Bliss code...

    ...
    EXTERNAL
    VMS$GL_FLAVOR,
    ....

    _____________________________
    10.22.2 Other common C++ issues

    HP C++ (a separate compiler from HP C) provides
    both symbol mangling and symbol decoration. Some
    of the details of working with longer symbol names
    and the resulting symbol name mangling in mixed
    language environments are listed in the shareable
    image cookbook, and in the C++ documentation. Symbol
    name decoration permits the overloading of functions
    (by adding characters to the external symbol for
    the function to indicate the function return type
    and the argument data types involved), and mixed-
    language external references can and often do need to
    disable this decoration via the extern "C" declaration
    mechanism:

    extern "C"
    {
    extern int ExternSymbol(void *);
    extern int OtherExternSymbol(void *);
    }

    Also see Section 14.7 for information on /ARCHITECTURE
    and /OPTIMIZE=TUNE.

    See Section 10.15 for information on the C system and
    the lib$spawn call in CAPTIVE environments.

    10-23







    OpenVMS Programming Information




    Constructs such as the order of incrementation or
    decrementation and the order of argument processing
    within an argument list are all implementation-defined.
    This means that C coding constructs such as:

    i = i++;
    a[i] = i++;
    foo( i, i++, --i);

    are undefined and can have (adverse) implications when
    porting the C code to another C compiler or to another
    platform. In general, any combination of ++, -, =, +=,
    -=, *=, etc operators that will cause the same value to
    be modified multiple times (between what the ANSI/ISO C
    standard calls "sequence points") produce undefined and
    implementation-specific results.

    Within C, the following are the "sequence points":
    the ";" at the end of a C statment, the ||, &&, ?:,
    and comma operators, and a call to a function. Note
    specifically that = is NOT a sequence point, and that
    the individual arguments contained within a function
    argument list can be processed from right to left, from
    left to right, or at any random whim.

    HP C for OpenVMS VAX (formerly DEC C) and VAX C do
    differ in the related processing.

    So you are looking for OpenVMS-specific definitions
    (include files)?

    UCBDEF.H, PCBDEF.H and other OpenVMS-specific
    definitions-these are considered part of OpenVMS and
    not part of the C compiler kit-are available on all
    recent OpenVMS Alpha releases.

    To reference the version-dependent symbol library
    sys$share:sys$lib_c.tlb, use a command similar to the
    following for compilation:

    $ CC sourcea+SYS$LIBRARY:SYS$LIB_C/LIB

    You can also define DECC$TEXT_LIBRARY to reference the
    library.

    You will want to review the Programming Concepts
    manual, and specifically take a quick look at Chapter
    21.

    10-24







    OpenVMS Programming Information




    And some general background: the STARLET definitions
    (and thus the sys$starlet_c.tlb library) contain the
    symbols and the definitions that are independent of
    the OpenVMS version. The LIB definitions (and thus
    sys$lib_c) contain symbols and definitions that can
    be dependent on the OpenVMS version. You won't need to
    rebuild your code after an OpenVMS upgrade if you have
    included definitions from STARLET. The same cannot be
    said for some of the definitions in LIB-you might need
    to rebuild your code. (The UCB structure can and has
    changed from release to release, for instance.)

    Recent versions of C automatically search sys$starlet_
    c.tlb. Explicit specification of sys$lib_c.tlb is
    required.

    Also see the Ask The Wizard website topics (2486),
    (3803), and (1661):

    o http://www.hp.com/go/openvms/wizard/

    For additional information on the OpenVMS Ask The
    Wizard (ATW) area and for a pointer to the available
    ATW Wizard.zip archive, please see Section 3.8.

    See Section 9.5 for information on the C off_t
    limitations, resolved in OpenVMS V7.3-1 and later and
    in ECO kits available for specific OpenVMS releases.
    The use of a longword for off_t restricts applications
    using native C I/O to file sizes of two gigabytes or
    less, or these applications must use native RMS or XQP
    calls for specific operations.

    __________________________________________________ ________
    10.23 Status of Programming Tools on OpenVMS VAX?

    DECthreads V7.3 and the HP C compiler (also known as
    Compaq C and DEC C) V6.4 are presently expected to
    be the last updates and the last releases of these
    development packages for use on OpenVMS VAX. The run-
    time support for both DECthreads (CMA$RTL) and for C
    (DECC$CRTL) will continue to be maintained, and will
    continue to be available on OpenVMS VAX. The VAX C
    V3.2 compiler is the final VAX C compiler release for
    OpenVMS VAX, and the VAX C Run-Time Library (VAXCRTL)
    will also continue to be available.

    10-25







    OpenVMS Programming Information




    New development and new features and product
    enhancements continue for the OpenVMS Alpha and the
    OpenVMS IA-64 DECthreads and C compilers.

    __________________________________________________ ________
    10.24 Choosing a Version Number for Application Code?

    One of the common rules-of-thumb used for choosing a
    displayed version number string for a new version of a
    layered product or an application, its implications,
    and its expected effects on client applications and
    users, follows:

    o No functional and no application-visible changes,
    bugfixes only-the edit number is incremented.
    These tend to be very small, very isolated, or ECO-
    level changes. These can also be distributions for
    specific hardware configurations or platforms, as
    is the case with an OpenVMS Limited Hardware Release
    (LHR). Application rebuilds are not expected, and
    there is an assumption that general user-provided
    application-related regression testing will not be
    required.

    o Minimal functional and very few user-visible
    changes-the maintenance number is incremented. These
    tend to be very small or even ECO-level changes,
    though somewhat larger than an edit-level change.
    Application rebuilds are not expected, and there is
    an assumption that user-provided application-related
    regression testing will not be required.

    o Various small and upward-compatible functional
    changes-the minor version number is incremented.
    The changes are user-visible, and are intended to be
    user-visible. Application rebuilds are not expected.
    Some application programmers may choose to perform
    regression tests.

    o Large and/or potentially incompatible changes-
    the major version number is incremented. Some
    applications might need to be rebuilt. Various
    application programmers will choose to perform
    regression tests of their respective applications.

    10-26







    OpenVMS Programming Information




    For additional version-numbering materials and for
    information on assigning module generation numbers,
    please see the OpenVMS (POLYCENTER) Software Product
    Installation Utility-variously refered to by acronyms
    including PCSI and SPIA-reference manual available
    within the OpenVMS documentation set.

    Of course, all of this is obviously subject to
    interpretation, particularly around the distinction
    between large and small changes and such. The scale
    of the application is also a factor, as larger and
    more complex applications will tend toward smaller
    increments and will tend to see the maintenance number
    incremented, while new releases of smaller applications
    will tend to see the minor version incremented somewhat
    more frequently.

    The goal of all this is to provide a guide to relative
    scale of changes and the associated effort involved
    in an upgrade for the user and/or for the application
    programmer.

    __________________________________________________ ________
    10.25 Selecting a Process Dump Directory?

    You can customize the device and directory for the
    process dump by defining the logical names SYS$PROCDMP
    and SYS$PROTECTED_PROCDMP. The former is for non-
    privileged dumps, while the latter is the location
    where privileged image dumps are written, and
    preferably an area protected against untrusted access.
    For example:

    $ define SYS$PROCDMP SYS$ERRORLOG:
    $ define /exec SYS$PROTECTED_PROCDMP SYS$ERRORLOG:

    The abouve presumes that the SYS$ERRORLOG logical name
    points to a valid location.

    There is presently no means to change the name of the
    generated dump file from IMAGENAME.DMP to something
    else. Accordingly, you will want to use different
    target directories for this purpose, particularly
    if there is more than one application or process
    potentially writing process dumps.

    10-27







    OpenVMS Programming Information



    __________________________________________________ ________
    10.26 Access to Itanium Assembler?

    If you are interested in accessing the native
    Intel Itanium assembler within the OpenVMS I64 GNV
    environment-and since the iasi64 assembler is a Unix
    program and GNV is a Unix environment for OpenVMS I64-
    you can simply copy iasi64.ext into your gnu:[bin]
    directory in place of "as.", and of "AS.EXE".

    Alternately and probably also better, you can write an
    "as." script to invoke the iasi64.exe image from its
    particular prefered location on the local system.

    A typical "as." script looks like this:

    path/iasi64.exe $1 $2 $3 $4 $5




























    10-28












    __________________________________________________ _____

    11 DECwindows



    __________________________________________________ ________
    11.1 How do I let someone else display something on my
    workstation?

    On a workstation, you will want to use the "Customize"
    menu of the session manager utility and select
    "Security". When the pop-up box appears, you can
    select the host node, username, and tranport that will
    allow you to launch an application that targets the
    workstation display.

    If this does not provide you with access to the
    display, You need a checklist of sorts:

    o Make sure that you've specified the X-windows
    "display" correctly on the remote host. For a
    DECnet transport, the specification uses two colons,
    while the TCP/IP transport typically uses one. The
    X Windows server and the X Windows screen follow
    the host specification, delimited by a period. For
    example:

    __________________________________________________ ______________
    Table 11-1 X Windows Display Commands

    __________________________________________________ _____
    Shell_____Command_________________________________ _____

    csh

    # setenv DISPLAY vms.domain:0.0

    sh and ksh

    # $ DISPLAY=vms.domain:0.0 ; export DISPLAY

    DCL

    $ SET DISPLAY/CREATE/NODE=vms.domain -
    ___________________/TRANSPORT=TCPIP/SERVER=server/SCREEN=screen_

    o If you have verified the command is correct and
    things are still not working, ensure the Security
    settings on the OpenVMS host side will allow the

    11-1







    DECwindows




    incoming connection: Pull down the "Options" menu
    in the Session Manager, and select "Security...". If
    you do not find your host and username and transport
    listed among the authorized users, you will need to
    add an entry.

    o There are various transports available, including
    LOCAL, DECNET, LAT, and TCPIP. You must Select
    the transport appropriate to the incoming
    connection.

    o If the transport is "DECnet", do NOT add the
    double colon (: to the node name.

    o If the transport is "TCPIP", "Username" must
    be an asterisk (*). Why? Because unlike DECnet,
    the TCP/IP protocol does not provide the remote
    username information in the incoming connection.

    o If the connection is "TCPIP", it is best to use
    a full domain name (e.g. Node.Subd.Domain).
    However, you may have to use the IP address
    itself, if your host does not have a way to
    resolve the address via DNS. If you have the
    luxury of fixed addresses (eg: you are not using
    DHCP), then it can be helpful to add two entries
    for each TCP/IP host, one that specifies the host
    name and one that specifies the host address.

    o There are various TCP/IP packages for OpenVMS,
    and you must use syntax appropriate to the
    transport installed.

    o If a TCP/IP connection is still not working,
    ensure that the transport you want has been
    activated for use with DECwindows. See
    Section 11.14 for details of configuring TCP/IP
    as a transport.

    o There is a log file created in SYS$MANAGER: which
    can tell you which transports are loaded, and
    also tell you what connect attempts were rejected,
    including showing what the presented credentials
    were. This file is SYS$MANAGERECW$SERVER_0_
    ERROR.LOG, although the 0 could be another number
    if you have multiple servers on the workstation. I

    11-2







    DECwindows




    have found this file to be very useful for tracking
    down what needs to be put in the Session Manager
    Security entries.

    __________________________________________________ ________
    11.2 How do I create a display on another workstation?

    To create a display from an OpenVMS host to a remote X
    Windows display, use one of the following DCL commands:

    $ SET DISPLAY /CREATE /TRANSPORT=net_transport /NODE=remote_node
    $ SET DISPLAY /CREATE /TRANSPORT=LAT /NODE=remote_node
    $ SET DISPLAY /CREATE /TRANSPORT=DECnet /NODE=remote_node
    $ SET DISPLAY /CREATE /TRANSPORT=TCPIP /NODE=remote_node

    Note that LAT is typically used only for the VXT series
    X Windows terminals, but it can also be used from
    OpenVMS to OpenVMS systems on various OpenVMS releases,
    such as on OpenVMS Alpha V6.1 and later. For details on
    configuring the TCP/IP transport, see Section 11.14.

    If you are interested in X Windows terminals and have
    an older VAXstation system around, please see the EWS
    package on Freeware V5.0.

    __________________________________________________ ________
    11.3 How can I get the information from SHOW DISPLAY into a
    symbol?

    Use the undocumented SHOW DISPLAY/SYMBOL, and then
    reference the symbols DECW$DISPLAY_NODE, DECW$DISPLAY_
    SCREEN, DECW$DISPLAY_SERVER and/or DECW$DISPLAY_
    TRANSPORT.

    An example of calling the underlying (and also
    undocumented) sys$qio programming interface for the
    WSDRIVER (WSAn is available at:

    http://www.hp.com/go/openvms/freeware/

    Look in the Freeware V4.0 directory /srh_examples/DECUS_UNDOC_
    CLINIC/.


    11-3







    DECwindows



    __________________________________________________ ________
    11.4 How do I get a log of a DECterm session?

    If you are working from a DECwindows DECterm terminal
    emulator, you can use the AutoPrint feature. Choose
    the "Printer..." menu item from the "Options" menu, set
    the printing destination to the name of the file you
    want, and set "Auto Print Mode". You are now free to
    continue.

    It should be noted that all of the characters and
    escape sequences are captured, but if you display the
    resulting log file on a DECterm, then you will see
    exactly what was originally displayed.

    You can also use the "Print Screen" screen capture
    available in the DECwindows session manager menus, if
    you simply wish to snapshot a particular portion of the
    X Windows display.

    If you are using the Freeware VTstar terminal emulator
    package, you will find a similar logging mechanism is
    available in the menus.

    __________________________________________________ ________
    11.5 Why is DECwindows Motif not starting?

    First check to see if there is a graphics device,
    usually a G* device. (eg: On a DEC 2000 model 300,
    use the command SHOW DEVICE GQ) If you do not find a
    graphics device:

    o OpenVMS has failed to find the appropriate IRQ
    information for an EISA graphics card (on the
    DEC 2000 series) such as the HP (Compaq) QVision,
    and did not autoconfigure it. Run the correct ECU
    (for Tru64 UNIX and OpenVMS) and reboot. This is
    necessary only on EISA-based systems.

    o You have an EISA-based system (such as the DEC
    2000 model 300) and do not have a HP (Compaq)
    QVision video card. This EISA graphics card should
    have Compaq printed on it, and identifies itself
    as a CPQ3011 or a CPQ3111. If it is not one of
    these two EISA devices, then OpenVMS does not
    support it. (There are no other supported EISA
    graphics controllers, and EISA graphics are normally

    11-4







    DECwindows




    used with DECwindows only on the DEC 2000 series
    systems.)

    o You have a PCI-based system, and do not have a
    supported graphics controller-examples of supported
    controllers include the following:

    o Radeon 7500

    o PowerStorm 3D30, PowerStorm 4D20

    o 3DLabs Oxygen VX1

    See Section 5.16 for further information on some of
    these graphics controllers.

    o You have booted the system minimally, or have
    otherwise disabled the device autoconfiguration
    process.

    If there is a G* graphics device present:

    o There may have been a severe error in the
    DECwindows startup. Type the contents of
    SYS$MANAGERECW$SERVER_0_ERROR.LOG for any
    information on errors starting the server.

    o The system parameter WINDOW_SYSTEM is not set to
    1. While this was a common way for system managers
    to disable the DECwindows server startup, it is
    not particularly reliable as DECwindows can now
    "correct" this setting.

    If you really do not want an OpenVMS system with
    workstation hardware to bootstrap and configure
    itself as a workstation, add the following
    definition to SYLOGICALS.COM:

    $ DEFINE/SYSTEM/EXEC DECW$IGNORE_WORKSTATION TRUE

    o You may not have a valid DECwindows Motif license
    loaded. To check for the two most common types of
    Motif product authorization keys (PAKs), use the
    following DCL commands:

    $ LICENSE LIST DW-MOTIF/FULL
    $ LICENSE LIST NET-APP-SUP*/FULL

    11-5


    --

    ---------------------------- #include -----------------------------
    For additional, please see the OpenVMS FAQ -- www.hp.com/go/openvms/faq
    --------------------------- pure personal opinion ---------------------------
    Hoff (Stephen) Hoffman OpenVMS Engineering hoff[at]hp.com


  6. OpenVMS Frequently Asked Questions (FAQ), Part 7/11


    Archive-name: dec-faq/vms/part7
    Posting-Frequency: quarterly
    Last-modified: 11 Apr 2005
    Version: VMSFAQ_20050411-07.TXT







    DECwindows




    and examine the information displayed. Make sure
    that one of these licenses is present, valid and
    active.

    For information on registering software license
    product authorization keys (PAKs) when you
    cannot log into the system directly, please see
    Section 5.6.2.

    o Check that the DECW$PRIVATE_SERVER_SETUP.COM is
    correct for the graphics controller in use. For
    instance:

    The following is from the 9FX Vision 330 Owners
    Guide, EK-V330G-OG pg 2-9. Place the following in
    DECW$PRIVATE_SERVER_SETUP.COM, creatibng .COM from
    .TEMPLATE if necessary. Locate the DECW$PRIVATE_
    SERVER_SETUP.COM file in SYS$SPECIFIC:[SYSMGR] or
    in SYS$COMMON:[SYSMGR] as appropriate; the former
    file is used for this system within a cluster
    configuration, and the latter is used for all
    systems that do not also have a local copy of this
    file in SYS$SPECIFIC:[SYSMGR].

    $ DECW$XSIZE_IN_PIXELS == xvalue
    $ DECW$YSIZE_IN_PIXELS == yvalue
    $ DEFINE/SYSTEM DECW$SERVER_REFRESH_RATE rate_in_Hz

    Also see Section 11.11. Details of the PowerStorm
    3D30 and 4D20 settings are available in the OpenVMS
    Ask The Wizard area.

    __________________________________________________ ________
    11.6 How do I set the title on a DECterm window?

    If you are creating a new DECterm window, check

    $ HELP CREATE /TERMINAL /WINDOW_ATTRIBUTES

    If you want to change the title of an existing window,
    use the following control sequences, where is the
    ANSI escape code, value decimal 27, and "text label" is
    what you want to display:

    To set the DECterm title, send the escape character,
    then the characters "]21;", then the text label string,
    and then an escape character followed by a backslash
    character.

    11-6







    DECwindows




    To set the icon label, send the escape character, then
    the characters "]2L;", then the icon label string,
    and then an escape character followed by a backslash
    character.

    To set both the DECterm title and icon to the full
    device name, you can use the following DCL commands:

    $ esc[0,7] = 27
    $ fulldevnam = F$Edit(F$GetDVI("TT","FULLDEVNAM"),"UPCASE,COLLAPSE")
    $ write sys$output esc+ "]21;" + fulldevnam + esc + "\"
    $ write sys$output esc+ "]2L;" + fulldevnam + esc + "\"

    You can also change the title and the icon using the
    Options-Window... menu.

    Also see Section 12.1 and Section 8.13.

    __________________________________________________ ________
    11.7 How do I customize DECwindows, including the login screen?

    To customize various DECwindows Motif characteristics
    including the defaults used by the SET DISPLAY command,
    the DECwindows login screen background logo used (the
    default is the DIGITAL, Compaq, or HP logo), various
    keymaps (also see Section 11.7.2 and Section 11.7.1),
    the FileView defaults, session manager defaults,
    the DECwindows login processing, DECwindows log file
    processing, and various other DECwindows attributes,
    see the example file:

    $ SYS$MANAGERECW$PRIVATE_APPS_SETUP.TEMPLATE

    This example template file is typically copied over to
    the filename SYS$COMMON:[SYSMGR]DECW$PRIVATE_APPS_
    SETUP.COM and then modified to meet site-specific
    requirements.

    Additionally, various X tools such as xsetroot, bitmap
    and xrdb-some these can be useful in customizing the
    appearance of an application or of the DECwindows Motif
    display-are provided in the DECW$UTILS: area.

    When using DECwindows V1.2-4 and later on OpenVMS
    Alpha, the default desktop is the Common Desktop
    Environment (CDE). You can select your preferred
    desktop (CDE or DECwindows Motif) when logging in,
    or you can change the default to the DECwindows

    11-7







    DECwindows




    Motif desktop using the DCL symbol decw$start_new_
    desktop in the DECwindows private application setup
    command procedure. See SYS$MANAGERECW$PRIVATE_APPS_
    SETUP.TEMPLATE for further details, and how to create
    DECW$PRIVATE_APPS_SETUP.COM.

    Note that with DECwindows CDE, the root window is
    no longer visible by default. The root window is
    hidden behind the "backdrop" window of the current
    CDE workspace. To make the root window visible, use the
    CDE style manager selection "backdrop none", and use
    information such as that in the OpenVMS FAQ to set the
    root window.

    To add a new backdrop to the DECwindows CDE
    environment, the backdrop must first be in or be
    converted into X11 pixmap format. (This conversion
    is often possible using tools such as xv.) Then (if
    necessary) create the default backdrop directory
    SYS$COMMON:[CDE$DEFAULTS.USER.BACKDROPS]. Place the
    X11 pixmap file containing the desired image into the
    backdrops directory, ensure that it has a filename
    extension of .PM. (The xv default filename extension
    for the X11 pixmap file is .XPM, while CDE expects
    only to see files with .PM.) Now invoke the CDE style
    manager and select a new backdrop. You will find
    your image will be placed at the end of the list of
    backdrops available.

    If you require a message be included on the initial
    display-where the start session display and the logo
    appears-you can use either of the following approaches:

    o The simplest approach requires OpenVMS V7.3-2 or
    later, and the corresponding DECwindows V1.3-
    1 kit or later. You will want to create a file
    named SYS$COMMON:[SYSMGR]DECW$GREET.TXT, and this
    will be displayed in a popup-with an OK button-
    when the login box is displayed. This is intended
    specifically for applications requiring such a
    display.



    11-8







    DECwindows




    o The second approach involves copying the file
    XRESOURCES.DAT from

    SYS$SYSDEVICE:[VMS$COMMON.CDE$DEFAULTS.SYSTEM.CONFIG.C]

    into the directory

    SYS$SYSDEVICE:[VMS$COMMON.CDE$DEFAULTS.USER.CONFIG.C]

    and editing the copy. Specifically, look for the following:

    Dtlogin*greeting.labelString:

    The line is normally commented out, and by default
    contains the string:

    Welcome to %localhost%

    You can change this text to something akin to the
    following:

    Dtlogin*greeting.labelString: Welcome to Heck \n\
    This is a Trusted System owned by the Rulers of the planet Zark\n\
    \n\
    We Come In Peace\n\
    \n
    If you want Privacy, you've come to the wrong place\n\
    \n

    The lines of text will be centered for you.

    In most DECwindows versions, you will be able to
    onbtain only about eight (8) lines of text. Changes
    have been implemented in DECwindows V1.3 and later
    that permit up to about twenty-five (25) lines of
    text.

    The login logo is stored as an XPM bitmap image in the
    text file SYS$SYSROOT:[SYSCOMMON.CDE$DEFAULTS.SYSTEM.APPCONFIG.ICONS.C]DECDTLOGO.PM,
    and it can be changed. Copy the file to SYS$SYSROOT:[SYSCOMMON.CDE$DEFAULTS.USER.APPCONFIG.ICONS.C]DECDTLOGO.PM,
    as DECwindows upgrades can replace the system version
    of this file.

    On DECwindows V1.3-1 and later (and possibly on V1.3),
    both DECwindows CDE and DECwindows Motif displays use
    this logo file. On older releases, only the DECwindows
    CDE displays used this logo file, while the logo
    used for the Motif login display was hard-coded into
    the package and the only available override is the

    11-9







    DECwindows




    DECW$LOGINLOGO command procedure mechanism within the
    customized, site-specific DECW$PRIVATE_APPS_SETUP.COM
    file.

    Look at the contents of the DECDTLOGO.PM file and at
    other *.XPM files and tools for additional details.

    _____________________________
    11.7.1 How do I customize DECwindows keymapping?

    Various keymaps can be implemented on OpenVMS and other
    X Windows systems, allowing the implementation of
    a Dvorak-style or other alternate keymappings. For
    details, see the available X Windows documentation
    (this is the documentation associated with X Windows
    itself, and not the product documentation for the
    OpenVMS operating system nor for the DECwindows
    X Windows implementation) and see the DECwindows
    *.DECW$KEYMAP (text-format) files found in the
    DECwindows DECW$KEYMAP: directory.

    For other keymapping information, see Section 11.7.2.

    _____________________________
    11.7.2 Why does the DELETE key delete forward instead of
    backward?

    See the SET TERMINAL/BACKSPACE command on OpenVMS V8.2
    and later.

    This behaviour involves the Motif virtual key bindings.
    When a Motif application starts, it looks at the vendor
    string returned in the display connection information
    and attempts to match the string to a table of virtual
    bindings.

    You can override the default bindings in your
    decw$xdefaults.dat file. Here is the entry you would
    make to get the default VMS bindings.





    11-10







    DECwindows




    *defaultVirtualBindings:\
    osfCancel : \n\
    osfLeft : \n\
    osfUp : \n\
    osfRight : \n\
    osfDown : \n\
    osfEndLine :Alt \n\
    osfBeginLine :Alt \n\
    osfPageUp : \n\
    osfPageDown : \n\
    osfDelete :Shift \n\
    osfUndo :Alt \n\
    osfBackSpace : \n\
    osfAddMode :Shift \n\
    osfHelp : \n\
    osfMenu : \n\
    osfMenuBar : \n\
    osfSelect :