/* 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);