Don't save/restore flags and ebp on external calls - saves on stack space.

It isn't necessary to save ebp - just mark it as clobbered.
The only important flag to save/restore is irqs - manually fixup all callers.
diff --git a/src/boot.c b/src/boot.c
index b1fa050..c75bc1b 100644
--- a/src/boot.c
+++ b/src/boot.c
@@ -63,7 +63,10 @@
 static void
 try_boot(u16 seq_nr)
 {
+    irq_enable();
+
     SET_IPL(sequence, seq_nr);
+
     u16 bootseg;
     u8 bootdrv = 0;
     u16 bootdev, bootip;
@@ -210,7 +213,6 @@
 {
     if (CONFIG_ATA)
         ata_detect();
-    irq_enable();
     struct bregs br;
     memset(&br, 0, sizeof(br));
     call16_int(0x19, &br);