最新文章

BIOS 实现提供可由操作系统和应用程序调用的中断,以使用 IBM PC 兼容^[a]^ 计算机上固件的功能。传统上,BIOS 调用主要由 DOS 程序和其他一些软件(如引导加载程序)使用(包括历史上直接引导并在没有操作系统的情况下运行的相对简单的应用程序软件,尤其是游戏软件)。BIOS 在 x86
2023-06-22
/
0 评论
/ /
9 阅读
安装步骤 先在硬盘上建立一子目录为 djgpp, 即 mkdir c:\djgpp, 并将之后所下载的文件都放置在该目录下. 下载ZIP解压工具 unzip386.exe, 此文件为解 .zip 压缩文件的工具程序 . 下载: readme.1st djdev20
2023-06-21
/
0 评论
/ /
13 阅读
DOS时代已经过去了很久,以前有些好玩的小程序或者小游戏,用现在的电脑来运行,会提示无法运行。 有人用DOSBOX能模拟DOS大部分的程序,但是有没有一种方法将应用直接运行在windows10上面呢? 有国外的程序员就开发了专门用来运行老旧应用的虚拟机程序。 NTVDMx64 可以在 64
2023-06-21
/
0 评论
/ /
5 阅读
先建立开发环境,我的环境: 主机系统: Windows XP, 最好再装个虚拟机,在虚拟机里装个Linux系统 FreeDos版本: 我用的是2.0.20版本, [http://sourceforge.net/projects/freedos/files/Kernel/2.0.20/](
2023-02-04
/
0 评论
/ /
23 阅读
好了,代码编译OK,也可以运行。现在是不是可以分析Kernel了呢? 别急,先分析下Image, 即dostest.img, 这里说的Image可以认为是虚拟软盘。 前面我写了个程序buildimg.c。就是将boot.bin,KERNEL.SYS,COMMAND.COM组装到doste
2023-02-04
/
0 评论
/ /
20 阅读
DOS的交互命令工具是COMMAND,FreeDos用的是开源的FreeCom 编译此版本还需要TASM汇编软件:TASM 由于版本较老,在Windows XP下执行MakeFile,编译后不能正常运行(可能与我环境有关)。 折腾了一段时间,找到了正确编译的方法,如下,注:需要将t
2023-02-04
/
0 评论
/ /
32 阅读
现在已经走到了执行第一个任务的地方了,如下 ``` main() |-->init_kernel() | |-->kernel() -> p_0() -> DosExec(..."COMMAND.COM".
2023-02-04
/
0 评论
/ /
17 阅读
KERNAL.asm跳转到Main.c中的main函数,下面代码可读性就很强了,跟踪代码的执行流程应该不是难事。 我想说的是,kernel定义了很多全局变量,掌握了这些变量的用处,理解kernel基本上就没什么障碍了。 OK,下面主要以变量使用为切入点分析kernel, 几个关键的
2023-02-04
/
0 评论
/ /
24 阅读
终于开始KERNEL代码分析了 这一节关注KERNEL.ASM文件,如前一节所述,KERNEL.ASM代码主要目的就是将INIT段copy 到内存高处,跳转到高处的INIT段执行,旧的INIT段被用作内核数据区和Stack区。 ![pic](/storage/image/2023/02/
2023-02-04
/
0 评论
/ /
18 阅读
虽然CPU已经开始执行KERNEL代码了,先不急分析KERNEL。 不知道对于上节boot将KERNEL放置在0x600处还有没有其它疑问? 必须要放到0x600处吗? ``` 如果KERNEL.SYS已经给定好了,那boot必须得将KERNEL放到0x600处。 编译KERN
2023-02-04
/
0 评论
/ /
20 阅读