Default
Google

The Amiga came out with an innovative and simple concept when it was released - screens.
Are they still relevant with all the new technology around? What are the pros and cons of the way the home computer industry has gone?

About Amiga Screens

The original Amiga was released in 1985, in a time when most PCs were struggling along with text based interfaces or rudimentary graphics at best. The Amiga rewrote what a computer could do, with 4096 colours to choose from, high resolution output, NTSC/PAL compatability and more. One of the key features was screens, a particular usage of the advanced chipset that the Amiga contained.

Basically, the Amiga could hold screen memory data anywhere in its memory map (with limitations, it had to be the first 512k, 1M or 2M, depending on the chipset), and the contents of that memory were displayed. By having 2 or more screen images in memory you could swap between the two by telling the display chip to do so. Not only that, but the hardware allowed the screens to be moved vertically to show the screen below.

These screens were great in the days of low-resolution displays. Without screens you had to use a very cluttered desktop (at a typical resolution of 640x200(NTSC) or 640x256(PAL)). You could have the filemanager (Workbench) on one screen, the wordprocessor on another and the art program on yet another. These could be swapped between really quickly, and more importantly each screen could have its own palette, resolution and colour depth.

In 1985 there were no high resolution high colour displays. You were lucky to be running a 4-colour graphical desktop (Mac users were unlucky!). By allowing different screens the user could actually get serious work done. You could edit graphics in 32 colours (or even 4096) on one screen in low resolution (320x256) whilst writing a document on another screen in high resolution, but less colours. Other platforms cut out functionality - the Mac didn't support colour. The PC didn't support multitasking. When the PC started to support multitasking, the tasks had to share the same 16 colour palette on a 640x480 screen - hardly ideal working conditions.

The one problem with screens is memory requirements. Each screen takes up precious memory. A 16 colour 320x256 screen took up 40k, a 16 colour 640x512 took up 320k. The Amiga originally came with 512k of memory (the A1000 only had 256k), so this was precious - hence the 4 colour medium resolution workbench amongst other things.

About the Single Desktop

The single high resolution screen is the current favourite amongst the Mac and PC people. They say - "Use a 1600x1200 display in 32-bit display and who cares about screens?" ignoring the fact that most people have 15" and 17" monitors barely capable of showing 1280x1024... The vast majority of people still run at 800x600 (based on web statistics), although this is creeping up to 1024x768 as more and more people get 17" and above monitors.

To get more screen estate you have to add another monitor and graphics card... very expensive. There are many applications where one very high resolution desktop is preferable though - CAD for example. It is all to easy to clutter up a single desktop with multiple applications though, they all exist much happier on their own desktop where there is much less clutter. Instead the PC world has got used to the hunt-on-the-taskbar paradigm for applications, and continual minimising and maximising of applications. The ALT-TAB through 20 identical icons is another game that Windows users have to put up with, and the hunt-the-dialog-box another.

About the Multiple Desktop

Multiple desktops allow you to get more desktop real-estate without having to break the bank. In essence they are just multiple instances of a single desktop, where the user gets to choose which desktop they want an application to be shown on. Only one desktop can be shown at once, and each desktop has some common features, such as a taskbar or program launcher. To switch desktops you commonly click on a small representation of the desktop you wish to switch to, or use the taskbar, or keyboard shortcuts, etc...

Multiple desktops are most common in the Unix and Linux world, where great advances have been made in this field. The only way to get multiple desktops in Windows is to use a desktop replacement such as Litestep.

Another way to think of desktops is as a software version of Amiga screens. The resolution and colour depth is fixed, and the memory requirements are much better because on a desktop switch the new desktop is redrawn over the old desktop - the same area of graphics memory is used.

The only problem with desktops is that the application cannot call the shots. When you load an application on the Amiga, it can create its own screen, bring it to the front and then do its stuff knowing it has got an entire screen to itself. With multiple desktops the user has to move applications to other desktops, and the application can never assume that it has the whole screen to itself. This would probably require an API change for Window Managers though.

A Modern Implementation of Screens?

Graphics cards typically come with 32Mb of RAM these days, and more modern NVidia cards are coming with 64Mb. The table below shows how much memory each typical resolution takes up, and how many Amiga style screens could fit into 32Mb and 64Mb of memory respectively.

Resolution Colour Depth Memory Required No. Screens
800x600

16

937K

34 / 68

800x600

32

1875K

17 / 34

1024x768

16

1536K

21 / 42

1024x768

32

3072K

10 / 20

1280x1024

16

2560K

12 / 24

1280x1024

32

5120K

6 / 12

1600x1200

16

3750K

8 / 16

1600x1200

32

7500K

4 / 8

Currently, when not playing games, the PC is vasting vast amounts of resource when displaying a single desktop. It would be easy to add support for multiple real desktops in the Amiga fashion, you could even have the different resolutions capability so you can run your newsreader at 800x600 in 256 colours (it doesn't need more - when it wants to display a picture it can open up a screen at a useful resolution and show it there), run your browser at 1024x768 in 16 or 32 bit colour, etc. In the future PC graphics cards will come with 64Mb or RAM, then 128Mb, then 256Mb... Why let this go to waste?

Amazingly the above can be done with better drivers! It isn't a hardware problem unless the graphics chip can only have the screen memory at a certain address in its memory map. Of course, some operating systems will probably need to be told about this functionality, but when the new Amiga OS comes out, based around TaoOS, I sincerely hope that Amiga screens are supported in the way I describe above at least.

Multiple Desktop systems such as X could probably be extended to support the above reasonably simply as well, and most people do not use more than 8 desktops anyway - 2 or 3 is more common. It could be a run-time optimisation - if you open up a new desktop, and there is memory available, then let it have its own area of graphics memory to reside in. Instead of having "Create new desktop", you could "Create new desktop -> [800x600 | 1024x768 | 1280x1024 | 1600x1200]" to create a desktop more suited to the application you wish to run on it.

Other Useful Technologies...

Another idea is that each application has its own area in that memory, and a simple display list processor displays the final screen, much in the way that the mythical A/Box was going to do things (e.g., different apps running at different bit-depths, doesn't matter). This is basically very generalised sprites, and transparency could be VERY simple using this method.



Acquiring image from ProHosting Banner Exchange