From: Philipp Klaus Krause <pkk@sp...> - 2011-09-24 08:05:15
-----BEGIN PGP SIGNED MESSAGE-----
There now is a Z180 port of sdcc. It currently lives in a branch, which
can be obtained using
svn co https://sdcc.svn.sourceforge.net/svnroot/sdcc/branches/z180/sdcc
but it will probably make it into trunk and the snapshots in the next
You can use -mz180 to compile for the Z180. Currently, the Z180 port is
mostly identical to the Z80 port. However When compiling using -mz180
the Z180's mlt instruction can be used for 8x8 bit unsigned multiplication.
P.S.: Which features would you like to see next in the Z180 port?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----
From: Dave McGuire <mcguire@ne...> - 2011-09-24 19:21:51
On 09/24/2011 04:05 AM, Philipp Klaus Krause wrote:
> There now is a Z180 port of sdcc. It currently lives in a branch, which
> can be obtained using
> svn co https://sdcc.svn.sourceforge.net/svnroot/sdcc/branches/z180/sdcc
> but it will probably make it into trunk and the snapshots in the next
> few days.
> You can use -mz180 to compile for the Z180. Currently, the Z180 port is
> mostly identical to the Z80 port. However When compiling using -mz180
> the Z180's mlt instruction can be used for 8x8 bit unsigned multiplication.
This is fantastic news! Thank you so much for doing this!!
> P.S.: Which features would you like to see next in the Z180 port?
Expanded addressing support!
Port Charlotte, FL
From: Philipp Klaus Krause <pkk@sp...> - 2011-09-25 18:50:46
Am 24.09.2011 21:21, schrieb Dave McGuire:
> Expanded addressing support!
How? The problems will be similar to those in the mcs51 or Rabbit ports.
1) Make pointers 24 bit. This will allow to access averything using
standard C. However, pointer accesses will be slower, since CBAR wil
have to be set for every pointer access. I could be possible to
introduce additional near pointers that are still 16 bit.
2) Keep all data in the common are and only allow functions in the 20
bit address space. When calling functions marked as __banked, CBAR will
be set saved before the call. No function pointers to such functions
would be allowed. This one is easier to implement, and pointer accesses
are still fast, but it is somewhat limited.
3) N1169 with default 20 bit address space. Similar to 1), but with
optional near pointers done in a somewhat standard-conformant way.
4) N1169 with default 16 bit address space. Similar to 2), but somewhat
more standard-conformant. Functions would have a specific bank
associated, like __banked7, and there could be function pointers
pointing to them (which however could not be cast to void pointers).
I'll probably look into 2) for start, since it's the easiest to
implement, but the other options seem like a better choice in the long term.