Amiga screens: a primer
Amiga Screens: A Primer
Amiga 屏幕:入门指南
Autumn 2026. One of the unwritten rules of the Internet seems to be that whenever something Amiga-related is mentioned, at least one Amiga fan (myself included) must show up and try to explain the concept of screens. Amiga screens can have different resolutions, we’ll tell you, and one can drag them, we’ll say, and other Amiga users rally in agreement, while non-Amiga users probably still don’t get what’s so great about screens. Until now, when this text has been written, in the hope of converting unsuspecting normies into full-blown Amiga screen lovers. 2026 年秋。互联网上似乎有一条不成文的规定:每当提到与 Amiga 相关的内容时,至少会有一位 Amiga 粉丝(包括我在内)跳出来试图解释“屏幕”(Screens)的概念。我们会告诉你,Amiga 屏幕可以有不同的分辨率,我们可以拖动它们;其他 Amiga 用户会随声附和,而非 Amiga 用户可能仍然不明白屏幕到底有什么了不起。直到现在,我写下了这篇文章,希望能将毫无防备的“普通人”转化为彻头彻尾的 Amiga 屏幕爱好者。
For practical purposes, this text will focus on the original Amiga graphics hardware, called OCS (Original ChipSet). Some hardware limitations were removed in the subsequent ECS (Enhanced ChipSet) and AGA (Advanced Graphics Architecture) upgrades, but the same basic principles and user experience still apply. 出于实际考虑,本文将重点介绍最初的 Amiga 图形硬件,即 OCS(原始芯片组)。尽管后续的 ECS(增强型芯片组)和 AGA(高级图形架构)升级移除了一些硬件限制,但其基本原理和用户体验依然适用。
A Screen is a Screen is a Screen
屏幕就是屏幕
The specific meaning of screen on the Amiga comes from the operating system, which uses this term to refer to a particular type of display area because it is, well, a screen. Amiga games and demo programmers aren’t as bothered by this concept; the Amiga Hardware Reference Manual, for example, refers to a display area as a “playfield”, and a demo coder might talk about raster splits, but for simplicity, let’s stick to screen. Hence, a screen on the Amiga is, basically, an area onto which graphics is drawn. Amiga 上“屏幕”的具体含义源于操作系统,它使用这个术语来指代一种特定的显示区域,因为它确实就是一个“屏幕”。Amiga 游戏和 Demo 程序员并不太纠结于这个概念;例如,《Amiga 硬件参考手册》将显示区域称为“游戏场”(playfield),而 Demo 程序员可能会谈论光栅分割(raster splits),但为了简单起见,我们还是统一称为“屏幕”。因此,Amiga 上的屏幕基本上就是一块用于绘制图形的区域。
Amiga screens can have different resolutions and colour depths, and a program can open any number of different-resolution screens to display graphics. Today, we mostly use a single, fixed-resolution display area, which is a combined effect of how modern operating systems and flatscreen monitors work. In the heydays of CRT monitors, however, opening different-resolution displays was commonplace. An image viewer running on a VGA-capable MS-DOS machine, for example, might use a 16-colour, 720x400 pixel text mode resolution for browsing files, and then open a new 256-colour 320x200 display when viewing an image. Amiga 屏幕可以具有不同的分辨率和色彩深度,程序可以打开任意数量不同分辨率的屏幕来显示图形。今天,我们大多使用单一的固定分辨率显示区域,这是现代操作系统和平面显示器共同作用的结果。然而,在 CRT 显示器的鼎盛时期,打开不同分辨率的显示界面是司空见惯的。例如,在支持 VGA 的 MS-DOS 机器上运行的图像查看器,可能会使用 16 色、720x400 像素的文本模式来浏览文件,然后在查看图像时打开一个新的 256 色、320x200 的显示界面。
These variations in resolution and colour depth existed on basically all home computers, and were hardware-enforced tradeoffs to achieve reasonable speed and memory consumption for different use cases. Memory was very expensive at the time (Oh, how history repeats itself!) and the Amiga, which in its stock hardware configuration relied on a relatively small amount of RAM being shared between the CPU, video and audio hardware, offered a high level of control over these screen resolutions and colour depths. 这些分辨率和色彩深度的变化基本上存在于所有家用电脑上,这是为了在不同使用场景下实现合理的运行速度和内存消耗而进行的硬件权衡。当时内存非常昂贵(哦,历史总是惊人地相似!),而 Amiga 在其标准硬件配置中,依赖于 CPU、视频和音频硬件之间共享的相对较少的内存,因此它提供了对这些屏幕分辨率和色彩深度的高度控制能力。
Indices and Planes
索引与位面
The Amiga typically uses indexed palettes, meaning that a limited number of per-screen colour registers contain a user-defined colour value. These values are selected from a 12-bit colour space (or 24-bit, on AGA). For example, colour index 0 might be set to $000, which is black, and index 1 to $F00, which is red. To manipulate the colour value of individual pixels, planar graphics is used, which means that the colour depth of a screen is increased by adding more bitplanes (bpl for short). Amiga 通常使用索引调色板,这意味着每个屏幕有限数量的颜色寄存器包含用户定义的颜色值。这些值从 12 位色彩空间(AGA 上为 24 位)中选择。例如,颜色索引 0 可能被设置为 $000(黑色),索引 1 被设置为 $F00(红色)。为了操作单个像素的颜色值,系统使用了位面图形(planar graphics),这意味着通过增加更多的位面(简称 bpl)来提高屏幕的色彩深度。
Each bitplane is stored separately in memory, and in order to change the colour index of a pixel, a bit must be toggled in each plane. Thus, a one-bitplane screen gives two colour indices, two bitplanes gives four and so on, up to five bitplanes and 32 colours on the original Amiga hardware (or 8 bpl and 256 colours on AGA). 每个位面在内存中是分开存储的,为了改变像素的颜色索引,必须在每个位面中切换相应的位。因此,一个位面的屏幕提供两个颜色索引,两个位面提供四个,以此类推,在原始 Amiga 硬件上最多可达五个位面和 32 种颜色(在 AGA 上则为 8 个位面和 256 种颜色)。
On OCS and ECS, the maximum number of bitplanes per screen is determined by its display resolution, and these are designed to make sense on a PAL or NTSC television set. An OCS Amiga offers low-res and high-res. On PAL, low-res is 320x256 pixels (320x512 with interlace) in up to 32 colours (5 bpl). High-res is 640x256 (640x512 with interlace) in up to 16 colours (4 bpl). These base resolutions can be increased slightly by using overscan, which in high-res can be up to 724x283, but isn’t guaranteed to be fully visible on all monitor types or television sets. 在 OCS 和 ECS 上,每个屏幕的最大位面数由其显示分辨率决定,这些设计是为了适配 PAL 或 NTSC 电视机。OCS Amiga 提供低分辨率和高分辨率模式。在 PAL 制式下,低分辨率为 320x256 像素(隔行扫描为 320x512),最多支持 32 种颜色(5 个位面)。高分辨率为 640x256(隔行扫描为 640x512),最多支持 16 种颜色(4 个位面)。这些基础分辨率可以通过使用过扫描(overscan)略微增加,高分辨率下最高可达 724x283,但这并不能保证在所有类型的显示器或电视机上都能完全显示。
In low-res, a sixth bitplane can be used for HAM (Hold-And-Modify), allowing free use of all of the OCS Amiga’s 4096 colours simultaneously (with some caveats), or EHB (Extra Half-Brite) which duplicates a 32 colour palette into 32 additional copies of the original colours, but with half the original brightness value. 在低分辨率模式下,第六个位面可用于 HAM(保持与修改)模式,允许同时自由使用 OCS Amiga 的全部 4096 种颜色(有一些限制),或者使用 EHB(额外半亮度)模式,它将 32 色调色板复制出 32 个原始颜色的副本,但亮度减半。
Unlike most of its contemporary competitors, the Amiga has true, preemptive multitasking, for which planar graphics offers convenient resource frugality. A text editor might work just fine on a 2-colour screen, saving memory that can be used for simultaneously running a graphics program on a 32-colour screen. It’s also memory-saving in the sense that only the exactly required number of bits are needed to store a single pixel while keeping memory addressing sane, instead of, say, allocating one byte per pixel and wasting the unused bits. 与大多数同时代的竞争对手不同,Amiga 拥有真正的抢占式多任务处理能力,而位面图形为此提供了便捷的资源节约方式。文本编辑器可以在 2 色屏幕上运行良好,从而节省内存,这些内存可用于同时在 32 色屏幕上运行图形程序。这种方式在内存节省方面也很有意义,因为它只需要存储单个像素所需的精确位数,同时保持内存寻址的合理性,而不是像某些系统那样为每个像素分配一个字节,从而浪费未使用的位。
Hardware Hijinx
硬件戏法
The Amiga was originally designed as a games machine, which means it’s got lots of hardware features for working with graphics. Repositioning a screen is instant, and scrolling an entire screen is extremely fast, to the point that even the operating system allows the user to configure a desktop screen that’s larger than the visible area, and scroll around it using… Amiga 最初被设计为游戏机,这意味着它拥有许多用于处理图形的硬件特性。重新定位屏幕是瞬间完成的,滚动整个屏幕的速度极快,以至于操作系统甚至允许用户配置一个比可见区域更大的桌面屏幕,并使用……进行滚动。