Table of Contents

Early December work

2024-12-08

Today marks the 100th blog post that I wrote on the HP 95LX. It also is likely to be the last post in December due to the café closing for a few weeks starting tomorrow.

lDebug

The lDebug repo got updated some.

Online help compression

Compressing the online help using heatshrink, non-solid (ie every page on its own), costs about 300 bytes of code and nearly 3 KiB for the depack buffer which now lives in the message segment. However, the total memory use of the debugger as well as the size of the uncompressed executable both shrink by several kibi bytes.

Immediate assembler and dual code segments

Prior to release 9 we have now enabled the immediate assembler feature of the debugger. This is accessible to the user using dot commands, eg . add ax, 26 would add 26h to the AX register and set the arithmetic flags accordingly. Most instructions are supported for this. Those involving CS or IP are implemented using a number of workarounds and "as if" processing to get the expected results.

As a side effect of enabling _IMMASM, the lDebugX (DPMI-enabled) builds now employ the dual code segments. This is bad for performance but allows the code to grow more than before, limited as it was to 64 KiB.

MS-DOS kernel

2024-12-11

ident86

I found that the case of a symlink containing an absolute pathname is already handled correctly by Python when using pathlib's / (slash) operator. If the second operand is an absolute path, then the first operand is not prepended.

fixmem