v50 Steam/Premium information for editors
- v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
- Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.
Editing User:Larix/Adder
Jump to navigation
Jump to search
Warning: You are not logged in.
Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | + | Using mechanical logic and applying the principles shown by Jong, an extremely compact full adder can be built which functions similarly to a carry look-ahead adder, but thanks to the immediate operation of mechanisms in Dwarf Fortress can calculate all carries of an arbitrary-size addition in a single tick. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
O1-SPABC-O2 | O1-SPABC-O2 | ||
Line 42: | Line 21: | ||
O2 = output generating a signal from the carry, required to calculate the next higher bit's sum. | O2 = output generating a signal from the carry, required to calculate the next higher bit's sum. | ||
− | A carry is generated at a bit only when both A-line and B-line input are on. An active carry will be passed to the next higher bit if one and only one of A and B inputs are on; if both A and B are on, the carry will simply be generated again, the "X" gear will be disengaged and will not transport power. This easily prevents higher-bit carries erroneously flowing down the bit chain. All carries are effectively generated by providing power links between the power sources and the carry gears, i.e. they're present the moment the connecting gears get switched, without any further processing required | + | A carry is generated at a bit only when both A-line and B-line input are on. An active carry will be passed to the next higher bit if one and only one of A and B inputs are on; if both A and B are on, the carry will simply be generated again, the "X" gear will be disengaged and will not transport power. This easily prevents higher-bit carries erroneously flowing down the bit chain. All carries are effectively generated by providing power links between the power sources and the carry gears, i.e. they're present the moment the connecting gears get switched, without any further processing required. |
− | |||
− | |||
− | * | + | * This adder takes a mere five installed gear assemblies per bit - four for the carry calculation and one for the sum. Additional mechanisms and machinery are required for power supply, signal generation and linkage. Linking an extra lever to all inputs of the "A" line in the carry computation allows to use this adder for subtraction as well. |
− | + | Forum post featuring this adder: | |
+ | http://www.bay12forums.com/smf/index.php?topic=15096.msg4600870#msg4600870 | ||
− | + | less economical "fully mechanical" version: | |
− | + | http://www.bay12forums.com/smf/index.php?topic=15096.msg4602227#msg4602227 |