Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

JonahZil/8-Bit-Computer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

8-Bit-Computer

An 8 Bit Computer built entirely from scratch on breadboards using discrete logic. Based on Ben Eater's 8 bit computer kit. Only has 16 lines of memory available (4 value bits, 4 address bits), so optimization was crucial.

  • Custom machine code and assembly language from scratch.
  • Includes a C++ file to convert assembly into machine code.
  • The EEPROMs are programmed using an arduino nano and a small circuit to connect pins.

ezgif-22e7bbf443f79e

Uses an 8 bit bus to connect all areas of CPU. The machine code and equivalent assembly instruction includes the following:

  • 0000 ____ (ADD): Add numbers in A and B register and store the value in the A register.
  • 0001 ____ (SUB): Subtract numbers in A and B register and store the value in the A register.
  • 0002 XXXX (LD): Load value from address (XXXX) into a register (AAAA). Uses two lines of memory.
  • ____ AAAA
  • 0003 XXXX (LDA): Load value from address (XXXX) into the A register
  • 0004 XXXX (LDB): Load value from address (XXXX) into the B register
  • 0005 ____ (CPY): Copies value from address (XXXX) to address (YYYY)
  • XXXX YYYY
  • 0006 (INC): Increment the program counter
  • 0007 XXXX (LdM): Load value (XXXX) into memory address register
  • 0008 XXXX (JMP): Jump to line (XXXX) in memory
  • 0009 XXXX (JpE): Jump to line (XXXX) in memory if A and B registers are equal
  • 0010 ____ (DiN): Load value on bus as an integer on the display register (Will display a number from 0-255)
  • 0011 ____ (DiW): Load value on bus as a character/w on the display register (Will display a character between 0-127 if the 8th bit is 0, or custom word if 8th bit is 1)
  • 0012 ____ (HLT): Halts the program (stops clock input from reaching rest of CPU).

The full circuit looks like this:

IMG_5097

In better lighting (though missing program register):

IMG_5049

About

An 8 Bit Computer built entirely from scratch on breadboards using discrete logic. Custom machine code and assembly language from scratch. Based on Ben Eater's 8 bit computer kit.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /