VOGONS


First post, by BlueSox14

User metadata
Rank Newbie
Rank
Newbie

subLOGIC Scenery Disk 12 (for IBM) is the only disk out of fourteen that I can't get to work in DosBox.

After spending some time trying to figure this out, it's now time for me to reluctantly put my hand up for some help.

My guess is that solving this will require familiarity with DEBUG and assembly. I'm very keen to learn, but I'm getting nowhere fast on my own. If anyone is interested in this challenge and is prepared to spend some time helping me learn then please do get in touch with me.

Trent

Reply 1 of 2, by BlueSox14

User metadata
Rank Newbie
Rank
Newbie

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

Reply 2 of 2, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Disk sectors that are not 512 bytes in size are a form of simple disk-based copy protection that defeats DISKCOPY and the like but not some more capable disk copying utilities.

You can probably modify the disk image to use only 512-byte sectors, and it will then at least stand a chance of working in DOSBox. However, understand that such modification is in effect "cracking" the protection and not just working around a limitation of DOSBox.