author: kx <kx@radix-linux.su> 2025-01-05 15:42:39 +0300
committer: kx <kx@radix-linux.su> 2025-01-05 15:42:39 +0300
commit: 41c271dacd0d2e4eae1378b098448e3554ea657b
parent: 662a29cbe51f565cb7e04345772b16795fbf4182
Commit Summary:
Diffstat:
60 files changed, 2825 insertions, 65 deletions
diff --git a/man/Makefile.am b/man/Makefile.am
index 502a878..830eb33 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -15,7 +15,16 @@ MAN3 = iadc.3mpu iadd.3mpu \
circular-shifts-n.3mpu \
ircln.3mpu ircrn.3mpu \
iroln.3mpu irorn.3mpu \
- inot.3mpu ineg.3mpu
+ inot.3mpu ineg.3mpu \
+ iand.3mpu itest.3mpu \
+ icmp.3mpu ior.3mpu \
+ ixor.3mpu iinc.3mpu \
+ idec.3mpu ixchg.3mpu \
+ icpy.3mpu icvt.3mpu \
+ imul.3mpu ismul.3mpu \
+ idiv.3mpu isdiv.3mpu \
+ iatoi.3mpu iatoui.3mpu \
+ iitoa.3mpu iuitoa.3mpu
MAN7 = libmpu.7
diff --git a/man/circular-shifts-n.3mpu b/man/circular-shifts-n.3mpu
index 9eeac3d..7abaa89 100644
--- a/man/circular-shifts-n.3mpu
+++ b/man/circular-shifts-n.3mpu
@@ -20,8 +20,8 @@ The state of the carry flag \fBC\fP is determined by the last pushed outward bit
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -34,5 +34,24 @@ The state of the carry flag \fBC\fP is determined by the last pushed outward bit
.BR ishln(3),
.BR ishrn(3),
.BR isaln(3),
-.BR isarn(3).
-
+.BR isarn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/circular-shifts.3mpu b/man/circular-shifts.3mpu
index d73781a..8c01886 100644
--- a/man/circular-shifts.3mpu
+++ b/man/circular-shifts.3mpu
@@ -196,11 +196,38 @@ int main( void )
.fi
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
.BR isal(3),
-.BR isar(3).
-
+.BR isar(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iadc.3mpu b/man/iadc.3mpu
index e59b17d..ef4da7d 100644
--- a/man/iadc.3mpu
+++ b/man/iadc.3mpu
@@ -60,5 +60,40 @@ int main( void )
.SH SEE ALSO
.BR iadd(3),
.BR isub(3),
-.BR isbb(3).
-
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iadd.3mpu b/man/iadd.3mpu
index d89694b..1df8db4 100644
--- a/man/iadd.3mpu
+++ b/man/iadd.3mpu
@@ -55,7 +55,42 @@ int main( void )
.fi
.sp
.SH SEE ALSO
-.BR iadc (3),
-.BR isub (3),
-.BR isbb (3).
-
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iand.3mpu b/man/iand.3mpu
new file mode 100644
index 0000000..66bd9d4
--- /dev/null
+++ b/man/iand.3mpu
@@ -0,0 +1,61 @@
+.TH iand 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiand\fP \- bitwise logical AND
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iand( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBiand()\fP function performs a bitwise logical \fBAND\fP of the \fBa\fP and \fBb\fP
+operands. The result is placed at address \fBc\fP. The contents of memory at \fBa\fP and
+\fBb\fP is not changed, the previous memory content at \fBc\fP is lost. The parameter
+\fBnb\fP defines the size of the operands (in bytes) located at addresses \fBc\fP,
+\fBa\fP, \fBb\fP.
+.PP
+The function affects the flags \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The \fBA\fP flag is undefined. The \fBP\fP flag is set only when the size of the of the
+\fBa\fP, \fBb\fP operands is equal to one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iatoi.3mpu b/man/iatoi.3mpu
new file mode 100644
index 0000000..58ad3bd
--- /dev/null
+++ b/man/iatoi.3mpu
@@ -0,0 +1,105 @@
+.TH iatoi 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiatoi\fP, \fBiatoui\fP \- functions for converting ASCII string to integer number
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iatoi( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
+.BI "void iatoui( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBiatoi()\fP, \fBiatoui()\fP functions are used to convert an ASCII string into numeric form.
+In the case of \fBiatoi()\fP function, the \fBstr\fP argument is considered as a pointer to a character
+array containing characters of a signed integer; in the case of \fBiatoui()\fP function, it is assumed
+that the string contains a representation of an unsigned integer type numeric constant.
+.PP
+Numeric constants in a string can be represented as binary, octal, hexadecimal, and decimal numbers.
+Binary numbers begin with the prefix \fB0b\fP or \fB0B\fP, for example, \fB0b1011\fP. The octal numbers
+must begin with '0' and contain digits from '0' through '7'. Hexadecimal constants begin with the prefix
+\fB0x\fP or \fB0X\fP and can contain characters from '0' to '7' and characters from 'a' to 'f' in any case.
+Decimal constants can contain characters from '0' to '9' but must not start with '0'. Before a number
+signs '+', '-' are allowed. If a string contains a binary, octal or hexadecimal constant, the sign
+is ignored.
+.PP
+The result is placed at \fBc\fP, and the parameter \fBnb\fP represents the size of the result \fBc\fP
+in bytes.
+.PP
+If the number represented in the \fBstr\fP string does not fit into the specified (\fBnb\fP) format, the
+overflow flag (\fBO\fP) is set.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP. Flags \fBA\fP, \fBC\fP
+flags are reset to 0. The flag \fBR\fP is not changed.
+.sp
+.SH EXAMPLES
+.nf
+.sp
+#include <libmpu.h>
+#include <stdio.h>
+
+int main( void )
+{
+ int rc = 0;
+
+ __mpu_init();
+ __mpu_extra_warnings = 1;
+
+ {
+ mpu_int16_t a, b;
+ int nb = NB_I16;
+ __mpu_char8_t s[32];
+
+ iatoui( a, "0b11", nb ); /* evaluate the A variable */
+ iatoi( b, "-3", nb ); /* evaluate the B variable */
+
+ iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
+ printf( "a = %s;\\n", s ); /* a = 3; */
+
+ iitoa( s, b, RADIX_BIN, LOWERCASE, nb ); /* convert B value to ASCII string S */
+ printf( "b = %s;\\n", s ); /* b = 0b1111111111111101; */
+ }
+
+ __mpu_free_context();
+
+ return( rc );
+}
+.fi
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iatoui.3mpu b/man/iatoui.3mpu
new file mode 100644
index 0000000..59455da
--- /dev/null
+++ b/man/iatoui.3mpu
@@ -0,0 +1 @@
+.so man3/iatoi.3mpu
diff --git a/man/icmp.3mpu b/man/icmp.3mpu
new file mode 100644
index 0000000..31c1b84
--- /dev/null
+++ b/man/icmp.3mpu
@@ -0,0 +1,59 @@
+.TH icmp 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBitest\fP \- integer comparison
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void icmp( mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBicmp()\fP function compares the values of \fBa\fP and \fBb\fP (actually performing the
+a \- b operation). The contents of memory at \fBa\fP and \fBb\fP are not changed. The \fBnb\fP
+parameter defines the size of the operands (in bytes) located at addresses \fBa\fP, \fBb\fP.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Flags \fBА\fP and \fBP\fP are set only when the size of operands \fBa\fP, \fBb\fP is one or
+two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/icpy.3mpu b/man/icpy.3mpu
new file mode 100644
index 0000000..aca3986
--- /dev/null
+++ b/man/icpy.3mpu
@@ -0,0 +1,62 @@
+.TH icpy 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBicpy\fP \- copying the value of an integer variable
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void icpy( mpu_int *" c ", mpu_int *" a ", int " nb_c ", int " nb_a " );
+.fi
+.SH DESCRIPTION
+The \fBicpy()\fP function performs the operation of copying the value of the \fBa\fP operand
+to the variable, located at the address \fBc\fP. The contents of the memory at address \fBa\fP
+are not changed, and the previous memory at address \fBc\fP is lost. The \fBnb_c\fP parameter
+determines the size of the operand (in bytes) located at address \fBc\fP, and the \fBnb_a\fP
+parameter determines the size of the operand (in bytes) located at the address \fBa\fP.
+.PP
+The function affects the flags \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The flags \fBA\fP, \fBC\fP do not change (the previous value is retained).
+The \fBP\fP flag is set only when the size of the \fBc\fP operand is one
+or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/icvt.3mpu b/man/icvt.3mpu
new file mode 100644
index 0000000..ab6ce0c
--- /dev/null
+++ b/man/icvt.3mpu
@@ -0,0 +1,63 @@
+.TH icvt 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBicvt\fP \- integer value conversion
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void icvt( mpu_int *" c ", mpu_int *" a ", int " nb_c ", int " nb_a " );
+.fi
+.SH DESCRIPTION
+The \fBicvt()\fP function performs the operation of converting the value of the \fBa\fP variable
+into the value of a larger or smaller variable with preserving the value (and sign). The result
+is placed at \fBc\fP. The contents of the memory at address \fBa\fP are not changed, the previous
+memory contents at \fBc\fP are lost. The \fBnb_c\fP parameter determines the size of the operand
+(in bytes) located at address \fBc\fP, and the \fBnb_a\fP parameter determines the size of the
+operand (in bytes) located at the address \fBa\fP.
+.PP
+The function affects the flags \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The flags \fBA\fP, \fBC\fP do not change (the previous value is retained). The \fBP\fP
+flag is set only when the size of the \fBc\fP operand is equal to one or two bytes
+(\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/idec.3mpu b/man/idec.3mpu
new file mode 100644
index 0000000..c8d0dc7
--- /dev/null
+++ b/man/idec.3mpu
@@ -0,0 +1,61 @@
+.TH idec 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBidec\fP \- decrement
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void idec( mpu_int *" c ", mpu_int *" a ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBidec()\fP function performs the decrement operation (c = a \- 1) of the \fBa\fP operand.
+The result is placed at address \fBc\fP. The contents of the memory at address \fBa\fP remain
+unchanged, and the previous memory contents at \fBc\fP are lost. The \fBnb\fP parameter determines
+the size of operands (in bytes) located at addresses \fBc\fP, \fBa\fP.
+.PP
+The function affects the flags \fBA\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The \fBC\fP flag does not change (the previous value is retained). The \fBP\fP flag is set only
+when the flag is set only when the size of the \fBc\fP, \fBa\fP operands is one or two bytes
+(\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/idiv.3mpu b/man/idiv.3mpu
new file mode 100644
index 0000000..454ad18
--- /dev/null
+++ b/man/idiv.3mpu
@@ -0,0 +1,63 @@
+.TH idiv 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBidiv\fP \- unsigned division of integers
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void idiv( mpu_int *" quot ", mpu_int *" rem ", mpu_int *" num ", mpu_int *" den ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBidiv()\fP function performs the unsigned division of the variable located at \fBnum\fP
+by the variable located at \fBden\fP. The result is placed at \fBquot\fP. The remainder of the
+division is placed at \fBrem\fP. The memory contents at addresses \fBnum\fP, \fBden\fP are not
+changed, the previous memory contents at addresses \fBquot\fP, \fBrem\fP are lost.
+The \fBnb\fP parameter determines the size of the operands (in bytes) located at the addresses
+\fBquot\fP, \fBrem\fP, \fBnum\fP, \fBden\fP.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+The \fBA\fP flag is reset to 0. The \fBP\fP flag is set only when the size of the \fBprod\fP
+operand is one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2). The \fBR\fP (major || remainder)
+flag is set when the remainder is obtained of the division.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iinc.3mpu b/man/iinc.3mpu
new file mode 100644
index 0000000..a47310f
--- /dev/null
+++ b/man/iinc.3mpu
@@ -0,0 +1,61 @@
+.TH iinc 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiinc\fP \- increment
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iinc( mpu_int *" c ", mpu_int *" a ", int " nb " );
+.fi
+.SH DESCRIPTION
+The function \fBiinc()\fP performs the increment operation (c = a + 1) of the operand \fBa\fP.
+The result is placed at \fBc\fP. The contents of the memory at \fBa\fP are not changed and the
+previous contents of the memory at \fBc\fP are lost. The \fBnb\fP parameter defines the size
+of the operands (in bytes) located at addresses \fBc\fP, \fBa\fP.
+.PP
+The function affects the flags \fBA\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The \fBC\fP flag does not change (the previous value is retained). The \fBP\fP flag
+is set flag is set only when the size of the \fBc\fP, \fBa\fP operands is one or two
+bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iitoa.3mpu b/man/iitoa.3mpu
new file mode 100644
index 0000000..e8f43e6
--- /dev/null
+++ b/man/iitoa.3mpu
@@ -0,0 +1,115 @@
+.TH iitoa 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiitoa\fP, \fBiuitoa\fP \- functions for converting an integer to an ASCII string
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iitoa( __mpu_char8_t *" str ", mpu_int *" a ", int " radix ", int " uf ", int " nb " );
+.BI "void iuitoa( __mpu_char8_t *" str ", mpu_int *" a ", int " radix ", int " uf ", int " nb " );
+.fi
+.SH DESCRIPTION
+The functions \fBiitoa()\fP, \fBiuitoa()\fP convert an integer variable located at \fBa\fP into
+a string constant. The base of the numerical system is selected according to the value of the
+parameter \fBradix\fP. Valid bases are presented in the header file \fBlibmpu.h\fP:
+.nf
+.sp
+#define RADIX_BIN 2
+#define RADIX_OCT 8
+#define RADIX_DEC 10
+#define RADIX_HEX 16
+.fi
+.sp
+If you select the base \fBRADIX_BIN\fP or \fBRADIX_HEX\fP, you can additionally select the prefix
+representation register with the parameter \fBuf\fP, the allowed values of which are:
+.nf
+.sp
+#define LOWERCASE 0
+#define UPPERCASE 1
+.fi
+.sp
+are also represented in the header file \fBlibmpu.h\fP.
+.PP
+The \fBnb\fP parameter specifies the size of the \fBa\fP variable in bytes.
+.PP
+The \fBiitoa()\fP, \fBiuitoa()\fP functions do not affect flags.
+.PP
+The size of memory allocated under the \fBstr\fP pointer must be sufficient to accommodate the resultant
+string constant.
+.PP
+The \fBiitoa()\fP function assumes that the \fBa\fP variable is a signed variable, and the \fBiuitoa()\fP
+function treats the argument as an unsigned integer. For example, an 8-bit binary integer \fB0b10000000\fP
+will be converted to the string "\-128" by the function \fBiitoa()\fP, while the function \fBiuitoa()\fP
+will output the positive number "128".
+.sp
+.SH EXAMPLES
+.nf
+.sp
+#include <libmpu.h>
+#include <stdio.h>
+
+int main( void )
+{
+ int rc = 0;
+
+ __mpu_init();
+ __mpu_extra_warnings = 1;
+
+ {
+ mpu_int8_t a;
+ int nb = NB_I8;
+ __mpu_char8_t s[32];
+
+ iatoui( a, "0b10000000", nb ); /* evaluate the A variable */
+
+ iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
+ printf( "a = %s;\\n", s ); /* a = -128; */
+
+ iuitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
+ printf( "a = %s;\\n", s ); /* a = 128; */
+ }
+
+ __mpu_free_context();
+
+ return( rc );
+}
+.fi
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3).
diff --git a/man/imul.3mpu b/man/imul.3mpu
new file mode 100644
index 0000000..803d3cc
--- /dev/null
+++ b/man/imul.3mpu
@@ -0,0 +1,64 @@
+.TH imul 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBimul\fP \- unsigned integer multiplication
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void imul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " );
+.fi
+.SH DESCRIPTION
+The function \fBimul()\fP performs the unsigned multiplication operation of the variable located
+at the address \fBnum\fP by the variable located at the address \fBmul\fP. The result is placed
+at \fBprod\fP. The contents of the memory at addresses \fBnum\fP, \fBmul\fP are not changed, and
+the previous memory contents at address \fBprod\fP are lost. The \fBnb_prod\fP parameter determines
+the size of the operand (in bytes) located at address \fBprod\fP, and the \fBnb_num\fP parameter
+determines the size of operands (in bytes) located at addresses \fBnum\fP, \fBmul\fP.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+The \fBA\fP flag is reset to 0. The \fBP\fP flag is set only when the size of the \fBprod\fP
+operand is one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2). Flag \fBR\fP (major || remainder)
+is set in the case that the resulting product requires a larger size than defined by
+\fBnb_prod\fP parameter.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ineg.3mpu b/man/ineg.3mpu
index d12d48e..dd6e891 100644
--- a/man/ineg.3mpu
+++ b/man/ineg.3mpu
@@ -20,8 +20,8 @@ two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -39,5 +39,22 @@ two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
.BR irorn(3),
.BR ircln(3),
.BR ircrn(3),
-.BR inot(3).
-
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/inot.3mpu b/man/inot.3mpu
index 7b88ee1..c6c0dbc 100644
--- a/man/inot.3mpu
+++ b/man/inot.3mpu
@@ -17,8 +17,8 @@ The function has no effect on flags.
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -36,5 +36,22 @@ The function has no effect on flags.
.BR irorn(3),
.BR ircln(3),
.BR ircrn(3),
-.BR ineg(3).
-
+.BR ineg(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ior.3mpu b/man/ior.3mpu
new file mode 100644
index 0000000..77e4cfc
--- /dev/null
+++ b/man/ior.3mpu
@@ -0,0 +1,61 @@
+.TH ior 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBior\fP \- bitwise logical OR
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ior( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBior()\fP function performs a bitwise logical \fBOR\fP of the \fBa\fP and \fBb\fP
+operands. The result is placed at address \fBc\fP. The contents of memory at \fBa\fP and
+\fBb\fP are not changed, the previous memory content at \fBc\fP is lost. The parameter
+\fBnb\fP defines the size of the operands (in bytes) located at addresses \fBc\fP,
+\fBa\fP, \fBb\fP.
+.PP
+The function affects the flags \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The \fBA\fP flag is undefined. The \fBP\fP flag is set only when the size of the \fBa\fP,
+\fBb\fP operands is equal to one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/isbb.3mpu b/man/isbb.3mpu
index 5751c09..a207ed3 100644
--- a/man/isbb.3mpu
+++ b/man/isbb.3mpu
@@ -60,6 +60,41 @@ int main( void )
.sp
.SH SEE ALSO
.BR iadd(3),
+.BR isub(3),
.BR iadc(3),
-.BR isub(3).
-
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/isdiv.3mpu b/man/isdiv.3mpu
new file mode 100644
index 0000000..0d969b2
--- /dev/null
+++ b/man/isdiv.3mpu
@@ -0,0 +1,63 @@
+.TH isdiv 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBisdiv\fP \- signed division of integers
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void isdiv( mpu_int *" quot ", mpu_int *" rem ", mpu_int *" num ", mpu_int *" den ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBisdiv()\fP function performs the operation of dividing the variable located at \fBnum\fP,
+by the variable located at \fBden\fP, taking into account the sign of the variables. The result
+is placed at \fBquot\fP. The remainder of the division is placed at \fBrem\fP. The contents of
+the memory at addresses \fBnum\fP, \fBden\fP are not changed, the previous contents of memory
+at addresses \fBquot\fP and \fBrem\fP are lost. The \fBnb\fP parameter determines the size of
+the operands (in bytes) located at the addresses \fBquot\fP, \fBrem\fP, \fBnum\fP, \fBden\fP.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+The \fBA\fP flag is reset to 0. The \fBP\fP flag is set only when the size of the \fBprod\fP
+operand is one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2). The \fBR\fP (major || remainder)
+flag is set when the remainder is obtained of the division.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ismul.3mpu b/man/ismul.3mpu
new file mode 100644
index 0000000..c0d0594
--- /dev/null
+++ b/man/ismul.3mpu
@@ -0,0 +1,65 @@
+.TH ismul 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBismul\fP \- signed multiplication of integers
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ismul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " );
+.fi
+.SH DESCRIPTION
+The function \fBismul()\fP performs the multiplication operation of the variable located
+at the address \fBnum\fP by the variable located at the address \fBmul\fP, taking into account
+the sign of the variables. The result is placed at \fBprod\fP. The contents of the memory at
+\fBnum\fP, \fBmul\fP are not changed, the previous memory contents at \fBprod\fP are lost.
+The parameter \fBnb_prod\fP determines the size of the operand (in bytes) located at the
+address \fBprod\fP, and the parameter \fBnb_num\fP defines the size of operands (in bytes)
+located at the addresses \fBnum\fP, \fBmul\fP.
+.PP
+The function affects the flags \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+The \fBA\fP flag is reset to 0. The \fBP\fP flag is set only when the size of the \fBprod\fP
+operand is one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2). Flag \fBR\fP (major || remainder)
+is set in the case that the resulting product requires a larger size than the \fBnb_prod\fP
+parameter.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/isub.3mpu b/man/isub.3mpu
index e665340..2f7ad22 100644
--- a/man/isub.3mpu
+++ b/man/isub.3mpu
@@ -57,5 +57,40 @@ int main( void )
.SH SEE ALSO
.BR iadd(3),
.BR iadc(3),
-.BR isbb(3).
-
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/itest.3mpu b/man/itest.3mpu
new file mode 100644
index 0000000..6933c2c
--- /dev/null
+++ b/man/itest.3mpu
@@ -0,0 +1,59 @@
+.TH itest 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBitest\fP \- bitwise AND
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void itest( mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBitest()\fP function performs bitwise logical \fBAND\fP of the \fBa\fP and \fBb\fP
+operands. The memory contents of \fBa\fP and \fBb\fP are not changed. The \fBnb\fP parameter
+defines the size of the operands (in bytes) located at addresses \fBa\fP, \fBb\fP.
+.PP
+The function affects the flags \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The \fBA\fP flag is undefined. The \fBP\fP flag is set only when the size of the \fBa\fP,
+\fBb\fP operands is equal to one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/iuitoa.3mpu b/man/iuitoa.3mpu
new file mode 100644
index 0000000..e0f0fce
--- /dev/null
+++ b/man/iuitoa.3mpu
@@ -0,0 +1 @@
+.so man3/iitoa.3mpu
diff --git a/man/ixchg.3mpu b/man/ixchg.3mpu
new file mode 100644
index 0000000..6bdb4cd
--- /dev/null
+++ b/man/ixchg.3mpu
@@ -0,0 +1,56 @@
+.TH ixchg 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBixchg\fP \- exchange of values
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ixchg( mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBixchg()\fP function swaps the values of variables located at \fBa\fP, \fBb\fP. The
+\fBnb\fP parameter defines the size of the operands (in bytes) located at addresses \fBa\fP,
+\fBb\fP.
+.PP
+The function has no effect on flags.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ixor.3mpu b/man/ixor.3mpu
new file mode 100644
index 0000000..fba3fbb
--- /dev/null
+++ b/man/ixor.3mpu
@@ -0,0 +1,61 @@
+.TH ixor 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBixor\fP \- bitwise logical exclusive OR
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ixor( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+The \fBixor()\fP function performs bitwise logical exclusive \fBOR\fP of the operands \fBa\fP
+and \fBb\fP. The result is placed at address \fBc\fP. The contents of the memory at addresses
+\fBa\fP and \fBb\fP are not changed, the previous memory contents at address \fBc\fP are lost.
+Parameter \fBnb\fP specifies the size of the operands (in bytes) located at addresses \fBc\fP,
+\fBa\fP, \fBb\fP.
+.PP
+The function affects the flags \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+The \fBA\fP flag is undefined. The \fBP\fP flag is set only when the size of the \fBa\fP,
+\fBb\fP operands is equal to one or two bytes (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/libmpu.7 b/man/libmpu.7
index 7005059..9f123b3 100644
--- a/man/libmpu.7
+++ b/man/libmpu.7
@@ -398,7 +398,43 @@ For simple calculations, we usually do not have to override the functions \fBmat
of the standard features provided by the \fBC\fP language library.
.sp
.SH SEE ALSO
-.BR iadd (3),
-.BR iadc (3),
-.BR isub (3),
-.BR isbb (3).
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/Makefile.am b/man/ru/Makefile.am
index 6bb3807..e42ef60 100644
--- a/man/ru/Makefile.am
+++ b/man/ru/Makefile.am
@@ -17,7 +17,16 @@ MAN3 = iadc.3mpu iadd.3mpu \
circular-shifts-n.3mpu \
ircln.3mpu ircrn.3mpu \
iroln.3mpu irorn.3mpu \
- inot.3mpu ineg.3mpu
+ inot.3mpu ineg.3mpu \
+ iand.3mpu itest.3mpu \
+ icmp.3mpu ior.3mpu \
+ ixor.3mpu iinc.3mpu \
+ idec.3mpu ixchg.3mpu \
+ icpy.3mpu icvt.3mpu \
+ imul.3mpu ismul.3mpu \
+ idiv.3mpu isdiv.3mpu \
+ iatoi.3mpu iatoui.3mpu \
+ iitoa.3mpu iuitoa.3mpu
MAN7 = libmpu.7
diff --git a/man/ru/circular-shifts-n.3mpu b/man/ru/circular-shifts-n.3mpu
index 61de3d2..252bc0f 100644
--- a/man/ru/circular-shifts-n.3mpu
+++ b/man/ru/circular-shifts-n.3mpu
@@ -20,8 +20,8 @@
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -34,5 +34,24 @@
.BR ishln(3),
.BR ishrn(3),
.BR isaln(3),
-.BR isarn(3).
-
+.BR isarn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/circular-shifts.3mpu b/man/ru/circular-shifts.3mpu
index 8fd6f17..e68b7f9 100644
--- a/man/ru/circular-shifts.3mpu
+++ b/man/ru/circular-shifts.3mpu
@@ -196,11 +196,38 @@ int main( void )
.fi
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
.BR isal(3),
-.BR isar(3).
-
+.BR isar(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iadc.3mpu b/man/ru/iadc.3mpu
index 353f080..dfdc805 100644
--- a/man/ru/iadc.3mpu
+++ b/man/ru/iadc.3mpu
@@ -60,5 +60,40 @@ int main( void )
.SH SEE ALSO
.BR iadd(3),
.BR isub(3),
-.BR isbb(3).
-
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iadd.3mpu b/man/ru/iadd.3mpu
index 5fa05f5..e4abdeb 100644
--- a/man/ru/iadd.3mpu
+++ b/man/ru/iadd.3mpu
@@ -55,7 +55,42 @@ int main( void )
.fi
.sp
.SH SEE ALSO
-.BR iadc (3),
-.BR isub (3),
-.BR isbb (3).
-
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iand.3mpu b/man/ru/iand.3mpu
new file mode 100644
index 0000000..abc053a
--- /dev/null
+++ b/man/ru/iand.3mpu
@@ -0,0 +1,60 @@
+.TH iand 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiand\fP \- поразрядное логическое И
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iand( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBiand()\fP выполняет поразрядное логическое \fBИ\fP операндов \fBa\fP и \fBb\fP.
+Результат размещается по адресу \fBc\fP. Содержимое памяти по адресам \fBa\fP и \fBb\fP
+не изменяется, предыдущее содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP
+определяет размер операндов (в байтах), расположенных по адресам \fBc\fP, \fBa\fP, \fBb\fP.
+.PP
+Функция воздействует на флаги \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаг \fBА\fP неопределен. Флаг \fBP\fP выставляется только в том случае, когда размер
+операндов \fBa\fP, \fBb\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iatoi.3mpu b/man/ru/iatoi.3mpu
new file mode 100644
index 0000000..e161eb6
--- /dev/null
+++ b/man/ru/iatoi.3mpu
@@ -0,0 +1,104 @@
+.TH iatoi 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiatoi\fP, \fBiatoui\fP \- функции перевода ASCII строки в целое число
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iatoi( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
+.BI "void iatoui( mpu_int *" c ", __mpu_char8_t *" str ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функции \fBiatoi()\fP, \fBiatoui()\fP предназначены для приведения (конвертации) ASCII\-строки в числовой вид.
+В случае функции \fBiatoi()\fP арумент \fBstr\fP рассматривается как указатель на массив символов, содержащий
+символы знакового целого числа, в случае \fBiatoui()\fP подразумевается, что строка содержит представление
+беззнаковой числовой константы целого типа.
+.PP
+Числовые константы в строке могут быть представлены как двоичные, восьмеричные, шестнадцатеричные и десятичные
+числа. Двоичные числа начинаются с префикса \fB0b\fP или \fB0B\fP, например, \fB0b1011\fP. Восьмеричные числа
+должны начинаться с символа '0' и содержать цифры от '0' до '7'. Шестнацатеричные константы начинаются с префикса
+\fB0x\fP или \fB0X\fP и могут содержать символы от '0' до '7', а также символы от 'a' до 'f' в любом регистре.
+Десятичные константы могут содержать символы от '0' до '9', но не должны начинаться символом '0'. Перед числом
+допускаются знаки '+', '-'. Если в строке представлена двоичная, восьмеричная или шестнадцатеричная константа,
+то знак игнорируется.
+.PP
+Результат размещается по адресу \fBc\fP, а параметр \fBnb\fP представляет размер результата \fBc\fP в байтах.
+.PP
+Если число, представленное в строке \fBstr\fP, не умещается в заданный (\fBnb\fP) формат, то выставляется
+флаг переполнения (\fBO\fP).
+.PP
+Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP. Флаги \fBA\fP, \fBC\fP
+сбрасываются в 0. Флаг \fBR\fP не изменяется.
+.sp
+.SH EXAMPLES
+.nf
+.sp
+#include <libmpu.h>
+#include <stdio.h>
+
+int main( void )
+{
+ int rc = 0;
+
+ __mpu_init();
+ __mpu_extra_warnings = 1;
+
+ {
+ mpu_int16_t a, b;
+ int nb = NB_I16;
+ __mpu_char8_t s[32];
+
+ iatoui( a, "0b11", nb ); /* evaluate the A variable */
+ iatoi( b, "-3", nb ); /* evaluate the B variable */
+
+ iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
+ printf( "a = %s;\\n", s ); /* a = 3; */
+
+ iitoa( s, b, RADIX_BIN, LOWERCASE, nb ); /* convert B value to ASCII string S */
+ printf( "b = %s;\\n", s ); /* b = 0b1111111111111101; */
+ }
+
+ __mpu_free_context();
+
+ return( rc );
+}
+.fi
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iatoui.3mpu b/man/ru/iatoui.3mpu
new file mode 100644
index 0000000..59455da
--- /dev/null
+++ b/man/ru/iatoui.3mpu
@@ -0,0 +1 @@
+.so man3/iatoi.3mpu
diff --git a/man/ru/icmp.3mpu b/man/ru/icmp.3mpu
new file mode 100644
index 0000000..2196f4a
--- /dev/null
+++ b/man/ru/icmp.3mpu
@@ -0,0 +1,59 @@
+.TH icmp 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBitest\fP \- операция сравнения целых чисел
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void icmp( mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBicmp()\fP сравнивает значения \fBa\fP и \fBb\fP (фактически выполняя операцию a \- b).
+Содержимое памяти по адресам \fBa\fP и \fBb\fP не изменяется. Параметр \fBnb\fP определяет размер
+операндов (в байтах), расположенных по адресам \fBa\fP, \fBb\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаги \fBА\fP, \fBP\fP выставляются только в том случае, когда размер операндов \fBa\fP,
+\fBb\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/icpy.3mpu b/man/ru/icpy.3mpu
new file mode 100644
index 0000000..06c7ecc
--- /dev/null
+++ b/man/ru/icpy.3mpu
@@ -0,0 +1,62 @@
+.TH icpy 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBicpy\fP \- копирование значения целой переменной
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void icpy( mpu_int *" c ", mpu_int *" a ", int " nb_c ", int " nb_a " );
+.fi
+.SH DESCRIPTION
+Функция \fBicpy()\fP выполняет операцию копирования значения операнда \fBa\fP в переменную,
+расположенную по адресу \fBc\fP. Содержимое памяти по адресу \fBa\fP не изменяется, предыдущее
+содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb_с\fP определяет размер операнда
+(в байтах), расположенного по адресу \fBc\fP, а параметр \fBnb_a\fP \- размер операнда
+(в байтах), расположенного по адресу \fBa\fP.
+.PP
+Функция воздействует на флаги \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаги \fBA\fP, \fBC\fP не изменяются (сохраняется предыдущее значение). Флаг \fBP\fP
+выставляется только в том случае, когда размер операнда \fBс\fP равен одному или двум
+байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/icvt.3mpu b/man/ru/icvt.3mpu
new file mode 100644
index 0000000..5325715
--- /dev/null
+++ b/man/ru/icvt.3mpu
@@ -0,0 +1,63 @@
+.TH icvt 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBicvt\fP \- преобразование значения целой переменной
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void icvt( mpu_int *" c ", mpu_int *" a ", int " nb_c ", int " nb_a " );
+.fi
+.SH DESCRIPTION
+Функция \fBicvt()\fP выполняет операцию преобразование значения переменной \fBa\fP в значение
+переменной большего или меньшего размера с сохранением величины (и знака). Результат размещается
+по адресу \fBc\fP. Содержимое памяти по адресу \fBa\fP не изменяется, предыдущее
+содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb_с\fP определяет размер операнда
+(в байтах), расположенного по адресу \fBc\fP, а параметр \fBnb_a\fP \- размер операнда
+(в байтах), расположенного по адресу \fBa\fP.
+.PP
+Функция воздействует на флаги \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаги \fBA\fP, \fBC\fP не изменяются (сохраняется предыдущее значение). Флаг \fBP\fP
+выставляется только в том случае, когда размер операнда \fBс\fP равен одному или двум
+байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/idec.3mpu b/man/ru/idec.3mpu
new file mode 100644
index 0000000..05e97ff
--- /dev/null
+++ b/man/ru/idec.3mpu
@@ -0,0 +1,61 @@
+.TH idec 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBidec\fP \- декремент
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void idec( mpu_int *" c ", mpu_int *" a ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBidec()\fP выполняет операцию декремента (c = a \- 1) операнда \fBa\fP. Результат
+размещается по адресу \fBc\fP. Содержимое памяти по адресу \fBa\fP не изменяется, предыдущее
+содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP определяет размер операндов
+(в байтах), расположенных по адресам \fBc\fP, \fBa\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаг \fBC\fP не изменяется (сохраняется предыдущее значение). Флаг \fBP\fP выставляется только
+в том случае, когда размер операндов \fBc\fP, \fBa\fP равен одному или двум байтам
+(\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/idiv.3mpu b/man/ru/idiv.3mpu
new file mode 100644
index 0000000..c64bdf1
--- /dev/null
+++ b/man/ru/idiv.3mpu
@@ -0,0 +1,64 @@
+.TH idiv 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBidiv\fP \- беззнаковое деление целых чисел
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void idiv( mpu_int *" quot ", mpu_int *" rem ", mpu_int *" num ", mpu_int *" den ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBidiv()\fP выполняет операцию беззнакового деления переменной, расположенной
+по адресу \fBnum\fP, на переменную, расположенную по адресу \fBden\fP. Результат размещается
+по адресу \fBquot\fP. Остаток от деления размещается по адресу \fBrem\fP. Содержимое памяти по
+адресам \fBnum\fP, \fBden\fP не изменяется, предыдущее содержимое памяти по адресам \fBquot\fP,
+\fBrem\fP теряется. Параметр \fBnb\fP определяет размер операндов (в байтах), расположенных по
+адресам \fBquot\fP, \fBrem\fP, \fBnum\fP, \fBden\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+Флаг \fBA\fP сбрасывается в 0. Флаг \fBP\fP выставляется только в том случае, когда размер
+операнда \fBprod\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+Флаг \fBR\fP (major || remainder) выставляется в том случае, если получен остаток
+от деления.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iinc.3mpu b/man/ru/iinc.3mpu
new file mode 100644
index 0000000..46df190
--- /dev/null
+++ b/man/ru/iinc.3mpu
@@ -0,0 +1,61 @@
+.TH iinc 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiinc\fP \- инкремент
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iinc( mpu_int *" c ", mpu_int *" a ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBiinc()\fP выполняет операцию инкремента (c = a + 1) операнда \fBa\fP. Результат
+размещается по адресу \fBc\fP. Содержимое памяти по адресу \fBa\fP не изменяется, предыдущее
+содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP определяет размер операндов
+(в байтах), расположенных по адресам \fBc\fP, \fBa\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаг \fBC\fP не изменяется (сохраняется предыдущее значение). Флаг \fBP\fP выставляется
+только в том случае, когда размер операндов \fBc\fP, \fBa\fP равен одному или двум байтам
+(\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iitoa.3mpu b/man/ru/iitoa.3mpu
new file mode 100644
index 0000000..ad86dc9
--- /dev/null
+++ b/man/ru/iitoa.3mpu
@@ -0,0 +1,115 @@
+.TH iitoa 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBiitoa\fP, \fBiuitoa\fP \- функции перевода целого числа в ASCII строку
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void iitoa( __mpu_char8_t *" str ", mpu_int *" a ", int " radix ", int " uf ", int " nb " );
+.BI "void iuitoa( __mpu_char8_t *" str ", mpu_int *" a ", int " radix ", int " uf ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функции \fBiitoa()\fP, \fBiuitoa()\fP осуществляют преобразование целой переменной, расположенной
+по адресу \fBa\fP, в строковую константу. Основание системы счисления выбирается согласно значению
+параметра \fBradix\fP. Допустимые основания представлены в заголовочном файле \fBlibmpu.h\fP:
+.nf
+.sp
+#define RADIX_BIN 2
+#define RADIX_OCT 8
+#define RADIX_DEC 10
+#define RADIX_HEX 16
+.fi
+.sp
+Если выбрано основание \fBRADIX_BIN\fP или \fBRADIX_HEX\fP, то дополнительно можно выбрать регистр
+представления префикса с помощью параметра \fBuf\fP, допустимые значения которого:
+.nf
+.sp
+#define LOWERCASE 0
+#define UPPERCASE 1
+.fi
+.sp
+также представлены в заголовочном файле \fBlibmpu.h\fP.
+.PP
+Параметр \fBnb\fP определяет размер переменной \fBa\fP в байтах.
+.PP
+Функции \fBiitoa()\fP, \fBiuitoa()\fP не влияют на флаги.
+.PP
+Размер памяти, выделенной под указателем \fBstr\fP, должен быть достаточен для размещения результирующей
+строковой константы.
+.PP
+Функция \fBiitoa()\fP подразумевает, что переменная \fBa\fP является знаковой, а функция \fBiuitoa()\fP
+рассматривает аргумент \fBa\fP как беззнаковое целое число. Так, например, двоичное 8\-разрядное целое
+\fB0b10000000\fP функцией \fBiitoa()\fP будет переведено в строку "\-128", в то время как функция \fBiuitoa()\fP
+выведет положительное число "128".
+.sp
+.SH EXAMPLES
+.nf
+.sp
+#include <libmpu.h>
+#include <stdio.h>
+
+int main( void )
+{
+ int rc = 0;
+
+ __mpu_init();
+ __mpu_extra_warnings = 1;
+
+ {
+ mpu_int8_t a;
+ int nb = NB_I8;
+ __mpu_char8_t s[32];
+
+ iatoui( a, "0b10000000", nb ); /* evaluate the A variable */
+
+ iitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
+ printf( "a = %s;\\n", s ); /* a = -128; */
+
+ iuitoa( s, a, RADIX_DEC, LOWERCASE, nb ); /* convert A value to ASCII string S */
+ printf( "a = %s;\\n", s ); /* a = 128; */
+ }
+
+ __mpu_free_context();
+
+ return( rc );
+}
+.fi
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3).
diff --git a/man/ru/imul.3mpu b/man/ru/imul.3mpu
new file mode 100644
index 0000000..028ee11
--- /dev/null
+++ b/man/ru/imul.3mpu
@@ -0,0 +1,64 @@
+.TH imul 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBimul\fP \- беззнаковое умножение целых чисел
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void imul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " );
+.fi
+.SH DESCRIPTION
+Функция \fBimul()\fP выполняет операцию беззнакового умножения переменной, расположенной
+по адресу \fBnum\fP, на переменную, расположенную по адресу \fBmul\fP. Результат размещается
+по адресу \fBprod\fP. Содержимое памяти по адресам \fBnum\fP, \fBmul\fP не изменяется, предыдущее
+содержимое памяти по адресу \fBprod\fP теряется. Параметр \fBnb_prod\fP определяет размер операнда
+(в байтах), расположенного по адресу \fBprod\fP, а параметр \fBnb_num\fP \- размер операндов
+(в байтах), расположенных по адресам \fBnum\fP, \fBmul\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+Флаг \fBA\fP сбрасывается в 0. Флаг \fBP\fP выставляется только в том случае, когда размер
+операнда \fBprod\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+Флаг \fBR\fP (major || remainder) выставляется в том случае, если полученное произведение
+требует большего размера, чем предусмотрено параметром \fBnb_prod\fP.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/ineg.3mpu b/man/ru/ineg.3mpu
index e5e00fe..4d6484a 100644
--- a/man/ru/ineg.3mpu
+++ b/man/ru/ineg.3mpu
@@ -8,7 +8,7 @@
.BI "void ineg( mpu_int *" c ", mpu_int *" a ", int " nb " );
.fi
.SH DESCRIPTION
-Функция \fBineg()\fP изменяет знак целого числа (NEG), расположенного по адресу \fBa\fP, c размещением
+Функция \fBineg()\fP изменяет знак целого числа, расположенного по адресу \fBa\fP, c размещением
результата по адресу \fBc\fP. Содержимое памяти по адресу \fBa\fP не изменяется, предыдущее
содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP определяет размер операндов (в байтах),
расположенных по адресам \fBc\fP, \fBa\fP.
@@ -20,8 +20,8 @@
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -39,5 +39,22 @@
.BR irorn(3),
.BR ircln(3),
.BR ircrn(3),
-.BR inot(3).
-
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/inot.3mpu b/man/ru/inot.3mpu
index da2a839..91a07cc 100644
--- a/man/ru/inot.3mpu
+++ b/man/ru/inot.3mpu
@@ -17,8 +17,8 @@ c размещением результата по адресу \fBc\fP. Сод
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -36,5 +36,22 @@ c размещением результата по адресу \fBc\fP. Сод
.BR irorn(3),
.BR ircln(3),
.BR ircrn(3),
-.BR ineg(3).
-
+.BR ineg(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/ior.3mpu b/man/ru/ior.3mpu
new file mode 100644
index 0000000..0cbb6a7
--- /dev/null
+++ b/man/ru/ior.3mpu
@@ -0,0 +1,60 @@
+.TH ior 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBior\fP \- поразрядное логическое ИЛИ
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ior( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBior()\fP выполняет поразрядное логическое \fBИЛИ\fP операндов \fBa\fP и \fBb\fP.
+Результат размещается по адресу \fBc\fP. Содержимое памяти по адресам \fBa\fP и \fBb\fP
+не изменяется, предыдущее содержимое памяти по адресу \fBc\fP теряется. Параметр \fBnb\fP
+определяет размер операндов (в байтах), расположенных по адресам \fBc\fP, \fBa\fP, \fBb\fP.
+.PP
+Функция воздействует на флаги \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаг \fBА\fP неопределен. Флаг \fBP\fP выставляется только в том случае, когда размер
+операндов \fBa\fP, \fBb\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/isbb.3mpu b/man/ru/isbb.3mpu
index 3054d2e..b54fd90 100644
--- a/man/ru/isbb.3mpu
+++ b/man/ru/isbb.3mpu
@@ -60,6 +60,41 @@ int main( void )
.sp
.SH SEE ALSO
.BR iadd(3),
+.BR isub(3),
.BR iadc(3),
-.BR isub(3).
-
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/isdiv.3mpu b/man/ru/isdiv.3mpu
new file mode 100644
index 0000000..50774af
--- /dev/null
+++ b/man/ru/isdiv.3mpu
@@ -0,0 +1,64 @@
+.TH isdiv 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBisdiv\fP \- знаковое деление целых чисел
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void isdiv( mpu_int *" quot ", mpu_int *" rem ", mpu_int *" num ", mpu_int *" den ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBisdiv()\fP выполняет операцию деления переменной, расположенной по адресу \fBnum\fP,
+на переменную, расположенную по адресу \fBden\fP, с учетом знака переменных. Результат размещается
+по адресу \fBquot\fP. Остаток от деления размещается по адресу \fBrem\fP. Содержимое памяти по
+адресам \fBnum\fP, \fBden\fP не изменяется, предыдущее содержимое памяти по адресам \fBquot\fP,
+\fBrem\fP теряется. Параметр \fBnb\fP определяет размер операндов (в байтах), расположенных по
+адресам \fBquot\fP, \fBrem\fP, \fBnum\fP, \fBden\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+Флаг \fBA\fP сбрасывается в 0. Флаг \fBP\fP выставляется только в том случае, когда размер
+операнда \fBprod\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+Флаг \fBR\fP (major || remainder) выставляется в том случае, если получен остаток
+от деления.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/ismul.3mpu b/man/ru/ismul.3mpu
new file mode 100644
index 0000000..816ed3e
--- /dev/null
+++ b/man/ru/ismul.3mpu
@@ -0,0 +1,64 @@
+.TH ismul 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBismul\fP \- знаковое умножение целых чисел
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ismul( mpu_int *" prod ", mpu_int *" num ", mpu_int *" mul ", int " nb_prod ", int " nb_num " );
+.fi
+.SH DESCRIPTION
+Функция \fBismul()\fP выполняет операцию умножения переменной, расположенной
+по адресу \fBnum\fP, на переменную, расположенную по адресу \fBmul\fP, с учетом знака переменных.
+Результат размещается по адресу \fBprod\fP. Содержимое памяти по адресам \fBnum\fP, \fBmul\fP не
+изменяется, предыдущее содержимое памяти по адресу \fBprod\fP теряется. Параметр \fBnb_prod\fP
+определяет размер операнда (в байтах), расположенного по адресу \fBprod\fP, а параметр
+\fBnb_num\fP \- размер операндов (в байтах), расположенных по адресам \fBnum\fP, \fBmul\fP.
+.PP
+Функция воздействует на флаги \fBA\fP, \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP, \fBR\fP.
+.PP
+Флаг \fBA\fP сбрасывается в 0. Флаг \fBP\fP выставляется только в том случае, когда размер
+операнда \fBprod\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+Флаг \fBR\fP (major || remainder) выставляется в том случае, если полученное произведение
+требует большего размера, чем предусмотрено параметром \fBnb_prod\fP.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/isub.3mpu b/man/ru/isub.3mpu
index ab58dd8..1e6e5f1 100644
--- a/man/ru/isub.3mpu
+++ b/man/ru/isub.3mpu
@@ -57,5 +57,40 @@ int main( void )
.SH SEE ALSO
.BR iadd(3),
.BR iadc(3),
-.BR isbb(3).
-
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/itest.3mpu b/man/ru/itest.3mpu
new file mode 100644
index 0000000..6d5dfe0
--- /dev/null
+++ b/man/ru/itest.3mpu
@@ -0,0 +1,59 @@
+.TH itest 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBitest\fP \- поразрядное логическое И
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void itest( mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBitest()\fP выполняет поразрядное логическое \fBИ\fP операндов \fBa\fP и \fBb\fP.
+Содержимое памяти по адресам \fBa\fP и \fBb\fP не изменяется. Параметр \fBnb\fP
+определяет размер операндов (в байтах), расположенных по адресам \fBa\fP, \fBb\fP.
+.PP
+Функция воздействует на флаги \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаг \fBА\fP неопределен. Флаг \fBP\fP выставляется только в том случае, когда размер
+операндов \fBa\fP, \fBb\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/iuitoa.3mpu b/man/ru/iuitoa.3mpu
new file mode 100644
index 0000000..e0f0fce
--- /dev/null
+++ b/man/ru/iuitoa.3mpu
@@ -0,0 +1 @@
+.so man3/iitoa.3mpu
diff --git a/man/ru/ixchg.3mpu b/man/ru/ixchg.3mpu
new file mode 100644
index 0000000..51a6120
--- /dev/null
+++ b/man/ru/ixchg.3mpu
@@ -0,0 +1,56 @@
+.TH ixchg 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBixchg\fP \- операция обмена значений
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ixchg( mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBixchg()\fP меняет местами значения переменных, расположенных по адресам \fBa\fP,
+\fBb\fP. Параметр \fBnb\fP определяет размер операндов (в байтах), расположенных по адресам
+\fBa\fP, \fBb\fP.
+.PP
+Функция не воздействует на флаги.
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/ixor.3mpu b/man/ru/ixor.3mpu
new file mode 100644
index 0000000..d278480
--- /dev/null
+++ b/man/ru/ixor.3mpu
@@ -0,0 +1,61 @@
+.TH ixor 3 "December 27, 2024" "libmpu" "LibMPU Programmer's Manual"
+.SH NAME
+\fBixor\fP \- поразрядное логическое исключающее ИЛИ
+.SH SYNOPSIS
+.nf
+.B #include <libmpu.h>
+.PP
+.BI "void ixor( mpu_int *" c ", mpu_int *" a ", mpu_int *" b ", int " nb " );
+.fi
+.SH DESCRIPTION
+Функция \fBixor()\fP выполняет поразрядное логическое исключающее \fBИЛИ\fP операндов \fBa\fP
+и \fBb\fP. Результат размещается по адресу \fBc\fP. Содержимое памяти по адресам \fBa\fP
+и \fBb\fP не изменяется, предыдущее содержимое памяти по адресу \fBc\fP теряется. Параметр
+\fBnb\fP определяет размер операндов (в байтах), расположенных по адресам \fBc\fP, \fBa\fP,
+\fBb\fP.
+.PP
+Функция воздействует на флаги \fBC\fP, \fBO\fP, \fBP\fP, \fBS\fP, \fBZ\fP.
+.PP
+Флаг \fBА\fP неопределен. Флаг \fBP\fP выставляется только в том случае, когда размер
+операндов \fBa\fP, \fBb\fP равен одному или двум байтам (\fBnb\fP == 1 || \fBnb\fP == 2).
+.sp
+.SH SEE ALSO
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/libmpu.7 b/man/ru/libmpu.7
index 055875f..219f1ec 100644
--- a/man/ru/libmpu.7
+++ b/man/ru/libmpu.7
@@ -404,7 +404,43 @@ struct __exception
предоставляемых библиотекой языка \fBC\fP.
.sp
.SH SEE ALSO
-.BR iadd (3),
-.BR iadc (3),
-.BR isub (3),
-.BR isbb (3).
+.BR iadd(3),
+.BR isub(3),
+.BR iadc(3),
+.BR isbb(3),
+.BR ishl(3),
+.BR ishr(3),
+.BR isal(3),
+.BR isar(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/shifts-n.3mpu b/man/ru/shifts-n.3mpu
index b894563..0d8de0a 100644
--- a/man/ru/shifts-n.3mpu
+++ b/man/ru/shifts-n.3mpu
@@ -20,8 +20,8 @@
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -34,4 +34,24 @@
.BR iroln(3),
.BR irorn(3),
.BR ircln(3),
-.BR ircrn(3).
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/ru/shifts.3mpu b/man/ru/shifts.3mpu
index dfac0e7..c537a46 100644
--- a/man/ru/shifts.3mpu
+++ b/man/ru/shifts.3mpu
@@ -157,7 +157,38 @@ int main( void )
.fi
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
-.BR isbb(3).
-
+.BR iadc(3),
+.BR isbb(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/shifts-n.3mpu b/man/shifts-n.3mpu
index 1d4b2ec..c5719e3 100644
--- a/man/shifts-n.3mpu
+++ b/man/shifts-n.3mpu
@@ -20,8 +20,8 @@ The state of the carry flag \fBC\fP is determined by the last pushed outward bit
.sp
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
+.BR iadc(3),
.BR isbb(3),
.BR ishl(3),
.BR ishr(3),
@@ -34,4 +34,24 @@ The state of the carry flag \fBC\fP is determined by the last pushed outward bit
.BR iroln(3),
.BR irorn(3),
.BR ircln(3),
-.BR ircrn(3).
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).
diff --git a/man/shifts.3mpu b/man/shifts.3mpu
index f5daf29..4b92840 100644
--- a/man/shifts.3mpu
+++ b/man/shifts.3mpu
@@ -155,7 +155,38 @@ int main( void )
.fi
.SH SEE ALSO
.BR iadd(3),
-.BR iadc(3),
.BR isub(3),
-.BR isbb(3).
-
+.BR iadc(3),
+.BR isbb(3),
+.BR irol(3),
+.BR iror(3),
+.BR ircl(3),
+.BR ircr(3),
+.BR ishln(3),
+.BR ishrn(3),
+.BR isaln(3),
+.BR isarn(3),
+.BR iroln(3),
+.BR irorn(3),
+.BR ircln(3),
+.BR ircrn(3),
+.BR ineg(3),
+.BR inot(3),
+.BR iand(3),
+.BR itest(3),
+.BR icmp(3),
+.BR ior(3),
+.BR ixor(3),
+.BR iinc(3),
+.BR idec(3),
+.BR ixchg(3),
+.BR icpy(3),
+.BR icvt(3),
+.BR imul(3),
+.BR ismul(3),
+.BR idiv(3),
+.BR isdiv(3),
+.BR iatoi(3),
+.BR iatoui(3),
+.BR iitoa(3),
+.BR iuitoa(3).