View Single Post
Old 05 April 2006, 16:04   #7
Registered User
Join Date: Sep 2005
Location: melbourne
Age: 49
Posts: 510
the main video display hardware on the Amiga (the COPPER) was 16bit, but all of it's instructions were 8 bit.

page 18 of the Commodore Amiga Hardware Reference Manual:

The vertical beam position can be resolved to one line, with a maximum resolution of 255. There are actually 262 NTSC (312) possible vertical positions. Some minor complications can occur if you want something to happen within these last six or seven scan lines. Because there are only 8 bits for vertical resolution (allowing 256 different positions), one of the simplest ways to handle this is shown below.

WAIT for position (0,255)
WAIT for position (0,6) [will trigger on scan line 262 (256+6)]

page 30 discusses interlaced displays with the COPPER, as well as page 34 onwards (Playfield hardware).

long way around to the PAL 256 lines, but here goes:

I'm guessing that 320x200 instead of 320x240 was chosen as the 'default' NTSC Amiga resolution due to historical and financial reasons:

Earlier computers had text or character based displays. People were already used to 40x25 text displays on their TV screens from computers such as the Commodore 64. Each character was made up of 8x8 pixels, which gave an effective full screen display resolution of 320x200 pixels. To display 40x25 text characters (total=1000) in just two colour (foreground and background) we need almost 1KB of RAM. For more foreground and backgrounds colours make it another 1KB of RAM for the colour table. These early computers generally had less than 64KB of total memory, so you generally wouldn't want to be using lots of memory just for pretty pictures (or there wouldn't be much left over for program code).

For a bitmapped 320x200 resolution, non-interlaced display (such as used by Workbench, but with just two colours) you need 8000 bytes just for screen memory.

The default bitmapped GUI 4 colour window that opens with a NEWCLI on a lo-res, non-interlaced Amiga (whether PAL or NTSC) is 320x200 pixels and takes up (minimum, without OS overhead) 16,000 bytes.

If you want more colours on screen, then double the amount of memory that needs to be reserved for the screen display for every time you double the maximum amount of colours displayable on screen.

The most common NTSC display mode for games on the Amiga probably would have been the 320x200 x 16 colours = total of 32,000 bytes to be allocated for the screen display. So 1/16th of your total memory is gone just with the screen display.

If you want it interlaced (so you get a higher vertical resolution) then double the total amount of memory again.

Pretty soon you can eat up a large chunk of the 512KB of memory you've got - just to display ONE screen (and we're still not considering the memory used to store the program code, or the graphics in the first place, unless you're loading the data in directly from disk).

So that's why I think that NTSC is generally 320x200 - text wise it is a nice size and still clear enough to read on a lo-res device such as a TV set, and memory wise it is the most economical on a system with limited memory (limited due to the expense).

Anyways - getting to the 'why 256 for PAL' question:

320x256 lines = 8,192 bytes to display a screen - a nice 'round' power of 2 number and easy for computers to handle.

COPPER video timing display is 8 bits, so maximum of 256 possible values.
gizmomelb is offline  
Page generated in 0.04063 seconds with 10 queries