2017-10-05 41 views
1

我使用背景顏色和符號來表示套裝,從一副紙牌創建一張「圖片」。我已經設法在卡的左上角打印「A」,但我很難打印如何在右下角打印倒置的「A」(∀)。這可能在emu8086中做到嗎?我在裝配和8086方面有點初學者。我在這裏看到了有關打印unicode字符的類似問題的答案,但我不明白unicode字形渲染或映射到字符表索引時的含義。或者,如果這是不可能的,有沒有辦法讓打印的字符在emu8086中倒轉?因爲我也需要反轉4個西裝符號。可以在emu8086中打印unicode字符嗎?

回答

4

像emu8086這樣的CPU仿真器通常不僅僅模擬CPU(CPU沒有屏幕!),而且還有一些硬件組件。

我認爲8086模擬器模擬一些1980年代或1990年代的圖形適配器。

圖形適配器能夠顯示「固定」字符集(例如代碼頁437)。

更高級的適配器(如EGA或VGA卡)也不得不更換默認的256個用戶自定義字符集的256個字符的能力 - 這種適配器可以做,但只有256

的第三件事(僅限純文本適配器)顯示圖形(如320x200,640x200,640x350或640x480像素)。在這種情況下,您可以直接繪製箭頭,而不是使用「A」作爲「向上箭頭」。

順便說一句:代碼頁437有四個箭頭(四個方向),你可以使用,而不是「A」。

+0

只需添加上面的好信息的後果。在通常的文本模式(VGA 80x25字符)中,您不能顯示UTF8文本,因爲您最多可以定義256個不同的文本,而80x25 = 2000,因此使用超過256個不同字形的文本將無法呈現。在圖形模式下,您可以繪製任何您希望的字形(考慮到您在低分辨率屏幕上使其看起來不錯,並且可以將字體數據填充到內存中,這對於完整的UTF8也是不可能的,因爲您只有大約400-500kB的記憶)。無論哪種方式,你必須把很多自己的代碼做到這一點。 – Ped7g

+0

@OP:因爲您只想繪製卡片組,而不是任何UTF8文本,請瀏覽舊的VGA默認字體以查看哪些符號已經可用,結果可能已足夠,或者使用自定義字體數據創建更多的附加字形,然後將它們作爲文本的一部分輸出。充分進入圖形模式是另一種選擇,使用圖像卡片,但我會開始使用文本模式和VGA字符集,有通用的卡符號,只有顛倒的字母不可用。 (通過UTF8以上我的意思是「unicode」字符。讓我咯咯笑,unicode在PC啓動時不存在) – Ped7g

+0

感謝您的幫助。我只限於VGA 80x25字符,所以我想我只需要有創意並使用已有的符號。謝謝你們兩位。 – AnAn