精華區beta Programming 關於我們 聯絡資訊
※ 引述《FreeF1y (ㄝ夫嗄一一ㄝ夫歪)》之銘言: : 嗯 我知道TSR沒有結束 : 但是載入TSR的程式結束了 : 我的問題是要怎麼樣在載入之後載入的程式不要結束 我知道你在問什麼 你要問的是,怎麼達到 int 27 或 int 21 AH = 31 的功能 卻不把控制權交還給 DOS,是吧? 基本上正常的程式不會這樣玩,DOS 的設計者也沒有提供這樣的功能 常駐的目的,是為了控制權交還 DOS 之後,還能用某種方式取回控制權 所以沒有交還控制權,理論上就沒有必要常駐 但實際上,某些設計精巧的 TSR 程式,的確不用 DOS 提供的常駐方法 因為用 DOS 提供的功能來常駐,它會很自作聰明的把 PSP 也保留下來 但如果你的 TSR 用不到 PSP,顯然保留 PSP 只是浪費記憶體 請注意,這樣做的「目的」不是在常駐之後保有控制權,而是為了節省記憶體 但我想這種「過程」就是你所要問的 做法其實不難,只要在程式中手動修改 MCB 然後用 int 21 AH = 4C、int 20、或 ret 將控制權交還 DOS 即可 其實這也就是 int 27 或 int 21 AH = 21 做的事 PS. MCB 是 DOS 的記憶體管理表格,全名 Memory Control Block 結構很簡單,簡單到令人想哭..... 隨便 google 一下就可以查到囉 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.97.232
FreeF1y2:哦哦 十分感謝您:) 06/10 10:06
FreeF1y2:我要寫的是不正常的程式/_\ 06/10 13:17