That's definitely progress though. It confirms the same detection code will work on the 375 and 376.
When I've had trouble, it can be useful to add the following shortly after the .START_INT13: label around line 489.
Code:
.START_INT13:
PUSH AX
MOV AL, AH
CALL WIRTE_AL_INT10_E
POP AX
Yes, WIRTE is misspelled, and it's been that way since the original code.
Each time it makes its way into the INT13 handlers, it will write two digits for the INT13 function being called, which could be a hint to where things went wrong. It's possible your BIOS or OS is calling something that is not fully implemented here, or the actual read from/write to disc stuff is less compatible than originally imagined. (This assumes that the flow is still "normal" -- we're returning to the main BIOS after printing the CPU detection, and the BIOS starts making INT13 calls to begin the boot process.
In my experience, with PC-DOS 2000 and FreeDOS, even if the geometry is badly scrambled, it seems to usually get to the "load the first few sectors" phases of the boot process- enough to see the "Starting PC-DOS" or ".....123", before it blows up.
Are you running anything else disc-BIOSy at the same time? I was having some issues where it would freeze weirdly when I also had the XT-IDE Universal BIOS trying to boot (with no drives attached)-- I think it failed running INT13 function 0 (reset disc system) which just says "All good"