近来又有人问起如何制作A盘的PDOS,这个东东我以前没用过,这两天正好空闲,分析了一下,见下:
1. PDOS最主要的5个文件是pdos.def、pbios.exe(或pbios.sys)、font16.exe、hzvio.exe、chs16.fon,缺一不可;
2. C盘中的运行过程:启动pbios.exe,即中文内核,它要搜索C盘根目录下的pdos.def,如果没有就不运行;运行font16.exe,根据pdos.def中的配置,找到font16.exe;运行hzvio.exe汉字输入输出系统。
3. 很显然,如果将系统移植到A盘,就要使pbios.exe到A盘查找pdos.def文件,对其反汇编发现:
mov ah,19h
int 21h ; DOS Services ah=function 19h
; get default drive al (0=a:)
mov al,43h ; 'C'
mov byte ptr cs:data_293,al ; (3644:006F='A:\PDOS.DEF')
mov ax,3D00h
mov dx,offset data_293 ; (3644:006F='A:\PDOS.DEF')
int 21h ; DOS Services ah=function 3Dh
; open file, al=mode,name@ds:dx
jnc loc_437 ; Jump if carry=0
在pbios.exe中首先定义了'A:\PDOS.DEF'这个路径,而后用int 21中断的19号功能,得到默认盘符,却没有使用,接下来把'A:\PDOS.DEF'改成了了'C:\PDOS.DEF',问题就在这儿,在任何时候,程序总是到C:\查找PDOS.DEF文件,要改就方便了,把上面的43h改成41h就成A盘啦。当然也可以更进一步,改为任意盘都行。
4. 对pdos.def的修改,很多地方都有介绍,这里简单说一下,用二进制编辑器打开文件,发现有C:\WINDOWS\COMMAND这个路径,改成A:\PDOS等,随你便,后面用00填满就行。
对于已制作好的软盘,请到以下链接下载,这里不再上传,节约论坛空间:
http://dos.e-stone.cn/dosbbs/dispbbs.asp?boardID=11&ID=14916&page=1