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 talk:Mstram

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 5: Line 5:
  
 
http://df.magmawiki.com/index.php/User:Jong/Dwarven_Computer
 
http://df.magmawiki.com/index.php/User:Jong/Dwarven_Computer
 
== Running The Computer ==
 
Hi Mike,
 
 
Ok, I haven't played DF in a while, but there is a buildings list, which
 
would contain a list of all the buildings built in the current site. Of
 
course this is absolutely useless in the present context as it would be
 
populated with literally thousands of entries of every door, screw pump,
 
pressure plate in the fortress. There is also no zoom function in 40d. The
 
best that you can do is to edit the ini file so that the window size is
 
bigger and contains more tiles. You can also press TAB to hide the useless
 
minimap. You should probably look up the standard DF view controls.
 
 
Now the basic principles of operating the computer. Unfortunately there is
 
no convenient I/O system, and the clock is not automatic, so the operation
 
of the clock, and the input of the memory registers must be done manually.
 
 
When I say manually, I mean that you must press q, move the cursor over
 
the screw pump you intend to activate, set the screw pump to start pumping
 
manually, and wait for a dwarf to come to operate the screw pump. The
 
screw pump will then fill the tile containing the pressure plate and this
 
will be a 1 in the memory cell, or it will advance the clock by one step.
 
 
Convert 1 - 0
 
To convert a 1 to a zero, the memory cells have an extraction pump in the
 
level above the pressure plates ( the pink ^ symbols). Sending a dwarf to
 
activate this pump will extract and dump the water from the tile with the
 
pressure plate and set the memory cell to zero.
 
 
If there is no extraction
 
pump, and the cell empties the moment you stop pumping, it means that the
 
cell is actually an output buffer, which looks similar to a memory cell
 
but is not. Oh and don't forget to stop the pumping, otherwise the dwarves
 
will try to keep the pump going indefinitely.
 
 
--------------------------------------------------------------------------
 
Ok to operate the computer, first you must ensure that the water reservoir
 
below the pressure plate deck is filled with water.
 
---------------------------------------------------------------------------
 
 
You must also ensure that the power plant in the lowest level of the fort is in operation.
 
 
It should be active in the save I put up, but I'm not sure. If not, the blue
 
levers generally operate the important bits of the plumbing. Unfortunately
 
I don't precisely recall which lever does exactly what, so you may have to
 
risk pulling likely looking levers and seeing what happens.
 
 
I should now digress to comment on the behaviour of "linking" in DF. As
 
you may already noticed, there is no data bus in the computer, or any "
 
wires" that conduct information between various components. The "wires"
 
that you see, simply supply the power to the components are are always on.
 
 
The components of the computer are connected virtually via "linking". What
 
is linking? It is basically the method by which signals are converted into
 
actions in DF. Example, I link a door to a lever. Pulling the lever
 
creates a signal and the door opens. In the computer, the signals are
 
generated by pressure plates, and the actions a various gears being
 
toggled (gears are unique in that their state toggles, rather than
 
conforming to the on/off state of the signal source)
 
 
Unfortunately, once linked, there is almost no trace of the link between the lever and the
 
door, and almost no way to predict what will happen when you pull a lever (
 
 
** there is a method, but it is really really impractical). **
 
 
This is why pulling levers that you didn't build yourself, or you did build, but had
 
forgotten, is a rather dangerous and risky business, and is kind of a
 
running joke among experienced DF users, especially those who play
 
succession games. This is also why you can't really tell how the computer
 
works just by looking at the physical schematics, which is really quite
 
unfortunate.
 
 
**I did think of implementing an actual bus, but this would
 
have introduced issues that I preferred not to deal with. **
 
 
On - Off Switch
 
 
Ok, going over the map, I see that there is a small cluster of levers
 
close to the North edge of the map on the sensor deck. There are also blue
 
levers scattered around the map.
 
 
One of these levers should be the on/off
 
for the computers power supply connection to the power plant. Another
 
should open all the doors in the plumbing, and one should open the drain (
 
which you shouldn't normally have to open). There should be one to open
 
the door to fill the pre-filling cistern, and one that activates the pump
 
that actually does the filling. There's supposed to be one that controls
 
the door between the cave river and the water shaft, but I forgot where it
 
was.
 
 
When the computer's reservoirs are completely filled, you need to turn off
 
the water supply pump, otherwise it would continue to attempt to fill the
 
reservoir. This would prevent the memory cells and output buffers from
 
draining, and the computer wouldn't be able to run.
 
 
Clock
 
 
Now you need to ensure that the water tile in the clock is in the starting
 
position, that should be the top left corner tile. You also need to ensure
 
that the program counter is empty. It would be wise to ensure that all the
 
other memory registers are empty as well, although I'm pretty sure that it
 
shouldn't be a problem.
 
 
Once you have set up the computer, you can input your program into the
 
main memory (using the dwarves). You, uh have to refer to the
 
documentation for the machine codes. Once you have done that, all you need
 
to do is to operate the clock. Just instruct a dwarf to operate a pump to
 
move the water tile into the next cell, then watch the computer until it
 
achieves a steady state, and repeat. Each clock cycle should execute one
 
instruction.
 
 
If you just want to know how it works, you should read the original white
 
paper, which is in the first post and on google docs
 
 
https://docs.google.com/Doc?docid=0AdISzBuNg6ZWZGd0d2t4YjlfMjJ0ejlzc2dnaA&hl=en
 
 
There are some differences between the white paper and the actual computer.
 
 
The final memory cells are derivative of a design posted by someone else
 
in the thread. It's probably optimal in terms of size and speed, although
 
I would be happy to be shown otherwise. The memory output multiplexer is
 
also not in the white paper, although it's construction is fairly simple,
 
although large scale. The adder design I used is actually not optimal, the
 
optimal design is in some other thread, and on the wiki.
 

Please note that all contributions to Dwarf Fortress Wiki are considered to be released under the GFDL & MIT (see Dwarf Fortress Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Please sign comments with ~~~~

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel Editing help (opens in new window)