satoshinm / pill_6502 Goto Github PK
View Code? Open in Web Editor NEWemulated 8-bit 6502 CPU and 6850 ACIA for STM32F103 blue pill ⛺
License: GNU General Public License v3.0
emulated 8-bit 6502 CPU and 6850 ACIA for STM32F103 blue pill ⛺
License: GNU General Public License v3.0
A possible useful application of pill_6502 could be to add compatibility with the 6510 by implementing the 6522 chip, so it could be a drop-in replacement for the processor in Commodore 64 (with an adapter PCB)
Interacting with the ACIA communications interface through a "virtual serial port" using USB CDC-ACM is convenient since everyone has computers with USB ports these days, but the USB port on my board is getting flaky and for other reasons it may be useful to interact with the ACIA through a real physical serial port via the blue pill's USART (PA9/PA10? PA2/3?). Useful reference: https://github.com/satoshinm/pill_serial
update: went ahead and replaced my USB port instead: 2018/01/15 USB connector replacement on STM32 blue pill development board, so this is now less useful to me, but having a physical UART may still be useful for communicating with other microcontrollers?
I was just reading around comments on github, and i saw you referenced my posts on 6502.org.
I discarded that project due to speed issues.
If you go to my repos you will find 6502. It is broken and it was done for PC. But this is the same core as i have used on the STM32.
Maybe I'll go ahead with your implementation, it seems to be much faster, despite it looks very similiar. Maybe our code-pieces have same roots.
fake6502 has nmi6502() and irq6502(), trigger these from STM32F103 GPIO pins. See https://en.wikipedia.org/wiki/MOS_Technology_6502#Detailed_behavior
Currently 16KB RAM and 16KB ROM is hardcoded, along with the emulated ACIA chip, but consider bringing out the address/data bus for physical hardware expansion. If pins are scarce, at least part of the bus (configurable?) since much of it is internally emulated.
Pinouts of the STM32F103 blue pill and MOS Technology 6502:
Executing 6502 instructions on systick every 1 ms gives about a 1 / (1 ms) = 1 kHz clock rate; it ought to be possible to improve this, probably by moving off systick and step6502(), instead using exec6502(ticks), but note the USB device also requires periodic attention (currently polled with while (1) usbd_poll(usbd_dev)
).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.