Layouts
This section demonstrates some interesting train track layouts. Each is constructed as a fixed 'table-top' circuit, and carries out a dedicated computation.
They work in your browser window as usual. Of course, any of these layouts can be built using Duplo track and points.
Passive Points
Passive points are single lazy points which direct the train back along the track from whence it came. This allows a function to be called from two different places, and the train returned correctly. Passive points are not interactive because they never need to be switched or reset by the operator.
|
Click layout to pause/run train | Click start circle to reset train |
Also used in Add and Subtract functions to return the train to the correct stage to continue the calculation.
Halt
In computational layouts, the train must return to its start position to indicate successful completion of a subroutine. It then 'halts'. If the whole layout is a subroutine in some larger scheme, then the train can continue back to the 'calling' routine.
Overflow Error
Sometimes, you don't want a register to rollover. If the data is too large to be held in the register, then the calculation has 'failed' and any result will be incorrect. The calculation will have to be re-run with smaller data or larger registers.
To indicate an overflow error, the final stage can return the train along a separate 'overflow error' (oe) line, to a siding close to the start. This saves time scanning a large layout for trains which have failed to return.
If the whole layout is a subroutine, then the 'oe' line may 'bubble up' and pass the train back to the calling layout. Eventually, both Halt and 'oe' trains should return to the station where they originally started.
Inverted Lazy Point
Similar to a lazy point but a train arriving on a branch line switches the point to the opposite branch line, before exiting as normal on the main line. The additional 'inverter circuit' of four sprung points causes the train to swop branch lines if it arrives on a branch line, but not on exit. Used in Gray Code Counter circuit. |
Bypassed Lazy Point
A train arriving on the 'dead' or 'wrong' branch line never corrects the point as it passes onto the main line. This is called bypass and the effect can be achieved with extra sprung points. Single Bypass Dual Bypass Used in R. A. Memory layout. |
Redundancy
Some sections of track can be removed as they cannot be traversed by the loco or provide no extra capability.
Here, the branch lines from two sprung points are directly connected together. The central section of track can never be reached and so is redundant. |
Here, the lazy point can be removed as it makes no difference to the trains route. It may be needed though if the lazy point is linked to other points, as a returning train will switch the point to 0. |
User Input Points
These points help simplify some complex layouts where many user input points are required. They are shown with a blue border.
Full Point
Full points operate as normal lazy points, but, have an additional X 'don't care' horizontal position. They can be manually switched (cycled) between all 3 positions, and usually start in the default X position.
Trains can switch the points to either 0 or 1 branch lines, but, importantly, cannot switch points to the horizontal X position. If they could, the point would be a 3 position lazy point.
The DigiComp layout is much simplified with full points, as compared to the layout using normal lazy points.
Manual Point
If only one of the branch lines is used then this results in a 'half' point. These help simplify arrays of user input points, as used in the Switching Yard and Turing Machine layouts.
In both layouts, trains are never required to switch the point to a branch line. The Train Yard layout has 6 points (below the main diagonal) where a returning train arrives on the horizontal X line and, as expected, does not switch the point to that line.
As the train never switches these half points they are referred to as 'manual' points because they can only be switched manually.
Note that as half points cannot be switched by the train into both positions, they cannot replace normal lazy points. Also, they cannot be gang linked to form more complex operations.
I've added some additional code so that half points act like radio buttons. As one of them is switched, the others return to the default horizontal X position. This is not required by a Turing Trains layouts, but helps clarify the layout.
3 Position Lazy Point
Normal lazy points switch between 0 and 1 branch lines. 3 position lazy points have a third horizontal line, labelled 2. They introduce tertiary (base 3) logic systems. They are not used on these pages as all layouts follow the binary logic of todays computers.
They could be used to build 3 symbol Turing Machine layout, which would be quite compact.