首頁 游戲

紅白機大時代

第二十五章 曲線救國的典型案例

紅白機大時代 生煎包子 1589 2019-04-26 00:26:00

  對于任天堂來說,生產(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>  胖子聽了,一臉的生無可戀。

  王秋陽和冬野美紀走在另一邊,并沒有像胖子和夏雨詩一樣拌嘴。最后要上樓的時候,冬野美紀只說道:“王君,做匯編不要熬得太晚,注意身體。”

  “謝謝你,我會的!”

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南