Document revision date: 30 March 2001

## OpenVMS Guide to Extended File Specifications

Previous | Contents | Index

## B.4 Programming Utility Changes

The following sections describe changes specific to OpenVMS programming utilities and their routines to support Extended File Specifications.

### B.4.1 File Definition Language (FDL) Routines

The File Definition Language (FDL) routines have been enhanced on OpenVMS Version 7.2 for Alpha to support Extended File Specifications. A new flag, FDL$V_LONG_NAMES, has been added to the flags argument of the following routines:

> FDL$CREATE
> FDL$GENERATE
> FDL$PARSE
> FDL$RELEASE

The following sections describe the FDL$V_LONG_NAMES flag as it relates to each FDL routine.

#### B.4.1.1 FDL$CREATE Routine (Alpha Only)

The following new flag has been added to the flags argument:

Flag | Function
--- | ---
FDL$V_LONG_NAMES | Returns the RESULT_NAME using the long result name from a long name access block (NAML). By default, the RESULT_NAME is returned from the short fields of a name access block (NAM) and thus may have a generated specification. This flag is valid for OpenVMS Alpha only.

#### B.4.1.2 FDL$GENERATE Routine (Alpha Only)

The following new flag has been added to the flags argument:

Flag | Function
--- | ---
FDL$V_LONG_NAMES | Returns the FDL_FILE_RESNAM using the long result name from a long name access block (NAML). By default, the FDL_FILE_RESNAM is returned from the short fields of a name access block (NAM) and thus may have a generated specification. This flag is valid for OpenVMS Alpha only.

#### B.4.1.3 FDL$PARSE Routine (Alpha Only)

The following new flag has been added to the flags argument:

Flag | Function
--- | ---
FDL$V_LONG_NAMES | Allocates and returns a long name access block (NAML) linked to the returned RMS file access block (FAB). The appropriate values are set in the NAML and FAB blocks so that the long file name fields of the NAML block will be used. By default, a name block is not allocated and the file name fields of FAB are used. If the FDL$V_LONG_NAMES flag is set, then the FDL$V_LONG_NAMES bit must also be set in the flags argument to the FDL$RELEASE routine to ensure that memory allocated for the NAML block is deallocated properly. This flag is valid for OpenVMS Alpha only.

#### B.4.1.4 FDL$RELEASE Routine (Alpha Only)

The following new flag has been added to the flags argument:

Flag | Function
--- | ---
FDL$V_LONG_NAMES | Deallocates any virtual memory used for a long name access block (NAML) created by the FDL$PARSE routine. This flag is valid for OpenVMS Alpha only.

## B.5 Run-Time Library Changes

To enable the use of extended file names, several routines in the LIB$ Run-Time Library have been modified so that they can optionally accept or return a NAML block rather than a NAM block. The following routines have been modified:

- LIB$CREATE_DIR
- LIB$DELETE_FILE
- LIB$FILE_SCAN
- LIB$FIND_FILE
- LIB$RENAME_FILE
- LIB$FID_TO_NAME

### B.5.1 LIB$CREATE_DIR

The maximum size of argument device-directory-spec is now 255 characters on VAX, and 4095 characters on Alpha.

### B.5.2 LIB$DELETE_FILE

The format of LIB$DELETE_FILE is now:

    LIB$DELETE_FILE     filespec [,default-filespec] [,related-filespec]
                        [,user-success-procedure] [,user-error-procedure]
                        [,user-confirm-procedure] [,user-specified-argument]
                        [,resultant-name] [,file-scan-context] [,flags])

The flags argument is new, and has the following format:

     flags
     OpenVMS usage:   mask_longword
     type:            longword (unsigned)
     access:          read only
     mechanism:        by reference

User flags. The flags argument is the address of an unsigned longword containing the user flags.

The flag bits and their corresponding symbols are described in the following table:

Bit | Symbol | Description
--- | --- | ---
0 |  | Reserved to Compaq.
1 |  | Reserved to Compaq.
2 | LIB$M_FIL_LONG_NAMES | (Alpha only) If set, LIB$DELETE_FILE can process file names with a maximum length of NAML$C_MAXRSS. If clear, LIB$DELETE_FILE can process file specifications with a maximum length of 255 bytes (default).

On Alpha systems, if you specify the user-confirm-procedure in the call to LIB$DELETE_FILE, and the LIB$M_FIL_LONG_NAMES flag is set, the FAB referenced by the fab argument to the confirm-procedure routine references a NAML block rather than a NAM block. The NAML block supports the use of long file names with a maximum length of NAML$C_MAXRSS. See the OpenVMS Record Management Services Reference Manual for information on NAML blocks.

LIB$DELETE_FILE has an additional condition value returned. LIB$INVARG indicates that an unspecified bit was set in the flags argument.

### B.5.3 LIB$FILE_SCAN

The fab argument to LIB$FILE_SCAN can now reference either a NAM or NAML block.

### B.5.4 LIB$FIND_FILE

The flags argument to LIB$FIND_FILE has the following new bit:

Bit | Symbol | Description
--- | --- | ---
2 | LIB$M_FIL_LONG_NAMES | (Alpha only) If set, LIB$FIND_FILE can process file specifications with a maximum length of NAML$C_MAXRSS. If clear, LIB$FIND_FILE can process file specifications with a maximum length of 255 bytes (default).

On Alpha systems, support for file specifications longer than 255 bytes is provided only when the LIB$M_FIL_LONG_NAMES flag is set in the flags argument. When this flag is set, a NAML block (rather than a NAM block) is part of the context, and file specifications can have a maximum length of NAML$C_MAXRSS. See the OpenVMS Record Management Services Reference Manual for information on NAML blocks.

### B.5.5 LIB$RENAME_FILE

The flags argument to LIB$RENAME_FILE has the following new bit:

Bit | Symbol | Description
--- | --- | ---
2 | LIB$M_FIL_LONG_NAMES | (Alpha only) Controls whether to accept file specifications greater than 255 bytes in length. If this bit is set, LIB$RENAME_FILE can process file specifications with a maximum length of NAML$C_MAXRSS characters. If this bit is clear, LIB$RENAME_FILE can process file names with a maximum length of 255 bytes.

On Alpha systems, if you specify the user-confirm-procedure in the call to LIB$RENAME_FILE, and the LIB$M_FIL_LONG_NAMES flag is set, the FAB referenced by the old-fab argument to the confirm-procedure routine references a NAML block rather than a NAM block. The NAML block supports the use of long file names with a maximum length of NAML$C_MAXRSS. See the OpenVMS Record Management Services Reference Manual for information on NAML blocks.

### B.5.6 LIB$FID_TO_NAME

If the file specification is longer than can be accommodated by the filespec buffer, a directory in the path may be replaced by a DID abbreviation (see Section 3.2.2.1). If the file specification after DID abbreviation is longer than can be accommodated by the buffer, the file specification is truncated and, as in prior versions, LIB$_STRTRU is returned as an alternate success status. In the case of a dynamic descriptor, the maximum allows a string as large as 4095 bytes to be returned.

## Appendix C
Character Sets

The DEC Multinational Character Set (MCS) consists of a definition of the characters identified by hexadecimal values 00 through FF, inclusive, that was created and used by Digital Equipment Corporation. The DEC MCS is divided into two parts, the ASCII 7-bit character set (identified by hexadecimal values 00 through 7F, inclusive), and the set of 8-bit characters identified by hexadecimal values 80 through FF, inclusive. The DEC MCS is familiar to most users of software created and sold by DIGITAL.

The Unicode Standard Character Set (UCS-2) is a definition, by The Unicode Consortium, of the set of 16-bit characters that can be identified by hexadecimal values 0000 through FFFF, inclusive.

The ISO Latin-1 character set is the UCS-2 definition of the 8-bit characters identified by hexadecimal values 00 through FF, inclusive. The ISO Latin-1 character set definition differs slightly from the DEC MCS definition of the hexadecimal values 80 through FF.

Table C-1 contains the DEC Multinational Character Set (MCS). Table C-1 indicates the characters that differ between the two character sets, and Figure C-1 shows the differing characters.

See The Unicode Standard, published by The Unicode Consortium, for details about the Unicode (UCS-2) character set.

Table C-1 DEC Multinational Character Set
Hex Code | MCS Char or Abbrev. | DEC Multinational Character Name
--- | --- | ---
ASCII Control Characters1
00 | NUL | null character
01 | SOH | start of heading (Ctrl/A)
02 | STX | start of text (Ctrl/B)
03 | ETX | end of text (Ctrl/C)
04 | EOT | end of transmission (Ctrl/D)
05 | ENQ | enquiry (Ctrl/E)
06 | ACK | acknowledge (Ctrl/F)
07 | BEL | bell (Ctrl/G)
08 | BS | backspace (Ctrl/H)
09 | HT | horizontal tabulation (Ctrl/I)
0A | LF | line feed (Ctrl/J)
0B | VT | vertical tabulation (Ctrl/K)
0C | FF | form feed (Ctrl/L)
0D | CR | carriage return (Ctrl/M)
0E | SO | shift out (Ctrl/N)
0F | SI | shift in (Ctrl/O)
10 | DLE | data link escape (Ctrl/P)
11 | DC1 | device control 1 (Ctrl/Q)
12 | DC2 | device control 2 (Ctrl/R)
13 | DC3 | device control 3 (Ctrl/S)
14 | DC4 | device control 4 (Ctrl/T)
15 | NAK | negative acknowlege (Ctrl/U)
16 | SYN | synchronous idle (Ctrl/V)
17 | ETB | end of transmission block (Ctrl/W)
18 | CAN | cancel (Ctrl/X)
19 | EM | end of medium (Ctrl/Y)
1A | SUB | substitute (Ctrl/Z)
1B | ESC | escape
1C | FS | file separator
1D | GS | group separator
1E | RS | record separator
1F | US | unit separator
ASCII Special and Numeric Characters
20 | SP | space
21 | ! | exclamation point
22 | " | quotation marks (double quote)
23 | # | number sign
24 | $ | dollar sign
25 | % | percent sign
26 | & | ampersand
27 | ' | apostrophe (single quote)
28 | ( | opening parenthesis
29 | ) | closing parenthesis
2A | * | asterisk
2B | + | plus
2C | , | comma
2D | -- | hyphen or minus
2E | . | period or decimal point
2F | / | slash
30 | 0 | zero
31 | 1 | one
32 | 2 | two
33 | 3 | three
34 | 4 | four
35 | 5 | five
36 | 6 | six
37 | 7 | seven
38 | 8 | eight
39 | 9 | nine
3A | : | colon
3B | ; | semicolon
3C | < | less than
3D | = | equals
3E | > | greater than
3F | ? | question mark
ASCII Alphabetic Characters
40 | @ | commercial at sign
41 | A | uppercase A
42 | B | uppercase B
43 | C | uppercase C
44 | D | uppercase D
45 | E | uppercase E
46 | F | uppercase F
47 | G | uppercase G
48 | H | uppercase H
49 | I | uppercase I
4A | J | uppercase J
4B | K | uppercase K
4C | L | uppercase L
4D | M | uppercase M
4E | N | uppercase N
4F | O | uppercase O
50 | P | uppercase P
51 | Q | uppercase Q
52 | R | uppercase R
53 | S | uppercase S
54 | T | uppercase T
55 | U | uppercase U
56 | V | uppercase V
57 | W | uppercase W
58 | X | uppercase X
59 | Y | uppercase Y
5A | Z | uppercase Z
5B | [ | left bracket
5C | \ | backslash
5D | ] | right bracket
5E | ^ | circumflex
5F | _ | underscore
60 | ` | grave accent
61 | a | lowercase a
62 | b | lowercase b
63 | c | lowercase c
64 | d | lowercase d
65 | e | lowercase e
66 | f | lowercase f
67 | g | lowercase g
68 | h | lowercase h
69 | i | lowercase i
6A | j | lowercase j
6B | k | lowercase k
6C | l | lowercase l
6D | m | lowercase m
6E | n | lowercase n
6F | o | lowercase o
70 | p | lowercase p
71 | q | lowercase q
72 | r | lowercase r
73 | s | lowercase s
74 | t | lowercase t
75 | u | lowercase u
76 | v | lowercase v
77 | w | lowercase w
78 | x | lowercase x
79 | y | lowercase y
7A | z | lowercase z
7B | { | left brace
7C | | | vertical line
7D | } | right brace (ALTMODE)
7E | ~ | tilde (ALTMODE)
7F | DEL | rubout (DELETE)
Control Characters
80 |  | [reserved]
81 |  | [reserved]
82 |  | [reserved]
83 |  | [reserved]
84 | IND | index
85 | NEL | next line
86 | SSA | start of selected area
87 | ESA | end of selected area
88 | HTS | horizontal tab set
89 | HTJ | horizontal tab set with justification
8A | VTS | vertical tab set
8B | PLD | partial line down
8C | PLU | partial line up
8D | RI | reverse index
8E | SS2 | single shift 2
8F | SS3 | single shift 3
90 | DCS | device control string
91 | PU1 | private use 1
92 | PU2 | private use 2
93 | STS | set transmit state
94 | CCH | cancel character
95 | MW | message waiting
96 | SPA | start of protected area
97 | EPA | end of protected area
98 |  | [reserved]
99 |  | [reserved]
9A |  | [reserved]
9B | CSI | control sequence introducer
9C | ST | string terminator
9D | OSC | operating system command
9E | PM | privacy message
9F | APC | application
Other Characters
A0 |  | [reserved] 2
A1 | ¡ | inverted exclamation point
A2 | ¢ | cent sign
A3 | £ | pound sign
A4 |  | [reserved] 2
A5 | ¥ | yen sign
A6 |  | [reserved] 2
A7 | § | section sign
A8 | ¤ | general currency sign 2
A9 | © | copyright sign
AA | ª | feminine ordinal indicator
AB | « | angle quotation mark left
AC |  | [reserved] 2
AD |  | [reserved] 2
AE |  | [reserved] 2
AF |  | [reserved] 2
B0 | ° | degree sign
B1 | ± | plus/minus sign
B2 | ² | superscript 2
B3 | ³ | superscript 3
B4 |  | [reserved] 2
B5 | µ | micro sign
B6 | ¶ | paragraph sign, pilcrow
B7 | · | middle dot
B8 |  | [reserved] 2
B9 | ¹ | superscript 1
BA | º | masculine ordinal indicator
BB | » | angle quotation mark right
BC | ¼ | fraction one-quarter
BD | ½ | fraction one-half
BE |  | [reserved] 2
BF | ¿ | inverted question mark
C0 | À | uppercase A with grave accent
C1 | Á | uppercase A with acute accent
C2 | Â | uppercase A with circumflex
C3 | Ã | uppercase A with tilde
C4 | Ä | uppercase A with umlaut (diaeresis)
C5 | Å | uppercase A with ring
C6 | Æ | uppercase AE diphthong
C7 | Ç | uppercase C with cedilla
C8 | È | uppercase E with grave accent
C9 | É | uppercase E with acute accent
CA | Ê | uppercase E with circumflex
CB | Ë | uppercase E with umlaut (diaeresis)
CC | Ì | uppercase I with grave accent
CD | Í | uppercase I with acute accent
CE | Î | uppercase I with circumflex
CF | Ï | uppercase I with umlaut (diaeresis)
D0 |  | [reserved] 2
D1 | Ñ | uppercase N with tilde
D2 | Ò | uppercase O with grave accent
D3 | Ó | uppercase O with acute accent
D4 | Ô | uppercase O with circumflex
D5 | Õ | uppercase O with tilde
D6 | Ö | uppercase O with umlaut (diaeresis)
D7 | OE | uppercase OE ligature 2
D8 | Ø | uppercase O with slash
D9 | Ù | uppercase U with grave accent
DA | Ú | uppercase U with acute accent
DB | Û | uppercase U with circumflex
DC | Ü | uppercase U with umlaut (diaeresis)
DD | Y | uppercase Y with umlaut (diaeresis)
DE |  | [reserved] 2
DF | ß | German lowercase sharp s
E0 | à | lowercase a with grave accent
E1 | á | lowercase a with acute accent
E2 | â | lowercase a with circumflex
E3 | ã | lowercase a with tilde
E4 | ä | lowercase a with umlaut (diaeresis)
E5 | å | lowercase a with ring
E6 | æ | lowercase ae diphthong
E7 | ç | lowercase c with cedilla
E8 | è | lowercase e with grave accent
E9 | é | lowercase e with acute accent
EA | ê | lowercase e with circumflex
EB | ë | lowercase e with umlaut (diaeresis)
EC | ì | lowercase i with grave accent
ED | í | lowercase i with acute accent
EE | î | lowercase i with circumflex
EF | ï | lowercase i with umlaut (diaeresis)
F0 |  | [reserved] 2
F1 | ñ | lowercase n with tilde
F2 | ò | lowercase o with grave accent
F3 | ó | lowercase o with acute accent
F4 | ô | lowercase o with circumflex
F5 | õ | lowercase o with tilde
F6 | ö | lowercase o with umlaut (diaeresis)
F7 | oe | lowercase oe ligature 2
F8 | ø | lowercase o with slash
F9 | ù | lowercase u with grave accent
FA | ú | lowercase u with acute accent
FB | û | lowercase u with circumflex
FC | ü | lowercase u with umlaut (diaeresis)
FD | ÿ | lowercase y with umlaut (diaeresis) 2
FE |  | [reserved] 2
FF |  | [reserved] 2

1The ALTMODE and DELETE characters (decimal 125, 126, and 127) are also control characters.
2Different character in ISO Latin-1. See Figure C-1.

Figure C-1 Differences Between DEC Multinational Character Set and ISO Latin-1 Character Set

Previous | Next | Contents | Index

| privacy and legal statement |
6536PRO_008.HTML