User talk:Mstram

From Dwarf Fortress Wiki
Jump to: navigation, search

[edit] 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.


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

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.

Personal tools