<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Making technology with embedded things</title>
	<atom:link href="http://microcontrollers.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://microcontrollers.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Fri, 11 Mar 2011 13:58:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='microcontrollers.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Making technology with embedded things</title>
		<link>http://microcontrollers.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://microcontrollers.wordpress.com/osd.xml" title="Making technology with embedded things" />
	<atom:link rel='hub' href='http://microcontrollers.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to do really fast bit permutations with few operations</title>
		<link>http://microcontrollers.wordpress.com/2011/03/11/how-to-do-really-fast-bit-permutations-with-few-operations/</link>
		<comments>http://microcontrollers.wordpress.com/2011/03/11/how-to-do-really-fast-bit-permutations-with-few-operations/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 13:58:43 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[microcontrollers]]></category>

		<guid isPermaLink="false">http://microcontrollers.wordpress.com/?p=22</guid>
		<description><![CDATA[If you look at the specs of algorithms such as the now semi defunct DES, you are often required to do permutations of bits, i.e. changing the order of bits in a bit field. One typical example is bit reversal, which comes handy even if you need to switch from little endian to big endian. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=22&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>If you look at the specs of algorithms such as the now semi defunct <strong>DES</strong>, you are often required to do permutations of bits, i.e. changing the order of bits in a bit field.</p>
<p>One typical example is bit reversal, which comes handy even if you need to switch from <strong>little endian</strong> to <strong>big endian</strong>.</p>
<p>But let&#8217;s suppose you just need to shuffle bits in a predetermined order. There are lots of WRONG ways of doing this, there are lots of wrong solutions, which will make your program a lot slower than it could be.</p>
<p>Examples of painful slow solutions: use bit masking, use logical AND / OR, bring result into Carry flag, shifts.</p>
<p>If your instruction set allows for direct bit addressing ( e.g.: modern x86 architecture starting with 386 in protected mode), you can gain an about 5x speedup, but that&#8217;s not the intelligent way of doing permutations.</p>
<p>The right way:</p>
<p>at compile time:</p>
<p>1) Divide your bit fields in bytes or similar <strong>n</strong> convenient chunks.</p>
<p>2) build <strong>n</strong> tables, each of n elements, each element long as the entire bitfield.</p>
<p>3) for each table, each element at the row corresponding to the value of the &#8220;chunk&#8221; considered as a displacement, should contain &#8220;1&#8243; in the permuted destination bits, if the corresponding bits in the original chunk  are themselves set to &#8220;1&#8243; and pad to zero everything else.</p>
<p>at run time:</p>
<p>1) divide your bitfields in chunks, for each chunk read the row corresponding to its value in the corresponding table.</p>
<p>2) just <strong>OR</strong> together the results of the individual array reads.</p>
<p>i.e.: instead of m bit operations, if you need to permute 64 bits you just need <strong>8 indexed reads</strong> and 7 <strong>OR operations.</strong></p>
<p><strong>That&#8217;s a lot better than trying 64 bit masks and shifting results around. Even if you have direct bit addressing, this solution will be 8-10 times faster.<br />
</strong></p>
<p>&nbsp;</p>
<br />Filed under: <a href='http://microcontrollers.wordpress.com/category/microcontrollers/'>microcontrollers</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=22&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2011/03/11/how-to-do-really-fast-bit-permutations-with-few-operations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
		<item>
		<title>Humorous instruction set</title>
		<link>http://microcontrollers.wordpress.com/2008/03/30/humorous-instruction-set/</link>
		<comments>http://microcontrollers.wordpress.com/2008/03/30/humorous-instruction-set/#comments</comments>
		<pubDate>Sun, 30 Mar 2008 16:10:45 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[humour]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[cpu]]></category>
		<category><![CDATA[instruction set]]></category>
		<category><![CDATA[mcu]]></category>
		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://microcontrollers.wordpress.com/2008/03/30/humorous-instruction-set/</guid>
		<description><![CDATA[AAC Alter All Commands AAD Alter All Data AAO Add And Overflow AAR Alter At Random AB Add Backwards ABR Add Beyond Range ACQT Advance Clock to Quitting Time ADB Another Damn Bug [UNIX] AFF Add Fudge Factor AFHB Align Fullword on Halfword Boundary AFP Abnormalized Floating Point AFVC Add Finagle&#8217;s Variable Constant AGB Add [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=12&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<dd><b>AAC</b> Alter All Commands </dd>
<dd><b>AAD</b> Alter All Data </dd>
<dd><b>AAO</b> Add And Overflow </dd>
<dd><b>AAR</b> Alter At Random </dd>
<dd><b>AB</b> Add Backwards </dd>
<dd><b>ABR</b> Add Beyond Range </dd>
<dd><b>ACQT</b> Advance Clock to Quitting Time </dd>
<dd><b>ADB</b> Another Damn Bug [UNIX] </dd>
<dd><b>AFF</b> Add Fudge Factor </dd>
<dd><b>AFHB</b> Align Fullword on Halfword Boundary </dd>
<dd><b>AFP</b> Abnormalized Floating Point </dd>
<dd><b>AFVC</b> Add Finagle&#8217;s Variable Constant </dd>
<dd><b>AGB</b> Add GarBage </dd>
<dd><b>AI</b> Add Improper </dd>
<dd><b>AIB</b> Attack Innocent Bystander </dd>
<dd><b>AMM</b> Answer My Mail </dd>
<dd><b>AOI</b> Annoy Operator Immediate </dd>
<dd><b>AR</b> Alter Reality </dd>
<dd><b>ARN</b> Add and Reset to Non-zero </dd>
<dd><b>ARZ</b> Add and Reset to Zero </dd>
<dd><b>AS</b> Add Sideways </dd>
<dd><b>AT</b> Accumulate Trivia </dd>
<dd><b>AWP</b> Argue With Programmer </dd>
<dd><b>AWTT</b> Assemble With Tinker Toys </dd>
<dd><b>BAC</b> Branch to Alpha Centauri </dd>
<dd><b>BAF</b> Blow All Fuses </dd>
<dd><b>BAH</b> Branch And Hang </dd>
<dd><b>BALC</b> Branch And Link Cheeseburger </dd>
<dd><b>BAW</b> Bells And Whistles </dd>
<dd><b>BB</b> Branch on Bug </dd>
<dd><b>BBBB</b> Byte Baudy Bit and Branch </dd>
<dd><b>BBI</b> Branch on Burned-out Indicator </dd>
<dd><b>BBL</b> Branch on Burned-out Lamp </dd>
<dd><b>BBLB</b> Branch on Blinking Light Bulb </dd>
<dd><b>BCB</b> Burp and Clear Bytes </dd>
<dd><b>BCF</b> Branch on Chip box Full </dd>
<dd><b>BCIL</b> Branch Creating Infinite Loop </dd>
<dd><b>BCR</b> Backspace Card Reader </dd>
<dd><b>BCU</b> Be Cruel and Unusual </dd>
<dd><b>BD</b> Backspace Disk </dd>
<dd><b>BD</b> Branch to Data </dd>
<dd><b>BDC</b> Break Down and Cry </dd>
<dd><b>BDM</b> Branch and Disconnect Memory </dd>
<dd><b>BDT</b> Burn Data Tree [next opcode after decorate data tree] </dd>
<dd><b>BE</b> Branch Everywhere [As in HHGttG's Infinite Improbability Computer] </dd>
<dd><b>BF</b> Belch Fire </dd>
<dd><b>BH</b> Branch and Hang </dd>
<dd><b>BLC</b> Branch and Loop Continuous </dd>
<dd><b>BLI</b> branch and loop infinite </dd>
<dd><b>BLM</b> Branch, Like, Maybe </dd>
<dd><b>BLMWM</b> Branch, Like, Maybe, wow, Man </dd>
<dd><b>BLP</b> Boot from Line Printer </dd>
<dd><b>BLR</b> Branch and Lose Return </dd>
<dd><b>BM</b> Branch Maybe </dd>
<dd><b>BMI</b> Branch on Missing Index </dd>
<dd><b>BMP</b> Branch and Make Popcorn </dd>
<dd><b>BNA</b> Branch to Nonexistent Address </dd>
<dd><b>BNR</b> Branch for No Reason </dd>
<dd><b>BOD</b> Branch on Operator Desperate </dd>
<dd><b>BOOP</b> Boot Operator </dd>
<dd><b>BYOP</b> Byte Operator </dd>
<dd><b>BPB</b> Branch on Program Bug </dd>
<dd><b>BPD</b> Branch on Programmer Debugging </dd>
<dd><b>BPIM</b> Bury Programmer In Manuals </dd>
<dd><b>BPO</b> Branch on Power Off </dd>
<dd><b>BR</b> Byte and Run </dd>
<dd><b>BRA</b> Branch to Random Address </dd>
<dd><b>BRI</b> BRanch Indefinitely </dd>
<dd><b>BRL</b> BRanch and Leak </dd>
<dd><b>BRO</b> BRanch to Oblivion </dd>
<dd><b>BRT</b> BRanch on Tuesdays </dd>
<dd><b>BSC</b> Burst Selector Channel </dd>
<dd><b>BSI</b> Backup Sewer Immediate </dd>
<dd><b>BSM</b> Branch and Scramble Memory </dd>
<dd><b>BSO</b> Branch on Sleepy Operator </dd>
<dd><b>BSST</b> BackSpace and Stretch Tape </dd>
<dd><b>BTD</b> Byte The Dust </dd>
<dd><b>BTJ</b> Branch and Turn Japanese </dd>
<dd><b>BTO</b> Branch To Oblivion </dd>
<dd><b>BW</b> Branch on Whim </dd>
<dd><b>BWABL</b> Bells, Whistles and Blinking Lights </dd>
<dd><b>BWOP</b> BeWilder Operator </dd>
<dd><b>CAF</b> Convert Ascii to Farsic </dd>
<dd><b>CAI</b> Corrupt Accounting Information </dd>
<dd><b>CAIL</b> Crash After I Leave </dd>
<dd><b>CAT</b> Confused And Tired [UNIX] </dd>
<dd><b>CBA</b> Compare and Branch Anyway </dd>
<dd><b>CBNC</b> Close, But No Cigar </dd>
<dd><b>CBS</b> Clobber BootStrap </dd>
<dd><b>CC</b> Call Calvary </dd>
<dd><b>CC</b> Crappy Control [UNIX] </dd>
<dd><b>CCB</b> Chocolate Chip Byte-mode </dd>
<dd><b>CCB</b> Consult Crystal Ball </dd>
<dd><b>CCCI</b> Clear Condition-Codes Indefinitely </dd>
<dd><b>CCD</b> Choke, Cough and Die </dd>
<dd><b>CCD</b> Clear Current Directory [this may really exist!] </dd>
<dd><b>CCD</b> Clear Core and Dump </dd>
<dd><b>CCR</b> Change Channels Random </dd>
<dd><b>CCS</b> Chinese Character Set </dd>
<dd><b>CCWR</b> Change Color of Write Ring </dd>
<dd><b>CDR</b> Complement Disk Randomly </dd>
<dd><b>CFS</b> Corrupt File Structure </dd>
<dd><b>CG</b> Convert to Garbage </dd>
<dd><b>CH</b> Create Havoc </dd>
<dd><b>CHAPMR</b> CHAse Pointers around Machine Room </dd>
<dd><b>CIB</b> Change Important Byte </dd>
<dd><b>CIMM</b> Create Imaginary Memory Map </dd>
<dd><b>CM</b> Circulate Memory </dd>
<dd><b>CMD</b> Compare Meaningless Data </dd>
<dd><b>CMD</b> CPU Melt Down </dd>
<dd><b>CMI</b> Clobber Monitor Immediately </dd>
<dd><b>CML</b> Compute Meaning of Life </dd>
<dd><b>CMP</b> Create Memory Prosthesis </dd>
<dd><b>CMS</b> Click MicroSwitch </dd>
<dd><b>CN</b> Compare Nonsensically </dd>
<dd><b>CNB</b> Cause Nervous Breakdown </dd>
<dd><b>COLB</b> Crash for Operator&#8217;s Lunch Break </dd>
<dd><b>COMF</b> COMe From </dd>
<dd><b>COS</b> Copy Object Code to Source File </dd>
<dd><b>COWHU</b> Come Out With your Hands Up </dd>
<dd><b>CP%FKM</b> CPU &#8211; Flakeout mode </dd>
<dd><b>CP%WM</b> CPU &#8211; Weird Mode </dd>
<dd><b>CPB</b> Create Program Bug </dd>
<dd><b>CPR</b> Compliment PRogrammer(&#8220;Aren&#8217;t you cute!&#8221;) </dd>
<dd><b>CRASH</b> Continue Running After Stop or Halt </dd>
<dd><b>CRM</b> Clear Random Memory </dd>
<dd><b>CRN</b> convert to Roman numerals </dd>
<dd><b>CRYPT</b> reCuRsive encrYPt Tape mnemonic [UNIX] </dd>
<dd><b>CS</b> Crash System </dd>
<dd><b>CSL</b> Curse and Swear Loudly </dd>
<dd><b>CSN</b> Call Supervisor Names </dd>
<dd><b>CSNIO</b> Crash System on Next I/O </dd>
<dd><b>CSU</b> Call Self Unconditional [the ultimate in recursive programming] </dd>
<dd><b>CSYS</b> Crash SYStem </dd>
<dd><b>CTDMR</b> Change Tape Density, Mid Record </dd>
<dd><b>CUC</b> Cheat Until Caught </dd>
<dd><b>CVFL</b> Convert Floating to Logical </dd>
<dd><b>CVFP</b> ConVert FORTRAN to PASCAL </dd>
<dd><b>CVG</b> ConVert to Garbage </dd>
<dd><b>CWAH</b> Create Woman And Hold </dd>
<dd><b>CWDC</b> Cut Wires and Drop Cores </dd>
<dd><b>DA</b> Develop Amnesia </dd>
<dd><b>DAO</b> divide and overflow </dd>
<dd><b>DAP</b> De-select Active Peripheral </dd>
<dd><b>DAUF</b> Delete All Useless Files [would YOU trust a computer that far?] </dd>
<dd><b>DBL</b> Desegregate Bus Lines </dd>
<dd><b>DBR</b> Debase Register </dd>
<dd><b>DBZ</b> Divide By Zero </dd>
<dd><b>DC</b> Degauss Core </dd>
<dd><b>DC</b> Divide and Conquer </dd>
<dd><b>DCAD</b> Dump Core And Die </dd>
<dd><b>DCD</b> Drop Cards Double </dd>
<dd><b>DCGC</b> Dump Confusing Garbage to Console </dd>
<dd><b>DCI</b> Disk Crash Immediate </dd>
<dd><b>DCON</b> Disable CONsole </dd>
<dd><b>DCT</b> Drop Cards Triple </dd>
<dd><b>DCWPDGD</b> Drink Coffee, Write Program, Debug, Get Drunk </dd>
<dd><b>DD</b> Destroy Disk </dd>
<dd><b>DDC</b> Dally During Calculations </dd>
<dd><b>DDOA</b> Drop Dead On Answer </dd>
<dd><b>DDS</b> Delaminate Disk Surface </dd>
<dd><b>DEB</b> Disk Eject Both </dd>
<dd><b>DEC</b> Decompile Executable Code </dd>
<dd><b>DEI</b> Disk Eject Immediate </dd>
<dd><b>DEM</b> Disk Eject Memory </dd>
<dd><b>DES</b> Disk Eject Swapped </dd>
<dd><b>DHTPL</b> Disk Head Three Point Landing </dd>
<dd><b>DIA</b> Develop Ineffective Address </dd>
<dd><b>DIE</b> DIsable Everyting (UN?X during hardware errors? <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) </dd>
<dd><b>DIIL</b> Disable Interrupts and enter Infinite Loop </dd>
<dd><b>DIRFW</b> Do It Right For Once </dd>
<dd><b>DISC</b> DISmount CPU </dd>
<dd><b>DK</b> Destroy Klingons </dd>
<dd><b>DK%WMM</b> Disk Unit &#8211; Washing Machine Mode </dd>
<dd><b>DKP</b> Disavow Knowledge of Programmer </dd>
<dd><b>DLN</b> Don&#8217;t Look Now&#8230; </dd>
<dd><b>DLP</b> Drain Literal Pool </dd>
<dd><b>DMPE</b> Decide to Major in Physical Education </dd>
<dd><b>DMPK</b> Destroy Memory Protect Key </dd>
<dd><b>DO</b> Divide and Overflow </dd>
<dd><b>DOC</b> Drive Operator Crazy </dd>
<dd><b>DPC</b> Decrement Program Counter </dd>
<dd><b>DPK</b> Destroy storage Protect Key </dd>
<dd><b>DPMI</b> Declare Programmer Mentally Incompetent </dd>
<dd><b>DPR</b> Destroy Program </dd>
<dd><b>DPS</b> Disable Power Supply </dd>
<dd><b>DRAF</b> DRAw Flowchart </dd>
<dd><b>DRI</b> Disable Random Interrupt </dd>
<dd><b>DRT</b> Disconnect Random Terminal </dd>
<dd><b>DS</b> Deadlock System </dd>
<dd><b>DSH</b> Destroy Sector Header </dd>
<dd><b>DSI</b> Do Something Interesting </dd>
<dd><b>DSPK</b> Destroy Storage Protect Key </dd>
<dd><b>DSR</b> Detonate Status register </dd>
<dd><b>DSTD</b> Do Something Totally Different </dd>
<dd><b>DSUIT</b> Do Something Utterly, Indescribably Terrible </dd>
<dd><b>DT%FFP</b> DecTape &#8211; Unload and Flappa-Flap </dd>
<dd><b>DT%SHO</b> DecTape &#8211; Spin Hubs Opposite </dd>
<dd><b>DTC</b> Destroy This Command </dd>
<dd><b>DTI</b> Do The Impossible </dd>
<dd><b>DTRT</b> Do The Right Thing </dd>
<dd><b>DTVFL</b> Destroy Third Variable From Left </dd>
<dd><b>DU</b> Dump User </dd>
<dd><b>DUD</b> Do Until Dead </dd>
<dd><b>DW</b> Destroy Work </dd>
<dd><b>DW</b> Destroy World </dd>
<dd><b>DWIM</b> Do What I Mean </dd>
<dd><b>DWIT</b> Do What I&#8217;m Thinking </dd>
<dd><b>EAL</b> Enable AC to Logic rack </dd>
<dd><b>EAO</b> Enable AC to Operator </dd>
<dd><b>EBRS</b> Emit Burnt Resistor Smell </dd>
<dd><b>EC</b> Eject Carriage </dd>
<dd><b>ECL</b> Early Care Lace </dd>
<dd><b>ECO</b> Electrocute Computer Operator </dd>
<dd><b>ECP</b> Erase Card Punch </dd>
<dd><b>ED</b> Eject Disk </dd>
<dd><b>ED</b> Execute Data </dd>
<dd><b>ED</b> Expunge Data [UNIX] </dd>
<dd><b>ED</b> Eject Disk </dd>
<dd><b>EDD</b> Eat Disk and Die </dd>
<dd><b>EDIT</b> Erase Data and Increment Time </dd>
<dd><b>EDR</b> Execute Destructive Read </dd>
<dd><b>EDS</b> Execute Data Segment </dd>
<dd><b>EEP</b> Erase Entire Program </dd>
<dd><b>EFD</b> Eject Floppy Disk </dd>
<dd><b>EIAO</b> Execute In Any Order </dd>
<dd><b>EIO</b> Erase I/O page </dd>
<dd><b>EIOC</b> Execute Invalid OP Code </dd>
<dd><b>EJD</b> d,v Eject disk in drive d with initial velocity v </dd>
<dd><b>EJD%V</b> EJect Disk with initial velocity V </dd>
<dd><b>ELP</b> Enter Loop Permanently </dd>
<dd><b>EM</b> Evacuate Memory </dd>
<dd><b>EMSL</b> Entire Memory Shift Left </dd>
<dd><b>EMT</b> Electrocute Maintenance Technician </dd>
<dd><b>ENA</b> ENable Anything </dd>
<dd><b>ENF</b> Emit Noxious Fumes </dd>
<dd><b>EO</b> Electrocute Operator </dd>
<dd><b>EOB</b> Execute Operator and Branch </dd>
<dd><b>EOI</b> Execute Operator Immediate [a fast version of another instruction] </dd>
<dd><b>EP</b> Execute Programmer </dd>
<dd><b>EPI</b> Execute Programmer Immediate </dd>
<dd><b>EPP</b> Eject Printer Paper </dd>
<dd><b>EPS</b> Electrostatic Print and Smear </dd>
<dd><b>EPS</b> Execute Program Sideways </dd>
<dd><b>EPT</b> Erase Process Table </dd>
<dd><b>EPT</b> Erase Punched Tape </dd>
<dd><b>ERIC</b> Eject Random Integrated Circuit </dd>
<dd><b>ERM</b> Erase Reserved Memory </dd>
<dd><b>EROM</b> Erase Read Only Memory </dd>
<dd><b>EROS</b> Erase Read Only Storage [Sounds like an IBM special!] </dd>
<dd><b>ERS</b> erase read-only storage </dd>
<dd><b>ESB</b> Eject Selectric Ball [from IBM selectric typewriter terminals] </dd>
<dd><b>ESL</b> Exceed Speed of Light </dd>
<dd><b>ESP</b> Enable SPrinkler system </dd>
<dd><b>ETI</b> Execute This Instruction [for recursive programs] </dd>
<dd><b>ETM</b> Emulate Trinary Machine </dd>
<dd><b>EVC</b> Execute Verbal Commands </dd>
<dd><b>EWD</b> Execute Warp Drive </dd>
<dd><b>EXX</b> [A real instruction on the Zilog Z-80 -- Zilog is owned by EXXon] </dd>
<dd><b>FB</b> Find Bugs </dd>
<dd><b>FCJ</b> Feed Card and Jam </dd>
<dd><b>FDR</b> Fill Disk Randomly </dd>
<dd><b>FFF</b> Form Feed Forever </dd>
<dd><b>FLD</b> FLing Disc </dd>
<dd><b>FLI</b> Flash Lights Impressively </dd>
<dd><b>FM</b> Forget Memory </dd>
<dd><b>FMP</b> Finish My Program </dd>
<dd><b>FOPC</b> [Set] False Out-of-paper Condition </dd>
<dd><b>FPC</b> Feed Paper Continuously </dd>
<dd><b>FPT</b> Fire Photon Torpedoes </dd>
<dd><b>FRG</b> Fill with Random Garbage </dd>
<dd><b>FSM</b> Fold, Spindle, and Mutilate </dd>
<dd><b>FSRA</b> Forms Skip and Run Away </dd>
<dd><b>GBB</b> Go to Back of Bus </dd>
<dd><b>GCAR</b> Get Correct Answer Regardless </dd>
<dd><b>GDP</b> Grin Defiantly at Programmer </dd>
<dd><b>GDR</b> Grab Degree and Run </dd>
<dd><b>GENT</b> GENerate Thesis </dd>
<dd><b>GEW</b>{JO} Go to the End of the World {Jump Off} </dd>
<dd><b>GIE</b> Generate Irreversible Error </dd>
<dd><b>GLC</b> Generate Lewd Comment </dd>
<dd><b>GMC</b> Generate Machine Check </dd>
<dd><b>GMCC</b> Generate Machine Check and Cash </dd>
<dd><b>GND</b> Guess at Next Digit </dd>
<dd><b>GORS</b> GO Real Slow </dd>
<dd><b>GREM</b> Generate Random Error Message </dd>
<dd><b>GREP</b> Global Ruin, Expiration and Purgation [UNIX] </dd>
<dd><b>GRMC</b> Generate Rubber Machine Check </dd>
<dd><b>GS</b> Get Strange [randomly inverts bits fed to the instruction decoder] </dd>
<dd><b>GSB</b> Gulp and Store Bytes </dd>
<dd><b>GSI</b> Generate Spurious Interrupts </dd>
<dd><b>GSU</b> Geometric Shift Up </dd>
<dd><b>HAH</b> Halt And Hang </dd>
<dd><b>HCF</b> Halt and Catch Fire </dd>
<dd><b>HCP</b> Hide Central Processor [makes virtual CPU's act like virtual memories] </dd>
<dd><b>HCRS</b> Hang in Critical Section </dd>
<dd><b>HDO</b> Halt and Disable Operator </dd>
<dd><b>HDRW</b> Halt and Display Random Word </dd>
<dd><b>HELP</b> Type &#8220;No help available&#8221; </dd>
<dd><b>HF</b> Hide a File </dd>
<dd><b>HGD</b> Halt, Get Drunk </dd>
<dd><b>HHB</b> Halt and Hang Bus </dd>
<dd><b>HIS</b> Halt in Impossible State </dd>
<dd><b>HOO</b> Hide Operator&#8217;s Output </dd>
<dd><b>HRPR</b> Hang up and Ruin Printer Ribbon </dd>
<dd><b>HUAL</b> Halt Until After Lunch </dd>
<dd><b>IAND</b> Illogical And </dd>
<dd><b>IBR</b> Insert Bugs at Random </dd>
<dd><b>ICB</b> Interrupt, crash and burn </dd>
<dd><b>ICM</b> Immerse Central Memory </dd>
<dd><b>ICMD</b> Initiate Core Melt-Down </dd>
<dd><b>ICSP</b> Invert CRT Screen Picture </dd>
<dd><b>IDC</b> Initiate Destruct Command </dd>
<dd><b>IDI</b> Invoke Divine Intervention </dd>
<dd><b>IDPS</b> Ignore Disk Protect Switch </dd>
<dd><b>IEOF</b> Ignore End Of File </dd>
<dd><b>IF</b> Invoke Force </dd>
<dd><b>IGI</b> Increment Grade Immediately </dd>
<dd><b>IGIT</b> Increment Grade Immediately Twice </dd>
<dd><b>II</b> Inquire and Ignore </dd>
<dd><b>IIB</b> Ignore Inquiry and Branch </dd>
<dd><b>IIB</b> Ignore Interrupt and Branch </dd>
<dd><b>IIC</b> Insert Invisible Characters </dd>
<dd><b>IIL</b> Irreversable Infinite Loop </dd>
<dd><b>IM</b> Imagine Memory </dd>
<dd><b>IMPG</b> IMPress Girlfriend </dd>
<dd><b>INCAM</b> INCrement Arbitrary Memory location </dd>
<dd><b>INOP</b> Indirect No-op </dd>
<dd><b>IOI</b> Ignore Operator&#8217;s Instruction </dd>
<dd><b>IOP</b> Interrupt processor, Order Pizza </dd>
<dd><b>IOR</b> Illogical OR </dd>
<dd><b>IP</b> Increment and Pray </dd>
<dd><b>IPS</b> Incinerate Power Supply </dd>
<dd><b>IPS</b> Increment Processor Status </dd>
<dd><b>IPT</b> Ignite Paper Tape </dd>
<dd><b>IRB</b> Invert Record and Branch </dd>
<dd><b>IRC</b> Insert Random Commands </dd>
<dd><b>IRE</b> Insert Random Errors </dd>
<dd><b>IRPF</b> Infinite Recursive Page Fault </dd>
<dd><b>ISC</b> Ignore Supervisor Calls </dd>
<dd><b>ISC</b> Insert Sarcastic Comments </dd>
<dd><b>ISI</b> Increment and Skip on Infinity </dd>
<dd><b>ISP</b> Increment and Skip on Pi </dd>
<dd><b>ITML</b> Initiate Termites into Macro Library </dd>
<dd><b>IU</b> Ignore User </dd>
<dd><b>JAA</b> Jump Almost Always </dd>
<dd><b>JFM</b> Jump on Full Moon </dd>
<dd><b>JHRB</b> Jump to H&amp;R Block </dd>
<dd><b>JLP</b> Jump and Lose Pointer </dd>
<dd><b>JMAT</b> JuMp on Alternate Thursdays </dd>
<dd><b>JNL</b> Jump when programmer is Not Looking </dd>
<dd><b>JOM</b> Jump Over Moon </dd>
<dd><b>JRAN</b> Jump RANdom [not to be confused with IRAN - Idiots random] </dd>
<dd><b>JRCF</b> Jump Relative and Catch Fire </dd>
<dd><b>JRGA</b> Jump Relative and Get Arrested </dd>
<dd><b>JRN</b> Jump RaNdom </dd>
<dd><b>JRSR</b> Jump to Random Subroutine </dd>
<dd><b>JSU</b> Jump Self Unconditional [the ultimate in iterative programming] </dd>
<dd><b>JT</b> Jump if Tuesday </dd>
<dd><b>JTZ</b> Jump to Twilight Zone </dd>
<dd><b>JWN</b> Jump When Necessary </dd>
<dd><b>KUD</b> Kill User&#8217;s data </dd>
<dd><b>LAGW</b> Load And Go Wrong </dd>
<dd><b>LAP</b> Laugh At Program(mer) </dd>
<dd><b>LCC</b> Load and Clear Core </dd>
<dd><b>LCD</b> Load and Clear Disk </dd>
<dd><b>LCK</b> Lock Console Keyswitch </dd>
<dd><b>LEB</b> Link Edit Backwards </dd>
<dd><b>LIA</b> Load Ineffective Address </dd>
<dd><b>LMB</b> Lose Message and Branch </dd>
<dd><b>LMO</b> Load and Mug Operator </dd>
<dd><b>LMYB</b> Logical MaYBe </dd>
<dd><b>LN</b> Lose inode Number [UNIX] </dd>
<dd><b>LOSM</b> Log Off System Manager </dd>
<dd><b>LP%PAS</b> Line Printer &#8211; Print And Smear </dd>
<dd><b>LP%RDD</b> Line Printer &#8211; Reverse Drum Direction </dd>
<dd><b>LP%TCR</b> Line Printer &#8211; Tangle and Chew Ribbon </dd>
<dd><b>LPA</b> Lead Programmer Astray </dd>
<dd><b>LRD</b> Load Random Data </dd>
<dd><b>LSBL</b> Lose Super BLock [UNIX only] </dd>
<dd><b>LUM</b> LUbricate Memory </dd>
<dd><b>LWM</b> Load Write-only Memory </dd>
<dd><b>MAB</b> Melt Address Bus </dd>
<dd><b>MAN</b> Make Animal Noises </dd>
<dd><b>MAZ</b> Multiply Answer by Zero </dd>
<dd><b>MBC</b> Make Batch Confetti </dd>
<dd><b>MBH</b> Memory Bank Hold-up </dd>
<dd><b>MBTD</b> Mount Beatles on Tape Drive </dd>
<dd><b>MBTOL</b> Move Bugs to Operator&#8217;s Lunch </dd>
<dd><b>MC</b> Move Continuous </dd>
<dd><b>MD</b> Move Devious </dd>
<dd><b>MDB</b> Move and Drop Bits </dd>
<dd><b>MDDHAF</b> Make Disk Drive Hop Across Floor [Stevans's favorite (he made it up)] </dd>
<dd><b>MLP</b> Multiply and Lose Precision </dd>
<dd><b>MLR</b> Memory Left Shift and Branch </dd>
<dd><b>MLR</b> Move and Lose Record </dd>
<dd><b>MLSB</b> Memory Left Shift and Branch </dd>
<dd><b>MMLG</b> Make Me Look Good </dd>
<dd><b>MNI</b> Misread Next Instruction </dd>
<dd><b>MOP</b> Modify Operator&#8217;s Personality </dd>
<dd><b>MOU</b> MOunt User [causes computer to screw you once again] </dd>
<dd><b>MPLP</b> Make Pretty Light Pattern </dd>
<dd><b>MSGD</b> Make Screen Go Dim </dd>
<dd><b>MSIP</b> Make Sure Plugged In </dd>
<dd><b>MSR</b> Melt Special Register </dd>
<dd><b>MT%HRDV</b> MagTape &#8211; High speed Rewind and Drop Vacuum </dd>
<dd><b>MTI</b> Make Tape Invalid </dd>
<dd><b>MW</b> Malfunction Whenever </dd>
<dd><b>MWC</b> Move and Wrap Core </dd>
<dd><b>MWK</b> multiply work </dd>
<dd><b>MWT</b> Malfunction Without Telling </dd>
<dd><b>NTGH</b> Not Tonight, I&#8217;ve Got a Headache </dd>
<dd><b>OCF</b> Open Circular File </dd>
<dd><b>OML</b> Obey Murphy&#8217;s Laws </dd>
<dd><b>OPP</b> Order Pizza for Programmer </dd>
<dd><b>OSI</b> Overflow Stack Indefinitely </dd>
<dd><b>OTL</b> Out To Lunch </dd>
<dd><b>PAS</b> Print And Smear </dd>
<dd><b>PAUD</b> PAUse Dramatically </dd>
<dd><b>PAZ</b> Pack Alpha Zone </dd>
<dd><b>PBC</b> Print and Break Chain </dd>
<dd><b>PBD</b> Print and Break Drum </dd>
<dd><b>PBM</b> Pop Bubble Memory </dd>
<dd><b>PBPBPBP</b> Place Backup in Plain Brown Paper Bag, Please [for stealing code] </dd>
<dd><b>PBST</b> Play Batch mode Star Trek </dd>
<dd><b>PCI</b> Pleat Cards Immediate </dd>
<dd><b>PCR</b> Print and Cut Ribbon </dd>
<dd><b>PD</b> Punch Disk </dd>
<dd><b>PEHC</b> Punch Extra Holes in Cards </dd>
<dd><b>PFE</b> Print Floating Eye [Roguers look out!] </dd>
<dd><b>PFML</b> Print Four Million Lines </dd>
<dd><b>PI</b> Punch Invalid </dd>
<dd><b>PIBM</b> Pretend to be an IBM </dd>
<dd><b>PIC</b> Print Illegible Characters </dd>
<dd><b>PIC</b> Punch Invalid Character </dd>
<dd><b>PNRP</b> Print Nasty replies to Programmer </dd>
<dd><b>PO</b> Punch Operator </dd>
<dd><b>POFF</b> Power Off </dd>
<dd><b>PON</b> Power On </dd>
<dd><b>POPN</b> Punch OPerator&#8217;s Nose </dd>
<dd><b>PPA</b> Print Paper Airplanes </dd>
<dd><b>PPL</b> Perform Perpetual Loop </dd>
<dd><b>PPP</b> Print Programmer&#8217;s Picture </dd>
<dd><b>PPSW</b> Pack Program Status Word </dd>
<dd><b>PRS</b> Print And Smear </dd>
<dd><b>PSP</b> Print and Shred Paper </dd>
<dd><b>PSR</b> Print and Shred Ribbon </dd>
<dd><b>QWA</b> Quit While Ahead </dd>
<dd><b>RA</b> Randomize Answer </dd>
<dd><b>RAM</b> Reorganize and Abort Monitor </dd>
<dd><b>RASC</b> Read And Shred Card </dd>
<dd><b>RAST</b> Read and Shred Tape </dd>
<dd><b>RAST</b> Rewind And Stretch Tape </dd>
<dd><b>RAU</b> Ridicule All Users </dd>
<dd><b>RBA</b> Random Branch Anywhere </dd>
<dd><b>RBAO</b> Ring Bell and Annoy Operator </dd>
<dd><b>RBG</b> Random Bug Generate </dd>
<dd><b>RBLY</b> Restore Backup from Last Year </dd>
<dd><b>RBT</b> Read and Break Tape </dd>
<dd><b>RBT</b> Read Blank Tape </dd>
<dd><b>RBT</b> Rewind and Break Tape </dd>
<dd><b>RCAJ</b> Read Card And Jam </dd>
<dd><b>RCB</b> Read Commands Backwards </dd>
<dd><b>RCB</b> Run Clock Backwards </dd>
<dd><b>RCC</b> Read Card and Chew </dd>
<dd><b>RCCP</b> Randomly Corrupt Current Process </dd>
<dd><b>RCF</b> Rewind Cabinet Fans </dd>
<dd><b>RCKG</b> Read Count Key and Garbage </dd>
<dd><b>RCR</b> Rewind Card Reader </dd>
<dd><b>RCRV</b> Randomly Convert to Reverse Video </dd>
<dd><b>RCSD</b> Read Card and Scramble Data </dd>
<dd><b>RD</b> Randomize Data </dd>
<dd><b>RDA</b> Refuse to Disclose Answer </dd>
<dd><b>RDD</b> Reverse Disk Drive </dd>
<dd><b>RDF</b> Randomize Directory Filenames </dd>
<dd><b>RDI</b> Reverse Disk Immediate </dd>
<dd><b>RENVR</b> Rename Variables Randomly </dd>
<dd><b>RET</b> Read and Erase Tape </dd>
<dd><b>RIC</b> Rotate Illogical thru Carry </dd>
<dd><b>RID</b> Read Invalid Data </dd>
<dd><b>RIR</b> Read Invalid Record </dd>
<dd><b>RIRG</b> Read Inter-Record Gap </dd>
<dd><b>RIRG</b> Rewrite Inter-Record Gap [random replacement of similar mnemonic] </dd>
<dd><b>RLC</b> Re-read last card </dd>
<dd><b>RLC</b> Relocate and Lose Core </dd>
<dd><b>RLI</b> Rotate Left Indefinitely </dd>
<dd><b>RLP</b> Refill Light Pen </dd>
<dd><b>RLP</b> Rewind Line Printer </dd>
<dd><b>RM</b> Ruin My files [UNIX] </dd>
<dd><b>RMI</b> Randomize Memory Immediate </dd>
<dd><b>RMV</b> Remove Memory Virtues </dd>
<dd><b>RN</b> Read Noise </dd>
<dd><b>RNBS</b> Reflect Next Bus Signal </dd>
<dd><b>RNR</b> Read Noise Record </dd>
<dd><b>ROD</b> ROtate Diagonally </dd>
<dd><b>ROM</b> Read Operator&#8217;s Mind </dd>
<dd><b>ROOP</b> Run Out Of Paper </dd>
<dd><b>ROPF</b> Read Other People&#8217;s Files </dd>
<dd><b>ROS</b> Reject Op System </dd>
<dd><b>ROS</b> Return On Shield </dd>
<dd><b>ROT</b> Rotate Disk [fixes broken drives] </dd>
<dd><b>RP</b> Read Printer </dd>
<dd><b>RPB</b> Raise Parity Bits </dd>
<dd><b>RPBR</b> Reverse Parity and BRanch </dd>
<dd><b>RPC</b> Randomize Program Counter </dd>
<dd><b>RPM</b> Read Programmer&#8217;s Mind </dd>
<dd><b>RPU</b> Read character and Print Upside down </dd>
<dd><b>RRB</b> Read Record and Blush </dd>
<dd><b>RRC</b> Rotate Random thru Carry </dd>
<dd><b>RRR</b> Read Record and Run away </dd>
<dd><b>RRRL</b> Random Rotate Register Left </dd>
<dd><b>RRSG</b> Round and Round She Goes&#8230; </dd>
<dd><b>RRSGWSSNK</b> Round and Round She Goes, Where She Stops, Nobody Knows </dd>
<dd><b>RRT</b> record and rip tape </dd>
<dd><b>RS</b> Random Slew </dd>
<dd><b>RSD</b> Read and Scramble Data </dd>
<dd><b>RST</b> Rewind and Stretch Tape </dd>
<dd><b>RT</b> Reduce Throughput </dd>
<dd><b>RT</b> Reverse Throughput </dd>
<dd><b>RTS</b> Return To Sender </dd>
<dd><b>RWD</b> rewind disk </dd>
<dd><b>RWS</b> Return With Shield </dd>
<dd><b>SAD</b> Seek And Destroy </dd>
<dd><b>SAI</b> Skip All Instructions </dd>
<dd><b>SAS</b> Sit And Spin </dd>
<dd><b>SC</b> Scramble Channels </dd>
<dd><b>SC</b> Shred Cards </dd>
<dd><b>SCB</b> Spindle Card and Belch </dd>
<dd><b>SCCA</b> Short Circuit on Correct Answer </dd>
<dd><b>SCH</b> Slit Cards Horizontal </dd>
<dd><b>SCI</b> Shred Cards Immediate </dd>
<dd><b>SCOM</b> Set Cobol-Only Mode </dd>
<dd><b>SCRRC</b> SCRamble Register Contents </dd>
<dd><b>SCST</b> Switch Channel to Star Trek </dd>
<dd><b>SCTR</b> Stick Card To Reader </dd>
<dd><b>SD</b> Scramble Directory </dd>
<dd><b>SD</b> Slip Disk </dd>
<dd><b>SDC</b> Spool Disk to Console </dd>
<dd><b>SDDB</b> Snap Disk Drive Belt </dd>
<dd><b>SDE</b> Solve Differential Equations </dd>
<dd><b>SDI</b> Self Destruct Immediately </dd>
<dd><b>SEB</b> Stop Eating and Burp </dd>
<dd><b>SEX</b> Set EXecution register [a real instruction for the RCA 1802] </dd>
<dd><b>SEX</b> Sign EXtend </dd>
<dd><b>SFH</b> Set Flags to Half mast </dd>
<dd><b>SFT</b> Stall For Time </dd>
<dd><b>SFTT</b> Strip Form Tractor Teeth </dd>
<dd><b>SHB</b> Stop and Hang Bus </dd>
<dd><b>SHCD</b> SHuffle Card Deck </dd>
<dd><b>SHIT</b> Stop Here If Thursday </dd>
<dd><b>SHON</b> Simulate HONeywell CPU [permanent NO-OP] </dd>
<dd><b>SHRC</b> SHRed Card </dd>
<dd><b>SHRT</b> SHRed Tape </dd>
<dd><b>SID</b> Switch to Infinite Density </dd>
<dd><b>SLP</b> Sharpen Light Pencil </dd>
<dd><b>SMC</b> Scramble memory contents </dd>
<dd><b>SMD</b> Spontaneous Memory Dump (Use only with classified data) </dd>
<dd><b>SMS</b> Shred Mylar Surface </dd>
<dd><b>SMT</b> Stretch MagTape </dd>
<dd><b>SNM</b> Show No Mercy </dd>
<dd><b>SOAWP</b> SOlve All the World&#8217;s Problems </dd>
<dd><b>SOB</b> [a real PDP-11 instruction] </dd>
<dd><b>SOD</b> Surrender Or Die! </dd>
<dd><b>SOP</b> Stop and Order Pizza </dd>
<dd><b>SOS</b> Sign Off, Stupid </dd>
<dd><b>SP</b> Scatter Print </dd>
<dd><b>SPA</b> Sliding Point Arithmetic </dd>
<dd><b>SPS</b> Smoke Power Supply </dd>
<dd><b>SPSW</b> Scramble Program Status Word </dd>
<dd><b>SRBO</b> Set Random Bits to Ones </dd>
<dd><b>SRBZ</b> Set Random Bits to Zeroes </dd>
<dd><b>SRC</b> Skip to Random Channel </dd>
<dd><b>SRCC</b> Select Reader and Chew Cards </dd>
<dd><b>SRD</b> Switch to Random Density </dd>
<dd><b>SRDR</b> Shift Right, Double Ridiculous </dd>
<dd><b>SRO</b> Sort with Random Ordering </dd>
<dd><b>SRR</b> Set Registers to Random values [usually used prior to a RET or RTS] </dd>
<dd><b>SRR</b> Shift Registers Random </dd>
<dd><b>SRSD</b> Seek Record and Scratch Disk </dd>
<dd><b>SRU</b> Signoff Random User </dd>
<dd><b>SRZ</b> Subtract and Reset to Zero </dd>
<dd><b>SSB</b> Scramble Status Byte </dd>
<dd><b>SSD</b> Seek and Score Disk [good for testing] </dd>
<dd><b>SSD</b> Stacker Select Disk </dd>
<dd><b>SSJ</b> Select Stacker and Jam </dd>
<dd><b>SSJP</b> Select Stacker and Jump </dd>
<dd><b>SSM</b> Solve by Supernatural Means </dd>
<dd><b>SSM</b> Stacker Select Memory </dd>
<dd><b>SSP</b> Smoke and SPark </dd>
<dd><b>SSP</b> Seek SPindle </dd>
<dd><b>SST</b> Stop and Stretch Tape </dd>
<dd><b>ST</b> Set and Test </dd>
<dd><b>STD</b> Stop, take drugs </dd>
<dd><b>STPR</b> SToP Rain </dd>
<dd><b>STTHB</b> Set Terminal to Three Hundred Baud </dd>
<dd><b>SUI</b> Subtract User&#8217;s IQ </dd>
<dd><b>SUME</b> Surprise Me </dd>
<dd><b>SUP</b> Solve Unsolvable Problem </dd>
<dd><b>SUR</b> Screw Up Royally </dd>
<dd><b>SUS</b> Stop Until Spring </dd>
<dd><b>SUS</b> Subract Until Senseless </dd>
<dd><b>SWAT</b> SWAp Terminals </dd>
<dd><b>SWN</b> SWap Nibbles </dd>
<dd><b>SWOS</b> SWap out Operating System </dd>
<dd><b>SWS</b> Sort to Wrong Slots </dd>
<dd><b>SWT</b> Select Wrong Terminal </dd>
<dd><b>SZD</b> Switch to Zero Density </dd>
<dd><b>TARC</b> Take Arithmatic Review Course </dd>
<dd><b>TBFTG</b> Two Burgers and Fries To Go </dd>
<dd><b>TDB</b> Transfer and Drop Bits </dd>
<dd><b>TDS</b> Trash Data Segment </dd>
<dd><b>TLNF</b> Teach me a Lesson I&#8217;ll Never Forget </dd>
<dd><b>TLO</b> Turn indicator Lights Off </dd>
<dd><b>TLW</b> Transfer and Lose Way </dd>
<dd><b>TN</b> Take a Nap </dd>
<dd><b>TOG</b> Time Out, Graduate </dd>
<dd><b>TOH</b> Take Operator Hostage </dd>
<dd><b>TOO</b> Turn On/Off operator </dd>
<dd><b>TOS</b> Trash Operating System </dd>
<dd><b>TPD</b> Triple Pack Decimal </dd>
<dd><b>TPDH</b> Tell Programmer to Do it Him/Her self </dd>
<dd><b>TPN</b> Turn Power On </dd>
<dd><b>TPO</b> Turn Power Off </dd>
<dd><b>TPR</b> Tear PapeR </dd>
<dd><b>TR</b> Turn into Rubbish [UNIX] </dd>
<dd><b>TRA</b> Te Rdls Arvs [Type Ridiculous Abbreviations] </dd>
<dd><b>TSH</b> Trap Secretary and Halt </dd>
<dd><b>TSM</b> Trap Secretary and Mount </dd>
<dd><b>TST</b> Trash System Tracks </dd>
<dd><b>TT%CNK</b> TeleType &#8211; Clunk Noise </dd>
<dd><b>TT%EKB</b> TeleType &#8211; Electrify KeyBoard </dd>
<dd><b>TTA</b> Try, Try Again </dd>
<dd><b>TTITT</b> Turn 2400 foot tape Into Two 1200 foot tapes </dd>
<dd><b>TTL</b> Time To Log off </dd>
<dd><b>UAI</b> Use Alternate Instruction set </dd>
<dd><b>UCB</b> Uncouple Communication lines and Break </dd>
<dd><b>UCK</b> Unlock Console Keyswitch </dd>
<dd><b>UCPUB</b> Uncouple CPU and Branch </dd>
<dd><b>UDR</b> Update and Delete Record </dd>
<dd><b>UMR</b> Unlock Machine Room </dd>
<dd><b>UOP</b> Useless Operation </dd>
<dd><b>UP</b> Understand Program </dd>
<dd><b>UTF</b> Unwind Tape onto Floor </dd>
<dd><b>UUBR</b> Use Undefined Base Register </dd>
<dd><b>VAX</b> Violate All executions </dd>
<dd><b>VFE</b> Violate Field Engineer </dd>
<dd><b>VFO</b> Violate Female Operator </dd>
<dd><b>VMA</b> Violate Maintenance Agreement </dd>
<dd><b>VNO</b> Violate Noise Ordinance </dd>
<dd><b>VPA</b> Vanishing Point Arithmetic </dd>
<dd><b>VVM</b> Vaporise Virtual Memory </dd>
<dd><b>WAD</b> Walk Away in Disgust </dd>
<dd><b>WC</b> Waste Core [UNIX] </dd>
<dd><b>WCR</b> Write to Card Reader </dd>
<dd><b>WED</b> write and erase data </dd>
<dd><b>WGPB</b> Write Garbage in Process-control Block </dd>
<dd><b>WHP</b> Wave Hands over Problem </dd>
<dd><b>WI</b> Why Immediate </dd>
<dd><b>WID</b> Write Invalid Data </dd>
<dd><b>WNHR</b> Write New Hit Record </dd>
<dd><b>WNR</b> Write Noise Record </dd>
<dd><b>WPET</b> Write Past End of Tape </dd>
<dd><b>WSE</b> Write Stack Everywhere </dd>
<dd><b>WSWW</b> Work in Strange and Wonderous Ways </dd>
<dd><b>WUPO</b> Wad Up Printer Output </dd>
<dd><b>WWLR</b> Write Wrong Length Record </dd>
<dd><b>WWR</b> Write Wrong Record </dd>
<dd><b>XIO</b> Execute Invalid Op code </dd>
<dd><b>XKF</b> Execute Kermit the Frog </dd>
<dd><b>XMB</b> Exclusive MayBe </dd>
<dd><b>XOH</b> Execute no-Op and Hang </dd>
<dd><b>XOR</b> Execute OperatoR </dd>
<dd><b>XOS</b> Exchange Operator&#8217;s Sex </dd>
<dd><b>XPR</b> Execute Programmer </dd>
<dd><b>XVF</b> Exchange Virtue for Fun </dd>
<dd><b>YKWIM</b> You Know What I Mean </dd>
<dd><b>ZAP</b> Zero and Add Packed </dd>
<dd><b>ZD</b> Zap Directory </dd>
<dd><b>ZPI</b> ZaP Immediate</dd>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/microcontrollers.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/microcontrollers.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=12&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2008/03/30/humorous-instruction-set/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
		<item>
		<title>Explaining the Cypress PSOC Choice</title>
		<link>http://microcontrollers.wordpress.com/2008/03/29/explaining-the-cypress-psoc-choice/</link>
		<comments>http://microcontrollers.wordpress.com/2008/03/29/explaining-the-cypress-psoc-choice/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 10:18:02 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[PSOC]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Cypress Designer]]></category>
		<category><![CDATA[Cypress Express]]></category>
		<category><![CDATA[Cypress PSOC]]></category>

		<guid isPermaLink="false">http://microcontrollers.wordpress.com/?p=11</guid>
		<description><![CDATA[Explaining the PSOC Choice. PSOC is an acronym that stands for &#8220;Programmable System On a Chip&#8221;, and that, as often happens in the world of electronics, indicates substantially different devices, compared with the seemingly similar acronyms SOC &#8220;System On a Chip&#8221;, which point at highly integrated digital components, but usually lacking analog modules. PSOC is, unlike the generic acronym SOC, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=11&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Explaining the PSOC Choice.<br />
PSOC is an acronym that stands for &#8220;Programmable System On a Chip&#8221;, and that, as often happens in the world of electronics, indicates substantially different devices, compared with the seemingly similar acronyms SOC &#8220;System On a Chip&#8221;, which point at highly integrated digital components, but usually lacking analog modules.<br />
PSOC is, unlike the generic acronym SOC, a product of the American company Cypress Semiconductors, and integrates both analog and digital subcomponents on the same chip. Often PSOC are called &#8220;mixed signal matrix&#8221; because they are programmable arrays, where the signals are processed at the same time in analog and digital form. <br />
This far, we have just touched the boring subject of taxonomy nomenclature of a peculiar subtype of electronic devices, which apparently does not mean a lot.</p>
<p>PSOC is important, and in some ways even revolutionary, as it changes for good the way we design and make electronic appliances, in ways that are of paramount importance for a small company, as they offer opportunities to improve its competitiveness.<br />
In a PSOC we find a number of modules, which are user configurable by writing into registers. These modules can be interconnected with one another through internal busses. These programmable modules, depending on their programming, actually &#8220;become&#8221; a peripheral device. E.g. depending on how they are programmed they can become an amplifier or a programmable filter, while more complex devices are  obtained by combining with several modules. For instance, a digital analog converter can be obtained by combining together an analog comparator, a programmable voltage generator (DAC) and a counter or a decimator. A simplification of the operation of a digital converter can be rapidly summarised as follows: The counter scans the range of binary values, the programmable voltage generator converts each of them into a voltage, while the comparator indicates which of the values generated corresponds to the voltage to be measured. Of course, many more possible types of analog-digital converters are possible, each using different techniques and approaches, depending on the accuracy and speed required, and which &#8220;consume&#8221; more or fewer modules available. This means that you can implement different resolutions and different sampling techniques. All this is done &#8220;automagically&#8221; by Cypress development software. If we need a measuring amplifier or a filter to condition the signal, we can place and program that too along the signal chain. This way of working is in sharp contrast to what happens with virtually all other traditional microcontrollers. With traditional microcontrollers, if at some point, we realize that there aren&#8217;t enough bits of resolution in the ADC, or that its sampling frequency is wrong, it is almost always necessary to go back to the drawing board, select another component, maybe belonging the same family, but whose peripheral programming will be different. To add insult to injury, the pins devoted to analog signals are almost certainly mapped differently and cannot be &#8220;moved around&#8221;. If we had printed circuit boards designed, this means we have to have then redone from scratch, and we have to rewrite the firmware as well.</p>
<p>With PSOC, we can decide whether we need converters between 6 and 14 bits, based on different principles of operation, and we can deploy them on the same component. We can reroute pins to our heart content. Similarly, you can have PWMs and digital timers: Will four 8-bit do or is it better to have one 32-bit counter? The designer can choose, and will have to deal with tradeoffs, as there is a finite number of elementary digital modules in a PSOC. However, this is a true revolution in terms of designer freedom.<br />
The PSOC can even be reconfigured on the run, e.g. if a PSOC is used in a transceiver, it is possible to implement the functions of a radio receiver when a &#8220;push to talk&#8221; button is released. When you press the &#8220;push-to talk&#8221;, it is possible to reconfigurare the radio as a transmitter, using the same hardware. Cypress  marketing indicates this feature with the slogan &#8220;Use 400% of your resources.&#8221; As always, Marketing is pushing things a little, since this feature is practically limited by reaction time, computing power, memory on board, which makes &#8220;200%&#8221; a target not always easy to achieve. <br />
This seems all very complicated… Indeed it is, but the beauty of this approach is that all the configuration activity does not take place &#8221;by hand&#8221; insertion of binary codes inside registers, but rather through a visual tool: &#8220;pseudocomponents&#8221; that implement functions are choosen from a palette, while you can browse their characteristics from the instantly recallable datasheet.</p>
<p>The development system automatically generates the configuration and initialization, which the designer usually has no need to worry about. For example, the design software can then automatically convert projects based on a given PSOC to another. <br />
Cypress offers two development environments, PSOC Express, which is used for rapid prototyping and that does not require knowledge of programming languages, and one for the design of &#8220;production level&#8221; projects, PSOC Designer, which allows fine control by means of C and assembler programming.</p>
<p>I must admit being initially very skeptical about PSOC Express, as designer: I was not convinced a &#8220;generator applications&#8221; could produce anything remotely viable. Actually PSOC Express, although not very intuitive, is indeed really easy to use and readilt implements almost everything needed, thanks to a &#8220;visual syntax&#8221; that allows the designer to draw from concepts such as priority encoders, tables decoding , finite state machines, delays. Express works at a more abstract level than &#8220;writing code&#8221;. PSOC Express moves into the realm of entity-level application, an object-oriented and visual way. For example, an accelerometer in PSOC express, including data acquisition and signal conditioning is represented as a visual &#8220;component&#8221;, as is a an USB interface. I have personally witnessed that is actually possible to build a software test, and verifying a hardware system in a few tens of minutes. A dear friend and fellow designer became tangle in a mess, trying to solve a problem equivalent to the one that I faced, which I solved in a few days. The difference between the two designers? I had at my disposal a set of high-level APIs and the ability to perform experiments and validate approaches in a few minutes, while he was forced to bang bits into registers in C and Assembler.</p>
<p>The last time I heard from him, he did not know yet if his trouble was at hardware or software level.  <br />
After quickly building a conceptual prototype with PSOC Express, having determined that there are no macroscopic errors , it is possible to refine a project with PSOC Designer. With PSOC Designer it is possible to achieve a complete control at device-level in C ad Assembler, and have circuit emulation. But at this stage we are already certain that all the basic pieces of the puzzle fit together, and we can progress at speed. <br />
In each of the two development systems, most of the complexity of the project is handled automatically by a visual tool. If needed, the designer can intervene at a very low level, even modifying projects initially developed in Express, with PSOC Designer.</p>
<p>This approach is a huge innovation in a field where very little has changed during the last thirty years.</p>
<p>We can say with good confidence that there are no competing products with the same characteristics. In particular, anyone who has tried to convert a project developed for the same family (say 8051) on a similar core, and can use only traditional tools, knows this can become a nightmare. Doing this &#8220;automatically&#8221; sounds very sci-fi.  With PSOC tools this is not just a dream but a daily reality, which usually results in automatic translation of mapping between devices, often in matter of a few minutes.<br />
It seems to be back to the times of general electronic kits on breadboards, which provided a number of components, which we could freely interconnect, giving free room to our imagination.  PSOC is really a general purpose kit on a chip. In only a few square millimeters of space it contains a large number of complex programmable and controllable from a digitally microcontroller. <br />
In terms of computing power MIPS, I admit that speed and computing power is not the main selling point in the current PSOC breed. PSOC performance is comparable to a good 8-bit microcontroller, but not to an exceptional one: clock goes up to 24 MHz, but with instructions often taking many clock cycles and having very few registers (four: status, accumulator, index, stack). Cypress announced almost a year ago that the evolution of the current PSOC will be based on two new cores, one based on a 8051 core and a more powerful based on ARM.<br />
For the moment being, while we wait for more powerful versions, PSOC business is definitely not processing power at high-speed, but is rather reduction of PCB real estate and cheap, low count BOMs.<br />
PSOC do not have a low unit cost, compared to otherseemingly cheaper solutions. However the cost of a PSOC based  project is nonetheless often less expensive: Their advantage in logistics terms is the huge reduction in stocks of different parts, as well as the need for fewer external connections, fewer components and hence greater reliability. It is useful to remember that, potentially, every single welding spot can introduce a fault. A component that allows you to have an subsystem integrated on a chip breaks down, statistically speaking,  a lot less often. Moreover, it is not rare to be able to cut down the number of components by 50 or 60%, as well as the physical dimensions of the system.</p>
<p>With a PSOC we rarely need to to place components such as a crystals, resistors and capacitors. Passive components are often just an optional extra.<br />
PSOC are currently used in many successful innovative products, in particular, CAPSENSE technology, replace buttons and knobs with capacitive sensors sensitive to the touch. Capsens is employed widely in consumer appliances such as, white goods, phones, mp3 players. Cypress&#8217; Capsense  is based on a sophisticated delta modulation , driven by a pseudorandom oscillator, which allows for high sensitivity, noise immunity, the ability to adapt to environment temperature, and to operate in adverse conditions such as rain.<br />
For a small or medium enterprise this mean that PSOC can enable tackling technological projects, with the certainty of reaching a result, thanks to a powerful and reliable development environment. PSOC introduce the ability of modifying and reconfiguring almost all aspects of the project at low cost: We are no longer limited to peripherals mapped to fixed positions, tied to the specific pins. In case of a mistake, it is almost always possible to reconfigure and correct it without redoinf printed circuit boards and having to restart from from scratch each time. <br />
Thus the project risk, and initial investment decreases significantly, as does &#8220;time to market&#8221;, which is always critical in how it allows to distance (or pursue) competition. To some extent, it is possible to update a product at hardware level, involving the analog part, after it was delivered to the customer.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/microcontrollers.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/microcontrollers.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=11&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2008/03/29/explaining-the-cypress-psoc-choice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
		<item>
		<title>Cypress Express 3.0 for Cypress PSOC, I&#8217;m a convert!</title>
		<link>http://microcontrollers.wordpress.com/2008/03/14/cypress-express-30-for-cypress-psoc-im-a-convert/</link>
		<comments>http://microcontrollers.wordpress.com/2008/03/14/cypress-express-30-for-cypress-psoc-im-a-convert/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 13:24:09 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[PSOC]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[embedded development]]></category>
		<category><![CDATA[embedded technology]]></category>
		<category><![CDATA[I2C]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[PSOC development]]></category>
		<category><![CDATA[PSOC Express]]></category>

		<guid isPermaLink="false">http://microcontrollers.wordpress.com/?p=10</guid>
		<description><![CDATA[I must admit that, being an old timer, I had considered that software tool with loads of suspicion. &#8220;No coding necessary&#8221; probably triggered some nerdish response of mine, a shrug full of contempt, close to &#8220;I very much doubt a thing can write code better than I&#8221; &#8230; Well, I eventually found out what Express [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=10&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I must admit that, being an old timer, I had considered that software tool with loads of suspicion.</p>
<p>&#8220;No coding necessary&#8221; probably triggered some nerdish response of mine, a shrug full of contempt, close to &#8220;I very much doubt a <strong>thing</strong> can write code better than I&#8221; &#8230;</p>
<p>Well, I eventually found out what Express is all about.</p>
<p>Cypress Express is an excellent tool when it comes to blazingly fast prototyping.</p>
<p>It is true that it cannot beat me or any pro in generating optimised and finely hand optimised, tuned code.</p>
<p>However where this exceptional application really shines is testing hardware, with proven projects, in less time you can say 1 2 3 (wait, no, just a little bit longer than that).</p>
<p>I have a friend who, a few weeks ago, kept complaining that he was late, had to work during week ends because of a problem with a I2C bus interface, having forgotten that some bit had changed address from one release of a datasheet and another belonging to newer silicon.</p>
<p>Well, sure as hell he is not using, contrary to my suggestions, Cypress! He is using another vendor which does not provide a confortable and practical API, and tools which make programming I2C a dependable and quick activity.</p>
<p>He has been toiling with that thing for about a month, and my friend ended up becoming even less amiable than he usually is. I had to double check whether a system I am designing talks on I2C bus properly, and I wrote and tested <strong>both</strong> sides of the communication in less than one hour, and it took me so long because I like to keep a relaxed approach and proceed methodically, with order.</p>
<p>I had prepared a logiscope, ready at hand, and I found out I was not going to need it to debug anything, because everything worked, just fine, at first attempt. I was almost disappointed: gee, this thing is keeping me from getting all the fun! Anyway, I don&#8217;t know if it is even worth posting this small, but useful I2C bus monitor on this blog, as the application is so easy that it is trivial:</p>
<p>In Express you just need to place on the canvas the icons of I2C slave interface, a valuator, the icon of a LCD panel. You then fill in properties (I2C address being the most important), edit the transfer function (which is something like &#8220;if 1 then Display=I2C_value). You assign pins, and program the unit.</p>
<p>That&#8217;s all, finished, presto! Building a radio remote control with PSOC wUSB is not nearly more complex than that: a working prototype is something you can assemble on Cypress evaluation boards in less than 15 minutes, from scratch.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/microcontrollers.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/microcontrollers.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=10&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2008/03/14/cypress-express-30-for-cypress-psoc-im-a-convert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
		<item>
		<title>Cypress PSOC USB in a nutshell</title>
		<link>http://microcontrollers.wordpress.com/2008/03/14/cypress-psoc-usb-in-a-nutshell/</link>
		<comments>http://microcontrollers.wordpress.com/2008/03/14/cypress-psoc-usb-in-a-nutshell/#comments</comments>
		<pubDate>Fri, 14 Mar 2008 13:05:23 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[PSOC]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[USB]]></category>

		<guid isPermaLink="false">http://microcontrollers.wordpress.com/?p=9</guid>
		<description><![CDATA[Cypress PSOC USB are present on some members of the PSOC family, eg on 24000, which is the only chip containing practically all the PSOC capabilities: digital/analog mixed signal matrix, capsense, USB. PSOC USB has some limitation. It is true that PSOC implement USB 2.0, but only with a maximum speed of 12 Mb/sec. This is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=9&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cypress PSOC USB are present on some members of the PSOC family, eg on 24000, which is the only chip containing practically all the PSOC capabilities: digital/analog mixed signal matrix, capsense, USB.</p>
<p>PSOC USB has some limitation. It is true that PSOC implement USB 2.0, but only with a maximum speed of 12 Mb/sec. This is not USB 1.1, as you can be 2.0 compliant, but still unable to go faster than what in USB trade jargon is called &#8220;high speed&#8221;, that is 12 Megabyte per second.</p>
<p>All you can have is 4 access points plus the control access point, i.e.: as all access point besides the mandatory control point in monodirectional you can have 2 upstrem and 2 downstream, or any combination of 4. The buffers cannot be longer than 1K, and be warned that the PSOC is not a very fast microcontroller either.</p>
<p>A Cypress FAE recommendes sticking to approaches not involving the need for the development of a custom driver. As maximum speed is 12 Mb/sec this approach is viable, as it may involve the development of either a HID based project or USB com emulation, rather than custom driver development, which tends to verge on the really expensive very quickly. A HID (human interface device) does not need a driver as it is part of core Windows driver, and work with ANY versions of Windows, so, no angry calls to support are to be expected.</p>
<p>HID interfaces have recently achieved a speed capability of 12 Mb/sec. previously, this approach was limited to 64K/sec, which is however more than enough for most simple controls, but is not sufficient for those needing bulk data transfers or streaming.</p>
<p>So, PSOCs do not offer all USB 2.0 has to offer, but are a quickpath in getting things done, if your needs don&#8217;t involve streaming video in real time or any application requiring a throughput of 480 Mb/sec.</p>
<p>They are simple, and tools are generosly provided by Cypress which simplify the design of HID devices, these tools, with other vendors you either don&#8217;t have, or have to pay for. If you want to achieve 480 Mb/sec transfers, other, more specific Cypress components exist which are better suited for the job.</p>
<p>Cypress PSOC, even in USB never really shines in anything but integration: it is a small component which contains an amazing lot of possibilities, e.g.: you can sample a capacitive keyboard, sample and filter a voltage, connect to a wireless radio, drive I2c bus devices, and have USB, all in one chip.</p>
<p>This is a feat no Cypress competitor, at the current state of the art, can claim being able to achieve.</p>
<p>These components have been studied in order to reduce BOM: even the pullup resistors needed by the interface are integrated, because havint to add them externally would involve a more complexity and cost.</p>
<p><span id="more-9"></span> </p>
<p><a target="_blank" href="http://fwlab.com">FwLab</a> professional firmware development</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/microcontrollers.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/microcontrollers.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=9&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2008/03/14/cypress-psoc-usb-in-a-nutshell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
		<item>
		<title>Parallel data processing/computations &#8211; do we need them?</title>
		<link>http://microcontrollers.wordpress.com/2008/03/04/parallel-data-processingcomputations-do-we-need-them/</link>
		<comments>http://microcontrollers.wordpress.com/2008/03/04/parallel-data-processingcomputations-do-we-need-them/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 08:19:41 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[FPGA]]></category>
		<category><![CDATA[grid computing]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[parallel algorithms]]></category>
		<category><![CDATA[parallel processing]]></category>
		<category><![CDATA[supercomputers]]></category>

		<guid isPermaLink="false">http://microcontrollers.wordpress.com/?p=6</guid>
		<description><![CDATA[This is not about scientific grid systems but rather commercial and open source ones. Basically there are some open source tools that allows to process data/execute CPU consuming tasks in parallel but the question about their usage. Do we need these kind of software or it&#8217;s better to solve it on hardware level? In my [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=6&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p class="answers">This is not about scientific grid systems but rather commercial and open source ones.<br />
Basically there are some open source tools that allows to process data/execute CPU consuming tasks in parallel but the question about their usage. Do we need these kind of software or it&#8217;s better to solve it on hardware level?
</p>
<p class="answers">In my view, which is widely shared in the industry, we always need whatever added speed technology is going to afford.</p>
<p class="answers">On software being better than hardware, on this issue, I would consider the following: Do you need a real time response, on a local machine?</p>
<p class="answers">If you need a very fast response, i.e.: milliseconds on a heavily computational task, but not a hugely massive one, specialised hardware will always win because you won&#8217;t need to propagate and collect intermediate results on a network.</p>
<p class="answers">In particular, nowadays we are beginning to have flexibly reprogrammable hardware: FPGAs are currently being used as processing nodes in current supercomputers, together with more traditional CISC processors (e.g.: Cray, which uses Xilinx FPGAs coupled with multiple Amd CPUs). One such example is the CELL processor on board of Sony PS3, which is powerful enough to do tridimensional processing in real time on an externally captured video stream.</p>
<p class="answers">In this case we have a computationally heavy, but still limited and &#8220;small&#8221; task, and want a cheap and rather immediate answer. Dedicated hardware solutions are something we use daily, e.g.: digital signal processing, sometimes without realising it, for instance when it is used within phone switching networks. DSP processing is dedicated hardware, where what you are optimising are algorithms based on repeated multiplications and additions. DSPs are fine tuned for that and may run in circles around more general and less specialised hardware such as modern Personal Computer microprocessors.</p>
<p class="answers">Massively huge problem, i.e. cracking RSA, Seti etc, the task at hand is so large that you cannot hope for an immediate answer. Therefore it makes sense to split the computation, which, if you are lucky will take from hours to years on a network of processing nodes. Here nothing will beat the cost of free computational power among a geografic network.</p>
<p class="answers">This approach makes even more sense if the network comprises volunteer nodes, which provide computational power for free, or which would have been otherwise idle (screensavers). In this latter case, the issue is not getting the intended result in the fastest way, which would be impossible with dedicated hardware as well, but rather spending as little as possible in order to obtain it. The cost of this technological approach is not really zero, but somehow you managed someone else to provide for it, gratis. You tipically design an application such as a screensaver which slowly, but on an immense scale, checks home for work, computes it, and posts a chunk of work done back home.</p>
<p class="answers">If cost is not an issue, nothing will stop you from using both approaches at the same time: flexibly reconfigurable hardware (ad hoc hardware, optimised for the algorithm at hand), repeated modularly on multiple systems connected on a fast network. It is not going to be cheap, but is going to resemble a lot a current supercomputer architecture.</p>
<p class="answers">Modern Crays are built this way. And they are based on FPGAs in order to implement special algorithms, with optimised parallel hardware, and they are reconfigurable. Why isn&#8217;t this approach adopted more often? The issue is that programming FPGAs with hardware description languages HDLs is a lot harder than programming in traditional programming languages, which are inherently serial. There are attempts to make this burden lighter, via graphical frameworks such as VIVA, or converting traditional languages in order to make them usable on these devices (some Java attempts and the more common System C).</p>
<p class="answers">However these tools price tags are Electronic CAD systems&#8217; not personal computer compilers: the companys selling them need to recover millions of dollars of investiments on the few customers they have. So they won&#8217;t be adopted.</p>
<p class="answers">With more traditional software, you can have open source, but with FPGAs you can&#8217;t as the inner workings of their devices are something on which the two leading companies making them, that is Altera and Xilinx, keep very mum. This secrecy, in the end, damages this industry, and limits the adoption of these extremely powerful tools, which have the potential for reshaping the computing industry.</p>
<p class="answers"> <a href="http://fwlab.com" title="Professional Firmware Development">FwLab Microcontrollers Cypress PSOC, Microchip PIC, Firmware development, Embedded Systems </a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/microcontrollers.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/microcontrollers.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=6&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2008/03/04/parallel-data-processingcomputations-do-we-need-them/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
		<item>
		<title>The Microcontroller, a Mutable Definition</title>
		<link>http://microcontrollers.wordpress.com/2008/02/24/the-microcontroller-a-mutable-definition/</link>
		<comments>http://microcontrollers.wordpress.com/2008/02/24/the-microcontroller-a-mutable-definition/#comments</comments>
		<pubDate>Sun, 24 Feb 2008 13:38:58 +0000</pubDate>
		<dc:creator>Michele Fadda</dc:creator>
				<category><![CDATA[editorial]]></category>
		<category><![CDATA[FPGA cores]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[computer architecture]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[FPGA]]></category>
		<category><![CDATA[future]]></category>
		<category><![CDATA[PSOC]]></category>
		<category><![CDATA[software economy]]></category>
		<category><![CDATA[vision]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[A microcontroller is a LSI (large scale integrated) circuit containing all or most of the needed peripherals and memory, plus a Central Processing Unit, in an integrated package. Well, this at least was, more or less the definition when it all started, around the 80-s. Nowadays that definition needs to be revised under at least [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=1&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A <em>microcontroller</em> is a LSI (large scale integrated) circuit containing all or most of the needed peripherals and memory, plus a Central Processing Unit, in an integrated package.</p>
<p>Well, this at least was, more or less the definition when it all started, around the 80-s. Nowadays that definition needs to be revised under at least two aspects: a) some modern microcontroller peripherals now are not digital b) there exist programmable logic powerful enough to implement entire subsystems, including the &#8220;microcontroller&#8221; part in a programmable array of logic. The latter are now powerful enough to offer reliably a 32 bit unit capable of running some sort of cut down Linux distribution, very slowly (50 MHz or little more are a realistic target for cheap FPGAs).</p>
<p>Microcontrollers containing analog circuitry are often termed &#8220;mixed signal&#8221;. They are indeed processing units, but they can do part of the work in the analog domain, e.g.: including analog filters, converters. Most of the so called &#8220;mixed signals&#8221; are just ordinary microcontrollers with an analog converter or little else. Some are quite extraordinary pieces of silicon. Among these I would place the Cypress PSOC, which is actually an analog/digital matrix plus an ordinary (and not too porful, for the time being) 8 bit microcontroller, all packaged in one chip.</p>
<p>The second category is the one which promises more flexibility and is potentially the most rewarding in the future.</p>
<p>Computer architectures are all based on variations of a common idea: the Neumann Machine, some with very slight modifications duplicating memory and peripheral communications path, the so called &#8220;Harvard architecture&#8221; (to which belong most microcontrollers including the venerable 8051). If you want to speed up things, you can introduce cache memories and pipelines, or you can try to have multiple cores, adding parallelism.</p>
<p>However, their main weak point, from a computational point of view is the fact that processing remains inherently sequential: the <em>fetch</em> and <em>execute</em> paradigm.</p>
<p>Both FPGA based cores and Mixed Analog have the potential to relieve the processing unit from some tasks, which can be &#8221;hard-wired&#8221; (e.g.: analog filtering done in analog has a ZERO computational cost on the processing unit). FPGA cores, could, at least in theory implement entire algorithms in hardware (whether this is an &#8220;easily achieved target&#8221; is a totally different question).</p>
<p>As everything in a technology/engineering related field, nothing of this is optimal and easy, unless you believe 100% of the <strike>propaganda</strike> marketing communication which silicon vendors use to advertise their products. E.g. FPGA vendors try to quote as &#8220;dsp processing power&#8221; of their FPGAs the sheer multiplication result of clock frequency by the number of hardware multipliers on a chip. This leads to expectation which are exactly as reliable as the &#8220;digital gates&#8221; count they used to provide (which doesn&#8217;t make too much sense since they all use LUTs (look up tables) rather than &#8220;gates&#8221;).</p>
<p>Anyway, for all their limitations, these technologies are the only way to achieve the following results:</p>
<ul>
<li>
<div>designing entire systems, rather rapidly, with limited resources, at an affordable cost</div>
</li>
<li>
<div>designing something which can be (potentially) reconfigure its own hardware on its own</div>
</li>
<li>
<div>trying to break Amdhal&#8217;s law</div>
</li>
<li>
<div>building your own supercomputer which runs at normal environment temperature and is small enough to fit on a desktop (which is precisely how they are using this tecnology in places like Nasa and Cray)</div>
</li>
</ul>
<p>Why aren&#8217;t these approaches used more? Only one word: ignorance, fear, uncertainty. They are imperfect technologies, but they have a lot to offer. Start to learn today or risk be left behind. They are an essential part in the logical evolution of things like MIT&#8217;s FAB concept.</p>
<p>There is also another fundamental aspect: this technology is FUN, is an exciting new way of making things which you could not possibly think to do at home just a few years ago. Now this is not the future, this is here and now. </p>
<p>How this tecnology is going to affect you if you are a common user and not a hardware designer? Well, expect to see electronic devices doing more with less, expect to see more creativity among designers, expect to see thing you did not expect to consider possible, as usual <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p align="center"><strong><a target="_blank" href="http://fwlab.com" title="Fwlab - Professional PSOC and PIC firmware development">FwLab Professional Consulting on Embedded Systems</a></strong></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/microcontrollers.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/microcontrollers.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/microcontrollers.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/microcontrollers.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/microcontrollers.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/microcontrollers.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/microcontrollers.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/microcontrollers.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/microcontrollers.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/microcontrollers.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=microcontrollers.wordpress.com&amp;blog=2966375&amp;post=1&amp;subd=microcontrollers&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://microcontrollers.wordpress.com/2008/02/24/the-microcontroller-a-mutable-definition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/2c94848cd5e65dc81b6012ecf68cd5d7?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">FwLab</media:title>
		</media:content>
	</item>
	</channel>
</rss>
