Giter Site home page Giter Site logo

rp6502-old's Introduction

Rumbledethumps' Picocomputer 6502

The Picocomputer explores retro computing and game development by removing the barrier between genuine 8-bit hardware and modern devices. It can be built entirely with through-hole components, compactly using surface mount devices, or even on a breadboard. No programming devices need to be purchased and the only component used that wasn't available in the 1980s is the $4/โ‚ฌ4 Raspberry Pi Pico.

This is the reference design. It is a 6502 with 64K of SRAM and an optional 6522. A pair of Raspberry Pi Picos are used for power, clocking, video, audio, WiFi, and USB. It is programmed over USB. A filesystem is planned so it can be programmed with a USB flash drive.

Learn how it works on YouTube:
https://youtube.com/playlist?list=PLvCRDUYedILfHDoD57Yj8BAXNmNJLVM2r

Connect with other 6502 homebrew enthusiasts on Discord:
https://discord.gg/TC6X8kTr6d

Memory Map

Addr Description
FFFE-FFFF BRK/IRQB Vector
FFFC-FFFD RESB Vector
FFFA-FFFB NMIB Vector
FFF0-FFF9 10 bytes for fast load
FFE0-FFEF 16 bytes for I/O TBD
FF10-FFDF Unallocated for Expansion
FF00-FF0F 6522 VIA
0200-FEFF Free RAM
0100-01FF Stack Page
0000-00FF Zero Page

Preliminary I/O registers (beta)
FFE0 - UART status, bit 7 Tx ready, bit 6 Rx ready
FFE1 - UART Tx
FFE2 - UART Rx
FFEF - Write anything here to stop 6502

Project Status

Hardware is tested. Schematic for the reference design is unlikely to change.

Graphics Mode 0, aka Color ANSI Terminal, is working. USB keyboard works. EhBASIC works.

Addressable-memory graphics modes are not yet implemented.

Sound is not yet implemented.

Filesystem is not yet implemented.

Hardware Notes

The PIX port will likely be "jumpered" into a high-speed graphics bus. However, work on this hasn't started so I left these pins exposed in case someone comes up with a better use for it.

The Pico VGA is optional. Something to control the RIA over the UART Tx/Rx lines is still required. You might, for example, be developing a video system based on other hardware and prefer to have your video chip control the RIA.

The 6522 is optional. You may need to pull-up IRQB/VIRQ if you omit this from the reference design. The GPIOs are not used for anything, but some software may not function without timers.

Dev Setup

This is only for developing the Pi Pico software. For writing 6502 software, see the examples.

Only build with Release or RelWithDebInfo. Debug builds will not have a fast enough action loop.

Standard Raspberry Pi Pico C SDK setup per the official docs; set PICO_SDK_PATH and PICO_EXTRAS_PATH, use cmake. The VSCode launch settings connect to a remote debug session. For example, I use a Picoprobe under WSL by passing the device to Linux with usbipd-win then bringing up a couple of terminals for the debugger and monitor.

The Pi Pico VGA is also a Picoprobe for development and terminal use. Load a release build of rp6502_vga.uf2 on it with the BOOT SEL button. You can do the UF2 process with the RIA board too, or use the VGA/Picoprobe board to load it using OpenOCD.

PS> usbipd list
BUSID  DEVICE
7-4    USB Serial Device (COM6), Picoprobe

PS> usbipd wsl attach --busid 7-4
$ sudo openocd -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl
$ sudo minicom -c on -b 115200 -o -D /dev/ttyACM0

rp6502-old's People

Contributors

rumbledethumps avatar

Stargazers

Joe Ostrander avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.