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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。' O5 g2 Y/ J8 ^, O/ Q4 F3 R
为了体验它的双核编程环境和性能,我用它来实现一个AppleII8 W0 E' ]- x  b' H
仿真,当然是在AppleWin代码基础上移植改造的。2 m) u1 H& h9 o4 n
- ~5 x( Y- a: U) Z5 w5 D4 n
Core0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。/ W7 Y! a1 l6 S6 s6 t
采用SIO/FIFO实现两个核的数据交换。+ D# j, c: W# c, I
自旋锁用于需要共同操作的UART操作权管理。
  {' p$ h, P. @, z6 O, o5 h' Q5 J! x. U4 u9 O7 [9 g4 y( f) m
ROM和磁盘数据放在FlashMemory中。4 B* Q! B2 U; R8 ?! d

4 |! Z5 s$ x4 P5 l  B; @4 [' o7 w在RP2040仿真AppleII,可以达到真机速度的1.6倍。
2 q( g6 a* j3 E2 O5 d$ SRPi Pico当然只能串口屏。
& U  w! j* j/ j- d( p. r  f
8 r2 X. ^$ N+ |" P- `5 V, O5 n: D, v7 w__Pico板__(RP2040)_______ili9341串口屏___________
( Y9 X) {$ b8 s0 E! C: c& F  Pin-16  GP12/SPI1-RX     SDO(MISO)  [非必须]2 e6 b0 i6 I4 G. F
  Pin-14  GP10/SPI1-SCK    SCK时钟8 l' I0 l% o% Z/ W7 Z% a
  Pin-15  GP11/SPI1-TX     SDI(MOSI)
2 L# R* o' H, C) s% s5 w  Pin-17  GP13/SPI1-CSn    CS
+ c; B" ~2 [8 k9 i$ B: {& u  Pin-19  GP14             DC数据/命令选择
2 R% p) n1 e- v8 T) V. T7 d  Pin-20  GP15             RST复位    [非必须]5 d; g' V7 B: k! R8 k$ R$ l. }& j, k

. n, k; [" z9 x9 Z  f. Z__Pico板__(RP2040)_______SD卡接口_____) f6 q: |1 \$ V5 c! d! Y( i9 B7 d; H
  Pin-1  GP0/SPI0-RX      MISO
* l* J9 y% E) x0 t7 m  Pin-2  GP1/SPI0-CSn     CS
5 j2 A3 Y3 x) @2 ]  Pin-4  GP2/SPI0-SCK     SCK时钟) c0 q5 `/ Z% E
  Pin-5  GP3/SPI0-TX      MOSI' I) J* D; x' ^% @5 t
5 s- b: ~4 G2 m! \! O( q, h
__Pico板__(RP2040)_______UART串行通讯接口_____( D! `0 ^2 S0 \3 ]
  Pin-6  GP4/UART1-TX      RS-232-RX# X. c" r* [! \: T( l
  Pin-7  GP5/UART1-RX      RS-232-TX
3 E* V9 c8 _# M$ J& J
, v- h) o; Q& g/ Y__Pico板__(RP2040)____AppleII必备的外设信号___5 _2 k; b; M6 L8 Q, G
  Pin-9     GP6            摇杆[上]% W+ j# P# p$ g/ p
  Pin-10    GP7            摇杆[下]
4 L  D2 ]) a$ Q$ T5 T  Pin-11    GP8            摇杆[左]0 m( _/ o0 G' i4 G& \* f
  Pin-12    GP9            摇杆[右]* o0 q! z! H) ~# Y0 B9 g
  Pin-21    GP16          摇杆[按钮A]3 B" u, d' H! N& o) W8 ?+ r; m5 ^
  Pin-22    GP17          摇杆[按钮B]
  t6 O; d. g) v1 A3 J2 Z# k  Pin-34    GP28          扬声器输出- z8 U& Z% k( w" R

. w: D5 h1 P, v. m板上LED灯用于模拟磁盘访问指示灯。
0 c* ~* h. Q; O; c( _, b. }, _7 \5 ]
UART串口实现一个简单的调试控制,有如下命令:
4 p' n5 v+ o( H* b6 q. p  T:单步执行
3 ]- E/ z# q/ |$ _8 a' q1 l! {  R:查看6502/Z80寄存器
& U) u4 H0 ~+ J3 E" m" M  G:开始运行(上电处于运行状态)+ Q% a! L3 B% D. b6 H+ H
  P:停止运行
* O" a" C3 p+ n8 T  @:复位6502/Z80% H& ]* R5 h4 @8 h
  /:后续字符串作为键盘输入给AppleII
, N0 Q- Y/ `( O6 B! s7 n9 R
: c7 B  M% J4 v% [  `Project仍在完善中。- \; N, f: P6 `, q  R) k, V; X
暂时先提供一个uf2固件代码,供大家把玩。
# `/ p5 s! \  r1 b6 [4 f这个固件是经典的LodeRunner(警察抓小偷)游戏。
" b/ L2 `) e9 V7 k& P* \1 Z# D用六个按钮就可以玩起来。
) K, b$ u2 }' V+ c; q7 T- R

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 16:04 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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