- 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.
Difference between revisions of "User:Larix/MPL/4"
Line 32: | Line 32: | ||
I'm rather pleased with my accidental discovery of binary complementary to display negative numbers, although getting the final 'minus one' to trigger when going negative - to get the correct complement for display - was quite a bit of a headache and the circuitry ended up insanely tangled. | I'm rather pleased with my accidental discovery of binary complementary to display negative numbers, although getting the final 'minus one' to trigger when going negative - to get the correct complement for display - was quite a bit of a headache and the circuitry ended up insanely tangled. | ||
− | The multiplier was merely a proof-of-concept, size and potential time consumption for multiplications done like this rise with the square of the number "length". | + | The multiplier was merely a proof-of-concept, size and potential time consumption for multiplications done like this rise with the square of the number "length", which quickly becomes utterly impractical when the base time consumption for every generated bit is around 200 steps: multiplying 15 * 15, the biggest calculation possible here, would take about two and a half days. Expanding multiplication to the 100 * 100 range would result in calculation times ranging up to eight days. |
Revision as of 17:26, 11 December 2013
Links: project writeups posted on the forum, all in one thread:
Powerless adder:
http://www.bay12forums.com/smf/index.php?topic=128979.msg4429364#msg4429364 http://www.bay12forums.com/smf/index.php?topic=128979.msg4429366#msg4429366
Commentary:
Due to the limitations of MPL, this design adds very, very slowly compared with mechanical adders. It also took a lot of time to link everything up. The separately adressable memory feeding the "reader" was a major but in the end quite valuable effort; it demonstrates that separate adressable memory banks ("registers"?) holding information for an indefinite time and run off a single shared input are a definite possibility, something that's absolutely necessary for anything nearing an actual programmable computer.
The solution i found - a counter/memory which performs all carry calculations by itself and holds the actual calculation result - strikes me as rather unorthodox, as well as the addition running from highest to lowest bit when classic binary calculations go from lowest to highest.
Precise dwarven clock:
http://www.bay12forums.com/smf/index.php?topic=128979.msg4430617#msg4430617
Commentary:
This clock is absolutely precise when it comes to days, but due to varying delays in the primary counting circuit, the hours ended up very irregular. The hour signals all arrive at the exact same time every day, but the distances between them range between maybe twenty and one hundred steps.
In my first attempt at building a dwarven clock, i had not yet started looking for useable repeaters and ended up with a highly imprecise contraption. But working on it gave me more interest in counting circuits and i eventually stumbled over the device i ended up using not only here but also as the basis of the calculator. After i had found the small-size 720-step repeater, it was only a matter of putting the parts together. The project even offered an opportunity to actually use some of the logic gates i had constructed, to check for various dates and use them to trigger a few specific devices.
Subtractor and multiplier:
http://www.bay12forums.com/smf/index.php?topic=128979.msg4442685#msg4442685
Commentary:
This is primarily an extension of the pure adder above - it's taking the input from the same memory banks - but the calculating memory had to be built anew, the subtraction functionality wasn't included in the adder's memory. The subtractor could probably be designed to allow addition as well, taking input from the same reading circuit, merely using two different-weight minecarts and weight-adjusted pressure plates.
I'm rather pleased with my accidental discovery of binary complementary to display negative numbers, although getting the final 'minus one' to trigger when going negative - to get the correct complement for display - was quite a bit of a headache and the circuitry ended up insanely tangled.
The multiplier was merely a proof-of-concept, size and potential time consumption for multiplications done like this rise with the square of the number "length", which quickly becomes utterly impractical when the base time consumption for every generated bit is around 200 steps: multiplying 15 * 15, the biggest calculation possible here, would take about two and a half days. Expanding multiplication to the 100 * 100 range would result in calculation times ranging up to eight days.