<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Green+Sprite</id>
	<title>Dwarf Fortress Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://dwarffortresswiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Green+Sprite"/>
	<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php/Special:Contributions/Green_Sprite"/>
	<updated>2026-05-08T21:08:32Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.11</generator>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Mist&amp;diff=258143</id>
		<title>Mist</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Mist&amp;diff=258143"/>
		<updated>2021-06-14T01:54:41Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: Changed old diagram to new ones (&amp;lt;diagram&amp;gt;). Now all diagram use the same format and it looks better&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quality|Exceptional|12:00, 5 September 2019 (UTC)}}&lt;br /&gt;
{{av}}&lt;br /&gt;
[[File:mist_example.jpg|thumb|170px|right|Feels good on the skin, maybe.]]&lt;br /&gt;
'''Mist''' is created by [[water]] [[Waterfall|falling]] from one [[Z-level]] to another, from [[DF2014:Ocean#Ocean_waves|ocean waves]], items or creatures skipping across water or just standard splashing. The mist is generated on levels below the top level (from which the water drops), but spreads out similarly to [[miasma]] and, therefore, can appear even on the top level, and lingers and spreads for a short time after any water stops falling.  Walking through mist generates a happy [[thought]] for a dwarf, and can act to [[Cleaning|clean]] various contaminants off of dwarves.  &lt;br /&gt;
&lt;br /&gt;
Mist is separate from [[magma mist]] and [[steam]].&lt;br /&gt;
&lt;br /&gt;
[[File:mist_preview.png|thumb|120px|right|Rampant [[screw pump]]s are a great mist source.]]&lt;br /&gt;
&lt;br /&gt;
==Generating Mist==&lt;br /&gt;
=== Constructed waterfall ===&lt;br /&gt;
The easiest method is simply to use a constant source of water ([[Screw pump|pumped]] or [[channel]]ed) and let it fall more than 1 z-level next to a path that dwarves use regularly. The actual tile (you only need one) that the water drops should not be part of the path, as dwarves will believe they are in 7/7 water and cancel jobs - a statue on that tile will prevent this nicely, or place the fall itself to the side of the path and make that a [[Traffic#Setting Traffic Areas|restricted traffic]] tile. &lt;br /&gt;
&lt;br /&gt;
[[Floor grate]]s or [[bars]] on every* tile adjacent to the water flow should be used as part of the drainage system (which should be larger than the intake system, just to be safe!), and to avoid [[mud]] on adjacent tiles.  Use a door, hatch, floodgate or bridge linked to a [[lever]] to turn off the flow if/when desired.&lt;br /&gt;
&lt;br /&gt;
: (* when designing this, remember that grates/bars [[Cave-in|do not support]] floor tiles!)&lt;br /&gt;
&lt;br /&gt;
The problem with this setup is that this amount of constantly falling/flowing water can have a negative impact on your fps rate.  Using a [[repeater]] to allow a non-constant flow, or linking the flow to a [[pressure plate]], where it will only fall when dwarves approach, will help this.&lt;br /&gt;
&lt;br /&gt;
=== Ring generator ===&lt;br /&gt;
AncientEnemy [http://www.bay12forums.com/smf/index.php?topic=34407.0] devised a convenient way to generate mist. This method relies on the fact that [[screw pump|screw pumps]] pump [[water]] faster than water spreads out.[[Image:newmist.jpg|thumb|AncientEnemy's original simple mist generator.]]&lt;br /&gt;
&lt;br /&gt;
Simply put, screw pumps are daisy-chained (output to input) in a circle and then water is added to the system.  Water is typically added by designating one of the inputs to the pump as a [[Pond]] and having dwarves fill it up. Once water is dropped from the floor above it is immediately sucked up by the next pump. Since there is falling water, mist is generated. Ahh, lovely waterfalls!&lt;br /&gt;
&lt;br /&gt;
Below is an example of a simple mist generator.  The Z=0 level can be anything, a booze stockpile, [[barracks]] or even your [[Dwarven_atom_smasher|atom smasher]]. The z=-1 layer can also be identical to the z=0 level. Mist will also be generated there.  Because the water never touches the floor there, you don't have to worry about muddy tiles.&lt;br /&gt;
&amp;lt;diagram&amp;gt;&lt;br /&gt;
Pump Floor (z=1)&lt;br /&gt;
▒▒▒▒▒▒&lt;br /&gt;
▒.[#2:0]÷[#2:1]÷[#].▒&lt;br /&gt;
▒[#2:1]÷  [#2:0]÷[#]▒ The water can go clockwise or counter clockwise.&lt;br /&gt;
▒[#2:0]÷  [#2:1]÷[#]▒ Make sure your pumps are correctly aligned.&lt;br /&gt;
▒.[#2:1]÷[#2:0]÷[#].▒&lt;br /&gt;
▒▒▒▒▒▒&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
A movie [http://mkv25.net/dfma/movie-1292-ubermistgenerator] best illustrates the operation. &lt;br /&gt;
&lt;br /&gt;
=== Stack generator ===&lt;br /&gt;
&lt;br /&gt;
A two-pump-stack can be used to lift a single tile of water and drop it back into the reservoir, generating mist (and [[Cleaning#Dwarven_Shower|cleaning dwarves]], if desired).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;diagram&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 sideview &lt;br /&gt;
  &lt;br /&gt;
   [#2:0]%%[#]_&lt;br /&gt;
   [#6:0]%%[#]_&lt;br /&gt;
 ░░░░[#1:0]▄[#]░░░&lt;br /&gt;
 ░░░░░░░░&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The lower (brown) pump (pumping right to left) raises the water from the reservoir on the right to floor level on the left, then the upper (green) pump (pumping left to right) raises that water to the air +2 z-levels above the reservoir. The water then falls through the floor grates ( _ ) into the reservoir, and the cycle can be repeated. Pump build order is important; build the green pump first, then the brown pump, to ensure the water is raised in a single tick. Since the water never sits at floor level, no containment walls are necessary (though mud will be created in the tile left of the brown pump). You can toggle power to the pumps as often as desired to provide happy thoughts without constant lag. If used for dwarf-cleaning, a water level of 2/7 or 3/7 will avoid job cancellations.&lt;br /&gt;
&lt;br /&gt;
=== Light aquifer ===&lt;br /&gt;
If your embark location has a light aquifer, it is possible to build an unpowered mist generator-plus-bathing unit combination. You need two floors under the aquifer - lowest floor is for dwarves, second floor is for water to fall a z-level to create mist and to control the amount of water flow. It is also possible to dig out more of the aquifer to increase water flow if needed. You can use this water elsewhere or let it evaporate.{{Verify}}&lt;br /&gt;
&lt;br /&gt;
== General comments ==&lt;br /&gt;
&amp;lt;!-- The extra spaces are for ease of editing only, and do not change the appearance of the page layout.--&amp;gt;&lt;br /&gt;
* Evaporation is nonexistent as long as the pumps are working and the water is moving, even above ground.{{Verify}}&lt;br /&gt;
&lt;br /&gt;
* Job cancellation spam is possible if the water is filled to 4/7 or greater and a dwarf walks where the water falls. Even then, this can be greatly reduced by setting them as [[traffic#Setting Traffic Areas|restricted traffic]] areas, or completely prevented by blocking access to these tiles without blocking the water, such as by placing a [[statue]] underneath.&lt;br /&gt;
&lt;br /&gt;
* Mud will form wherever the water falls. Subterranean [[tree]]s can sprout up and clog the system. Solutions to this problem include: [[statue]]s, [[road|paved roads]], constructed floors or [[fortification]]s, or to simply channel out the space once the mist generator is running.&lt;br /&gt;
&lt;br /&gt;
* These systems work best with a single tile of water (7/7, at most) due to the way water descends z-levels. Any additional water will overflow into nearby tiles.&lt;br /&gt;
&lt;br /&gt;
* Automated mist generators may significantly lower your [[Frames per second|FPS]], particularly if multiple generators are used.{{Verify}} This might be remedied by triggering via a [[repeater]] with a long delay or by one or more [[pressure plate]]s (perhaps set to activate by a passing dwarf).{{Verify}}&lt;br /&gt;
&lt;br /&gt;
{{Translation&lt;br /&gt;
| dwarven = sôd&lt;br /&gt;
| elvish  = enure&lt;br /&gt;
| goblin  = guslo&lt;br /&gt;
| human   = sitsu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Category|Thoughts}}&lt;br /&gt;
{{Category|World}}&lt;br /&gt;
{{Category|Physics}}&lt;br /&gt;
[[Ru:Mist]]&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=DF2014_Talk:Scholar&amp;diff=258116</id>
		<title>DF2014 Talk:Scholar</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=DF2014_Talk:Scholar&amp;diff=258116"/>
		<updated>2021-06-12T03:50:04Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ok, copy pasting this here, until we can reword it into something readable:&lt;br /&gt;
&lt;br /&gt;
:Let's see, fort scholars...  they do activity cycles, the length of which is 1-2 days (whether they are pondering or discussing etc.)  Once they get through 50 cycles, it rolls 0-50 vs. the number of completed cycles minus 50 to see if they get &amp;quot;breakthrough credit.&amp;quot;  So at 51, they have a 2% chance, and at 100, they have a 100% chance.  Then, it resets the cycle number to zero and gives them breakthrough credit, based on a skill roll plus 100 (for discuss, the other researchers contribute half of their summed skill rolls.)  Based on the difficulty (1-4) of the topic, total lifetime breakthrough credit is then assigned a number of 50-sided dice.  An easy topic is dice=credit/2500, then /5000, then /10000, then /20000 for level 4 topics.  The number of dice cannot exceed 10.  Then roll these dice -- if you get a 50 on any of them, discovery!  This is a bit archaic, and I'm not suggesting it works particularly well.  But that is how it works.  Also: if they fail to get the breakthrough after the 50-sided rolls, they have a 2% chance of switching topics, or if their credit exceeds 100000, they always switch topics (though they keep the credit, so returning to the topic later gives them a decent chance at breakthrough.)&lt;br /&gt;
&lt;br /&gt;
from http://www.bay12forums.com/smf//index.php?topic=169696.msg8071983#msg8071983&lt;br /&gt;
&lt;br /&gt;
[[User:Therahedwig|Therahedwig]] ([[User talk:Therahedwig|talk]]) 17:39, 1 January 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Professions not working as stated==&lt;br /&gt;
In the section called &amp;quot;Professions&amp;quot; it states a dwarf with high levels of critical thinking and a second skill are called sages. However, in one of my saves, a dwarf has the title of sage with only dabbling skill in critical thinking. The dwarf is a high master mathematician and accomplished logician.The information on what makes a dwarf a sage comes from http://www.bay12forums.com/smf/index.php?topic=154895.msg6711752#msg6711752 where Halnoth points it comes comes from their observation. I suspect a sage might be a dwarf that potentially belongs to more than one profession. For example, in my case the dwarf could be a mathematician or a philosopher, so the game assigns them the title of sage. [[User:Green Sprite|Green Sprite]] ([[User talk:Green Sprite|talk]]) 03:50, 12 June 2021 (UTC)&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258105</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258105"/>
		<updated>2021-06-08T16:54:54Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]] (pts converter).&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
The adder used in the Dwarftel Core d1 is a kogge-stone adder, which is a type of carry-lookahead adder. It consists of 3 components chained in a certain way.&lt;br /&gt;
&lt;br /&gt;
Components:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#]  And gate&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#]   Xor gate&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
OO[#]☼[#4:1]☼[#2:1]☼[#] (x and y) or z&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼[#1:1]☼☼&lt;br /&gt;
[#7:1]╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the and gate, power is fed to the rightmost gear assembly. Both gear assemblies are inverted. Each gear assembly is linked to one input, power goes into the pts converter only when both inputs are open.&lt;br /&gt;
&lt;br /&gt;
In the xor gate, power is fed to the gear assembly. The gear assembly is inverted and linked to both inputs. When either input, but not both, are open, power goes to the pts converter.&lt;br /&gt;
&lt;br /&gt;
In the last component, there are three non-commutative inputs. Power is fed to the green gear assembly {{Raw Tile|☼|#0F0}}. Input z is linked to the red gear assembly {{Raw Tile|☼|#F00}}. Inputs x and y are linked to either blue gear assembly {{Raw Tile|☼|#00F}}, creating an and gate. Both blue gears and the reg gear are inverted.&lt;br /&gt;
&lt;br /&gt;
The adder takes the following steps:&lt;br /&gt;
# G0i = Ai and Bi. P0i = Ai xor Bi (both for 0 ≤ i &amp;lt; 8)&lt;br /&gt;
# G1i = (P0i and G0(i-1)) or G0i. P1i = P0i and P0(i-1) (both for 1 ≤ i &amp;lt; 8)&lt;br /&gt;
# G2i = (P1i and G1(i-2)) or G1i. P2i = P1i and P1(i-2) (both for 2 ≤ i &amp;lt; 8)&lt;br /&gt;
# G3i = (P2i and G2(i-4)) or G2i. P3i = P2i and P2(i-4) (both for 4 ≤ i &amp;lt; 8)&lt;br /&gt;
# Si = P(last)i xor G(last)(i-1)&lt;br /&gt;
Where i is the bit index on the byte (0 being the least significant bit and 7 being the most significant bit). A and B are the registers used as inputs. P(last)i is the latest iteration of Pi. For example, P(last)1 is P1,1, since steps 3 and 4 don't apply to i=1. Similarly, G(last)i is the latest iteration of Gi.&lt;br /&gt;
&lt;br /&gt;
[[File:Kogge stone adder diagram.png|450px|The image shows how each step of the adder connects to the next step(s).]]&lt;br /&gt;
&lt;br /&gt;
The only delays are caused by pressure plates which turn off 99 ticks after a minecart stops pressing it. Just to be safe (and because minecarts might require some travel time) I will assume 103 ticks of delay per step. Since there's 5 steps in the process, there's a total of 515 ticks &lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a pts converter. The pts converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258104</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258104"/>
		<updated>2021-06-08T05:15:27Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]] (pts converter).&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
The adder used in the Dwarftel Core d1 is a kogge-stone adder, which is a type of carry-lookahead adder. It consists of 3 components chained in a certain way.&lt;br /&gt;
&lt;br /&gt;
Components:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#]  And gate&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#]   Xor gate&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
OO[#]☼[#4:1]☼[#2:1]☼[#] (x and y) or z&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼[#1:1]☼☼&lt;br /&gt;
[#7:1]╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the and gate, power is fed to the rightmost gear assembly. Both gear assemblies are inverted. Each gear assembly is linked to one input, power goes into the pts converter only when both inputs are open.&lt;br /&gt;
&lt;br /&gt;
In the xor gate, power is fed to the gear assembly. The gear assembly is inverted and linked to both inputs. When either input, but not both, are open, power goes to the pts converter.&lt;br /&gt;
&lt;br /&gt;
In the last component, there are three non-commutative inputs. Power is fed to the green gear assembly {{Raw Tile|☼|#0F0}}. Input z is linked to the red gear assembly {{Raw Tile|☼|#F00}}. Inputs x and y are linked to either blue gear assembly {{Raw Tile|☼|#00F}}, creating an and gate. Both blue gears and the reg gear are inverted.&lt;br /&gt;
&lt;br /&gt;
The adder takes the following steps:&lt;br /&gt;
# G0i = Ai and Bi. P0i = Ai xor Bi (both for 0 ≤ i &amp;lt; 8)&lt;br /&gt;
# G1i = (P0i and G0(i-1)) or G0i. P1i = P0i and P0(i-1) (both for 1 ≤ i &amp;lt; 8)&lt;br /&gt;
# G2i = (P1i and G1(i-2)) or G1i. P2i = P1i and P1(i-2) (both for 2 ≤ i &amp;lt; 8)&lt;br /&gt;
# G3i = (P2i and G2(i-4)) or G2i. P3i = P2i and P2(i-4) (both for 4 ≤ i &amp;lt; 8)&lt;br /&gt;
# Si = P(last)i xor G(last)(i-1)&lt;br /&gt;
Where i is the bit index on the byte (0 being the least significant bit and 7 being the most significant bit). A and B are the registers used as inputs. P(last)i is the latest iteration of Pi. For example, P(last)1 is P1,1, since steps 3 and 4 don't apply to i=1. Similarly, G(last)i is the latest iteration of Gi.&lt;br /&gt;
&lt;br /&gt;
[[File:Kogge stone adder diagram.png|450px|The image shows how each step of the adder connects to the next step(s).]]&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a pts converter. The pts converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=File:Kogge_stone_adder_diagram.png&amp;diff=258103</id>
		<title>File:Kogge stone adder diagram.png</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=File:Kogge_stone_adder_diagram.png&amp;diff=258103"/>
		<updated>2021-06-08T05:02:21Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{PD-text}}&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258102</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258102"/>
		<updated>2021-06-08T02:57:24Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]] (pts converter).&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
The adder used in the Dwarftel Core d1 is a kogge-stone adder, which is a type of carry-lookahead adder. It consists of 3 components chained in a certain way.&lt;br /&gt;
&lt;br /&gt;
Components:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#]  And gate&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#]   Xor gate&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
OO[#]☼[#4:1]☼[#2:1]☼[#] (x and y) or z&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼[#1:1]☼☼&lt;br /&gt;
[#7:1]╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the and gate, power is fed to the rightmost gear assembly. Both gear assemblies are inverted. Each gear assembly is linked to one input, power goes into the pts converter only when both inputs are open.&lt;br /&gt;
&lt;br /&gt;
In the xor gate, power is fed to the gear assembly. The gear assembly is inverted and linked to both inputs. When either input, but not both, are open, power goes to the pts converter.&lt;br /&gt;
&lt;br /&gt;
In the last component, there are three non-commutative inputs. Power is fed to the green gear assembly {{Raw Tile|☼|#0F0}}. Input z is linked to the red gear assembly {{Raw Tile|☼|#F00}}. Inputs x and y are linked to either blue gear assembly {{Raw Tile|☼|#00F}}, creating an and gate. Both blue gears and the reg gear are inverted.&lt;br /&gt;
&lt;br /&gt;
The adder takes the following steps:&lt;br /&gt;
# G0i = Ai and Bi. P0i = Ai xor Bi (both for 0 ≤ i &amp;lt; 8)&lt;br /&gt;
# G1i = (P0i and G0(i-1)) or G0i. P1i = P0i and P0(i-1) (both for 1 ≤ i &amp;lt; 8)&lt;br /&gt;
# G2i = (P1i and G1(i-2)) or G1i. P2i = P1i and P1(i-2) (both for 2 ≤ i &amp;lt; 8)&lt;br /&gt;
# G3i = (P2i and G2(i-4)) or G2i. P3i = P2i and P2(i-4) (both for 4 ≤ i &amp;lt; 8)&lt;br /&gt;
# Si = P(last)i xor G(last)(i-1)&lt;br /&gt;
Where i is the bit index on the byte (0 being the least significant bit and 7 being the most significant bit). A and B are the registers used as inputs. P(last)i is the latest iteration of Pi. For example, P(last)1 is P1,1, since steps 3 and 4 don't apply to i=1. Similarly, G(last)i is the latest iteration of Gi.&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a pts converter. The pts converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258098</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258098"/>
		<updated>2021-06-07T06:45:41Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]] (pts converter).&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
The adder used in the Dwarftel Core d1 is a kogge-stone adder, which is a type of carry-lookahead adder. It consists of 3 components chained in a certain way.&lt;br /&gt;
&lt;br /&gt;
Components:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O══════════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#]  And gate |1|&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#]   Xor gate |2|&lt;br /&gt;
[#7:1]╚╝[#]&lt;br /&gt;
O══════════════════════O&lt;br /&gt;
OO[#]☼[#4:1]☼[#2:1]☼[#] (x and y) or z |3|&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼[#1:1]☼☼&lt;br /&gt;
[#7:1]╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the and gate, power is fed to the rightmost gear assembly. Both gear assemblies are inverted. Each gear assembly is linked to one input, power goes into the pts converter only when both inputs are open.&lt;br /&gt;
&lt;br /&gt;
In the xor gate, power is fed to the gear assembly. The gear assembly is inverted and linked to both inputs. When either input, but not both, are open, power goes to the pts converter.&lt;br /&gt;
&lt;br /&gt;
In the last component, there are three non-commutative inputs. Power is fed to the green gear assembly {{Raw Tile|☼|#0F0}}. Input z is linked to the red gear assembly {{Raw Tile|☼|#F00}}. Inputs x and y are linked to either blue gear assembly {{Raw Tile|☼|#00F}}, creating an and gate. Both blue gears and the reg gear are inverted.&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a pts converter. The pts converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258097</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258097"/>
		<updated>2021-06-07T06:23:40Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]].&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
The adder used in the Dwarftel Core d1 is a kogge-stone adder, which is a type of carry-lookahead adder. It consists of 3 components chained in a certain way.&lt;br /&gt;
&lt;br /&gt;
Components:&lt;br /&gt;
&amp;lt;diagram fg=5:0&amp;gt;&lt;br /&gt;
[#7:0]O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#7:0]  Bitwise and&lt;br /&gt;
[#7:1]╚╝[#7:0]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#7:0]   Bitwise xor&lt;br /&gt;
[#7:1]╚╝[#7:0]&lt;br /&gt;
O══════════════════O&lt;br /&gt;
OO[#]☼☼[#7:0]☼ (x and y) or z&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼☼☼&lt;br /&gt;
[#7:1]╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a power to signal converter. The power to signal converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258096</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258096"/>
		<updated>2021-06-07T05:42:20Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]].&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
Components&lt;br /&gt;
&amp;lt;diagram fg=5:0&amp;gt;&lt;br /&gt;
[#7:0]O══════════════════════════════════════O Operation:&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#5:1]^[#0:0][@7:0]■[@][#1:1]☼☼[#7:0]         Bitwise and&lt;br /&gt;
[#7:1]╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝[#7:0]&lt;br /&gt;
O══════════════════════════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#5:1]^[#0:0][@7:0]■[@][#4:1]☼[#7:0]                 Bitwise xor&lt;br /&gt;
[#7:1]╚╝ ╚╝ ╚╝ ╚╝ ╚╝ ╚╝ ╚╝ ╚╝[#7:0]&lt;br /&gt;
O══════════════════════════════════════O&lt;br /&gt;
OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼OO[#]☼☼[#7:0]☼ (x and y) or z&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼☼&lt;br /&gt;
[#7:1]╚╝   ╚╝   ╚╝   ╚╝   ╚╝   ╚╝   ╚╝   ╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
Kogge-Stone Adder&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a power to signal converter. The power to signal converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258094</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258094"/>
		<updated>2021-06-07T00:23:02Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0]☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼[#]&lt;br /&gt;
  ║ ║ ║ ║ ║ ║ ║&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  ☼ ☼ ☼ ☼ ☼ ☼ ☼ ☼&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]].&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Adder==&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O══════════════════════════════O Operation: Output:&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@][#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼ Ai and Bi. G&lt;br /&gt;
[#7:1]╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝&lt;br /&gt;
O══════════════════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼[#5:1]^[#0:0][@7:0]■[@#]☼         Ai xor Bi. P0&lt;br /&gt;
[#7:1]╚╝ ╚╝ ╚╝ ╚╝ ╚╝ ╚╝ ╚╝ ╚╝&lt;br /&gt;
O══════════════════════════════O&lt;br /&gt;
[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@][#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼[#5:1]^[#0:0][@7:0]■[@#]☼☼ P0i and P0i-1. P1&lt;br /&gt;
[#7:1]╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝  ╚╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
Kogge-Stone Adder&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a power to signal converter. The power to signal converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258092</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258092"/>
		<updated>2021-06-06T22:55:47Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188][#7:1][%210][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15][#7:1][%186][#]O[#7:1][%210][#2:1][%15]&lt;br /&gt;
[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O[#7:1][%208][#2:0][%15][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#][%201][%187][#7:1][%208][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
 .&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
 [#7:0][%15][#5:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15][#6:0][%205][#7:0][%15]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO&lt;br /&gt;
[#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .&lt;br /&gt;
  [%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15]&lt;br /&gt;
  OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186] [#7:0]OO[#6:0][%186]&lt;br /&gt;
  [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15] [#5:1]^[#0:0][@7:0][%254][@][#2:1][%15]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]].&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a power to signal converter. The power to signal converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258091</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258091"/>
		<updated>2021-06-06T22:41:46Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#]&lt;br /&gt;
  [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]].&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;br /&gt;
==Edge Detectors (Rising and Falling)==&lt;br /&gt;
Rising edge detector design:&lt;br /&gt;
&amp;lt;diagram fg=7:1&amp;gt;&lt;br /&gt;
╔[#7:0]╢[@4:1]┼[@]╢[@2:1]┼[@][#5:1]^[#]╗&lt;br /&gt;
╚═════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The rising edge detector sends a pulse when an open signal is sent. Both rollers {{Raw Tile|╢|7:0}} are always active and sending the cart from west to east. The red door {{Raw Tile|┼|#C0C0C0|#F00}} is linked to the input. The input is also connected to a not gate, which feeds to a power to signal converter. The power to signal converter connects to the red door {{Raw Tile|┼|#C0C0C0|#0F0}}. The pressure plate {{Raw Tile|^|5:1}} is the output. A minecart is placed on the roller between both doors. When the input sends a open signal the green door opens, letting the minecart past the pressure plate. The pressure plate sends a pulse starting instantly for 99 ticks. At the same time, the red door closes, stopping the minecart from going through. When the input sends a closed signal again, the red door opens, but the green door closes, so the minecart is set back to the original position.&lt;br /&gt;
&lt;br /&gt;
The falling edge detector is the same as the rising edge detector, but the green and red doors are flipped.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258085</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258085"/>
		<updated>2021-06-06T05:01:55Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#]&lt;br /&gt;
  [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a [[Mechanical_logic#Power_to_signal_converter|power to signal converter]].&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258084</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258084"/>
		<updated>2021-06-06T04:54:45Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
==Instructions==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|0x0&lt;br /&gt;
|Halt.&lt;br /&gt;
|-&lt;br /&gt;
|0x1&lt;br /&gt;
|Load memory address to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x2&lt;br /&gt;
|Copy A to B.&lt;br /&gt;
|-&lt;br /&gt;
|0x3&lt;br /&gt;
|Copy A to C.&lt;br /&gt;
|-&lt;br /&gt;
|0x4&lt;br /&gt;
|Copy A to PC if C is not 0.&lt;br /&gt;
|-&lt;br /&gt;
|0x5&lt;br /&gt;
|Store A to memory address.&lt;br /&gt;
|-&lt;br /&gt;
|0x6&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x7&lt;br /&gt;
|\---&lt;br /&gt;
|-&lt;br /&gt;
|0x8&lt;br /&gt;
|Add A + B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0x9&lt;br /&gt;
|Increment 1 to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xA&lt;br /&gt;
|Subtract A - B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xB&lt;br /&gt;
|Decrement 1 from A.&lt;br /&gt;
|-&lt;br /&gt;
|0xC&lt;br /&gt;
|Shift A left by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xD&lt;br /&gt;
|Shift A right by given amount.&lt;br /&gt;
|-&lt;br /&gt;
|0xE&lt;br /&gt;
|Bitwise A and B. Write result to A.&lt;br /&gt;
|-&lt;br /&gt;
|0xF&lt;br /&gt;
|Bitwise not A. Write result to A.&lt;br /&gt;
|}&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#]&lt;br /&gt;
  [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a power to signal converter.&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258083</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258083"/>
		<updated>2021-06-06T04:38:41Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
The Dwarftel Core d1 is a dwarven computer that uses primarily toggle-based mechanical logic. It is a simple processor that can add, subtract, binary shift, perform bitwise 'and' and 'not'. The processor also has 16 bytes of memory which it can write and read to. The program is kept on the memory.&lt;br /&gt;
==Registers==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|A&lt;br /&gt;
|Main register, input of arithmetic operators and where the results are written.&lt;br /&gt;
|-&lt;br /&gt;
|B&lt;br /&gt;
|Secondary register, most operations that need two inputs will use this register.&lt;br /&gt;
|-&lt;br /&gt;
|C&lt;br /&gt;
|Conditional register, involved in low-level if statements.&lt;br /&gt;
|-&lt;br /&gt;
|PC&lt;br /&gt;
|Program counter which keeps track of the memory address for the next instruction.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A register for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the register connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#]&lt;br /&gt;
  [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a power to signal converter.&lt;br /&gt;
==Binary Decoder==&lt;br /&gt;
I will be using [[User:Jong/Dwarven_Computer#Decoder|Jong's design]] for a binary decoder. Binary decoders allow for memory addressing and selecting operations from an opcode.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Repeater&amp;diff=258082</id>
		<title>Repeater</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Repeater&amp;diff=258082"/>
		<updated>2021-06-06T04:16:50Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: Changed old diagram tags to new ones ({{diagram}} to &amp;lt;diagram&amp;gt;). Now all diagram use the same format.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Quality|Exceptional|11:56, 18 May 2015 (UTC)}}&lt;br /&gt;
{{av}}&lt;br /&gt;
{{Computing}}&lt;br /&gt;
In ''Dwarf Fortress''*, a '''repeater''' is a device which creates a cyclic pattern of on and off signals. The simplest repeater design is a [[dwarf]] pulling a [[lever]] on [[repeat]]. However, numerous fully-automated designs are possible which can be made to operate at varying rates and linked to other systems for precise timing. Most repeaters use [[minecart]]s, fluids, or creatures to trigger [[pressure plate]]s cyclically.&lt;br /&gt;
&lt;br /&gt;
As a general warning, always have a way to turn off the repeater, and/or allow your dwarves later access for repairs or modifications.&lt;br /&gt;
&lt;br /&gt;
: (* In almost any other context, especially engineering or &amp;quot;technical&amp;quot; discussions, the term &amp;quot;repeater&amp;quot; refers to a signal re-transmitter, and what this article describes is generally called an &amp;quot;oscillator&amp;quot; or &amp;quot;clock generator&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
===Lever repeater===&lt;br /&gt;
A lever with a pull job on repeat provides the simplest repeating cycle. After taking the first job, one dwarf will typically continue to pull the lever until becoming [[Food|hungry]], thirsty, or tired, at which point another dwarf will take over. A lever repeater is generally fast (less than 100 ticks per cycle), with varying lengths of inactivity as dwarves switch out. Unfortunately, the cycle length cannot be modified, nor can the repeater be synchronized with other systems. The occasional periods of inactivity can also prove problematic in critical applications, though a [[vampire]] can be significantly more reliable than a group of living dwarves.&lt;br /&gt;
&lt;br /&gt;
===Traffic repeater===&lt;br /&gt;
For low-priority tasks, a civilian-triggered [[pressure plate]] built in a hallway of the fortress can provide a simple oscillating signal automatically. The signal from such a repeater varies widely, though it can be adjusted somewhat by choosing hallways with more or less traffic. The lack of precision means that traffic repeaters are best utilized where a task needs to occur occasionally, but the timing is unimportant (such as triggering an [[atom smasher]] at the bottom of a garbage chute).&lt;br /&gt;
&lt;br /&gt;
===Wave repeater===&lt;br /&gt;
A wave repeater is simply a wave traveling through a channel containing a pressure plate, as described in this [http://www.bay12forums.com/smf/index.php?topic=68659.0 forum post].&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
╔══════╗   ╔══════╗&lt;br /&gt;
║[#F0F]^[#].....║--&amp;gt;║[#0FF]777776[#]║&lt;br /&gt;
╚══════╝   ╚══════╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A single 6/7 water tile flows through the channel, occasionally triggering a pressure plate set to trigger on 0-6/7 water.  To get the right amount of water in it, it's simplest to fill it all the way, then designate it as a [[Activity_zone#Water_source|water source]] (and perhaps another location as a [[Activity_zone#Pit/pond|pond]]) until a dwarf takes away a single [[bucket]] full of water.&lt;br /&gt;
&lt;br /&gt;
As designed (5 tiles of non-triggering water, 1 tile of triggering water), this setup triggers rapidly, on par with the repeaters described below.  Counter-intuitively, making it smaller or removing more water slows the action of the repeater because the pressure plate never gets a chance to recover from triggering, which takes 100 ticks. Unfortunately, liquids behave semi-randomly, which means the period of this repeater can vary, making it unsuitable for fine timing applications.&lt;br /&gt;
&lt;br /&gt;
Note about pond/pit filling the repeater.  Pond/pits can only be filled to 6/7 so you will need to set the pressure plate accordingly to trigger on 0-5/7.&lt;br /&gt;
&lt;br /&gt;
It's possible to make a design that can be easily started and stopped, even one that conserves water, but such systems are complex, when the beauty of this design is its simplicity.  If it needs to be stopped for maintenance, one is probably best off simply dropping another bucket of water in it.&lt;br /&gt;
&lt;br /&gt;
===Fluid logic repeater===&lt;br /&gt;
The traditional repeater design is probably this [[fluid logic|fluid]]-based one, described on the [http://www.bay12forums.com/smf/index.php?topic=33563.msg495183#msg495183 forum] by [http://www.bay12forums.com/smf/index.php?action=profile;u=16168 AncientEnemy]):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;diagram&amp;gt; [#1:1]≈≈≈≈≈[#]  - infinite source of water&lt;br /&gt;
 ═╗[#1:1]≈[#]╔═  - wall to channel out after construction&lt;br /&gt;
  ╠[#7:0][@7:1]X[@#]╣   - shutoff floodgate (linked to exterior lever)&lt;br /&gt;
  ║#║   - 1-tile drawbridge (linked to pressure plate)&lt;br /&gt;
  ║[#5:1]^[#]┼   - pressure plate (set to 7-7 water), and access door &lt;br /&gt;
  ╠[#7:0][@7:1]X[@#]╣   - floodgate (linked to pressure plate)&lt;br /&gt;
  ╚═╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So long as the shutoff [[floodgate]] isn't closed, [[water]] from an infinite source flows on to the pressure plate, causing the raising [[bridge]] to block access to the water source and destroy water in the circuit, while the opening of the southern floodgate compensates for the space taken up by this bridge.  This water destruction mechanic means that, unlike many fluid logic circuits, this repeater needs no drainage.  The single pressure plate works both to regulate the repeater, and as output.&lt;br /&gt;
&lt;br /&gt;
This repeater toggles fairly slowly, about once every 300 steps, making it suitable for operating repeating bridges, floodgates, and [[Trap#Upright Spear/Spike|upright spikes]].   Off signals tend to follow on signals about 200 ticks later.  As an added bonus, the southern wall can be removed and connected to a [[reservoir|cistern]] whose water level will be automatically maintained at a level between 3 and 4 deep-- perfect for [[swimmer|swimming]]!&lt;br /&gt;
&lt;br /&gt;
For an alternate water-based repeater, consider the design at [[User:SL/Logic_Gates#Repeater]] which demonstrates a two level, hybrid repeater.&lt;br /&gt;
&lt;br /&gt;
===Goblin repeater===&lt;br /&gt;
Designs based on [[creature logic]] are also possible.  The following example is compact, reliable, and fairly predictable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;diagram&amp;gt;&lt;br /&gt;
   ╔═╗  &lt;br /&gt;
═══╝[#FF0]¢[#]╚══&lt;br /&gt;
[#F00]p[#FF0]¢^¢[#00F]¢[#F0F][@00F]^[#00F][@]¢[#F00]p[#]&lt;br /&gt;
══╗[#00F]¢[#]╔═══&lt;br /&gt;
  ╚═╝&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A captured goblin placed between the two pressure plates drives this system in his attempts to reach map edge through paths {{Raw Tile|¢p|#F00|#000}}.  {{Raw Tile|^|#FF0|#000}} is linked to all {{Raw Tile|¢|#FF0|#000}}, and {{Raw Tile|^|#F0F|#00F}} is linked to all {{Raw Tile|¢|#00F|#000}}, as well as to output.  This gives the goblin a path away from his constrained tile every 100 ticks.  Delays in picking up path tend to make it run a cycle every 250 ticks. with on and off signals separated by about 120 ticks.  Its rate of repetition can be doubled by hooking both {{Raw Tile|^|#FFF|#000}} to output, although this leads to close placement of on and off signals.&lt;br /&gt;
&lt;br /&gt;
===Minecart repeater===&lt;br /&gt;
&lt;br /&gt;
In the simplest application, a hauler can guide a [[minecart]] across a pressure plate and around a circular track on a set schedule. A hauling route stop set to guide after X days has a fixed minimum interval (X days), but the maximum cycle time is somewhat variable (depending on how long it takes a hauler to accept the job and walk to the minecart). This type of repeater can be useful for triggering occasional time-insensitive events, like enabling a [[mist|mist generator]] for a few days every month.&lt;br /&gt;
&lt;br /&gt;
To remove the dwarf timing uncertainty, a [[Minecart#Roller|roller]] can propel the [[minecart]] around the circular track instead. Due to the fixed speed provided by rollers and the deterministic behaviour of minecarts, this type of minecart repeater provides a cycle with an absolutely constant repeat time. The exact period of such a powered repeater is relatively easy to regulate by choosing the operation speed of the roller, by adjusting the length of the track and by adding medium- and low-friction [[Minecart#Track stop|track stops]] to reduce movement speed. &lt;br /&gt;
&lt;br /&gt;
The [[Minecart#Impulse ramps|impulse ramp]] exploit allows for the design of completely autonomous minecart-based repeaters. Changing the length and friction of the route provides the ability to fine-tune the period of the repeater.&lt;br /&gt;
&lt;br /&gt;
This design uses a 7 by 8 by 3 Z-level footprint, and was used for upright spike traps. It was originally posted [http://www.bay12forums.com/smf/index.php?topic=154293.msg6643457#msg6643457 in this forum thread.]&lt;br /&gt;
&lt;br /&gt;
 z              z-1            z-2&lt;br /&gt;
 1234567890     1234567890     1234567890     &lt;br /&gt;
 wwwwwwwwww  1  wwwwwwwwww  1  wwwwwwwwww     where&lt;br /&gt;
 wwwwwwwwww  2  wwwwwwwwww  2  wDDDDDDDDw     w = unchanged wall&lt;br /&gt;
 wwwwwwwwww  3  wwwwwwwwww  3  wDwwwwwwDw     D = dig prio 4&lt;br /&gt;
 wwwwwwwwww  4  wwwwwwwwww  4  wDwwwwwwDw     h = channel prio 4&lt;br /&gt;
 wwwwwwwwww  5  wwwwwwwwww  5  wDwwwwwwDw     H = channel prio 5&lt;br /&gt;
 wwwwwwwwww  6  wwwwwwwwww  6  wDwwwwwwDw     &lt;br /&gt;
 wwwwwwwwww  7  wwwwwwwwww  7  wDwwwwwwDw     &lt;br /&gt;
 wwwwwwhDhw  8  wwwwwhwwHw  8  wDDDDwwwww     &lt;br /&gt;
 wwwwwwwwww  9  wwwwwwwwDw  9  wwwwwwwwww     &lt;br /&gt;
 &lt;br /&gt;
# Carve a track at all the 'D' tiles in the obvious direction.&lt;br /&gt;
# Carve N/E impulse ramps at the three ramps (2 on Z - 2, one on Z - 1)&lt;br /&gt;
# Place a hatch cover over the east chute on Z and define a track stop there (with a mine cart, of course). &lt;br /&gt;
## Remove the default movement orders for the stop. &lt;br /&gt;
## Hook the hatch to a start/stop lever. (not pictured)&lt;br /&gt;
# Build a mine cart activated pressure plate anywhere on the flat track (i.e. not any ramp), for example, 2 tiles N of the drop chute starting the repeater.&lt;br /&gt;
# Hook the pressure plate up to the focus of the repeater (spike traps, danger room, bridge, etc).&lt;br /&gt;
# Clear out or forbid all the debris in the tunnel, or you run the risk of creating road kill as someone goes to pick it up.&lt;br /&gt;
# Use the lever to start and stop the process.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See [http://www.bay12forums.com/smf/index.php?topic=114695.0 this forum thread] for other designs tuned for bridge and upright spike traps.&lt;br /&gt;
&lt;br /&gt;
See [http://www.bay12forums.com/smf/index.php?topic=126154.0 this forum thread] for a super-compact design.&lt;br /&gt;
&lt;br /&gt;
Minecart repeaters can be calibrated to periods usable in the construction of clocks, like 200, 300 or 400 steps. Powered repeaters of this type will require nothing but a single roller and the power to run it, one pressure plate and a bit of space for the track. Repeaters using ramps to create perpetual motion don't need the roller or power but tend to be a bit more difficult to calibrate to useful periods and need additional infrastructure to stop their operation.&lt;br /&gt;
&lt;br /&gt;
Minecart repeaters can also be synchronized with other systems. Adding additional pressure plates to the tracks can allow a single repeater to provide multiple offset signals, and/or a [[Pressure_plate#Lightspeed_repeater|combined high-frequency signal]]. Alternatively, a pressure plate can trigger another independently-timed system.&lt;br /&gt;
&lt;br /&gt;
==Clock Generation==&lt;br /&gt;
Although the law of big numbers means that, over large enough intervals, the abovementioned irregular repeaters (the fluid and goblin logic ones) can be used to run a clock, designs that generate perfect clock signals have been known for a while.&lt;br /&gt;
&lt;br /&gt;
This [[mechanical logic|mechanical]]-fluid hybrid repeater was the first proposed device to produce completely regular signals, at a frequency determined by the speed of pressure plate recovery. The basic design consists of 4 [[screw pump]]s and 4 pressure plates but other versions are possible, depending on the number of separate steps you need.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;diagram bg=7:0 fg=7:0&amp;gt;&lt;br /&gt;
[#0:0]Level │Level │Level &lt;br /&gt;
0     │-1    │-2&lt;br /&gt;
──────┼──────┼──────&lt;br /&gt;
      │      │ &lt;br /&gt;
  [#6:1][@0:0]☼[@]   [#0:0]│ [@0:0] [#2:1]÷[#2:0]÷ [@] [#0:0]│ [@0:0][#4:1]^[@]  [@0:0][#2:1]^[@#] &lt;br /&gt;
 [@0:0][#1:1]☼[#]☼☼[#6:0]══[@][#0:0]│ [@0:0][#2:0]÷[@]  [@0:0][#2:1]÷[@] [#0:0]│&lt;br /&gt;
   [@0:0][#]☼[#4:1]☼[@] [#0:0]│ [@0:0][#2:1]÷[@]  [@0:0][#2:0]÷[@] [#0:0]│&lt;br /&gt;
   [@0:0][#2:1]☼[@]  [#0:0]│ [@0:0] [#2:0]÷[#2:1]÷ [@] [#0:0]│ [@0:0][#6:1]^[@]  [@0:0][#1:1]^[@#] &lt;br /&gt;
      [#0:0]│      [#0:0]│ &lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
{{Raw Tile|÷|#0f0|#000}}{{Raw Tile|÷|#008000|#000}} is a screw pump which pumps from the light side to the dark side. {{Raw Tile|^|#f00|#000}} is a pressure plate which disengages gear {{Raw Tile|☼|#f00|#000}} when water of depth 1-7 lands on it. The red, green, blue, and yellow pressure plates and gears are color coded only to show which is linked to which. In the game they'll all look like {{Raw Tile|^|#f0f|#000}} and {{Raw Tile|☼|#c0c0c0|#000}}. Building a pump after the gear which powers it or a gear after the pressure plate which disengages it will introduce a 1-step delay; so, depending on build order, the repeater might have a period between 400 and 408 steps. If the pumps, gears, and pressure plates are built in that order, then this system will repeat every 400 steps, exactly. Start the repeater by using a pond zone to dump 2 buckets of water onto any one of the plates.&lt;br /&gt;
&lt;br /&gt;
The device as depicted uses 47-62 power during operation, and requires 62 power for startup.  Drive train to power may, of course, lead to higher requirements.  Once the two units of water are introduced to the system, water is conserved perfectly.&lt;br /&gt;
&lt;br /&gt;
See [[User:MrFake/NStepCyclicRepeater]] for generalizable n-step clock generator instructions.&lt;br /&gt;
&lt;br /&gt;
[[User:Hash/SelfPoweredHaltableRepeater]] demonstrates clock generation with integrated water [[water_wheel#perpetual_motion|reactor]].&lt;br /&gt;
&lt;br /&gt;
[http://www.bay12games.com/forum/index.php?topic=34407.msg572324#msg572324 Forum thread] has more description and explanations.&lt;br /&gt;
&lt;br /&gt;
[http://mkv25.net/dfma/movie-1370-pump-basedautorepeater DFMA movie] shows the action of pump-based clock generation.&lt;br /&gt;
&lt;br /&gt;
===Delay===&lt;br /&gt;
Clock generation is closely related to the concept of delay: making a signal reach a target a certain amount of time after it is created.  Any non-mechanical circuit introduces delay in a signal-- the simplest form of delay is an identity gate.  The clock signal generator described above is remarkable for introducing a consistent delay.  Any consistent delay can be used for clock generation.  Before the introduction of minecarts, there were three known consistent intervals in ''Dwarf Fortress'' with which to fashion a clock signal generator: the reset delay associated with a pressure plate sending a ''close'' signal; the rate with which a creature [[gravity|falls]]; and the amount of time that a screw pump will continue to pump after losing power.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Category|Computing}}&lt;br /&gt;
[[ru:Repeater]]&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258081</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258081"/>
		<updated>2021-06-05T23:05:17Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the registry connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The southern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off. To minimize the number of linkages in the reading of memory, the pressure plate being activated corresponds to a 0, and the pressure plate being lifted (unactivated) corresponds to a 1.&lt;br /&gt;
===Memory read===&lt;br /&gt;
The following diagram has multiple z-levels, click the diagram and press &amp;lt; or &amp;gt; to go up and down.&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [%186]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [%186][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .          Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#]&lt;br /&gt;
  [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
  [#7:1][%200][%188]  [%200][%188]  [%200][%188]  [%200][%188][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
In the design, each row of red gear assemblies {{Raw Tile|☼|4:1}} are linked to the row of pressure plates in a byte. The purple gear assemblies {{Raw Tile|☼|5:0}} are normally inverted and decide which byte to read. A binary decoder selects which purple gear assembly to engage. Reading works by first letting power flow through a single purple gear assembly corresponding to one byte and then through the red gear assemblies that are engaged. The lower z level (0) carries the power to a power to signal converter.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258080</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258080"/>
		<updated>2021-06-05T21:48:10Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the registry connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The northern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off.&lt;br /&gt;
===Memory read===&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .           Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
  [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#] [#7:0]OO[#][#6:0][%186][#]&lt;br /&gt;
  [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
  [#7:1][%200][%188][#]  [#7:1][%200][%188][#]  [#7:1][%200][%188][#]  [#7:1][%200][%188][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258068</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258068"/>
		<updated>2021-06-05T06:26:07Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the registry connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The northern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off.&lt;br /&gt;
===Memory read===&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO  OO  OO  OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#] [#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186] [#7:1][%200][%188][#][%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0].&lt;br /&gt;
  .           Z=0&lt;br /&gt;
  .[#]&lt;br /&gt;
  [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
  [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258067</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258067"/>
		<updated>2021-06-05T06:20:59Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the registry connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The northern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off.&lt;br /&gt;
===Memory read===&lt;br /&gt;
&amp;lt;diagram fg=6:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=1&lt;br /&gt;
 .[#]&lt;br /&gt;
 [#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
 [#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
[#7:0]OO[#]&lt;br /&gt;
[#5:1]^[#][#0:0][@7:0][%254][#@][#2:1][%15][#]&lt;br /&gt;
[#7:1][%200][%188][#]&lt;br /&gt;
  [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
  [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
  [%186] [%186] [%186] [%186] [%186] [%186] [%186] [%186]&lt;br /&gt;
 [#7:0].&lt;br /&gt;
 .           Z=0&lt;br /&gt;
 .[#]&lt;br /&gt;
 [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258066</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258066"/>
		<updated>2021-06-05T05:44:20Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the registry connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The northern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off.&lt;br /&gt;
===Memory read===&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=1&amp;gt;&lt;br /&gt;
[#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
[#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
[#6:0][%186][#]&lt;br /&gt;
[#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
[#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
[#6:0][%186][#]&lt;br /&gt;
[#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
[#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
[#6:0][%186][#]&lt;br /&gt;
[#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
[#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
.&lt;br /&gt;
.           Z=1&lt;br /&gt;
.&lt;br /&gt;
[#6:0][%186][#][#4:1][%15] [%15] [%15] [%15] [%15] [%15] [%15] [%15][#]&lt;br /&gt;
[#7:0][%15][#][#5:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#][#6:0][%205][#][#7:0][%15][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;frame type=level level=0&amp;gt;&lt;br /&gt;
 [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
 [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
 [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
 [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
.&lt;br /&gt;
.           Z=0&lt;br /&gt;
.&lt;br /&gt;
 [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#] [#7:0][%15][#]&lt;br /&gt;
 [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#] [#6:0][%186][#]&lt;br /&gt;
&amp;lt;/frame&amp;gt;&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258065</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258065"/>
		<updated>2021-06-05T03:49:21Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in each bit of the registry connects to the {{Raw Tile|☼|#0F0}} northern gear and the {{Raw Tile|☼|#080}} sourthern gear assembly of the respective bit of all bytes in memory. The northern gear assembly is inverted. On a layer above, power is provided to all of the gears assemblies of each byte. A binary decoder selects a byte to activate in the layer above. Writing works by letting power flow first only to the byte being written to, and then the individual bits being turned on or off.&lt;br /&gt;
===Memory read===&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258064</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258064"/>
		<updated>2021-06-05T01:38:41Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
===Single bit cell===&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
===Byte cell===&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;br /&gt;
===Memory write===&lt;br /&gt;
Multiple byte cells are created close together to create the actual memory. A registry for writing to memory, consisting of a byte cell is created. The pressure plate in the registry connects to the {{Raw Tile|☼|#0F0}} northern gear assembly, and also to the {{Raw Tile|☼|#080}} sourthern gear assembly. The northern gear assembly is inverted.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258063</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258063"/>
		<updated>2021-06-05T00:46:30Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;br /&gt;
The byte cell is made up of eight individual single bit memory cells. The diagram shows only the track layer, the minecart and roller/furniture layers can be derived from the diagram above and the single bit design.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258062</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258062"/>
		<updated>2021-06-05T00:42:37Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&amp;lt;br&amp;gt;&lt;br /&gt;
Design for byte:&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
[#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#][#7:1][%186][#]O[#7:1][%210][#][#2:1][%15][#]&lt;br /&gt;
[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O[#7:1][%208][#][#2:0][%15][#][#7:1][%186][#]O&lt;br /&gt;
[%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#][%201][%187][#7:1][%208][#][#2:0][%15][#]&lt;br /&gt;
[%200][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205][%205][%202][%202][%205]O&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258061</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258061"/>
		<updated>2021-06-05T00:28:30Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Dwarftel Core d1=&lt;br /&gt;
==Memory Cell==&lt;br /&gt;
Design for single bit memory cell found [[Memory_(computing)#Minecart_Logic|here]]&lt;br /&gt;
Design for byte&lt;br /&gt;
&amp;lt;diagram fg=7:0&amp;gt;&lt;br /&gt;
O[%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%203][%205][%205][%203][%187]&lt;br /&gt;
[#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188][#7:1][%210][#][#2:1][%15][#][%200][%188]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/diagram&amp;gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258060</id>
		<title>User:Green Sprite</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=User:Green_Sprite&amp;diff=258060"/>
		<updated>2021-06-04T23:57:00Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: Removed new page tag&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
	<entry>
		<id>https://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki:Page_request/List&amp;diff=258057</id>
		<title>Dwarf Fortress Wiki:Page request/List</title>
		<link rel="alternate" type="text/html" href="https://dwarffortresswiki.org/index.php?title=Dwarf_Fortress_Wiki:Page_request/List&amp;diff=258057"/>
		<updated>2021-06-04T23:46:45Z</updated>

		<summary type="html">&lt;p&gt;Green Sprite: New page request&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{page request header|List of page requests}}&lt;br /&gt;
:''This is a '''list''' of page requests. See [[DF:PR|this page]] for assistance with requesting a new page.''&lt;br /&gt;
== Recently created pages ==&lt;br /&gt;
{{Special:RecentChangesLinked/Template:Newpage|showlinkedto=1}}&lt;br /&gt;
----&lt;br /&gt;
{{page request footer}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Article requests ==&lt;br /&gt;
&amp;lt;!-- Add new requests directly below this line (remember to sign with ~~~~). Don't forget to save using the &amp;quot;Save page&amp;quot; button below! --&amp;gt;&lt;br /&gt;
*Request: I would like to create [[The Long Night]] and several associated articles [[The Long Night: Civilizations]], [[The Long Night: Creatures]], [[The Long Night: Materials]], [[The Long Night: Weapons]], and [[The Long Night: Armor]] to form a more easily navigated guide to the new features found in the mod of the same name. [[Special:Contributions/98.212.135.225|98.212.135.225]] 23:51, 1 September 2020 (UTC)&lt;br /&gt;
** Since this is a mod, it should go under the mod namespace. I've created [[Mod:The Long Night]]; as it expands, I would suggest creating subpages like [[Mod:The Long Night/Creatures]]. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 01:25, 2 September 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
* request: [[DF2014:Altar]] [[Special:Contributions/35.191.8.17|35.191.8.17]] 00:11, 17 February 2020 (UTC)&lt;br /&gt;
** Done. DF also refers to these as &amp;quot;offering place&amp;quot;s in the {{k|b}} menu, but I didn't see existing pages where either of these were mentioned from a quick search. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 00:03, 30 June 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Request: I would like to create [[DF2014:Messenger]] specifically with the information that they are assigned on the locations screen [[User:Keupo|Keupo]] ([[User talk:Keupo|talk]]) 06:56, 27 June 2018 (UTC)&lt;br /&gt;
** You already have permission to do this since you've made 3 edits now. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 17:31, 27 June 2018 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Request: I would like to create [[Civilization/World_Info_menu]] [[User:Azeroth2b|Azeroth2b]] ([[User talk:Azeroth2b|talk]]) 18:33, 13 December 2017 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Request: I would like to create [[DF2014:Kisat Dur]] [[Special:Contributions/174.27.44.232|174.27.44.232]] 00:14, 31 July 2016 (UTC)&lt;br /&gt;
** Done. [http://www.bay12forums.com/smf/index.php?topic=148015.0 Forum thread] for reference. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 02:09, 1 August 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Request: [[DF2014:Reaction examples]] Simply copy the old page from v0.31 for more resources. Many old pages on modding haven't been pushed through versions even when they are still accurate. [[Special:Contributions/2606:A000:FD44:7A00:B58A:AB43:BD25:B51C|2606:A000:FD44:7A00:B58A:AB43:BD25:B51C]] 22:23, 28 March 2016 (UTC)Ryga_&lt;br /&gt;
** Done.--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 19:47, 1 August 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Request: I would like to create [[DF2014:Philosopher]] and [[DF2014:Sage]] because these are new scholar jobs in 42.xx [[User:Lead Cafe|Lead Cafe]] ([[User talk:Lead Cafe|talk]]) 22:33, 28 January 2016 (UTC)&lt;br /&gt;
** Both are profession titles associated with scholars; I created them as redirects to [[DF2014:Scholar]].--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 04:08, 29 January 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
*[[DF2014:Citizenship]] — here's one article on a new mechanic not currently covered by the wiki, we most definitely need to work on this. — [[Special:Contributions/94.19.200.59|94.19.200.59]] 20:39, 8 December 2015 (UTC)&lt;br /&gt;
**Done. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 22:17, 4 January 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
*[[Masterwork:Titanite]]: I can't find any information about Masterwork's Titanite, either from the wiki or Google.  After mining some, I can only cut it like gems.  Also need a to-do for this: build a crucible to determine if [[Masterwork:Titanium]] can be extracted from titanite. 1 Jan 2016&lt;br /&gt;
**Done. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 22:17, 4 January 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
*[[DF2014:Giant firefly]]: Just found one in my latest save of 0.42.05, realized a page didn't exist. [[User:ArcaneMusic|ArcaneMusic]] ([[User talk:ArcaneMusic|talk]]) 22:07, 19 January 2016 (UTC)&lt;br /&gt;
** I just added a list of all the new creatures (probably contains some errors) on the talk pages of the [[graphic set]] and [[creature]] pages. Most of those probably need to be added as new pages too. In addition the page [[Back_bear_man]] should be deleted (mistyped b-L-ack bear man). In the future, it would be nice to have a script that simply goes through the creature raws and suggests new pages to be created for missing creature entries. [[User:CLA|CLA]] ([[User talk:CLA|talk]]) 15:12, 20 January 2016 (UTC)&lt;br /&gt;
***The admins have bots that can create the pages automatically. Part of the hold-up is that the wiki's raws haven't been updated, so new creature pages aren't able to &amp;quot;autofill&amp;quot; with the appropriate details from the raws (and we prefer not to enter all that information manually).--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 20:38, 20 January 2016 (UTC)&lt;br /&gt;
&lt;br /&gt;
*[[Masterwork:Drake]] The article is blank. Since these are a domestic animal that players can grab on embark, there should be some information about them for people new to the mod. [[User:Apollo Densin|Apollo Densin]] ([[User talk:Apollo Densin|talk]]) 02:00, 11 March 2019 (UTC)&lt;br /&gt;
** Done.--[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 23:50, 13 March 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
*Version 0.47.1 added [[DF2014:Fort]], [[DF2014:Constructed creatures]], and perhaps [[DF2014:Intelligent undead]]. It also allows to [[DF2014:Mount]] creatures. A lot of other new features deserve their pages. Perhaps we should create a DF2020 version of pages.&lt;br /&gt;
&lt;br /&gt;
== Talk page requests ==&lt;br /&gt;
&amp;lt;!-- Add new requests directly below this line (remember to sign with ~~~~). Don't forget to save using the &amp;quot;Save page&amp;quot; button below! --&amp;gt;&lt;br /&gt;
I would like a talk page for [[DF2014:Bauxite]] and [[DF2014:Aluminum]]. [[User:Magic9mushroom|Magic9mushroom]] ([[User talk:Magic9mushroom|talk]]) 04:24, 17 August 2019 (UTC)&lt;br /&gt;
:Done. -- [[User:Loci|Loci]] ([[User talk:Loci|talk]]) 18:58, 18 August 2019 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Request: Talk page for [[DF2012:Repeater]] [[Special:Contributions/68.6.123.36|68.6.123.36]] 03:38, 25 March 2014 (UTC)&lt;br /&gt;
:Done. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 03:44, 25 March 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
Masterwork_Talk:Guildhall [[Special:Contributions/68.46.84.117|68.46.84.117]] 14:02, 20 October 2013 (UTC)&lt;br /&gt;
:Done. --[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 15:01, 20 October 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hello, would you be able to create a Talk page with the following question for me?:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Do children born during fortress mode (or worldgen if you can find out) adopt the dieties of their friends/parents, or are they assigned a random diety? Is this with immediate effect from birth?&lt;br /&gt;
&lt;br /&gt;
Thanks.&lt;br /&gt;
&lt;br /&gt;
Josh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Thank you! :)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hello, I'd like to open another talk/discussion page for &amp;quot;Size&amp;quot; (http://dwarffortresswiki.org/index.php/DF2012:Size) with the following question:&lt;br /&gt;
&lt;br /&gt;
Are there any combat benefits to SMALL dwarves?&lt;br /&gt;
&lt;br /&gt;
On one of the pages for an older version of DF it notes that large creatures like elephants have a hard time landing a hit on small creatures like cavies. Would this alleged bonus to-dodge and/or penalty to-hit modifier translate in any meaningul way for smaller dwarves?&lt;br /&gt;
:[[DF2012 talk:Size|Done]]. --[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 19:05, 1 January 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I'd like to open a talk page for [[DF2012_Talk:Relationships]] with the following note (two paragraphs):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The royalty section is inaccurate. I have a second-generation native-born dwarf in one of my fortresses who has a plentitude of aunts and uncles and listed maternal and paternal grandparents. I'm not sure why having those relationships is only noticed for royalty, but I think it's partially because shorter worlds mean smaller lineages and partially because most forts don't last long enough to see native-born children grow up, get married, and have children of their own. I really don't think there's any reason why extended family would be limited to royalty in any case.&lt;br /&gt;
&lt;br /&gt;
Anyway, I added parents to the Types section, and also grandparents because I hadn't noticed the Royalty section. I'd add Aunts/Uncles but I'm not sure where they fall in on the list, and baby Sarvesh doesn't have any cousins yet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Thank you! --[[User:Lielac|Lielac]] ([[User talk:Lielac|talk]]) 02:41, 24 January 2014 (UTC)&lt;br /&gt;
:Done. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 03:37, 24 January 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hello, I feel that [[DF2012:World_generation]] should cover what goes into history simulation, as it is obviously different to simulation in fortress mode.&lt;br /&gt;
However, this is not a matter I am educated on. I would put this request on the page, but I cannot yet create a talk page.&lt;br /&gt;
:Done. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 19:05, 22 April 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
== User page requests ==&lt;br /&gt;
&amp;lt;!-- Add new requests directly below this line (if you're NOT using {{upr|~~~}}, remember to sign with ~~~~). Don't forget to save using the &amp;quot;Save page&amp;quot; button below! --&amp;gt;&lt;br /&gt;
{{upr|[[User:DeathByBlue|DeathByBlue]] ([[User talk:DeathByBlue|talk]]) 02:31, 28 March 2020 (UTC)}}&lt;br /&gt;
{{upr|[[User:Lead Cafe|Lead Cafe]] ([[User talk:Lead Cafe|talk]])}}&lt;br /&gt;
{{upr|[[User:BillyJack|BillyJack]] ([[User talk:BillyJack|talk]])}}&lt;br /&gt;
{{upr|[[User:BillyJack|Sandbox]] ([[User talk:BillyJack|talk]])}}&lt;br /&gt;
{{upr|[[User:Theit8514|Theit8514]] ([[User talk:Theit8514|talk]])}}&lt;br /&gt;
:Created. --[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 23:37, 30 June 2013 (UTC)&lt;br /&gt;
{{upr|[[User:Mixtrak|Mixtrak]] ([[User talk:Mixtrak|talk]])}}&lt;br /&gt;
{{upr|[[User:Green Sprite|Green Sprite]] ([[User talk:Green Sprite|talk]])}}&lt;br /&gt;
&lt;br /&gt;
== Redirect requests ==&lt;br /&gt;
&amp;lt;!-- Add new requests directly below this line (remember to sign with ~~~~). Don't forget to save using the &amp;quot;Save page&amp;quot; button below! --&amp;gt;&lt;br /&gt;
*[[DF2014:Fun]] to [[DF2014:Losing]]&lt;br /&gt;
[[dfhack]], [[DFHack]] and [[DF2012:DFHack]] to [[Utility:DFHack]]. --[[User:Lurker|Lurker]] ([[User talk:Lurker|talk]]) 14:07, 7 August 2013 (UTC)&lt;br /&gt;
:Done. --[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 17:48, 7 August 2013 (UTC)&lt;br /&gt;
* Page &amp;quot;Taming&amp;quot; should redirect to &amp;quot;DF2012:Tame&amp;quot; [[User:Latias1290|Latias1290]] ([[User talk:Latias1290|talk]]) 18:02, 27 August 2013 (UTC)&lt;br /&gt;
**[[DF2012:Tame]] is a redirect to [[DF2012:Animal trainer]]. Created [[Taming]] and [[DF2012:Taming]] as redirects. --[[User:Loci|Loci]] ([[User talk:Loci|talk]]) 19:33, 27 August 2013 (UTC)&lt;br /&gt;
* Page &amp;quot;Gcs&amp;quot; should redirect to [[DF2014:Giant_cave_spider]]. [[Special:Contributions/199.60.104.18|199.60.104.18]] 19:00, 1 September 2015 (UTC)&lt;br /&gt;
:Done. Just do it yourself next time. Just create the page and add &amp;quot;#REDIRECT&amp;quot; followed by a space and the link to the page.[[User:CLA|CLA]] ([[User talk:CLA|talk]]) 22:19, 1 September 2015 (UTC)&lt;br /&gt;
::The reason this page exists is because anonymous users can't create pages. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 12:09, 4 September 2015 (UTC)&lt;br /&gt;
:::Oh, that makes sense. Should have figured that out on my own.&lt;br /&gt;
* [[DF2014:Combat log]] could redirect to [[DF2014:Reports]], I think it's the phrase new players will search for. [[User:Okdewit|Okdewit]] ([[User talk:Okdewit|talk]]) 18:58, 30 January 2016 (UTC)&lt;br /&gt;
**Done. [[User:Jwoodward48|Jwoodward48]] ([[User talk:Jwoodward48|talk]]) 00:05, 2 March 2016 (UTC)&lt;br /&gt;
* create redirect page &amp;quot;World Activation&amp;quot; and redirect to World_activities [[User:Untrustedlife|Untrustedlife]] ([[User talk:Untrustedlife|talk]]) 00:13, 26 July 2016 (UTC)&lt;br /&gt;
-- Got it done [[User:Untrustedlife|Untrustedlife]] ([[User talk:Untrustedlife|talk]]) 00:16, 26 July 2016 (UTC)&lt;br /&gt;
* Page [[DF2014:Guineahen]] and [[DF2014:Keet]] could redirect to [[DF2014:Guineafowl]] the same way [[DF2014:Guineacock]] does currently. [[Special:Contributions/2A01:C50E:D66A:5500:0:0:0:10|2A01:C50E:D66A:5500:0:0:0:10]] 17:43, 29 November 2017 (UTC)&lt;br /&gt;
* Create redirect page for &amp;quot;Retire&amp;quot;, &amp;quot;Unretiring&amp;quot;, and &amp;quot;Retiring&amp;quot; and redirect to &amp;quot;Reclaim Fortress Mode&amp;quot; [[User:Benderdragon|Benderdragon]] ([[User talk:Benderdragon|talk]]) 16:21, 29 June 2020 (UTC)&lt;br /&gt;
** Created [[Retire]]; [[Unretire]] already existed, and I'm hesitant to create redirects for the gerund forms - we don't have guidelines that specifically discourage them, but {{Rule|N}} and {{Rule|E}} are similar, and partial searches for &amp;quot;retir&amp;quot; or &amp;quot;unretir&amp;quot; should bring up the relevant pages in the search box anyway. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 00:12, 30 June 2020 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Other requests ==&lt;br /&gt;
&amp;lt;!-- Add new requests directly below this line (remember to sign with ~~~~). Don't forget to save using the &amp;quot;Save page&amp;quot; button below! --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Can someone include a discussion about how dwarfs choose which jobs/tasks to do if they have enabled multiple labors and there are jobs in multiple labors on the DF2012:Labor page?  Is it based on which job is created first?  Their skills / traits / attributes?  Which labor they are highest ranked or their titled profession?  This seems to be an issue in the LPs I've been watching early on when there are only the 7 starting dwarves, sometimes extending into the first migration.  I know a solution is to deactivate other labors, or use burrows, but I'm still curious how it works.  Thank you, [[Special:Contributions/108.243.77.185|108.243.77.185]] 03:08, 17 August 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Hello. I wanted to know how to make the tiles uniform for the ground. I'm sure to have read somewhere once that it was possible to change the tiles to be all &amp;quot;.&amp;quot; (I am currently searching for a Goblin Snatcher for a while now ^^). I searched for &amp;quot;ground&amp;quot; what has yielded me a link to above ground page. There was no link there. Could make one to the relevant article or indicate the settings to do please? [[Special:Contributions/31.164.176.33|31.164.176.33]] 20:04, 23 September 2013 (UTC)&lt;br /&gt;
** Done: [[Ground]]. --[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 21:57, 23 September 2013 (UTC)&lt;br /&gt;
&lt;br /&gt;
* Hi, im new and just want to start translation of the wiki into german. im really into this game and i guess i still could learn a shitload of new stuff by doing this. AND there would maybe be more players around if and when i/we translate. not every german is fluent in english. -f4nt4sy [[User:F4nt4sy|F4nt4sy]] ([[User talk:F4nt4sy|talk]]) 15:01, 1 March 2014 (UTC)&lt;br /&gt;
:See [[DF:Centralized Discussion/Translating the wiki|here]]. It's been suggested before, but it's been hard to set something up on this wiki. &amp;amp;mdash;[[User:Lethosor|&amp;lt;span style=&amp;quot;color:#074&amp;quot;&amp;gt;Lethosor&amp;lt;/span&amp;gt;]] ([[User talk:Lethosor|&amp;lt;span style=&amp;quot;color:#092&amp;quot;&amp;gt;talk&amp;lt;/span&amp;gt;]]) 03:22, 2 March 2014 (UTC)&lt;br /&gt;
&lt;br /&gt;
* I'd like to create a page under the centralized discussion for a proposal of subnamespaces for stuff like creatures, skills, etc. under a specific version.  Stuff like DF2014:Rat becoming DF2014:Creatures:Rat.  I'm not sure if the software allows this, but I thought I'd say it anyway.&lt;/div&gt;</summary>
		<author><name>Green Sprite</name></author>
	</entry>
</feed>