<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://gunkies.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mharriger</id>
	<title>Computer History Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://gunkies.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mharriger"/>
	<link rel="alternate" type="text/html" href="https://gunkies.org/wiki/Special:Contributions/Mharriger"/>
	<updated>2026-10-05T16:03:48Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Western_Electric&amp;diff=25170</id>
		<title>Western Electric</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Western_Electric&amp;diff=25170"/>
		<updated>2022-01-28T23:38:33Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: Added category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Western Electric was the manufacturing arm of the Bell System. They produced nearly everything needed for the telephone system in the United States. Most relevant to this wiki, they produced a series of computers designed to run [[UNIX]] or a real-time version of UNIX called DMERT. At one time many of switches in the US telephone network were controlled by these computers.&lt;br /&gt;
&lt;br /&gt;
[[Category: Manufacturers]]&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Western_Electric&amp;diff=25169</id>
		<title>Western Electric</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Western_Electric&amp;diff=25169"/>
		<updated>2022-01-28T23:37:50Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: Created page with &amp;quot;Western Electric was the manufacturing arm of the Bell System. They produced nearly everything needed for the telephone system in the United States. Most relevant to this wiki...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Western Electric was the manufacturing arm of the Bell System. They produced nearly everything needed for the telephone system in the United States. Most relevant to this wiki, they produced a series of computers designed to run [[UNIX]] or a real-time version of UNIX called DMERT. At one time many of switches in the US telephone network were controlled by these computers.&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Category:Computer_Manufacturers&amp;diff=24966</id>
		<title>Category:Computer Manufacturers</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Category:Computer_Manufacturers&amp;diff=24966"/>
		<updated>2022-01-05T18:18:27Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: Remove NeXT since that page has been created.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a category of Computer Manufacturers.&lt;br /&gt;
&lt;br /&gt;
== Manufacturers which should get pages == &lt;br /&gt;
[[Acorn]] -- [[Altos]] -- [[AT&amp;amp;T]] -- [[Coleco]] -- [[Computer Automation]] -- [[Cromemco]] -- [[Epson]] -- [[Exidy]] -- [[Franklin]] --[[Heathkit]] -- [[IBC]] -- [[ICL]] -- [[IMSAI]] -- [[Kaypro]] -- [[Logica VTS]] -- [[MITS]] -- [[Morrow]] -- [[North Star]] -- [[OSBORNE]] -- [[Otrona]] -- [[Polymorphic Systems]] -- [[Processor Technology]] -- [[Psion]] -- [[Radio Shack]] -- [[Sanyo]] -- [[Science of Cambridge]] --[[Sinclair Research]] -- [[SouthWest Technical Products Corporation (SWTPC)]] -- [[Silicon Graphics]] -- [[Tektronix]] -- [[Terak]] -- [[Timex]] (Sinclair) -- [[Vector Graphic]] -- [[Wang]] -- -- [[Zenith]]&lt;br /&gt;
&lt;br /&gt;
[[Category: Manufacturers]]&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Tandem_Computers&amp;diff=24965</id>
		<title>Tandem Computers</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Tandem_Computers&amp;diff=24965"/>
		<updated>2022-01-05T18:12:11Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: Created page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Tandem Computers, Inc.&#039;&#039;&#039; was a manufacturer of fault-tolerant computer systems designed to have no single points of failure. Tandem was acquired by Compaq in 1997 and later became a part of HP.&lt;br /&gt;
&lt;br /&gt;
[[Category: Computer Manufacturers]]&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Sun_Microsystems&amp;diff=24964</id>
		<title>Sun Microsystems</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Sun_Microsystems&amp;diff=24964"/>
		<updated>2022-01-05T18:06:25Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Sun Microsystems (Sun)&#039;&#039;&#039; was founded in California in 1982.  Of relevance to hobbyists include their [[Sun-1]], [[Sun-2]], [[Sun-3]] machines, all based on [[Motorola 68000 family]] [[CPU]]s, early [[SPARC]] based computers and their [[software]] such as [[NFS]], [[SunOS]] and [[Solaris]]. Sun was acquired by Oracle in 2010.&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Computer Manufacturers]]&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=PDP-11_architecture&amp;diff=24958</id>
		<title>PDP-11 architecture</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=PDP-11_architecture&amp;diff=24958"/>
		<updated>2022-01-04T03:30:32Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: Fix bad internal link syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;[[PDP-11]]&#039;&#039;&#039; was an influential and widely-used family of 16-[[bit]] [[minicomputer]]s designed by [[Digital Equipment Corporation|DEC]], in production from 1970-1990. Although the basic [[address space]] was 16 bits, most models could hold more [[main memory]] than that, although only a limited subset was visible to the [[program]] at any time.&lt;br /&gt;
&lt;br /&gt;
The [[Central Processing Unit|CPU]] had 8 [[general register|general purpose registers]]; the [[operand]] coding, which was applied regularly across essentially the entire [[instruction set]], allowed it to provide a two-[[address]] instruction [[architecture]], not a simple [[load-store architecture]] like its predecessor, the 12-bit [[PDP-8 family|PDP-8]].&lt;br /&gt;
&lt;br /&gt;
One of the [[register]]s (R7) was dedicated to be the [[Program Counter]], and one (R6) was more or less dedicated to be the [[Stack Pointer]]. (Other registers can be used as [[stack]] [[pointer]]s, but the hardware uses this one for [[subroutine]] call and return, [[interrupt]]s, [[trap]]s, etc.) (There are a number of sometimes poorly-documented details of PDP-11 stack operation; see [[PDP-11 stacks|here]] for more.)&lt;br /&gt;
&lt;br /&gt;
These registers, along with a variety of register-based addressing modes, allowed it to provide a variety of additional operand types, such as immediate (literal) data, absolute and relative addresses, and stack operations; very impressive on a machine which had only 16-bit [[word]]s (and thus [[instruction]]s).&lt;br /&gt;
&lt;br /&gt;
The regular application of the operand coding across essentially the entire instruction set allowed these additional operand types to be widely available; this, and the power of the large range of operand modes, substantially reduced the code size. This was an important consideration both in the PDP-11&#039;s early life, when small and expensive [[core memory]] was the standard main memory; and in its later life, when the 16-bit address space became a severe limit.&lt;br /&gt;
&lt;br /&gt;
Most instructions come in both [[byte]] and [[word]] data forms; an exception is ADD and SUB, which exist in only word forms (probably because there was not enough room in the instruction set to have them both in both forms).&lt;br /&gt;
&lt;br /&gt;
On CPU models intended for use in [[time-sharing]] systems, two CPU modes, [[Kernel]] and [[User]], were supported, along with [[memory management]].&lt;br /&gt;
&lt;br /&gt;
Early PDP-11&#039;s were all built around the [[UNIBUS]] [[bus]]; later models switched to the [[QBUS]], which used less pins.&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
The first PDP-11 (the [[PDP-11/20]]) was limited to one-bit shift operations, and did not have hardware integer multiplication or division, or any hardware [[floating point]]. (An option, the [[KE11-A Extended Arithmetic Element]], did provide multiply, divide, etc in hardware, but it was a separate [[peripheral]] on the UNIBUS, not part of the CPU.)&lt;br /&gt;
&lt;br /&gt;
The next model, the [[PDP-11/45]], added both of these classes (the latter as an option), although the follow-on low-cost machines, the [[PDP-11/05]] and [[PDP-11/04]], again did not have either.&lt;br /&gt;
&lt;br /&gt;
Later machines tended to include the former group - although on some early mid-range machines such as the [[PDP-11/40]] and [[LSI-11s]], they were only an [[PDP-11 Extended Instruction Set|option]]. Floating point was also added to the later machines (although only as an option, until relatively late in the line).&lt;br /&gt;
&lt;br /&gt;
Late in the PDP-11 family&#039;s lifetime, a [[Commercial Instruction Set]] was defined, and made available as an [[PDP-11 Commercial Instruction Set|option]] in some of the later machines.&lt;br /&gt;
&lt;br /&gt;
===Floating point===&lt;br /&gt;
&lt;br /&gt;
Two forms of floating point were added: a simplified form, [[FIS floating point]], with only the 4 basic operations, using 32-bit data, in a few early machines; and full-blown floating point (32-bit and 64-bit formats, many operations), [[FP11 floating point]].&lt;br /&gt;
&lt;br /&gt;
The former was available as an option in the PDP-11/40, and later in the PDP-11/03. The latter was available as an option in the [[PDP-11/45]] and variants thereof (the [[PDP-11/50]] and [[PDP-11/55]]), the [[PDP-11/70]], [[PDP-11/34]], [[PDP-11/44]] and [[PDP-11/23]]; it was standard in the [[KDJ11 CPUs]] (although in these machines an optional [[FPJ11 floating point accelerator]] greatly improved the floating point performance).&lt;br /&gt;
&lt;br /&gt;
===Memory management and CPU modes===&lt;br /&gt;
&lt;br /&gt;
After a few disparate custom add-on units to provide memory management and CPU modes in the [[PDP-11/20]], they became [[PDP-11 Memory Management|standardized]] with the PDP-11/45 (in which memory management was an option); most later machines supported them. A simplified version was supported in the -11/40 and -11/23 (as an option, in both), and in the -11/34 (standard) and [[PDP-11/60]] (the lack of the full-blown version was a significant handicap in what was a relatively high-end machine).&lt;br /&gt;
&lt;br /&gt;
==Operands==&lt;br /&gt;
&lt;br /&gt;
The PDP-11 supported both single- and double-operand instructions. The operands are mostly the most flexible form, in which a 6-bit field holds three bits of register number, and three bits of mode. (Which is why PDP-11 [[object code]] is usually displayed in octal, as it is the optimal base for that, since each operand field will be in one octal &#039;digit&#039;.)&lt;br /&gt;
&lt;br /&gt;
As noted above, this operand form provided a large variety of operand types, including stack push and pop, literals, etc. This provides the basic instruction group with great flexibility, especially the double-operand instructions (MOV, ADD, etc).&lt;br /&gt;
&lt;br /&gt;
A few instructions (mostly those which were added to the instruction repertoire later, e.g. MUL, DIV, XOR, etc) only provide a register number for one operand (i.e. if not already in a register, that operand must be pre-loaded into one by another instruction).&lt;br /&gt;
&lt;br /&gt;
===Addressing modes===&lt;br /&gt;
&lt;br /&gt;
The mode field is further subdivided into a &#039;Deferred&#039; (indirect) bit, and a two bit field which selects among direct register, auto-increment, auto-decrement, and indexed modes. The indirect bit is the low bit, so odd values of the mode &#039;digit&#039; are indirect.&lt;br /&gt;
&lt;br /&gt;
The &#039;regular&#039; modes are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 &lt;br /&gt;
! Mode !! Name                         !! Symbolic     !! Description&lt;br /&gt;
|-&lt;br /&gt;
|0      || Register                     || R            || (R) is the operand&lt;br /&gt;
|-&lt;br /&gt;
|2      || Auto-increment               || (R)+         || (R) is the address; (R) is then incremented by 1 or 2, in case of byte or word instructions.&lt;br /&gt;
|-&lt;br /&gt;
|4      || Auto-decrement               || -(R)         || (R) is decremented by 1 or 2, in case of byte or word instructions; R is then the address.&lt;br /&gt;
|-&lt;br /&gt;
|6      || Index                        || X(R)         || (R) + X is the address.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
and the indirect modes are:&lt;br /&gt;
&lt;br /&gt;
{| border=1 &lt;br /&gt;
! Mode !! Name                         !! Symbolic     !! Description&lt;br /&gt;
|-&lt;br /&gt;
|1      || Register deferred            || @R or (R)    || (R) contains address of operand&lt;br /&gt;
|-&lt;br /&gt;
|3      || Auto-increment deferred      || @(R)+        || (R) is the address of the address; (R) is then incremented by 2&lt;br /&gt;
|-&lt;br /&gt;
|5      || Auto-decrement deferred      || @-(R)        || (R) is decremented by two; (R) is then the address of the address.&lt;br /&gt;
|-&lt;br /&gt;
|7      || Index deferred               || @X(R)        || (R) + X is the address of the address&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
As mentioned, auto-increment and auto-decrement allow any register to be used as a stack pointer, but the hardware enforces the use of R6 as the SP, so it is un-common for another register to be used for this.&lt;br /&gt;
&lt;br /&gt;
Note that when destination operands use auto-increment or auto-decrement mode, the modification is only made on the first use of the operand; the second uses the same address as that used by the first. (This makes sense; the [[microcode]] (or [[state machine]], in the [[KA11 CPU]]) calculates the address of the second operand once, and saves that address in a temporary register - usually, but not necessarily, the Bus Address Register. Then, for the write, it just re-uses that value.)&lt;br /&gt;
&lt;br /&gt;
The use of auto-increment mode with the PC provides literal operands (both immediate, and absolute addresses); indexed modes with the PC can be used for [[location-independent code]].&lt;br /&gt;
&lt;br /&gt;
==Instruction set==&lt;br /&gt;
&lt;br /&gt;
The instruction set provided a number of double-operand instructions:&lt;br /&gt;
&lt;br /&gt;
* MOV&lt;br /&gt;
* ADD&lt;br /&gt;
* SUB&lt;br /&gt;
* BIT (bit test)&lt;br /&gt;
* BIS (bit set)&lt;br /&gt;
* BIC (bit clear)&lt;br /&gt;
&lt;br /&gt;
(as noted, ADD and SUB are only available in word mode), and many single-operand instructions:&lt;br /&gt;
&lt;br /&gt;
* CLR&lt;br /&gt;
* TST (compare with 0)&lt;br /&gt;
* INC&lt;br /&gt;
* DEC&lt;br /&gt;
* NEG&lt;br /&gt;
* COM (complement)&lt;br /&gt;
* ASR (arithmetic shift right)&lt;br /&gt;
* ASL&lt;br /&gt;
* ROR (rotate right)&lt;br /&gt;
* ROL&lt;br /&gt;
* SWAB (swap bytes)&lt;br /&gt;
* ADC (add carry)&lt;br /&gt;
* SBC&lt;br /&gt;
&lt;br /&gt;
===Condition codes and conditional branches===&lt;br /&gt;
&lt;br /&gt;
The instruction set provided a plethora of branches, although all branches are limited to a range of 127 words before or after the current instruction; a limit which is not onerous in practise. All the [[conditional branch]]es depend on a prior instruction to set 4 [[condition codes]] (stored in the [[Processor Status Word]]):&lt;br /&gt;
&lt;br /&gt;
* Z - Zero&lt;br /&gt;
* N - Negative (i.e. high bit set)&lt;br /&gt;
* C - Carry&lt;br /&gt;
* V - Overflow&lt;br /&gt;
&lt;br /&gt;
Conditional branches:&lt;br /&gt;
&lt;br /&gt;
* BR (un-conditional)&lt;br /&gt;
* BNE (non-zero)&lt;br /&gt;
* BEQ (zero)&lt;br /&gt;
* BMI (negative)&lt;br /&gt;
* BPL (positive)&lt;br /&gt;
* BVC (overflow clear)&lt;br /&gt;
* BVS (overflow)&lt;br /&gt;
* BCS (carry)&lt;br /&gt;
* BCC (no carry)&lt;br /&gt;
&lt;br /&gt;
Signed branches:&lt;br /&gt;
&lt;br /&gt;
* BGE (greater than or equal to 0)&lt;br /&gt;
* BGT&lt;br /&gt;
* BLE&lt;br /&gt;
* BLT&lt;br /&gt;
&lt;br /&gt;
Unsigned branches:&lt;br /&gt;
&lt;br /&gt;
* BHIS (higher than, or the same)&lt;br /&gt;
* BHI&lt;br /&gt;
* BLOS&lt;br /&gt;
* BLO&lt;br /&gt;
&lt;br /&gt;
===Miscellaneous===&lt;br /&gt;
&lt;br /&gt;
Other flow of control instructions (both JMP and JSR) can transfer to any location in the address space):&lt;br /&gt;
&lt;br /&gt;
* JMP&lt;br /&gt;
* JSR - subroutine call&lt;br /&gt;
* RTS - subroutine return&lt;br /&gt;
&lt;br /&gt;
A variety of other instructions (e.g. to trap to the [[operating system]], [[halt]] the CPU, etc) also exist.&lt;br /&gt;
&lt;br /&gt;
===Added later===&lt;br /&gt;
&lt;br /&gt;
The PDP-11/45 added a few miscellaneous instructions:&lt;br /&gt;
&lt;br /&gt;
* SOB (decrement and conditionally branch)&lt;br /&gt;
* XOR (word only, and also only provides a register number for one operand)&lt;br /&gt;
* SXT (sign extend, word only)&lt;br /&gt;
* MARK (subroutine argument setup)&lt;br /&gt;
* RTT (return from interrupt while inhibiting &#039;trace&#039; trap)&lt;br /&gt;
* SPL (set CPU priority level)&lt;br /&gt;
&lt;br /&gt;
All of these, with the exception of SPL, appeared in all later models (except the -11/05 and -11/04).&lt;br /&gt;
&lt;br /&gt;
Various later models added various instructions for Processor Status Word (PS) access, maintenance, etc.&lt;br /&gt;
&lt;br /&gt;
==Processor Status Word==&lt;br /&gt;
&lt;br /&gt;
All PDP-11&#039;s have a Processor Status Word register.The contents vary from model to model, but in all of the it contains the four condition code bits; a bit to control &#039;trace&#039; traps (which allow [[single-step]]ping the CPU); and the CPU&#039;s current [[priority]] level (to allow or defer peripheral interrupts). On models which provide memory management, there are two fields to specify the current and previous [[PDP-11 Memory Management|modes]]. Some models provide two sets of general CPU registers (only one may be in use at any time); a bit in the PSW selects which one is in use.&lt;br /&gt;
&lt;br /&gt;
The layout of the PSW is:&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=2 | Current Mode || colspan=2 | Previous Mode || Register Set || colspan=3 | &#039;&#039;Unused&#039;&#039; || colspan=3 | Priority || T || N || Z || V || C&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
Some of the &#039;unused&#039; bits (above) have uses on particular models; for example, in the -11/44&#039;s [[KD11-Z CPU]], bit 8 is used to indicate that a Commercial Instruction Set instruction is in process, but not completed (visible when the PS is saved in an interrupt).&lt;br /&gt;
&lt;br /&gt;
The PSW appears at address 0177776 on most models (0777776 on the UNIBUS, in models with a UNIBUS); the sole exception is the  LSI11 CPUs, on which it can only be read/written directly with the MFPS/MTPS instructions (which appear on some, but not all, models).&lt;br /&gt;
&lt;br /&gt;
Depending on the CPU&#039;s model (and current mode, for those which support multiple modes), not all bits can be written directly, though. Consult the &amp;quot;PDP-11 Family Differences&amp;quot; appendix, in the &#039;&#039;PDP-11 Architecture Handbook&#039;&#039; (1983-84 version) or the &#039;&#039;MICRO/PDP-11 Handbook&#039;&#039; (1983-84 version) for details.&lt;br /&gt;
&lt;br /&gt;
==Virtualization==&lt;br /&gt;
&lt;br /&gt;
The PDP-11 is impossible to [[virtual machine|virtualize]], since there are a number of instructions used by operating systems which do not trap when executed by a program running in User mode. HALT does trap, but not others, including:&lt;br /&gt;
&lt;br /&gt;
* RESET&lt;br /&gt;
* WAIT&lt;br /&gt;
* RT[IT]&lt;br /&gt;
* SPL&lt;br /&gt;
* M[TF]P[ID]&lt;br /&gt;
* M[TF]PS&lt;br /&gt;
&lt;br /&gt;
Of these, in user mode RESET is a [[no-op]], RT[IT] cannot change the current and previous modes, MFPI acts like MPFD in User mode when the previous mode is also User (to prevent &#039;theft&#039; of proprietary code), and MTPS can only set the condition codes.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[PDP-11 Memory Management]]&lt;br /&gt;
* [[PDP-11 Extended Instruction Set]]&lt;br /&gt;
* [[PDP-11 Commercial Instruction Set]]&lt;br /&gt;
* [[UNIBUS map]]&lt;br /&gt;
* [[PDP-11 family differences appendix]]&lt;br /&gt;
&lt;br /&gt;
{{PDP-11}}&lt;br /&gt;
&lt;br /&gt;
[[Category: PDP-11s]]&lt;br /&gt;
[[Category: DEC Architectures]]&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Intel_80386&amp;diff=24930</id>
		<title>Intel 80386</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Intel_80386&amp;diff=24930"/>
		<updated>2021-12-29T23:23:32Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:80386-12 CPU.jpg|150px|thumb|right|An i386 cpu]]&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;Intel 80386&#039;&#039;&#039; (sometimes &#039;&#039;&#039;386&#039;&#039;&#039; or &#039;&#039;&#039;i386&#039;&#039;&#039; for short) is the 4th generation [[microprocessor]] [[Central Processing Unit|CPU]] from [[Intel]] based on the 8088/8086 CPU. The 386 was a 32-bit CPU, featuring all the features of the [[Intel 80286]] CPU, plus 32-bit [[protected mode]] with variable page sizes, allowing for a flat memory space where the entire 4GB of accessible [[Random Access Memory|RAM]] could be accessed without [[segment]]ation. The 386 was introduced in 1985, and finally discontinued in 2007.&lt;br /&gt;
&lt;br /&gt;
The 386 also featured a special mode called v86 which facilitated the creation of [[VDM]]s.  In this mode all un-privileged instructions of the 386 could execute in a hardware [[virtual machine]], and privileged instructions would fault.&lt;br /&gt;
&lt;br /&gt;
The real success of this chip was that it made 32-bit software available to the masses, and for bringing &#039;real&#039; [[Unix]] from the [[VAX]] environment to normal people, via cheap commodity hardware.&lt;br /&gt;
&lt;br /&gt;
== programming ==&lt;br /&gt;
The most popular reference is the [[INTEL 80386 PROGRAMMER&#039;S REFERENCE MANUAL]].&lt;br /&gt;
&lt;br /&gt;
== 80386SX ==&lt;br /&gt;
&lt;br /&gt;
The 80386SX was a low cost version of the 386. Instead of having a 32-bit [[address bus]], it was restricted to 24 bits, meaning the 386SX could only address 16MB of RAM maximum. The 386SX also only could transfer data 16 bits at a time, so reading a 32-bit word took two reads. This basically kept the 386SX comparable in speed to the 286. The internal [[register]]s were still 32bit wide, so it could run the same software.&lt;br /&gt;
&lt;br /&gt;
== Trivia ==&lt;br /&gt;
&lt;br /&gt;
The first 386 CPUs had an issue with the multiply [[instruction]] in 32-bit modes, so there had to be a recall on all parts.  Later the parts were either stamped &amp;quot;16 bit software only&amp;quot; or with a double sigma sign to certify they would operate correctly.&lt;br /&gt;
&lt;br /&gt;
IBM was not the first to manufacture a PC with the 386 CPU, they were too infatuated with the 286 and the 16-bit version of [[OS/2]] so it was [[Compaq]] who beat them to the first 386-based machine, with the [[Desqpro 386]].&lt;br /&gt;
&lt;br /&gt;
Since there was no 386-specific software at its launch, Compaq pushed [[Microsoft]] to release [[Windows/386]] before Windows 2.0 so that there would be some compelling reason to buy a Compaq 386.&lt;br /&gt;
&lt;br /&gt;
The next CPU in the line of [[Intel x86|x86]] CPUs was the [[Intel 80486]].&lt;br /&gt;
&lt;br /&gt;
{{semi-stub}}&lt;br /&gt;
&lt;br /&gt;
[[Category: Intel Microprocessors]]&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
	<entry>
		<id>https://gunkies.org/w/index.php?title=Hewlett_Packard_Precision_Architecture&amp;diff=24916</id>
		<title>Hewlett Packard Precision Architecture</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=Hewlett_Packard_Precision_Architecture&amp;diff=24916"/>
		<updated>2021-12-29T05:12:22Z</updated>

		<summary type="html">&lt;p&gt;Mharriger: Created page with &amp;quot;Hewlett Packard Precision Architecture, also known as PA-RISC, is a RISC ISA introduced by HP in 1986.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hewlett Packard Precision Architecture, also known as PA-RISC, is a RISC ISA introduced by HP in 1986.&lt;/div&gt;</summary>
		<author><name>Mharriger</name></author>
	</entry>
</feed>