|
本帖最后由 杨生69366 于 2022-6-9 11:16 编辑
SHARP PC-1500计算机实现雅马哈音源芯片控制和播放实战
话说上古的秀才PC1500沦落到面对51系列stm32Arduino树莓派和各种笔记本电脑皆是王者荣耀,如今毫无用武之地。忽然有一天被我发现清理打扫后竟然能用。鼓捣学习了一阵子就一发不可收拾了。
不久前提到关于夏普PC-1500可以与手机通讯存储程序和数据,存储和调用程序和数据十分方便了,不存在磁带机拖拖拉拉错误百出。加上这款计算机小巧方便带打印机,就有兴趣玩玩它的硬软件开发应用。做啥呢?玩从未攻略过的音源芯片电路战场。
音源芯片电路被设计制作游戏音乐以及音频合成器。音乐文件名是.VGM而不是通常的.MP3也不是电子音乐.MIDI。国外市面上音源芯片应用主要是制作播放VGM格式的音乐播放器。VGM的音乐占用内存很少而且可以触摸到音乐创作者或者你自己就可以编辑修改音乐和进程。每一款音源芯片都有自己的特色,每一个芯片都有不同,可以独立地将通道静音以解构音轨并聆听它是如何制作的。
我想应用音源芯片设计制作的,不仅仅作为VGM音乐播放器使用,而是自创一套五线谱编码解码系统。可以作为播放五线谱音乐,对五线谱进行编码输入到计算机处理后通过音源芯片发音,这样更加便利音乐制作而不需要会键盘合成器弹奏乐器来记录创作。当然也就适合不懂五线谱不会弹奏钢琴的人,只要有五线谱曲谱就可以手工输入五线谱逗号符号等,然后播放出来聆听!把看似复杂的五线谱音乐变成可以触摸可以解读播放的美妙音乐。
由于大多音源芯片开发资料在国内不是很全面,对于初接触的开发实现有困难,好在有一份YM2149-YM2608音源芯片网上可以找到。那就制作一台由PC1500古董计算机来实现硬件软件设计编程试试。电路设计,汇编语言编程是必须的,还需要现学现卖突击电子琴音乐芯片原理和五线谱各种符号的意思。如果只是发出单音那不行,要达到同时能够按下相当于四个钢琴键的四重奏以上的编程处理,需要给五线谱定义和编码,甚至考虑到普通人看着复杂的五线谱就可以直接编制计算机能够识别的代码,而不需要太多编码对照表。简直就是现代MIDI的盗版。其实我也不很清楚电子音乐的MIDI,反正网络很多下载的MIDI格式的音乐可以播放可以联机可以再电脑编制处理。还是计划做自己的好玩就行。
搞通五线谱编码音乐后,再进一步在格式上与VGM音乐对接,没准自己也可以创作VGM音乐了。
发现我们村里村外4G网络太棒了,城市工作和疫情太难了,都说城市套路深我要回农村,就回来了贵州山沟一小村户。这里早就实现脱贫,实现电路通道路通网络通,家家户户几台车水泥路开到家门口。我也全靠互联网学习中英文网站知识以及网购各种器材和零件以及雅马哈音源芯片。
乡下鸟语花香实验室初步接通雅马哈音源芯片视频:
不好意思,猪圈门没关好有二头小猪仔差点跑出来了挨了LP骂了,LP说你到处摆弄鼓捣没完没了,现在又骗人家说你有啥屁实验室?明明就是一间做人饭烧猪食的厨房吧?鼓捣这玩意能长出大米来吗?唉,门口菜地好久没有打理了人懒地荒长满杂草,田头樱桃树刚刚结完果好吃过瘾啊?但是,樱桃好吃树难栽,音乐好听芯难整。这季节趁天气好了赶紧油菜收割晾晒打籽,自家地里刚收割上千斤油菜籽等农家赶集卖个好价钱不需要换大米换猪肉换鸡蛋换大白菜败家佬要换几个芯片哈。
樱桃好吃树难栽跟芯片音源无关小视频
我需要把五线谱的符号进行编码,越简单字节越少越容易记忆,就越容易使计算机软件编程转换识别处理。过程嘛?编码逻辑处理和汇编语言编程完成差不多了。一旦软件上能够定义处理,才有可能进行硬件的设计和制作,并且符合硬件电路设计的简洁至上原则。软件方面后面再说。
设计计算机电路控制部分的译码电路,似乎大多数电子工程设计计算机硬件的译码电路都喜欢用到与非门或门等逻辑电路,原理图看起来不那么简单清晰并且集成块用的较多。我采用经典二极管与门加上一个138译码器可以说简单明了检查维护方便,并且也可以通过YM2163芯片和YM2608B芯片的片选检测。但是奇怪的是看YM2149芯片管脚定义,竟然没有片选端?它像是采用状态控制端实现片选的。不过,还有详细有时序分析图供分析。这里分别给出YM2163,YM2149,YM2608B的管脚图:
由于想当然以为,首战必胜,选择了以往国内许多电子琴厂家都使用的YM2163音源芯片,感觉比较容易搞定。我的洞洞板就是按照YM2163设计安装,焊接,不断测试。结果,竟然一场战斗下来一败涂地,搞不定内存寄存器参数设置啊?
不甘心,再战,改换YM2149芯片。因为看到有网友在B站很轻松搞定,还提供图纸资料和心得呢。跟帖大赞!利用了原来的YM2163的24针插座就很容易实现与YM2149芯片的小小过渡板的连接,不需要拆卸原来管座了,实验开始,通电,在示波器捕捉定位到片选信号那个尖尖脉冲信号一刻-多么漂亮的一个下降沿信号:
老激动了?可是后面经过反复测试实验,我竟然连芯片的片选状态端都不能去读出,也就是POKE写入寄存器的数据,再PEEK读出来验证是不是真的写入了,总是显示FF不变?虽然有总线和译码时序分析图对照也不行?咨询这网友作者也不知原因人家说了偶尔拿来玩一下就轻松可以读写搞定发音以及加载国外专业网站的.VGM音源数据发出美妙之天音,我别说写入芯片寄存器数据了。人家想是不是你这隔代8位机八旗子弟古董不行哟?现在人家老外玩音源电路合成器大都是超级PC8800计算机以上级别,16-32位机,国外好几个专业网站有大量数据库和程序库随便下载安装修改播放。我自认为古董机和设计图没大问题。YM2149的芯片片选端还真的与众不同的,等于是没有常规意义的片选端 /CS,只有状态端,我也差不多是通过一片八位273锁存器可以出现所需要的端口选择状态,通过二个发光二极管状态监控端口正确,见下面电路图。有哪位大校参谋长看出啥端倪谋略来供本战场指挥官参考?
失败再失败~!懵懂进去战场趟浑水才发现有多难,水不是有点深,看人家音源芯片钻研如鱼得水,人家发布的加载了.VGM.VGZ发音资源从YM2149到YM2608B芯片解码DA转换出天籁之音享受啊。终于,感谢网友“音源收藏狂”帝王级的资深音源发烧友给出一份来自他日本网友YM2608B资料并且翻花精力译成中文资料。
第一次,第二次,夏普PC-1500与雅马哈的二种音源芯片大战以PC1500完败结束,但芯有不甘,绝不出局。
第三次,战斗开始,这次改为采用YM2608B音源芯片,根据芯片寄存器表,制定详细战役方案,先分析熟悉芯片结构,寄存器注释和译码时序图,预编写测试软件程序,修改DEA电路图纸,网购芯片,搭建过渡板,万用表示波器,友邦焊锡丝电钻电烙铁接地线等工具仪器准备充分,势在必得,……
这次,不是胜利在望,而是唾手可得,终于实现读写内存寄存器和发音啦哈哈!
YM2163电路图,YM2149电路图,YM2608B电路图:
YM2608B实验阶段只是作出来比较简单SSG通道发音应用电路,SSG通道的好处是自带内置DA转换,基本满足用于我的关于五线谱乐曲的编码录入发音实验。实际上,为了连接下载国际VGM-专业芯片音乐创作者开发的各种游戏效果音源和VGM,VGZ音乐播放器的应用,就需要更多功能的FM通道和ADPCM通道,需要外接DA转换YM3016芯片之类的,后面会补发DA转换芯片连接电路图。
夏普PC-1500,一代古董落魄机,这次终于一战成名,我们已经攻城掠地进入现代精彩音频世界啦!
夏普PC-1500大战雅马哈音源芯片成功发音视频:
到此,可能有些朋友觉得不太懂我啰嗦的音源芯片五线谱啥玩意的?其实你自己就每天都随身携带了一片音源芯片啊!只是你自己不知道而已?你不用可就浪费了。我们用的手机都含有这类音源芯片电路的,比如各种手机铃声就是你的手机内的某型号音源芯片发出来的。如果你玩手机游戏,那就恭喜你没有浪费你手机这芯片功能。国外发烧友还专门收集购买古董手机和古董游戏机,就为了“抠”出里面的各种铃声游戏音频然后放到网上供欣赏和收藏甚至赚钱呢。比如油管B站等甚至专业发烧网站更厉害,还兴起芯片和单片机复古风,用STM32模拟Z80,8086单板机,甚至艺术家都直接满地锅碗瓢盆敲敲打打原生态了。我这古董PC-1500八位计算机也算是跟上复古风了。国内网友也进一步发挥你的手机或者旧游戏机的音源音频以及各种创意创新花样点子。众人拾柴火焰高,把我们这数码论坛更热闹起来。看不懂我的文字没有关系,介绍一个发挥你手机音源芯片功能的手机电子琴再离开不白来,简单易懂带各种音色和复杂和弦伴奏有些与音源芯片开发后出来的功能差不多等,我在某鱼上买此类app也不太贵几十元。手机是真正集合强大计算机功能和各种科技应用:
干货,专门为发挥你的手机音源芯片功能的高级电子琴app下载地址:
http://m.2265.com/down/310568.html
有这类音源芯片硬件解码的音频合成器,也就有软件为主的软音源解码和音频合成器,不需要硬件,全是各种专门软件app,听说效果很好。可惜我没有来得及试试,可能我比较喜欢鼓捣硬件吧。
话说回来不要说好多人不太懂音源芯片也用不上五线谱,其实我也是不太懂音源芯片和五线谱,只是突发奇想,就不怕被笑话敢探索敢跨界应用。明明音乐界有MIDI有VGM,我也要试试我自己的设想。搞控制工程设计应用的大师多了去了,但是要善于在本专业领域跨区跨界应用很重要,电路设计也都是举一反三的。说笑我啥时候没准就变成了音乐界的数码专家数码界的音乐大师呢?
我的电路板焊接技术就可能源自于我的乡下盖房子的电焊技术,而且现代音乐节奏打拍子和打击乐也有可能源自于我家铁铺,有视频为证:
我为了进一步学习掌握进入音源芯片世界,最近还入手了来自FM音乐芯片专家的一款开源播放器,兼容YM2612,YM3438,SN76489an,YMF262:
最新YM2608B中文说明书(来自网友“FM音源收藏狂”):
该电路板主要设计了三个译码电路选址:
第一个是音源芯片选址,不是唯一选址6FF8H(H表示是16进制,为了表述方便以后不加H),选址范围:6FF8-6FFF,以方便配合多权重片选等需要。
第二个是事先固化存储我的五线谱编曲或者vgmrips.net等专业芯片网站下载的芯片音源编曲的EROM2764的选址,不是唯一选址,选址范围是8000-9FFF符合2764的容量正好16K。
第三个是定时中断向量选址,是唯一选址,FFF8。
对于PC-1500计算机硬件电路设计重要一环就是中断向量的定义,这里要求产生的音乐节拍必须使用时序中断来进行。由于PC-1500的中断向量是在其内部ROM芯片中,如果要使用自己定义的中断编程,就需要把原来在ROM中的地址数值变成指向RAM区就可以编写自己需要的中断程序了。原来ROM中的中断向量地址FFF8和FFF9存放的是E1和71,也就是说,原来计算机的LH5801CPU,取得中断向量入口地址是E171,程序执行中断命令时会自动转向执行地址E171开始的程序,也称中断服务程序,也包括在ROM中,所以译码电路选中E171,就打开电路板U4,HC126四位锁存芯片,给计算机数据总线的D7、D5输出00电位,使得E171变成4171了就指向了地址RAM的自己可以编制的中断程序。
中断编程主要是按照节拍震荡器产生定时脉冲信号给CPU总线产生INT中断,就提供音乐编程所需要的节奏打拍子,节拍震荡器是由六反相器芯片40106产生,提供给总线INT中断请求,汇编语言编程处理后即可。五线谱音乐的一个小节最小是1/16拍,最长4拍,我要满足所有五线谱节拍,就是需要取得一个最大公约数和一个最小公约数,经过计算就是最长4拍,就用数值192表示,换算成16进制就是C0H,最小节拍是1/16拍,用数值3表示,比如,1-4拍就是48,96,144,192个节拍震荡器脉冲值(也是INT中断请求次数)。那为啥不用10,20,30,40表示?不行的,无法应对所有节拍的数值表达,比如1/2,1/4,1/8,拍,3连音,以及最小1/16拍等节拍。所以我设计必须如此这般:1拍=48,2拍=96,3拍=144,4拍=192,1/4拍=12,2/4拍(半拍)=24,3/4拍=36,1/16拍=3,1/8拍=6,6/4拍(一拍半)=72,1/3拍(三连音)=16,2/3拍(2拍内三连音)=32。这样,是不是就满足所有节拍条件了?
五线谱还需要有转调编码,初看起来复杂,但是简化就没啥了,比如,我设计就是五线谱开头标记了一个b,我就记编码也是代码为B1,标记3个b,我就B3好了,如果是升记号#,,五线谱标记1个#,我就用D1,3个#,我就D3表示,直到7个#又怎样?我用有应对的D7呀。对于五线谱的音符编码我觉得更简单,稍后介绍。
下图片二段汇编语言程序是PC-1500对YM2163音源芯片和YM2608B音源芯片的中断服务程序,使用汇编语言的编写例子。实现按照五线谱节拍律可以实现4重发音(对于YM2608B的SSG只能同时发3个音),预备以后更合适的芯片或者是开通扩展YM2608B芯片的FM,ADPCM通道就可以同时6-9发音,看这二个中断服务程序的汇编语言编程,还是比较简单的。而主汇编复杂的多多,不仅仅需要计算正常五线谱编码寻址Y=6X+387CH,还需要处理五线谱开头标识有几个升#调式几个降b调式?五线谱进程中的升#降b调处理情况,还有节拍编码的识别处理。程序长度可能是中断服务汇编的百倍了,反正我初步编程五线谱主汇编语言程序。用CE150打印机打印已经超过2.5米纸带中断服务程序只是执行主汇编程序的数据处理后,结果存放在缓存地址,最后中断服务程序取出缓存地址的数据正确发音输出。汇编程序编制看起来长,其实是因为有四个键同时发音的编程处理,但是,每一键发音程序汇编语言都相同只有少量的存放发音码节拍码和转调码的寄存器地址不同而已,程序就没那么复杂吓人了。当然一定会有BASIC程序作为一般初始化和检测信息信号状态等,然后用BASIC的CALL指令进入汇编程序,相比长度就少多了。
可能有人不信汇编语言那么麻烦那么长度?举一个例子,我需要解码一个五线谱音符编码为19的发音音符,琴键是A4,频率是440Hz,我就需要通过计算机计算找到存放这个19的地址,这个地址也存有相应的最重要的音源芯片发音数据“011C”。计算机取出来这个数据送入该音源发音寄存器就可以发出这个琴键A4音符的,频率为440Hz的声音了。如果用BASIC语言编写程序非常简单容易,就是地址Y=编码X*6+浮动地址3E7C=19H*6+3E7CH=3F12H,该3F12地址存放的音频数据就是011CH(见后面发布的编码对照表中红色标记的数值),很容易轻松就算出来了。但是CPU运算很慢很慢的,出计算结果大概也有几百毫秒完全不够。只能用汇编语言,内部CPU直接是机器码运算,累加器加法器一个接一个地,以CPU时钟脉冲的个位数微秒级运算速度执行,汇编语句字节比较多呢是不是?但是处理结果很快很快,最后运算出计算结果肯定是微秒毫秒内。
上面举例的存放在计算机地址中的音频440Hz的芯片发音数据是011CH,以及其它发音数据是根据芯片发音频率公式计算出来,再编制出计算机编码对照表的:X=2000000时钟频率/16/所需频率=2000000/16/440Hz=284(10进制)=011CH(16进制)。
一段计算五线谱音符编码寻址公式Y=6X+3E7C的运行超快的汇编程序实例:
PC-1500汇编语言指令表:
关于PC-1500计算机五线谱编程各暂存缓冲区和五线谱音符设计定义:
4000-4001:存放五线谱编码音符首址,由BASIC程序设定。
4002-4003:存放每段首址不是每重乐曲,暂存
4005-4004:存放前者子音长时钟值,每个脉冲内的分频数,每个时钟时钟-1然后判别是否到1,后者值不减。
7690-769F:存放各重时间码暂存,ROM表到RAM的调式暂存,计算机编码有4重放音,表示可以同时产生4个音,四指共响,或者说可以播放需要同时按下4个琴键的五线谱乐曲。
7650-各重时间T计数器,(7650)+1送7650,(7651)+1送7651,……。
7660,2,4,6,存放4重音的各重单音字符暂存,4重音用A1,A2,A3,A4音符编码表示。
7661,3,5,7,存放4重音的各重单音字码暂存,DX。
76D0-76D7,存放处理后的芯片发音码,由节拍中断服务程序取出播放。
7670-7671,7672-7673,7674-7675,……,存放4重音A1,A2,A3,A4所在地址,最大可七重五线谱曲,也就是钢琴可以同时按下7个键的发音效果,现在YAMAHA YM2163音乐取4重音够了。
7680-7686,升降调暂存处理,升调=02,降调=01,不升不降调=0,4重,每重二个字节。
769E,重复码一次暂存。
FE70,ROM地址内容=00,用于清音延时码
76A0-76AD,清音时暂存每重的来自X地址,4重,每重二个字节。
76B0-76B6,每重清音标志,4重五线谱音乐也就是“四指共响”,每重二个字节。
769D,音乐调式(音调)中的升降码暂存。
E42C-调用ROM入口的[#]键是否按下,判断汇编语言程序为
SJP E42C,调用入口
CPI 15 ,比较是否按键[#]?
BZR 01 ,否,跳过下一个地址
RTI ,是,执行RTI返回BASIC
NOP ,
NOP
01H-38H-音符编码代码X,表示C1-#C6,61个五线谱音符。3EE0-3FFB,YM2163发音码编码存放地址Y,6个字节表示一个音包括该音的升降音。以上,计算机询址Y=(X*6+3E80H-4=6X+3E7C
00B1-00B7,转调值降调询址地址,地址存放转调编码值:13H,0BH,12H,0AH,11H,09H,10H。
00D1-00D7,转调值升调询址地址,地址存放转调编码值:10H,09H,11H,0AH,12H,0BH,13H。
1H-CH,音长度码(脉冲值),这些码放在编码地址:3FF0H-3FFBH中。
关于五线谱的音符音长,升降调编码设计举例如下图:
《故乡的亲人》五线谱编码
B1A1C224C623222423C12229C627C12229C627C129C226C12422C223C100
A2C6171B191B171B191B171B191B171B191B171B191B171B191B141BD61AC61B201BB61A18
A1C224C62322C724C523C12229C627CA29C126C62422CA23C623C322C100
A2C6171B191B171B191B171B191B171B191B161B1A1B171B191BC11700
A1CA28C629C12A26CA26C627C1262929272527C326C100
A2C6141B181B161B181B171B191B171B191B17201A2017201A20141B181B161B181B
A1C224C62322C724C523C622C129C627CA29C126C62422CA23C623C322C100
A2FFFFC6171B191B1619181915191719D613D618C6151814191719141B1A1B171B191BC117C100EE
我只要让计算机运行存放这个《故乡的亲人》编码的首地址,计算机就可以控制让音源芯片播放出带有左右手同时演奏的这钢琴曲。还可以增加各种带有花样鼓点节奏以及包络线波形随意改变的音色和和弦等。
音符编码的第一个数值码是五线谱开头的升降调式,D0,B0或者不填写直接跳过到A1,表示不升不降,相当于简谱的1=C调。
D1-D7,分别表示1-7个升调记号,D1表示是五线谱的1个升号#(对应简谱1=G),D2表示是2个升记号##(1=D),D3表示是3个升记号###(1=A),D4表示是4个升记号####(1=E),D5表示是5个#####(1=B),D6表示是6个升记号######(1=#F),D7表示是7个升号#######(1=#A)
B1-B7,分别表示1-7个降调,B1表示是五线谱的1个降记号b(1=F),B2是2个降记号bb(1=bB),B3是3个降记号bb(1=bE),B4是4和降记号bbbb(1=bA),B5是5个降记号bbbbb(1=bD),B6是6个bbbbbb(1=bG),B7是7个降记号#######是(1=bC)
举例如下:
《故乡的亲人》五线谱开头就是一个降b符号,表示简谱的1=F,在五线谱编码音符的第一个字符就是B1,第一节的五线谱计算机识别编码如下:
B1A1C224C623222423
分别表示:
B1,一个降b调,如果是B3就表示三个降b调了,如果没有记号或者记号为C0就表示不升不降,就是C调了,等于简谱1=C,编码可以C0也可以不需要调式编码直接从A1开始后面编码。
A1,表示第一重音,乐曲如果有同时需要按键4个键,需要A1-A4表达,后面跟再音符和音长度编码。对于这首《故乡的亲人》只有同时按下二个钢琴琴键的五线谱,所以用到了A1,A2来区分高音谱(右手键盘)和低音谱(左手键盘编码),这样通过计算机汇编语言,就能够做到同步运行同时发音的音符。
C6表示后面的音符不升不降,6表示2/4拍(关于节拍编码在后面讲到)。
24表示音符位置在24,比较容易记忆对照五线谱的规律就是,高音谱五根线之间音符编码由低到高是22,24,26,28偶数,那么五线谱压线的音符码就是21,23,25,27,29奇数,五线谱的低音谱五根线之间音符编码由低到高是12,14,16,18,压线的音符就是11,13,15,17,19了,具体对照表见图。对于后面的其它编码可以自行对照解释。
下图是五线谱和琴键计算机编码对照表(按照61个琴键):
由于五线谱的一组音程刚好是12个音,或者说是12个黑白琴键为一组,干脆我就设计使用12进制表示音符编码,就出现1A1B,2A2B等。
五线谱的节拍编码如下:
节拍编码是升降调的编码后跟个位数值,升降调编码C表示不升不降,D表示升调,B表示降调,比如C6表示以后的音符编码是不升不降,C后跟6表示2/4拍,节拍编码如下:
编码 1 2 3 4 5 6 7 8 9 A B C
节拍 1拍 2拍 3拍 4拍 1/4拍 2/4拍3/4拍 1/16拍 1/8拍 6/4拍 1/3拍 2/3拍
(1/2拍) (1拍半) (1拍内三连音) (2拍内3连音)
时钟脉冲值 48 96 144 192 12 24 36 3 6 72 16 32
寻址范围 3FF0~3FFB
转调码 降调 13 0B 12 0A 11 09 10 升调10 09 11 0A
地址 X 00B1 B2 B3 B4 B5 B6 B7 00D1 D2 D3 D4
音符和音长的编码定义自认为比较巧妙,简单容易记忆,所以一般对于即使不懂得五线谱知识的人也比较容易看着五线谱音乐符号进行音符编码和音长升降调编码,甚至不需要多看多记忆上面的《PC-1500计算机五线谱音符编码表》进行编码对照。
FF,空置码,不执行任何操作只是占据编码位置以便需要修改增加音符编码
EE,结束码,整首五线谱音符编码完成结束标识。
定义五线谱音符音长升降调试编码存储地址3E80-3FFF,软件执行暂存地址5680-57FF,地址计算方程式Y=6X+3E7C。正好对应音源芯片的发音数据输出定义,见五线谱编码对照表下图。
二个字节对应于YM2608B音源芯片的数据线发音,用12进制的音符编码,采用6个字节表达一个音符,第3-4字节是不升调不降调发音,第1-2是降b发音,第5-6字节是#升调发音。
PC-1500控制YM2608B主音源芯片与型号YM3016-D芯片进行DA转换电路图发布如下:
本音源芯片的FM/ADPCM通道,功能十分强大,可进行多音程和复杂包络线节奏编程控制创作,但是开发创作实属不易,国内外大多数网友似乎喜欢更轻松简单的玩法,就是下载某专业网站的网友开发上传的VGM格式的音乐作品,下载到VGM播放器或者我这台自制的音源芯片电路的内存进行播放欣赏。更简单的,试试你的手机的音源芯片能不能播放这个网站的VGM音乐:
http://vgmrips.net
你也可直达用PC-9801电脑和YM2608B音源芯片开发的VGM音乐网址:
https://vgmrips.net/packs/pack/kono-yo-no-hate-de-koi-wo-utau-shoujo-yu-no-nec-pc-9801
其实我玩数码不行,还没有我玩无人机牛。那些年在巴黎22区第四民间航空学校带本地高富帅发烧友玩无人机航模,飞遍欧美,甚至在白宫广场飞无人机再无第二:
如今已经告老还乡带孙子跟老师学钢琴遇到五线谱难题才拿起数码试试编码解码玩。
上部完。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
打赏
-
查看全部打赏
|