Spice86
Spice86 copied to clipboard
Feature request: Complete DOS emulation (DOS Memory structures, INT21H, INT20H, INT2FH, INT24H, INT25H, INT26H, ..., command processor, ...)
This is an issue that regroups all issues regarding the emulation of the DOS kernel, DOS memory structures, and DOS services.
Along with the DOS command processor, batch file support, and everything DOS related.
This issue replaces all the previous issues below, which have valuable information in them :
#109 #110 #264 #107 #264
I'll add this DOS SDK: https://github.com/Scalibq/DOS_SDK https://scalibq.wordpress.com/2011/11/23/just-keeping-it-real-old-skool-style/
Two very informative books about DOS:
Undocumented DOS: https://archive.org/details/Undocumented_DOS
MS-DOS Encyclopedia: https://archive.org/details/The_MS-DOS_Encyclopedia_Ray_Duncan
List of all (or nearly all) INT21H services: https://stanislavs.org/helppc/int_21.html
INT21H services important to implement soon, in order to test the future VGA implementation by @JorisVanEijden:
0x01, 0x08, 0x09 and 0x41
Also 0x46 (PoP 2)
INT25H is also called by some games (Lemmings 2 for example)
More resources (especially around InDos flag, critical section flag, DOS Error Codes, ...):
https://github.com/cirosantilli/ralf-brown-interrupt-list/blob/master/inter61b/INTERRUP.F
Ralf's Brown interrupt list in text form
https://www.pcjs.org/documents/books/mspl13/msdos/encyclopedia/figures/ MS-DOS Encyclopedia test programs
http://www.techhelpmanual.com/347-dos_error_codes.html
DOS Error Codes, and DOS Extended Error codes and meanings.
Other DOS implementations besides MS-DOS and FreeDOS:
RX-DOS: https://sourceforge.net/projects/rxdos/
Open PC-DOS (seems like to be from Caldera, but I could not find it. Wine is from them too but uses DOSBox for DOS apps)
Seems like starting with MS-DOS 3.30, the DOS kernel is largely unchanged. Future versions essentially add additional software and LFN support.
More documentation:
https://www.xtof.info/Timing-on-PC-familly-under-DOS.html
http://vitaly_filatov.tripod.com/ng/asm/asm_000.31.html
https://en.wikipedia.org/wiki/Interrupt_descriptor_table
https://en.wikipedia.org/wiki/Interrupt_vector_table