Re: [問題]好奇 D O S 時代 遊戲是怎麼寫的????
※ 引述《VElysian.bbs@ptt.cc (嘉羽 拙火瑜珈)》之銘言:
沒有時間一一細回,
不過繪圖方面的東西,
大部分是藉由呼叫 VGA BIOS 完成的,
簡單說它是一組直接燒在主機板 BIOS 裡的函式庫,
主要是用來控制 screen,
DOS 的話利用 INT 10 的軟體中斷就可以叫得到,
呼叫的函式取決於你產生 INT 10 中斷時 AX(AH/AL) 暫存器裡面的數值,
不過後期大家學到的其實都是 VESA BIOS 的東西,
因為比原先的 VGA BIOS 來得更強大;
另外就是顯示卡的 video ram 會 map 到你 memory address 的某一段去,
對這一段 address 做 write 就等於 write 到 video ram 上;
你說的什麼 Turbo C 的 graphic library,
其底層的實作方式也跟這些脫不了關係。
至於 mouse 的 I/O,
是在你載入 mouse driver 以後,
會多出 INT 33 系列的中斷服務,
當你先把 AX 設成 3 再叫 INT 33 的話,
mouse 的目前狀態就會用 BX CX DX 傳回來給你;
最簡單的做法就是寫個 infinite loop 去 polling,
這也用不著什麼 thread,
只要設計好 loop 內的 flow 就沒問題了,
總之 DOS 時代寫程式都很暴力;
如果你想問 DOS 時代有沒有 multi-thread,
那麼答案是有,
不過很顯然一定是 user-level thread,
以 library 的形式實作出來的,
而非 OS 本身就有支援,
以當時的電腦等級來說,
用起來並不會有太大的好處。
中文書的話,
我們實驗室裡的書櫃裡剛好看到一本以前我常用的,
不過實驗室這本是 97 年最新修訂版,
比我家裡的還新,
我可以把這本書的書籍資料打給你:
IBM PC 80X86 組合語言徹底研究
林承戰 林俊杰著
波全資訊股份有限公司
ISBN 957-723-204-3
其實每所學校的資工系實驗室逛一逛都會發現不少學生還有這本書,
所以就算絕版的話我想應該也不會太難弄到手才是,
圖書館找找說不定也會有。
--
Name: Tseng, Ling-hua E-mail Address: uranus@it.muds.net
School: National Tsing Hua University Department: Computer Science
Interesting: C++, Compiler, PL/PD, OS, VM, Large-scale software design
Researching: Software pipelining for VLIW architectures
Homepage: https://it.muds.net/~uranus
--
╔═══╗ ┼────────────────────────╮
║狂狷 ║ │* Origin:[ 狂 狷 年 少 ] whshs.cs.nccu.edu.tw ╰─╮
║ 年少║ ┼╮ < IP:140.119.164.252 > ╰─╮
╚╦═╦╝ ╰ * From:61-230-216-180.dynamic.hinet.net
─╨─╨─ KGBBS ─ ◎ 遨翔"BBS"的狂狷不馴;屬於年少的輕狂色彩 ◎
推
11/19 02:39, , 1F
11/19 02:39, 1F
→
11/19 02:40, , 2F
11/19 02:40, 2F
推
11/19 02:43, , 3F
11/19 02:43, 3F
→
11/19 02:44, , 4F
11/19 02:44, 4F
→
11/19 02:44, , 5F
11/19 02:44, 5F
推
11/19 23:28, , 6F
11/19 23:28, 6F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 2 之 14 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章