diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D00 AMIS v30 INSTALLATION CHECK.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D00 AMIS v30 INSTALLATION CHECK.txt index 9febcb1f..ad51432f 100644 --- a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D00 AMIS v30 INSTALLATION CHECK.txt +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D00 AMIS v30 INSTALLATION CHECK.txt @@ -58,6 +58,7 @@ Values for AMIS signatures known to be in use: 'ecm ' 'INTERCEP' ecm's fork of INTERC3 (interrupt intercepting tool), no uninstall supported. 'ecm ' 'KEEPHOOK' ecm's tool to keep interrupt hooks available + 'ecm ' 'LBACACHE' ecm's fork of Eric Auer's LBACACHE disk read cache 'ecm ' 'lClock ' ecm's clock display tool 'ecm ' 'lDebug ' ecm's debugger AMIS interface, this is usable in a boot loaded context too. no uninstall supported. diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D02 AMIS v30 UNINSTALL.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D02 AMIS v30 UNINSTALL.txt index 29431735..05a61983 100644 --- a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D02 AMIS v30 UNINSTALL.txt +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D02 AMIS v30 UNINSTALL.txt @@ -31,7 +31,14 @@ Return: AL = status specific return address Notes: this function is not valid unless a program is installed on the specified multiplex number; use INT 2D/AL=00h to check + LBACACHE will try to free its XMS handle if possible, and upon + success will also free a Low Memory Area stack if any was + allocated with the TUNS installation option. It will then set + its running variable to RUNNING_FREED (see AL=23h"lDOS") and + return with code 04h. If the XMS freeing failed then the + running variable is not modified and the multiplexer returns + with code 01h instead. SeeAlso: INT 2D/AL=00h,INT 2D/AL=01h,INT 2D/AL=03h,INT 2D/AL=04h,INT 2D/AL=05h SeeAlso: INT 2D/AL=06h Index: uninstall;Alternate Multiplex Interrupt Specification|uninstall;AMIS - + 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 index 554fa032..2855b507 100644 --- 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 @@ -56,3 +56,6 @@ Notes: ctrl0 has different uses among the TSRs. lDebug: this call is not supported Loader: this call is not supported lDOS kernel: this call is not supported + LBACACHE: ctrl0 is 6 BYTEs + WORD 00h: XMS handle, zero if not currently allocated + DWORD 02h: 16:16 far pointer to XMS handler entrypoint 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 index fb42db1e..96100f31 100644 --- 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 @@ -32,3 +32,8 @@ Notes: ctrl1 has different uses among the TSRs. lDebug: this call is not supported Loader: this call is not supported lDOS kernel: this call is not supported + LBACACHE: ctrl1 is 10 WORDs + 8 WORDs 00h: geometry for units 80h to 87h, + low byte: maximum S-coordinate number (= amount) + high byte: maximum H-coordinate number (amount - 1) + 2 WORDs 10h: geometry for units 00h and 01h 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 index b7e0b748..4684231e 100644 --- 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 @@ -34,3 +34,22 @@ Notes: ctrl2 has different uses among the TSRs. lDebug: this call is not supported Loader: this call is not supported lDOS kernel: this call is not supported + LBACACHE: ctrl2 is 14h, 1Eh, or 20h BYTEs + --- STAT statistics reset by uncache ZERO --- + DWORD 00h: read hits + DWORD 04h: read misses + DWORD 08h: write hits + DWORD 0Ch: write misses + --- debugging hints and uncache INFO and TABLE info --- + (These variables are informational, changing them is not + supported and they should be treated as constants.) + WORD 10h: offset of main cache table (typically ~ 1000h) + BYTE 12h: log2 of cache table entry size (3) + BYTE 13h: log2 of how many sectors per entry (0..4) + --- new TABLE details --- + DWORD 14h: amount of sectors (to be) allocated in XMS + DWORD 18h: amount of table entries, should not be changed + currently because of hidden table size variables + WORD 1Ch: table format sequential (0) + --- bonus table details --- + WORD 1Eh: amount of bonus table entries (after table) diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D23 lDOS TSRs GET CTRL3.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D23 lDOS TSRs GET CTRL3.txt new file mode 100644 index 00000000..61c8c0f7 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D23 lDOS TSRs GET CTRL3.txt @@ -0,0 +1,30 @@ +---------------------------------------------------------------------------- + Unique ID: 2D--23 + Category: U resident utilities + Flag: n/a +---------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET CTRL3 + AH = AMIS multiplex number + AL = 23h +Return: AL = size of returned ctrl3 + DX:BX -> control data +Notes: ctrl3 may have different uses among the TSRs. + LBACACHE: ctrl3 is 4 WORDs + WORD 00h: running variable, low byte use: + 00h RUNNING_INIT (resident not yet installed) + 01h RUNNING_ENABLED (normal operation) + 02h RUNNING_DISA (disabled using DISA command) + 04h RUNNING_SHUTDOWN (disabled by int 13h handler) + 08h RUNNING_FREED (tried to uninstall, XMS freed) + WORD 02h: TSR size, obsolete / currently unused (was used + to indicate minimum size of dead TSR to keep) + WORD 04h: 8 LSBs indicate LBA support for units 80h to 87h, + MSB indicates dosemu detected + WORD 06h: 8 LSBs indicate cache enable for units 80h to 87h +Notes: Before changing the LBACACHE running variable from RUNNING_DISA or + RUNNING_SHUTDOWN to RUNNING_ENABLED, the flush all units function + AL=30h"LBACACHE" should be called to flush the entire cache. This + ensures that no stale data is served on the int 13h interface. + The LBACACHE int 13h handler tests bit 0 of the running variable, + if clear then it immediately chains to its int 13h downlink. diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D24 lDOS TSRs GET CTRL4.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D24 lDOS TSRs GET CTRL4.txt new file mode 100644 index 00000000..51e98584 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D24 lDOS TSRs GET CTRL4.txt @@ -0,0 +1,25 @@ +---------------------------------------------------------------------------- + Unique ID: 2D--24 + Category: U resident utilities + Flag: n/a +---------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET CTRL4 + AH = AMIS multiplex number + AL = 24h +Return: AL = size of returned ctrl4 + DX:BX -> control data +Notes: ctrl4 may have different uses among the TSRs. + LBACACHE: ctrl4 is 4 BYTEs + WORD 00h: "fddstat", + 1/2 enable A:/B: caching + 10h/20h signal A:/B: changed + 100h/200h A:/B: caching allowed mask + BYTE 02h: tune flags, + bit 0 TUNA (fully associative caching) + bit 1 TUNW (allocate on write) + bit 2 TUNS (allocated a Low Memory Area stack) + BYTE 03h: cache temperature, + 0 normal + 1 melt + -1 freeze diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D25 lDOS TSRs GET CTRL5.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D25 lDOS TSRs GET CTRL5.txt new file mode 100644 index 00000000..62c43310 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D25 lDOS TSRs GET CTRL5.txt @@ -0,0 +1,18 @@ +---------------------------------------------------------------------------- + Unique ID: 2D--25 + Category: U resident utilities + Flag: n/a +---------------------------------------------------------------------------- + +INT 2D - lDOS TSRs - GET CTRL5 + AH = AMIS multiplex number + AL = 25h +Return: AL = size of returned ctrl5 + DX:BX -> control data +Notes: ctrl5 may have different uses among the TSRs. + LBACACHE: ctrl5 is 4 DWORDs (only supported if _MEMO_COUNTERS set) + --- known MEMO statistics, reset by uncache ZERO --- + DWORD 00h: point queries + DWORD 04h: point hits + DWORD 08h: memo queries (equals point queries - point hits) + DWORD 0Ch: memo hits diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D30 LBACACHE FLUSH ALL UNITS.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D30 LBACACHE FLUSH ALL UNITS.txt new file mode 100644 index 00000000..08754dd0 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D30 LBACACHE FLUSH ALL UNITS.txt @@ -0,0 +1,17 @@ +---------------------------------------------------------------------------- + Unique ID: 2D--30 + Sort As: 2D--30+03 + Category: c caches/spoolers + Flag: n/a +---------------------------------------------------------------------------- + +INT 2D - LBACACHE - FLUSH ALL UNITS + AH = AMIS multiplex number for LBACACHE + AL = 30h +Return: AL = FFh to indicate suppported + AL != FFh if not supported +Notes: Discards all cached data and initialises the main cache table to + all-1s and the bonus table to all point at the first table entry. + Should be called before enabling an LBACACHE instance lest it uses + stale data, see the running variable in ctrl3 at AL=23h"lDOS". +SeeAlso: AL=31h"LBACACHE" diff --git a/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D31 LBACACHE FLUSH ONE UNIT.txt b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D31 LBACACHE FLUSH ONE UNIT.txt new file mode 100644 index 00000000..3fcf44d0 --- /dev/null +++ b/source/Interrupt List/INT 2D ALTERNATE MULTIPLEX INTERRUPT SPECIFICATION/INT 2D31 LBACACHE FLUSH ONE UNIT.txt @@ -0,0 +1,18 @@ +---------------------------------------------------------------------------- + Unique ID: 2D--31 + Sort As: 2D--31+01 + Category: c caches/spoolers + Flag: n/a +---------------------------------------------------------------------------- + +INT 2D - LBACACHE - FLUSH ONE UNIT + AH = AMIS multiplex number for LBACACHE + AL = 31h + DL = unit number to operate on (0, 1, or 80h to 87h) +Return: AL = FFh to indicate suppported + AL != FFh if not supported +Notes: Discards all cached data for the specified unit and initialises + all its main cache table entries to all-1s. + Currently also resets the entire bonus table (for all units) to + all point at the first main cache table entry. +SeeAlso: AL=30h"LBACACHE"