====== Late May work ====== **2024-05-26** ===== instsect ===== Fix: [[https://hg.pushbx.org/ecm/instsect/rev/ccf98363874a|A nonblank after a blank was accepted]] if it occurred in the last byte of a field (base name or extension). I noticed this while checking that instsect and lDebug both can cope with DR-DOS corrupting DI on int 25h/26h, which I previously [[https://github.com/FDOS/kernel/pull/159|had to fix in FreeDOS SYS]]. (They can.) ===== lDebug ===== * [[https://hg.pushbx.org/ecm/ldebug/rev/1db3b165f352|Reserve only 256 Bytes]] (or 512 Bytes with command line) of stack below the BPB, to allow loading a full 29 KiB file to 00700h with DRDOS protocol * [[https://hg.pushbx.org/ecm/ldebug/rev/b36cd27f8433|Add load setting DRDOS]], same as IBMDOS but ''maxpara=-1'' * doc: [[https://hg.pushbx.org/ecm/ldebug/rev/d4376c4b1da0|Document BOOTUNITFLxx variables]] * Add ELD datetime stamp to ELDs and XLDs optionally, for eldcomp to check they were built in the same minute ==== In detail: ELD datetime stamps ==== The clean way to add an ELD datetime stamp would have been to extend the extended ELD header with a field pointing into the header area, holding a string. However, it is difficult to get at the header for an ELD to load from the eldcomp ELD which injects commands into the debugger. In the worst case this would have required modification of the ELD loader in the debugger proper. A slightly less bad solution would be to recreate the relevant parts of the ELD loader in eldcomp. To avoid these headaches, the string proper [[https://hg.pushbx.org/ecm/ldebug/rev/e5100529a74f|moved into the data area]] of the ELD. To be precise, it must occur as the very first data in the data area. eldcomp [[https://hg.pushbx.org/ecm/ldebug/rev/f92fb2712c38|uses a heuristic to detect the string]]. This can either turn up a valid minute-granular time or the empty string. If the result of the heuristic doesn't match for the ELD and XLD, eldcomp will emit a message noting the conflict [[https://hg.pushbx.org/ecm/ldebug/rev/c394688ff6aa|three times]]. The header extension was still added anyway, but it takes into account the data start now, much like the help string and unlike the description line. The string proper is an ASCIZ string followed by another NUL byte, for future extension. The stamp is not included by default. It can be enabled in the eld/ovr.sh file or by passing a variable to eld/makone.sh The stamp uses NASM's UTC date and time stamps. ===== lDOS boot ===== * [[https://hg.pushbx.org/ecm/ldosboot/rev/428ce9f88237|Add define _LOAD_STACK]] to allow lowering the stack size to 256 Bytes (for DR-DOS), down from 512 Bytes * [[https://hg.pushbx.org/ecm/ldosboot/rev/e1a0ad4a4009|Pick instsect change]] to testpl * Add _COMPAT_DR sets to [[https://hg.pushbx.org/ecm/ldosboot/rev/7b6c811baf1c|boot]] and [[https://hg.pushbx.org/ecm/ldosboot/rev/079021d38aef|boot32]] * Add _LOAD_CHECK_MAX_SIZE ([[https://hg.pushbx.org/ecm/ldosboot/rev/160e614990da|boot]], [[https://hg.pushbx.org/ecm/ldosboot/rev/4cced3d9fd36|boot32]]) to check byte-granular file size in conjunction with _MEMORY_CONTINUE The DR-DOS and check maximum size options for boot.asm require to disable several options as usual. For boot32.asm some options need to be disabled, but none of those useful for DR-DOS load. The size check occurs when FSIBOOT4 calls into the first stage to allow it to copy the directory entry if it so desires. That is a misuse of the FSIBOOT4 protocol but it works just fine. {{tag>instsect ldebug eld ldosboot drdos}} ~~DISCUSSION~~