PorkyPiggy
Member
- Joined
- Jan 11, 2024
- Messages
- 46
Hello, first time poster here.
86-DOS 0.11 IBM PC Port
I have ported 86-DOS 0.11 to the IBM PC! You can now boot it on DOSBox/86Box/Bochs/VirtualBox and... your modern computers!!!
But... I need your help to improve the port. The current situation is everything works, but performance is horrible. Several things contribute to why this crap runs unbearably slow:
86-DOS 0.11 Source Reconstruction
I've done reconstructing the source code of COMMAND.COM, SYS.COM and HEX2BIN.COM. The disassemblies compile back the the exact same binaries and can be assembled using this IBM PC port of 86-DOS 0.11 (though you will experience the excruciatingly slow disk I/O). They can be found in the ZIP archive attached.
I also plan on doing a full disassembly of the OS, but since I am not the best at 8086 assembly, I feel like I need some help. My goal is to achieve fully-readable binary-exact disassembly of all system components. Yes, I've done some apps already but they're just the low hanging fruits, the kernel, assembler, source code translator and line editor are all waiting to be done. My next target is the kernel, which without a doubt is a tough one. If you're interested and have the relevant skills, please lend a hand.
Lastly, I'm not sure if it is appropriate to ask here (I can't send DMs because I'm new), but Lucas Brooks and AltairMan/Rich Cini from BetaArchive have done some quality disassembly of 86-DOS 1.14 before; I reached out to both of them about this project, but sadly no one responded. I think @RichCini is still active here, so may I ask you to join forces with me to 'open source' the earliest version of DOS?
Sincerely,
Pig
86-DOS 0.11 IBM PC Port
I have ported 86-DOS 0.11 to the IBM PC! You can now boot it on DOSBox/86Box/Bochs/VirtualBox and... your modern computers!!!
But... I need your help to improve the port. The current situation is everything works, but performance is horrible. Several things contribute to why this crap runs unbearably slow:
- Lack of proper I/O buffering. 86-DOS 0.x only supported 128-byte sectors, I worked around it by simulating 128-byte physical sectors in the DOS BIOS. The correct way of handling physical sectors >128 bytes is to use I/O buffering, but I am too lazy and (admittedly) I do not have the skills for that. I have done some experimental buffered read support before I gave up, but that's about it. I need somebody to implement proper I/O buffering.
- Constant stack switching. Much like 86-DOS 1.x, this thing's stack is not big enough for the PC BIOS calls. I have written about the problem in my 86-DOS 1.14 port writeup before, and my solution to it for 1.14 was to patch the kernel. This time I decided to work around it by switching to an internal stack for every DOS BIOS call, so you get this stack switch latency for every single I/O (like printing a character to the screen). I need someone to figure out a way to safely switch SS:SP without having to mess with interrupts and/or flags (you can take a look at IO.ASM to see what I'm talking about).
- Sh*t code. I have very little (pronounced 'zero') experience with low level DOS programming, so I write very sh*t code. Please help me to improve my code (SYSPC.ASM and parts of IO.ASM).
86-DOS 0.11 Source Reconstruction
I've done reconstructing the source code of COMMAND.COM, SYS.COM and HEX2BIN.COM. The disassemblies compile back the the exact same binaries and can be assembled using this IBM PC port of 86-DOS 0.11 (though you will experience the excruciatingly slow disk I/O). They can be found in the ZIP archive attached.
I also plan on doing a full disassembly of the OS, but since I am not the best at 8086 assembly, I feel like I need some help. My goal is to achieve fully-readable binary-exact disassembly of all system components. Yes, I've done some apps already but they're just the low hanging fruits, the kernel, assembler, source code translator and line editor are all waiting to be done. My next target is the kernel, which without a doubt is a tough one. If you're interested and have the relevant skills, please lend a hand.
Lastly, I'm not sure if it is appropriate to ask here (I can't send DMs because I'm new), but Lucas Brooks and AltairMan/Rich Cini from BetaArchive have done some quality disassembly of 86-DOS 1.14 before; I reached out to both of them about this project, but sadly no one responded. I think @RichCini is still active here, so may I ask you to join forces with me to 'open source' the earliest version of DOS?
Sincerely,
Pig