Course type
Course location
Course dates
Full course price

This course is intended to quickly bring the application programmer up to speed in an OpenVMS environment. The scope of material is fairly broad – from basic compiling to advanced system services. Although some of the material will be provided as an exposure to capabilities available to the programmer, it is expected that the students will be able to program at an in-depth level upon completion of this course.


OpenVMS Fundamentals and OpenVMS System Management I or equivalent experience as well as fundamental understanding on system concepts.

Course Objectives

Upon completion of the course, students should be able to:

  • Compile and link a program
  • Read listing and map files
  • Understand how to call system procedures, including system services and runtime library routines
  • Create a process
  • Communicate with another process
  • Synchronize using event flags, mailboxes, global sections, and locks

Course Audience

OpenVMS applications programmers
OpenVMS system programmers

Course Outline

  • CISC vs. RISC vs. EPIC architectures
  • Data types
  • OpenVMS access modes
  • OpenVMS processes
  • OpenVMS Alpha memory management
  • OpenVMS calling standard
  • OpenVMS compilers
  • Common compiler options
  • $ LINK command
  • Image activation
  • Symbolic debugger
  • Data alignment
  • Symbolic naming conventions
  • Libraries used by compilers and linkers
  • Floating point formats and conversion
  • Runtime library routines
  • General purpose library routines
  • Screen management library
  • String manipulation library
  • Utility routines
  • System services
  • Synchronization
  • Events flags
  • The I/O status block
  • Asynchronous System Traps (ASTs)

  • RMS concepts
  • RMS structures
  • RMS services
  • Special language considerations
  • RMS system services examples
  • File sharing and record locking
  • Language-specific considerations
  • RMS utilities
  • Assigning channels
  • The QIO system service
  • File I/O
  • Terminal I/O
  • Mailbox I/O
  • Buffer objects
  • Fast I/O concepts
  • Implementing fast I/O
  • Locking concepts
  • OpenVMS support for locking
  • OpenVMS lock implementation
  • Time formats
  • System time and time conversion
  • Coordinated Universal Time (UTC)
  • Library routines supporting time
  • System timers
  • The process
  • Image activation
  • Process creation
  • Getting job/process information
  • Process selection
  • Process management/control
  • Terminating images/processes
  • Exit handlers
  • Shareable images
  • Resident images
  • Memory allocation
  • Process sections
  • Global sections
  • Working sets and swapping
  • 64-bit memory usage

Instructors in this course

Homi Faris

31 years of VMS support and teaching experience, started at DEC teaching almost all VMS courses, now a member of the VSI support team and pre-sales in France.
Languages: French

Gerrit Woertman

38 years of OpenVMS support and teaching experience. Application support, Fortran programming, demo-center, consultancy, pre-sales. HP Certified OpenVMS Systems Engineer with extensive systems management and migration experience.
Languages: English, Dutch

Jerry Henson

39 years of experience as a VMS programmer (Fortran, C, Basic, Cobol), extensive experience with ACMS.
Languages: English

Tom Wade

HP Certified OpenVMS Systems Engineer with 36 years of OpenVMS support and teaching experience; has lectured in UCD to degree level in computer science and computer networking.
Languages: English