Showing posts from 2014

Register Design: Instruction Register

Well, it's fair to say that I rather underestimated just how much time decorating the new house would take up ... and that's mainly because 'decorating' included re-wiring, re-plumbing, re-plastering, re-carpeting ... all before I got anywhere near choosing a tasteful shade of emulsion for the walls. Needless to say then that spending time on my relay computer has suffered quite a bit. However, things are starting to calm down (now that there's two rooms in the house that are semi-habitable) so I can get back to designing the next bits for the computer.

The next card up for design is the (mercifully straightforward) 8-bit instruction register. I say straightforward as this card shares much of its design with the B/C register card already constructed. The instruction register is permanently connected to the instruction bus just as the B/C registers are permanently connected to the ALU. However where the B/C registers are general purpose, and so can be set from and …

Sequencing & Control Design: Overview

I've now got my computer to a state where I can perform ALU operations and push values around the four registers by manually operating the various control lines. It's time to move things on a bit now and work towards getting the computer to the point where given a specific instruction/op-code it can operate the control lines itself without further input from the user. Eventually the computer will be given a list of instructions to perform which it'll work through step by step but for now the next milestone is to automate the operation of a single instruction.

In my recent videos I've been demonstrating, by hand, the processing of a simple arithmetic sequence on the computer by following a list of instructions represented as a set of mnemonics. Here's a screenshot from the video showing the full set of mnemonics/instructions to perform the calculation of (((2 + 4 + 1) x 3) - 3):
Here's a description of the mnemonics used in this calculation:
LDI r,v
Load Immediat…

ALU & Registers A-D Test with new Display Cards

Now that the two display cards are complete enough to display and control the status of the ALU and four registers (A-D) it's time to fit them to the upper enclosure. With that done the upper enclosure can then be connected to the lower enclosure and everything can be given a test together.

The upper enclosure is constructed very similarly to the lower enclosure ... as before, out of aluminium profile. Here's a Sketchup image of how the upper enclosure should look when sat on top of the lower enclosure:
The two blank cards at the top of the upper enclosure are Display A and B (A on the left, B on the right) and as with the primary input switches below the display cards are attached to the enclosure by a frame of aluminium channel. Eventually I'll be adding a connection board between the upper and lower enclosure so that the two can be split easily when the computer is moved around but for now everything is 'hard wired' together with ribbon cables.

Here's a pic…

User Interface: Display B Initial Design and Construction

In my last post I put together the beginnings of the first display card ... named in a brilliant flash of nomenclature as display card A. This time I'm turning my attention to the second display card ... named (can you guess) display card B.

Whereas display A is dual purpose allowing a user to view and initiate control signals the second display card is read-only and displays the primary state of the computer. Initially this 'primary state' comprises of the data bus contents, condition register status and ALU function code / operation. I also had a rectangular gap spare on the card that looked like it'd fit an ammeter so that also now forms part of the second display too.

As with the display A buttons and the primary input switches I've known what kind of display elements I wanted to use right from the beginning. Taking inspiration from a visit to the National Museum of Computing in the UK I fell for the big chunky buttons/indicators on the ICL 2966's 'was…

User Interface: Display A Initial Design and Construction

Following on from working on the main data switches in my last post this time I've taken the first steps in designing and constructing the first of two display cards which will sit in the upper enclosure. The first card (display A) has a dual purpose ... it provides a display to show which control signals are in operation between the various parts of the computer but also allows the operator to manually control those signals when the computer is set to a special 'diagnostic' mode.

As with the data switches I knew all along what type/style of components I wanted to use to act as a display and switch over a single control line ... in this case I've specifically gone for the NKK JB series which are illuminated tactile switches. These are momentary switches and available in either red, green or yellow (I'll use all three colours in the final display). The switches are X/Y stackable so it's quite easy to make keypad type layouts with them. Internally the switches a…

User Interface: Data Switches

Now I've got a fully working ALU and four registers completed I want to take a short break from card building and turn my attention to making it easier to interact with the computer. Currently I'm controlling the computer via a set of DIP switches which is incredibly fiddly so it's time to construct something 'chunkier'.

The switches I'm going to concentrate on first are the primary data switches which permit values to be placed on the data bus. These switches won't be directly connected to the data however because as a user you'd have to keep turning them all off so the computer can use the bus ... instead I'll build a gating circuit so the value on the switches can be placed on and off the bus as needed. Additionally the gating circuit will also allow the values on the switches to be gated over to the lower 8 bits of the 16 bit address bus. This will allow the quick setting of addresses once the computer gains its memory card and register. I was o…

Register Construction: Completed A and D 8-bit Registers Full Test

The A/D Register card is now complete and looks like this:
As usual I've put a video together that demonstrates this card in operation. This time I don't show testing the card on its own as the A/D register is pretty much the same as the B/C register shown last time around ... needless to say I did test the card fully off camera and everything worked fine (first time believe it or not). As I've now got the three ALU cards and four registers I'm finally able to perform multiple operations and accumulate the result. I demonstrate this in the video by performing a series of arithmetic operations by hand.

One thing I was curious about is how much heat is being generated by the relays when as many as possible are turned on and how much heat can escape from the enclosure. My multimeter has a handy temperature setting so I stuck the probe in to the card pack and turned everything on:
The temperature steadily climbed over a couple of minutes and eventually levelled out at 41 d…

Register Construction: A and D 8-bit Registers

I haven't posted in nearly a month but in between bouts of enjoying the rare British sunshine I've been  plodding away at the A/D register card and it's now finally ready for testing. The A/D register card is effectively a slightly simplified version of the previously covered B/C card and so a lot of the content in this post is going to be pretty similar. Despite this though I'll go through all the steps taken to construct the A/D register card for the sake of completness ... primarily in photos and then with extra text where anything odd or different came up compared with the B/C card.

The first step was to solder down the LEDs and ribbon cable sockets. Here's some pictures, front and back, of the card following this first round of soldering:
I've continued the trend of applying a line of super glue to the board when placing the LEDs (to stop them moving about while soldering) and I've also removed the negative wrapping post behind each LED again to make …