: i now have a clue why MS-DOS 2.x crashes
(and CP/M 1.1 boots).
One reason is that our interrupt handling looks incorrect. There is additional IRQ logic not reflected in our code.
Please see the attached image in my Dropbox:https://dl.dropboxusercontent.com/u/37819653/SH_6_VECTOR_SELECT.jpg
The screenshots are taken from the Field Manual of the PC-100 B, and the vital clue came from RBCONVERT.ZIP (File: CONVERT-A-B
Next thing is the wrong sector interleave (1:1) instead of the following (sector count from 0 to 9):
LOG. => PHYS 0, 2, 4, 6, 8, 1, 3, 5, 7, 9
PHYS. => LOG. 0, 5, 1, 6, 2, 7, 3, 8, 4, 9
This is valid for both CP/M and MS-DOS; only for tracks >= 2; counted from track 0.Please advise what to do.
The current code base is increasingly difficult to understand.
Help is appreciated.