====== Early October work on ident86, lDebug ====== **2026-10-11** ===== ident86 ===== * [[https://hg.pushbx.org/ecm/ident86/rev/e696139dacc3|Use IBL2 sequential 1 format]], only read the label itself rather than the colon or keyword that is matched before or after it. (No corresponding revision of insbound.py was created.) * [[https://hg.pushbx.org/ecm/ident86/rev/6ed6745f1740|Use IBL2 sequential 2 format]], expand local labels to generate their corresponding global labels. * [[https://hg.pushbx.org/ecm/ident86/rev/480012d3ac4a|Simplify getlabelstring]], it can be always used on a tuple object rather than the re.Match object, so that the type dispatch is no longer needed. * [[https://hg.pushbx.org/ecm/ident86/rev/3590030fcdf3|Repeat on a debugger error detected in disassemble function]], rather than raising an exception. This sometimes allows to handle errors that may occur during data entry or disassembly or dump. * In insbound.py [[https://hg.pushbx.org/ecm/ident86/rev/8ef7667f8908|generate IBL2 sequential 2 file]], with new match to only match label name (not colons or keywords around the label) and to expand local labels. This points from the IBL entry to the last base label, not necessarily the last label. * [[https://hg.pushbx.org/ecm/ident86/rev/ddbc74e6dd29|Fix some indentation in the getlocallabelstrings function]]. (Hint: Same needed in insbound.py?) * In matchsize [[https://hg.pushbx.org/ecm/ident86/rev/b83ff5829aed|handle simple TIMES directive]] with a DB, DW, or DD directive and a sequence of numbers or simple operators before the data directive. * [[https://hg.pushbx.org/ecm/ident86/rev/e1ff9988e6dd|Set the newamount and newoffset_line variables for a matchrep]] (machine code dump with a repetition specified). * [[https://hg.pushbx.org/ecm/ident86/rev/c42742e22a15|Keep track of dynamic labels in ident86.py]]. These are only used for displaying the label found for -%%%%-show-diff, and a dynamic label is only written separately if it doesn't match the static label already displayed. Dynamic labels are better in that they are easier to associate to the source when considering the resulting labels. They are useless for the original findsourceline purpose, which was to provide coordinates for editsource, so that use continues to operate on static labels. (NB, the IBL2 sequential 2 format doesn't need to change. A dynamic base label that takes effect can never occur before a static base label, because then the static label would override the dynamic label. Therefore, both static and dynamic labels can be evaluated just by searching starting at the last static base label, which IBL2 sequential 2 format records.) **ETA**: * Pick earlier change [[https://hg.pushbx.org/ecm/ident86/rev/ecb1090eec37|to fix indentation]] in insbound.py's copy of getlocallabelstrings. ===== lDebug (experimental) ===== * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/4c2bd2a64ba5|Update license.txt attribution years]]. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/17e07b0333e3|Add SYMBOL.FAR. or SF. symbol prefix]] to return a pointer type expression (always Real/Virtual 86 Mode far address). Also relax the SYMBOL.OFFSET. matching so a symbol starting with eg "BASE." can be used. This changes the issymbol? function to allow returning pointer type expression terms. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/322b358e64a1|Return RIxxP variable as pointer type by default]], so specifying an explicit PTR keyword for it is no longer needed. This changes the isvariable? function to allow returning pointer type expression terms. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/17955c51a185|Document the RIxxP type change]]. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/f6af02a5b243|Mark DEVICEHEADER, DPRA, and PRA variables as defaulting to pointer type]]. This changes the isvariable structure to add a new flag, which happens to be located so that the decoded variable length has bit 7 set, which is how isvariable? now returns pointer type. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/dce3280ab307|Update manual on new pointer type variables]]. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/9e3254bf6920|Add a manual section exprtypes]] on the pointer type of expressions. * [[https://hg.pushbx.org/ecm/ldebug.exp/rev/1ea920c07507|Add dynamiclabel mmacro to emit a %note directive]] for dynamic labels. {{tag>ident86 ldebug.exp ldebug}} ~~DISCUSSION~~