字符显示器

回忆上次内容

  • 简体和繁体的汉字
  • 字符数量都超级大
  • 感谢王选和陈堃銶等前辈发明了激光照排技术
  • 中文排版从此使用上了gb2312编码

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci

  • 纸张之外
  • 显示器是更先进的输出设备
  • 计算机是如何在显示器上显示的呢?🤔

点阵字库

  • 计算机显示的原理是
  • 通过具体的像素点
  • 亮或者暗来决定
  • 如果墙一面显示器
  • 那上面可以显示两个数字字符
  • 每个字符使用 3 * 5 像素点阵

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_02

  • 这些像素点被编码到字形码当中
  • 需要某个字的时候就显示这个字的字形码

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_03

英文字形码

  • 英文字形相对简单
  • 最低使用 5 * 7 点阵就可以显示一个字符

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_04

  • LCD1602
  • 每行 16 个字符
  • 总共 2 行

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_05

  • 字形库并不是很大
  • 计算机显示器呢?

显示系统

  • 1981年的 IBM兼容机
  • 80 * 25 个字符
  • 每个字符 9 * 14 个像素
  • 经历了 5*7 -> 7*11

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_06

  • 配一块专门的显卡
  • IBM Monochrome Display Adapter
  • 可以输出到屏幕
  • 也可以输出到打印机

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_07

字型

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_08

  • 仔细看

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_09

  • 右侧都会空两列

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_10

  • 这些字形存储在ROM中

显示适配器

  • ROM 被放置在显卡上

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_11

  • 一般运行在文字模式
  • 按照字符进行渲染
  • 字符编码集 是 IBM的 ascii-exterded
  • 字型来自ROM

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_12

  • 字形中有一些制表符
  • 可以显示表格效果
  • 虽然如此原始
  • 但也能玩游戏

文字冒险游戏

  • 文字冒险类游戏
  • text adventures

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_13

  • 键盘输入指令
  • 走遍地图

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_14

各种字符

  • 各种字符都试图在5*7的点阵范围
  • 内显示字体
  • 字体风格为

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_15

  • 西里尔字符和日本假名
  • 如何拥有字型呢?

显示字体

  • 拉丁、西里尔甚至日文片假名都实现了这一目标
  • 但是中文不可能
  • 因为字型实在太复杂
  • 只能勉强实现日、白、田等简单文字

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_16

  • 也可以有文字游戏

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_17

  • 这颜色
  • 是支持VT-100控制序列了吗?

控制序列

  • 最开始 只支持
  • 下划线
  • 加亮
  • 翻转
  • 隐藏

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_18

  • 可以 魔改 控制亮度吗?

魔改版

  • 通过6/7两个管脚控制亮度

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_19

  • 总共四档亮度

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_ci_20

  • 3/4/5管脚一直保留
  • 后来被改成RGB

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_21

  • 可以显示图形吗?

字符模式显示图形

  • 理论分辨率 720×350
  • 但也仅仅只是理论
  • 没能对像素地址编码
  • 只能按照坑位填写字形

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_像素点_22

  • 描述图像
  • 靠的还是字符方式
  • 只能靠 asciiart
  • 这种局面下
  • 中文如何进入计算机世界呢?

总结

  • IBM 将 ASCII 扩展之后
  • 规定了 一个字节的字符集
  • 并制作了 相应的字形库

[oeasy]python0124_Code_page_437_IBM_5150_点阵式字形码_显示器效果_python_23

  • 这种显示模式和字符大小之下
  • 中文该如何进入计算机世界呢?🤔