When assembling NitorOS-9 Level2 configured for a DAT with 4K blocks, pmap.asm is giving the error:
~~/Developer/6809_SBC/nitros9/level2/cmds/pmap.asm(104) : ERROR : Byte overflow
~~/Developer/6809_SBC/nitros9/level2/cmds/pmap.asm:00104 leax <Head1,pcr
The force direct mode seems to work on 8K block DAT, but the header string for the 4K block DAT is longer, so the start of it is out of range here. Removing the force direct ("<") allows it to assemble correctly. I think this was introduced in the last set of changes to this file "Rodney's fixes".
Removing the forced direct here still generates the same binary code for coco3 (with 8K block DAT) when assembled with lwtools/lwasm, so I do not understand why the change was needed.
Anonymous
The "force direct" change was probably added to save a byte here and there and is not strictly necessary. I guess the same binary code is generated for CoCo3 because the assembler silently optimizes it to direct mode (see the LWASM forwardrefmax pragma).
Why is the header string longer for the 4K block DAT?
Twice as many blocks to show need a longer heading/header string, I guess?
Last edit: epooch 2022-04-15
Ah, the printed header string. I get it. Is it only line 104 that needs fixing?
Yes, it will assemble after just that line is fixed.
Fixed in the repo. Thanks for the report!