中学教育网Rss 2.0中学教育网手机WAP浏览支持
首页 新闻 论文 课件 教学设计 试题 工具 辅导资料 电脑教程 新课标 高三复习 物理奥赛 人教版
论坛 悦读 课程改革 教学随笔 教学心得 初中试题 高中试题 文言文 说课 应用文萃 07高考 浙教版
图片 商城 初中教案 高中教案 中考作文 高考作文 诗歌散文  状元题库 化学竞赛 06高考 06中考试题
您现在的位置: 中学教育网 >> 教学论文 >> 其他论文 >> 信息技术 >> 文章正文 用户登录 新用户注册
文本方式下图形提示界面制作论文 教育资料下载
作者:中学教育    文章来源:中学教育    点击数:    更新时间:2007-8-18
发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】【字体: 】【论坛

 点击登录中学教育论坛



关键字:文本方式下图形提示界面制作论文 教育资料下载

  一、汉字字模数据的提取

  文本方式下的汉字显示是通过用汉字字模改写西文字符字模的方法实现的,所以应首先获得汉字字模数据。

  各种汉字操作系统可以提供不同大小和字体的汉字字模,本文作为一个实例,从金山DOS的cclibj.dot的字库中获得所要显示的楷体汉字字模的16×16点阵数据。

  字库的读取用C语言实现,具体方法如下。

  (1)把需要显示的汉字作为同字符同样看待的字符串赋值于一个内存变量f,汉字字符串的值在WPS的N命令下输入,然后转入C语言进行编程。

  (2)在C语言的环境中汉字字符串的值是国标码,字模的读取,就是利用所要显示的汉字国标码计算此汉字在字库中对应的字模的位置,然后读取字库中的32字节的字模数据至内存缓冲区buf中。

  C语言中汉字串的国标码与cclibj.dot字库中一条字符记录具有如下的对应关系:

  C1,C2是整型数辅助变量,ihi、ilo表示国标码的高两位和低两位整型数

  。l为长整型数,用于字模查找定位。

  C1=(i-a0H)+94

  C2=i-a0H+c1-659

  l=C2*32L

  利用函数:

  lseek(fp, l, seek-set);

  read (fp, buf,32);

  找到字模开始位置,并读入32字节字模数据到内存缓冲区buf中。

  (3)使用输出函数的16进制输出格式,把缓冲区buf的内容输出并记录下来。本例中获得的“天骄”字模数据如下:

  天:087ffc 1 010 1014fffe 10 280 280440 4 40820 101020 e o4

  骄:8cfdfo 8 2048 204bfe 48 5048 887e8c4 8 81c 88e48844 88 148898 2 8

  实现程序见附录程序1。

  二、图形字模的设计

  由于图示没有统一的标准,所以显示图形的图模数据,用手工设计完成。本例中的图形是公司的徽标,使用11个8×16的西文字符点阵表示图形。11个西文字符点阵表示的图模数据见程序中的row1-graph, row2-graph, row3-graph, 分别表示图1中的第一行,第二行和第三行的图模数据。

  @@T5S08500.GIF;图1@@

  三、字模和图模数据的写入

  1.可修改的字模表

  EGA配有的显示存储器分成4个独立区段,称为4个页面。在文本方式下页面0和页面1分放屏幕字符的ASCII码和属性字节,而页面2则用来存放字模表。EGA的字模表本来是存储在ROM中的,但当每次初始化文本方式时,EGA的BIOS会把字模表拷贝到显示存储器的页面2中,由于字模表已移到RAM中,用户程序就能够对字模进行存取和修改了。

  2.字模表的结构

  EGA的字符宽度固定为8个像素,字符高度允许从1到32范围取值,字模表是根据不间的字符集分块存储的,每个字符集内则按字符的ASCII码值从小到大的顺序排列。每个字符固定占有32B,分别对应字模从上到下的32个扫描行。但并非所有的扫描行全部使用,视不同的显示模式使用其中一部分扫描行。

  因此,16×16点阵的汉字字模占用2个西文字符,而图形实现则视情况占用若干个西文字符。

  3.字模的装入

  字模和图模数据的写入可通过BIOS INT 10H子功能11h来实现。

  输入参数:AH=11H

  AL=0

  ES: BP=字模数据地址

  CX=装入字符个数(1~256)

  DX=起始字符(0~255)

  BL=字符集序号(0~3)

  BH=字符高度(1~32)

  其中,字模数据地址是程序中的字模数据区的首地址。而起始字符是字模数据写入显示缓冲区开始的位置。

  四、汉字及图形的彩色显示

  1.西文字符的显示原理

  输出文本时,页面0存入要输出字符的ASCII码值,页面1存入字符属性。由页面0的ASCII码值索引到页面2的字符发生器,再结合页面1的属性便可在屏幕上显示相应的字符,如图2所示

  @@T5S08501.GIF;图2@@

  2.汉字及图形的显示

  利用西文字符的显示原理,使得字模未修改前应显示的西文字符显示成修改后的汉字字模或图模,通过使用被修改过的数个西文字符字模,显示汉字或图形。

  3.显示输出

  BIOS INT10的子功能13H完成字符的输出。

  输入参数:AH=13H

  AL=1

  BL=字符属性

  CX=显示字符个数

  DH=显示字符的行号

  DL=显示字符的列号

  ES: BP=显示字符串的首地址

  其中,显示字符串的开始字符由用户在页面0的ASCII码空间内可以任意取值,字符属性可以

  设定显示的颜色。实现程序见程序2。

  程序1

  #include "stdio.h"

  #include "fcntl.h"

  unsigned char *f="天骄";

  int fp;

  main()

  {

  unsigned int i,c1,c2,t=0;

  int i1,i2,i3;

  long L;

  unsigned char buf[32];

  fp=open("g:\wps\cclibj.dot",O-RDWRO-BINARY);

  if(fp==-1){cputs("error on open cclib !");

  exit(0);}

  while ((i=*f++)!=0)

  {

  if(i>0xa0)

  if(t==0)

  {

  c1=(i-0xa0)*94;

  t++;}

  else

  {

  c2=i-0xa0+c1-659;

  t=0;

  l=c2*32L;

  lseek(fp,l,SEEK-SET);

  read(fp,buf,32);

  printf("hex code:\n");

  for (i=0;i<32;i++)

  if(i==16){printf("%\n",buf[i]);}

  else printf("%x",buf[i]);

  printf("\n");

  getch();

  };

  }

  }

  程序2

  cseg segment para public'code'

  assume cs:cseg

  org 100h

  main proc near

  start: mov ax, cseg

  mov es,ax

  mov ax,0003h

  int 10h

  mov ax,1100h

  mov bh,16

  mov bl,0

  mov cx,3

  mov dx,130

  lea bp,row1-grahh

  int 10h

  mov cx,4

  mov dx,133

  lea bp,row2-graph

  int 10h

  mov cx,5

  mov dx,137

  lea bp,row3-graph

  int 10h

  mov cx,2

  mov dx,142

  lea bp,tian

  int 10h

  mvo cx,2

  mov dx,144

  lea bp,jiao

  int 10h

  mov ax,1103h

  mov bl,00000000b

  int 10h

  mov ax,1301h

  mov bh,0

  mov bl,01h

  mov dl,2

  mov dh,1

  mov cx,1

  lop: lea bp,hd

  int 10h

  inc dl

  cmp dl,24

  jnz lop

  mov dl,2

  inc dh

  cmp dh,7

  jnz lop

  mov bl,17h

  mov cx,3

  mov dh,2

  mov dl,12

  lea bp,str1

  int 10h

  mov cx,4

  mov dh,3

  mov dl,12

  lea bp,str2

  int 10h

  mov cx,5

  mov dh,4

  mov dl,10

  lea bp,str3

  int 10h

  mov cx,2

  mov dh,3

  mov dl,4

  lea bp,ws1

  int 10h

  mov cx,2

  mov dh,3

  mov dl,20

  lea bp,ws2

  int 10h

  mov ax,0003h

  int 10h

  main endp

  row1-graph db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,

  00h,

  00h,01h

  db 00h,00h,00h,04h,04h,0ch,00h,00h,00h,38h,3eh,71h,00h,00h,00h,0f0h

  db 00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,0c0h,70h,38h,1ch,0eh

  row2-graph db 01h,03h,00h,00h,00h,07h,0fh,0fh,00h,00h,00h,3fh,7fh,

  7fh,

  00h,00h

  db 0f0h,0f0h,00h,00h,00h,0f0h,0f0h,0e0h,00h,00h,00h,0e0h,0e0h,0c0h,00h,00

  h

  db 0eh,0fh,0fh,07h,07h,03h,03h,03h,07h,07h,0fh,0fh,1fh,1fh,3fh,3fh

  db 00h,00h,00h,00h,80h,80h,80h,80h,0c0h,0c0h,0c0h,0c0h,0c0h,80h,80h,80h

  row3-graph db 00h,00h,00h,00h,00h,00h,00h,01h,01h,03h,00h,00

  h,00h,

  00h,00h,00h

  db 00h,7fh,7fh,0ffh,00h,00h,00h,0ffh,0ffh,0ffh,00h,00h,00h,00h,00h,00h

  db 00h,0ffh,0ffh,0ffh,00h,00h,00h,0ffh,0ffh,0ffh,00h,00h,00h,00h,00h,00h

  db 00h,0c3h,0ffh,09fh,0fh,0fh,07h,83h,81h,01h,00h,00h,00h,00h,00h,00h

  db 0ffh,0ffh,0ffh,0feh,0feh,0fch,0f8h,0f0h,0c0h,00h,00h,00h,00h,00h,00h

  tian db 00h,7fh,01h,01h,01h,01h,0ffh,01h,02h,02h,04h,04h,08

  h,10

  h,20h,0c0h

  db 00h,0fch,00h,00h,00h,04h,0feh,00h,80h,80h,40h,40h,20h,10h,0eh,04h

  jiao db 08h,0fdh,08h,48h,4bh,48h,48h,49h,7eh,04h,1ch,0e4h,4

  4h,1

  4h,09h,02h

  db 0ch,0f0h,20h,20h,0feh,50h,88h,06h,8ch,88h,88h,88h,88h,88h,08h,08h

  str1 db 130,131,132

  str2 db 133,134,135,136

  str3 db 137,138,139,140,141

  ws1 db 142,143

  ws2 db 144,145

  hddb 219

  cseg ends

  end start

  作者:刘文广 董春平
  • 上一篇文章:
  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】【字体: 】【论坛
       中学教育网(ZhxEdu.com)依法保护知识产权,倡导网络文化,部分内容来自网络,如果我们的文章涉及您的有关权益,请与我们联系,请注明网址,我们会即时处理或删除,感谢您的合作!
       转载声明:如果您要转载中学教育网的文章,请载明出处“中学教育网”。   
     相关文章  最新文章
    幼儿的认知方式与教育
    家教方式与儿童社会化
    家庭暴力两种方式:棍棒式的强制和温柔的强
    皮皮鲁:推动孩子回归文本阅读
    家庭教育方式与儿童发展关系
    从教育方式习惯养成谈中小学衔接
    石家庄市大学生心理健康状况与父亲教养方式
    6~8岁儿童同伴互动及与父亲教养方式的关系
     港校揽走广东252名尖子 希望再提高内地招生
     广东高招阳光工程 本科录取一分不照顾 图
     民间学者亮出首份完整框架的高考制度改革方
     第八届全国大运会在广东开幕:我国史上参赛人
     新生评价手册变身“个人博客”
     一周声音
     学生安全教育“短板”亟待“补长”
     受高考指挥棒影响 2年内缓解文理冷热不均
    特别推荐
    本站资源大部分来自互联网,若侵犯您的版权,请与站长(QQ:8757999)联系,我们会在第一时间里删除。鲁ICP备05008917号