Replies: 2 comments 2 replies
-
Running DOS inside ELKS is a huge undertaking, while 'elksboot' - a tiny program that just boots ELKS from DOS - is relatively simple. It would also be straightforward to write a program to boot DOS (or any other OS) from ELKS. So elksboot is not really similar to running DOS inside ELKS, although it accomplishes almost the same thing with much less effort. If the BIOS supports a fast-boot option, then switching between the two might not have to go through the typically slow initial memory test. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
The system calls are differently executed so in theory it should be possible to have a DOS emulator or sideload DOS. OK, I know that is not simple! For example I do not know how ELKS and DOS attach to the interrupt vector table of the BIOS. So there is at least this problem.
Still we had this elksboot application, so somebody did something similar.
So there are two possibilities in general:
Allocate Memory Block (Function 48h)
that should translate to ELKS memory allocationIn the sideloading we could for example create a RAM drive or write DOS (IO.SYS, MSDOS.SYS) into memory and then maybe simply handle all the control to this part of the memory, which now creates a problem to safely return back to ELKS. How is DOS going to access a filesystem? One way is to boot ELKS from floppy and just leave DOS thinking it is booting from HDD. This will require the least effort when creating a proof of concept. On the HDD there will be everything related to DOS. DOS will take control of the console and if miracles happen it will feel like DOS and one will be able to execute applications. Another way could be executing DOS and chaining an executable after it. On exit one should return to ELKS.
Memory should not be such a huge problem. DOS itself is small. ELKS can be set to reduce its memory consumption. There should be 300 KBs left for example on a 640 KBs system which is still enough to run things!
Beta Was this translation helpful? Give feedback.
All reactions