- Clean up the command-line parsing.

- Cleaned up documentation, with a real man page.

- Support for clusters larger than 16K.  This would require changing
  a lot of the SYSLINUX internals so we can read partial clusters;
  change the current "cluster pointers" to become
  "cluster:sector pointers".  (32K may be doable.)  Microsoft
  documentation claims that 32K is the maximum legal value although
  "some versions of some systems allow 64K".

- EBIOS support.

- FAT32 support?

- Support initrd that span multiple input media?

- Support a small set of DOS system calls for COMBOOT images?  Serial
  console support makes this particularly desirable; otherwise the
  user could just use the BIOS I/O calls, but that won't work with the
  serial port.  A feasible set would be the following:
    00h	   - Terminate program
    01h	   - Read char with echo (return char AL)
    02h	   - Display character (in DL)
    08h	   - Read Keyboard Without Echo (return char in AL)
    09h	   - Display string (DS:DX -> end string in $)
    0Bh	   - Check keyboard status (AL = 0FFh if char avail; AL = 00h if not)
    30h	   - Get version number (return AX=0000h BX=0000h CX=0000h)
    4Ch	   - Terminate program

  ... in addition to INT 20h (Terminate program), of course.

- Factor out common and filesystem-specific code into files, even if
  they have to be %includes rather than genuine modules.

