amiga-bootcamp/02_boot_sequence/early_startup.md
2026-04-26 14:46:18 -04:00

8.5 KiB
Raw Blame History

← Home · Boot Sequence

Early Startup Control — Boot Menu, Display Mode, Recovery

Overview

The Early Startup Control (ESC) menu is a built-in boot manager available on all Amigas with Kickstart 2.0+. It provides boot device selection, display mode override, and emergency recovery options. It appears when both mouse buttons are held during the early boot phase — before the OS loads from disk.


Activation

How to Trigger

Hold both mouse buttons (left + right) immediately after power-on or during the Ctrl-Amiga-Amiga reset sequence. The timing window is:

Kickstart When to Hold Visual Cue
2.03.0 During boot color sequence Before "Insert Disk" or disk activity
3.1 During the hand/checkmark animation While the Amiga hand appears
3.1.4 / 3.2 Same as 3.1 Same timing window

Tip: Hold both buttons before powering on — this guarantees you catch the window. Release them once the menu appears.

Not Available On

  • Kickstart 1.2 / 1.3 (no boot menu feature)
  • Any system where the ROM is corrupted (red screen before menu)
  • Systems with custom boot ROMs that bypass standard init

Menu Layout

OS 3.1 Early Startup Control

╔══════════════════════════════════════════╗
║        EARLY STARTUP CONTROL             ║
║                                          ║
║  Boot Options:                           ║
║    ○ Boot With No Startup-Sequence       ║
║    ● Boot Standard                       ║
║                                          ║
║  Boot Device:                            ║
║    ● DF0:   (pri  5)                     ║
║    ○ DH0:   (pri  0)                     ║
║    ○ DH1:   (pri -5)                     ║
║                                          ║
║  Display Mode:                           ║
║    ● PAL          ○ NTSC                 ║
║                                          ║
║              [ BOOT ]                    ║
╚══════════════════════════════════════════╝

OS 3.2 Early Startup Control

OS 3.2 adds additional options:

╔══════════════════════════════════════════╗
║        EARLY STARTUP CONTROL             ║
║                                          ║
║  Boot Options:                           ║
║    ○ Boot With No Startup-Sequence       ║
║    ● Boot Standard                       ║
║    ○ Boot (Debug)                        ║
║                                          ║
║  Boot Device:                            ║
║    ● DF0:   (pri  5)                     ║
║    ○ DH0:   (pri  0)   "System3.1"      ║
║    ○ DH1:   (pri -5)   "Work"           ║
║    ○ CD0:   (pri -20)                    ║
║                                          ║
║  Display Mode:                           ║
║    ○ PAL    ○ NTSC    ● Best Available   ║
║                                          ║
║  ROM Modules:                            ║
║    [x] Enable SetPatch                   ║
║    [x] Enable 68040.library              ║
║                                          ║
║              [ BOOT ]                    ║
╚══════════════════════════════════════════╝

Menu Options

Boot Options

Option Effect
Boot Standard Normal boot — executes S:Startup-Sequence
Boot With No Startup-Sequence Boots to a CLI prompt. S:Startup-Sequence is NOT executed. Assigns (SYS:, C:, etc.) are still set.
Boot (Debug) (OS 3.2) Boots with debugging enabled — serial debug output, extended logging

Boot Device Selection

Lists all devices registered with AddBootNode():

  • Floppy drives: DF0:, DF1: (always present if trackdisk.device loaded)
  • Hard disk partitions: DH0:, DH1:, etc. (from RDB on SCSI/IDE)
  • CD-ROM: CD0: (if device driver available)
  • Network: (if SANA-II device registered as bootable)

Select a device and click BOOT — the system uses that device as SYS: regardless of configured boot priority.

Display Mode

Option Effect
PAL Force PAL display (50 Hz, 283 visible lines)
NTSC Force NTSC display (60 Hz, 241 visible lines)
Best Available (OS 3.2) Auto-detect from hardware and monitor

Why this matters: If someone changes the display mode to a setting their monitor can't sync to (e.g., PAL on an NTSC-only monitor), the screen goes blank. The ESC menu renders using the most basic display mode, so it's always visible — even when the configured mode is incompatible.


How It Works Internally

Detection

/* During boot, before strap runs: */
/* intuition.library checks both mouse buttons via CIA-A/B port registers */

UBYTE ciaA_pra = ciaa.ciapra;   /* CIA-A Port A — mouse button 1 (bit 6) */
UBYTE potgor   = custom.potgor;  /* POT port — mouse button 2 (bit 10) */

BOOL leftButton  = !(ciaA_pra & 0x40);    /* Active low */
BOOL rightButton = !(potgor & 0x0400);     /* Active low */

if (leftButton && rightButton)
{
    /* Both buttons held — enter Early Startup Control */
    ShowBootMenu();
}

Display

The ESC menu uses the lowest-level graphics possible:

  • Opens a 640×200 (or 640×256 PAL) 2-color screen
  • Uses the Topaz 8 ROM font (always available — no disk access needed)
  • Renders using direct RastPort calls — no windows, no layers
  • Mouse pointer uses hardware sprite 0

Boot Menu Rendering Order

  1. graphics.library init completes → display hardware ready
  2. intuition.library init completes → input handling ready
  3. Check mouse buttons
  4. If held: create the boot menu screen
  5. Wait for user selection + BOOT button
  6. Close screen, continue boot with selected options

Recovery Scenarios

Corrupted Startup-Sequence

Problem: System hangs during boot — bad script
Fix:
  1. Hold both mouse buttons → ESC menu
  2. Select "Boot With No Startup-Sequence"
  3. Boot → CLI prompt appears
  4. Edit the script: ED S:Startup-Sequence
  5. Reboot normally

Wrong Display Mode (No Picture)

Problem: Changed to PAL on NTSC monitor (or vice versa) — screen blank
Fix:
  1. Power off
  2. Hold both mouse buttons, power on
  3. ESC menu appears (uses safe display mode)
  4. Select correct display mode (PAL/NTSC)
  5. Click BOOT

Boot from Floppy Instead of Hard Disk

Problem: Hard disk is corrupted, need to boot from floppy
Fix:
  1. Insert bootable Workbench floppy in DF0:
  2. Hold both mouse buttons during boot
  3. Select DF0: as boot device
  4. Click BOOT
  5. System boots from floppy — hard disk accessible as DH0:

Assign Loops / Infinite Requester

Problem: Startup-Sequence has an Assign to a missing volume
         → "Please insert volume X" in infinite loop
Fix:
  1. ESC menu → "Boot With No Startup-Sequence"
  2. Fix the Assign in S:Startup-Sequence
  3. Or: Add NOREQ flag to the problematic Assign
     Assign >NIL: WORK: DH1:

Hard Disk Not Appearing in Boot Menu

Problem: DH0: doesn't show in the ESC boot device list
Possible causes:
  1. IDE/SCSI device not detected — check cables
  2. No valid RDB (Rigid Disk Block) — use HDToolBox
  3. Boot priority not set — use HDToolBox to set BootPri
  4. Partition table corrupt — try mounting from floppy boot

Testing Multiple OS Versions

Scenario: Two OS versions on different partitions
  1. Install OS 3.1 on DH0: (BootPri 0)
  2. Install OS 3.2 on DH1: (BootPri -5)
  3. Normal boot → DH0: (OS 3.1)
  4. ESC menu → select DH1: → boots OS 3.2
  5. Or: change BootPri in HDToolBox to swap default

Keyboard Alternative

On Amiga 1000 (no right mouse button connector) or when mouse is unavailable:

  • Some A1000 models use a key combination instead of mouse buttons
  • External button boxes connected to the joystick port can substitute
  • DiagROM provides keyboard-driven boot menu alternatives

References

  • RKRM: Early Startup chapter
  • OS 3.1 AmigaGuide: System/BootMenu
  • OS 3.2 Release Notes: new ESC menu options
  • See also: DOS Boot — what happens after device selection
  • See also: Cold Boot — hardware init before ESC menu