text:
I386

The Intel 386, originally released as 80386 and later renamed i386, is a 32-bit microprocessor designed by Intel. The first pre-production samples of the 386 were released to select developers in 1985, while mass production commenced in 1986. The processor was a significant evolution in the x86 architecture, extending a long line of processors that stretched back to the Intel 8008. The 386 was the central processing unit (CPU) of many workstations and high-end personal computers of the time. The 386 began to fall out of public use starting with the release of the i486 processor in 1989, while in embedded systems the 386 remained in widespread use until Intel finally discontinued it in 2007.

Compared to its predecessor the Intel 80286, the 80386 added a three-stage instruction pipeline which it brings up to total of 6-stage instruction pipeline, extended the architecture from 16-bits to 32-bits, and added an on-chip memory management unit. This paging translation unit made it much easier to implement operating systems that used virtual memory. It also offered support for register debugging.

The 80386 featured three operating modes: real mode, protected mode and virtual mode. The protected mode, which debuted in the 80286, was extended to allow the 386 to address up to 4 GB of memory. With the addition of segmented addressing system, it can expand up to 64 terabytes of virtual memory. The all new virtual 8086 mode (or VM86) made it possible to run one or more real mode programs in a protected environment, although some programs were not compatible.

The 32-bit i386 can correctly execute most code intended for the earlier 16-bit processors such as 8086 and 80286 that were ubiquitous in early PCs. As the original implementation of the 32-bit extension of the 80286 architecture, the i386 instruction set, programming model, and binary encodings are still the common denominator for all 32-bit x86 processors, which is termed the i386 architecture, x86, or IA-32, depending on context. Over the years, successively newer implementations of the same architecture have become several hundreds of times faster than the original 80386 (and thousands of times faster than the 8086).

Production history
Development of i386 technology began in 1982 under the internal name of P3. The tape-out of the 80386 development was finalized in July 1985. The 80386 was introduced as pre-production samples for software development workstations in October 1985. Manufacturing of the chips in significant quantities commenced in June 1986, along with the first plug-in device that allowed existing 80286-based computers to be upgraded to the 386, the Translator 386 by American Computer and Peripheral. Mainboards for 80386-based computer systems were cumbersome and expensive at first, but manufacturing was justified upon the 80386's mainstream adoption. The first personal computer to make use of the 80386 was the Deskpro 386, designed and manufactured by Compaq; this marked the first time a fundamental component in the IBM PC compatible de facto standard was updated by a company other than IBM.

The first versions of the 386 had 275,000 transistors. The 20 MHz version operates at 4–5 MIPS. It also performs between 8,000 and 9,000 Dhrystones per second. The 25 MHz 386 version was capable of 7 MIPS. A 33 MHz 80386 was reportedly measured to operate at about 11.4 and 11.5 MIPS. At that same speed, it has the performance of 8 VAX MIPS. These processors were running about 4.4 clocks per instruction.

In May 2006, Intel announced that i386 production would stop at the end of September 2007. Although it had long been obsolete as a personal computer CPU, Intel and others had continued making the chip for embedded systems. Such systems using an i386 or one of many derivatives are common in aerospace technology and electronic musical instruments, among others. Some mobile phones also used (later fully static CMOS variants of) the i386 processor, such as the BlackBerry 950 and Nokia 9000 Communicator. Linux continued to support i386 processors until December 11, 2012, when the kernel cut 386-specific instructions in version 3.8.

Architecture

The processor was a significant evolution in the x86 architecture, and extended a long line of processors that stretched back to the Intel 8008. The predecessor of the 80386 was the Intel 80286, a 16-bit processor with a segment-based memory management and protection system. The 80386 added a three-stage instruction pipeline which it brings up to total of 6-stage instruction pipeline, extended the architecture from 16-bits to 32-bits, and added an on-chip memory management unit. This paging translation unit made it much easier to implement operating systems that used virtual memory. It also offered support for register debugging.

The 80386 featured three operating modes: real mode, protected mode and virtual mode. The protected mode, which debuted in the 286, was extended to allow the 386 to address up to 4 GB of memory. With the addition of segmented addressing system, it can expand up to 64 terabytes of virtual memory. The all new virtual 8086 mode (or VM86) made it possible to run one or more real mode programs in a protected environment, although some programs were not compatible. It features scaled indexing and 64-bit barrel shifter.

The ability for a 386 to be set up to act like it had a flat memory model in protected mode despite the fact that it uses a segmented memory model in all modes was arguably the most important feature change for the x86 processor family until the AMD released x86-64 in 2003.

Several new instructions have been added to 386: BSF, BSR, BT, BTS, BTR, BTC, CDQ, CWDE, LFS, LGS, LSS, MOVSX, MOVZX, SETcc, SHLD, SHRD.

Two new segment registers have been added (FS and GS) for general-purpose programs. The single Machine Status Word of the 286 grew into eight control registers CR0–CR7. Debug registers DR0–DR7 were added for hardware breakpoints. New forms of the MOV instruction are used to access them.

The chief architect in the development of the 80386 was John H. Crawford. He was responsible for extending the 80286 architecture and instruction set to 32-bits, and then led the microprogram development for the 80386 chip.

The i486 and P5 Pentium line of processors were descendants of the i386 design.

Data types
The following data types are directly supported and thus implemented by one or more i386 machine instructions; these data types are briefly described here. :
 * Bit (Boolean value), bit field (group of up to 32 bits) and bit string (up to 4 Gbit in length).
 * 8-bit integer (byte), either signed (range −128..127) or unsigned (range 0..255).
 * 16-bit integer, either signed (range −32,768..32,767) or unsigned (range 0..65,535).
 * 32-bit integer, either signed (range −231..231−1) or unsigned (range 0..232−1).
 * Offset, a 16- or 32-bit displacement referring to a memory location (using any addressing mode).
 * Pointer, a 16-bit selector together with a 16- or 32-bit offset.
 * Character (8-bit character code).
 * String, a sequence of 8-, 16- or 32-bit words (up to 4 Gbyte in length).
 * BCD, decimal digits (0..9) represented by unpacked bytes.
 * Packed BCD, two BCD digits in one byte (range 0..99).

Example code
The following i386 assembly source code is for a subroutine named  that copies a null-terminated ASCIIZ character string from one location to another, converting all alphabetic characters to lower case. The string is copied one byte (8-bit character) at a time.

The example code uses the EBP (base pointer) register to establish a call frame, an area on the stack that contains all of the parameters and local variables for the execution of the subroutine. This kind of calling convention supports reentrant and recursive code and has been used by Algol-like languages since the late 1950s. A flat memory model is assumed, specifically, that the DS and ES segments address the same region of memory.

Business importance
The first PC based on the Intel 80386 was the Compaq Deskpro 386. By extending the 16/24-bit IBM PC/AT standard into a natively 32-bit computing environment, Compaq became the first company to design and manufacture such a major technical hardware advance on the PC platform. IBM was offered use of the 80386, but had manufacturing rights for the earlier 80286. IBM therefore chose to rely on that processor for a couple more years. The early success of the Compaq Deskpro 386 played an important role in legitimizing the PC "clone" industry and in de-emphasizing IBM's role within it. The first computer system sold with the 386SX was the Compaq Deskpro 386S, released in July 1988.

Prior to the 386, the difficulty of manufacturing microchips and the uncertainty of reliable supply made it desirable that any mass-market semiconductor be multi-sourced, that is, made by two or more manufacturers, the second and subsequent companies manufacturing under license from the originating company. The 386 was for a time (4.7 years) only available from Intel, since Andy Grove, Intel's CEO at the time, made the decision not to encourage other manufacturers to produce the processor as second sources. This decision was ultimately crucial to Intel's success in the market. The 386 was the first significant microprocessor to be single-sourced. Single-sourcing the 386 allowed Intel greater control over its development and substantially greater profits in later years.

AMD introduced its compatible Am386 processor in March 1991 after overcoming legal obstacles, thus ending Intel's 4.7-year monopoly on 386-compatible processors. From 1991 IBM also manufactured 386 chips under license for use only in IBM PCs and boards.

Compatibles

 * The AMD Am386SX and Am386DX were almost exact clones of the i386SX and i386DX. Legal disputes caused production delays for several years, but AMD's 40 MHz part eventually became very popular with computer enthusiasts as a low-cost and low-power alternative to the 25 MHz 486SX. The power draw was further reduced in the "notebook models" (Am386 DXL/SXL/DXLV/SXLV), which could operate with 3.3 V and were implemented in fully static CMOS circuitry.
 * Chips and Technologies Super386 38600SX and 38600DX were developed using reverse engineering. They sold poorly, due to some technical errors and incompatibilities, as well as their late appearance on the market. They were therefore short-lived products.
 * Cyrix Cx486SLC/Cx486DLC could be (simplistically) described as a kind of 386/486 hybrid chip that included a small amount of on-chip cache. It was popular among computer enthusiasts but did poorly with OEMs. The Cyrix Cx486SLC and Cyrix Cx486DLC processors were pin-compatible with i386SX and i386DX respectively. These processors were also manufactured and sold by Texas Instruments.
 * IBM 386SLC and 486SLC/DLC were variants of Intel's design which contained a large amount of on-chip cache (8 KB, and later 16 KB). The agreement with Intel limited their use to IBM's own line of computers and upgrade boards only, so they were not available on the open market.

Early problems
Intel originally intended for the 80386 to debut at 16 MHz. However, due to poor yields, it was instead introduced at 12.5 MHz.

Early in production, Intel discovered a marginal circuit that could cause a system to return incorrect results from 32-bit multiply operations. Not all of the processors already manufactured were affected, so Intel tested its inventory. Processors that were found to be bug-free were marked with a double sigma (ΣΣ), and affected processors were marked "16 BIT S/W ONLY". These latter processors were sold as good parts, since at the time 32-bit capability was not relevant for most users.

The i387 math coprocessor was not ready in time for the introduction of the 80386, and so many of the early 80386 motherboards instead provided a socket and hardware logic to make use of an 80287. In this configuration the FPU operated asynchronously to the CPU, usually with a clock rate of 10 MHz. The original Compaq Deskpro 386 is an example of such design. However, this was an annoyance to those who depended on floating-point performance, as the performance advantages of the 80387 over the 80287 were significant.

Pin-compatible upgrades
Intel later offered a modified version of its 486DX in i386 packaging, branded as the Intel RapidCAD. This provided an upgrade path for users with i386-compatible hardware. The upgrade was a pair of chips that replaced both the i386 and i387. Since the 486DX design contained an FPU, the chip that replaced the i386 contained the floating-point functionality, and the chip that replaced the i387 served very little purpose. However, the latter chip was necessary in order to provide the FERR signal to the mainboard and appear to function as a normal floating-point unit.

Third parties offered a wide range of upgrades, for both SX and DX systems. The most popular ones were based on the Cyrix 486DLC/SLC core, which typically offered a substantial speed improvement due to its more efficient instruction pipeline and internal L1 SRAM cache. The cache was usually 1 KB, or sometimes 8 KB in the TI variant. Some of these upgrade chips (such as the 486DRx2/SRx2) were marketed by Cyrix themselves, but they were more commonly found in kits offered by upgrade specialists such as Kingston, Evergreen Technologies and Improve-It Technologies. Some of the fastest CPU upgrade modules featured the IBM SLC/DLC family (notable for its 16 KB L1 cache), or even the Intel 486 itself. Many 386 upgrade kits were advertised as being simple drop-in replacements, but often required complicated software to control the cache or clock doubling. Part of the problem was that on most 386 motherboards, the A20 line was controlled entirely by the motherboard with the CPU being unaware, which caused problems on CPUs with internal caches.

Overall, it was very difficult to configure upgrades to produce the results advertised on the packaging, and upgrades were often not very stable or not fully compatible.

i386DX
Original version, released in October 1985. The 16 MHz version was available for 299 USD in quantities of 100. The 20 MHz version was available for US$599 in quantities of 100. The 33 Mhz version was available on April 10, 1989.
 * Capable of working with 16- or 32-bit external busses

 * Package: PGA-132 which was available in sampling for fourth quarter of 1985 or PQFP-132
 * Process: First types CHMOS III, 1.5 μm, later CHMOS IV, 1 μm
 * Die size: 104 mm2 (ca. 10 mm × 10 mm) in CHMOS III and 39 mm2 (6 mm × 6.5 mm) in CHMOS IV.
 * Transistor count: 275,000
 * Specified max clock: 12 MHz (early models), later 16, 20, 25 and 33 MHz

M80386
The military version was made using the CHMOS III process technology. It was made to withstand 105 Rads (Si) or greater. It was available for US$945 each in quantities of 100.

80386SX
In 1988, Intel introduced the 80386SX, most often referred to as the 386SX, a cut-down version of the 80386 with a 16-bit data bus, mainly intended for lower-cost PCs aimed at the home, educational, and small-business markets, while the 386DX remained the high-end variant used in workstations, servers, and other demanding tasks. The CPU remained fully 32-bit internally, but the 16-bit bus was intended to simplify circuit-board layout and reduce total cost. The 16-bit bus simplified designs but hampered performance. Only 24 pins were connected to the address bus, therefore limiting addressing to 16 MB, but this was not a critical constraint at the time. Performance differences were due not only to differing data-bus widths, but also due to performance-enhancing cache memories often employed on boards using the original chip. This version can run the 32-bit application software at 70 to 90 percent compare to the regular Intel386 DX CPU.

The original 80386 was subsequently renamed i386DX to avoid confusion. However, Intel subsequently used the "DX" suffix to refer to the floating-point capability of the i486DX. The 387SX was an 80387 part that was compatible with the 386SX (i.e. with a 16-bit databus). The 386SX was packaged in a surface-mount QFP and sometimes offered in a socket to allow for an upgrade.

The 16 MHz 386SX contains the 100-lead BQFP. It was available for USD $165 in quantites of 1000. It has the performance of 2.5 to 3 MIPS as well. The low-power version was available on April 10, 1989. This version that uses 20 to 30 percent less power and has higher operating temperature up to 100 °C than the regular version.

80386SL
The 80386SL was introduced as a power-efficient version for laptop computers. The processor offered several power-management options (e.g. SMM), as well as different "sleep" modes to conserve battery power. It also contained support for an external cache of 16 to 64 KB. The extra functions and circuit implementation techniques caused this variant to have over 3 times as many transistors as the i386DX. The i386SL was first available at 20 MHz clock speed, with the 25 MHz model later added. With this system, it reduced up to 40% foot space than the Intel386 SX system. That translate to lighter and more portable cost-effective system.

Dave Vannier, the chief architect designed this microprocessor. It took them two years to complete this design since it uses the existing 386 architecture to implement. That assist with advanced computer-aided design tools which includes a complete simulation of system board. This die contains the 386 CPU core, AT Bus Controller, Memory Controller, Internal Bus Controller, Cache Control Logic along with Cache Tag SRAM and Clock. This CPU contains 855,000 transistors using one-micron CHMOS IV technology. It was available for USD $176 in 1,000 unit in quantities. The 25-MHz version was available in samples for USD $189 in 1,000-piece quantities, but that version will be available in production by end of 1991. It supports up to 32 Megabytes of physical address space.

SnapIn 386
In May 1991, Intel introduced an upgrade for these IBM PS/2 Model 50 and 60 system which contains 80286 microprocessor converting to full blown 32-bit system. The SnapIn 386 module is a daughtercard with 20-MHz 386SX and 16-Kbyte direct-mapped cache SRAM memory. It directly plugs into the existing 286 socket with no cables, jumpers or switches. In the winter of 1992, an additional to this module now supported to IBM PS/2 Model 50Z, 30 386 and 25 286 system. Both modules were available for USD $495.

RapidCAD
A specially packaged Intel 486DX and a dummy floating-point unit (FPU) designed as pin-compatible replacements for an i386 processor and i387 FPU.

80376
This was an embedded version of the 80386SX which did not support real mode and paging in the MMU.

i386EX, i386EXTB and i386EXTC
System and power management and built in peripheral and support functions: Two 82C59A interrupt controllers; Timer, Counter (3 channels); Asynchronous SIO (2 channels); Synchronous SIO (1 channel); Watchdog timer (Hardware/Software); PIO. Usable with 80387SX or i387SL FPUs.
 * Data/address bus: 16 / 26 bits
 * Package: PQFP-132, SQFP-144 and PGA-168
 * Process: CHMOS V, 0.8 μm
 * Specified max clock:
 * i386EX: 16 MHz @2.7–3.3 volts or 20 MHz @3.0–3.6 volts or 25 MHz @4.5–5.5 volts
 * i386EXTB: 20 MHz @2.7–3.6 volts or 25 MHz @3.0–3.6 volts
 * i386EXTC: 25 MHz @4.5–5.5 volts or 33 MHz @4.5–5.5 volts

i386CXSA and i386SXSA (or i386SXTA)
Transparent power management mode, integrated MMU and TTL compatible inputs (only 386SXSA). Usable with i387SX or i387SL FPUs.
 * Data/address bus: 16 / 26 bits (24 bits for i386SXSA)
 * Package: BQFP-100
 * Voltage: 4.5–5.5 volts (25 and 33 MHz); 4.75–5.25 volts (40 MHz)
 * Process: CHMOS V, 0.8 μm
 * Specified max clock: 25, 33, 40 MHz

i386CXSB
Transparent power management mode and integrated MMU. Usable with i387SX or i387SL FPUs.
 * Data/address bus: 16 / 26 bits
 * Package: BQFP-100
 * Voltage: 3.0 volts (16 MHz) or 3.3 volts (25 MHz)
 * Process: CHMOS V, 0.8 μm
 * Specified max clock: 16, 25 MHz

Obsolescence
Windows 95 was the only entry in the Windows 9x series to officially support the 386, requiring at least a 386DX, though a 486 or better was recommended; Windows 98 requires a 486DX or higher. In the Windows NT family, Windows NT 3.51 was the last version with 386 support.

Debian GNU/Linux dropped 386 support with the release of 3.1 (Sarge) in 2005 and completely removed support in 2007 with 4.0 (Etch). Citing the maintenance burden around SMP primitives, the Linux kernel developers cut support from the development codebase in December 2012, later released as kernel version 3.8.

Among the BSDs, FreeBSD's 5.x releases were the last to support the 386; support for the 386SX was cut with release 5.2, while the remaining 386 support was removed with the 6.0 release in 2005. OpenBSD removed 386 support with version 4.2 (2007), DragonFly BSD with release 1.12 (2008), and NetBSD with the 5.0 release (2009).

title: I386


text:
Talk:Ido

older comments
I've heard significantly different story about Ido from Esperantists. --Taw

I think the links were better embedded into the material rather than being listed at the end. Is there a Wikipedia policy on this? --Chuck Smith

Agreement of adjectives and the accusative ending were not simply eliminated as redundant, they were traded for free word order. If you have free word order, you need markers to tell what function each word has in the sentence. Once you impose a rigid word order (as in modern English), then these markers become redundant. Also, I would add that, in constrast to Esperanto-speakers who "attack" Ido, there are Esperanto-speakers who prefer Ido but would rather stick with the momentum and support Esperanto as an international language. -- Quark

Resistance to language change
Did Zamenhof really reject changes to Esperanto? I had read that he preferred to let the Esperanto community decide on changes. It was a biased source, though. cprompt

 * To my knowledge, you are correct. The community saw that most of the reforms made the language more European and less international.  Every change has its advantages and disadvantages, so they decided to reject them.  I tried to edit the article, but then decided not to because I can't do it NPOV... if you could edit it accordingly, I would appreciate it.  --Chuck SMITH

I'll give it a try. --cprompt

Ido template
Template:Ido has been created from the Esperanto one - it needs to be pruned somewhat but afterwards it could be put on the bottom of every page.

Infinitive?
Where did the three infinitives come from for the table? According to this page, there's only one, the "-ar" ending. If this is not the case, then I think that two things are in order: (1) an external citation, and (2) a brief explanation between the differences in use between the three. Anyone?

Criticism
Just a note that I don't see anywhere in the article any sort of criticism section. Esperanto has one, and since this is also a constructed language I would imagine that not everyone is pleased with every aspect of it. Sevey13 (talk) 00:26, 17 January 2010 (UTC)

Comparison with Esperanto
Two items on the existing list comparing Esperanto and Ido do not seem to be differences and I recommend that they be moved from the list as I can see that this article will be consulted to try to identify such differences. The two items are:

 * Ido imposes consistent rules on the use of endings to transform a word from one meaning or part of speech to another... (Esperanto does this also).

 * Ido's vocabulary attempts to use cognates ... (As with Ido, Esperanto derives most of its roots from the European languages  -- while in a few cases different choices are made with Ido, there does not seem to be a significant enough advantagage to one choice over another to justify this being identified as a real difference.)

If others don't disagree with these differences, I will move these items to other parts of the article since they don't seem to be differences.

--Gary Anderson (talk) 10:35, 3 March 2010 (UTC)

requst to translation from " Hebrew " and " English "
hi to all,

I wanted to ask if you can translate the following articles to ido :

1 - " גלידה מסטיק " => (hebrew wikipedia)

2 - " Mastic (resin plant) " => (english wikipedia)

3 - " Mastichochoria " => (english wikipedia)

thank you, burekas (talk) 14:33, 10 March 2010 (UTC)

Pronunciation
According to the pronunciation section, and what I know about the language, the pronunciation should be a simple /ˈido/, rather than /ˈiːdoʊ/. Maybe the second is the English pronunciation, so both should be added. N4m3 (talk) 21:55, 23 May 2012 (UTC)

English alphabet or Latin alphabet?
This article says that Ido uses the same 26 letters as those in the English alphabet, but should it not say Latin alphabet,which is more commonly used term for this alphabet?ACEOREVIVED (talk) 16:52, 11 February 2013 (UTC)

 * "Latin alphabet" would be a bit of a misnomer because the Latin alphabet did not include the letters J, U, or W. But if we say "English alphabet" then everyone knows exactly what is meant. —Remember the dot (talk) 01:15, 12 February 2013 (UTC)

New statistics; native speakers
The figure of a couple of hundred speakers is outdated, being from 2000. I think this should be retained as it probably marks a "bottleneck population"; more or less, survivors of the pre-internet movement just before the internet was able to repopularize Ido. But, new figures would be useful. Also, are there any native Ido speakers? (There are native Esperanto speakers, and I think it's significant whether or not anyone has learned a language in the manner used by children acquiring native ability.) Roches (talk) 11:47, 3 May 2015 (UTC)

Discrepancies between clip of "Lord's Prayer" and Ido transcription
The audio file of the Ido recitation of the "Lord's Prayer" clearly uses some different words than are given in the typed-up Ido version. Are you sure the clip is really in Ido? If it is, what explains the discrepancies, and should the transcription not be changed accordingly? Ikan Kekek (talk) 13:36, 30 January 2016 (UTC)

 * The clip is really in Ido. Evidently someone changed the text since the clip was added, causing the discrepancy. I've restored the original text. —Granger (talk · contribs) 15:35, 30 January 2016 (UTC)

 * Excellent. Thank you. Ikan Kekek (talk) 09:21, 1 February 2016 (UTC)

Origin
The article said
 * Ido was created in 1907 out of a desire to reform perceived flaws in Esperanto, a language that had been created for the same purpose 20 years earlier.

Esperanto was not created "to reform perceived flaws in Esperanto", which is circular and absurd. It was created to facilitate international communication, and I have changed the text to say so. I have also linked "Esperanto", which, very strangely, was not linked. --Thnidu (talk) 21:34, 12 September 2017 (UTC)

"ایدو" listed at Redirects for discussion
A discussion is taking place to address the redirect ایدو. The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. Soumya-8974 talk contribs subpages 06:12, 22 June 2020 (UTC)

"Ido de Esperanto" listed at Redirects for discussion
A discussion is taking place to address the redirect Ido de Esperanto. The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. Soumya-8974 talk contribs subpages 06:13, 22 June 2020 (UTC)

"Ido alphabet" listed at Redirects for discussion
A discussion is taking place to address the redirect Ido alphabet. The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. Soumya-8974 talk contribs subpages 06:15, 22 June 2020 (UTC)

"Ido (language)" listed at Redirects for discussion
A discussion is taking place to address the redirect Ido (language). The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. Soumya-8974 talk contribs subpages 06:17, 22 June 2020 (UTC)

"IDO (disambiguation)" listed at Redirects for discussion
A discussion is taking place to address the redirect IDO (disambiguation). The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. Soumya-8974 talk contribs subpages 06:18, 22 June 2020 (UTC)

"ایدو" listed at Redirects for discussion
A discussion is taking place to address the redirect ایدو. The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion. Soumya-8974 talk contribs subpages 06:20, 22 June 2020 (UTC)

"Ido (language)" listed at Redirects for discussion
A discussion is taking place to address the redirect Ido (language). The discussion will occur at Redirects for discussion/Log/2020 June 22 until a consensus is reached, and readers of this page are welcome to contribute to the discussion.  Puzzledvegetable Is it teatime already?  13:50, 22 June 2020 (UTC)

Ido is the most successful Esperantido.
Hey User:CritiquesCritics, you recently edited the page to remove a sentence saying Ido is the most successful Esperanto derivative, on the basis that it is incorrect since Ido has many less speakers than Esperanto. This is incorrect: Esperanto is not a derivative of Esperanto, so it's number of speakers is here irrelevant in relation to Ido's; the sentence here is saying it is the most successful Esperanto derivative, not the most successful international auxilliary language. Therefore, I've undone your change: if you disagree, you're welcome to respond here. Frzzl (talk) 22:37, 30 August 2022 (UTC)

"In 2020, Ido had 24 native speakers in Finland."
Ðis seems like a weird fact to include, especially since it apparently needs better citations. Why is Finland in particular mentioned? IndigoGollum (talk) 03:44, 30 September 2023 (UTC)

 * Likely because it's the only concrete example of Ido natives we have - I can't find any estimates for them globally, but it's important to acknowledge that there are native speakers in the lead (although it could certainly be better phrased) 08:05, 30 September 2023 (UTC)

backronym?
I have sometimes seen a statement that Ido – besides meaning ‘descendant’ – is an acronym from Linguo Internaciona di la Delegitaro. Which came first? —Tamfang (talk) 03:35, 17 October 2023 (UTC)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Talk:Ido


text:
Instruction register

In computing, the instruction register (IR) or current instruction register (CIR) is the part of a CPU's control unit that holds the instruction currently being executed or decoded. In simple processors, each instruction to be executed is loaded into the instruction register, which holds it while it is decoded, prepared and ultimately executed, which can take several steps.

Some of the complicated processors use a pipeline of instruction registers where each stage of the pipeline does part of the decoding, preparation or execution and then passes it to the next stage for its step. Modern processors can even do some of the steps out of order as decoding on several instructions is done in parallel.

Decoding the op-code in the instruction register includes determining the instruction, determining where its operands are in memory, retrieving the operands from memory, allocating processor resources to execute the command (in super scalar processors), etc.

The output of the IR is available to control circuits, which generate the timing signals that control the various processing elements involved in executing the instruction.

In the instruction cycle, the instruction is loaded into the instruction register after the processor fetches it from the memory location pointed to by the program counter.

title: Instruction register


text:
Lists of islands

This is a list of the lists of islands in the world grouped by country, by continent, by body of water, and by other classifications. For rank-order lists, see the other lists of islands below.

Africa
• Ascension Island (United Kingdom)

• Algeria

• Angola

• British Indian Ocean Territory (United Kingdom)

• Cape Verde

• Comoros

• Djibouti

• Equatorial Guinea

• Eritrea

• Ethiopia

• Guinea Bissau

• Madagascar

• Malawi

• Mayotte (France)

• Namibia

• Nigeria

• Saint Helena (United Kingdom)

• São Tomé and Príncipe

• Senegal

• Seychelles

• South Africa

• Tanzania

• Tristan da Cunha (United Kingdom)

Antarctica
• British Antarctic Territory

• NZ Subantarctic Islands (New Zealand)

Asia
• Azerbaijan

• Bahrain

• Bangladesh

• Brunei

• Cambodia

• China

• Cyprus

• East Timor

• Hong Kong

• India

• Indonesia

• Iran

• Iraq

• Japan

• North Korea

• South Korea

• Kuwait

• Macau

• Malaysia

• Maldives

• Myanmar

• Pakistan

• Philippines

• Qatar

• Saudi Arabia

• Singapore

• Sri Lanka

• Syria

• Taiwan

• Thailand

• Turkey

• United Arab Emirates

• Vietnam

Europe
• Albania

• Bulgaria

• Croatia

• Denmark

• Estonia

• Faroe Islands (Denmark)

• Finland

• France

• Germany

• Greece

• Guernsey (United Kingdom)

• Hungary

• Iceland

• Republic of Ireland (inland islands)

• Isle of Man (United Kingdom)

• Italy

• Jersey (United Kingdom)

• Latvia

• Lithuania

• Malta

• Montenegro

• Netherlands

• North Macedonia

• Norway

• Poland

• Portugal

• Romania

• Russia

• Serbia

• Slovakia

• Slovenia

• Spain

• Sweden

• Switzerland

• Ukraine

• United Kingdom

• *England

• *Northern Ireland

• *Scotland

• *Wales

North America
• Anguilla (United Kingdom)

• Belize

• Bermuda (United Kingdom)

• British Virgin Islands (United Kingdom)

• Canada

• Cayman Islands (United Kingdom)

• Costa Rica

• Cuba

• Dominican Republic

• El Salvador

• Greenland (Denmark)

• Guatemala

• Haiti

• Honduras

• Jamaica

• Mexico

• Montserrat (United Kingdom)

• Nicaragua

• Panama

• Turks and Caicos Islands (United Kingdom)

• United States (by area)

Oceania
• American Samoa (United States)

• Australia

• Fiji

• Kiribati

• Marshall Islands

• Micronesia, Federated States of

• Nauru

• New Caledonia (France)

• New Zealand (outlying islands)

• Palau

• Papua New Guinea

• Pitcairn Islands (United Kingdom)

• Samoa

• Solomon Islands

• Tonga

South America
• Argentina

• Bolivia

• Brazil

• Chile

• Colombia

• Ecuador

• Falkland Islands (United Kingdom)

• French Guiana (France)

• Guyana

• Paraguay

• Peru

• South Georgia and the South Sandwich Islands (United Kingdom)

• Suriname

• Trinidad and Tobago

• Uruguay

• Venezuela

Lists of islands by continent
• Africa

• Americas

• *North America

• **Caribbean

• **Central America

• *South America

• Antarctica

• Asia

• Europe

• *European islands by area

• *European islands by population

• Oceania

• *Australia

• *New Zealand

Lists of islands by body of water
By ocean:

• Arctic Ocean

• Atlantic Ocean

• *Baltic Sea

• *Black Sea

• *Caribbean Sea

• *Irish Sea

• *Mediterranean Sea

• **Adriatic Sea

• **Aegean Sea

• **Ionian Sea

• Indian Ocean

• *Persian Gulf

• Pacific Ocean

• *East China Sea

• *South China Sea

• Southern Ocean

By other bodies of water:

• Lake islands

• *Great Lakes (North America)

• River islands

• *Danube River (Europe)

List of ancient islands
• Afro-Eurasia (the World Island)

• America (the New World)

• Antarctica (the Frozen World)

• Australia (the land Down Under)

• Doggerland

• Emperor Seamounts (?) (Pacific, extension of Hawaiian Islands)

• Ile Du Sud- African Banks (in the Amirantes)

• Insular Islands, Pacific

• Intermontane Islands, Pacific

• Majority of granitic Seychelles, which were remnants of India splitting from Africa to form Madagascar.

• Majority of the Great Chagos Bank

• Nazareth Bank

• Owen Bank, Chagos Arch., submerged atoll

• Owen Bank (Seychelles) (not to be confused with Chagos atoll)

• Saya de Malha, Formerly largest Mascarene Island

• Soudan, Mascarenes

• The ancient volcanic island of Cargados Carajos, which sank to a coral atoll

• The majority of the Alphonse Atoll, Seychelles

• Thorpe Bank, Seychelles

• Topaze Bank, Seychelles

• Walters Shoals, just south of Madagascar, was once a large tropical island.

• Zealandia (the Antipodes)

Other lists of islands
• Body of water

• Landmass

• List of archipelagos

• List of archipelagos by number of islands

• List of artificial islands

• List of countries by number of islands

• List of divided islands

• List of fictional islands

• List of island countries

• List of islands by area

• List of islands by highest point

• List of islands by name

• List of islands by population

• List of islands by population density

• List of islands in lakes

• List of islands named after people

• List of islands of Europe

• List of new islands

• List of phantom islands

• List of private islands

• List of tallest lake islands

• Recursive islands and lakes

title: Lists of islands


text:
Talk:Lists of islands

Old comments
We've left off Hawaii, Oahu, Maui, etc. I'd add them but I have to be off to bed. --KQ

I'm sure we've left off most islands. But it's a work in progress. - Tim

The list of islands by region will differ from any list of islands by country. Hawaii, for example, is under Pacific, separated from its compatriot islands under North America. So long as it is a list by region, this is how it should be done. - Tim - This page concerns me for the simple reason that there are millions of islands in the world... we could never hope to list them all. -- SJK

Is Australia itself regarded as an island (in which case wouldn't it be the largest?), or is it a continental land mass? -- DrBob

 * It's generally regarded as a continent (if you read the Wikipedia entry for Australia, you'll see it described as such), though AFAICT such division are basically arbitrary. --Robert Merkel

 * According to a very authoritative source (my junior high geography teacher), Australia is both a continent and the world's largest island. I'll see if I can find some even more authoritative sources to back that up... :) --Stephen Gilbert

 * If you look at the island/continent issue from the viewpoint of continental drift, it's easy to tell whether a landmass is an island or a continent. Islands are either seamounts, (Hawaii, Iceland) or they are the landmasses associated with a continental plate except for the largest landmass.  The largest landmass on a plate, of course, is designated as the continent for that continental plate.  I doubt that this is an official rule, but it is a logical one.  If you use it, you can see that Greenland is an island but Australia is a continent.  -- Derek Ross

 * Shouldn't Iceland be listed in Atlantic Ocean instead of Europe? Also, many islands are neither seamounts (which are associated with mantle hotspots) nor clearly on one continental plates: island arcs form at the edges where two plates are coming together. The Aleutians and Japan, for example, are at the margins between the North American and Pacific plates. The former are generally associated with North America and Asia (though the plate boundary is well to the west of the Aleutians) and the latter with Asia, because we mostly define things by land masses, ignoring encroaching seas. --Vicki Rosenzweig

-
 * How about a page for fictional islands? eg

-- Anon
 * Craggy island (Father Ted)
 * Tracey island (Thunderbirds)
 * Lincoln Island (Jules Verne)
 * Sounds great to me! Just be careful to only include fictional islands that you can say more than a line about. --maveric149

-
 * When I clicked on this link I expected to read an article on the "Islands of the world". However, this entry isn't an acticle, it is just a list. How about a name change to List of islands? That way it is OK to have the plural title (thus avoiding violation of the anti-pluralization wikipedia naming convention for articles) and the title makes clear that the content in it is just a list. --maveric149

 * Moved. --mav 12:41 Aug 8, 2002 (PDT)
 * What kind of an article other than a list would one make about "Islands of the world"? A travel guide? --Brion VIBBER

- Should we really be listing artificial islands here? I'm thinking of Sealand which is no different phyically than thousands of other off-shore rigs. --mav

What order are the islands within regions in, please? -- isis 30 Aug 2002

- This page can become a monster of a page if it isn't split. Only in Sweden for example there are hundreds of islands. I propose a separate listing for each nation and each ocean. These can be linked from this page and from the page of each nation. I try this idea by moving the islands of Sweden (my home country) to a separate page (Islands of Sweden). Is this the right way to do it? Feb 2003 /RN

I now read that only Sweden has 221800 islands also counting islets. (Source SCB) I now know that we HAVE to split this article. /RN

Thinking of it from the reader's point of view, it's helpful to have a single list of more important islands, including ones like Gotland, and to leave the less important ones, such as Brommo, to the List of Obscure Islands of Sweden. :-) The choice has to be a little subjective, but for instance Gotland is easy to justify because it comes up in many contexts (history, vacation spots, etc), some not obviously connected to Sweden. Stan Shebs 17:19 Feb 10, 2003 (UTC)

The size of this list will not be too bad as long as it contains islands that would have an article of their on in Wikipedia anyway? Surely, no one would be expecting 221800 obscure Swedish isles to be listed in Wikipedia. I'm guessing that a handfull of them warrants an article. -- Egil 05:35 Feb 14, 2003 (UTC)

Ok. I see your point. I guess then that at least all inhabited islands are justified to be on the list and then all uninhabited islands of interest. RN

Madagascar should be Indian Ocean, Kerguelen should be Southern Ocean, and no doubt others should be reclassified too. PML.

A downside of the breakup is that if you have a vague idea of the name, you can't just scan the page. At some point there should be an alphabetical list too, but it can wait until we have category tags to help construct/maintain. Stan 14:00, 28 Sep 2003 (UTC)

 * An long A-Z list of island names would be nice indeed. I created the category List of islands by name. Brz7

I added the name Walters Shoals, a former island just south of Madagascar. Somebody thought it was unnamed, and it isn't. Well, I assume the entry refers to Walters Shoals.

99.9.112.31 (talk) 02:12, 21 March 2011 (UTC)NotWillDecker

New Discussion
A discussion has been started at Wikipedia talk:WikiProject Countries/Lists of countries which could affect the inclusion criteria and title of this and other lists of countries. Editors are invited to participate. Pfainuk talk 13:37, 17 December 2008 (UTC)

Technical problems?
When I click on "Asia" in order to see a list of islands in Asia, I just get the List of Islands page coming right back at me. Bad spelling is the reason. Kdammers (talk) 10:13, 30 July 2010 (UTC)

Page move
I suggest we move this to Lists of islands. Anna Frodesiak (talk) 21:03, 23 December 2015 (UTC)

✅, thanks to User:Beland. Anna Frodesiak (talk) 02:48, 13 July 2016 (UTC)

There are some things here that ought to be OBVIOUS and simple to find !!
There are some things here that ought to be OBVIOUS and simple to find !!

List of islands by size List of islands by population Why is it that in the Wikipedia, so many listings like this leave off the most obvious things? These are far more important that things like List of islands of El Salvador. You might as well have List of islands of San Marino. — Preceding unsigned comment added by 24.121.195.165 (talk) 05:09, 20 June 2018 (UTC)

title: Talk:Lists of islands


text:
INTERCAL

The Compiler Language With No Pronounceable Acronym (INTERCAL) is an esoteric programming language that was created as a parody by Don Woods and James M. Lyon, two Princeton University students, in 1972. It satirizes aspects of the various programming languages at the time, as well as the proliferation of proposed language constructs and notations in the 1960s.

There are two maintained implementations of INTERCAL dialects: C-INTERCAL (created in 1990), maintained by Eric S. Raymond and Alex Smith, and CLC-INTERCAL, maintained by Claudio Calvelli.

History
According to the original manual by the authors,

"The full name of the compiler is 'Compiler Language With No Pronounceable Acronym', which is, for obvious reasons, abbreviated 'INTERCAL'."

The original Princeton implementation used punched cards and the EBCDIC character set. To allow INTERCAL to run on computers using ASCII, substitutions for two characters had to be made:  substituted for   as the mingle operator, "represent[ing] the increasing cost of software in relation to hardware", and   was substituted for   as the unary exclusive-or operator to "correctly express the average person's reaction on first encountering exclusive-or". In recent versions of C-INTERCAL, the older operators are supported as alternatives; INTERCAL programs may now be encoded in ASCII, Latin-1, or UTF-8.

Version numbers
C-INTERCAL swaps the major and minor version numbers, compared to tradition. The HISTORY file shows releases starting at version 0.3 and having progressed to 0.31, but containing 1.26 between 0.26 and 0.27.

CLC-INTERCAL version numbering scheme was traditional until version 0.06, when it changed to the scheme documented in the README file, which says:

* The term "version" has been replaced by "perversion" for correctness

* The perversion number consists of a floating-point number with independent signs for the integer and fractional part. Negative fractions indicate pre-escapes (so 1.-94 means "94 pre-escapes to   go before 1.00". Or you can just add the numbers together and get    0.06, which is entirely a coincidence since 0.06 is not being    developed)

* The fractional part of a perversion number can be integer or floating point, with a similar meaning for the parts. The current pre-escape is   1.-94.-2 which means "2 pre-pre-escapes to go before pre-escape 1.-94".

Details
INTERCAL was intended to be completely different from all other computer languages. Common operations in other languages have cryptic and redundant syntax in INTERCAL. From the INTERCAL Reference Manual:

"It is a well-known and oft-demonstrated fact that a person whose work is incomprehensible is held in high esteem. For example, if one were to state that the simplest way to store a value of 65536 in a 32-bit INTERCAL variable is:

any sensible programmer would say that that was absurd. Since this is indeed the simplest method, the programmer would be made to look foolish in front of his boss, who would of course happen to turn up, as bosses are expected to do. The effect would be no less devastating for the programmer having been correct."

INTERCAL has many other features designed to make it even more aesthetically unpleasing to the programmer: it uses statements such as "READ OUT", "IGNORE", "FORGET", and modifiers such as "PLEASE". This last keyword provides two reasons for the program's rejection by the compiler: if "PLEASE" does not appear often enough, the program is considered insufficiently polite, and the error message says this; if it appears too often, the program could be rejected as excessively polite. Although this feature existed in the original INTERCAL compiler, it was undocumented.

Despite the language's intentionally obtuse and wordy syntax, INTERCAL is nevertheless Turing-complete: given enough memory, INTERCAL can solve any problem that a Universal Turing machine can solve. Most implementations of INTERCAL do this very slowly, however. A Sieve of Eratosthenes benchmark, computing all prime numbers less than 65536, was tested on a Sun SPARCstation 1 in 1992. In C, it took less than half a second; the same program in INTERCAL took over seventeen hours.

Documentation
The INTERCAL Reference Manual contains many paradoxical, nonsensical, or otherwise humorous instructions:

"Caution! Under no circumstances confuse the mesh with the interleave operator, except under confusing circumstances!"

The manual also contains a "tonsil", as explained in this footnote: "4) Since all other reference manuals have appendices, it was decided that the INTERCAL manual should contain some other type of removable organ."

The INTERCAL manual gives unusual names to all non-alphanumeric ASCII characters: single and double quotes are 'sparks' and "rabbit ears" respectively. (The exception is the ampersand: as the Jargon File states, "what could be sillier?") The assignment operator, represented as an equals sign (INTERCAL's "half mesh") in many other programming languages, is in INTERCAL a left-arrow,, made up of an "angle" and a "worm", obviously read as "gets".

Syntax
Input (using the  instruction) and output (using the   instruction) do not use the usual formats; in INTERCAL-72, WRITE IN inputs a number written out as digits in English (such as SIX FIVE FIVE THREE FIVE), and READ OUT outputs it in "butchered" Roman numerals. More recent versions have their own I/O systems.

Comments can be achieved by using the inverted statement identifiers involving NOT or N'T; these cause lines to be initially ABSTAINed from so that they have no effect. (A line can be ABSTAINed from even if it doesn't have valid syntax; syntax errors happen at runtime, and only then when the line is un-ABSTAINed.)

Data structures
INTERCAL-72 (the original version of INTERCAL) had only four data types: the 16-bit integer (represented with a, called a "spot"), the 32-bit integer ( , a "twospot"), the array of 16-bit integers ( , a "tail"), and the array of 32-bit integers ( , a "hybrid"). There are 65535 available variables of each type, numbered from  to   for 16-bit integers, for instance. However, each of these variables has its own stack on which it can be pushed and popped (STASHed and RETRIEVEd, in INTERCAL terminology), increasing the possible complexity of data structures. More modern versions of INTERCAL have by and large kept the same data structures, with appropriate modifications; TriINTERCAL, which modifies the radix with which numbers are represented, can use a 10-trit type rather than a 16-bit type, and CLC-INTERCAL implements many of its own data structures, such as "classes and lectures", by making the basic data types store more information rather than adding new types. Arrays are dimensioned by assigning to them as if they were a scalar variable. Constants can also be used, and are represented by a  ("mesh") followed by the constant itself, written as a decimal number; only integer constants from 0 to 65535 are supported.

Operators
There are only five operators in INTERCAL-72. Implementations vary in which characters represent which operation, and many accept more than one character, so more than one possibility is given for many of the operators.

Contrary to most other languages, AND, OR, and XOR are unary operators, which work on consecutive bits of their argument; the most significant bit of the result is the operator applied to the least significant and most significant bits of the input, the second-most-significant bit of the result is the operator applied to the most and second-most significant bits, the third-most-significant bit of the result is the operator applied to the second-most and third-most bits, and so on. The operator is placed between the punctuation mark specifying a variable name or constant and the number that specifies which variable it is, or just inside grouping marks (i.e. one character later than it would be in programming languages like C.) SELECT and INTERLEAVE (which is also known as MINGLE) are infix binary operators; SELECT takes the bits of its first operand that correspond to "1" bits of its second operand and removes the bits that correspond to "0" bits, shifting towards the least significant bit and padding with zeroes (so 51 (110011 in binary) SELECT 21 (10101 in binary) is 5 (101 in binary)); MINGLE alternates bits from its first and second operands (in such a way that the least significant bit of its second operand is the least significant bit of the result). There is no operator precedence; grouping marks must be used to disambiguate the precedence where it would otherwise be ambiguous (the grouping marks available are  ("spark"), which matches another spark, and   ("rabbit ears"), which matches another rabbit ears; the programmer is responsible for using these in such a way that they make the expression unambiguous).

Control structures
INTERCAL statements all start with a "statement identifier"; in INTERCAL-72, this can be,  , or  , all of which mean the same to the program (but using one of these too heavily causes the program to be rejected, an undocumented feature in INTERCAL-72 that was mentioned in the C-INTERCAL manual), or an inverted form (with   or   appended to the identifier). Backtracking INTERCAL, a modern variant, also allows variants using  (possibly combined with PLEASE or DO) as a statement identifier, which introduces a choice-point. Before the identifier, an optional line number (an integer enclosed in parentheses) can be given; after the identifier, a percent chance of the line executing can be given in the format, which defaults to 100%.

In INTERCAL-72, the main control structures are NEXT, RESUME, and FORGET. branches to the line specified, remembering the next line that would be executed if it weren't for the NEXT on a call stack (other identifiers than DO can be used on any statement, DO is given as an example);  removes expression entries from the top of the call stack (this is useful to avoid the error that otherwise happens when there are more than 80 entries), and   removes expression entries from the call stack and jumps to the last line remembered.

C-INTERCAL also provides the COME FROM instruction, written ; CLC-INTERCAL and the most recent C-INTERCAL versions also provide computed COME FROM (  and NEXT FROM, which is like COME FROM but also saves a return address on the NEXT STACK.

Alternative ways to affect program flow, originally available in INTERCAL-72, are to use the IGNORE and REMEMBER instructions on variables (which cause writes to the variable to be silently ignored and to take effect again, so that instructions can be disabled by causing them to have no effect), and the ABSTAIN and REINSTATE instructions on lines or on types of statement, causing the lines to have no effect or to have an effect again respectively.

Hello, world
The traditional "Hello, world!" program demonstrates how different INTERCAL is from standard programming languages. In C, it could read as follows:

The equivalent program in C-INTERCAL is longer and harder to read:

Dialects
The original Woods–Lyon INTERCAL was very limited in its input/output capabilities: the only acceptable input were numbers with the digits spelled out, and the only output was an extended version of Roman numerals.

The C-INTERCAL reimplementation, being available on the Internet, has made the language more popular with devotees of esoteric programming languages. The C-INTERCAL dialect has a few differences from original INTERCAL and introduced a few new features, such as a COME FROM statement and a means of doing text I/O based on the Turing Text Model.

The authors of C-INTERCAL also created the TriINTERCAL variant, based on the Ternary numeral system and generalizing INTERCAL's set of operators.

A more recent variant is Threaded Intercal, which extends the functionality of COME FROM to support multithreading.

CLC-INTERCAL has a library called INTERNET for networking functionality including being an INTERCAL server, and also includes features such as Quantum Intercal, which enables multi-value calculations in a way purportedly ready for the first quantum computers. In early 2017 a .NET Implementation targeting the .NET Framework appeared on GitHub. This implementation supports the creation of standalone binary libraries and interop with other programming languages.

Impact and discussion
In the article "A Box, Darkly: Obfuscation, Weird Languages, and Code Aesthetics", INTERCAL is described under the heading "Abandon all sanity, ye who enter here: INTERCAL". The compiler and commenting strategy are among the "weird" features described:

"The compiler, appropriately named "ick", continues the parody. Anything the compiler can't understand, which in a normal language would result in a compilation error, is just skipped. This "forgiving" feature makes finding bugs very difficult; it also introduces a unique system for adding program comments. The programmer merely inserts non-compileable text anywhere in the program, being careful not to accidentally embed a bit of valid code in the middle of their comment."

In "Technomasochism", Lev Bratishenko characterizes the INTERCAL compiler as a dominatrix: "If PLEASE was not encountered often enough, the program would be rejected; that is, ignored without explanation by the compiler. Too often and it would still be rejected, this time for sniveling. Combined with other words that are rarely used in programming languages but appear as statements in INTERCAL, the code reads like someone pleading."

In popular culture
The Nitrome Enjoyment System, a fictional video game console created by British indie game developer Nitrome, has games which are programmed in INTERCAL.

title: INTERCAL


text:
International Data Encryption Algorithm

In cryptography, the International Data Encryption Algorithm (IDEA), originally called Improved Proposed Encryption Standard (IPES), is a symmetric-key block cipher designed by James Massey of ETH Zurich and Xuejia Lai and was first described in 1991. The algorithm was intended as a replacement for the Data Encryption Standard (DES). IDEA is a minor revision of an earlier cipher, the Proposed Encryption Standard (PES).

The cipher was designed under a research contract with the Hasler Foundation, which became part of Ascom-Tech AG. The cipher was patented in a number of countries but was freely available for non-commercial use. The name "IDEA" is also a trademark. The last patents expired in 2012, and IDEA is now patent-free and thus completely free for all uses.

IDEA was used in Pretty Good Privacy (PGP) v2.0 and was incorporated after the original cipher used in v1.0, BassOmatic, was found to be insecure. IDEA is an optional algorithm in the OpenPGP standard.

Operation
IDEA operates on 64-bit blocks using a 128-bit key and consists of a series of 8 identical transformations (a round, see the illustration) and an output transformation (the half-round). The processes for encryption and decryption are similar. IDEA derives much of its security by interleaving operations from different groups — modular addition and multiplication, and bitwise eXclusive OR (XOR) — which are algebraically "incompatible" in some sense. In more detail, these operators, which all deal with 16-bit quantities, are:
 * Bitwise XOR (exclusive OR) (denoted with a blue circled plus   ).
 * Addition modulo 216 (denoted with a green boxed plus   ).
 * Multiplication modulo 216 + 1, where the all-zero word (0x0000) in inputs is interpreted as 216, and 216 in output is interpreted as the all-zero word (0x0000) (denoted by a red circled dot   ).

After the 8 rounds comes a final “half-round”, the output transformation illustrated below (the swap of the middle two values cancels out the swap at the end of the last round, so that there is no net swap):
 * [[Image:International Data Encryption Algorithm InfoBox Diagram Output Trans.png|300px]]

Structure
The overall structure of IDEA follows the Lai–Massey scheme. XOR is used for both subtraction and addition. IDEA uses a key-dependent half-round function. To work with 16-bit words (meaning 4 inputs instead of 2 for the 64-bit block size), IDEA uses the Lai–Massey scheme twice in parallel, with the two parallel round functions being interwoven with each other. To ensure sufficient diffusion, two of the sub-blocks are swapped after each round.

Key schedule
Each round uses 6 16-bit sub-keys, while the half-round uses 4, a total of 52 for 8.5 rounds. The first 8 sub-keys are extracted directly from the key, with K1 from the first round being the lower 16 bits; further groups of 8 keys are created by rotating the main key left 25 bits between each group of 8. This means that it is rotated less than once per round, on average, for a total of 6 rotations.

Decryption
Decryption works like encryption, but the order of the round keys is inverted, and the subkeys for the odd rounds are inversed. For instance, the values of subkeys K1–K4 are replaced by the inverse of K49–K52 for the respective group operation, K5 and K6 of each group should be replaced by K47 and K48 for decryption.

Security
The designers analysed IDEA to measure its strength against differential cryptanalysis and concluded that it is immune under certain assumptions. No successful linear or algebraic weaknesses have been reported. , the best attack applied to all keys could break IDEA reduced to 6 rounds (the full IDEA cipher uses 8.5 rounds). Note that a "break" is any attack that requires less than 2128 operations; the 6-round attack requires 264 known plaintexts and 2126.8 operations.

Bruce Schneier thought highly of IDEA in 1996, writing: "In my opinion, it is the best and most secure block algorithm available to the public at this time." (Applied Cryptography, 2nd ed.) However, by 1999 he was no longer recommending IDEA due to the availability of faster algorithms, some progress in its cryptanalysis, and the issue of patents.

In 2011 full 8.5-round IDEA was broken using a meet-in-the-middle attack. Independently in 2012, full 8.5-round IDEA was broken using a narrow-bicliques attack, with a reduction of cryptographic strength of about 2 bits, similar to the effect of the previous bicliques attack on AES; however, this attack does not threaten the security of IDEA in practice.

Weak keys
The very simple key schedule makes IDEA subject to a class of weak keys; some keys containing a large number of 0 bits produce weak encryption. These are of little concern in practice, being sufficiently rare that they are unnecessary to avoid explicitly when generating keys randomly. A simple fix was proposed: XORing each subkey with a 16-bit constant, such as 0x0DAE.

Larger classes of weak keys were found in 2002.

This is still of negligible probability to be a concern to a randomly chosen key, and some of the problems are fixed by the constant XOR proposed earlier, but the paper is not certain if all of them are. A more comprehensive redesign of the IDEA key schedule may be desirable.

Availability
A patent application for IDEA was first filed in Switzerland (CH A 1690/90) on May 18, 1990, then an international patent application was filed under the Patent Cooperation Treaty on May 16, 1991. Patents were eventually granted in Austria, France, Germany, Italy, the Netherlands, Spain, Sweden, Switzerland, the United Kingdom, (, filed May 16, 1991, issued June 22, 1994 and expired May 16, 2011), the United States (, issued May 25, 1993 and expired January 7, 2012) and Japan (JP 3225440, expired May 16, 2011).

MediaCrypt AG is now offering a successor to IDEA and focuses on its new cipher (official release in May 2005) IDEA NXT, which was previously called FOX.

title: International Data Encryption Algorithm


text:
Indoor rower

An indoor rower, or rowing machine, is a machine used to simulate the action of watercraft rowing for the purpose of exercise or training for rowing. Modern indoor rowers are often known as ergometers (colloquially erg or ergo) because they measure work performed by the rower (which can be measured in ergs). Indoor rowing has become established as a sport, drawing a competitive environment from around the world. The term "indoor rower" also refers to a participant in this sport.

History
Chabrias, an Athenian admiral of the 4th century BC, introduced the first rowing machines as supplemental military training devices. "To train inexperienced oarsmen, Chabrias built wooden rowing frames onshore where beginners could learn technique and timing before they went onboard ship."

Early rowing machines are known to have existed from the mid-1800s, a US patent being issued to W.B. Curtis in 1872 for a particular hydraulic-based damper design. Machines using linear pneumatic resistance were common around 1900—one of the most popular was the Narragansett hydraulic rower, manufactured in Rhode Island from around 1900–1960.

In the 1970s, the Gjessing-Nilson ergometer from Norway used a friction brake mechanism with industrial strapping applied over the broad rim of the flywheel. Weights hanging from the strap ensured that an adjustable and predictable friction could be calculated.

The first air resistance ergometers were introduced around 1980 by Repco. In 1981, Peter and Richard Dreissigacker, and Jonathan Williams, filed for U.S. patent protection, as joint inventors of a "Stationary Rowing Unit". The first commercial embodiment of the Concept2 "rowing ergometer" was the Model A, a fixed-frame sliding-seat design using a bicycle wheel with fins attached for air resistance. The Model B, introduced in 1986, introduced a solid cast flywheel and the first digital performance monitor, which proved revolutionary. This machine's capability of accurate calibration combined with easy transportability spawned the sport of competitive indoor rowing, and revolutionised training and selection procedures for watercraft rowing. Later models were the C (1993) and D (2003).

In 1995, Casper Rekers, a Dutch engineer, was granted a U.S. patent for a (US 5382210A) "Dynamically Balanced Rowing Simulator". This device differed from the prior art in that the flywheel and footrests are fixed to a carriage, the carriage being free to slide fore and aft on a rail or rails integral to the frame. The seat is also free to slide fore and aft on a rail or rails integral to the frame.

Motion type
Modern indoor rowers have their resistance provided by a flywheel. Indoor rowers that utilise flywheel resistance can be categorised into two motion types. In both types, the rowing movement of the user causes the footrests and the seat to move further and closer apart in co-ordination with the user's stroke. The difference between the two types is in the movement, or absence of movement, of the footrests relative to ground.

The first type is characterised by the Dreissigacker/Williams device. With this type the flywheel and footrests are fixed to a stationary frame, and the seat is free to slide fore and aft on a rail or rails integral to the stationary frame. Therefore, during use, the seat moves relative to the footrests and also relative to ground, while the flywheel and footrests remain stationary relative to ground.

The second type is characterised by the Rekers device. With this type, both the seat and the footrests are free to slide fore and aft on a rail or rails integral to a stationary frame. Therefore, during use, the seat and the footrests move relative to each other, and both also move relative to ground.

Damper type
Piston resistance comes from hydraulic cylinders that are attached to the handles of the rowing machine.

Braked flywheel resistance models comprise magnetic, air, and water resistance rowers.

Magnetic resistance models control resistance by means of permanent magnets or electromagnets.

Air resistance models use vanes on the flywheel to provide the flywheel braking needed to generate resistance.

Water resistance models consist of a paddle revolving in an enclosed tank of water.

Dual Resistance Rower is a professional fitness equipment with fan and magnetic brake resistance for a variety of intensity levels from warm-ups to HIIT intervals.

Slides
Sometimes, slides are placed underneath the machine, which allows the machine to move back and forth smoothly as if there were water beneath the rower. The slides can be connected in rows or columns so that rowers are forced to move together on the ergometer, similarly to the way they would match up their rhythm in a boat.

Indoor rowers usually also display estimates of rowing boat speed and energy used by the athlete.

Exercise
Rowing is an example of a method of aerobic exercise, which has been observed to improve athletes' VO2 peak. Indoor rowing primarily works the cardiovascular systems with typical workouts consisting of steady pieces of 20–40 minutes.

The standard measurement of speed on an ergometer is generally known as the "split", or the amount of time in minutes and seconds required to travel 500 m at the current pace. Other standard measurement units on the indoor rowing machine include calories and watts.

Testing
Although ergometer tests are used by rowing coaches to evaluate rowers and are part of athlete selection for many senior and junior national rowing teams, data suggests that "physiological and performance tests performed on a rowing ergometer are not good indicators of on-water performance".

Some standard indoor rower ergometer tests include: 250 m ergometer test, 2000 m ergometer test, 5 km ergometer test, 16 km ergometer test and the 30-minute ergometer test.

Technique
Rowing on an ergometer requires four basic phases to complete one stroke; the catch, the drive, the finish and the recovery. The catch is the initial part of the stroke. The drive is where the power from the rower is generated while the finish is the final part of the stroke. Then, the recovery is the initial phase to begin taking a new stroke. The phases repeat until a time duration or a distance is completed. At each stage of the stroke the back should remain in a neutral, flat position, pivoting at the hips to avoid injury.

Catch
Knees are bent with the shins in a vertical position. The back should be roughly parallel to the thigh without hyperflexion (leaning forward too far). The arms and shoulders should be extended forward and relaxed. The arms should be level.

Drive
The drive is initiated by a push and extension of the legs; the body remains in the catch posture at this point of the drive. As the legs continue to full extension, the hip angle opens and the rower engages the core to begin the motion of the body levering backward, adding to the work of the legs. When the legs are fully extended, the rower begins to pull the handle toward the chest with their arms, completing the stroke with the handle half way up the body and the forearms parallel to the ground.

Finish (or release)
The legs are at full extension and flat. The shoulders are slightly behind the pelvis, and the arms are in full contraction with the elbows bent and hands against the chest below the nipples. The back of the rower is still maintained in an upright posture and wrists should be flat.

Recovery
The recovery is a slow slide back to the initial part of the stroke, it gives the rower time to recover from the previous stroke. During the recovery the actions are in reverse order of the drive. The recovery is initiated by the extensions of the arms until fully extended in front of the body. The torso is then engaged by pivoting at the hips to move the torso in front of the hips. Weight transfers from the back of the seat to the front of the seat at this time. When the hands come over the knees, the legs are bent at the knees, moving the slide towards the front of the machine. As the back becomes more parallel to the thighs, the recovery is completed when the shins are perpendicular to the ground. At this point the recovery transitions to the catch for the next stroke.

Sport
The first indoor rowing competition was held in Cambridge, Massachusetts, in February 1982 with participation of 96 on-water rowers who called themselves the "Charles River Association of Sculling Has-Beens", hence the acronym, "CRASH-B". The core events for indoor rowing competitions that are currently competed in at the World Rowing Indoor Championships are the individual 500m, individual 2000m, individual 1 hour, and 3-minute teams event. Events at other indoor rowing competitions include the mile and the 2500-meter.

Most competitions are organised into categories based on sex, age, and weight class.

title: Indoor rower


text:
Internetwork Packet Exchange

Internetwork Packet Exchange (IPX) is the network-layer protocol in the IPX/SPX protocol suite. IPX is derived from Xerox Network Systems' IDP. It also has the ability to act as a transport layer protocol.

The IPX/SPX protocol suite was very popular through the late 1980s and mid-1990s because it was used by Novell NetWare, a network operating system. Due to Novell NetWare's popularity, IPX became a prominent protocol for internetworking.

A big advantage of IPX was a small memory footprint of the IPX driver, which was vital for DOS and Windows up to Windows 95 due to the limited size at that time of conventional memory. Another IPX advantage was easy configuration of its client computers. However, IPX does not scale well for large networks such as the Internet. As such, IPX usage decreased as the boom of the Internet made TCP/IP nearly universal.

Computers and networks can run multiple network protocols, so almost all IPX sites also ran TCP/IP, to allow Internet connectivity. It was also possible to run later Novell products without IPX, with the beginning of full support for both IPX and TCP/IP by NetWare version 5 in late 1998.

Description
A big advantage of IPX protocol is its little or no need for configuration. In the time when protocols for dynamic host configuration did not exist and the BOOTP protocol for centralized assigning of addresses was not common, the IPX network could be configured almost automatically. A client computer uses the MAC address of its network card as the node address and learns what it needs to know about the network topology from the servers or routers – routes are propagated by Routing Information Protocol, services by Service Advertising Protocol.

A small IPX network administrator had to care only
 * to assign all servers in the same network the same network number,
 * to assign different network numbers to different frame formats in the same network,
 * to assign different network numbers to different interfaces of servers with multiple network cards (Novell NetWare server with multiple network cards worked automatically as a router),
 * to assign different network numbers to servers in different interconnected networks,
 * to start router process on nodes with multiple network cards in more complex networks.

IPX packet structure
Each IPX packet begins with a header with the following structure:

The Packet Type values are:

IPX addressing
An IPX address has the following structure:

Network number
The network number allows to address (and communicate with) the IPX nodes which do not belong to the same network or cabling system. The cabling system is a network in which a data link layer protocol can be used for communication. To allow communication between different networks, they must be connected with IPX routers. A set of interconnected networks is called an internetwork. Any Novell NetWare server may serve as an IPX router. Novell also supplied stand-alone routers. Multiprotocol routers of other vendors often support IPX routing. Using different frame formats in one cabling system is possible, but it works similarly as if separate cabling systems were used (i.e. different network numbers must be used for different frame formats even in the same cabling system and a router must be used to allow communication between nodes using different frame formats in the same cabling system).

 * Logical networks are assigned a unique 32-bit address in the range 0x1 to 0xFFFFFFFE (hexadecimal).
 * Hosts have a 48-bit node address, which is by default set to the 6 bytes of the network interface card MAC address. Network addresses, which exist in addition to the node address, but are not part of the MAC layer, are assigned only if an IPX router is present or by manual configuration in the network. The network address covers every network participant that can talk to another participant without the aid of an IPX router. In combination, both network and node address form a 80 bit unique identifier for each IPX node across connected logical networks. The node number itself is unique to the logical network only.
 * Network number 00:00:00:00 refers to the current network, and is also used during router discovery. It's also the default in case no router is present, but can be changed by manual configuration, depending on the IPX implementation.
 * Broadcast network number is FF:FF:FF:FF.

Node number
The node number is used to address an individual computer (or more exactly, a network interface) in the network. Client stations use its network interface card MAC address as the node number.

The value FF:FF:FF:FF:FF:FF may be used as a node number in a destination address to broadcast a packet to "all nodes in the current network".

Socket number
The socket number serves to select a process or application in the destination node. The presence of a socket number in the IPX address allows the IPX to act as a transport layer protocol, comparable with the User Datagram Protocol (UDP) in the Internet protocol suite.

Comparison with IP
The IPX network number is conceptually identical to the network part of the IP address (the parts with netmask bits set to 1); the node number has the same meaning as the bits of IP address with netmask bits set to 0. The difference is that the boundary between network and node part of address in IP is variable, while in IPX it is fixed. As the node address is usually identical to the MAC address of the network adapter, the Address Resolution Protocol is not needed in IPX.

For routing, the entries in the IPX routing table are similar to IP routing tables; routing is done by network address, and for each network address a network:node of the next router is specified in a similar fashion an IP address/netmask is specified in IP routing tables.

There are three routing protocols available for IPX networks. In early IPX networks, a version of Routing Information Protocol (RIP) was the only available protocol to exchange routing information. Unlike RIP for IP, it uses delay time as the main metric, retaining the hop count as a secondary metric. Since NetWare 3, the NetWare Link Services Protocol (NLSP) based on IS-IS is available, which is more suitable for larger networks. Cisco routers implement an IPX version of EIGRP protocol as well.

Frame formats
IPX can be transmitted over Ethernet using one of the following 4 frame formats or encapsulation types:

 * 802.3 (raw) encapsulation comprises an IEEE 802.3 frame header (destination MAC, source MAC, length) immediately followed by IPX data. It is used in legacy systems, and can be distinguished by the first two bytes of the IPX header always containing a value of 0xFFFF, which cannot be interpreted as valid LLC Destination and Source Service Access Points in this location of the frame.
 * 802.2 (LLC or Novell) comprises an IEEE 802.3 frame header (destination MAC, source MAC, length) followed by an LLC header (DSAP 0xE0, SSAP 0xE0, control 0x03) followed by IPX data. The 0xE0 fields of the LLC header indicate "NetWare".
 * 802.2 (SNAP) comprises an IEEE 802.3 frame header, an LLC header (DSAP 0xAA, SSAP 0xAA, control 0x03), a SNAP header (OUI 0x000000, type 0x8137), and IPX data. The 0xAA fields of the LLC header indicate "SNAP", and the OUI 0x000000 in the SNAP header indicates an encapsulated EtherType.
 * Ethernet II encapsulation comprises an Ethernet II frame header (destination MAC, source MAC, EtherType 0x8137) followed by IPX data.

In non-Ethernet networks only 802.2 and SNAP frame types are available.

title: Internetwork Packet Exchange


text:
International human rights instruments

International human rights instruments are the treaties and other international texts that serve as legal sources for international human rights law and the protection of human rights in general. There are many varying types, but most can be classified into two broad categories: declarations, adopted by bodies such as the United Nations General Assembly, which are by nature declaratory, so not legally-binding although they may be politically authoritative and very well-respected soft law;, and often express guiding principles; and conventions that are multi-party treaties that are designed to become legally binding, usually include prescriptive and very specific language, and usually are concluded by a long procedure that frequently requires ratification by each states' legislature. Lesser known are some "recommendations" which are similar to conventions in being multilaterally agreed, yet cannot be ratified, and serve to set common standards. There may also be administrative guidelines that are agreed multilaterally by states, as well as the statutes of tribunals or other institutions. A specific prescription or principle from any of these various international instruments can, over time, attain the status of customary international law whether it is specifically accepted by a state or not, just because it is well-recognized and followed over a sufficiently long time.

International human rights instruments can be divided further into global instruments, to which any state in the world can be a party, and regional instruments, which are restricted to states in a particular region of the world.

Most conventions and recommendations (but few declarations) establish mechanisms for monitoring and establish bodies to oversee their implementation. In some cases these bodies that may have relatively little political authority or legal means, and may be ignored by member states; in other cases these mechanisms have bodies with great political authority and their decisions are almost always implemented. A good example of the latter is the European Court of Human Rights.

Monitoring mechanisms also vary as to the degree of individual access to expose cases of abuse and plea for remedies. Under some conventions or recommendations – e.g. the European Convention on Human Rights – individuals or states are permitted, subject to certain conditions, to take individual cases to a full-fledged tribunal at international level. Sometimes, this can be done in national courts because of universal jurisdiction.

The Universal Declaration of Human Rights, the International Covenant on Civil and Political Rights, and the International Covenant on Economic, Social and Cultural Rights together with other international human rights instruments are sometimes referred to as the "International Bill of Human Rights". International human rights instruments are identified by the OHCHR and most are referenced on the OHCHR website.

Global

 * Declaration of the Rights of the Child 1923
 * Universal Declaration of Human Rights (UN, 1948)
 * Declaration on the Rights of Disabled Persons (UN, 1975)
 * Declaration on the Right to Development (UN study published in 1979; UN declaration proclaimed in 1986)
 * Vienna Declaration and Programme of Action (World Conference on Human Rights, 1993)
 * Beijing Declaration and Platform for Action (The Fourth World Conference on Women, 1995)
 * Declaration of Human Duties and Responsibilities (UNESCO, 1998)
 * Universal Declaration on Cultural Diversity (UNESCO, 2001)
 * Declaration on the Rights of Indigenous Peoples (UN, 2007)
 * UN declaration on sexual orientation and gender identity (UN, 2008)

Regional: Americas

 * American Declaration of the Rights and Duties of Man (OAS, 1948)
 * American Declaration on the Rights of Indigenous Peoples (OAS, 2016)

Regional: Asia

 * Declaration of the Basic Duties of ASEAN Peoples and Governments (Regional Council of Human Rights in Asia, 1983)
 * ASEAN Human Rights Declaration (ASEAN, 2009)

Regional: Middle East

 * Cairo Declaration of Human Rights in Islam (OIC,1990)

Global
According to OHCHR, there are 9 core international human rights instruments and several optional protocols.

 * Convention on the Elimination of All Forms of Racial Discrimination (ICERD, 21 December 1965)
 * International Covenant on Civil and Political Rights (ICCPR, 16 December 1966)
 * International Covenant on Economic, Social, and Cultural Rights (ICESCR, 16 December 1966)
 * Convention on the Elimination of All Forms of Discrimination Against Women (CEDAW, 18 December 1979)
 * Convention against Torture and Other Cruel, Inhuman or Degrading Treatment or Punishment (CAT, 10 December 1984)
 * Convention on the Rights of the Child (CRC, 20 November 1989)
 * International Convention on the Protection of the Rights of All Migrant Workers and Members of Their Families (ICMW, 18 December 1990)
 * International Convention for the Protection of All Persons from Enforced Disappearance (CPED, 20 December 2006)
 * Convention on the Rights of Persons with Disabilities (CRPD, 13 December 2006)

Several more human rights instruments exist. A few examples:

 * The International Convention on the Suppression and Punishment of the Crime of Apartheid (ICSPCA)
 * International Convention on the Protection of the Rights of All Migrant Workers and Members of Their Families
 * Convention Relating to the Status of Refugees and Protocol Relating to the Status of Refugees
 * Convention on the Reduction of Statelessness
 * Convention on the Prevention and Punishment of the Crime of Genocide
 * Indigenous and Tribal Peoples Convention, 1989 (ILO 169)
 * Inaugural HURIDOCS Assembly (HURIDOCS, 24 July 1982)
 * SOS-Torture Convention (OMCT, 14 April 1983)

Regional: Africa

 * African Charter on Human and Peoples' Rights (June, 1981)
 * African Charter on the Rights and Welfare of the Child (1990)
 * Maputo Protocol (11 July 2003)
 * African Youth Charter (June 30,2006)
 * African Disability Protocol (June 30,2019)
 * SADC Gender Protocol (revised version enters into force 2018)

Regional: America

 * American Convention on Human Rights
 * Inter-American Convention to Prevent and Punish Torture
 * Inter-American Convention on Forced Disappearance of Persons
 * Inter-American Convention on the Prevention, Punishment, and Eradication of Violence against Women
 * Inter-American Convention on the Elimination of All Forms of Discrimination against Persons with Disabilities

Regional: Europe

 * Charter of Fundamental Rights of the European Union
 * Convention on Action against Trafficking in Human Beings
 * European Convention on Nationality
 * European Charter for Regional or Minority Languages (ECRML)
 * European Convention on Human Rights (ECHR)
 * European Convention for the Prevention of Torture and Inhuman or Degrading Treatment or Punishment (CPT)
 * European Social Charter (ESC), and Revised Social Charter
 * Framework Convention for the Protection of National Minorities (FCNM)

Regional: Middle East

 * Arab Charter on Human Rights (ACHR) (22 May 2004)

title: International human rights instruments