pcdosretro
Experienced Member
There are a few questions that even after working on DOS and seeing all of the source code I was unable to find an answer for:
2.0+ Why was INT 21h/RETF (CDh 21h CBh) added to the PSP at 50h ? Described as "portable method of system call" in the DOS source code (inc\pdb.inc) - portable to what ? Some people speculate it was intended for DOS/Xenix portability.
2.0+ What was the purpose for the undocumented INT 2Eh COMMAND.COM backdoor which executes a command as if it was entered from the command line and did any software actually use this ?
3.2+ In the floppy disk boot sector validation code why is 69h checked for as a valid first byte ? The DOS source code (bios\msdisk.asm) refers to 69h as a "direct jump" and in later versions also as a "long jump". Of course opcode 69h is IMUL on 80286 and later and undefined on 8086/8088 (likely functioning as an alias for opcode 79h JNS) so the comment makes no sense. The 69h could instead be part of a signature (69h = 'i') and the comment is wrong but since no disk has ever been found which uses this it is unknown why this check was added in DOS 3.2.
3.0+ Why was INT 21h function 62h (get current PSP) added when function 51h already existed ?
4.0+ Why was INT 21h function 6Ah (commit file) added when function 68h already existed ?
2.0+ Why was INT 21h/RETF (CDh 21h CBh) added to the PSP at 50h ? Described as "portable method of system call" in the DOS source code (inc\pdb.inc) - portable to what ? Some people speculate it was intended for DOS/Xenix portability.
2.0+ What was the purpose for the undocumented INT 2Eh COMMAND.COM backdoor which executes a command as if it was entered from the command line and did any software actually use this ?
3.2+ In the floppy disk boot sector validation code why is 69h checked for as a valid first byte ? The DOS source code (bios\msdisk.asm) refers to 69h as a "direct jump" and in later versions also as a "long jump". Of course opcode 69h is IMUL on 80286 and later and undefined on 8086/8088 (likely functioning as an alias for opcode 79h JNS) so the comment makes no sense. The 69h could instead be part of a signature (69h = 'i') and the comment is wrong but since no disk has ever been found which uses this it is unknown why this check was added in DOS 3.2.
3.0+ Why was INT 21h function 62h (get current PSP) added when function 51h already existed ?
4.0+ Why was INT 21h function 6Ah (commit file) added when function 68h already existed ?