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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。
" g, ]1 V; a, H! ~/ _; T' k为了体验它的双核编程环境和性能,我用它来实现一个AppleII
; O+ o! g, |2 p仿真,当然是在AppleWin代码基础上移植改造的。1 a7 w, Y* t0 h4 w5 \

( ?2 Y) u) ~  k( ?6 I4 L/ kCore0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。* b. D6 {' Y" e6 t$ \$ ^
采用SIO/FIFO实现两个核的数据交换。! i' i) @1 U0 s1 y: c
自旋锁用于需要共同操作的UART操作权管理。
0 n2 R( t% E7 \3 D* x1 Q; n( i' Q1 W9 M) K* L1 {
ROM和磁盘数据放在FlashMemory中。) N! \" ]  i! b; H" \

7 a2 ]9 \; v  b2 T( d( q! C在RP2040仿真AppleII,可以达到真机速度的1.6倍。
9 m% J+ F) U7 b( l/ O1 BRPi Pico当然只能串口屏。
8 j/ a; P" c; ]8 N- n% ^  V$ o6 M
__Pico板__(RP2040)_______ili9341串口屏___________
0 M* u, D3 \8 P- ~' G; E# U8 u' I+ g  Pin-16  GP12/SPI1-RX     SDO(MISO)  [非必须]# u0 P7 `" D% x1 X: R
  Pin-14  GP10/SPI1-SCK    SCK时钟
4 A5 i9 |6 O6 O$ {, u) B  Pin-15  GP11/SPI1-TX     SDI(MOSI)
+ T  M, {4 s, r  G/ h8 f  Pin-17  GP13/SPI1-CSn    CS
6 K/ `% u1 a" B' C. |  Pin-19  GP14             DC数据/命令选择, g! f4 R- ]# p) H  @7 s$ W. k! k
  Pin-20  GP15             RST复位    [非必须]
. w3 \# I& U' ^- A( V
% Y5 ~1 q& D! T! Z1 k__Pico板__(RP2040)_______SD卡接口_____
# P9 @3 X+ |9 m% n7 ~0 A5 L' r  Pin-1  GP0/SPI0-RX      MISO
8 `# u  {# |( h) ?+ l. u  Pin-2  GP1/SPI0-CSn     CS
& v2 v9 `9 ?# F: ~5 W5 w1 S  F  Pin-4  GP2/SPI0-SCK     SCK时钟" c, y( N; R: y8 [& m, X0 }4 i& f
  Pin-5  GP3/SPI0-TX      MOSI
& e% J$ C$ Z6 F$ B# }% V) b1 g4 \7 Y6 E: s6 v
__Pico板__(RP2040)_______UART串行通讯接口_____  c- a+ w7 a% G/ ?
  Pin-6  GP4/UART1-TX      RS-232-RX8 @- k$ r# Y$ Q' O/ L. [+ y
  Pin-7  GP5/UART1-RX      RS-232-TX; S5 y7 X; ~7 h
9 G' h9 T2 n% h6 v; `
__Pico板__(RP2040)____AppleII必备的外设信号___* Q  o7 C/ u# Z* L7 Q
  Pin-9     GP6            摇杆[上]
& X) B" h, F. E! T% p  Pin-10    GP7            摇杆[下]
1 C  f" I' K. T; P5 X- W  Pin-11    GP8            摇杆[左]! d3 s& }8 `- a" l9 O( Q# C
  Pin-12    GP9            摇杆[右]
! M0 d; I2 R+ k  Pin-21    GP16          摇杆[按钮A]
" v/ w9 s' ^& W* X" C  Pin-22    GP17          摇杆[按钮B]$ E, F7 U! @& _1 b' w4 [9 m& }
  Pin-34    GP28          扬声器输出
( N- [' P" q4 |# J1 \" L/ F/ Y& h: k" a( j  m' o! v2 Z
板上LED灯用于模拟磁盘访问指示灯。
' W  a' C  S5 @$ P2 A- n; T
0 q( V7 m9 D4 H! JUART串口实现一个简单的调试控制,有如下命令:
7 F1 k" `" _( h  e  T:单步执行
( H8 ?7 I! ~* u( g  R:查看6502/Z80寄存器8 S7 R8 x$ @4 y9 X
  G:开始运行(上电处于运行状态)
8 w1 z: z0 n& j8 V8 @  P:停止运行
; g/ [# i( {) ~, ^1 c- v  @:复位6502/Z80
, B1 t0 @: k1 U  /:后续字符串作为键盘输入给AppleII
6 }. k, W( r7 b- ^7 I( n/ w9 {3 T) w+ ~# U0 r
Project仍在完善中。: @7 l9 V3 R+ a  ~  L; P
暂时先提供一个uf2固件代码,供大家把玩。
2 C0 }; X% p9 c3 n- R! |这个固件是经典的LodeRunner(警察抓小偷)游戏。
8 t; X& ~  T9 T6 c' p3 T% g用六个按钮就可以玩起来。
* m7 }7 m3 n/ W7 h% m$ [' j: s

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 20:47 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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