view interps/clc-intercal/inst/man/man3/Language::INTERCAL::Charset::Hollerith.3pm @ 9071:581584df6d82

<fizzie> revert 942e964c81c1
author HackBot
date Sun, 25 Sep 2016 20:17:31 +0000
parents 859f9b4339e6
children
line wrap: on
line source

.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" Set up some character translations and predefined strings.  \*(-- will
.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
.\" nothing in troff, for use with C<>.
.tr \(*W-
.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
.ie n \{\
.    ds -- \(*W-
.    ds PI pi
.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
.    ds L" ""
.    ds R" ""
.    ds C` ""
.    ds C' ""
'br\}
.el\{\
.    ds -- \|\(em\|
.    ds PI \(*p
.    ds L" ``
.    ds R" ''
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\"
.\" If the F register is turned on, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD.  Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.ie \nF \{\
.    de IX
.    tm Index:\\$1\t\\n%\t"\\$2"
..
.    nr % 0
.    rr F
.\}
.el \{\
.    de IX
..
.\}
.\"
.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
.    \" fudge factors for nroff and troff
.if n \{\
.    ds #H 0
.    ds #V .8m
.    ds #F .3m
.    ds #[ \f1
.    ds #] \fP
.\}
.if t \{\
.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
.    ds #V .6m
.    ds #F 0
.    ds #[ \&
.    ds #] \&
.\}
.    \" simple accents for nroff and troff
.if n \{\
.    ds ' \&
.    ds ` \&
.    ds ^ \&
.    ds , \&
.    ds ~ ~
.    ds /
.\}
.if t \{\
.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
.\}
.    \" troff and (daisy-wheel) nroff accents
.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
.ds ae a\h'-(\w'a'u*4/10)'e
.ds Ae A\h'-(\w'A'u*4/10)'E
.    \" corrections for vroff
.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
.    \" for low resolution devices (crt and lpr)
.if \n(.H>23 .if \n(.V>19 \
\{\
.    ds : e
.    ds 8 ss
.    ds o a
.    ds d- d\h'-1'\(ga
.    ds D- D\h'-1'\(hy
.    ds th \o'bp'
.    ds Th \o'LP'
.    ds ae ae
.    ds Ae AE
.\}
.rm #[ #] #H #V #F C
.\" ========================================================================
.\"
.IX Title "INTERCAL::Charset::Hollerith 3pm"
.TH INTERCAL::Charset::Hollerith 3pm "2008-03-29" "perl v5.14.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH "NAME"
Charset::Hollerith \- allows to use Hollerith string constants in ASCII programs (and v.v.)
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
.Vb 1
\&    use Charset::Hollerith qw(hollerith2ascii);
\&
\&    my $a = hollerith2ascii "(Hollerith text)";
.Ve
.SH "DESCRIPTION"
.IX Header "DESCRIPTION"
\&\fICharset::Hollerith\fR defines functions to convert between a subset of \s-1ASCII\s0
and a subset of nonstandard Hollerith (since there isn't such a thing as a
standard
Hollerith we defined our own variant which is guaranteed to be incompatible
with all versions of Hollerith used by \s-1IBM\s0 hardware \- however, for each
character code we have used the code used by some (but not all) \s-1IBM\s0 card
reader, if the code exists in Hollerith at all, or we have made one up
in some logical way (such as overpunching) if no \s-1IBM\s0 hardware had that
particular character.
.PP
The two functions \fIhollerith2ascii\fR and \fIascii2hollerith\fR are exportable
but not exported by default. They do the obvious thing to their argument.
.SH "HOLLERITH CHARACTER TABLE"
.IX Header "HOLLERITH CHARACTER TABLE"
A Hollerith string is a sequence of 12\-bit characters; they are encoded as
two \s-1ASCII\s0 characters, containing 6 bits each: the first character contains
punches 12, 0, 2, 4, 6, 8 and the second character contains punches 11, 1,
3, 5, 7, 9; interleaving the two characters gives the original 12 bits.
To make the characters printable on \s-1ASCII\s0 terminals, bit 7 is always set to 0,
and bit 6 is set to the complement of bit 5. These two bits are ignored when
reading Hollerith cards.
.PP
Some Hollerith characters (produced by overpunching) can be converted
to sequences of \s-1ASCII\s0 characters; \fIascii2hollerith\fR will correctly
recognise the sequences.
.PP
The following punched cards document the encoding of characters (the last
three symbols at the end nongraphic symbols in \s-1ASCII\s0; the previous two
symbols correspond to multicharacter sequences):
.PP
.Vb 10
\&        \*(Aq !"#$%&()*+,\-./:;<=>?@[\e]^_\`{|}~XX0123456789     
\&   12      *   * * *  *     *    * *   * *              12
\&   11        *    *  *    * **    **  * * *             11
\&    0     *   * *   *  ****    *     *   ***             0
\&    1                  *                 *  *            1
\&    2   *  *  *              *               *           2
\&    3       **      * *                  *    *          3
\&    4           ***       * * ** *   * *       *         4
\&    5          *        *  *          *   *     *        5
\&    6                    *        * ** *         *       6
\&    7     *                    ***      *         *      7
\&    8   *  ******** * * ******* * * * *            *     8
\&    9     *                             *           *    9
\&
\&        ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrs     
\&   12   *********                 *********             12
\&   11            *********                 *********    11
\&    0                     *********        *        *    0
\&    1   *        *                **       **       *    1
\&    2    *        *       *        **       **      *    2
\&    3     *        *       *        **       **          3
\&    4      *        *       *        **       **         4
\&    5       *        *       *        **       **        5
\&    6        *        *       *        **       **       6
\&    7         *        *       *        **       **      7
\&    8          *        *       *        **       **     8
\&    9           *        *       *        *        *     9
\&
\&        tuvwxyz []  ".  NL  CR  HT      
\&   12            *   *   *            12
\&   11                        *        11
\&    0   *******  *               *     0
\&    1                    *   *   *     1
\&    2   *                *   *   *     2
\&    3   **           *   *   *   *     3
\&    4    **      *       *   *   *     4
\&    5     **             *   *   *     5
\&    6      **            *   *   *     6
\&    7       **   *   *   *   *   *     7
\&    8        **      *   *   *   *     8
\&    9         *          *   *   *     9
.Ve
.PP
\&\s-1PLEASE\s0 \s-1NOTE\s0 that versions of CLC-INTERCAL before 1.\-94.\-2 had a bug which
caused a rabbit to be represented as 12\-3\-2\-8 instead of 12\-3\-7\-8. Cards
punched with such older versions, and containing rabbits, will need to be
copied with one of the rabbit holes moved from row 2 to row 7.
.SH "COPYRIGHT"
.IX Header "COPYRIGHT"
This module is part of CLC-INTERCAL.
.PP
Copyright (C) 2000, 2002, 2006, 2007 Claudio Calvelli, all rights reserved
.PP
See the files \s-1README\s0 and \s-1COPYING\s0 in the distribution for information.
.SH "SEE ALSO"
.IX Header "SEE ALSO"
A qualified psychiatrist.