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
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 8: | Line 8: | ||
[[User:Larix/Adder]] | [[User:Larix/Adder]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
A collection of Dwarf Logic projects, ranging from an overengineered silly joke to overengineered solutions for simple problems or challenges to... overengineered overengineering: | A collection of Dwarf Logic projects, ranging from an overengineered silly joke to overengineered solutions for simple problems or challenges to... overengineered overengineering: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
* Doing my very best to push the envelope of dwarfputing, i built a dwarven computer to execute programs written in a high-level programming language. Since so far, dwarven computers have effectively worked with machine code, this is a huge leap forward!! | * Doing my very best to push the envelope of dwarfputing, i built a dwarven computer to execute programs written in a high-level programming language. Since so far, dwarven computers have effectively worked with machine code, this is a huge leap forward!! | ||
: The language in question is hq9+. | : The language in question is hq9+. | ||
− | : thread on the Dwarf Fortress forum: | + | : '''The hq9+ interpreter''' thread on the Dwarf Fortress forum: |
: http://www.bay12forums.com/smf/index.php?topic=130986.0 | : http://www.bay12forums.com/smf/index.php?topic=130986.0 | ||
: I am especially proud of the unary memory device. | : I am especially proud of the unary memory device. | ||
− | |||
* Dwarfs are always so sloshed that when they try to be random, they still just end up drunk. Their drunk stumbling around the meeting hall can be used to derive irresponsibly unpredictable signals, which in turn can be converted into apparently random numbers. Be careful when constructing such contraptions on your own computers, intoxicated computers can be quite difficult to handle. | * Dwarfs are always so sloshed that when they try to be random, they still just end up drunk. Their drunk stumbling around the meeting hall can be used to derive irresponsibly unpredictable signals, which in turn can be converted into apparently random numbers. Be careful when constructing such contraptions on your own computers, intoxicated computers can be quite difficult to handle. | ||
Line 57: | Line 23: | ||
: The double-roller "bit splitter" should be pretty close to the optimum in turning non-periodically timed events (like citizen-triggered pressure plates in a well-travelled area) into pseudo-randomness. | : The double-roller "bit splitter" should be pretty close to the optimum in turning non-periodically timed events (like citizen-triggered pressure plates in a well-travelled area) into pseudo-randomness. | ||
− | : http://www.bay12forums.com/smf/index.php?topic=129226.msg4452422#msg4452422 | + | : '''The Drunk Number Generator:''' http://www.bay12forums.com/smf/index.php?topic=129226.msg4452422#msg4452422 |
− | |||
* Do you lack the patience to wait a hundred steps for a pressure plate to re-set and close a door? Are you annoyed by dwarfs dragging their feet when ordered to pull the "close that door!" lever? No problem, you can get a door to close as reaction to an "on" signal, potentially in less than ten steps. It just takes ~400 power and 25 rollers and pressure plates and link jobs. | * Do you lack the patience to wait a hundred steps for a pressure plate to re-set and close a door? Are you annoyed by dwarfs dragging their feet when ordered to pull the "close that door!" lever? No problem, you can get a door to close as reaction to an "on" signal, potentially in less than ten steps. It just takes ~400 power and 25 rollers and pressure plates and link jobs. | ||
− | : http://www.bay12forums.com/smf/index.php?topic=128095.msg4449221#msg4449221 | + | : '''Security Blast Door:''' http://www.bay12forums.com/smf/index.php?topic=128095.msg4449221#msg4449221 |
− | |||
* Just working out that diagonally-moving minecarts are notoriously unwilling to follow track directions only served as an incentive for me to step up my game and tame the wild diagonal minecart. I succeeded in getting such carts to stay in holding loops, cycle through repeaters and even hold a bit of information by their rotation direction in a read-writeable 'memory cell'. | * Just working out that diagonally-moving minecarts are notoriously unwilling to follow track directions only served as an incentive for me to step up my game and tame the wild diagonal minecart. I succeeded in getting such carts to stay in holding loops, cycle through repeaters and even hold a bit of information by their rotation direction in a read-writeable 'memory cell'. | ||
− | |||
− | |||
: There's no need to use an extra minecart for every bit of memory you wish to store, a single minecart can hold a full byte of information. | : There's no need to use an extra minecart for every bit of memory you wish to store, a single minecart can hold a full byte of information. | ||
: Oh, and i got a rudimentary base-seven memory device or adder to work, based on regulating water depth and measuring it with pressure plates. | : Oh, and i got a rudimentary base-seven memory device or adder to work, based on regulating water depth and measuring it with pressure plates. | ||
Line 75: | Line 37: | ||
: '''Controlling diagonal minecarts'''; one-cart one-byte memory; seven-state fluid memory/potential base-seven adder? http://www.bay12forums.com/smf/index.php?topic=131325.msg4621257#msg4621257 | : '''Controlling diagonal minecarts'''; one-cart one-byte memory; seven-state fluid memory/potential base-seven adder? http://www.bay12forums.com/smf/index.php?topic=131325.msg4621257#msg4621257 | ||
− | |||
− | * Binary multiplication has a simple basis, but tends to get unwieldy because so many adders are needed to put all the partial results together. DF's mechanical logic, however, offers amazing options to compactify the adding-up process so that for a multiplication of two eight-bit numbers, no more than fifteen | + | * Binary multiplication has a simple basis, but tends to get unwieldy because so many adders are needed to put all the partial results together. DF's mechanical logic, however, offers amazing options to compactify the adding-up process so that for a multiplication of two eight-bit numbers, no more than fifteen addition steps are required. But how can this be, when up to sixty-four signals are generated before any addition takes place, and the addition is liable to produce twenty carries? Simple (or not so simple): by adding more than three signals in a single circuit. A load-based "how many inputs are on?" circuit can not only check against a defined threshold of inputs before switching off, by using the output-generating pressure plates to re-configure the circuit itself and thus change the load, it can check for different significant load limits in succession and enforce a stable state when the "correct" output is reached. |
− | : I | + | : I endavoured to make it more elegant by "pre-processing" the carries generated and unwittingly introduced another problem - the "resistor-based input counter" can process new inputs turning on, but will ignore inputs turning off during operation, something that ''will'' happen in the course of preprocessing. Conservatively, this problem can be handled by not pre-processing the generated carries and just passing up to seven up to the next bit, meaning you'll have to handle up to fourteen in- and seven outputs. |
: Or you can build a "consistency check" routine into the resistance counter, which massively increases the parts count but adds a whole new level of elegance and potential for further use. Equipping a multiplier with the presented finalised "count to ten" circuit will likely use at least as many parts as a Wallace or Dadda (or un-organised old-school) adder to collate the partial results, but allows calculating all carries of a bit ''and'' its sum on the same circuit. | : Or you can build a "consistency check" routine into the resistance counter, which massively increases the parts count but adds a whole new level of elegance and potential for further use. Equipping a multiplier with the presented finalised "count to ten" circuit will likely use at least as many parts as a Wallace or Dadda (or un-organised old-school) adder to collate the partial results, but allows calculating all carries of a bit ''and'' its sum on the same circuit. | ||
− | |||
− | |||
: '''Mechanical Multiplier (binary), 8x8 bits, with "single-pass" addition. As a possible improvement, the 0-10 Volume Meter''' | : '''Mechanical Multiplier (binary), 8x8 bits, with "single-pass" addition. As a possible improvement, the 0-10 Volume Meter''' | ||
: http://www.bay12forums.com/smf/index.php?topic=132977.0 | : http://www.bay12forums.com/smf/index.php?topic=132977.0 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |