Atari 400/800 systems

The original Operating System in the Atari 400/800 (OS-A) contained several bugs and was quickly replaced with OS-B, which then became the standard.  At least two early games and one utility program are known to work only with OS-A: 

Match Racer (later patched and re-released)
Kamikaze
(no known patch)
FileManager 800
(patched and re-released as “FileManager+”)

The fixes in OS-B are as follows:  (A.N.A.L.O.G. issue #4)

1) The disk drives will no longer stop and then re-start during use.  Apparently, a disk drive would occasionally stop spinning but the busy light would remain on when using OS-A, which encouraged users to remove their disks before writes were actually completed.
2)
Fixed a bug which caused random system crashes on early machines.
3) Fixed a bug which could corrupt the display when opening devices for I/O under certain conditions.
4) Sending the hex number $FF to the SIO bus as part of an address for a buffer will no longer put the unit into an infinite loop and freeze the system.
5) POKEY timer #4 now functions correctly.
6) A vector has been added for the Break key.  This means that programs could then be written which allow the Break key to be used for other purposes besides simply stopping a program.

To determine if your computer uses the original CTIA graphics chip or the upgraded GTIA, enter “POKE 623,64”. If the screen stays the normal blue it has the CTIA; if turns gray/black it has the GTIA.

XL/XE software won't work on 400/800 if:   {Konrad M.Kokoszkiewicz}

1) it uses shadow RAM at $C000-$CFFF and $D800-$FFFF
2) it uses RAM expansions at $4000-$7FFF controlled by PORTB $D301
3) it uses specific XL OS functions (like JNEWDEVC)
4) it uses illegal XL OS addresses
5) it uses European Charset

BUG: The operating system has an inherent flaw in the S: handler routine. For example, using certain (S: handler) values meant for use by the E: handler, such as 155 (EOL/line feed) and 125 (clear-screen) end up being interpreted by the S: handler instead.

The following BASIC program illustrates this problem:

1 GR.15+16
2 COLOR 125: PLOT 0,125:DRAWTO 50,125
3 COLOR 155: PLOT 0,155:DRAWTO 50,155
4 GOTO 4

If the COLOR values are changed to 1 and 2 respectively, you’ll see that the programs original intention was to draw 2 differently-colored horizontal lines.

BUG: The infamous “scanline 240” bug is a result of Atari’s Antic chip not correctly disabling the display generation on what’s normally the last line of the display when in a high resolution mode (2, 3, or F).  Instead of it sending a constant HBLANK command to GTIA, it constantly sends a command to generate 2 pixels of high resolution ‘on’ pixels when the display is normally active, and then sends the HBLANK again to each scanline, but at the wrong time.  The result is the HSync pulse jumps out of step and the display becomes warped.

BUG: Early Atari 400/800s (for approx. the first 18 months) used a CTIA graphics chip, which was later replaced with a GTIA. The reason being, the CTIA has a flaw that results in a pixel shift between high resolution and non-high resolution (including player missile) graphics that occurs between chroma and luma, and it is the same shift that provokes the difference in artifacting for slim lines in high resolution between the two as well. To find out which you have, either type "POKE 623,64" in BASIC (if nothing happens, you have a CTIA). Or type in the following program (if nothing happens, you have a GTIA):

10 GRAPHICS 9
20 GOTO 20

At least one game, Galaxian, has been found that exhibits graphics issues on CTIA systems (see picture).

To determine if your computer uses the original CTIA graphics chip or the upgraded GTIA, enter “POKE 623,64”. If the screen stays the normal blue it has the CTIA; if turns gray/black it has the GTIA.

 

 


Return to main menu