Неправильно тестишь. Маленький нюанс - системный биос

Неправильно тестишь.
Маленький нюанс - системный биос ждет возврата из точек входа expansion ROM (старой по +3 и одной из BСV/BEV). А вот возврата из кода boot-сектора он не ждет - ибо но этот момент биос свое дело сделал, он успешно загрузил с носителя бут и сдал управление. Считай, что по jmp (точнее - push 0, push 7С00h, retf). Дальше - работает бут. Почему ты решил, что после возврата по retf из boot-сектора дискеты должно начать грузиться с HDD - для меня покрыто мраком тайны. Если хочешь - напиши вместо retf закачку MBR через INT 13h по адресу 0:7C00h и передачу управления на него вышеуказанными командами + в DX (в DL, вроде) номер веника типа 80h - тогда будет продолжать загрузку с веника.

Т.е. при тесте кода как бут-сектора дискеты ты никак не сможешь продолжить согласно списку. Успешная загрузка этого сектора - и есть признак, что дальше не надо пробовать устройства согласно порядку.

Размещение программы в ПЗУ и ее пуск до старта ОС