Amiga 屏幕入门

Lobsters Hottest 新闻

摘要

本文介绍了Amiga计算机上屏幕的概念,解释了它们如何使用原始的OCS、ECS和AGA芯片组处理不同的分辨率、颜色深度和位平面。

<p><a href="https://lobste.rs/s/dsungs/amiga_screens_primer">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/09/25 13:13

# Amiga屏幕入门 | datagubbe.se 来源:https://www.datagubbe.se/amscr/ ## Amiga屏幕入门 *2026年秋* 互联网上似乎有一条不成文的规矩:只要提及与Amiga相关的内容,至少会有一位Amiga爱好者(包括我自己)跳出来,试图解释“屏幕”这一概念。我们会告诉你,Amiga屏幕可以有不同的分辨率,还可以拖拽,其他Amiga用户会纷纷表示赞同,而非Amiga用户可能至今仍不明白屏幕究竟有何特别之处。直到现在,这篇文字应运而生,旨在将毫无防备的普通用户转化为忠实的Amiga屏幕爱好者。 为便于理解,本文将重点介绍初代Amiga的图形硬件,即OCS(原始芯片组)。随后的ECS(增强芯片组)和AGA(高级图形架构)升级移除了部分硬件限制,但基本原理和用户体验仍保持一致。 [](https://www.datagubbe.se/amscr/pix/typicalscreen.png) *典型的Amiga屏幕,展示了aWorkbench (https://www.datagubbe.se/ltmag/) 桌面与已打开的shell窗口。* ### 屏幕就是屏幕 Amiga上“屏幕”一词的具体含义源自操作系统,它用这个术语特指一种显示区域——因为说到底,它就是个屏幕。Amiga游戏和演示程序的开发者对此概念并不执着;例如《Amiga硬件参考手册》将显示区域称为“活动区”,演示程序开发者可能会讨论光栅分割 (https://codingwithballs.wordpress.com/2023/04/20/candiru-and-other-x-rotators/),但为简便起见,我们仍使用“屏幕”这一说法。 因此,Amiga上的“屏幕”本质上是一个用于绘制图形的区域。Amiga屏幕可以拥有不同的分辨率和色深,程序可以打开任意数量的不同分辨率屏幕来显示图形。 如今,我们大多使用单一固定分辨率的显示区域,这是现代操作系统和液晶显示器共同作用的结果。然而在CRT显示器盛行的时代,打开不同分辨率的显示区域是家常便饭。例如,在支持VGA的MS-DOS机器上运行的图像查看器,可能会使用720x400像素的16色文本模式分辨率浏览文件,然后打开一个320x200像素的256色新显示区域来查看图像。 这些分辨率和色深的变化基本上存在于所有家用电脑中,它们是为不同使用场景下平衡速度和内存消耗而存在的硬件折衷方案。当时内存价格昂贵(历史总是惊人相似!),而Amiga在其默认硬件配置下,依赖于CPU、视频和音频硬件共享相对少量的RAM,却提供了对这些屏幕分辨率和色深的高级控制能力。 ### 索引与平面 Amiga通常使用*索引调色板*,这意味着每个屏幕有限数量的颜色寄存器中包含用户定义的颜色值。这些值选自12位色域(在AGA上为24位)。例如,颜色索引0可能设置为$000(黑色),索引1设置为$F00(红色)。 为了操作单个像素的颜色值,使用了*平面*图形技术,这意味着通过增加更多*位平面*(简称bpl)来提升屏幕的色深。每个位平面在内存中单独存储,要改变像素的颜色索引,需要在每个平面中切换一个比特位。 因此,一个位平面的屏幕提供两种颜色索引,两个位平面提供四种,以此类推,初代Amiga硬件上最多支持五个位平面和32种颜色(AGA上则为8个位平面和256种颜色)。 [](https://www.datagubbe.se/amscr/pix/bitplc.png) *位平面如何组合以表示逐像素颜色索引的示意图。(摘自《Amiga硬件参考手册》)* 在OCS和ECS上,每个屏幕的最大位平面数由其显示分辨率决定,这些设计在PAL或NTSC电视上合理适用。OCS Amiga提供低分辨率和高分辨率模式。在PAL制式下,低分辨率(低分)为320x256像素(隔行扫描时为320x512),最多32种颜色(5个位平面)。高分辨率(高分)为640x256像素(隔行扫描时为640x512),最多16种颜色(4个位平面)。使用*过扫描*可以稍微增加这些基础分辨率,高分辨率下最高可达724x283,但无法保证在所有显示器或电视上完全可见。 在低分辨率下,可以使用第六个位平面实现HAM(保持与修改),允许自由使用OCS Amiga全部4096种颜色(有部分限制),或使用EHB(额外半亮),它将32色调色板复制为32个额外的原始颜色副本,但亮度减半。 [](https://www.datagubbe.se/amscr/pix/ehbmollybig.png) *Deluxe Paint正在编辑一张EHB图像。注意屏幕右下角的颜色选择器:最右两列是前两列颜色的“半亮”副本。半亮度并不总是完美的,因为它受限于12位色域。* 与大多数同时代的竞争对手不同,Amiga具有真正的、抢占式的多任务处理能力,而平面图形为此提供了便捷的资源节约特性。文本编辑器在2色屏幕上即可完美工作,节省的内存可用于在32色屏幕上同时运行图形程序。内存节约还体现在:只需存储单个像素所需的精确比特数,同时保持内存寻址的合理性,而非为每个像素分配一个字节而浪费未使用的比特位。此外,屏幕可以任意调整尺寸和定位,例如在物理显示区域底部显示一个320x50像素的低分辨率屏幕。每个屏幕不使用超出必要的像素数也有助于节省内存。 ### 硬件妙用 Amiga最初设计为游戏机,这意味着它拥有大量用于处理图形的硬件特性。重新定位屏幕是瞬时的,滚动整个屏幕速度极快,甚至操作系统都允许用户配置一个大于可见区域的桌面屏幕,并使用鼠标在其中滚动。 在重绘周期的任意时刻改变显示分辨率和色深也很容易。这意味着多个屏幕可以同时组合使用,甚至重叠,同时为终端用户提供统一的显示体验。考虑以下示例: [](https://www.datagubbe.se/amscr/pix/overlay_lohi.png) *同时显示两个不同分辨率和色深的屏幕。* 以上示例使用BASIC方言AMOS创建,它对屏幕概念有自己的一套处理方法,并提供了与Amiga图形硬件交互的简单抽象。任何类型的图形操作仍可单独在每个屏幕上执行,例如绘图、滚动、重新定位屏幕以及更改调色板。 这种快速的分辨率和色深切换由Amiga的铜芯(co-processor的简称)控制。铜芯与视频渲染硬件同步工作,也用于操作颜色值和硬件精灵。除此之外,它还能创造Amiga独有的特色功能——“铜芯渐变”或“铜芯条”,即在每条水平线改变一次给定颜色寄存器的值,产生引人注目的渐变效果和比32个可用调色板索引所能实现的更多屏幕颜色。 [](https://www.datagubbe.se/amscr/pix/wbcop.png) *这是一个普通的4色Workbench屏幕。背景渐变是通过铜芯创建的,在视频渲染期间有规律地改变颜色索引0的值。* 组合使用不同分辨率和色深的屏幕具有多种用途。即使每个屏幕的最大颜色数是32种,这些颜色在不同屏幕上可以不同。因此,一个游戏可以通过为主游戏区域使用32种颜色,为用户界面和/或状态显示使用另外32种不同的颜色,来同时显示64种或更多颜色。这还可以与铜芯渐变结合,进一步提升颜色数量。 ### 终端用户体验 除了游戏,这种快速的图形处理在运行多任务生产力软件时也非常方便,这(终于!)让我们谈到了*屏幕拖拽*。 由于家用电脑和早期PC提供的显示分辨率较低,大多数应用程序以全屏模式运行,占据整个显示区域以显示尽可能多的信息(和用户界面)。在Amiga上进行多任务处理时,用户可以使用屏幕右上角的按钮或全局键盘快捷键快速切换整个屏幕。然而,屏幕也可以通过点击并(嗯)用鼠标向下拖拽屏幕标题栏来拖拽。这将揭示其后正在运行的另一个程序的屏幕,如下图所示。 [](https://www.datagubbe.se/amscr/pix/screenstack.png) *屏幕拖拽在用户显示器上可能呈现的示意图。* 我必须承认,尽管我们许多Amiga爱好者对此津津乐道,但屏幕拖拽的实际用处有限,至少在我的个人工作流中如此。然而,在1985年,当多任务处理和彩色图形很少结合出现,除非在非常昂贵的Unix工作站上,这种效果必定相当震撼。一个建议的用例是,你可以稍微向下拖拽你的聊天程序屏幕,以检查后台网页浏览器屏幕上文件下载的进度,但在Amiga上全屏切换如此轻松,以至于拖拽通常感觉有点麻烦。 为了展示这种屏幕处理有多快捷,我准备了一段简短视频剪辑。它是在连接到Amiga 600的液晶显示器上拍摄的,这是一台7 MHz(即0.007 GHz)的机器,其硬件本质上与1985年初代Amiga 1000相同。视频中它正在播放音乐,同时运行一个文本编辑器和图形程序Deluxe Paint,当然也执行了屏幕切换和拖拽: [](https://www.datagubbe.se/amscr/IMG_E0605.mp4) *点击上方观看视频。* ### 双活动区 Amiga还能实现一种称为*双活动区*的功能,这意味着对于两个重叠的屏幕,最前面屏幕的颜色索引0将变为透明,并显示下方屏幕的内容。其他颜色索引保持不变,所有常规操作仍可单独在每个屏幕上执行:滚动、绘制图形、调色板更改等。 [](https://www.datagubbe.se/amscr/pix/commo-dualplayfield.gif) *《Amiga硬件参考手册》中关于双活动区的示意图。* 下面的截图展示了双活动区与精灵的结合。深红色背景和粉色星星绘制在背景活动区上,这是一个4色屏幕。绿色和紫色条是精灵,其绘制优先级被设置为位于两个活动区之间。其他所有内容都绘制在前景活动区上,这是一个8色屏幕。Amiga硬件确保每个图层即使在7 MHz的机器上也能流畅动画。 [](https://www.datagubbe.se/amscr/pix/dualplayfield.png) *好奇的读者可以通过Demozoo (https://demozoo.org/productions/328498/) 下载或观看这个小型Amiga演示。* ### 全屏体验 在现代机器上,我通常更喜欢将程序作为独立的、可堆叠的窗口运行。部分原因是如今屏幕空间足够,另一部分原因是许多现代程序就是为此类行为设计的。我确实喜欢将某些应用程序最大化以覆盖整个屏幕,例如Visual Studio Code。借助窗口管理器中的虚拟桌面,我可以迅速切换到另一个工作区域,就像在Amiga上一样即时。 然而,某些程序在高分辨率宽屏显示器上最大化时会显得很奇怪。我喜欢在80列的终端窗口中阅读手册页,并且发现传统文件管理器在5:4之类的方形纵横比下感觉更合理。在同一屏幕上运行多个窗口化应用程序的好处是它们都可以同时可见,便于快速切换上下文。缺点是某些鼠标工作流仅真正适用于全屏应用程序。 以Directory Opus (https://www.datagubbe.se/dopus/) 为例。它是我所知最好的传统文件管理器之一,当在我的Amiga上全屏运行时,我可以执行一些巧妙的操作,比如将鼠标指针猛推到屏幕边缘并单击,这将带我进入当前在对应列表器中显示的任何目录的父目录。 [](https://www.datagubbe.se/amscr/pix/dopus-workflow.png) *点击Directory Opus文件列表器的边缘。* 同样的功能当然也可以在更侧重窗口的环境中实现,但那就毫无意义了:没有屏幕边缘为鼠标指针创建边界,那细小的可点击区域将令人恼火地难以瞄准。 一个更简单的乐趣——但在现代宽屏显示器上很难真正复制——是在80x24字符的全屏文本模式下编辑代码或运行任何基于终端的应用程序。那种比例给人一种*恰到好处*的感觉。 ### 更多内容 本文仅触及屏幕和Amiga图形硬件的皮毛。例如,平面图形通过仅操作构成像素颜色值的部分位平面,允许进行许多有趣的技巧和效果。我们甚至还没提到Amiga的blitter (https://en.wikipedia.org/Blitter) 硬件,它允许通过各种模式以极快的速度复制图形内存,用于组合或屏蔽位平面——这对高速街机游戏动作极其有用。 精灵只被简要提及,没有讨论如何利用它们为低位平面屏幕增加额外颜色,或如何将它们多路复用以增加精灵颜色。如果你想了解更多,我推荐Codetapper的Amiga网站 (https://codetapper.com/amiga/sprite-tricks/),它详细研究了Amiga游戏编程的图形方面。我强烈推荐关于《野兽之影》(https://codetapper.com/amiga/sprite-tricks/shadow-of-the-beast/) 的文章,它创造性地运用了Amiga的图形硬件,打造了一款视觉震撼、具有多层平滑视差滚动的游戏。 ### 总结 Amiga屏幕具有许多有趣的特性: - 屏幕使用平面图形,节省内存并允许可用屏幕颜色从两种逐渐增加到32种。 - 屏幕可以任意调整尺寸和定位。 - 多个具有不同分辨率(像素大小)、色深和调色板的屏幕可以同时显示,并任意重叠以露出其后的屏幕。 - 在两个不同屏幕之间切换是瞬时的。 - 屏幕可以逐渐拖拽以露出其后的另一个屏幕。 - 双活动区使用“Alpha通道”来组合两个不同屏幕的图形。 Amiga软件,包括操作系统,充分利用了这些特性。这使得在机器有限的硬件资源和相对较低的显示分辨率下,仍能进行高效的多任务工作流程。 现在,既然我在线上提到了Amiga,我就必须

相似文章

Five monitors on a Commodore 128 [video]

Hacker News Top

A retrocomputing experiment driving five independent monitors from a Commodore 128 by splitting RGBI signals with a custom circuit board, along with similar tests on IBM CGA/EGA systems.

AmigaOS 2:最伟大的升级

Lobsters Hottest

本文回顾了 AmigaOS 2,强调其在配色方案、GUI 工具包和可用性方面对原始 Workbench 的改进,将其定位为桌面操作系统发展史上的一次重大升级。

各平台人机界面指南

Lobsters Hottest

本文整理并分享了来自Apple、Amiga等平台的多种人机界面指南,为UI设计师和开发者提供了宝贵的资源。

Amiga 2026年8月更新

Lobsters Hottest

Amiga Corporation 宣布与 Commodore International 和 Hyperion Entertainment 达成新协议,明确了 Commodore/Amiga 知识产权的所有权,并定义了 AmigaOS 开发和许可的未来。