This fixes the DOS Mappings and makes 8086 examples work again.
This is probably not the best way to fix them, but at least it works fine with current FS Mapper. Basically what it does is map 0x80 to C and beyond and 0x00 to A and beyond.
There is few limitations though: INT 13H actually allows up to 126 disks, this only supports disks from C to Z. INT13 also supports floppies in CDEF... letters, this PR only supports A and B as floppy letters.
Although this is not ideal, I don't think I ever saw something actually uses more than two floppies and few disks. At least this make qiling able to simulate DOS.
Checklist
Which kind of PR do you create?
[X] This PR only contains minor fixes.
[ ] This PR contains major feature update.
[ ] This PR introduces a new function/api for Qiling Framework.
Coding convention?
[X] The new code conforms to Qiling Framework naming convention.
[ ] The imports are arranged properly.
[ ] Essential comments are added.
[ ] The reference of the new code is pointed out.
Extra tests?
[X] No extra tests are needed for this PR.
[ ] I have added enough tests for this PR.
[ ] Tests will be added after some discussion and review.
Changelog?
[ ] This PR doesn't need to update Changelog.
[X] Changelog will be updated after some proper review.
This fixes the DOS Mappings and makes 8086 examples work again.
This is probably not the best way to fix them, but at least it works fine with current FS Mapper. Basically what it does is map 0x80 to C and beyond and 0x00 to A and beyond.
There is few limitations though: INT 13H actually allows up to 126 disks, this only supports disks from C to Z. INT13 also supports floppies in CDEF... letters, this PR only supports A and B as floppy letters.
Although this is not ideal, I don't think I ever saw something actually uses more than two floppies and few disks. At least this make qiling able to simulate DOS.
Checklist
Which kind of PR do you create?
Coding convention?
Extra tests?
Changelog?
Target branch?
One last thing