Yes, more than 1000 functions written in assembly language and aiming to comply with a large subset of C11. That is ten times larger than HITECH. It is written from scratch -- it is not copied from anywhere. HITECH-C and other Z80 compilers have too limited libraries to properly implement the C standard. They only attempt to implement what is called the unhosted portion of the standard and then add a few bits here and there. HITECH-C adds file i/o by providing a thin interface over BDOS in CP/M. It is incapable of doing file i/o on a generic Z80 computer. It is possible you saw cp/m headers borrowed from HITECH in Z88DK's classic library but that is only to implement the CP/M interface in a way that is expected by CP/M users.
You are welcome to look at the source code and compare; it's open.
The base source directory is here:
https://github.com/z88dk/z88dk/tree/...c/_DEVELOPMENT
Header files are here:
https://github.com/z88dk/z88dk/tree/...VELOPMENT/sdcc
For example, to look at the string.h implementation look into the string/z80 directory.
Sayman mentioned PRINTF. Z88DK's implementation is 100% assembler but there is something special about it. You can opt out of % converters individually. If you decide you only need %s, you can ask for only %s in your binary. This can reduce the size of the implementation quite a bit for small programs. The other thing is Z88DK's STDIO model is a UNIX model that allows any device to be read or written with PRINTF and SCANF (and the POSIX functions read, write, etc). This is a complete implementation unlike all other Z80 C compilers and is portable to any Z80 computer.
It is incomplete however as we have not implemented the disk drivers in the new c library yet.
[свернуть]