2026-08-09
Most of the work this week was on converting Eric Auer's LBAcache to provide and use an Alternate Multiplex Interrupt Specification (AMIS) multiplexer. (The use is in uncache, the transient part that works with previously installed instances rather than installing a new one.) The advantages are as follows:
The disadvantages are:
I found that testing LBAcache works best with buffers=1 in ldos.ini, or by adding append buffers=1 to the kernel command line. That way, DOS cannot buffer as much as it would usually, hence more reads go to LBAcache's handler.
The patldos.asm assembly language program's matching of progress type keywords was severely broken. The changeset message states:
patldos.asm: fix match of PRO mode keywords
Selecting "app" would indicate an error stating that "pp" was an invalid progress mode. The cause of this error was the stray
mov dx,si(si is CHG after the call to comparecaps).Next, the description would be matched unintentionally. This was due to not incrementing past it for the first .loopinnerpro iteration. Solved by moving
inc ditwice to that label.Subsequent mode keywords wouldn't be matched because the code at .nextouterpro popped di once rather than twice.
Finally, .gotpro doesn't use the stacked di pointers any longer so discard them off the stack.
Add new bugs recently found:
perl -i -pe 's/[ \t]+([\r\n]*)$/$1/' *.* tools/*.*[absolute $] section, so its alignment need not be emitted into the binary. Identicalised.ETA:
byte [teLRU] equal to 255 as an unused table entry.rep stosdETA:
The veritable bugs in the old revision of Eric's LBAcache, mostly copying the entries from above that list the fixes:
Bugs that I introduced and later fixed during my work on LBAcache:
byte [teLRU] equal to 255 as an unused table entry. Introduced in the all-ones as uninitialised patch.