diff --git a/source/Interrupt List/INT 21 DOS Function Calls/INT 2130 DOS 2 GET DOS VERSION.txt b/source/Interrupt List/INT 21 DOS Function Calls/INT 2130 DOS 2 GET DOS VERSION.txt index 83048edca..c243766b0 100644 --- a/source/Interrupt List/INT 21 DOS Function Calls/INT 2130 DOS 2 GET DOS VERSION.txt +++ b/source/Interrupt List/INT 21 DOS Function Calls/INT 2130 DOS 2 GET DOS VERSION.txt @@ -116,6 +116,9 @@ Notes: the OS/2 v1.x Compatibility Box returns major version 0Ah (10) MS-DOS v4.01 command.com oddity, the bundled shell may display these as v5.27 or v5.39 instead). The lDOS kernel recreates most MS-DOS v5 features and some MS-DOS v7.00 ones. + it is said that the major version is returned in AL because it was + expected that callers commonly would want to check only the major + version, which is 1 byte shorter with CMP AL,imm than CMP AH,imm BUGS: FreeDOS sources note that "32RTM won't like non-zero values" in CX SeeAlso: AX=3000h/BX=3000h,AX=3306h"DOS",AX=4452h,AH=87h,INT 15/AX=4900h SeeAlso: AH=20h"S/DOS",INT 2F/AX=122Fh,INT 2F/AX=4010h,INT 2F/AX=4A33h diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D10 lDOS TSRs GET COMPATIBLE VERSION.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D10 lDOS TSRs GET COMPATIBLE VERSION.txt new file mode 100644 index 000000000..2a1e7c4ee --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D10 lDOS TSRs GET COMPATIBLE VERSION.txt @@ -0,0 +1,12 @@ +-------------------------------------------------------------------------------- + Unique ID: 2D--10 + Category: U resident utilities + Flag: n/a +-------------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET COMPATIBLE VERSION + AH = AMIS multiplex number + AL = 10h +Return: AL = FFh if supported + CX = compatible version number (binary, major in CH minor in CL) +SeeAlso: AL=00h diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D11 lDOS kernel CHECK ID.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D11 lDOS kernel CHECK ID.txt new file mode 100644 index 000000000..a93ede8c3 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D11 lDOS kernel CHECK ID.txt @@ -0,0 +1,40 @@ +-------------------------------------------------------------------------------- + Unique ID: 2D--11 + Category: D DOS kernel + Flag: n/a +-------------------------------------------------------------------------------- + +INT 2D - lDOS kernel - CHECK ID + AH = AMIS multiplex number for lDOS kernel (usually 00h) + AL = 11h + DX:SI -> ID structure, + WORD 00h: reserved, zero + WORD 02h: ID sequential number + BYTE 04h: string length + N BYTEs 05h: ID string (no terminator) +Return: AL = 00h if function not supported + AL >= F0h if ID accepted + (currently AL = F0h if accepted) + BX = CX = DX = reserved, 0 for now + otherwise ID rejected + (currently AL = E0h if ID string not found) + (currently AL = E1h if sequential is below accepted) + (currently AL = E2h if sequential is above accepted) + BX = CX = DX = reserved, 0 for now + destroys AL, BX, CX, DX, SI, DI +Notes: the following IDs are recognised in the current kernel tables: + sharer, command, format, ansi, append, assign, attrib, + backup, chkdsk, command, comp, debug, diskcomp, + diskcopy, display, driver.sys, edlin, exe2bin, + fastopen, fdisk, filesys, find, graftabl, graphics, + ifsfunc, join, keyb, label, mem, mode, more, nlsfunc, + print, printer, recover, replace, restore, sort, subst, + tree, vdisk, xcopy + all of the above IDs currently accept sequentials 0000h to 00FFh + the idea is to reject certain sequentials in the future if + incompatible changes are made to the kernel, eg SFT layout. + the kernel tables are intentionally not discoverable on the + multiplexer interface, allowing them to be changed freely. + the idea of marking certain compatibility levels using + sequential numbers goes back to lRxDOS plans. +SeeAlso: AL=00h,AL=10h,INT 21/AH=30h,INT 21/AX=3306h"DOS" diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D20 lDOS TSRs GET CTRL0.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D20 lDOS TSRs GET CTRL0.txt new file mode 100644 index 000000000..919121192 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D20 lDOS TSRs GET CTRL0.txt @@ -0,0 +1,57 @@ +-------------------------------------------------------------------------------- + Unique ID: 2D--20 + Category: U resident utilities + Flag: n/a +-------------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET CTRL0 + AH = AMIS multiplex number + AL = 20h +Return: AL = size of returned ctrl0 + DX:BX -> control data +Notes: ctrl0 has different uses among the TSRs. + TSR example: ctrl0 is 1 byte + no-op, bits 6 and 7 can be toggled from command line + RxANSI: ctrl0 is 1 byte + bit 7: enable processing ANSI sequences + bit 6: enable processing LESS sequences, cleared by + this call if built without LESS support + bit 5: (internal) last character was a digit + bit 0 to 4: unused + lClock: ctrl0 is 1 byte + bit 7: enable writing clock in INT 1C handler + bits 0 to 6: unsupported, cleared by this call + SEEKEXT: ctrl0 is 1 byte + bit 7: state short (handle INT 21/AH=42h) + bit 6: state long (handle INT 21/AX=7142h) + bit 5: state info (handle INT 21/AX=71A6h) + bits 0 to 4: unsupported, cleared by this call + KEEPH0OK: ctrl0 is 4 words + WORD 00h: AMIS interrupt list offset + WORD 02h: AMIS interrupt list length(?) + WORD 04h: "heapfree_offset", offset of first + free block? >= FFFCh if none free? + WORD 06h: placeholder size??? always 0? + FDAPM IDLEDPMS: ctrl0 is 7 bytes + BYTE 00h: enable/disable in bit 7, others unsupported + and cleared by this call. if this call is + run with bit 7 clear, it wakes the screen + WORD 01h: ".count": count of idle ticks + WORD 03h: ".limit": ticks until screen is switched off, + initialised from command line times 1092 + BYTE 05h: "idle": 1 if screen is already off + BYTE 07h: "what": 1 to sleep, 0 to wake up + EIDL: ctrl0 is 1 byte + bit 7: state + bits 0 to 6: unsupported, not cleared + INTERCEP/INTERC3: ctrl0 is 1 byte + bit 7: state of INTERCEP, enable recording + bit 6: record AMIS calls + bits 0 to 5: unsupported, cleared by this call + D2FCBFIX: this call is not supported + SRDISK: ctrl0 is 1 DWORD, 16:16 far pointer -> first driver + FDAPM: this call is not supported + FreeDOS share: this call is not supported + lDebug: this call is not supported + Loader: this call is not supported + lDOS kernel: this call is not supported diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D21 lDOS TSRs GET CTRL1.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D21 lDOS TSRs GET CTRL1.txt new file mode 100644 index 000000000..29ac6b913 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D21 lDOS TSRs GET CTRL1.txt @@ -0,0 +1,33 @@ +-------------------------------------------------------------------------------- + Unique ID: 2D--21 + Category: U resident utilities + Flag: n/a +-------------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET CTRL1 + AH = AMIS multiplex number + AL = 21h +Return: AL = size of returned ctrl1 + DX:BX -> control data +Notes: ctrl1 has different uses among the TSRs. + lClock: ctrl1 is 1 DWORD, 16:16 far pointer -> memory to write + FreeDOS share: ctrl1 is 3 bytes + WORD 00h: ".offset", in DOSDATA -> share_installed flag + BYTE 02h: ".status", = 1 if indeterminate, = 3 if patch + of kernel not needed, 2 = patch needed + D2FCBFIX: ctrl1 is 1 DWORD, + 16:16 far pointer -> where to undo patch (in dosemu2 + ROM-BIOS segment F000h). installation patches in an + immediate far jump at this point. + TSR example: this call is not supported + RxANSI: this call is not supported + SEEKEXT: this call is not supported + KEEPH0OK: this call is not supported + FDAPM IDLEDPMS: this call is not supported + EIDL: this call is not supported + INTERCEP/INTERC3: this call is not supported + SRDISK: this call is not supported + FDAPM: this call is not supported + lDebug: this call is not supported + Loader: this call is not supported + lDOS kernel: this call is not supported diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D22 lDOS TSRs GET CTRL2.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D22 lDOS TSRs GET CTRL2.txt new file mode 100644 index 000000000..fbc18c018 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D22 lDOS TSRs GET CTRL2.txt @@ -0,0 +1,36 @@ +-------------------------------------------------------------------------------- + Unique ID: 2D--22 + Category: U resident utilities + Flag: n/a +-------------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET CTRL2 + AH = AMIS multiplex number + AL = 22h +Return: AL = size of returned ctrl2 + DX:BX -> control data +Notes: ctrl2 has different uses among the TSRs. + FreeDOS share: ctrl2 is 4 WORDs + WORD 00h: file_table_size + WORD 02h: file_table_free + WORD 04h: lock_table_size + WORD 06h: lock_table_free + older revisions of FreeDOS share may return AL = FFh, + BX = file table size + CX = file table free + SI = lock table size + DX = lock table free + TSR example: this call is not supported + RxANSI: this call is not supported + lClock: this call is not supported + SEEKEXT: this call is not supported + KEEPH0OK: this call is not supported + FDAPM IDLEDPMS: this call is not supported + EIDL: this call is not supported + INTERCEP/INTERC3: this call is not supported + D2FCBFIX: this call is not supported + SRDISK: this call is not supported + FDAPM: this call is not supported + lDebug: this call is not supported + Loader: this call is not supported + lDOS kernel: this call is not supported diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D30 lDOS IDLEDPMS INDICATE NOT IDLE.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D30 lDOS IDLEDPMS INDICATE NOT IDLE.txt new file mode 100644 index 000000000..09e9b0534 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D30 lDOS IDLEDPMS INDICATE NOT IDLE.txt @@ -0,0 +1,17 @@ +-------------------------------------------------------------------------------- + Unique ID: 2D--30 + Category: U resident utilities + Flag: n/a +-------------------------------------------------------------------------------- + +INT 2D - lDOS IDLEDPMS - INDICATE NOT IDLE + AH = AMIS multiplex number for IDLEDPMS + AL = 30h +Return: AL = FFh to indicate suppported, + screen enabled if it was idle, and idle counter reset + AL != FFh if not supported +Notes: the lDOS TSR version of IDLEDPMS is part of a fork of the + FreeDOS power savings utility, FDAPM. IDLEDPMS blanks the + screen after a certain timeout without INT 09 or INT 74 + being called (IRQs for keyboard input and PS/2 mouse + input respectively).