This chapter is a draft. See the outline.

Startup and booting

The startup sequence and boot process of the Atari Lynx involves many steps and code from the cartridge and Mikey ROM.
Word count: 331
In this chapter:

Mikey boot process

Mikey can have its memory range of $FE00 to FEF8 mapped to internal ROM. This ROM contains the startup code for the Atari Lynx. The startup vector for the Lynx is hardcoded to be $FF80 inside the boot ROM code. The ROM will perform a number of steps to start and initialize the Lynx and load a cartridge and start the program or game that is on it.

  1. Turn cartridge power off
  2. Erase RAM memory to zeros (0x00)
  3. Initialize Mikey (see table below).
    Effectively it sets the timers for horizontal and vertical scans, and loads the palette with black and yellow
Address Name Value Symbol
FD90 SDONEACK 00 Acknowledge Suzy
FD92 DISPCTL 0D 4 bit color with video DMA enabled
FD95 DISPADRH 20 Video address at 0x0200
FD94 DISPADRL 00  
FD93 PBCKUP 29 Magic P value for screen frequency
FD09 TIM2CTLA 1F  
FD08 TIM2BCKUP 68 Backup value of 104 for 102 LCD lines and 3 overscan lines
FDBF BLUEREDF 3E Yellow
FDAF GREENF 0E Yellow
FDB0 BLURED0 00 Black
FDA0 GREEN0 00 Black
FD01 TIM0CTLA 18 2 microseconds timing for horizontal line (60Hz)
FD00 TIM0BCKUP 9E 1

If during the boot process there turns out to be something wrong with the bootloader or cartridge contents, the Lynx will not start up correctly. It will either freeze or display an “INSERT GAME” message on screen.

debugbreak debugbreak

You can see that the yellow and black color are used to display the text of the message.

  • Cartridge not inserted: Static INSERT GAME displayed
  • Decryption failure: fast flashing INSERT GAME
  • Hash value mismatch of cartridge contents: Lynx freezes