#!/usr/bin/perl -w

use strict;
package Ascii;

our @NAME = qw/
    NUL SOH STX ETX EOT ENQ ACK BEL
    BS  HT  LF  VT  FF  CR  SO  SI
    DLE DC1 DC2 DC3 DC4 NAK SYN ETB
    CAN EM  SUB ESC FS  GS  RS  US
    DEL /;
use Exporter 5.57 'import';
our @EXPORT_OK = ( @NAME, qw/ CTRL @val @NAME @name / );

sub  NUL { chr(000) }
sub  SOH { chr(001) }
sub  STX { chr(002) }
sub  ETX { chr(003) }
sub  EOT { chr(004) }
sub  ENQ { chr(005) }
sub  ACK { chr(006) }
sub  BEL { chr(007) }
sub  BS  { chr(010) }
sub  HT  { chr(011) }
sub  LF  { chr(012) }
sub  VT  { chr(013) }
sub  FF  { chr(014) }
sub  CR  { chr(015) }
sub  SO  { chr(016) }
sub  SI  { chr(017) }
sub  DLE { chr(020) }
sub  DC1 { chr(021) }
sub  DC2 { chr(022) }
sub  DC3 { chr(023) }
sub  DC4 { chr(024) }
sub  NAK { chr(025) }
sub  SYN { chr(026) }
sub  ETB { chr(027) }
sub  CAN { chr(030) }
sub  EM  { chr(031) }
sub  SUB { chr(032) }
sub  ESC { chr(033) }
sub  FS  { chr(034) }
sub  GS  { chr(035) }
sub  RS  { chr(036) }
sub  US  { chr(037) }
sub  DEL { chr(0177) }

sub CTRL($) {
    my $cc = shift;
    my $code = ord($cc);
    chr($code & 0x1f);
}

our @val = (
    NUL, SOH, STX, ETX, EOT, ENQ, ACK, BEL,
    BS,  HT,  LF,  VT,  FF,  CR,  SO,  SI,
    DLE, DC1, DC2, DC3, DC4, NAK, SYN, ETB,
    CAN, EM,  SUB, ESC, FS,  GS,  RS,  US,
    DEL
);

our @name = map { lc } @NAME;

1;
