Skip to the content
PCBKitNew board
2 layers99.1 × 99.1 mmInstruction Decoder, the printed circuit board in 3D

Instruction Decoder

giraffeics/BEEBA2

An 8-bit computer built using 7400 Series discrete logic chips.

Size
99.1 × 99.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
50
Nets
134
Pads
432
Tracks, vias
1,846, 35
Routed
Yes
KiCad
KiCad 4
Created
14 Oct 2017
Updated
14 Oct 2017

Overview

Instruction Decoder is an open-source printed circuit board by giraffeics, from the giraffeics/BEEBA repository on GitHub. It is a 2-layer board of 99.1 × 99.1 mm with 50 parts on 134 nets, routed with 1,846 tracks and 35 vias.

It is built around the 74LS373SC, 74LS193P-E and 74HCT04D, with the 74LS04PC and 74LS74PC among its other parts. Its parts include 18 capacitors, 18 ICs, 1 resistor, 1 diode and 1 transistor. It belongs with the retro computing and games boards of this library.

Main components

5

README

README.md

BEEBA

An 8-bit computer built using 7400 Series discrete logic chips.

Repository Layout

The "CAD" folder contains all design files for the printed circuit boards. These are KiCAD documents. The "Assembler" folder contains the C++ source code for the assembler, as well as the list of register names and some programs written in BEEBA assembly language. The assembler can be compiled with MinGW on Windows, and has not been tested on other compilers or operating systems.

Assembly Language

Assembly language programs can be in any plain-text file format. The language is not case-sensitive. Each instruction copies eight bits of data from one register location to another. A line of code can follow one of three formats:

COPY [read location] TO [write location]

Reads one byte of data from the register specified by [read location], writes data to the register specified by [write location].

SET [write location] TO [data]

Writes a byte of data specified by [data] to the register specified by [write location]. [data] can be a two-digit hexadecimal number or a marker.

MARK [marker name]

Marks the instruction position that corresponds to the following line of code. This does not represent an actual instruction. [marker name] can be referenced by SET instructions before or after the location of the marker, using a colon to specify which byte of the marker's location to use. This ranges from 0 (least significant) to 2 (most significant).

For all of these, any text after the last parameter will be ignored. However, it must be separated by a space or tab from the last parameter.

Register names are listed in REGISTER_NAMES.txt. The assembler uses this file to convert names to addresses while compiling programs.

Using The Assembler

To use the assembler, simply drag assembly source files onto the compiled executable.

As BEEBA uses two physical ROM chips to store 16-bit-wide instructions, the assembler will output two .bin files. One of these is loaded onto the ROM chip on the left, the other is loaded onto the ROM chip on the right. They are named accordingly.

Known Issues

When writing a constant to a register, the value will be corrupted unless the same data is sent to another register in the next instruction. The current workaround is to send data to NULL, which is an unused register.

The NES controller interface board cannot read the state of the A button. Pannenkoek2012 would love this.

The "Basic IO Board"'s input does not work at all. This was caused by oversights during the transition from TTL to CMOS. Output is still fully functional.

Parts

50
QtyValueFootprintReferences
1810µFCapacitors_SMD:C_1206_HandSolderingC1, C2, C3, C4, C5, C6, C7, C10, C11, C12, C13, C14, C15, C16, C17, C18 +2
774LS373Housings_DIP:DIP-20_W7.62mmU8, U9, U10, U12, U13, U15, U17
674LS193Housings_DIP:DIP-16_W7.62mmU1, U2, U3, U4, U5, U6
41pinConnect:1pinMOUNT 1, MOUNT 2, MOUNT 3, MOUNT 4
4CONN_01X12Socket_Strips:Socket_Strip_Straight_1x12H1, H2, H3, H4
12N3904TO_SOT_Packages_THT:TO-92_Inline_WideQ1
12N5060thyristor:TO-92_Inline_WideT1
14.7kΩResistors_ThroughHole:Resistor_Horizontal_RM10mmR1
174HCT04Housings_DIP:DIP-14_W7.62mmU14
174LS04Housings_DIP:DIP-14_W7.62mmU7
174LS138Housings_DIP:DIP-16_W7.62mmU11
174LS244Housings_DIP:DIP-20_W7.62mmU16
174LS74Housings_DIP:DIP-14_W7.62mmU18
1CONN_01X16Socket_Strips:Socket_Strip_Straight_1x16H5
1DDiodes_ThroughHole:Diode_DO-41_SOD81_Horizontal_RM10D1
1XO-14Sxo_14s:XO-14SX1

Questions

How big is the Instruction Decoder PCB?

It measures 99.1 × 99.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Instruction Decoder use?

50 parts, built around the 74LS373SC, 74LS193P-E, 74HCT04D and 74LS04PC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Instruction Decoder KiCad files?

From the giraffeics/BEEBA repository on GitHub, at the commit this page was made from: the board is CAD/Instruction Decoder MK2/Instruction Decoder.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Instruction Decoder design in my own project?

Its repository states no licence, so its author keeps all rights: ask giraffeics before reusing the design.

More from giraffeics/BEEBA

11
  • 2 layers99.1 × 99.1 mm100x100mm Computer Perf Board, the printed circuit board in 3D

    100x100mm Computer Perf Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    1,283 parts2
  • 2 layers99.1 × 99.1 mmBasic IO Board, the printed circuit board in 3D

    Basic IO Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    57 parts2
  • 2 layers99.1 × 99.1 mmRegister Board, the printed circuit board in 3D

    Register Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    35 parts2
  • 2 layers99.1 × 99.1 mmRAM Board MK2, the printed circuit board in 3D

    RAM Board MK2

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    32 parts2
  • 2 layers99.1 × 99.1 mmALU Board 02 - Copy, the printed circuit board in 3D

    ALU Board 02 - Copy

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    30 parts2
  • 2 layers99.1 × 99.1 mmALU Master Board, the printed circuit board in 3D

    ALU Master Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    29 parts2
  • 2 layers99.1 × 99.1 mmALU Board 01, the printed circuit board in 3D

    ALU Board 01

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    28 parts2
  • 2 layers99.1 × 99.1 mmNES Controller Board, the printed circuit board in 3D

    NES Controller Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    19 parts2
  • 2 layers99.1 × 99.1 mmROM Board MK2, the printed circuit board in 3D

    ROM Board MK2

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    15 parts2
  • 2 layers99.1 × 99.1 mmALU Master Board, the printed circuit board in 3D

    ALU Master Board

    giraffeics/BEEBA

    An 8-bit computer built using 7400 Series discrete logic chips.

    11 parts2

Similar boards

  • 2 layers299.2 × 180 mmCobra XP, the printed circuit board in 3D

    Cobra XP

    ceteras/Cobra-XP

    Derived from Cobra, an experimental board for testing all kind of mods.

    452 parts5MIT
  • 2 layers221.5 × 149.5 mmZX1, the printed circuit board in 3D

    ZX1

    misterblack1/zenith_zt1

    Information gathered on the Zenith ZT-1 / ZT-10 / ZT-11 and ZTX/ZT-x-A variants

    140 parts5
  • 4 layers298.9 × 270 mmDino v0 0 2, the printed circuit board in 3D

    Dino v0 0 2

    robertrico/dino-homebrew

    A perfboard with the bus edge and the slot decode every DINO card repeats. Plug it into any of J1-J8 on the Rev 1.0 mainboard, pick the slot with one shunt, bodge the card on the grid.

    239 parts
  • 2 layers390 × 179.8 mm250407, the printed circuit board in 3D

    250407

    schenkmi/electronic-retro-computing-projects

    In revision 2, the PCB size has been reduced by more than 50% and TAPuino support has been ditched. It now features a Micro SD slot and a few other improvements.

    227 parts
  • 2 layers124.5 × 132.1 mmInterface osi, the printed circuit board in 3D

    Interface osi

    osiweb/unified_retro_keyboard

    Project to provide keyboard replacements for various classic computers, as well as classic ASCII keyboard

    80 parts122
  • 4 layers121.9 × 91.4 mmAVG Discrete KiCad, the printed circuit board in 3D

    AVG Discrete KiCad

    nmikstas/atari-avg-replacements

    Atari AVG chip replacements. Both CPLD andTTL versions of the chip.

    214 parts14
  • 2 layers299.2 × 180 mm2layer, the printed circuit board in 3D

    2layer

    ceteras/CoBra

    A Z80 retro computer, ZX Spectrum compatible, can also run CP/M.

    369 parts11MIT