Skip to content

Working on my 6502 build, proto-Shrimpy, on a breadboard. Going through ben eater's exercises with my own adaptations

Notifications You must be signed in to change notification settings

dhirsch1138/Shrimpy_BenEater_6502

Repository files navigation

Shrimpy

This is my attempt at slowly building up a 6502 based microcomputer loosely structured around Ben Eater's lessons. I will wander off and chase squirrels, wrestle with interesting problems, and generally follow the "rule of cool" when deciding what to do next.

schematic

Current Status

3/9/2025 - Schematic updated, got most of the wiring down for the UART, just figuring out which clock I want to use

Goals

See Shopping List for parts that I would need to get for these.

  • Implement custom characters for the LCD, it NEEDS DINOSAURS
    • Bonus points: make the dinosaur march across the LCD
  • Implement PLD memory address decoder to effectively double RAM. (ATF22V10C)
  • Implement UART DB9 serial adapter
  • Get the schematic built in kicad and included in this repository
  • Implement wozmon
  • Implement basic
  • Implement cold start menu that lets user select from basic or wozmon
  • Implement keyboard support (ps2)
  • Implement video using TMS9918
  • Implement storage support either through SPI or I2C

Current Features

Hardware

Datasheets

Software

Project was initially based on Ben Eater's keyboard.s

  • Modularized development (no monolithic code, I tried to break the project into distinct files that could be re-used in future efforts)
  • Leaning into CC65's provided functionality including:
    • Using the linker configuration file to declare memory blocks, and map segments to the respective memory blocks
    • Using (.res)erved symbols to declare variables and map them to general ram or ZP as appropriate
    • Basically never having to deal with static addresses ever. Everything is dynamically handled by the linker.
    • Exploring & utilizing macros
  • Working on heavily restricting the need for and usage of magic number/symbols.
  • Got the LCD consistenly initializing on cold start and reset, writing to two lines in both scenarios.
    • Did it by implementing the full initialization by instruction sequence for 4-bit operation
  • Custom characters for the LCD (yay dinosaurs)
  • Using a via timer an interrupt driven main loop, no more busy work delays!

About

Working on my 6502 build, proto-Shrimpy, on a breadboard. Going through ben eater's exercises with my own adaptations

Topics

Resources

Stars

Watchers

Forks