diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 2149 DOS 2 FREE MEMORY.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 2149 DOS 2 FREE MEMORY.txt index 3b5fb83d..64366253 100644 --- a/source/Interrupt List/INT 21 DOS Function Calls/INT 2149 DOS 2 FREE MEMORY.txt +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 2149 DOS 2 FREE MEMORY.txt @@ -17,9 +17,9 @@ Notes: apparently never returns an error 07h, despite official docs; DOS 2.1+ DR-DOS v7 does coalesce subsequent free blocks when a block is freed the code for this function is identical in DOS 2.1-6.0 except for calls to start/end a critical section in DOS 3.0+ - because this call need not coalesce free blocks, a very similar - effect can be achieved by addressing the MCB (in the segment - that is one below the memory block segment) and zeroing its owner. + because this call need not coalesce free blocks, a very similar effect + can be achieved by addressing the MCB (in the segment that is one + below the memory block segment) and zeroing its owner (see #01628). this allows freeing memory if using DOS is not desired. SeeAlso: AH=48h,AH=4Ah diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 214B DOS 2 EXEC LOAD ANDOR EXECUTE PROGRAM.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 214B DOS 2 EXEC LOAD ANDOR EXECUTE PROGRAM.txt index f17e251e..cf1a0505 100644 --- a/source/Interrupt List/INT 21 DOS Function Calls/INT 214B DOS 2 EXEC LOAD ANDOR EXECUTE PROGRAM.txt +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 214B DOS 2 EXEC LOAD ANDOR EXECUTE PROGRAM.txt @@ -12,7 +12,7 @@ INT 21 - DOS 2+ - "EXEC" - LOAD AND/OR EXECUTE PROGRAM 03h load overlay (see #01591) 04h load and execute in background (European MS-DOS 4.0 only) "Exec & Go" (see also AH=80h) - DS:DX -> ASCIZ program name (must include extension) + DS:DX -> ASCIZ program filename (must include extension) ES:BX -> parameter block (see #01590,#01591,#01592) CX = mode (subfunction 04h only) 0000h child placed in zombie mode after termination @@ -152,7 +152,7 @@ BUGS: DOS 2.00 assumes that DS points at the current program's PSP top word of the caller's stack if the loaded module terminates with INT 21/AH=4Ch in some versions of MS-DOS, including v5.00. SeeAlso: AX=4B05h,AH=4Ch,AH=4Dh,AH=64h/BX=0025h,AH=8Ah,INT 2E,INT 60/DI=0604h -SeeAlso: AX=4B80h"FreeDOS" +SeeAlso: AX=4B80h"FreeDOS",AX=714Bh"RxDOS" Format of EXEC parameter block for AL=00h,01h,04h: Offset Size Description (Table 01590) diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 211 GET OR SET MEMORY ALLOCATION STRATEGY.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 211 GET OR SET MEMORY ALLOCATION STRATEGY.txt index f010339a..2042abea 100644 --- a/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 211 GET OR SET MEMORY ALLOCATION STRATEGY.txt +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 211 GET OR SET MEMORY ALLOCATION STRATEGY.txt @@ -11,7 +11,7 @@ INT 21 - DOS 2.11+ - GET OR SET MEMORY ALLOCATION STRATEGY Return: AX = current strategy (see #01679) 01h set allocation strategy BL = new allocation strategy (see #01679) - BH = 00h (DOS 5+) + BH = 00h (DOS 5+), new extended strategy (lDOS) Return: CF clear if successful CF set on error AX = error code (01h) (see #01680) @@ -25,7 +25,7 @@ Notes: the Set subfunction accepts any value in BL for DOS 3.x and 4.x; before terminating Toshiba MS-DOS v2.11 supports subfunctions 00h and 01h, as does the TI Professional MS-DOS v2.13 - DR DOS 3.41 reportedly reverses subfunctions 00h and 01h +BUGS: DR DOS 3.41 reportedly reverses subfunctions 00h and 01h SeeAlso: AH=48h,AH=49h,AH=4Ah,INT 2F/AX=4310h"XMS",INT 67/AH=3Fh SeeAlso: AX=4B80h"FreeDOS" @@ -34,7 +34,7 @@ Values for DOS memory allocation strategy: 00h all memory first fit 01h all memory best fit 02h all memory last fit ----DOS 5+ --- +--- DOS 5+ --- 40h upper memory first fit 41h upper memory best fit 42h upper memory last fit diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 5 GET OR SET UMB LINK STATE.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 5 GET OR SET UMB LINK STATE.txt index 8304f9bb..3ae8f27d 100644 --- a/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 5 GET OR SET UMB LINK STATE.txt +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 2158 DOS 5 GET OR SET UMB LINK STATE.txt @@ -33,4 +33,11 @@ Notes: a program which changes the UMB link state should restore it before DOS keeps track of the UMB link state in an internal variable too if the extended allocation strategy mask 100h is set (see #01679 at AH=58h), lDOS can use UMBs even with the UMB link disabled. +BUGS: FreeDOS only allocates UMBs once during fdconfig.sys processing, + after the first device driver that provides at least one UMB on + the XMS interface (see INT 2F/AX=4310h). (FreeDOS kernel issue + #250.) reportedly, MS-DOS will allocate any additional UMBs + after subsequent drivers were loaded. this is also true of lDOS. + FreeDOS tries to allocate the first UMB without checking that it + is large enough with DOSDATA=UMB (FreeDOS kernel issue #203). SeeAlso: #01687,#02766 at INT 2F/AX=4310h,AX=4B80h"FreeDOS" diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 21714B RxDOS LONG FILENAME EXEC.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 21714B RxDOS LONG FILENAME EXEC.txt new file mode 100644 index 00000000..57abe35d --- /dev/null +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 21714B RxDOS LONG FILENAME EXEC.txt @@ -0,0 +1,22 @@ +---------------------------------------------------------------------------- + Unique ID: 21714B + Category: D DOS kernel + Flag: n/a +---------------------------------------------------------------------------- + +INT 21 - RxDOS - LONG FILENAME - "EXEC" - LOAD AND/OR EXECUTE PROGRAM + AX = 714Bh + CL = type of load + 00h load and execute + 01h load but do not execute + 03h load overlay (see #01591) + DS:DX -> ASCIZ program long filename (must include extension) + ES:BX -> parameter block (see #01590,#01591,#01592) +Return: as for AH=4Bh + CF unchanged and AL = 00h if no LFNs are supported at all + possibly other error (eg 01h) with LFN servers other than RxDOS's +SeeAlso: AH=4Bh,AX=335Eh,AX=3360h +Notes: supported by LFN builds of RxDOS (such as v7.1.5) + should be called with CF set as function 71h subfunctions may + return with DOS v1 style error return (AL = 00h, CF unchanged). + if caller sets CF this results in an AX = 7100h, CF set return. diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 2171A6 Windows95 LONG FILENAME GET FILE INFO BY HANDLE.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 2171A6 Windows95 LONG FILENAME GET FILE INFO BY HANDLE.txt index 65ee6593..192c46ca 100644 --- a/source/Interrupt List/INT 21 DOS Function Calls/INT 2171A6 Windows95 LONG FILENAME GET FILE INFO BY HANDLE.txt +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 2171A6 Windows95 LONG FILENAME GET FILE INFO BY HANDLE.txt @@ -14,7 +14,7 @@ Return: CF clear if successful CF set on error AX = error code 7100h if function not supported -SeeAlso: AX=71A7h/BL=00h +SeeAlso: AX=71A7h/BL=00h,INT 2F/AX=11A6h"dosemu2" Notes: supported by FAT+ builds of Enhanced DR-DOS on local FAT FS drives; only SFNs are actually used but the DOS wants to be able to return 64-bit file sizes (as FAT+ allows 38-bit file sizes on disk).