====== Input Message File Format ======
The input message file is a standard ASCII file containing three types of lines:
* Comment lines
* Component identifier line
* Component message lines
===== Comment Lines =====
Comments may appear anywhere in the file **except** between the component identifier line and the first message line.
A comment line must begin with a semicolon ('';'') in the first column.
Example:
; This is a sample of an input
; message file for component DOS
; starting with three comment lines.
===== Component Identifier Line =====
A single line holding the three‑character component identifier. This identifier is prefixed to all message numbers.
In the example, the identifier is ''DOS''.
===== Component Message Lines =====
Each message line consists of a **message header** followed by the ASCII text of the message.
==== Message Header ====
The header is composed of the following fields, written contiguously:
- Three‑character component identifier (e.g., ''DOS'').
- Four‑digit message number (e.g., ''0100'').
- A single character indicating the message type (see table below).
- A colon (':').
- A single blank space separating the header from the message text.
**Format:** ''COMPNNNNT: message text''
==== Message Types ====
^ Code ^ Type ^ Meaning ^
| E | Error | Error message |
| H | Help | Help text |
| I | Information | Informational message |
| P | Prompt | Prompt (user input expected) |
| W | Warning | Warning message |
| ? | (unused) | Placeholder for a number with no message text |
==== Numbering and Placeholder Entries ====
* Message numbers may start at any value, but **must appear in strictly ascending sequential order** in the file.
* When a particular number is not used, a placeholder entry is required. A placeholder consists of the full header with the type ''?'' and **no message text** after the colon and blank.
Example: ''MAB0101?:''
===== Special Characters in the Message Text =====
The percent sign (''%'') has special meaning when used inside message text.
==== Suppressing the Trailing Newline (''%0'') ====
If the sequence ''%0'' appears as the very last characters of a message text, the ''DosGetMessage'' API will **not** append a carriage return and line feed (CR+LF). This is typically used for prompts so that user input can follow on the same line.
==== Inserting Variable Strings (''%1'' – ''%9'') ====
Sequences ''%1'' through ''%9'' mark positions where variable strings are inserted at runtime. The actual values are provided via the ''Itable'' and ''IvCount'' parameters of the ''DosGetMessage'' call.
Example: the message ''%1 files copied'' will have ''%1'' replaced by an appropriate string (e.g., a number of files).
===== Complete Input File Example =====
; This is a sample of an input
; message file for component MAB
; starting with three comment lines.
MAB
MAB0100E: File not found
MAB0101?:
MAB0102H: Usage: del [drive:][path] filename
MAB0103?:
MAB0104I: %1 files copied
MAB0105W: Warning! All data will be destroyed!
MAB0106?:
MAB0107?:
MAB0108P: Do you wish to apply these patches (Y or N)? %0
MAB0109E: Divide overflow
* ''MAB'' – component identifier.
* ''MAB0100E'' – error message.
* ''MAB0101?'' – placeholder for an unused number.
* ''MAB0104I'' – informational message with variable insertion (''%1'').
* ''MAB0108P'' – prompt with ''%0'' to suppress the trailing newline.