mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-13 00:26:28 +00:00
boot_sequence: enrich all articles + new kickstart_rom.md
New: kickstart_rom.md (ROM structure, module inventory, tools, custom ROMs) Enriched: cold_boot (diagnostics, LED codes, troubleshooting), kickstart_init (ExecBase creation, ROM scan, 4-phase init), dos_boot (strap, boot block, Startup-Sequence), early_startup (recovery) Updated: 02_boot_sequence/README.md, root README.md
This commit is contained in:
parent
59929047d4
commit
99a6d53f57
7 changed files with 1910 additions and 231 deletions
|
|
@ -1,51 +1,246 @@
|
|||
[← Home](../README.md) · [Boot Sequence](README.md)
|
||||
|
||||
# Early Startup Control — Boot Options
|
||||
# Early Startup Control — Boot Menu, Display Mode, Recovery
|
||||
|
||||
## Overview
|
||||
|
||||
The **Early Startup Control** (ESC) menu appears when both mouse buttons are held during power-on or reset. It provides boot device selection, display mode override, and emergency recovery options.
|
||||
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
|
||||
|
||||
- **Both mouse buttons held** before the boot screen hand animation completes
|
||||
- On A1200: hold both buttons during "floppy click" phase
|
||||
- Requires Kickstart 2.0+ (not available on 1.3)
|
||||
### 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.0–3.0 | During boot colour 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 Options (OS 3.1)
|
||||
## Menu Layout
|
||||
|
||||
### OS 3.1 Early Startup Control
|
||||
|
||||
```
|
||||
┌──────────────────────────────────┐
|
||||
│ EARLY STARTUP CONTROL │
|
||||
│ │
|
||||
│ Boot With No Startup-Sequence │
|
||||
│ Boot Standard │
|
||||
│ │
|
||||
│ Boot Device: │
|
||||
│ DF0: (pri 5) │
|
||||
│ DH0: (pri 0) │
|
||||
│ │
|
||||
│ Display Mode: │
|
||||
│ ● PAL ○ NTSC │
|
||||
│ │
|
||||
│ [BOOT] │
|
||||
└──────────────────────────────────┘
|
||||
╔══════════════════════════════════════════╗
|
||||
║ 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
|
||||
|
||||
```c
|
||||
/* 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-colour 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
|
||||
|
||||
| Scenario | Fix |
|
||||
|---|---|
|
||||
| Corrupted Startup-Sequence | Boot with No Startup-Sequence, then `ED S:Startup-Sequence` |
|
||||
| Wrong display mode (no image) | Hold both buttons → change PAL/NTSC |
|
||||
| Boot from floppy instead of HD | Select DF0: as boot device |
|
||||
| Assign loops / infinite boot | No Startup-Sequence → fix assigns manually |
|
||||
### 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
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -53,3 +248,6 @@ The **Early Startup Control** (ESC) menu appears when both mouse buttons are hel
|
|||
|
||||
- RKRM: Early Startup chapter
|
||||
- OS 3.1 AmigaGuide: `System/BootMenu`
|
||||
- OS 3.2 Release Notes: new ESC menu options
|
||||
- See also: [DOS Boot](dos_boot.md) — what happens after device selection
|
||||
- See also: [Cold Boot](cold_boot.md) — hardware init before ESC menu
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue