pico9918-core 1.3.0
TMS9918A / F18A video display processor emulation in C99
Loading...
Searching...
No Matches
bare.c
Go to the documentation of this file.
1/**
2 * \file
3 * \brief pico9918-core - the installed package, compiled with no build system at all
4 *
5 * Copyright (c) 2026 Troy Schrapel
6 *
7 * This code is licensed under the MIT license
8 *
9 * https://github.com/visrealm/pico9918-core
10 *
11 * Deliberately NOT a target in the CMakeLists.txt beside this file. ci.sh package hands
12 * it to the compiler directly, with one include directory, the installed archive, and
13 * PICO9918_STATIC - which the LINKAGE MODES block in pico9918.h requires of any static
14 * consumer. Nothing else.
15 *
16 * That is the whole point. The exported CMake target carries the instance mode as an
17 * INTERFACE compile definition, so a consumer that finds the package can never disagree
18 * with the archive; one that links it by hand has only the generated
19 * pico9918_build_config.h to go on. Both ABIs are spelled out below rather than written
20 * through PICO9918_INST_ONLY, so a header that picked the wrong mode is a compile error
21 * here instead of a wrong argument list at runtime.
22 */
23
24#include "pico9918.h"
25
26int main(void)
27{
28#if PICO9918_BUILD_SINGLE_INSTANCE
29 pico9918_init();
31#else
32 pico9918_t* tms9918 = pico9918_new();
33 if (!tms9918)
34 {
35 return 1;
36 }
37 pico9918_reset(tms9918);
38 pico9918_destroy(tms9918);
39#endif
40 return 0;
41}
void pico9918_destroy(pico9918_t *tms9918)
destroy a TMS9918
Definition pico9918.c:360
void pico9918_reset(pico9918_t *tms9918)
reset the new TMS9918
Definition pico9918.c:318
pico9918-core - core interface
pico9918_t * pico9918_new(void)
create a new TMS9918