Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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

Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Original file line number Diff line number Diff line change
@@ -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.
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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"
Original file line number Diff line number Diff line change
@@ -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"