/* Copyright (c) 1996 by R. A. Vowels, from "Introduction to PL/I, Algorithms, and */
/* Structured Programming". Permission is given to reproduce and to use these procedures */
/* as part of a program, and to include them as part of a larger work to be sold for profit. */
/* However, the user is not permitted to sell the procedures separately. Provided always */
/* that these procedures and this copyright notice are reproduced in full. */
/* Declarations and initializations for the ASCII control codes 0 to 31, and 127. */
/* The COLLATE built-in function is used for initialization to ensure */
/* portability on standard machines and on Chinese binary machines. */
/* If your machine does not support the COLLATE built-in function, */
/* use the COLLATE procedure in this Appendix, which is portable. */
DECLARE 1 ASCII STATIC,
(2 NUL, /* The NULL character. */
2 SOH,
2 STX, /* Start of transmission. */
2 ETX, /* End of Transmission. */
2 EOT,
2 ENQ, /* Enquire. */
2 ACK, /* Acknowledge. */
2 BEL, /* The bell. */
2 BS, /* The Backspace character. */
2 TAB, /* Horizontal Tab (HT) */
2 LF, /* Line Feed. */
2 VT, /* Vertical Tab. */
2 FF, /* Form Feed. */
2 CR, /* Carriage Return. */
2 SO, /* Shift Out. */
2 SI, /* Shift In. */
2 DLE, /* Idle. */
2 DC1, /* Device Control 1. */
2 DC2, /* Device Control 2. */
2 DC3, /* Device Control 3. */
2 DC4, /* Device Control 4. */
2 NAK,
2 SYN,
2 ETB,
2 CAN, /* Cancel. */
2 EM,
2 SUB,
2 ESC, /* The Escape character. */
2 FS,
2 GS,
2 RS,
2 US) CHARACTER(1),
DEL CHARACTER(1); /* Delete. */
STRING(ASCII) = SUBSTR (COLLATE(), 1, 32);
DEL = SUBSTR (COLLATE(), 128, 1);