diff --git a/asn1c/Makefile.am b/asn1c/Makefile.am
index a369de3..d152722 100644
--- a/asn1c/Makefile.am
+++ b/asn1c/Makefile.am
@@ -20,8 +20,6 @@
 
 noinst_HEADERS = sys-common.h
 
-dist_man1_MANS = asn1c.1 unber.1 enber.1
-
 dist_check_SCRIPTS = check-xxber.sh check-parsing.sh
 TESTS_ENVIRONMENT= top_srcdir=${top_srcdir}
 TESTS = $(dist_check_SCRIPTS)
diff --git a/asn1c/asn1c.1 b/asn1c/asn1c.1
deleted file mode 100644
index 5485cc9..0000000
--- a/asn1c/asn1c.1
+++ /dev/null
@@ -1,125 +0,0 @@
-.TH asn1c 1 "2014-10-23" "ASN.1 Compiler"
-.if n .ad l \" Turn off justifications
-.nh \" Turn off hyphenation; can damage formatting in technical documents.
-.SH NAME
-asn1c \(em the ASN.1 Compiler
-.SH SYNOPSIS
-asn1c [\fB\-E\fR [\fB-F\fR] | \fB\-P\fR | \fB\-R\fR]
-      [\fB\-S\fR\fIdir\fR] [\fB-X\fR]
-      [\fB\-W\fR\fIdebug-\fR...] [\fB\-f\fR\fIoption\fR] [\fB\-gen-\fR\fIoption\fR] [\fB\-pdu=\fR{\fBall\fR|\fBauto\fR|\fIType\fR}\fR]
-      [\fB\-print-\fR\fIoption\fR]
-      \fIinput-filenames\fR...
-.SH DESCRIPTION
-asn1c compiles ASN.1 specifications into a set of
-target language (C/C++) encoders and decoders for BER, DER, PER, XER
-and other encoding rules.
-.SH OPTIONS
-.SS Stage Selection Options
-.TP 4
-.B \-E
-Run the parsing stage only.
-Print the reconstructed ASN.1 text.
-.TP 4
-.B \-F
-Used together with
-.B \-E\c
-, instructs the compiler to stop after the ASN.1 syntax
-tree fixing stage and dump the reconstructed ASN.1 specification
-to the standard output.
-.TP 4
-.B \-P
-Dump the compiled output to the standard output instead of creating the
-target language files on disk.
-.TP 4
-.B \-R
-Restrict the compiler to generate only the ASN.1 tables,
-omitting the usual support code.
-.TP 4
-\fB\-S\fR \fIdirectory\fR
-Use the specified directory with ASN.1 skeleton files.
-.TP 4
-.B \-X
-Generate an XML DTD schema for the specified ASN.1 files.
-.SS Warning Options
-.TP 4
-.B \-Werror
-Treat warnings as errors; abort if any warning is produced.
-.TP 4
-.B \-Wdebug-lexer
-Enable lexer debugging during the ASN.1 parsing stage.
-.TP 4
-.B \-Wdebug-fixer
-Enable ASN.1 syntax tree fixer debugging during the fixing stage.
-.TP 4
-.B \-Wdebug-compiler
-Enable debugging during the actual compile time.
-.SS Language Options
-.TP 4
-.B \-fbless-SIZE
-Allow SIZE() constraint for INTEGER, ENUMERATED, and other types for which this
-constraint is normally prohibited by the standard.
-This is a violation of ASN.1 standard, and the compiler may
-fail to\ produce a meaningful code.
-.TP 4
-.B \-fcompound-names
-Using this option prevents name collisions in the target source code
-by using complex names for target language structures.
-(Name\ collisions may occur if the ASN.1 module reuses the same identifiers
-in multiple contexts).
-.TP 4
-.B \-findirect-choice
-When generating code for a CHOICE type, compile the CHOICE members as indirect
-pointers instead of declaring them inline.
-Consider using this option together with
-.B \-fno-include-deps
-to prevent circular references.
-.TP 4
-.B \-fincludes-quoted
-Generate #include lines in "double" instead of <angle> quotes.
-.TP 4
-.BI "\-fknown-extern-type="<name>
-Pretend the specified type is known.
-The compiler will assume the target language source files
-for the given type have been provided manually.
-.TP 4
-.B \-fline-refs
-Include ASN.1 module's line numbers in generated code comments.
-.TP 4
-.B \-fno-constraints
-Do not generate ASN.1 subtype constraint checking code.
-This may make a shorter executable.
-.TP 4
-.B \-fno-include-deps
-Do not generate courtesy #include lines for non-critical type dependencies.
-Helps prevent namespace collisions.
-.TP 4
-.B \-funnamed-unions
-Enable unnamed unions in the definitions of target language's structures.
-.TP 4
-.B \-fwide-types
-Use the unbounded size data types (INTEGER_t, ENUMERATED_t, REAL_t) by default,
-instead of the native machine's data types (long, double).
-.SS Codecs Generation Options
-.TP 4
-.B \-gen-PER
-Generate the Packed Encoding Rules (PER) support code.
-.TP 4
-.B \-pdu=\fR{\fBall\fR|\fBauto\fR|\fIType\fR}
-Create a PDU table for specified types, or discover Protocol Data Units automatically.
-In case of -pdu=\fBall\fR, all ASN.1 types defined in all modules will form a PDU table.
-In case of -pdu=\fBauto\fR, all types not referenced by any other type will form a PDU table.
-If\ \fIType\fR is an ASN.1 type identifier, it is added to a PDU table.
-The\ last form may be specified multiple times to add any number of PDUs.
-.SS Output Options
-.TP 4
-.B \-print-constraints
-When -EF are also specified, this option forces the compiler to explain
-its internal understanding of subtype constraints.
-.TP 4
-.B \-print-lines
-Generate "-- #line" comments in \fB-E\fR output.
-.SH SEE ALSO
-.TP 4
-\&\fIunber\fR\|(1), \&\fIenber\fR\|(1)
-.SH AUTHORS
-Lev Walkin <vlm@lionet.info>
diff --git a/asn1c/enber.1 b/asn1c/enber.1
deleted file mode 100644
index 999917e..0000000
--- a/asn1c/enber.1
+++ /dev/null
@@ -1,53 +0,0 @@
-.TH enber 1 "2014-10-23" "unber counterpart"
-.if n .ad l \" Turn off justifications
-.nh \" Turn off hyphenation; can damage formatting in technical documents.
-.de Vb \" Verbatim begin.
-.sp
-.in +4
-.ft CW
-.nf
-..
-.de Ve \" Verbatim end.
-.ft R
-.in
-.fi
-..
-.SH NAME
-enber \(em Convert the unber XML output back into BER
-.SH SYNOPSIS
-enber [\fB\-n\fR] [\fB\-\fR] [\fIinput-filenames\fR...]
-.SH DESCRIPTION
-enber convers the XML-formatted files produced by \fIunber\fR\|(1) back into the BER format.
-A single dash denotes the standard input.
-.SH OPTIONS
-.TP 4
-\fB\-n\fR
-Disable input validation.
-By default, enber performs some basic validity checks
-against XML input.
-.SH EXAMPLES
-Decode a BER sequence and immediately encode it back
-.Vb
-unber \fB\-p\fR \fIfilename.ber\fR | enber \fB\-\fR > \fIreconstructed.ber\fR
-.Ve
-.SH FOOTNOTES
-This program does not attempt to perform full-fledged XML parsing.
-It is merely compatible with \fIunber\fR\|(1)'s output.
-In particular, XML style comments are not supported.
-A hash "\fB#\fR" or two dashes "\fB--\fR" following a whitespace is treated as a beginning of a comment line, which is ignored completely.
-Empty lines are ignored as well.
-.P
-The following example demostrates the use of comments:
-.Vb
-<C O="0" T="[1]" TL="2" V="2">
-    <I O="2" T="[1]" TL="2" V="Indefinite">
-    \fB--\fR </I O="4" T="[UNIVERSAL 0]" L="4">
-    \fB#\fR Do not terminate:
-    \fB#\fR the absence of end-of-content octets is intentional!
-</C O="6" T="[1]" L="6">
-.Ve
-.SH SEE ALSO
-.TP
-\fIunber\fR\|(1), \&\fIasn1c\fR\|(1)
-.SH AUTHORS
-Lev Walkin <vlm@lionet.info>
diff --git a/asn1c/unber.1 b/asn1c/unber.1
deleted file mode 100644
index e2725bd..0000000
--- a/asn1c/unber.1
+++ /dev/null
@@ -1,128 +0,0 @@
-.TH unber 1 "2014-10-23" "ASN.1 BER Decoder"
-.if n .ad l \" Turn off justifications
-.nh \" Turn off hyphenation; can damage formatting in technical documents.
-.de Vb \" Verbatim.
-.sp
-.ft CW
-.nf
-..
-.de Vbi \" Verbatim, indented.
-.sp
-.ft CW
-.nf
-.in +4
-..
-.de Ve \" Verbatim end.
-.ft R
-.in
-.fi
-.sp
-..
-.SH NAME
-unber \(em the ASN.1 BER Decoder
-.SH SYNOPSIS
-unber [\fB\-1\fR] [\fB\-i\fRindent] [\fB\-m\fR] [\fB\-p\fR] [\fB\-s\fR\fIskip\fR] [\fB\-t\fR\fIhex\-string\fR] [\fB\-\fR] [\fIinput-filenames\fR...]
-.SH DESCRIPTION
-unber presents the internal structure of BER-encoded files as human readable text.
-A single dash denotes the standard input.
-.sp
-(The DER and CER formats are subsets of the BER and are also supported.)
-.SH OPTIONS
-.TP
-\fB\-1\fR
-Do \fInot\fR attempt to read the next BER structure after the first one.
-This may be useful if the input contains garbage past the single BER sequence.
-By default, unber continues decoding until the end of file (input stream).
-.TP
-\fB\-i\fR \fIindent\fR
-Use the specified number of spaces for output indentation.
-Default is 4 spaces.
-.TP
-\fB\-m\fR
-Generate shorter output while still preserving BER encoding information.
-.TP
-\fB\-p\fR
-Do \fInot\fR attempt pretty-printing of known ASN.1 types (BOOLEAN, INTEGER, OBJECT IDENTIFIER, etc).
-By default, some ASN.1 types are converted into the text representation.
-This option is required for \&\fIenber\fR\|(1).
-.TP
-\fB\-s\fR \fIskip\fR
-Ignore the first \fIskip\fR bytes in the input stream; useful for stripping off
-lower level protocol framing data.
-.TP
-\fB\-t\fR \fIhex-string\fR
-Interpret the hex-string as a sequence of hexadecimal values representing
-the start of BER TLV encoding.
-Print the human readable explanation.
-.SH XML FORMAT
-unber dumps the output in the regular XML format which preserves most of the
-information from the underlying binary encoding.
-.P
-The XML opening tag format is as follows:
-.Vb
-<\fBtform\fR O="\fBoff\fR" T="\fBtag\fR" TL="\fBtl_len\fR" V="{Indefinite|\fBv_len\fR}" [A="\fBtype\fR"] [\fBF\fR]>
-.Ve
-Where:
-.TP
-\fBtform\fR
-Encoding form the value is in: primitive ("P") or constructed ("C") or constructed with indefinite length ("I")
-.TP
-\fBoff\fR
-Offset of the encoded element in the unber input stream.
-.TP
-\fBtag\fR
-The tag class and value in human readable form.
-.TP
-\fBtl_len\fR
-The length of the TL (BER Tag and Length) encoding.
-.TP
-\fBv_len\fR
-The length of the value (V, encoded by the L), may be "Indefinite".
-.TP
-\fBtype\fR
-Likely name of the underlying ASN.1 type (for UNIVERSAL tags).
-.TP
-[\fBF\fR]
-Indicates that the value was reformatted (pretty-printed).
-This will never appear in the output produced using \fB\-p\fR command line option.
-.P
-Sample XML output:
-.Vb
-<I O="0" T="[UNIVERSAL 16]" TL="2" V="Indefinite" A="SEQUENCE">
-  <P O="2" T="[UNIVERSAL 19]" TL="2" V="2" A="PrintableString">US</P>
-  <C O="6" T="[UNIVERSAL 16]" TL="2" V="6" A="SEQUENCE">
-    <P O="8" T="[UNIVERSAL 2]" TL="2" V="4" A="INTEGER" F>832970823</P>
-  </C O="14" T="[UNIVERSAL 16]" A="SEQUENCE" L="8">
-</I O="14" T="[UNIVERSAL 0]" TL="2" L="16">
-.Ve
-.SH EXAMPLES
-Decode the given Tag/Length sequence specified in hexadecimal form:
-.Vbi
-unber  \fB\-t\fR "\fIbf 20\fR"
-.Ve
-Decode the DER file using two-spaces indentation:
-.Vbi
-unber  \fB\-i\fR \fI2\fR   \fIfilename.der\fR
-.Ve
-Decode the binary stream taken from the standard input:
-.Vbi
-cat \fIfilename.der\fR | unber \fB\-\fR
-.Ve
-Decode the binary stream and encode it back into an identical stream (see \&\fIenber\fR\|(1)):
-.Vbi
-cat \fIfilename.der\fR | unber \fB\-p\fR \fB\-\fR | enber \fB\-\fR > \fIfilename.ber\fR
-.Ve
-.SH FOOTNOTES
-The constructed XML output is not necessarily well-formed.
-.P
-When indefinite length encoding is being used, the BER sequence, which is not
-terminated with the end-of-content octets, will cause the terminating \fB</I>\fR
-XML tag to disappear.
-Thus, invalid BER framing directly causes invalid XML output.
-.P
-The \fIenber\fR\|(1) utility understands such XML correctly.
-.SH SEE ALSO
-.TP
-\fIenber\fR\|(1), \fIasn1c\fR\|(1)
-.SH AUTHORS
-Lev Walkin <vlm@lionet.info>
diff --git a/configure.ac b/configure.ac
index 2698265..478e0fe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -111,6 +111,10 @@
 AC_CHECK_DECLS(alloca strcasecmp)
 AC_TRY_LINK_FUNC([symlink],[AC_DEFINE([HAVE_SYMLINK], 1, [Define to 1 if you have the symlink function.])])
 
+dnl Use pandoc to generate manual pages.
+AC_PATH_PROG([PANDOC], pandoc)
+AM_CONDITIONAL([HAVE_PANDOC], [test -n "$PANDOC"])
+
 AC_OUTPUT(				\
 skeletons/tests/Makefile		\
 libasn1compiler/Makefile		\
@@ -121,6 +125,7 @@
 doc/docsrc/Makefile			\
 skeletons/Makefile			\
 examples/Makefile			\
+doc/man/Makefile			\
 asn1c/Makefile				\
 doc/Makefile				\
 asn1c.spec				\
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 9582917..aa462b7 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,5 +1,5 @@
 
-SUBDIRS = docsrc
+SUBDIRS = docsrc man
 
 docsdir = $(datadir)/doc/asn1c
 
diff --git a/doc/man/Makefile.am b/doc/man/Makefile.am
new file mode 100644
index 0000000..1035ff9
--- /dev/null
+++ b/doc/man/Makefile.am
@@ -0,0 +1,16 @@
+
+dist_man1_MANS = asn1c.1 unber.1 enber.1
+
+if HAVE_PANDOC
+
+PANDOC_OPTIONS= --from markdown --to man        \
+		--variable header="Version ${VERSION}"  \
+		--variable adjusting:l                  \
+		--variable hyphenate:""                 \
+		--standalone
+
+%.1: %.man.md
+	${PANDOC} ${PANDOC_OPTIONS} -o $@ $<
+
+endif
+
diff --git a/doc/man/asn1c.1 b/doc/man/asn1c.1
new file mode 100644
index 0000000..54c2337
--- /dev/null
+++ b/doc/man/asn1c.1
@@ -0,0 +1,199 @@
+.\" Automatically generated by Pandoc 1.16.0.2
+.\"
+.ad l
+.TH "asn1c" "1" "2016\-01\-23" "ASN.1 Compiler" "Version 0.9.28"
+.nh \" Turn off hyphenation by default.
+.SH NAME
+.PP
+asn1c \-\- the ASN.1 Compiler
+.SH SYNOPSIS
+.PP
+asn1c [\f[B]\-E\f[] [\f[B]\-F\f[]] | \f[B]\-P\f[] | \f[B]\-R\f[]]
+.PD 0
+.P
+.PD
+[\f[B]\-S\f[]\f[I]dir\f[]] [\f[B]\-X\f[]]
+.PD 0
+.P
+.PD
+[\f[B]\-W\f[]\f[I]debug\-\f[]...] [\f[B]\-f\f[]\f[I]option\f[]]
+[\f[B]\-gen\-\f[]\f[I]option\f[]]
+[\f[B]\-pdu\f[]={\f[B]all\f[]|\f[B]auto\f[]|\f[I]Type\f[]}]
+.PD 0
+.P
+.PD
+[\f[B]\-print\-\f[]\f[I]option\f[]]
+.PD 0
+.P
+.PD
+\f[I]input\-filenames\f[]...
+.SH DESCRIPTION
+.PP
+asn1c compiles ASN.1 specifications into a set of target language
+(C/C++) encoders and decoders for BER, DER, PER, XER and other encoding
+rules.
+.SH OPTIONS
+.SS Stage Selection Options
+.TP
+.B \-E
+Run the parsing stage only.
+Print the reconstructed ASN.1 text.
+.RS
+.RE
+.TP
+.B \-F
+Used together with \f[B]\-E\f[], instructs the compiler to stop after
+the ASN.1 syntax tree fixing stage and dump the reconstructed ASN.1
+specification to the standard output.
+.RS
+.RE
+.TP
+.B \-P
+Dump the compiled output to the standard output instead of creating the
+target language files on disk.
+.RS
+.RE
+.TP
+.B \-R
+Restrict the compiler to generate only the ASN.1 tables, omitting the
+usual support code.
+.RS
+.RE
+.TP
+.B \-S \f[I]directory\f[]
+Use the specified directory with ASN.1 skeleton files.
+.RS
+.RE
+.TP
+.B \-X
+Generate an XML DTD schema for the specified ASN.1 files.
+.RS
+.RE
+.SS Warning Options
+.TP
+.B \-Werror
+Treat warnings as errors; abort if any warning is produced.
+.RS
+.RE
+.TP
+.B \-Wdebug\-lexer
+Enable lexer debugging during the ASN.1 parsing stage.
+.RS
+.RE
+.TP
+.B \-Wdebug\-fixer
+Enable ASN.1 syntax tree fixer debugging during the fixing stage.
+.RS
+.RE
+.TP
+.B \-Wdebug\-compiler
+Enable debugging during the actual compile time.
+.RS
+.RE
+.SS Language Options
+.TP
+.B \-fbless\-SIZE
+Allow \f[C]SIZE()\f[] constraint for \f[C]INTEGER\f[],
+\f[C]ENUMERATED\f[], and other types for which this constraint is
+normally prohibited by the standard.
+This is a violation of ASN.1 standard, and the compiler may fail to
+produce a meaningful code.
+.RS
+.RE
+.TP
+.B \-fcompound\-names
+Using this option prevents name collisions in the target source code by
+using complex names for target language structures.
+(Name collisions may occur if the ASN.1 module reuses the same
+identifiers in multiple contexts).
+.RS
+.RE
+.TP
+.B \-findirect\-choice
+When generating code for a \f[C]CHOICE\f[] type, compile the
+\f[C]CHOICE\f[] members as indirect pointers instead of declaring them
+inline.
+Consider using this option together with \f[B]\-fno\-include\-deps\f[]
+to prevent circular references.
+.RS
+.RE
+.TP
+.B \-fincludes\-quoted
+Refer to header files in \f[C]#include\f[]s using
+\f[B]"\f[]double\f[B]"\f[] instead of \f[B]<\f[]angle\f[B]>\f[] quotes.
+.RS
+.RE
+.TP
+.B \-fknown\-extern\-type=\f[I]name\f[]
+Pretend the specified type is known.
+The compiler will assume the target language source files for the given
+type have been provided manually.
+.RS
+.RE
+.TP
+.B \-fline\-refs
+Include ASN.1 module\[aq]s line numbers in generated code comments.
+.RS
+.RE
+.TP
+.B \-fno\-constraints
+Do not generate ASN.1 subtype constraint checking code.
+This may make a shorter executable.
+.RS
+.RE
+.TP
+.B \-fno\-include\-deps
+Do not generate courtesy #include lines for non\-critical type
+dependencies.
+Helps prevent namespace collisions.
+.RS
+.RE
+.TP
+.B \-funnamed\-unions
+Enable unnamed unions in the definitions of target language\[aq]s
+structures.
+.RS
+.RE
+.TP
+.B \-fwide\-types
+Use the unbounded size data types (\f[C]INTEGER_t\f[],
+\f[C]ENUMERATED_t\f[], \f[C]REAL_t\f[]) by default, instead of using the
+native machine\[aq]s data types (long, double).
+.RS
+.RE
+.SS Codecs Generation Options
+.TP
+.B \-gen\-PER
+Generate the Packed Encoding Rules (PER) support code.
+.RS
+.RE
+.TP
+.B \-pdu={all|auto|\f[I]Type\f[]}
+Create a PDU table for specified types, or discover Protocol Data Units
+automatically.
+In case of \f[B]\-pdu=all\f[], all ASN.1 types defined in all modules
+will form a PDU table.
+In case of \f[B]\-pdu=auto\f[], all types not referenced by any other
+type will form a PDU table.
+If \f[I]Type\f[] is an ASN.1 type identifier, the identifier is added to
+the generated PDU table.
+The last form may be specified multiple times to add any number of PDUs.
+.RS
+.RE
+.SS Output Options
+.TP
+.B \-print\-constraints
+When \f[B]\-EF\f[] options are also specified, this option forces the
+compiler to explain its internal understanding of subtype constraints.
+.RS
+.RE
+.TP
+.B \-print\-lines
+Generate "\f[C]\-\-\ #line\f[]" comments in \f[B]\-E\f[] output.
+.RS
+.RE
+.SH SEE ALSO
+.PP
+\f[C]unber\f[](1), \f[C]enber\f[](1).
+.SH AUTHORS
+Lev Walkin <vlm@lionet.info>.
diff --git a/doc/man/asn1c.man.md b/doc/man/asn1c.man.md
new file mode 100644
index 0000000..afec71f
--- /dev/null
+++ b/doc/man/asn1c.man.md
@@ -0,0 +1,140 @@
+% asn1c(1) ASN.1 Compiler
+% Lev Walkin <vlm@lionet.info>
+% 2016-01-23
+
+# NAME
+
+asn1c -- the ASN.1 Compiler
+
+# SYNOPSIS
+
+asn1c [**-E** [**-F**] | **-P** | **-R**] \
+      [**-S***dir*] [**-X**] \
+      [**-W***debug-*...] [**-f***option*] [**-gen-***option*] 
+      [**-pdu**={**all**|**auto**|*Type*}] \
+      [**-print-***option*] \
+      *input-filenames*...
+
+# DESCRIPTION
+
+asn1c compiles ASN.1 specifications into a set of
+target language (C/C++) encoders and decoders for BER, DER, PER, XER
+and other encoding rules.
+
+# OPTIONS
+
+## Stage Selection Options
+
+-E
+:   Run the parsing stage only. Print the reconstructed ASN.1 text.
+
+-F
+:   Used together with **-E**,
+    instructs the compiler to stop after the ASN.1 syntax
+    tree fixing stage and dump the reconstructed ASN.1 specification
+    to the standard output.
+
+-P
+:   Dump the compiled output to the standard output instead of creating the
+    target language files on disk.
+
+-R
+:   Restrict the compiler to generate only the ASN.1 tables,
+    omitting the usual support code.
+
+-S *directory*
+:   Use the specified directory with ASN.1 skeleton files.
+
+-X
+:   Generate an XML DTD schema for the specified ASN.1 files.
+
+## Warning Options
+
+-Werror
+:   Treat warnings as errors; abort if any warning is produced.
+
+-Wdebug-lexer
+:   Enable lexer debugging during the ASN.1 parsing stage.
+
+-Wdebug-fixer
+:   Enable ASN.1 syntax tree fixer debugging during the fixing stage.
+
+-Wdebug-compiler
+:   Enable debugging during the actual compile time.
+
+## Language Options
+
+-fbless-SIZE
+:   Allow `SIZE()` constraint for `INTEGER`, `ENUMERATED`,
+    and other types for which this constraint is normally prohibited
+    by the standard.
+    This is a violation of ASN.1 standard, and the compiler may
+    fail to produce a meaningful code.
+
+-fcompound-names
+:   Using this option prevents name collisions in the target source code
+    by using complex names for target language structures.
+    (Name collisions may occur if the ASN.1 module reuses the same identifiers
+    in multiple contexts).
+
+-findirect-choice
+:   When generating code for a `CHOICE` type, compile the `CHOICE` members
+    as indirect pointers instead of declaring them inline.
+    Consider using this option together with **-fno-include-deps**
+    to prevent circular references.
+
+-fincludes-quoted
+:   Refer to header files in `#include`s using **"**double**"** instead of **\<**angle**>** quotes.
+
+-fknown-extern-type=*name*
+:   Pretend the specified type is known.
+    The compiler will assume the target language source files
+    for the given type have been provided manually.
+
+-fline-refs
+:   Include ASN.1 module's line numbers in generated code comments.
+
+-fno-constraints
+:   Do not generate ASN.1 subtype constraint checking code.
+    This may make a shorter executable.
+
+-fno-include-deps
+:   Do not generate courtesy #include lines for non-critical type dependencies.
+    Helps prevent namespace collisions.
+
+-funnamed-unions
+:   Enable unnamed unions in the definitions of target language's structures.
+
+-fwide-types
+:   Use the unbounded size data types (`INTEGER_t`, `ENUMERATED_t`, `REAL_t`)
+    by default, instead of using the native machine's data types (long, double).
+
+## Codecs Generation Options
+
+-gen-PER
+:   Generate the Packed Encoding Rules (PER) support code.
+
+-pdu={all|auto|*Type*}
+:   Create a PDU table for specified types, or discover Protocol Data Units
+    automatically. In case of **-pdu=all**,
+    all ASN.1 types defined in all modules will form a PDU table.
+    In case of **-pdu=auto**, all types not referenced by any other type will
+    form a PDU table.
+    If *Type* is an ASN.1 type identifier, the identifier is added to
+    the generated PDU table.
+    The last form may be specified multiple times to add any number of PDUs.
+
+## Output Options
+
+-print-constraints
+:   When **-EF** options are also specified,
+    this option forces the compiler to explain its internal understanding
+    of subtype constraints.
+
+-print-lines
+:   Generate "`-- #line`" comments in **-E** output.
+
+# SEE ALSO
+
+`unber`(1), `enber`(1).
+
diff --git a/doc/man/enber.1 b/doc/man/enber.1
new file mode 100644
index 0000000..827c211
--- /dev/null
+++ b/doc/man/enber.1
@@ -0,0 +1,71 @@
+.\" Automatically generated by Pandoc 1.16.0.2
+.\"
+.ad l
+.TH "enber" "1" "2016\-01\-23" "unber(1) counterpart" "Version 0.9.28"
+.nh \" Turn off hyphenation by default.
+.SH NAME
+.PP
+enber \-\- Convert the unber XML output back into BER
+.SH SYNOPSIS
+.PP
+enber [\f[B]\-n\f[]] [\f[B]\-\f[]] [\f[I]input\-filenames\f[]...]
+.SH DESCRIPTION
+.PP
+enber converts the XML\-formatted files produced by \f[C]unber\f[](1)
+back into the BER format.
+A single dash denotes the standard input.
+.SH OPTIONS
+.TP
+.B \-n
+Disable input validation.
+By default, enber performs some basic validity checks against XML input.
+.RS
+.RE
+.SH EXAMPLES
+.PP
+Decode a BER sequence and immediately encode it back
+.RS
+.PP
+unber \f[B]\-p\f[] \f[I]filename.ber\f[] | enber \f[B]\-\f[] >
+\f[I]reconstructed.ber\f[]
+.RE
+.SH FOOTNOTES
+.PP
+This program does not attempt to perform full\-fledged XML parsing.
+It is merely compatible with \f[C]unber\f[](1)\[aq]s output.
+In particular, the XML style comments are not supported.
+A hash "\f[B]#\f[]" or two dashes "\f[B]\-\-\f[]" following a whitespace
+is treated as a beginning of a comment line, which is ignored
+completely.
+Empty lines are ignored as well.
+.PP
+The following example \f[C]enber\f[](1) input demostrates the use of
+comments:
+.PP
+<C O="0" T="[1]" TL="2" V="2">
+.PD 0
+.P
+.PD
+\ \ \ \ <I O="2" T="[1]" TL="2" V="Indefinite">
+.PD 0
+.P
+.PD
+\ \ \ \ \f[B]\-\-\f[] </I O="4" T="[UNIVERSAL 0]" L="4">
+.PD 0
+.P
+.PD
+\ \ \ \ \f[B]#\f[] Do not terminate:
+.PD 0
+.P
+.PD
+\ \ \ \ \f[B]#\f[] the absence of end\-of\-content octets is
+intentional!
+.PD 0
+.P
+.PD
+</C O="6" T="[1]" L="6">
+.SH SEE ALSO
+.PP
+\f[C]unber\f[](1), \f[C]asn1c\f[](1).
+.SH AUTHORS
+Lev Walkin <vlm@lionet.info>.
diff --git a/doc/man/enber.man.md b/doc/man/enber.man.md
new file mode 100644
index 0000000..2bdb036
--- /dev/null
+++ b/doc/man/enber.man.md
@@ -0,0 +1,50 @@
+% enber(1) unber(1) counterpart
+% Lev Walkin <vlm@lionet.info>
+% 2016-01-23
+
+# NAME
+
+enber -- Convert the unber XML output back into BER
+
+# SYNOPSIS
+
+enber [**-n**] [**-**] [*input-filenames*...]
+
+# DESCRIPTION
+
+enber converts the XML-formatted files produced by `unber`(1) back into the BER format.
+A single dash denotes the standard input.
+
+# OPTIONS
+
+-n
+:   Disable input validation.
+By default, enber performs some basic validity checks
+against XML input.
+
+# EXAMPLES
+
+Decode a BER sequence and immediately encode it back
+
+> unber **-p** *filename.ber* | enber **-** > *reconstructed.ber*
+
+# FOOTNOTES
+
+This program does not attempt to perform full-fledged XML parsing.
+It is merely compatible with `unber`(1)'s output.
+In particular, the XML style comments are not supported.
+A hash "**#**" or two dashes "**--**" following a whitespace is treated as a beginning of a comment line, which is ignored completely.
+Empty lines are ignored as well.
+
+The following example `enber`(1) input demostrates the use of comments:
+
+| \<C O="0" T="[1]" TL="2" V="2">
+|     \<I O="2" T="[1]" TL="2" V="Indefinite">
+|     **--** \</I O="4" T="[UNIVERSAL 0]" L="4">
+|     **#** Do not terminate:
+|     **#** the absence of end-of-content octets is intentional!
+| \</C O="6" T="[1]" L="6">
+
+# SEE ALSO
+
+`unber`(1), `asn1c`(1).
diff --git a/doc/man/unber.1 b/doc/man/unber.1
new file mode 100644
index 0000000..8f787b4
--- /dev/null
+++ b/doc/man/unber.1
@@ -0,0 +1,181 @@
+.\" Automatically generated by Pandoc 1.16.0.2
+.\"
+.ad l
+.TH "unber" "1" "2016\-01\-23" "ASN.1 BER Decoder" "Version 0.9.28"
+.nh \" Turn off hyphenation by default.
+.SH NAME
+.PP
+unber \-\- the ASN.1 BER Decoder
+.SH SYNOPSIS
+.PP
+unber [\f[B]\-1\f[]] [\f[B]\-i\f[]\f[I]indent\f[]] [\f[B]\-m\f[]]
+[\f[B]\-p\f[]] [\f[B]\-s\f[]\f[I]skip\f[]]
+[\f[B]\-t\f[]\f[I]hex\-string\f[]] [\f[B]\-\f[]]
+[\f[I]input\-filenames\f[]...]
+.SH DESCRIPTION
+.PP
+unber presents the internal structure of BER\-encoded files as a human
+readable text.
+A single dash denotes the standard input.
+.PP
+(The DER and CER formats are subsets of the BER and are also supported.)
+.SH OPTIONS
+.TP
+.B \-1
+Do \f[I]not\f[] attempt to read the next BER structure after the first
+one.
+This may be useful if the input contains garbage past the single BER
+sequence.
+By default, unber continues decoding until the end of file (input
+stream).
+.RS
+.RE
+.TP
+.B \-i \f[I]indent\f[]
+Use the specified number of spaces for output indentation.
+Default is 4 spaces.
+.RS
+.RE
+.TP
+.B \-m
+Generate shorter output while still preserving BER encoding information.
+.RS
+.RE
+.TP
+.B \-p
+Do \f[I]not\f[] attempt to pretty\-print known ASN.1 types
+(\f[C]BOOLEAN\f[], \f[C]INTEGER\f[], \f[C]OBJECT\ IDENTIFIER\f[], etc).
+By default, some ASN.1 types are converted into the text representation.
+.RS
+.PP
+This option is required if the \f[C]unber\f[](1) output is used as an
+input to \f[C]enber\f[](1).
+.RE
+.TP
+.B \-s \f[I]skip\f[]
+Ignore the first \f[I]skip\f[] bytes in the input stream; useful for
+stripping off lower level protocol framing data.
+.RS
+.RE
+.TP
+.B \-t \f[I]hex\-string\f[]
+Interpret the hex\-string as a sequence of hexadecimal values
+representing the start of BER TLV encoding.
+Print the human readable explanation.
+.RS
+.RE
+.SH XML FORMAT
+.PP
+unber dumps the output in the regular XML format which preserves most of
+the information from the underlying binary encoding.
+.PP
+The XML opening tag format is as follows:
+.PP
+<\f[B]tform\f[] O="\f[B]off\f[]" T="\f[B]tag\f[]" TL="\f[B]t_len\f[]"
+V="{Indefinite|\f[B]v_len\f[]}" [A="\f[B]type\f[]"] [\f[B]F\f[]]>
+.PP
+Where:
+.TP
+.B \f[B]tform\f[]
+Encoding form the value is in: primitive ("P") or constructed ("C") or
+constructed with indefinite length ("I")
+.RS
+.RE
+.TP
+.B \f[B]off\f[]
+Offset of the encoded element in the unber input stream.
+.RS
+.RE
+.TP
+.B \f[B]tag\f[]
+The tag class and value in human readable form.
+.RS
+.RE
+.TP
+.B \f[B]t_len\f[]
+The length of the TL (BER Tag and Length) encoding.
+.RS
+.RE
+.TP
+.B \f[B]v_len\f[]
+The length of the value (V, encoded by the L), may be "Indefinite".
+.RS
+.RE
+.TP
+.B \f[B]type\f[]
+Likely name of the underlying ASN.1 type (for UNIVERSAL tags).
+.RS
+.RE
+.TP
+.B [\f[B]F\f[]]
+Indicates that the value was reformatted (pretty\-printed).
+This will never appear in the output produced using the \f[B]\-p\f[]
+command line option.
+.RS
+.RE
+.SS Example XML output:
+.PP
+<I O="0" T="[UNIVERSAL 16]" TL="2" V="Indefinite" A="SEQUENCE">
+.PD 0
+.P
+.PD
+\ <P O="2" T="[UNIVERSAL 19]" TL="2" V="2" A="PrintableString">US</P>
+.PD 0
+.P
+.PD
+\ \ <C O="6" T="[UNIVERSAL 16]" TL="2" V="6" A="SEQUENCE">
+.PD 0
+.P
+.PD
+\ \ \ \ <P O="8" T="[UNIVERSAL 2]" TL="2" V="4" A="INTEGER"
+F>832970823</P>
+.PD 0
+.P
+.PD
+\ \ </C O="14" T="[UNIVERSAL 16]" A="SEQUENCE" L="8">
+.PD 0
+.P
+.PD
+</I O="14" T="[UNIVERSAL 0]" TL="2" L="16">
+.SH EXAMPLES
+.PP
+Decode the given Tag/Length sequence specified in hexadecimal form:
+.RS
+.PP
+unber\  \f[B]\-t\f[] "\f[I]bf 20\f[]"
+.RE
+.PP
+Decode the DER file using two\-spaces indentation:
+.RS
+.PP
+unber\  \f[B]\-i\f[] \f[I]2\f[]\  \f[I]filename.der\f[]
+.RE
+.PP
+Decode the binary stream taken from the standard input:
+.RS
+.PP
+cat \f[I]filename.der\f[] | unber \f[B]\-\f[]
+.RE
+.PP
+Decode the binary stream and encode it back into an identical stream
+(see \f[C]enber\f[](1)):
+.RS
+.PP
+cat \f[I]filename.der\f[] | unber \f[B]\-p\f[] \f[B]\-\f[] | enber
+\f[B]\-\f[] > \f[I]filename.ber\f[]
+.RE
+.SH FOOTNOTES
+.PP
+The constructed XML output is not necessarily well\-formed.
+.PP
+When indefinite length encoding is being used, the BER sequence which is
+not terminated with the end\-of\-content octets will cause the
+terminating \f[B]</I>\f[] XML tag to disappear.
+Thus, invalid BER framing directly causes invalid XML output.
+.PP
+The \f[C]enber\f[](1) utility understands such XML correctly.
+.SH SEE ALSO
+.PP
+\f[C]enber\f[](1), \f[C]asn1c\f[](1).
+.SH AUTHORS
+Lev Walkin <vlm@lionet.info>.
diff --git a/doc/man/unber.man.md b/doc/man/unber.man.md
new file mode 100644
index 0000000..b110eb8
--- /dev/null
+++ b/doc/man/unber.man.md
@@ -0,0 +1,121 @@
+% unber(1) ASN.1 BER Decoder
+% Lev Walkin <vlm@lionet.info>
+% 2016-01-23
+
+# NAME
+
+unber -- the ASN.1 BER Decoder
+
+# SYNOPSIS
+
+unber [**-1**] [**-i***indent*] [**-m**] [**-p**] [**-s***skip*] [**-t***hex-string*] [**-**] [*input-filenames*...]
+
+# DESCRIPTION
+
+unber presents the internal structure of BER-encoded files as a human readable text.
+A single dash denotes the standard input.
+
+(The DER and CER formats are subsets of the BER and are also supported.)
+
+# OPTIONS
+
+-1
+:   Do *not* attempt to read the next BER structure after the first one.
+    This may be useful if the input contains garbage past the single BER sequence.
+    By default, unber continues decoding until the end of file (input stream).
+
+-i *indent*
+:   Use the specified number of spaces for output indentation.
+    Default is 4 spaces.
+
+-m
+:   Generate shorter output while still preserving BER encoding information.
+
+-p
+:   Do *not* attempt to pretty-print known ASN.1 types (`BOOLEAN`, `INTEGER`, `OBJECT IDENTIFIER`, etc).
+    By default, some ASN.1 types are converted into the text representation.
+
+    This option is required if the `unber`(1) output is used as an input to `enber`(1).
+
+-s *skip*
+:   Ignore the first *skip* bytes in the input stream;
+    useful for stripping off lower level protocol framing data.
+
+-t *hex-string*
+:   Interpret the hex-string as a sequence of hexadecimal values representing
+    the start of BER TLV encoding.
+    Print the human readable explanation.
+
+# XML FORMAT
+unber dumps the output in the regular XML format which preserves most of the
+information from the underlying binary encoding.
+
+The XML opening tag format is as follows:
+
+<**tform** O="**off**" T="**tag**" TL="**t_len**" V="{Indefinite|**v_len**}" [A="**type**"] [**F**]>
+
+Where:
+
+**tform**
+:   Encoding form the value is in: primitive ("P") or constructed ("C") or constructed with indefinite length ("I")
+
+**off**
+:   Offset of the encoded element in the unber input stream.
+
+**tag**
+:   The tag class and value in human readable form.
+
+**t_len**
+:   The length of the TL (BER Tag and Length) encoding.
+
+**v_len**
+:   The length of the value (V, encoded by the L), may be "Indefinite".
+
+**type**
+:   Likely name of the underlying ASN.1 type (for UNIVERSAL tags).
+
+[**F**]
+:   Indicates that the value was reformatted (pretty-printed).
+This will never appear in the output produced using the **-p**
+command line option.
+
+## Example XML output:
+
+| \<I O="0" T="[UNIVERSAL 16]" TL="2" V="Indefinite" A="SEQUENCE">
+|  \<P O="2" T="[UNIVERSAL 19]" TL="2" V="2" A="PrintableString">US\</P>
+|   \<C O="6" T="[UNIVERSAL 16]" TL="2" V="6" A="SEQUENCE">
+|     \<P O="8" T="[UNIVERSAL 2]" TL="2" V="4" A="INTEGER" F>832970823\</P>
+|   \</C O="14" T="[UNIVERSAL 16]" A="SEQUENCE" L="8">
+| \</I O="14" T="[UNIVERSAL 0]" TL="2" L="16">
+
+# EXAMPLES
+
+Decode the given Tag/Length sequence specified in hexadecimal form:
+
+> unber\  **-t** "*bf 20*"
+
+Decode the DER file using two-spaces indentation:
+
+> unber\  **-i** *2*\   *filename.der*
+
+Decode the binary stream taken from the standard input:
+
+> cat *filename.der* | unber **-**
+
+Decode the binary stream and encode it back into an identical stream (see `enber`(1)):
+
+> cat *filename.der* | unber **-p** **-** | enber **-** > *filename.ber*
+
+# FOOTNOTES
+The constructed XML output is not necessarily well-formed.
+
+When indefinite length encoding is being used, the BER sequence which is not
+terminated with the end-of-content octets will cause the terminating **\</I>**
+XML tag to disappear.
+Thus, invalid BER framing directly causes invalid XML output.
+
+The `enber`(1) utility understands such XML correctly.
+
+# SEE ALSO
+
+`enber`(1), `asn1c`(1).
