當前位置: UU看書 > 都市 > 遊戲開拓者最新章節列表 > 第三章 軟體分析
選擇背景顏色: 選擇字體: 選擇字體大小:

第三章 軟體分析

研究一臺電腦最方便的辦法當然是從隨機軟體和資料開始,張樂行首先把目標放到了隨機軟體之上。順手從軟盤盒內把隨機軟體一張張抽出來仔細看,這時候的軟盤還是5英寸的大盤,根據軟盤上的標籤來看,這堆軟盤中包括兩張AppleDOS盤、一張VisiCalc電子表格軟體、一張看起來像是字處理軟件的盤,讓他沒想到的是居然還有幾張遊戲盤,真不知道這電腦怎麼買回來的。

按照習慣張樂行先試了一下遊戲盤,畢竟現在還只是80年,遊戲畫面那是非常的簡陋,看慣了後世絢麗遊戲畫面的他,乍一看Apple-II上簡陋綠色柵格構成的遊戲畫面還真不習慣,好在這裡面居然還有一個貌似有些熟悉的遊戲《HEADON》,雖然畫面是非常簡單,但玩起來卻有一種吃豆子的感覺。

簡單研究了一下遊戲盤後,張樂行又把AppleDOS拿出來研究。這系統相當古老,靠著隨機手冊,張樂行才搞明白這時候列目錄的命令不是DIR,而是CATALOG,而且AppleDOS作業系統還比較簡陋,能實現的功能不多,就連目錄也不支援,檔案管理功能也基本等於沒有,實質上只能算是個磁盤操作的介面而已。張樂行記得似乎還要過幾年才會出現一個功能比較強的ProDOS,那時候蘋果II上才算有了真正的磁碟作業系統。

簡陋的AppleDOS,陌生的命令列,讓張樂行終於受不了了,他想起自己曾設計過的那個作業系統來,依靠前人的經驗教訓和眾多網友的熱心支援,這套歷經多次最佳化的作業系統可以說是蘋果II上功能和效能最強大的。雖然經過這麼久,但長達三十六次的最佳化讓張樂行對作業系統的原始碼記憶猶新,既然眼下有時間,手頭的AppleDOS又不好用,張樂行決定馬上動手寫出來。

完整的原始碼比較長,經過最終最佳化後的核心程式碼有大約1500行,張樂行認真回想了一下,熟悉的程式碼很快從腦海中浮現出來,他呼了一口氣,開始按照記憶錄入程式碼。兩個多小時過去,程式碼的輸入完成了,張樂行認真核對一遍並修改了幾處打錯的地方,感覺應該沒什麼問題了於是馬上存檔,然後將軟盤的引導區作了修改,以便軟盤啟動後能順利引導新系統。

重新啟動電腦,張樂行趁著系統啟動的空隙,揉了揉有些酸脹的胳膊,動了動有些僵硬的手腕。身體活動開了,新系統也讀完盤開始啟動,很快螢幕上出現了一個“LOGIN:”的提示符,張樂行輸入預設的使用者名稱和密碼後,一個嶄新的命令列出現了。

這個新的作業系統是根據後世常見的一些磁碟作業系統來設計的,可以支援磁碟、支援層次型目錄,提供檔案管理功能,有記憶體排程功能,還能實現多工(例如在執行文字處理軟件時需要某些資料,可以透過駐留的管理程序調出需要的其他軟件,查出來後又可以切換回文字處理軟件)。不過現在系統功能還不完整,暫時只完成了核心部分的程式碼,還需要增加一些輔助程式,而且試運行過程中發現了一些小Bug,看起來也許是模擬器和實機有差距的緣故,系統還需要做進一步的除錯和最佳化。不過這款作業系統名字張樂行倒是已經想好了,打算用好事者們起的那個名稱Kylin。

凝聚著眾人心血的Kylin系統穿越了厚重的時空,出現在這個蘋果II還是如日中天的時代,張樂行的人生也開始有了細微的變化。

接下來的日子裡每天的行程都安排的很緊密,張樂行天天泡在電腦室,上午的時間用來最佳化除錯作業系統和為作業系統增加一些輔助程式,下午的時間則用來指點趙叔使用蘋果II和翻譯《BASIC使用指南》。一個星期過去,張樂行的作業系統Kylin基本完工,趙叔也學會了蘋果II的初步操作,還能利用蘋果II上的ROM-BASIC編點簡單程式,當然寫程式碼的時候常常還需要看看張樂行寫的手抄簡化版BASIC使用手冊。

“樂行,不錯嘛,這才個把星期就弄出一本手冊來,趙叔會用這新機器可全靠你呀。”趙叔邊翻BASIC手冊邊感謝我。

張樂行對趙叔擺擺手,謙虛道:“沒什麼的,我其實也是看了隨機資料才寫出來的,那上面其實挺詳細的,我只是撿重要的地方翻譯了一下而已。”。

“我覺得你挺不錯的,起碼比廠裡那兩個大學生有本事多了,他們就啥也弄不明白。”趙叔笑著說道:“我看你挺喜歡計算機的,有沒有興趣過來幫趙叔的忙。”

“趙叔,這能行嗎?我才多大,廠裡能讓我進?”張樂行心裡很高興,嘴上卻故意表現出一些懷疑。

“沒事,你本來就是廠裡的家屬,廠長是我以前的戰友,趙叔幫你去說說,準沒問題,包在趙叔身上了。”趙叔拍拍胸口,算是把這事擔下來了。

“趙叔,那這事可真麻煩您啦。”張樂行感謝道。

……

過了兩天,張樂行感覺用彙編寫的程式可移植性不太好,而BASIC寫的程序運行速度又太慢,不由的開始懷念起自己比較擅長的C語言來,可惜蘋果II上沒有,好在張樂行對標準C很熟悉,他決定自己動手來解決這個問題,於是張樂行有了新的開發任務——為作業系統增加一個C語言編譯器。因為C語言擁有良好的可移植性,這樣張樂行編寫的很多程式碼換到新電腦上可以很容易就可以利用起來,修改量一般不會太大,畢竟明年IBM-PC就會釋出,雖然國內好像要到85年左右才開始引進,要知道這可是未來幾十年的平臺,可不是蘋果機能比的。

快到中午時,沉浸在C語言世界的張樂行還在努力地堆著程式碼,趙叔突然滿臉興奮的衝進電腦室來,拉著張樂行的手就往外走,邊走還邊樂呵呵的說道:“樂行,走,趙叔帶你吃午飯去。”。

到了廠裡的食堂,心情相當不錯的趙叔比平常多打兩個菜,油汪汪的紅燒肉燉豆角幹,看著就讓人眼饞,張樂行的食慾也比往常好了很多。打完飯菜,趙叔拉著張樂行來到一個靠牆的餐桌,放好飯盆和菜盆,趙叔開始邊吃邊聊。

“這兩天我去找廠領導了,把你寫的這個BASIC手冊拿出來一擺,當時就把人鎮住了。再加上我把你這段時間的一些情況往好了說,蘑菇了兩天,總算把這事辦下來了。樂行,以後你就算是廠裡的職工了,工資每月八塊五,另外考慮到你的情況,廠裡再每月補助四塊。今後你就跟趙叔一個地方上班了,下午我帶你去辦手續去。”趙叔解釋道。

【目前用下來,聽書聲音最全最好用的App,集成4大語音合成引擎,超100種音色,更是支持離線朗讀的換源神器,huanyuanapp.org 換源App】

聽到這,張樂行心中十分高興,自己最緊迫的問題終於得到解決,當然他沒忘記感謝趙叔這幾天的努力。

吃完午飯,趙叔帶著張樂行到廠裡辦手續,一下午轉下來,人事科、檔案室、財務室……,差不多把所有辦公室都轉完,手續才基本辦完,只等廠裡上報人事局批准即可正式上班。以後張樂行終於可以光明正大的到電腦室去用電腦,再也不用擔心別人說閒話了。

第二天,張樂行正式開始C語言編譯器的設計。C語言編譯器主要由六個部分組成,詞法分析、語法分析、語義分析、中間代碼生成、代碼優化、目標代碼生成,這裡面最影響代碼運行效率的是最後兩步,如果能針對某種CPU最佳化設計,將能大幅提高最終程式碼的執行效果。幾天下來,C編譯器正式完工。為了檢查編譯器,張樂行寫了一些測試程序,都正常編譯透過,看來編譯器已經可以正常工作。為了進一步測試編譯器的效能,張樂行以記憶中的《挖金子》為藍本,寫了一個C語言版本的,經過編譯,發現執行相當正常,和用組合語言編寫的作對比,感覺執行速度差別不大,看來這款編譯器效能不錯,唯一有點缺憾的是蘋果II處理器效能很一般,結果程式的編譯速度比較慢,不過好在不影響最終的執行效果。

沉迷於紙上BASIC世界的趙叔偶然一抬頭,發現張樂行在玩的《挖金子》(其實張樂行只是在對比不同語言編寫出來程式的執行效率),立刻跑過來觀看。

“樂行,這是什麼玩意,看起來好像很有趣的。”趙叔好奇的問道。

“嗯,這是遊戲,我才寫的。”正在思考問題的張樂行隨口回答道。

“來,給趙叔拷一份。”一張軟盤伸到張樂行的面前。

張樂行回過神來,苦笑了一下,利用自己編寫的磁碟對考工具把遊戲盤給趙叔複製了一份,趙叔興高采烈的拿著軟盤收到自己的軟盤盒裡,估計是打算下午的時候去玩。

看到C編譯器效果還不錯,張樂行開始對作業系統做進一步最佳化。首先對記憶體管理做了一些調整,減少了作業系統記憶體的佔用;其次是增加了簡單的磁碟壓縮功能,變相將軟盤容量從160K提升到220K,這樣一張軟盤可以塞下更多的東西。

作業系統和C編譯器完工後,趁著星期日好好休息了一天,張樂行又開始新的目標對準了隨機軟體中的VisiCalc電子表格軟體。