對于任天堂來說,生產(chǎn)出連接兩臺FC主機的數(shù)據(jù)線,這再容易不過了。但連接起來不代表它們能夠運行,因此需要切實的匯編來測試。
而王秋陽提供了能夠測試兩枚八位元CPU同時運行的運算依據(jù),并轉(zhuǎn)換成VerilogHDL語言。橫井俊平現(xiàn)在正用心的將它記在腦子里。
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
測試結(jié)果,應(yīng)該是r2從0變化到5050,即1+2+3+……+100=5050。
add dst,src 將src和dst相加并且送到dst寄存器。
mov [addr],src 將src的值送到以addr位地址的內(nèi)存單元。
sub dst,src 將dst減去src并且送到dst中。
cmp dst,src 將dst減去src 然后不送到dst,只改變標志位。
jz dst 當(dāng)zf=1時,即上次的算術(shù)操作結(jié)果為0,則跳轉(zhuǎn)到dst中。
這是一段手輸仿真程序,可以完全測試到兩個CPU運行,甚至可以測試十六位元CPU。橫井俊平驚訝的發(fā)現(xiàn),這套匯編為研發(fā)十六位芯片,竟然提供了切實可行的理論依據(jù)。
這個時候,天已經(jīng)快要黑了。
最后,橫井俊平對王秋陽說道:“任天堂FC的主機,磁碟機設(shè)計都相當(dāng)成熟。王君提供了測試代碼,以現(xiàn)有技術(shù)研發(fā)出這款配件,并不需要太長時間!我的意思是,研發(fā)出來之后直接申請新機型,并且申請專利?!?p> “申請專利?”王秋陽倒是沒有想到這么多。
橫井俊平說道:“當(dāng)然,王君提供的代碼和新機型,可是寶貴的財富,我們?yōu)槿翁焯霉ぷ骺墒切枰S持生活的!只是你現(xiàn)在是作為美紀的助理,在科樂美工作,所以這項榮譽暫時只能以美紀的名義領(lǐng)受了。當(dāng)然,以我和美紀的人品,待遇方便你不用擔(dān)心!”
王秋陽笑道:“這沒問題?!?p> 這款新機型根本就是揀來的,王秋陽原本也沒有想拿來賺錢。研發(fā)雙核FC的大神更沒有想過用它賺錢,王秋陽穿越到這個年代,也完全是出于偶然。
至于這套匯編,是二十一世紀電腦達人李倩發(fā)表于《電子說》網(wǎng)站的共享資源。那時候十六位元的CPU早成為了地攤貨,作者同樣沒有營利目的。
在漢化組待久了,王秋陽的思維也和他的團隊一樣云淡風(fēng)清。漢化組習(xí)慣于無償服務(wù),看到玩家得到快樂就是他們的快樂,沒有人關(guān)心錢的事。
哪怕王秋陽現(xiàn)在真的需要用錢,橫井俊平也幫他搬進了這么大的公寓,一年之后任天堂的上村雅志還要支付一百萬円的入替金。王秋陽已經(jīng)很知足了。
至于榮譽,王秋陽更不放在心上。真正Hack一款游戲出來,玩家追捧,點贊,這就是最大的榮譽。冬野美紀原本就是天才,王秋陽不介意再給她增加一點光環(huán)。
“這對冬野小姐的事業(yè),一定會有大的幫助吧?”
不知道為什么,冬野美紀高興的時候,在王秋陽看來很受用,比自己高興還要舒心。
更何況,F(xiàn)C遲早會被中國盜版。他們現(xiàn)在把機型設(shè)計得越完美,中國人盜版起來就越方便。王秋陽這也算是曲線救國的典型案例了。
怎么看,王秋陽都不吃虧。
橫井俊平看著王秋陽的樣子,當(dāng)真不是裝出來的。不由得感慨道:“貴國的從業(yè)者,都是這樣無私的嗎?”
王秋陽笑道:“為國民服務(wù)嘛!”
因為王秋陽和橫井俊平這一交流,就到了晚上,橫井俊平干脆請這些年輕人又吃了一頓晚飯。自從遇上了王秋陽,他這些日子當(dāng)真是破費了許多。
最后,王秋陽把日志本交給了橫井俊平,與他告別。和冬野美紀,胖子,夏雨詩一同逛回了公寓花園,胖子都不太相信今天發(fā)生的事情。
“老王,真有你的!我們真的住進大公寓了,這不是在做夢吧?”
說著,胖子忍不住對夏雨詩道:“雨詩,既然咱們自己有地兒住了,就別麻煩人家了。你搬過來吧?”
夏雨詩一口拒絕:“去!我一個女孩,怎么能和兩個大男人住一起?再者說了,美紀還能教我學(xué)日語呢?!?p> 胖子聽了,一臉的生無可戀。
王秋陽和冬野美紀走在另一邊,并沒有像胖子和夏雨詩一樣拌嘴。最后要上樓的時候,冬野美紀只說道:“王君,做匯編不要熬得太晚,注意身體。”
“謝謝你,我會的!”