Code: Select all
/*
NamedColoursTest.c
Compile with
zcc +pv2000 -create-app -o nct_PV2000 NamedColoursTest.c
zcc +x1 -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -o nct_X1 NamedColoursTest.c
zcc +coleco -create-app -o nct_Coleco NamedColoursTest.ccons_generic NamedColoursTest.c _font_lynx.asm -pragma-redirect:CRT_FONT=_fontLynx -o nctlynx
etc.
*/
// #pragma define CLIB_EXIT_STACK_SIZE=0
// Colour names from enum "colors" in conio.h:
static char* ColourNames[] = {"BLACK", "BLUE", "GREEN", "CYAN", "RED", "MAGENTA", "BROWN", "LIGHTGRAY", "DARKGRAY",
"LIGHTBLUE", "LIGHTGREEN", "LIGHTCYAN", "LIGHTRED", "LIGHTMAGENTA", "YELLOW", "WHITE"};
#include <conio.h>
#if defined(__TIKI100__) || defined(__MC1000__) || defined(__PC6001__) // || defined(__VZ200__)
#include <sys/ioctl.h> // required for switching the screen mode
#endif
#if defined(__MC1000__) || defined(__PC6001__)
#define SCREEN_MODE 2
#elif defined(__TIKI100__) // || defined(__VZ200__)
#define SCREEN_MODE 3
#endif
void main()
{
int i;
#if defined(SCREEN_MODE)
int mode;
mode = SCREEN_MODE;
console_ioctl(IOCTL_GENCON_SET_MODE, &mode);
#endif
// Clear the screen
printf("%c",12);
printf("\x0c"); // the "\x0c" (0x0c character) resets the cursor position to the top left corner
printf("Named Colours Test\n\n");
for(i=BLACK; i<=WHITE; i++)
{
gotoxy(0,2+i);
textbackground(BLACK);
textcolor(i);
printf("%s",ColourNames[i]);
gotoxy(14,2+i);
textbackground(i);
textcolor(WHITE);
printf("%s",ColourNames[i]);
}
#if defined(__PV1000__) || defined(__COLECO__) || defined(__PACMAN__) || defined(__Z80TVGAME__) || defined(__GAMEBOY__) || defined(__MYVISION__)
// On systems without keyboard, wait five seconds
msleep(5000);
#else
fgetc_cons(); // wait for keypress
#endif
}
Code: Select all
setlocal
rem Set your z88dk root path here
set z88root=C:\Misc\z88dk\
set path=%PATH%;%z88root%bin\
set zcccfg=%z88root%lib\config\
set z80_ozfiles=%z88root%lib\
zcc +alphatro -create-app NamedColoursTest.c -o nct_alphatronic
zcc +aquarius -pragma-redirect:fputc_cons=fputc_cons_generic -create-app NamedColoursTest.c -o nct_aquarius
zcc +cpm -subtype=bic -pragma-redirect:fputc_cons=fputc_cons_generic -o NCTBIC.COM NamedColoursTest.c -create-app -D__BIC__
zcc +coleco -create-app -o nct_Coleco NamedColoursTest.ccons_generic NamedColoursTest.c _font_lynx.asm -pragma-redirect:CRT_FONT=_fontLynx -o nctlynx
zcc +cpc -lndos -subtype=dsk -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -o nctcpc NamedColoursTest.c
zcc +cpm -subtype=einstein -pragma-redirect:fputc_cons=fputc_cons_generic -o NCTEINST.COM NamedColoursTest.c -create-app -D__EINSTEIN__
zcc +cpm -subtype=excali64 -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -o nctexcali64 NamedColoursTest.c -D__EXCALIBUR64__
zcc +fp1100 -create-app -o nct_FP1100 NamedColoursTest.c
zcc +kc -lndos -pragma-redirect:fputc_cons=fputc_cons_generic -create-app NamedColoursTest.c -o nct_KC85_2-5
zcc +laser500 NamedColoursTest.c -o nctlaser500 -create-app -Cz--audio
zcc +lynx -create-app -pragma-redirect:fputc_cons=fputc_cons_generic NamedColoursTest.c -o nctlynx
zcc +mc1000 -pragma-redirect:fputc_cons=fputc_cons_generic -pragma-redirect:CRT_FONT=_font_8x8_bbc_system -create-app -Cz--audio NamedColoursTest.c -o nct_mc1000
zcc +mtx -pragma-redirect:fputc_cons=fputc_cons_generic -create-app NamedColoursTest.c -o nct_MemotechMTX500.o
zcc +cpm -subtype=microbee -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -o nctmicrobee NamedColoursTest.c -D__BEE__
zcc +msx -create-app -lndos NamedColoursTest.c -o nctmsx -pragma-need=ansiterminal -pragma-define:ansifont=7359 -pragma-define:ansifont_is_packed=0 -pragma-define:ansicolumns=32
zcc +multi8 -pragma-redirect:CRT_FONT=_font_8x8_bbc_system -create-app -o nct_multi8 NamedColoursTest.c
zcc +myvision -create-app -o nct_MyVision NamedColoursTest.c
zcc +mz -pragma-redirect:fputc_cons=fputc_cons_generic -create-app NamedColoursTest.c -o nctmz
zcc +mz2500 -create-app -o nctmz2500 NamedColoursTest.c
zcc +p2000 -clib=ansi -o nct_p2000 -create-app NamedColoursTest.c
zcc +pasopia7 -create-app NamedColoursTest.c -o nct_pasopia7
zcc +pc6001 -subtype=rom -create-app -o nct_pc6001Mk2 NamedColoursTest.c
zcc +pc88 -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -Cz--audio -o nct_pc8001 NamedColoursTest.c
zcc +pencil2 -create-app -o nct_Pencil2 NamedColoursTest.c
zcc +pv1000 -o nct_pv1000 -create-app NamedColoursTest.c
zcc +pv2000 -create-app -o nct_PV2000 NamedColoursTest.c
zcc +rx78 -o nct_rx78 -create-app NamedColoursTest.c
zcc +sam -clib=ansi -o nct_SamCoupe.bin NamedColoursTest.c
zcc +sc3000 -subtype=rom -create-app -o nct_sc3000.sc NamedColoursTest.c
zcc +cpm -subtype=smc777 -pragma-redirect:fputc_cons=fputc_cons_generic -o NCTSMC.COM NamedColoursTest.c -create-app -D__SMC777__
zcc +m5 -create-app -o nct_sordm5 NamedColoursTest.c
zcc +spc1000 -create-app -o nctspc1000 NamedColoursTest.c
zcc +super80 -create-app -o nct_super80v NamedColoursTest.c
zcc +super80 -create-app -clib=vduem -o nct_super80m NamedColoursTest.c -D__SUPER80_VDUEM__
zcc +svi -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -o nctsvi NamedColoursTest.c
zcc +cpm -subtype=tiki100 -ltiki100 -create-app -pragma-redirect:fputc_cons=fputc_cons_generic -o NCTTIKI.COM NamedColoursTest.c
zcc +vg5k -pragma-redirect:fputc_cons=fputc_cons_generic -o nct_vg5000 -create-app NamedColoursTest.c
zcc +vz -pragma-redirect:fputc_cons=fputc_cons_generic -o nct_vz200.vz -create-app NamedColoursTest.c
zcc +z9001 -pragma-redirect:fputc_cons=fputc_cons_generic -o nct_z9001 -create-app NamedColoursTest.c
zcc +zx -lndos -create-app -o nct_ZXSpectrum NamedColoursTest.c
zcc +x1 -pragma-redirect:fputc_cons=fputc_cons_generic -create-app -o nct_X1 NamedColoursTest.c
rem pause
=== All ok ===
Alphatronic
BIC
fp1100
KC85 2-5
Lynx
microbee
sam
tiki100 (screen mode 3)
Z9001
ZX Spectrum
=== These systems do not support paper colour? Text colours are ok ===
multi8
MZ2500
smc777
VG5000
X1 (although listed as implemented on the platform page)
=== Mostly correct Mapping ===
Coleco, PV2000, SC3000, m5, pencil2, myvision, einstein, msx (and probably all other TMS9918 systems): red and brown should be swapped IMHO
RX78: "Lightblue" is red
Pasopia 7: textcolor() sets paper colour, and textbackground has no effect. Green and red are swapped, and so are lightgreen and lightred.
Sharp MZ700: Green and red are swapped, and so are lightgreen and lightred.
Laser500: brown and yellow should be swapped
=== Mostly wrong Mapping ===
Aquarius: many colours are mapped incorrectly
cpc: most colours have wrong mapping
excali64: paper colours are ok, but text colours are partially wrong
=== Partial Colour Support ===
SPC-1000 (only green and brown)
mc1000 (only blue, yellow, red and green in screen mode 1)
pc6001 (only blue, yellow, red and green in screen mode 2)
=== No Colour support (no effect at least in default screen mode, colour names are defined) ===
PV1000
p2000
VZ
pc88
=== Untested due to technical problems ===
mtx (screen shows nothing in the Memu emulator)
svi (both MAME and BlueMSX show only a broken screen) - see TMS9918 systems above, probably same result
super80 (m and v models)