案,這是一個很是精密的操作,手動肯定是無法完成的,神槍手都無法用機關槍在牆上工整地寫出簡單的漢字,更別說畫複雜的圖形了。
於是工程師們便將這些操作封裝成一個個簡單的指令,將整個顯示器當作一個黑匣,只要對黑匣說“畫橫線”,那麼黑匣就會自動在顯示屏上顯示出一條橫線,至於其中究竟是如何實現的,使用者根本不消關心這些細節。
這個黑匣就是韌體。出廠的時候,廠家會給出一本厚厚的韌體技術手冊,手冊中,詳細介紹了顯示器中所能支援的指令,點和線的畫法是最基本的,有的甚至還有畫各種各樣的基本幾何圖形。固然,有的硬體工程師甚至會偷偷在裡面埋下一個彩蛋,例如某條特定的指令可以自己在顯示器上顯示出他的名字。
之前林鴻雖然曉得維修電視機,卻不知道為什麼電視機能顯示如此複雜的圖案,看完這個章節之後終於有了一個比較深入的理解。
在看這個章節之前,他知道BS的“PRNT”指令,可以在顯示器上列印字元,可是具體為什麼這個命令能列印字元,他就抓瞎了。
而現在他已經知道,這是因為顯示器硬體中有一塊被稱為“顯示儲存區”(簡稱視訊記憶體)的處所,這是個很是特殊的區域,這個區域傍邊的任何內容,城市被對映到顯示屏上面。這個原理和他小時候玩的一個影遊戲很是相似。
晚上用手電筒照射在手上,然後就會在牆壁上顯示出一個大大的影像,隨著他的手指做出各種動作,牆壁上的圖案也會隨之轉變。
視訊記憶體就相當於他的“手”,而顯示屏就是“牆壁”。
“PRNT”指令完成的動作,就是將要顯示的字元,傳送到視訊記憶體區域,這樣韌體部分就會自動完成視訊記憶體裡面的內容和顯示器上的內容的對應對映。
林鴻這臺PPL_的顯示儲存區域小得可憐,只有1KB大小,對應這顯示器上24行40列的顯示區域。
往視訊記憶體裡面放進去一個字母“”,並且指定在哪一行哪一列,那麼顯示器上就會在對應的座標上將字母顯示出來,這就是顯示器顯示字元的基本顯示原理。
林鴻看了這部分沒有再繼續看下去,而是啟動了蘋果計算機,籌算脫手編個法度試試手。
編什麼好呢?
他有點拿不定主意。
初學者一般城市這樣,對自己所學到的內容往往有些茫然,不知道如何將這些知識應用到自己的法度中。心中想編寫法度,卻又不知道該編一個什麼樣的法度。
其實林鴻目前最大的目標是想自己編寫一個遊戲,不過這其中似乎難度不小,憑他目前的能力有點好高騖遠了。
最終他決定從最簡單的開始,先在顯示器上畫一個小球。
BS有現成的畫圖函式,使用畫圓的函式很快就在顯示器上畫好了一個小圓,然後再用白色對其進行填充。這很簡單,直接挪用函式就實現了。
接下來,林鴻想讓這個小球動起來,從一處所移動到另外一個處所。
BS裡面沒有移動函式,必須得自己來實現這個效果。
怎麼能移動?
林鴻想起了以前在鄉下看片的情景。片膠帶是由一張張靜態的膠片組成的,透過移動著寫膠片,就會讓人物動作起來。孫武曾經從放映員手裡獲得過這麼一段膠片,林鴻仔細觀察過,相鄰的膠片看似一樣,實際上是不相同的,動作之間有細微的移動。
他覺得自己也可以使用這種體例,讓小球動起來。
於是,他在小球的旁邊再畫了一個小球,相當於是第二張膠片,可是如果想要實現動態效果,前面那個小球就必須擦除。
如何擦除呢?BS裡面可沒有擦除影象的指令函式。
林鴻想了半天,最終使用了一個比較笨的體例,他在前一個小球的處所,再畫了一個黑色的小球,正好將原來的覆蓋失落了,而佈景顏色也是黑色的,這樣就相當於將小球給擦失落了。
具體過程是這樣的,林鴻先畫一個白球,一秒鐘之後,在左移五個畫素的處所再畫一個白球,於此同時,用黑球將原來的白球給覆蓋,如此重複,一直到螢幕的最右端。透過控制每次停留的時間和位移的長度,他還可以排程小球移動的速度。
看著顯示器中快速移動的白色小球,林鴻臉上露出了會心的笑容,現在完成的功能雖然比較簡單,但這是一個很好的開始。
第一卷第九十二章輕易晉級
'奇qisuu書網'更新時間:2012…