找回密码
 注册
关于网站域名变更的通知
查看: 136|回复: 1
打印 上一主题 下一主题

树莓派Pico上实现怀旧的AppleII仿真

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-14 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。
& e2 {: m0 o8 }为了体验它的双核编程环境和性能,我用它来实现一个AppleII& C1 C6 `, k& B5 Y: C
仿真,当然是在AppleWin代码基础上移植改造的。$ K; G, P3 k0 A9 ^

/ R: a3 x: w1 v6 b; s6 KCore0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。% m- A; J; a: V6 a0 a1 ~1 k
采用SIO/FIFO实现两个核的数据交换。
0 G$ s- b- m. t5 x/ r自旋锁用于需要共同操作的UART操作权管理。- U) `3 r2 @) ?/ i

+ r/ {- ^! m7 _- DROM和磁盘数据放在FlashMemory中。. \5 I. C3 D# T

1 B& v1 x1 I1 L% n2 K! [在RP2040仿真AppleII,可以达到真机速度的1.6倍。
2 q- |9 `; ^4 |+ YRPi Pico当然只能串口屏。
  x& r) U7 A! q5 b  O0 y/ a1 _" d+ m* @' w9 b* s
__Pico板__(RP2040)_______ili9341串口屏___________
$ Y8 v, u9 |& W' H* I* g7 W  Pin-16  GP12/SPI1-RX     SDO(MISO)  [非必须]
: _! n& n# Q3 _) N$ T6 A. V/ g' I, h6 s4 M  Pin-14  GP10/SPI1-SCK    SCK时钟
, j! m+ R0 K9 T0 ]$ q  Pin-15  GP11/SPI1-TX     SDI(MOSI)9 b) D' x$ V. R7 [1 u- S* u
  Pin-17  GP13/SPI1-CSn    CS2 W7 v( X9 w7 c
  Pin-19  GP14             DC数据/命令选择
8 P. ^' M" ^5 n  Pin-20  GP15             RST复位    [非必须]
- h, s' X( Z! ?* C0 h7 v. |5 W6 c
0 ]9 N3 x9 V  F- ~, ~4 y1 a__Pico板__(RP2040)_______SD卡接口_____4 l6 p% e! T& ~6 g$ i) b4 N
  Pin-1  GP0/SPI0-RX      MISO
+ Y( a& W7 m1 {9 K1 L  Pin-2  GP1/SPI0-CSn     CS
0 a4 C8 P0 J4 g" e0 R  Pin-4  GP2/SPI0-SCK     SCK时钟3 [' Q$ Q/ M: F/ x
  Pin-5  GP3/SPI0-TX      MOSI! e( J2 F* {1 S& [1 [" O
+ b( @$ {9 ?& R. Q
__Pico板__(RP2040)_______UART串行通讯接口_____- G+ ^& N) F7 e0 H/ w3 c
  Pin-6  GP4/UART1-TX      RS-232-RX/ T3 j% ~/ Q* R# X
  Pin-7  GP5/UART1-RX      RS-232-TX
7 m4 m1 \: f8 l7 O; t! p, N% W' d+ P' r) U. D' m" G( f9 O
__Pico板__(RP2040)____AppleII必备的外设信号___6 m+ L& w" l5 d: W( W- T) O; e& }
  Pin-9     GP6            摇杆[上]  s8 C1 ]9 O9 N$ l) b
  Pin-10    GP7            摇杆[下]8 \' ]8 E8 d* g3 V$ F, i6 t
  Pin-11    GP8            摇杆[左]9 t; j7 ~$ ?! D! ~% \0 G
  Pin-12    GP9            摇杆[右]
2 \; j# n) D  a7 j1 g( t7 w8 J  Pin-21    GP16          摇杆[按钮A]& d1 p( k( |8 x) c1 [& G1 f5 S
  Pin-22    GP17          摇杆[按钮B]9 y3 p2 ]: T: x5 R! {6 H
  Pin-34    GP28          扬声器输出7 F4 U0 ~  W" N; g4 S0 ?; R6 ]: f
( d( x2 j% l. _8 L: \
板上LED灯用于模拟磁盘访问指示灯。
# T4 p, V* ?* _! B; ^6 B
5 v& ]4 m- u4 ]* @1 kUART串口实现一个简单的调试控制,有如下命令:7 o2 Y& i7 N) n9 V5 D$ X( _9 Y
  T:单步执行: T4 a: c2 x% k9 b. A
  R:查看6502/Z80寄存器- `9 Q: N/ b; d8 a% |
  G:开始运行(上电处于运行状态)
/ a) b1 ~6 C, O' v& C  P:停止运行* ]) {- Q6 p& A9 t
  @:复位6502/Z80
" C) ^* {# m3 u  /:后续字符串作为键盘输入给AppleII" k7 N# W1 p" K7 v7 ^

5 `5 \: l1 K+ m. V6 J0 CProject仍在完善中。
3 z! ~+ F: }2 Z0 v暂时先提供一个uf2固件代码,供大家把玩。
1 R! F* Q) L. {这个固件是经典的LodeRunner(警察抓小偷)游戏。, X7 U$ [+ U: f, i0 x
用六个按钮就可以玩起来。
0 @  r% f/ B* _5 }! R: j

该用户从未签到

2#
发表于 2022-6-14 10:35 | 只看该作者
很好用,内容全面,讲解详细,太厉害了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-5 01:46 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表