网站首页
手机版

VGA显示屏开关技巧

更新时间:2005-12-30 00:00:00作者:未知

摘 要 该本分析了如何通过对端口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

本文标签:

为您推荐

浅谈计算机网络环境下的网络教学

网络的发展,创造出全新的网络文化。不少学校顺应时代需要建设了校园网,并连入了互联网,开始了网络教学的尝试。教师在教学过程中如何根据网络教学不同的教学模式,发挥教师的主导作用和激发学生自主学习使学生成为认识的主体,这就要了解网上教学的教学模式、特点、问

2011-11-11 17:33

计算机网络词汇翻译浅析

本文分析了计算机网络词汇翻译中的懒惰现象,对计算机网络词汇翻译中采用的归化异化两种方法进行了论述,认为该懒惰现象具有相对的积极意义。同时,网络词汇既有一般科技术语翻译的特点,又有它独特的翻译方法。对网络词汇的翻译要根据其接受程度和读者的文化包容性,以

2011-11-11 17:32

项目教学法在计算机网络课程中的应用

提高学生计算机知识水平和实践动手能力,是中职学校计算机教育的根本任务。由于中职学生学习积极性不高,计算机教学效率低下,在中职计算机网络课程中采用项目教学法十分必要。

2011-11-11 17:31

浅谈计算机网络中服务的概念

由系统管理员管理的结构化计算机环境和只有一台或几台孤立计算机组成的计算机环境的主要区别是服务。针对计算机网络中的服务概念进行了阐述。

2011-11-11 17:30

浅谈高职院校计算机网络实践教学

目前大部分高职院校都开设有计算机网络技术专业,而实训教学则是计算机网络技术专业教学中很重要的一个组成部分。本文结合当前高职院校计算机网络技术专业的发展趋势,根据实训教学的特点,从网络实训课程的开设、网络实训的过程、网络综合实训等多方面对网络技术专业的

2011-11-11 17:29

浅谈网站服务器安全维护技巧

服务器的维护至关重要,稍有闪失即会使整个 网络 陷入瘫痪。目前,恶意的网络攻击行为包括两类:一是恶意的攻击行为,如拒绝服务攻击、网络病毒等,这些行为消耗大量的服务器资源,影响服务器的运行速度和正常 工作 ,甚至使服务器所在的网络瘫痪;另外一类是恶意的入

2011-11-11 17:29

加载中...