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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
树莓派Pico采用他自己的处理器RP2040,双核M0,133MHz。3 O( e' H7 C( [% e1 j; L1 t# O
为了体验它的双核编程环境和性能,我用它来实现一个AppleII* K( F4 d" {9 ]( [& V! p3 t0 l/ Z( U
仿真,当然是在AppleWin代码基础上移植改造的。* [- ~7 q5 Q' `5 b1 m

# [! T0 C1 E# u0 S2 `Core0用作管理、外设仿真,Core1用作CPU6502/Z80仿真。
/ |- y, E* i; a7 h, g: U采用SIO/FIFO实现两个核的数据交换。4 {% s4 G: ]* }' |& t5 Z
自旋锁用于需要共同操作的UART操作权管理。; v! D9 Q' S- P* R( \

. I: x+ w" T! s7 ]% UROM和磁盘数据放在FlashMemory中。
0 R  M, \3 ]9 j4 V* t  J1 F
) L- O& N$ w' r& Y/ L6 q# I在RP2040仿真AppleII,可以达到真机速度的1.6倍。, }; @5 o1 C7 p* |
RPi Pico当然只能串口屏。
. m6 }' g+ G4 E( u* p. N! D: h4 E4 w  W- ]+ T8 Q4 H
__Pico板__(RP2040)_______ili9341串口屏___________
- ^% r4 Q; D7 I2 A+ p  Pin-16  GP12/SPI1-RX     SDO(MISO)  [非必须]
: c0 @5 R, {- e  Pin-14  GP10/SPI1-SCK    SCK时钟3 @4 B' I1 j" b: `4 |
  Pin-15  GP11/SPI1-TX     SDI(MOSI)
$ p6 [: b! ]; }* G: `, ?  Pin-17  GP13/SPI1-CSn    CS
1 n- r; r  g/ T3 K, w) M# S, b% R4 ?  Pin-19  GP14             DC数据/命令选择
- ^' I$ ~( S4 g! {' z: P8 J$ z8 q  Pin-20  GP15             RST复位    [非必须]# E9 D1 o7 ~/ ?  H( [& Y- h

. [' O& H5 e0 e& p! K__Pico板__(RP2040)_______SD卡接口_____
1 c  o* Q# C* T% Z6 k: G7 H. W  Pin-1  GP0/SPI0-RX      MISO# T) e& G# W' o- I, U: }
  Pin-2  GP1/SPI0-CSn     CS
8 o3 _# v3 _) N! M, q2 q% X. f; I" \- E  Pin-4  GP2/SPI0-SCK     SCK时钟& p! z% v/ Y  R2 o4 ~4 n9 \/ t
  Pin-5  GP3/SPI0-TX      MOSI: O: w. q, J) p% N
' N( l: b, B" J4 Y) J. _  D
__Pico板__(RP2040)_______UART串行通讯接口_____
7 `2 i, K0 ~6 w# r1 g  Pin-6  GP4/UART1-TX      RS-232-RX
- [+ L5 M8 A# S% |. \! S  Pin-7  GP5/UART1-RX      RS-232-TX
# [4 h& M# @! \6 w+ d
2 [& K8 b% Z3 \# @) n__Pico板__(RP2040)____AppleII必备的外设信号___; D' d, D( X% |2 F4 o8 B
  Pin-9     GP6            摇杆[上]
/ o( q( z3 G( }  Pin-10    GP7            摇杆[下]1 W! r5 n$ v( o/ g: R
  Pin-11    GP8            摇杆[左]" u7 ?! i& ^9 Z8 L+ x
  Pin-12    GP9            摇杆[右]4 B6 u$ z7 A& b4 x. F
  Pin-21    GP16          摇杆[按钮A]& H! k* `) j+ j8 x
  Pin-22    GP17          摇杆[按钮B]- L/ m/ _% L/ Y( ]3 W
  Pin-34    GP28          扬声器输出
( B  D% @+ u  y* M3 D/ _" G: z7 P# c+ g( k, U( b# q! W" |7 Z
板上LED灯用于模拟磁盘访问指示灯。8 R2 B1 X( q+ H0 Q2 e- [
, B, B3 N* P) }4 Y- k9 J
UART串口实现一个简单的调试控制,有如下命令:, }& x$ g. x5 p" E% [2 Q
  T:单步执行* [: O3 _2 F0 r. [
  R:查看6502/Z80寄存器
/ K6 f0 z/ f/ \4 g& n4 L  O  G:开始运行(上电处于运行状态)" Z  b) ^  h$ i0 Y
  P:停止运行
* I# L; v" _( k, Y0 C5 U& l  @:复位6502/Z80
9 c9 ]) {3 }$ @# D" J" U  V: Y  /:后续字符串作为键盘输入给AppleII# K2 p. `6 N# w8 H  j6 H
% q- x5 X& H. B, X
Project仍在完善中。; J" b  f( W5 Q$ r5 n+ H5 O/ R
暂时先提供一个uf2固件代码,供大家把玩。
. N5 V0 P# S- w& M# [这个固件是经典的LodeRunner(警察抓小偷)游戏。9 \6 m' H3 e* m' U4 c$ Y
用六个按钮就可以玩起来。
' Q- Y- F1 i# b0 Q3 u

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 21:33 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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