The new c lib only supports three official targets as of now (cpm, embedded, zx) and only the zx target is capable of drawing text to screen so this addition only affects the zx target at the moment.
The compile time variable manipulated is CRT_FONT which should be set to the address of the font desired. Setting this variable overrides the default font selected in the crt and completely removes the default font from the output binary.
The zx target has three different stdout drivers selected between by the startup value in the compile line.
* startup = 0, 1 (ram compile) 32, 33 (if2 cartridge)
stdout driver uses standard 8x8 font as defined in the Sinclair ROM. startup = 0,1 uses the default font definition in ROM while 32,33 uses a copy of the Sinclair font which will be included in the output binary.
* startup = 4, 5 (ram compile) 36, 37 (if2 cartridge)
stdout driver uses 4x8 font to achieve 64 columns on screen. stdout uses a default font definition supplied in the library that is attached to the output binary.
* startup = 8, 9 (ram compile) 40, 41 (if2 cartridge)
stdout driver uses fzx proportional fonts. The default is "_ff_ind_Termino" whose definition will be attached to the output binary. There are approximately 100 proportional fonts in the library whose names can be discovered by browsing http://z88dk.cvs.sourceforge.net/viewvc ... fzx/fonts/
From the compile line you can change the default font as follows:
zcc +zx -vn -startup=8 -clib=new -O3 test.c -o test -pragma-redefine:CRT_FONT=_ff_ao_RoundelSans
You can also change the default font via pragma in the C source:
Code: Select all
#pragma define CRT_FONT = _ff_ao_RoundelSans
#include <stdio.h>
void main(void)
{
printf("Hello World!\n");
}