I'm attempting to debug but it's a steep learning curve. Google is my friend.
The final instructions where this program is looping with an error message about an unhandled CPU operation is as follows:
0050:0000B809 db FF
F000:0000CA60 callback 0003 (default)
F000:0000CA64 iret
I'm having a hard time understanding what Google is trying to tell me about this. It seems to be a DosBox instruction, and not a program instruction?
I'd appreciate anyone providing some insight into this and how it relates to this program crashing. I suspect the real problem occurs earlier than this point anyhow, as the .IMG file includes an int 13h read instruction at track 0, sector 0 but being a standard disk .img, there is no track 0, sector 0. The Carry Flag is set to 1 for these operations, and I'm still digging into what problems this is causing, if any.
There are a lot of instructions executed between the last int 13h (which was successful - a read of a valid track/sector) but could the above error be somehow related to int 13h calls to an invalid sector?
I'm going to try to hex edit the program to work around the track 0/sector 0 reads. The other problem I have however was that the original disk on side 1 had half the tracks with 5 sectors of 10244 bytes, and half of them with 9 sectors of 512 bytes. I think I might need to account for this with some hex edits too. A read instruction of 2 sectors for those tracks originally at 1024 bytes isn't going to work I think on the .IMG file where I have 18 sector per track at 512 bytes. A 2 sector read will read 1024 bytes instead of the 2048 the program is expecting?
Lots of guesswork at this point - steep learning curve but I'm muddling my way through. I appreciate any insight or help anyone might be willing to provide.
Trent