树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。
为了体验它的双核编程环境和性能,我用它来实现一个AppleII
仿真,当然是在AppleWin代码基础上移植改造的。
Core0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。
采用SIO/FIFO实现两个核的数据交换。
自旋锁用于需要共同操作的UART操作权管理。
ROM和磁盘数据放在FlashMemory中。
在RP2040仿真AppleII,可以达到真机速度的1.6倍。
RPi Pico当然只能串口屏。
__Pico板__(RP2040)_______ILI9341串口屏___________
Pin-16 GP12/SPI1-RX SDO(MISO) [非必须]
Pin-14 GP10/SPI1-SCK SCK时钟
Pin-15 GP11/SPI1-TX SDI(MOSI)
Pin-17 GP13/SPI1-CSn CS
Pin-19 GP14 DC数据/命令选择
Pin-20 GP15 RST复位 [非必须]
__Pico板__(RP2040)_______SD卡接口_____
Pin-1 GP0/SPI0-RX MISO
Pin-2 GP1/SPI0-CSn CS
Pin-4 GP2/SPI0-SCK SCK时钟
Pin-5 GP3/SPI0-TX MOSI
__Pico板__(RP2040)_______UART串行通讯接口_____
Pin-6 GP4/UART1-TX RS-232-RX
Pin-7 GP5/UART1-RX RS-232-TX
__Pico板__(RP2040)____AppleII必备的外设信号___
Pin-9 GP6 摇杆[上]
Pin-10 GP7 摇杆[下]
Pin-11 GP8 摇杆[左]
Pin-12 GP9 摇杆[右]
Pin-21 GP16 摇杆[按钮A]
Pin-22 GP17 摇杆[按钮B]
Pin-34 GP28 扬声器输出
板上LED灯用于模拟磁盘访问指示灯。
UART串口实现一个简单的调试控制,有如下命令:
T:单步执行
R:查看6502/Z80寄存器
G:开始运行(上电处于运行状态)
P:停止运行
@:复位6502/Z80
/:后续字符串作为键盘输入给AppleII
Project仍在完善中。
暂时先提供一个uf2固件代码,供大家把玩。
这个固件是经典的LodeRunner(警察抓小偷)游戏。
用六个按钮就可以玩起来。
0