主  页实用文档个人简历论文中心演讲稿自考成考社会学法律常识职场技巧公务员考试法律文书
 
设为首页
加入收藏
联系我们
 
 您的位置:首页 > 论文中心 > 计算机类 > 计算机网络 >
栏目导栏
   

    电子商务

    计算机应用

    计算机理论

    计算机网络

资料搜索
热门文章
·预备党员思想汇报范文
·入党自传
·表扬信
·安全生产论文
·怎样写检查
·教育心理学论文
·入党申请书 入党思想汇报
·思想道德修养论文
·应届毕业生简历模板
·社会实践调查报告2
·2006暑期会计实习日记范
·《教育心理学》试题库
·学生入党思想汇报范文
·中国农村医疗保险制度的
·论如何构建和谐大学校园
最新文章
·制作个人简历九大禁忌
·履历的包装
·怎样的简历是比较实用?
·入团申请书例文(6)
·入团申请书范文(1)
·入团申请书范文(2)
·履历表的撰写技巧
·履历说谎话
·入团申请书范文(3)
·入团申请书范文(4)
·简历制作的七个要点
·写简历别犯四个错
·入团申请书范文(5)
·入团申请书模板(初中生)
·个人学习总结
相关文章
无相关信息

VGA显示屏开关技巧

[ 作者:收录网络  加入时间:2006-11-10 19:37:23被读次  来自:Leesuki ]
 

摘 要 该本分析了如何通过对端口03c8h、03cqh进行操作来改变VGA显示颜色,进而达到屏幕开关显示的艺术效果。
屏幕开关显示的方法有很多种,如:利用分页功能,前后台处理;还可利用某些端口的位操作关闭电子束。这些方法共同的缺点是:单调,缺乏灵活性。这里向大家介绍一种方法,可弥补以上缺憾。

彩色显示器16种颜色都是红、绿、蓝3基色调和的结果,各颜色的3基色在VGA卡上分别占用一个18位的颜色寄存器,红、绿、蓝各占6位。系统开机时,各颜色3基色的值被设置成缺省值,改变3基色的比例,就可达到改变颜色显示效果的目的。
黑色的3基色均为0,如将所有颜色的基色值都置成0,则可达到关屏的效果,反之,恢复各颜色的基色缺省值,则可达到开屏的目的。由此推广,如将各颜色的基色值逐步减为零,则可使屏幕逐步变暗;如将绿、蓝两基色值先逐步减为零,再将红色减灭,则屏幕颜色先逐步转红,之后变暗……
16种颜色的3基色的缺省值为:
色号:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
R 0 0 0 0 42 42 42 42 21 21 0 0 63 63 63 63
G 0 0 42 42 0 0 21 42 21 21 63 63 21 21 63 63
B 0 42 0 42 0 42 0 42 21 63 0 63 21 63 0 63
3基色的传送方法为:
out 03c8h, ptr
out 03c9h, r
out 03c9h, g
out 03c9h, b
其中:
ptr=n ; n=0,1,2,3,4,5,7
n+14 ; n=6
n+48 ; n=8,9,10,11,12,13,14,15
n为颜色号,ptr为相应的颜色寄存器号。
r, g, b分别为红、绿、蓝3基色值。
上述过程全在COMPAQ DESKPRO 386/33M上调试通过。
以下给出一个关屏实例,由TASM编译,TLINK连接生成.COM文件。本程序稍作修改即可作为过程用于其它应用程序上。
.model small
.code
.386
org 100h
start:
mov bp,cs:red-ptr
mov bl,[bp]
cmp bl,0;基色r为零吗?
je @@1;是,则跳
dec bl;否则,减1
mov [bp],bl
@@1: mov bl,[bp+1]
cmp bl,0;基色g为零吗?
je @@2;是,则跳
dec bl;否则,减1
mov [bp+1],bl
@@2: mov bl,[bp+2]
cmp bl,0 ;基色b为零吗?
je @@3 ;是,则跳
dec b1 ;否则,减1
mov [bp+2],bl
@@3: mov al,cs:c-num ;色号→al
call change ;改变al号颜色
call delay ;延时
cmp cs:c-num,15 ;色号小于15吗?
jl @@4;是,则跳
cmp cs:loop1,0 ;否则,色号,基色值指针复位
je @@5
mov cs:c-num,1
mov cs:red-ptr,offset red
dec cs:loop1 ;
jmp start
@@4: inc cs:c-num ;色号加1
add cs:red-ptr,3 ;基色值指针加3
jmp start
@@5: int 20h
delay:
mov cx,8760
@@6: dec cx
cmp cx,0
jnz @@6
ret
change:
cmp al,6
je @@7
cmp al,7
jle @@8
add al,48
jmp @@8
@@7: add al,14
@@8: mov dx,03c8h
out dx,al
mov dx,03c9h
mov bp,cs:red-ptr
mov al,[bp]
out dx,al
mov al,[bp+1]
out dx,al
mov al,[bp+2]
out dx,al
ret
c-num db 1
loop1 db 63
red-ptr dw offset red
red db 0
green db 0
blue db 42
db 0
db 42
db 0
db 0
db 42
db 42
db 42
db 0
db 0
db 42
db 0
db 42
db 42
db 42
db 0
db 42
db 42
db 42
db 21
db 21
db 21
db 21
db 21
db 63
db 0
db 63
db 0
db 0
db 63
db 63
db 63
db 21
db 21
db 63
db 21
db 63
db 63
db 63
db 0
db 63
db 63
db 63
ends
end start

评论】【加入收藏夹】【 】【打印】【关闭