“快把這個接上去看看效果。”
顧偉剛剛說完這句話,就立刻意識到自己犯了個低級錯誤。
此刻的燒錄器結構可以說已經進行了改變,而且是原理上的改變,之前的那個配套軟件已經不能用了。
“對了,這個軟件已經不能用了”顧偉傻眼道。
“是啊,我擴充了比特位數,原來的軟件已經不配套了。”林鴻自然知道這點。
“那咋辦?豈不是做了無用功了?”
就算是林鴻改造的這個燒錄器能起作用,但是沒有相應的軟件與之配套使用,那也是白搭。
“讓我想想,我有幾個朋友懂編程技術……不過他們大部分都是改改遊戲什麼的,做對編程器這種底層編程應該不太擅長……”
顧偉嘴中唸唸有詞,正在尋思着該找誰過來幫忙編寫這個程序。
而這個時候,林鴻已經做在了計算機前,開始進入basic編程狀態編寫起來。
cpm操作系統雖然是基於z80的,但是basic編程卻是和蘋果的dos基本相同。
顧偉聽到耳邊霹靂啪啦的鍵盤響聲,轉頭看到林鴻正在操作計算機,於是驚訝地問道:
“你在做什麼?”
“編程啊,給燒錄器編寫一個配套工具。”
“你連這個都懂?”
“學過一些。”
顧偉徹底無言了,他還想着找一個朋友過來幫忙,而且還沒有把握是否真的能夠在短時間內編寫好能夠配套的軟件,卻沒想到林鴻此刻已經開始編上了。
林鴻之所以有這個把握,完全是建立在已經摸透了燒錄器的基本原理的基礎之上。
這個過程看似很複雜,其實原理是比較簡單的,就是一個數據的複製過程,將一個存儲器中的數據,複製到另外一個地方,對地址裡面的數據進行挨個掃描就行了。
林鴻此刻的打字方式並不科學,完全使用“二指禪”,但是打字速度卻相當快,他甚至已經實現了盲打,完全可以不看鍵盤敲出準確的對應字符。
顧偉在旁邊看得簡直要傻掉了。
他實在無法想象,兩個手指頭也能打字這麼快,而且還盲打。難道對方已經將鍵盤各個鍵位之間的距離記得清清楚楚,而且對手指的控制達到了如此令人恐怖的地步?
太變態了
林鴻完全不知道顧偉此刻已經將其歸類於“變態人物”,他全神貫注地在編寫着手中的這個程序。
由於涉及到底層的編程,單單隻用basic的語句是不能完成所有功能的,他還在其中嵌入了一些彙編指令,直接對硬件底層進行操作。
這在十幾年後,就相當於是單片機編程,隨便一個計算機專業畢業的人估計都知道編寫幾段。但是在現在這個時候,國內在這塊簡直還處於空白狀態,就算有,也只是停留在各大研究機構和院校的實驗室中,這些技術還得完全靠從國外引進。
當然,林鴻完全不知道這一點。
由於林鴻編寫的這個工具,是專門針對他改造的燒錄器而編寫的,相比起之前的那個萬用型編程器軟件,要簡單許多,他大概只編寫了不到五百行代碼就完成了這個小工具的編寫,其中有五六十行嵌入彙編語句。
在顧偉充滿震驚和崇拜的目光之下,他繼續調試了幾次之後,最終將dump程序順利完成了。
這個程序的主要功能和之前的配套程序差不多,區別之處就在於多了一個對輔助電路的支持,在剛開始的時候,輔助位爲0,當數據複製到八兆的時候,輔助位就會自動更換爲1,這樣就開始了八兆以上地址空間的掃描。
“可以開始嘗試dump了。”
林鴻對顧偉說道。
顧偉連忙將27c320芯片插到燒錄器的中間插槽中,然後啓動了電源。
林鴻敲上他編寫的程序名稱,然後回車。
顯示器左下角的位置上立刻出現了一個慢慢增大的百分率數字——
1……
2……
5……
沒有圖形,只有一個這樣的簡單表示,對觀看者述說着數據的dump過程正在逐漸完成。…。
要想實現圖形表示林鴻也是可以實現的,只是現在似乎沒有這個必要,他們關注的只是能不能成功將數據dump出來,至於軟件的界面,這是次要的,只要自己能夠看懂進行了。
顧偉可以看到,這一次的dump速度,確實比之前要快很多,這意味着林鴻加的那根飛線的確起作用了。
48……
快要到八兆了,林鴻和顧偉兩人此刻的心情各不相同,不過都緊盯着顯示器。
49……
50……
51……
“成功了”
顧偉高興地叫了一聲。
林鴻臉上也露出了笑容,雖然他很有自信,但親眼看到自己設計的電路起作用了,心中還是非常開心的。
這個過程很快就達到了100,顧偉迫不及待地在目錄中找到了dump出來的數據包。
廢了這麼大的心思纔將這些數據導出來,他心中隱隱生出了一種期待的感覺。
他用list命令查看了一下文件的大小,大概4兆大小。
林鴻看到,微微一愣,疑惑道:“怎麼只有這麼小?”
“沒錯。”顧偉解釋道,“遊戲機卡帶裡面的容量普遍採用兆位bit來計算,而電腦都採用兆字節byte來計算,一個字節等於八個比特,所以導出來的數據在計算機裡面只有原來的八分之一大小。”
顧偉先用文本編輯器查看了一下數據包,發現是十六進制的機器碼,看不懂,於是將其和之前dump出來的數據一起打包,放到街機模擬器裡面運行。
結果還是一片黑屏,沒有任何東西,按鍵盤也沒有任何反應。
“奇怪,怎麼回事……”
費了這麼大的心思導出來的數據竟然沒用,這不禁讓他感到非常鬱悶。
“難道是導出數據的時候出了問題?”
顧偉轉頭看了看林鴻。
如果在dump數據的時候出了問題,的確也會出現這樣的現象,軟件就是這樣,講究完整性,缺少任何一點代碼都可能會導致運轉不了。
林鴻也在默默思考着到底哪個環節出了問題。
顧偉退出遊戲界面,然後重新開始分析導出來的那個數據包裡面的代碼。
他決定對那部分代碼做一個反編譯,仔細看看裡面到底是什麼結構,以此來判斷是否導出的時候出了問題。
這個過程是他經常做的,所以非常熟練。
直接調出一個小軟件,對數據進行還原,這個軟件可以將機器碼進行反彙編,最終以彙編代碼的形式展現出來,雖然可能會和源程序的代碼有區別,但是其完成的功能卻是一樣的,甚至經過編譯器優化過後的代碼甚至比源代碼的執行效率更高。
當然,顧偉的這個小軟件並不能將整個遊戲的完整代碼都還原出來,因爲遊戲在進行編譯的時候,通常會加入一些反破解的代碼,雖然不能百分之百地組織破解和逆向工程,但卻極大地增加了難度。
顧偉還沒達到能夠將整個遊戲的源代碼給逆向出來的水平。
不過,他這麼一反編譯,卻發現了一個異常情況。
“奇怪了,怎麼全部是數據?沒有任何一條指令。”
顧偉發現,整個數據包裡面的代碼,竟然沒有任何一個操作碼,全部是數據,或者說沒有意義的代碼。
他再次用文本編輯器打開了這個數據包,想從中看出點什麼規律,但是滿屏的機器碼,讓他眼睛都看花了也沒看出什麼名堂。於是,他接着將十六進制編碼轉換爲二進制的,全部由“0”和“1”組成。
他進行這一步轉換也只不過是順手而已,十六進制和二進制,實際是一個效果。
他將編輯器關掉,轉過頭來對林鴻說道:
“看來這個數據包完全是亂碼,也不知道哪裡出了問題。”
他說得很委婉,並沒有直接說是林鴻所做的工具或者說編寫的程序有問題。
林鴻眉頭緊皺地回想着剛剛顯示器上顯示地那些二進制代碼,並沒有回答顧偉的話。
顧偉回過頭來,從抽屜裡找了一塊其他遊戲的存儲芯片,然後插到燒錄器中,用林鴻的那個工具dump了一下,然後打包放到模擬器中,運行。
顯示器上出現了一個乒乓球小遊戲。
“咦?是正常的啊。”
顧偉徹底混亂了。
這說明林鴻改造之後的燒錄器和編寫的軟件都沒有問題,就算是後面那段有問題,前面的數據也不可能連一條指令都不存在。
很顯然,只有一個解釋,那就是27c320裡面的數據原本就是這樣的,根本不是什麼遊戲程序。
“靠了,難道忙活半天,就是一堆亂碼?”顧偉有些鬱悶地說道,“是哪個傢伙沒事閒得蛋疼,往27c320裝一些毫無意義的垃圾信息啊,真是暴殄天物”
27c320可是個好東西,是顧偉所見過的容量最大的存儲芯片,據他所知,這個芯片剛剛上市不超過半年時間,國內還很少見到呢。
這個時候,一直在凝神苦想的林鴻突然對他說道:
“偉哥,麻煩你把剛剛那個文件用編輯器再打開一下。”
。
。,
。