Spice86 icon indicating copy to clipboard operation
Spice86 copied to clipboard

Feature request: Complete DOS emulation (DOS Memory structures, INT21H, INT20H, INT2FH, INT24H, INT25H, INT26H, ..., command processor, ...)

Open maximilien-noal opened this issue 1 year ago • 7 comments

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.

maximilien-noal avatar May 05 '23 21:05 maximilien-noal

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/

maximilien-noal avatar May 05 '23 21:05 maximilien-noal

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

maximilien-noal avatar May 06 '23 09:05 maximilien-noal

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)

maximilien-noal avatar May 28 '23 09:05 maximilien-noal

INT25H is also called by some games (Lemmings 2 for example)

maximilien-noal avatar Jun 03 '23 12:06 maximilien-noal

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.

maximilien-noal avatar Jun 18 '23 18:06 maximilien-noal

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.

maximilien-noal avatar Jun 26 '23 06:06 maximilien-noal

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

maximilien-noal avatar Nov 28 '23 10:11 maximilien-noal