Menu

#982 __far eZ80

None
open
None
5
2025-07-04
2025-01-24
No

For eZ80, I'd like to introduce a __far that is a superset of the generic address space. This would be different from all other current ports that have __far.
Rationale: The eZ80 has two modes, "Z80 mode" and "ADL mode". In the former, we have a 16-bit address space, and doing 16-bit operations is quite efficient. In ADLmode, we have a 24-bit address space, and we get better support for 24-bit operations, but 16-bit operations are less efficient.
Currently, there are tow free compiler supporting the eZ80: SDCC, which uses Z80 mode, and LLVM, which uses ADL mode.
However, some users might want to combine these: Use a 16-bit address space for code and RAM, but have a few large, rarely accessed tables in Flash beyond the 16-bit space. They would be well-served by a __far that uses individual ADL mode instructions in a program that otherwise uses Z80 mode.

This way, the typical user of a small eZ80-based system (one that only uses the internal 8KB RAM and the internal Flash - often 128 KB these days would be well-served by SDCC, while the users of larger eZ80-based systems (i.e. those with additional external RAM and flash) are well-served by LLVM.

Related

Wiki: NGI0-Commons-SDCC
Wiki: SDCC 4.6.0 Release

Discussion

  • Philipp Klaus Krause

    • assigned_to: Philipp Klaus Krause
    • Group: -->
     

Log in to post a comment.