对于任天堂来说,生产出连接两台FC主机的数据线,这再容易不过了。但连接起来不代表它们能够运行,因此需要切实的汇编来测试。
而王秋阳提供了能够测试两枚八位元CPU同时运行的运算依据,并转换成VerilogHDL语言。横井俊平现在正用心的将它记在脑子里。
module memory
(
input [15:0] addr,
inout [15:0] data,
input rw
);
reg [15:0] data_ram[0:16'b1111_1111_1111_1111];
integer i;
initial begin
for (i = 0; i <= 16'b1111_1111_1111_1111; i = i 1)
data_ram[i]=$random();
data_ram[0]=16'b1000000100000000;//mov [ADDR],r0;r0 = 0
data_ram[1]= 16'b1100000000000000;//ADDR
data_ram[2]= 16'b1000000010001000;//mov r1,100
data_ram[3]= 100;//100
//data_ram[2]= 16'b1110011001000000;
data_ram[4]= 16'b0010000100010001;//lop:add r2,r1
data_ram[5]= 16'b1110000011001000;//sub r1,1
data_ram[6]= 16'b0000000000000001;//1
data_ram[7]= 16'b1110000000001000;//cmp r1,0
data_ram[8]= 16'b0000000000000000;//0
data_ram[9]= 16'b1110011010000000;//jz ext
data_ram[10]= 16'b0000000000000011;// 3 offset(ext)
data_ram[11]= 16'b1000000010100000;//mov r4,4
data_ram[12]= 16'b0000000000000100;
data_ram[13]= 16'b0110011001100000;//jmp r4(lop)
data_ram[14]= 16'b1000000100000010;//ext:mov [ADDR],r2
data_ram[15]= 16'b1100000000000000;//ADDR
data_ram[16]= 16'b1110011001000000;//jmp $
data_ram[17]= 16'b1111111111111110;//-2 offset($)
/*data_ram[0]= 16'b1000000010000000;//mov r0,imm
data_ram[1]= 16'b0011111111111111;//imm
data_ram[2]= 16'b0000000001111000;//mov r7,r0
data_ram[3]= 16'b1000000010011000;//mov r3,0
data_ram[4]= 16'b0000000000000000;
data_ram[5]= 16'b1000000010100000;//mov r4,code of jmp r5
data_ram[6]= 16'b0110011001101000;//jmp r5
data_ram[7]= 16'b0000000101011100;//mov [r3],r4
data_ram[8]= 16'b1000000011110000;//mov r6,[0]
data_ram[9]= 16'b0000000000000000;//[0]
data_ram[10]= 16'b1000000100000110;//mov [255],r6
data_ram[11]= 16'b0000000011111111;
data_ram[12]= 16'b0110011001011000;//jmp r3
*/
end
always @(addr or rw or data)
if (rw)
data_ram[addr]= data;
assign data = rw ? 16'hzzzz : data_ram[addr];
endmodule
测试结果,应该是r2从0变化到5050,即1 2 3 …… 100=5050。
add dst,src 将src和dst相加并且送到dst寄存器。
mov [addr],src 将src的值送到以addr位地址的内存单元。
sub dst,src 将dst减去src并且送到dst中。
cmp dst,src 将dst减去src 然后不送到dst,只改变标志位。
jz dst 当zf=1时,即上次的算术操作结果为0,则跳转到dst中。
这是一段手输仿真程序,可以完全测试到两个CPU运行,甚至可以测试十六位元CPU。横井俊平惊讶的发现,这套汇编为研发十六位芯片,竟然提供了切实可行的理论依据。
这个时候,天已经快要黑了。
最后,横井俊平对王秋阳说道:“任天堂FC的主机,磁碟机设计都相当成熟。王君提供了测试代码,以现有技术研发出这款配件,并不需要太长时间!我的意思是,研发出来之后直接申请新机型,并且申请专利。”
“申请专利?”王秋阳倒是没有想到这么多。
横井俊平说道:“当然,王君提供的代码和新机型,可是宝贵的财富,我们为任天堂工作可是需要维持生活的!只是你现在是作为美纪的助理,在科乐美工作,所以这项荣誉暂时只能以美纪的名义领受了。当然,以我和美纪的人品,待遇方便你不用担心!”
王秋阳笑道:“这没问题。”
这款新机型根本就是拣来的,王秋阳原本也没有想拿来赚钱。研发双核FC的大神更没有想过用它赚钱,王秋阳穿越到这个年代,也完全是出于偶然。
至于这套汇编,是二十一世纪电脑达人李倩发表于《电子说》网站的共享资源。那时候十六位元的CPU早成为了地摊货,作者同样没有营利目的。
在汉化组待久了,王秋阳的思维也和他的团队一样云淡风清。汉化组习惯于无偿服务,看到玩家得到快乐就是他们的快乐,没有人关心钱的事。
哪怕王秋阳现在真的需要用钱,横井俊平也帮他搬进了这么大的公寓,一年之后任天堂的上村雅志还要支付一百万円的入替金。王秋阳已经很知足了。
至于荣誉,王秋阳更不放在心上。真正Hack一款游戏出来,玩家追捧,点赞,这就是最大的荣誉。冬野美纪原本就是天才,王秋阳不介意再给她增加一点光环。
“这对冬野小姐的事业,一定会有大的帮助吧?”
不知道为什么,冬野美纪高兴的时候,在王秋阳看来很受用,比自己高兴还要舒心。
更何况,FC迟早会被中国盗版。他们现在把机型设计得越完美,中国人盗版起来就越方便。王秋阳这也算是曲线救国的典型案例了。
怎么看,王秋阳都不吃亏。
横井俊平看着王秋阳的样子,当真不是装出来的。不由得感慨道:“贵国的从业者,都是这样无私的吗?”
王秋阳笑道:“为国民服务嘛!”
因为王秋阳和横井俊平这一交流,就到了晚上,横井俊平干脆请这些年轻人又吃了一顿晚饭。自从遇上了王秋阳,他这些日子当真是破费了许多。
最后,王秋阳把日志本交给了横井俊平,与他告别。和冬野美纪,胖子,夏雨诗一同逛回了公寓花园,胖子都不太相信今天发生的事情。
“老王,真有你的!我们真的住进大公寓了,这不是在做梦吧?”
说着,胖子忍不住对夏雨诗道:“雨诗,既然咱们自己有地儿住了,就别麻烦人家了。你搬过来吧?”
夏雨诗一口拒绝:“去!我一个女孩,怎么能和两个大男人住一起?再者说了,美纪还能教我学日语呢。”
胖子听了,一脸的生无可恋。
王秋阳和冬野美纪走在另一边,并没有像胖子和夏雨诗一样拌嘴。最后要上楼的时候,冬野美纪只说道:“王君,做汇编不要熬得太晚,注意身体。”
“谢谢你,我会的!”
而王秋阳提供了能够测试两枚八位元CPU同时运行的运算依据,并转换成VerilogHDL语言。横井俊平现在正用心的将它记在脑子里。
module memory
(
input [15:0] addr,
inout [15:0] data,
input rw
);
reg [15:0] data_ram[0:16'b1111_1111_1111_1111];
integer i;
initial begin
for (i = 0; i <= 16'b1111_1111_1111_1111; i = i 1)
data_ram[i]=$random();
data_ram[0]=16'b1000000100000000;//mov [ADDR],r0;r0 = 0
data_ram[1]= 16'b1100000000000000;//ADDR
data_ram[2]= 16'b1000000010001000;//mov r1,100
data_ram[3]= 100;//100
//data_ram[2]= 16'b1110011001000000;
data_ram[4]= 16'b0010000100010001;//lop:add r2,r1
data_ram[5]= 16'b1110000011001000;//sub r1,1
data_ram[6]= 16'b0000000000000001;//1
data_ram[7]= 16'b1110000000001000;//cmp r1,0
data_ram[8]= 16'b0000000000000000;//0
data_ram[9]= 16'b1110011010000000;//jz ext
data_ram[10]= 16'b0000000000000011;// 3 offset(ext)
data_ram[11]= 16'b1000000010100000;//mov r4,4
data_ram[12]= 16'b0000000000000100;
data_ram[13]= 16'b0110011001100000;//jmp r4(lop)
data_ram[14]= 16'b1000000100000010;//ext:mov [ADDR],r2
data_ram[15]= 16'b1100000000000000;//ADDR
data_ram[16]= 16'b1110011001000000;//jmp $
data_ram[17]= 16'b1111111111111110;//-2 offset($)
/*data_ram[0]= 16'b1000000010000000;//mov r0,imm
data_ram[1]= 16'b0011111111111111;//imm
data_ram[2]= 16'b0000000001111000;//mov r7,r0
data_ram[3]= 16'b1000000010011000;//mov r3,0
data_ram[4]= 16'b0000000000000000;
data_ram[5]= 16'b1000000010100000;//mov r4,code of jmp r5
data_ram[6]= 16'b0110011001101000;//jmp r5
data_ram[7]= 16'b0000000101011100;//mov [r3],r4
data_ram[8]= 16'b1000000011110000;//mov r6,[0]
data_ram[9]= 16'b0000000000000000;//[0]
data_ram[10]= 16'b1000000100000110;//mov [255],r6
data_ram[11]= 16'b0000000011111111;
data_ram[12]= 16'b0110011001011000;//jmp r3
*/
end
always @(addr or rw or data)
if (rw)
data_ram[addr]= data;
assign data = rw ? 16'hzzzz : data_ram[addr];
endmodule
测试结果,应该是r2从0变化到5050,即1 2 3 …… 100=5050。
add dst,src 将src和dst相加并且送到dst寄存器。
mov [addr],src 将src的值送到以addr位地址的内存单元。
sub dst,src 将dst减去src并且送到dst中。
cmp dst,src 将dst减去src 然后不送到dst,只改变标志位。
jz dst 当zf=1时,即上次的算术操作结果为0,则跳转到dst中。
这是一段手输仿真程序,可以完全测试到两个CPU运行,甚至可以测试十六位元CPU。横井俊平惊讶的发现,这套汇编为研发十六位芯片,竟然提供了切实可行的理论依据。
这个时候,天已经快要黑了。
最后,横井俊平对王秋阳说道:“任天堂FC的主机,磁碟机设计都相当成熟。王君提供了测试代码,以现有技术研发出这款配件,并不需要太长时间!我的意思是,研发出来之后直接申请新机型,并且申请专利。”
“申请专利?”王秋阳倒是没有想到这么多。
横井俊平说道:“当然,王君提供的代码和新机型,可是宝贵的财富,我们为任天堂工作可是需要维持生活的!只是你现在是作为美纪的助理,在科乐美工作,所以这项荣誉暂时只能以美纪的名义领受了。当然,以我和美纪的人品,待遇方便你不用担心!”
王秋阳笑道:“这没问题。”
这款新机型根本就是拣来的,王秋阳原本也没有想拿来赚钱。研发双核FC的大神更没有想过用它赚钱,王秋阳穿越到这个年代,也完全是出于偶然。
至于这套汇编,是二十一世纪电脑达人李倩发表于《电子说》网站的共享资源。那时候十六位元的CPU早成为了地摊货,作者同样没有营利目的。
在汉化组待久了,王秋阳的思维也和他的团队一样云淡风清。汉化组习惯于无偿服务,看到玩家得到快乐就是他们的快乐,没有人关心钱的事。
哪怕王秋阳现在真的需要用钱,横井俊平也帮他搬进了这么大的公寓,一年之后任天堂的上村雅志还要支付一百万円的入替金。王秋阳已经很知足了。
至于荣誉,王秋阳更不放在心上。真正Hack一款游戏出来,玩家追捧,点赞,这就是最大的荣誉。冬野美纪原本就是天才,王秋阳不介意再给她增加一点光环。
“这对冬野小姐的事业,一定会有大的帮助吧?”
不知道为什么,冬野美纪高兴的时候,在王秋阳看来很受用,比自己高兴还要舒心。
更何况,FC迟早会被中国盗版。他们现在把机型设计得越完美,中国人盗版起来就越方便。王秋阳这也算是曲线救国的典型案例了。
怎么看,王秋阳都不吃亏。
横井俊平看着王秋阳的样子,当真不是装出来的。不由得感慨道:“贵国的从业者,都是这样无私的吗?”
王秋阳笑道:“为国民服务嘛!”
因为王秋阳和横井俊平这一交流,就到了晚上,横井俊平干脆请这些年轻人又吃了一顿晚饭。自从遇上了王秋阳,他这些日子当真是破费了许多。
最后,王秋阳把日志本交给了横井俊平,与他告别。和冬野美纪,胖子,夏雨诗一同逛回了公寓花园,胖子都不太相信今天发生的事情。
“老王,真有你的!我们真的住进大公寓了,这不是在做梦吧?”
说着,胖子忍不住对夏雨诗道:“雨诗,既然咱们自己有地儿住了,就别麻烦人家了。你搬过来吧?”
夏雨诗一口拒绝:“去!我一个女孩,怎么能和两个大男人住一起?再者说了,美纪还能教我学日语呢。”
胖子听了,一脸的生无可恋。
王秋阳和冬野美纪走在另一边,并没有像胖子和夏雨诗一样拌嘴。最后要上楼的时候,冬野美纪只说道:“王君,做汇编不要熬得太晚,注意身体。”
“谢谢你,我会的!”