返回

文章详情

IBM MCGA门阵列逆向工程

Hacker News2026年6月27日 05:17

IBM MCGA(多彩图形阵列)是与PS/2型号25和30一起推出的低成本视频芯片组。Epson Equity 1e使用与MCGA兼容的视频,但使用的是不同的芯片。IBM芯片组由内存控制器门阵列和视频格式化器门阵列组成。这些芯片中的一些是在IBM内部门阵列工艺上制造的,而其他一些则使用了Seiko的外部门阵列部件。 内存控制器门阵列(72X8300) 这个门阵列实现了MC6845同步生成器IC,管理视频RAM与ISA总线的接口,管理字符RAM接口,以及其他一些杂项功能,包括时钟选择和显示器ID回读。我反向工程的实例是使用Seiko SLA6430门阵列实现的。它包含4342个基本单元(BC),每个BC有4个晶体管。这些BC排列在167行和26列中。这是一个2微米的CMOS工艺,具有2个金属层。图像来自72x8300-sla6430j。反向工程的原理图和布局可以在mcga72x8300flat子目录中找到。 视频格式化器门阵列(72X8205) 格式化器门阵列解码ISA内存和IO端口地址,管理RAMDAC接口,并在图形和文本模式下生成像素数据。这个IC的两个图像中,第一个72x8205-gl14105fs似乎是在IBM内部门阵列工艺上。遗憾的是,在去封装过程中,顶层金属层被移除,因此无法提取网表。第二个72x8205-sla6330j已被逆向工程:请见mcga72x8205flat子目录。这是一个Seiko SLA6330门阵列。它包含3312个基本单元,每个BC有4个晶体管。BC排列在144行和23列中。 72x8300(内存控制器门阵列)说明 根据逆向工程的努力,发现了关于MCGA的新信息。MCGA可以与外部HSYNC和VSYNC信号进行锁相。这些信号连接到视频连接器:引脚12(ID1)为VSYNC,引脚11(ID0)为HSYNC。要启用此模式,请向寄存器0x12(字符生成器接口和同步极性,或显示感应)的第3位写入1。在PS/2型号30的技术参考手册中,这一位被列为“保留=0”。可以推测,这一锁相模式需要一个连接到25MHz或14MHz时钟输入的外部时钟PLL。寄存器0x10(模式控制)第3位“兼容性”仅影响80x25文本模式。它导致水平定时寄存器乘以2(在0x00的情况下增加1,在0x02的情况下减去1,开始水平同步)。寄存器0x10(模式控制)第2位“时钟=1”控制哪个时钟驱动视频电路。在默认状态下,大多数视频电路使用25.175MHz时钟。可以通过将这一位更改为0,将时钟频率设置为14.318MHz输入。寄存器0x10(模式控制)第6位“保留=0”尚未完全理解。寄存器0x20(保留)是一个制造测试模式寄存器。 位功能 7 14.318MHz交替时钟模式(未知) 6 VCK引脚交替模式(通常VCKIN直接连接到VCK) 5 加速模式:未知 4 加速模式:光标位置高计数器 3 加速模式:光标位置低/字符计数器 2 加速模式:垂直总计调整计数器 1 加速模式:垂直计数器 0 加速模式:水平计数器 计数器加速模式基本上向每个计数器的高四位和低四位注入时钟信号,以使计数器更快地运行。这是芯片测试中工厂测试的辅助。 72x8205(视频格式化器门阵列)说明 扩展模式寄存器0x1A有两个未记录的位: 位功能 1 未知,可能强制256色模式,即使其他分辨率。 0 未知,可能强制边框颜色覆盖整个显示。 通过访问以下位置,可以获得其他制造测试寄存器: 寄存器0x19 - 制造寄存器地址 寄存器0x18 - 制造寄存器数据 要访问特定的制造测试寄存器,将地址加载到寄存器0x19中,然后读取或写入0x18的内容。 制造测试寄存器是: 地址寄存器 0 未实现 1 只读。包含发送到RAMDAC(P[7:0]引脚)的最新数据内容。 2 只读。包含从VRAM(CP[7:0]引脚)接收的最新数据内容。 3 只读。包含格式逻辑发送的未知16色模式数据。 4 只写寄存器,以下是操作说明。 地址4的只写寄存器仅实现以下两个位: 位功能 0 制造硬复位,相当于复位引脚。写入‘1’将设备复位,写入‘0’则恢复复位状态。 1 写入‘1’以禁用大量输出,包括发送到RAMDAC的输出。 逆向工程过程信息 72x8300图像从21808x21778缩放到10904x10889。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡