中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » [新手必看]很多人都问的开机LOGO的格式 
作者:
标题: [新手必看]很多人都问的开机LOGO的格式  上一主题 | 下一主题
playboy2925
银牌会员

想當一人之下萬人之上


积分 1275
发帖 393
注册 2003-1-10
状态 离线
『楼 主』:  [新手必看]很多人都问的开机LOGO的格式 

用过Windows95(MS-DOS 7.x)的朋友都知道,C盘下的logo.sys就是开机画面。

但logo.sys是什么格式呢?
1.    bmp格式的位图
2.    大小必须为320×400Pix
3.    256色
4.    文件名必须是logo.sys,并且必须放在C盘或A盘的根目录下。
5.    如果想做会动的,可以用16进制编辑器,当然有xrx和开机魔术师也可以。

所以,把一张图片让其符合以上要求,并保存成名为logo.sys的文件,放在C盘或A盘的根目录下就OK了。这下大家都知道了吗???

Win98 WinME 和Dos 也可以用。
但在msdos.sys裡,要設置LOGO=1這項
Dos的开机时间太短,可能会看不清楚。

大家都知道bmp格式的图片是不会动的,可为什么windows给让它动起来呢?
呵呵,ms的logo动的是调色板,大家用一下开机动画魔术师就知道了。

开机动画魔术师下載:http://www.newhua.com/down/CLogoMag.exe

Xrx Logo Utilities下載:http://www.xrx.ca/logoutils/download_sites.htm

以上由dosbbs发表,playboy2925整理。




[此贴子已经被作者于2003-7-21 15:18:41编辑过]






<- 刷新一下换个MM
叫我Jorkin或小p就行,别再叫playboy2925了,跟提犯人似的。
如果认为小弟发的logo不错的话,给朵鲜花我就知道了。:)
2003-7-21 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9049049)  编辑帖子  回复  引用回复
playboy2925
银牌会员

想當一人之下萬人之上


积分 1275
发帖 393
注册 2003-1-10
状态 离线
『第 2 楼』:  


      Windows 的引导图形界面及抖动变色图像的形成

    一、引言
    Windows 95以更新更好的界面展现在用户面前,而给人印象最深
的是表明其是"彻底"图形界面的引导及结束时的标志图形。Windows
95使系统由图形引导启动并在图形界面中关闭,系统在显示微软启动
徽标的同时进行初始化,在显示等待信息的同时完成系统退出并以一
个图形化的提示信息结束系统工作。此外,Windows 95还为旧DOS程序
的运行设计了很好的图形化界面, 从而使系统的整个工作过程完全可
以脱离过去的命令行方式。本文介绍这些界面图形的定制和使启动封
面图形抖动变色的方法。

    二、Windows 95的三幅界面图
    Windows 95用三幅图完成其初始化和关闭传递信息工作,即启动
徽标(封面)、封底1(显示 "Please wait while your computer shut
s down"、封底2(显示 "It's now safe toturn off your computer
" 。其中封底1和封底2的图形是两个256色的位图文件,名字分别为L
OGOW.SYS和LOGOS.SYS,存放在Windows的工作目录下,负责这两个图形
显示的程序分别是USER.EXE和WIN.COM,它们在打开相应的图形文件后
分别作文件格式检查。
    WIN.COM的检查段代码为:
    debug win.com
    -u 3b68 3b83
    0AF4:3B68 813F424D  CMP     WORD PTR [BX],4D42
    0AF4:3B6C F9        STC
    0AF4:3B6D 75B9      JNZ     3B28
    0AF4:3B6F BBCE40    MOV     BX,40CE
    0AF4:3B72 833F28    CMP     WORD PTR [BX],+28
    0AF4:3B75 75F5      JNZ     3B6C
    0AF4:3B77 837F0C01  CMP     WORD PTR [BX+0C],+01
    0AF4:3B7B 75EF      JNZ     3B6C
    0AF4:3B7D 837F0E08  CMP     WORD PTR [BX+0E],+08
    0AF4:3B81 75E9      JNZ     3B6C
    0AF4:3B83 60        DB      60
    寄存器BX中装的是打开成功的文件LOGOS.SYS首地址的偏移值,通
过对比位图文件的首部结构,我们可以立即得到所打开的文件LOGOS.S
YS是一个非压缩、位面数是1、256色的位图图像文件(关于位图文件
的头部标志域可见附录1 的简述)。实际上LOGOS.SYS文件确实是一个
完整的位图文件,可以用Paintbrush编辑,它显示封底2的信息。因此
我们可产生相应格式的位图文件取代,试验证明完全可行。
    USER.EXE对LOGOW.SYS也作类似处理,只是对位图标志域检查对比
的部分语句不连续,其各项检查如下:
    ren user.exe userexe
    debug userexe
    -u 5ada:abb8
    5ADA:ABB8 813F424D    CMP     WORD PTR [BX],4D42
    -u 5ada:abc4
    5ADA:ABC4 833F28      CMP     WORD PTR [BX],+28
    -u 5ada:abcb
    5ADA:ABCB 837F0C01    CMP     WORD PTR [BX+0C],+01
    -u 5ada:abd3
    5ADA:ABD3 837F0E08    CMP     WORD PTR [BX+0E],+08
    其中寄存器BX中为打开的LOGOW.SYS存储首址。由此可见,可以用
相应格式的位图来取代LOGOW.SYS用作封底1的显示。
    值得注意的是,显示时自动按设定的屏幕分辨率来做全屏幕显示,
对640×480、256色的屏幕,其位图大小最好设定为320×400像素。

    三、启动徽标封面的定做方法
    Windows 95的封面没有独立文件形式的位图文件,这与WIN.COM对
LOGOS.SYS的处理和USER.EXE对LOGOW.SYS的处理不同。笔者在剖析引
导文件IO.SYS的过程中发现,Windows 95的启动封面徽标是嵌入在引
导文件IO.SYS中的,并经DBLSPACE压缩过,图像数据区长度为64KB。在
笔者剖析的Windows 95版本中,图像数据占据IO.SYS(文件长度223748
B)217~344扇区,数据内部有多处"DS"标识,这是DBLSPACE压缩文件的
标志,由于DBLSPACE是分段校验压缩文件,因此,即使此区内有一个字
节的改动也会造成图像的大幅破坏。在上述IO.SYS中,图像显示执行
代码部分起始于以"DBLSBIN$\LOGO.SYS"标志的地方并占据110-112扇
区。由于DBLSPACE的压缩文件很复杂并分段校验,使我们不能像对Win
dows3.1的WIN.COM 那样通过改动组合文件或重编WIN.COM的部分代码
来定做启动封面,但可以在MSDOS.SYS中以Logo=0来消隐显示。关于配
置文件MSDOS.SYS的设定已有文献可查,本文附录2简述了其配置设定
选择。
    实际上,启动封面也是可以定做的。笔者在分析IO.SYS的过程中
发现,IO.SYS在显示内部嵌入封面前先试图打开一个在引导目录下名
为LOGO.SYS的文件(利用DOS功能调用INT 21H,AH=3DH子功能),若打开
失败(此文件不存在)则转显示内部嵌入封面(在WIN.COM及USER.EXE中
打开文件失败时则不显示图形,而代之以文本显示有关信息),若打开
成功则做文件格式检查,其要求的格式比WIN.COM对LOGOS.SYS的检查
条件苛刻。
    IO.SYS对LOGO.SYS检查的代码如下:
    debug io.sys
    -u de0e
    12B9E0E 813C424D  CMP     WORD PTR [SI],4D42
    12B9E12 0F        DB      0F
    12B9E13 854801    TEST    CX,[BX+SI+01]
    12B9E16 83C60E    ADD     SI,+0E
    -u de19
    12B9E19 833C28    CMP     WORD PTR [SI],+28
    -u de20
    12B9E20 837C0C01  CMP     WORD PTR [SI+0C],+01
    -u de28
    12B9E28 837C0E08  CMP     WORD PTR [SI+0E],+08
    -u de30
    12B9E30 817C044001CMP     WORD PTR [SI+04],0140
    -u de39
    12B9E39 817C089001CMP     WORD PTR [SI+08],0190
    -u de42
    12B9E42 837C1000  CMP     WORD PTR [SI+10],+00
    从以上代码我们可以立即看出,所打开的文件是一个非压缩、幅
度320×400、位面数为
1、256色的位图文件。因此,可以用Paintbrush等工具形成一个256
色非压缩、320像素×400像素的位图文件并命名为LOGO.SYS,将其?在引导目录下即可。要求的LOGO.SYS格式恰好与LOGOS.SYS及LOGOW.S
YS的格式一致。作为验证,可将LOGOS.SYS或LOGOW.SYS命名为LOGO.SY
S并放在引导目录下,实验证明完全可行。如果引导目录下有名为LOGO
.SYS的文件,但没有通过上述所有检查,则拒绝显示并且也不再显示内
部嵌入的徽标封面。

    四、撤销对LOGO.SYS的格式检查并形成抖动变色的徽标封面
    用上述方法显示的外部封面图像是静止的,而IO.SYS中的图像下
面具有一个滚动的颜色条,如碌姆椒ㄔ蚩梢允雇枷裱丈浠抖?如果去掉引导目录下的 LOGO.SYS,则IO.SYS内嵌的图像也可以做到整
幅图面"彩云流动",具有很强的动感。位图的抖动变色是由IO.SYS处
理的,其有关处理标志嵌入到上面对LOGO.SYS 的判断语句内,因此将
相关的语句作一赂亩纯伞7椒ㄎ?用PCTOOLS或其它工具(DEBUG等
)找到下面有下划线的部分,将其均改写为16进制机器代码90(nop不作
任何操作的空指令),在首尾之间共60字节,其中含有一些代码在上文
的反汇编中并未列出。
    debug io.sys
    -d de00
    12B9E00 00 93 BA 02 00 E8 D6 02 -0F 82 52 01 8B F2 81
3C  ..........R....

    12B9E10 42 4D 0F 85 48 01 83 C6 -0E 83 3C 28 0F 85 3E
01  BM..H.....

    12B9E20 83 7C 0C 01 0F 85 36 01 -83 7C 0E 08 0F 85 2E
01  .|....6..|.....

    12B9E30 81 7C 04 40 01 0F 85 25 -01 81 7C 08 90 01 0F
85  .|.@...%..|....

    12B9E40 1C 01 83 7C 10 00 0F 85 -14 01 8B 44 24 1E 2E
8E  ...|.......D$..

    12B9E50 1E 3E 0F A2 D8 02 F6 D8 -04 FF A2 D9 02 84 E4
74  .>.............

    12B9E60 06 A3 DA 02 A3 DC 02 1F -2E C6 06 F2 8E 00 16
07  ...............

    12B9E70 83 EC 26 8B FC BD 5F 03 -E8 45 02 B9 00 80 E8
E9  ..&..._..E.....

    对IO.SYS作上述改动后,可以显示任何位图,但由于显示是根据系
统显示驱动程序及屏幕调整图形大小,因此尺度上仍以原设定为好。
若想做改动应先测试,结果可能会失真,但不影响显示及运行。经过上
述改动后,在没有外部LOGO.SYS 的情况下,内嵌的封面可以抖动和变
色。若将LOGOS.SYS或LOGOW.SYS命名为LOGO.SYS并放在引导目录下即
可代替内部封面而且具有变化的色彩。但若对这两个位图进行了编辑
或是用Paintbrush形成的新文件一般不能变色,这是由于 Paintbrush
形成的文件实际用到的色彩很少,位图颜色表大部分是空的。要形成
一个新的变色徽标应该:
    1.用Paintbrush等形成一个普通256色位图;
    2.使形成的位图具有完全的256颜色索引表,这可以从LOGOW.SYS
或LOGOS.SYS 的颜色索引表中得到,即复制LOGOW.SYS或LOGOS.SYS文
件偏移36H~436H的域到新文件相同的域。注意不要改动位图前0~36
H字节。将新文件命名为LOGO.SYS并放在引导目录下即可。
    五、撤销WIN.COM及USER.EXE对LOGOS.SYS 和LOGOW.SYS的格式检

    方法与前面类似,此处不再一一详述。
    由于引导文件非常重要,在做改动时一定要在拷贝上改动,现在DO
S7用IFSHIP.SYS可以处理长达255B的文件名,而此文件名的存储是将
目录项属性字节改为0FH,即系统(04)+隐藏(02)+只读(01)+卷标(08)=
VFAT的文件名属性(0FH),并利用多个目录项区将长文件名连续存放。
为了防止数据丢失,DOS7屏蔽了绝对磁盘写INT 26H, 而PCTOOLS等工
具的EDIT功能是调用INT 26H进行写盘的的,若在硬盘上改动会造成系
统死锁而取消写盘,在软盘上则没有这个问题,因此建议对IO.SYS的修
改在系统软磁盘上进行。
    对DOS7的系统软盘形成很容易,在DOS7下初始化的磁盘,只将IO.S
YS、MSDOS.SYS、COM-MAND.COM拷进即可引导Windows 95,这是由于DO
S7有更精巧的 BOOT引导区,引导文件IO.SYS可以不连续存放、不占起
始簇、文件名项不是第一目录项。
    六、附录: MSDOS.SYS 的配置和位图文件结构
    附录1:本文涉及到的位图文件首部重要域
    偏移 长度(Bytes)
     标识信息
    00H   2        424DH 即 "BM"
    0EH   4        位图信息头大小 28H=40字节
    12H   4        位图宽度像素数 4001H=320个像素
    16H   4        位图高度像素数 9001H=400个像素
    1AH   2        位图目标设备位面数 1
    1CH   2        位图阵列每像素所需位数,可取值为


    1:单色,4:16色,8:256色,24:16G色
    1EH   4        位图压缩标志,可取值:0:未压缩,1:行程压缩8
位位
    图,2:4位压缩位图
    因此本文IO.SYS所读的位图LOGO.SYS是非压缩、位面数为1、
    256色、宽320像素、高400像素的位图。
    附录2:MSDOS.SYS 中的配置选择
    [Options]
    Logo=1/0;1:显示徽标,0:消隐徽标
    BootGUI=1/0;1: 启动后直接引导视窗,0:启动后显示DOS提示符
    Network=1/0;1:网络已安装,0:未安装
    BootWin=1/0;1: 引导视窗系统,0:引导旧的DOS系统
    BootDelay=2   ;1:Starting Windows 95 标志延迟可以改成它
值, 0:不显示
    BootKeys=1/0  ;1:激活启动控制功能键F4/F5/F8,0:屏蔽启动功
能键
    DrvSpace=1/0  ;1/0:加载/不加载磁盘压缩程序
    Dblspace=1/0  ;1/0:加载/不加载磁盘压缩程序
    DoubleBuffer=1/0
    ;1:需为不兼容设备保留常规内存,0:不保留
    [Paths]
    UninstallDir=D:\
      ;取消安装驱动器,其根目录上有2个用于恢复的文件
    WinDir=C:\Windows
     ;工作目录
    WinBootDir=C:\Windows ;启动目录
    HostWinBootDrv=C:
      ;所在磁盘
    对不同的安装设置,上面所示可能有的没有,可以对MSDOS.SYS进
行编辑。

        




<- 刷新一下换个MM
叫我Jorkin或小p就行,别再叫playboy2925了,跟提犯人似的。
如果认为小弟发的logo不错的话,给朵鲜花我就知道了。:)
2003-7-24 00:00
查看资料  发送邮件  发短消息 网志  OICQ (9049049)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: