joeldipops / gbz80-pseudoOps

Set of rgbasm macros and constants to facilitate readability for modern programmers
MIT License
9 stars 1 forks source link

ldAny not actually selecting ldh when appropriate. assembler just does this automatically. #25

Closed joeldipops closed 5 years ago

joeldipops commented 5 years ago

This has become quite a mess and I think I've hit a dead-end.

If you try to do a IF (Param\@ >= $ff00) on a label, it will complain about it either being a non-constant, or not defined. If I could IF DEF({Param\@}), that would probably get me out of trouble, but that of course does not work.

At this point, it does seem best to abandon this ldh

joeldipops commented 5 years ago

After trying a heap of different things, I couldn't find a viable way of checking whether an address was > $ff00 that also wouldn't break the assembly. I'll leave that to rednex.

Taking a different approach, which also lets ldh be used for labels (won't happen automatically), I've implemented LDH_TOKEN addresses where # can be prepended to an indirect address/symbol to so that a pseudo-op will internally use ldh instead of ld to load to or from that address.