Minecraft(我的世界)中文论坛

 找回密码
 注册(register)
查看: 41978|回复: 179

[红石研究] 【TRP|HappyWater】32位红石电脑RSC-3230(无命令方块)

  [复制链接]
乙烯_中国 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
20735
钻石
性别
保密
注册时间
2014-12-16
查看详细资料
发表于 2016-4-11 01:50:33 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

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

x
本帖最后由 乙烯_中国 于 2016-4-19 19:38 编辑

本电脑由论坛小组The Redpixel成员HappyWater于2016年4月完成,@乙烯_中国 代为发布至mcbbs。机器编号为RSC-3230。

RSC-3230使用说明 链接: http://pan.baidu.com/s/1bF9nCq 密码: 舰C


RSC-3230最新存档链接: http://pan.baidu.com/s/1pLy4aH9 密码: 舰C


著作权用意: http://pan.baidu.com/s/1c2CxDG8
  本作品是一台32位红石电脑,CPU部分是一个 32 位通用处理器,配有512Byte RAM(其中 128Byte为显示缓冲区),8 键输入(其中四个方向键,四个功能键),32x32像素屏幕输出。

                               
登录/注册后可看大图




一、  作品总览
  本作品总体由运算器模块,存储器模块,控制器模块,显示屏模块,以及输入按钮等部分组成。下面简要介绍各个模块。
1、运算器

                               
登录/注册后可看大图

  运算器包含一个加法器,两个单向串行移位器(分别对应左移和右移),一个串行乘法器和一个串行除法器。运算器组可以完成加减乘除四则运算,与或非逻辑,移位运算等运算。

2、存储器

                               
登录/注册后可看大图


  存储器总共 128个字,每个字长 32 位,不允许非对齐访问。建筑结构为多层结构,总共分四层,每层容量 128Byte,其中最上面一层被连接在显示屏上,使用屏幕刷新指令即可将这部分存储器中的数据显示在屏幕上。存储器中,靠下的层为地址低位,靠上的为高位。


3、控制器

                               
登录/注册后可看大图


  控制器部分负责产生控制时序,指挥整机的运转。控制器也是分层结构的,面板上每一行对应内部的一层。每一层负责一种基本动作,按下每一层右边的按钮,即可执行这一层的动作。
  在正常自动运行时,控制器会依照指令,轮流执行相应的动作,完成程序预期的操作和运算。在单步运行时,玩家可以手动执行每一个动作,观察程序运行状态,以便调试程序。
  下数第四层,也就是橙色的一层为取指动作层。通常情况下,按下这一层的启动按钮即是启动整台机器。
  在面板右侧有一个拉杆,是整机的停机拉杆。当退出游戏时,应先停止机器的运行。MC在保存地图时,对各个部分的保存时间并不同步,若此时机器处于运行状态,则可能导致红石电脑出错,甚至处于失控状态。

4、显示屏

                               
登录/注册后可看大图

  显示屏为32x32 像素红灯屏幕。利用活塞BUD暂存屏幕画面,当程序正在绘制显示缓冲区中的画面时,显示屏上的画面不受影响,当绘制完成后,可使用刷新屏幕指令将画面刷新到屏幕。


6、输入按键

                               
登录/注册后可看大图

  本作品提供了8 个输入按键,如图中所示,中间是四个方向键,下面四个是功能键。
  8 个按键直接连接在寄存器 R30上,软件访问寄存器 R30即可获取当前按键状态,对R30写入则无意义。R30 最高 8bit中,每一个 bit对应一个按键,从最高位(31位)向低位依次为“上”“右”“左”“下”四个按键,紧接着下面从左向右依次四个功能按键。
  当按键没有按下时,对应 bit位为0,按下时对应比特位为 1。R30中其余 bit位没有连接外部设备,可留给玩家自己MOD 添加。按键按下后并不会对系统产生中断,按键信息的输入只能通过软件轮询实现。


二、  指令表
  本CPU的指令为32位定长,在内存中对齐存放。内存访问时忽略地址的最低 2bit。
  CPU中包含32个 32 位通用寄存器,其中R31 为指令计数器,R30 为键盘状态寄存器。当指令运算中引用 R31时,R31 永远指向当前指令的下一条指令地址。当指令执行结果修改 R31时,程序流程即跳转。
1、 数据传送指令
  单寄存器指针内存读取指令:LDRs R1,R2
  即以寄存器 R1 中的数值为指针访问内存,将内存中的数据传送寄存器 R2 中。两个寄存器编号可以相同。

  双寄存器指针内存读取指令:LDRd R1,R2,R3
  即以寄存器 R1、R2 之和为指针访问内存,将内存中的数据传送到寄存器 R3中。三个寄存器编号可以交叉。
  
  单寄存器内存写入指令:STRs R1,R2
  道理同上,以 R1 为指针,将 R2 写入内存。

  双寄存器指针内存写入指令:STRd R1,R2,R3
  道理同上,以 R1、R2之和为指针访问内存,将 R3 写入内存。

  立即数输入指令:LDRi R1, $xx
  即向寄存器 R1 中输入一个有符号整数立即数。该立即数长度 19 位,符号扩展至32位存入R1.

  上述指令编码如下:
LDRs  STRs  LDRd  STRd
0000  0100  1000  1100    =>  AAAA
[11][AAAA][00][R1][R2][R3][000000000] 左边 msb,右边 lsb。

LDRi R1, $int
[11][0010][00][R1][int]

例:  
LDRs R1, R2                 11 0000 00 00001 00000 00010 000000000
STRd R4, R5, R6           11 1100 00 00100 00101 00110 000000000
LDRi R16 , $12345       11 0010 00 10000 1001110000001100000  
LDRi R7 , $ -19            11 0010 00 00111 1111111111111101101

2、 算术运算及逻辑运算指令
  本机器中ALU 支持 ADD SUB OR NOR AND NAND XOR NXOR 等指令,指令结构相似。
  ADD R1, R2,R3  即将R1,R2中的数值相加,结果存入R3 中。三个寄存器的编号可以交叉。 SUB R1, R2, R3 即将R2-R1结果存入R3。三个寄存器编号可以交叉。
  OR、NOR、AND……等其余指令类似不再赘述。
  本机中移位器支持逻辑左移(BSL)、循环左移(BCL)、逻辑右移(BSR)、循环右移(BCR)以及算术右移(BAR)等指令。
  BSL R1,R2,R3 即将R1 中的数值逻辑左移R2 位,将结果存入R3。三个寄存器编号可以交叉。R2中的数值忽略高位,仅关注最低 5bit。
  BCL、BSR、BCR、BAR等指令同理,不再赘述。

  本机中乘法器和除法器分别完成乘法和除法指令。需注意的是,乘法器与除法器指令涉及4个寄存器,两个源操作数,两个目的操作数。
  MUL R1,R2,R3,R4 即将R1 R2 中的数值相乘,结果存入R3 R4中。其中R3存放结果低位,R4 存放结果高位。四个寄存器的编号可以交叉,若R3 R4编号相同,则最终寄存器中只存放结果低位。

上述指令编码如下:
[00][AAAA][F][C][R1][R2][R3][R4][A][000]  (注意:A 字段有前后两组,共5bit)

ADD   SUB    OR     NOR   AND   NAND  XOR  NXOR
00000 01000 00001 00101 11101 11001 00110 00010 => AAAAA
(本组指令可影响标志位)

BSL     BSR    BCL    BCR    BAR     MUL    DIV
00011 10011 01011 11011 10111  10000  10100     => AAAAA
(对本组指令使用标志影响位结果将不可预知)

  指令中,F和C 各占1个bit。利用这两个指示位可实现if goto指令。
  F为标志影响位,若为1,则本指令执行结果将影响标志位,若运算结果为0,则标志位为1,反之标志位为0。
  C为条件执行位,若本为1,则本指令在标志位为1 时才执行,否则将跳过不执行。若本位为 0,则本条指令无条件执行。
3、 屏幕控制指令
  清白屏:WS  011000[其余填零]
  清黑屏:BS  010100[其余填零]
  刷新屏:RS  010010[其余填零]

  WS和 BS用于清屏,区别是WS让全屏变亮,BS 让全屏变暗。由于显示屏利用活塞BUD 暂存画面,有时活塞可能“失去粘性”,此时应使用清白屏指令使其恢复。
  刷新屏指令将RAM 中显示缓冲区里的数据显示在屏幕上。
  显示缓冲区为128 字节,每4 字节对应屏幕上一行,高位对应靠左的像素,低位对应靠右的像素。靠高地址端的对应屏幕底下的像素,靠高地址端的对应屏幕上方的像素。

三、  使用方法简述
  本机未设置 ROM,整个存储器部分都为 RAM,既可存放指令,亦可存放数据。可手动修改每一个存储位状态以完成编程。若不希望指令被意外修改,可将存储区相应的存储位上的活塞去除,以固定存储位状态。
  在机器处于停止状态时,按下下图中左数第二个灯上的按钮即可将R31 清零,以完成程序复位。软件的第一条指令应按放在内存中的第一个单元内。可以在第一个内存单元处安置一条跳转指令,即可跳跃至任意程序入口。软件亦可在各个寄存器中存放初始化数据,而不必各个都从RAM 中加载,以节省RAM 空间和运行加载时间。

                               
登录/注册后可看大图


  如上图所示,控制器面板中橙色的一层为指令读取动作层。按下右边的按钮,机器将从R31所指向内存单元读入指令并存入指令暂存器中,然后立即跳跃到对应的动作层去执行该指令。

                               
登录/注册后可看大图

  如图所示,图中的拉杆为停机拉杆。任意时刻,若拉杆充能,则当前指令执行完毕后,整机便停止运行,机器停止时,左边的指示灯会闪烁一次。
  在拉杆充能的情况下,按下取指令动作的按钮,则机器将完成取指和执行两个动作后停止运行。此方法可适用于程序单步执行。
若按下其它各层动作指令按钮,则将按各层方式解析当前指令并执行。每条指令只可以对应一个动作层,若启动的动作层与当前指令不匹配,则结果将不可预知。

  屏幕面前地板上的按键连接至寄存器 R30上,软件需轮询 R30以完成按键输入,无按键中断功能。









来自群组: The Redpixel

评分

参与人数 112人气 +123 金粒 +1142 贡献 +4 收起 理由
happy2356 + 1 + 15 神乎其技,不服不行!大触,我给你跪下了!.
mk_Dream + 11 MCBBS有你更精彩~
wsdsl + 2 大触请收下我的膝盖
12014920 + 15 MCBBS有你更精彩~
Legofan9403 + 2 + 20 啊啊啊啊啊伟大!!!
z020114 + 1 + 15 很棒的作品!不打赏怎么能行呢?.
baonitou960125 + 1 + 10 感觉计算机原理白学了.....
邓程翔 + 1 + 1 很棒的作品!
ksc + 1 + 15 数电与计组:从入门到入土
1@4 + 1 + 10 MCBBS有你更精彩~
zide888@qq.com + 1 + 13 MCBBS有你更精彩~
汐宫丶殇 + 1 + 15 MCBBS有你更精彩~
jiang2974217647 + 1 很棒的作品!
sheng1694 + 2 楼主威武!楼主牛X!
天狼星black + 1 + 1 不给个人气不是人!!
无言问苍天 + 2 膝盖是你的了
喵丶呜 + 1 + 5 跪着看的。。。
幻梦止爱 + 2 果然厉害
lxc0123 + 1 + 20 我真的玩过mc吗?
shengyaohui + 1 不懂觉得厉害

查看全部评分

PTmissionary 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
6558
钻石
性别
保密
注册时间
2012-10-22
查看详细资料
发表于 2016-4-11 02:05:24 | 显示全部楼层
密碼為什麽是艦C。
回复

使用道具 举报

Creepers’king 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1511
钻石
性别
保密
注册时间
2012-12-29
查看详细资料
发表于 2016-4-11 02:07:47 | 显示全部楼层
dio,真的不是很懂你们命令OTZ

评分

参与人数 4人气 +4 收起 理由
pineapple_ + 1 跟命令有啥关系
langyo_v3 + 1 跟命令有啥关系
PotatoMaster101 + 1 跟命令有啥关系
chyx + 1 跟命令有啥关系

查看全部评分

回复

使用道具 举报

Zero_Exact 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
11260
钻石
性别
保密
注册时间
2014-1-31
查看详细资料
发表于 2016-4-11 02:16:36 | 显示全部楼层
密码为什么是舰C+1
回复

使用道具 举报

dkakcjr 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
7
钻石
性别
保密
注册时间
2016-4-5
查看详细资料
发表于 2016-4-11 03:22:31 来自手机 | 显示全部楼层
前排围观w                 
回复

使用道具 举报

inuyshagame 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
694
钻石
性别
保密
注册时间
2015-4-11
查看详细资料
发表于 2016-4-11 06:34:20 来自手机 | 显示全部楼层
红石渣表示懵逼
回复

使用道具 举报

1669557184 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
547
钻石
性别
保密
注册时间
2015-3-17
查看详细资料
发表于 2016-4-11 07:27:15 | 显示全部楼层
红石渣路过...........
回复

使用道具 举报

离不开好 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1791
钻石
性别
保密
注册时间
2012-8-10
查看详细资料
发表于 2016-4-11 11:23:39 | 显示全部楼层
给红石渣一个活路吧,思密达
回复

使用道具 举报

840196733mw 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2196
钻石
性别
保密
注册时间
2014-2-18
查看详细资料
发表于 2016-4-11 12:09:41 | 显示全部楼层
mc里面玩mc之日可带 手动滑稽

这个性能快有70年代小电脑的水平了吧
回复

使用道具 举报

Yy星人 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
14639
钻石
性别
保密
注册时间
2015-3-14
查看详细资料
发表于 2016-4-11 12:10:25 | 显示全部楼层
臥槽.....你們TRP果然都是死宅啊..

评分

参与人数 1人气 +1 收起 理由
WM2030 + 1 异体繁体字例行加分

查看全部评分

回复

使用道具 举报

qq573686835 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2987
钻石
性别
保密
注册时间
2016-1-14
查看详细资料
发表于 2016-4-11 12:36:54 | 显示全部楼层
红石(java)大触啊 ...
回复

使用道具 举报

inuyshagame 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
694
钻石
性别
保密
注册时间
2015-4-11
查看详细资料
发表于 2016-4-11 17:10:56 | 显示全部楼层

下载的文件要怎么用啊{:10_527:}
回复

使用道具 举报

DreamsDeductive 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
9615
钻石
性别
保密
注册时间
2015-3-18
查看详细资料
发表于 2016-4-11 19:16:53 | 显示全部楼层
乙烯触收下我的膝盖,这种烧脑的东西我是无缘了
回复

使用道具 举报

子规空啼 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
97
钻石
性别
保密
注册时间
2016-1-10
查看详细资料
发表于 2016-4-11 19:53:42 | 显示全部楼层
强!!支持一下
回复

使用道具 举报

nswdxyxpg 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
2230
钻石
性别
保密
注册时间
2015-1-29
查看详细资料
发表于 2016-4-11 20:08:34 | 显示全部楼层
身为初级红石党的我,不明觉厉。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | | 手机版

GMT+8, 2019-6-17 09:46 , Processed in 0.047627 second(s), Total 21, Slave 20 queries , Gzip On, MemCached On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标。
本站与Mojang以及微软公司没有从属关系。

© 2010-2019 我的世界中文论坛 版权所有。本站原创图文内容版权属于原创作者,未经许可不得转载。

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