Copy disabled (too large)
Download .txt
Showing preview only (12,366K chars total). Download the full file to get everything.
Repository: Fabrizio-Caruso/CROSS-LIB
Branch: master
Commit: cb85d0590332
Files: 8180
Total size: 45.1 MB
Directory structure:
gitextract_v60rhtgp/
├── .devcontainer/
│ ├── devcontainer.json
│ └── post-start.sh
├── .gitignore
├── README.md
├── cfg/
│ ├── ___empty.cfg
│ └── default.cfg
├── docs/
│ ├── ARCHITECTURES.md
│ ├── Alice32k.txt
│ ├── BUILD.md
│ ├── BUILD_PROCESS.md
│ ├── COMPILERS.md
│ ├── COMPILER_NAMES.md
│ ├── CREDITS.txt
│ ├── CROSSLIB.md
│ ├── CROSS_LIB_APIS.md
│ ├── CROSS_LIB_APIS.txt
│ ├── CX16.txt
│ ├── Creativision_binary_structure.txt
│ ├── CrossLib.odp
│ ├── DISCLAIMER.md
│ ├── EnglishArticle.md
│ ├── FEATURE_STATUS.ods
│ ├── GAMES.md
│ ├── GIOCHI.md
│ ├── HARDWARE_AGNOSTIC_CODE.md
│ ├── HOW_TO_ADD_A_NEW_GAME.md
│ ├── HOW_TO_ADD_NEW_TARGET.txt
│ ├── HOW_TO_INSTALL_COMPILERS.txt
│ ├── HOW_TO_LOAD.md
│ ├── HOW_TO_LOAD_THE_GAME.md
│ ├── HOW_TO_LOAD_THE_GAME_ON_REAL_HARDWARE.md
│ ├── INSTALL.md
│ ├── LICENCE.txt
│ ├── LINUX_SETUP.md
│ ├── MSDOS_big_banging.txt
│ ├── PREREQUISITES.md
│ ├── PRESENTAZIONE_ITA/
│ │ ├── Documenti_on_line.txt
│ │ └── Giochi/
│ │ ├── EMULATORI_DA_USARE.txt
│ │ ├── xbomber/
│ │ │ ├── Xbomber_atari_color.xex
│ │ │ └── Xbomber_gamegear.gg
│ │ └── xsnake/
│ │ ├── Xsnake_gb.gb
│ │ └── Xsnake_sms.sms
│ ├── SNAPSHOTS.md
│ ├── STATUS.md
│ ├── SUPPORT_FOR_NEW_TARGET.txt
│ ├── SYSTEMS.md
│ ├── TESTS.md
│ ├── THE_GAME.txt
│ ├── TILES.txt
│ ├── TODO.txt
│ ├── VGA_from_protected_mode.txt
│ ├── VZ.txt
│ ├── XL.md
│ ├── alt_conio_fonts.s
│ ├── articles/
│ │ ├── CALL_APPLE/
│ │ │ └── apple2.txt
│ │ ├── CROSS_LIB_PUBLIC.rtf
│ │ ├── CROSS_LIB_PUBLIC_ENG.rtf
│ │ ├── article.txt
│ │ └── articolo_ITA.txt
│ ├── bbc/
│ │ ├── chibiakumas.txt
│ │ └── putchar.txt
│ ├── bbc_sounds/
│ │ ├── bbc.h
│ │ └── bbctest.c
│ ├── compilation_parameters.txt
│ ├── compiler_install.txt
│ ├── conio_macros_vs_functions.txt
│ ├── docker.txt
│ ├── games/
│ │ ├── BOMBER.txt
│ │ ├── CHASE.txt
│ │ ├── HORDE.txt
│ │ ├── SHOOT.txt
│ │ ├── SNAKE.txt
│ │ └── VERBIX.txt
│ ├── generic_tiles.txt
│ ├── hector_sound.txt
│ ├── manual/
│ │ ├── XSize.txt
│ │ ├── YSize.txt
│ │ ├── _XL_CHAR.txt
│ │ ├── _XL_CLEAR_SCREEN.txt
│ │ ├── _XL_DELETE.txt
│ │ ├── _XL_DOWN.txt
│ │ ├── _XL_DRAW.txt
│ │ ├── _XL_EXPLOSION_SOUND.txt
│ │ ├── _XL_FIRE.txt
│ │ ├── _XL_INIT_GRAPHICS.txt
│ │ ├── _XL_INIT_INPUT.txt
│ │ ├── _XL_INIT_SOUND.txt
│ │ ├── _XL_INPUT.txt
│ │ ├── _XL_KEY_PRESSED.txt
│ │ ├── _XL_LEFT.txt
│ │ ├── _XL_PING_SOUND.txt
│ │ ├── _XL_PRINT.txt
│ │ ├── _XL_PRINTD.txt
│ │ ├── _XL_RAND.txt
│ │ ├── _XL_RIGHT.txt
│ │ ├── _XL_SET_TEXT_COLOR.txt
│ │ ├── _XL_SHOOT_SOUND.txt
│ │ ├── _XL_SLEEP.txt
│ │ ├── _XL_SLOW_DOWN.txt
│ │ ├── _XL_TICK_SOUND.txt
│ │ ├── _XL_TOCK_SOUND.txt
│ │ ├── _XL_UP.txt
│ │ ├── _XL_WAIT_FOR_INPUT.txt
│ │ └── _XL_ZAP_SOUND.txt
│ ├── mc10.txt
│ ├── mc10_2.txt
│ ├── mega65.txt
│ ├── presentazione.md
│ ├── presentazione.txt
│ ├── requirements.txt
│ └── zzap_issue.txt
├── logs/
│ └── .gitkeep
├── roms/
│ ├── mame/
│ │ └── .keepthisfile.txt
│ └── vice/
│ ├── c64/
│ │ └── .keepthisfile.txt
│ ├── pet/
│ │ └── .keepthisfile.txt
│ ├── plus4/
│ │ └── .keepthisfile.txt
│ └── vic20/
│ └── .keepthisfile.txt
├── src/
│ ├── Makefile_common
│ ├── assets/
│ │ ├── LoggerSingleton.py
│ │ ├── __init__.py
│ │ ├── copy_assets.py
│ │ ├── examples/
│ │ │ ├── README.txt
│ │ │ ├── single_tiles/
│ │ │ │ ├── tile_shape0.txt
│ │ │ │ └── tile_shape1.txt
│ │ │ └── tile_sets/
│ │ │ ├── asm/
│ │ │ │ ├── 8x6_cidelsa_digits.s
│ │ │ │ ├── 8x6_cidelsa_fonts.s
│ │ │ │ ├── Antiriad_Chars.asm
│ │ │ │ ├── test_vchar-charset.s
│ │ │ │ ├── tile_8x6_shapeA.txt
│ │ │ │ ├── tile_8x6_shapeA_rotated.txt
│ │ │ │ ├── tiles_all.asm
│ │ │ │ ├── tiles_all_2.asm
│ │ │ │ ├── tiles_bin.asm
│ │ │ │ ├── tiles_charPad.asm
│ │ │ │ ├── tiles_magellan.a99
│ │ │ │ └── tiles_magellan_2.a99
│ │ │ └── basic/
│ │ │ ├── test.txt
│ │ │ ├── tiles_atari.bas
│ │ │ ├── tiles_atari_2.bas
│ │ │ ├── tiles_bbc.bas
│ │ │ ├── tiles_cbm.bas
│ │ │ ├── tiles_cbm_10_liner.bas
│ │ │ ├── tiles_cbm_10_liner_2.bas
│ │ │ ├── tiles_cbm_10_liner_3.bas
│ │ │ ├── tiles_cbm_10_liner_4.bas
│ │ │ ├── tiles_cbm_2.bas
│ │ │ ├── tiles_cpc.bas
│ │ │ ├── tiles_msx_headless_hex.bas
│ │ │ ├── tiles_oric.bas
│ │ │ ├── tiles_oric_2.bas
│ │ │ ├── tiles_oric_3.bas
│ │ │ ├── tiles_oric_4.bas
│ │ │ ├── tiles_oric_5.bas
│ │ │ └── tiles_sinclair.bas
│ │ ├── generate_assets.py
│ │ ├── templates/
│ │ │ ├── 4x4/
│ │ │ │ └── 4x4_chars.h.template
│ │ │ ├── 6x8/
│ │ │ │ ├── 6x8_chars.h.template
│ │ │ │ └── z88dk_6x8_pmd85.asm.template
│ │ │ ├── 6x9/
│ │ │ │ └── 6x9_chars.h.template
│ │ │ ├── 7x8/
│ │ │ │ └── 7x8_chars.h.template
│ │ │ ├── 8x6/
│ │ │ │ ├── 8x6_chars.h.template
│ │ │ │ ├── 8x6_tiles.s.template
│ │ │ │ └── z88dk_8x6_sprites_definitions.h.template
│ │ │ └── 8x8/
│ │ │ ├── 8x8_chars.h.template
│ │ │ ├── cc65_agat.s.template
│ │ │ ├── cc65_gamate_tiles.s.template
│ │ │ ├── cc65_nes_color_tiles.s.template
│ │ │ ├── cc65_nes_tiles.s.template
│ │ │ ├── cc65_pce_tiles.s.template
│ │ │ ├── cc65_udc.s.template
│ │ │ ├── cc65_udc_64_chars.s.template
│ │ │ ├── cc65_udc_6chars.s.template
│ │ │ ├── cc65_udc_arcade.s.template
│ │ │ ├── cc65_udc_arcade_64_chars.s.template
│ │ │ ├── cc65_udc_arcade_VIC20.s.template
│ │ │ ├── cc65_udc_arcade_conio.s.template
│ │ │ ├── cc65_udc_arcade_v2.s.template
│ │ │ ├── cc65_udc_atari7800_160A.s.template
│ │ │ ├── cc65_udc_vic20_19_tiles.s.template
│ │ │ ├── cc65_udc_vic20_25_tiles.s.template
│ │ │ ├── cc65_udc_vic20_27_tiles.s.template
│ │ │ ├── cc65_udc_vic20_64_chars.s.template
│ │ │ ├── cmoc_udc_tiles.s.template
│ │ │ ├── cmoc_udc_tiles_and_fonts.s.template
│ │ │ ├── z88dk_cpc_Chars8.asm.template
│ │ │ ├── z88dk_gameboy.asm.template
│ │ │ ├── z88dk_pv1000.asm.template
│ │ │ ├── z88dk_sprites_definitions.h.template
│ │ │ └── z88dk_xchase.asm.template
│ │ └── unit_tests/
│ │ └── testAssets.py
│ ├── config.ini
│ ├── cross_lib/
│ │ ├── boot/
│ │ │ └── multi8/
│ │ │ └── bootstrap.c
│ │ ├── cfg/
│ │ │ ├── cc65/
│ │ │ │ ├── alt/
│ │ │ │ │ ├── vic20-16k.cfg
│ │ │ │ │ ├── vic20-24k.cfg
│ │ │ │ │ ├── vic20-3k.cfg
│ │ │ │ │ ├── vic20-8k.cfg
│ │ │ │ │ ├── vic20-8k_GFX_tight.cfg
│ │ │ │ │ ├── vic20-8k_old_GFX.cfg
│ │ │ │ │ ├── vic20-8k_tight.cfg
│ │ │ │ │ └── vic20_unexpanded.cfg
│ │ │ │ ├── apple2-hgr.cfg
│ │ │ │ ├── apple2enh-hgr.cfg
│ │ │ │ ├── atari5200_redefined_chars.cfg
│ │ │ │ ├── atari5200_redefined_chars_32k.cfg
│ │ │ │ ├── atari7800_more_ram.cfg
│ │ │ │ ├── atari_mode12.cfg
│ │ │ │ ├── atari_mode1_redefined_chars.cfg
│ │ │ │ ├── atarixl_mode12.cfg
│ │ │ │ ├── atmos_better_tap.cfg
│ │ │ │ ├── c16-16k.cfg
│ │ │ │ ├── c16-16k_GFX.cfg
│ │ │ │ ├── c16-16k_GFX_64chars.cfg
│ │ │ │ ├── c16-16k_GFX_64chars_stack_0x30.cfg
│ │ │ │ ├── c16-16k_GFX_64chars_stack_0x30_less_hd_stack.cfg
│ │ │ │ ├── c16-32k.cfg
│ │ │ │ ├── c16-32k_GFX.cfg
│ │ │ │ ├── c16-32k_GFX_64chars.cfg
│ │ │ │ ├── c64_GFXat0xC000.cfg
│ │ │ │ ├── creativision-16k.cfg
│ │ │ │ ├── creativision-16k_2.cfg
│ │ │ │ ├── creativision-16k_less_stack.cfg
│ │ │ │ ├── creativision-18k.cfg
│ │ │ │ ├── creativision-24k.cfg
│ │ │ │ ├── creativision-32k.cfg
│ │ │ │ ├── creativision-32k_alt.cfg
│ │ │ │ ├── creativision-8k.cfg
│ │ │ │ ├── creativision-8k_less_stack.cfg
│ │ │ │ ├── gamate_reduced_stack.cfg
│ │ │ │ ├── gamate_reduced_stack_2.cfg
│ │ │ │ ├── nes_fx.cfg
│ │ │ │ ├── osic1p_less_stack.cfg
│ │ │ │ ├── pce.cfg
│ │ │ │ ├── pce_16k.cfg
│ │ │ │ ├── pce_16k_less_stack.cfg
│ │ │ │ ├── pce_32k.cfg
│ │ │ │ ├── pce_8k_less_stack.cfg
│ │ │ │ ├── pet_8k.cfg
│ │ │ │ ├── plus4_GFX.cfg
│ │ │ │ ├── supervision-16k.cfg
│ │ │ │ ├── supervision-16k_GFX.cfg
│ │ │ │ ├── supervision-16k_GFX_2.cfg
│ │ │ │ ├── supervision-16k_GFX_2_stack_0x1B.cfg
│ │ │ │ ├── supervision-16k_GFX_3.cfg
│ │ │ │ ├── supervision-64k.cfg
│ │ │ │ ├── vic20-16k_CODE2_GFX.cfg
│ │ │ │ ├── vic20-16k_CODE2_GFX_ALT_V2.cfg
│ │ │ │ ├── vic20-16k_CODE2_GFX_V2.cfg
│ │ │ │ ├── vic20-16k_GFX.cfg
│ │ │ │ ├── vic20-3k_GFX.cfg
│ │ │ │ ├── vic20-8k_CODE2_GFX.cfg
│ │ │ │ ├── vic20-8k_CODE2_GFX_V2.cfg
│ │ │ │ ├── vic20-8k_CODE2_GFX_V2_alt.cfg
│ │ │ │ ├── vic20-8k_GFX.cfg
│ │ │ │ ├── vic20-8k_GFX_25_tiles.cfg
│ │ │ │ ├── vic20-8k_GFX_stack_0x1B.cfg
│ │ │ │ ├── vic20-8k_memory_mapped_GFX.cfg
│ │ │ │ ├── vic20-cart.cfg
│ │ │ │ ├── vic20.cfg
│ │ │ │ ├── vic20_unexpanded_gfx.cfg
│ │ │ │ └── vic20_unexpanded_gfx_low_stack.cfg
│ │ │ ├── gcc4ti99/
│ │ │ │ └── linkfile.cfg
│ │ │ ├── vbcc/
│ │ │ │ └── bbc/
│ │ │ │ ├── bbc
│ │ │ │ ├── bbc2
│ │ │ │ ├── bbc2_posix
│ │ │ │ ├── bbc5
│ │ │ │ ├── bbc5_posix
│ │ │ │ ├── bbc7
│ │ │ │ ├── bbc7_posix
│ │ │ │ ├── bbc_posix
│ │ │ │ ├── bbcmaster
│ │ │ │ ├── vlink.cmd
│ │ │ │ ├── vlink2.cmd
│ │ │ │ ├── vlink5.cmd
│ │ │ │ └── vlink7.cmd
│ │ │ └── z88dk/
│ │ │ ├── zpragma.inc
│ │ │ ├── zpragma_clib.inc
│ │ │ ├── zpragma_clib_no_printf.inc
│ │ │ └── zpragma_sms.inc
│ │ ├── cross_lib.h
│ │ ├── crt/
│ │ │ └── cc65/
│ │ │ └── vic20/
│ │ │ └── vic20_cart.crt
│ │ ├── display/
│ │ │ ├── alt_print/
│ │ │ │ ├── atari_mode1_alt_print.c
│ │ │ │ ├── comx_alt_print.c
│ │ │ │ ├── memory_mapped_alt_print.c
│ │ │ │ ├── memory_mapped_alt_print.h
│ │ │ │ ├── mo5_alt_print.c
│ │ │ │ ├── ncurses_alt_print.c
│ │ │ │ ├── simple_alt_stats.c
│ │ │ │ ├── tgi_alt_print.c
│ │ │ │ └── tgi_gfx_print.c
│ │ │ ├── color_definitions.h
│ │ │ ├── conio_patch.h
│ │ │ ├── display_macros.c
│ │ │ ├── display_macros.h
│ │ │ ├── display_target_color.h
│ │ │ ├── display_target_geometry.h
│ │ │ ├── graphics_mode/
│ │ │ │ ├── antic_mode6_graphics.h
│ │ │ │ ├── apple2_hgr_graphics.h
│ │ │ │ ├── atari7800_color_graphics.h
│ │ │ │ ├── atari_lynx_tgi_graphics.h
│ │ │ │ ├── bbc_graphics.h
│ │ │ │ ├── bit_mapped_16_graphics.h
│ │ │ │ ├── bit_mapped_4_graphics.h
│ │ │ │ ├── bit_mapped_graphics.h
│ │ │ │ ├── buffered_graphics.h
│ │ │ │ ├── conio_graphics.h
│ │ │ │ ├── cpc_cpcrslib_graphics.h
│ │ │ │ ├── dual_memory_mapped_graphics.h
│ │ │ │ ├── lcc1802_color_graphics.h
│ │ │ │ ├── lcc1802_graphics.h
│ │ │ │ ├── memory_mapped_graphics.h
│ │ │ │ ├── nes_conio_graphics.h
│ │ │ │ ├── no_graphics.h
│ │ │ │ ├── oric_color_graphics.h
│ │ │ │ ├── pv1000_graphics.h
│ │ │ │ ├── quad_memory_mapped_graphics.h
│ │ │ │ ├── rex_graphics.h
│ │ │ │ ├── terminal_graphics.h
│ │ │ │ ├── vdp_mode1_graphics.h
│ │ │ │ ├── vectorial_graphics.h
│ │ │ │ ├── vga_graphics.h
│ │ │ │ └── z88dk_sprites_graphics.h
│ │ │ ├── graphics_settings.h
│ │ │ ├── init_graphics/
│ │ │ │ ├── ack/
│ │ │ │ │ ├── msdos386/
│ │ │ │ │ │ ├── init386_vga.s
│ │ │ │ │ │ └── msdos386_init_graphics.c
│ │ │ │ │ └── msdos86/
│ │ │ │ │ ├── CGA.txt
│ │ │ │ │ ├── EGA.txt
│ │ │ │ │ ├── init_vga.s
│ │ │ │ │ └── msdos86_init_graphics.c
│ │ │ │ ├── cc6303/
│ │ │ │ │ └── mc10_init_graphics.c
│ │ │ │ ├── cc65/
│ │ │ │ │ ├── agat/
│ │ │ │ │ │ └── agat_init_graphics.c
│ │ │ │ │ ├── apple2/
│ │ │ │ │ │ ├── apple2_hgr_init_graphics.c
│ │ │ │ │ │ └── hgr.s
│ │ │ │ │ ├── apple2enh/
│ │ │ │ │ │ └── apple2enh_80col_init_graphics.c
│ │ │ │ │ ├── atari/
│ │ │ │ │ │ ├── atari_mode1_redefined_chars_init_graphics.c
│ │ │ │ │ │ └── disable_setcursor.s
│ │ │ │ │ ├── atari5200/
│ │ │ │ │ │ ├── atari5200_init_graphics.c
│ │ │ │ │ │ └── setcolor.h
│ │ │ │ │ ├── atari7800/
│ │ │ │ │ │ ├── atari7800_init_graphics.c
│ │ │ │ │ │ └── atari7800_init_graphics_debug.c
│ │ │ │ │ ├── atari_lynx/
│ │ │ │ │ │ └── atari_lynx_gfx_init_graphics.c
│ │ │ │ │ ├── atmos/
│ │ │ │ │ │ └── atmos_redefined_characters_init_graphics.c
│ │ │ │ │ ├── c128/
│ │ │ │ │ │ └── c128_80col_init_graphics.c
│ │ │ │ │ ├── c264/
│ │ │ │ │ │ ├── c16_linked_redefined_chars_init_graphics.c
│ │ │ │ │ │ └── c16_redefined_chars_init_graphics.c
│ │ │ │ │ ├── c64/
│ │ │ │ │ │ └── c64_init_graphics.c
│ │ │ │ │ ├── c65/
│ │ │ │ │ │ └── c65_init_graphics.c
│ │ │ │ │ ├── creativision/
│ │ │ │ │ │ ├── creativision_color_init_graphics.c
│ │ │ │ │ │ └── creativision_init_graphics.c
│ │ │ │ │ ├── cx16/
│ │ │ │ │ │ └── cx16_init_graphics.c
│ │ │ │ │ ├── mega65/
│ │ │ │ │ │ └── mega65_init_graphics.c
│ │ │ │ │ ├── nes/
│ │ │ │ │ │ └── nes_init_graphics.c
│ │ │ │ │ ├── pce/
│ │ │ │ │ │ └── pce_init_graphics.c
│ │ │ │ │ ├── supervision/
│ │ │ │ │ │ └── supervision_init_graphics.c
│ │ │ │ │ └── vic20/
│ │ │ │ │ └── vic20_init_graphics.c
│ │ │ │ ├── cmoc/
│ │ │ │ │ ├── coco/
│ │ │ │ │ │ └── coco_init_graphics.c
│ │ │ │ │ ├── coco3/
│ │ │ │ │ │ └── coco3_init_graphics.c
│ │ │ │ │ └── mo5/
│ │ │ │ │ └── mo5_init_graphics.c
│ │ │ │ ├── gcc/
│ │ │ │ │ ├── ncurses_init_graphics.c
│ │ │ │ │ └── terminal_init_graphics.c
│ │ │ │ ├── gcc4ti99/
│ │ │ │ │ └── gcc4ti99_init_graphics.c
│ │ │ │ ├── lcc1802/
│ │ │ │ │ └── comx/
│ │ │ │ │ ├── comx_color_init_graphics.c
│ │ │ │ │ ├── comx_init_graphics.c
│ │ │ │ │ └── micro_color_init_graphics.c
│ │ │ │ ├── vbcc/
│ │ │ │ │ └── bbc/
│ │ │ │ │ ├── bbc_init_graphics.c
│ │ │ │ │ └── bbc_init_graphics_test.c
│ │ │ │ └── z88dk/
│ │ │ │ ├── aquarius/
│ │ │ │ │ └── aquarius_init_graphics.c
│ │ │ │ ├── c128/
│ │ │ │ │ └── c128_init_graphics.c
│ │ │ │ ├── cpc/
│ │ │ │ │ └── cpc_cpcrslib_init_graphics.c
│ │ │ │ ├── g850/
│ │ │ │ │ └── g850_init_graphics.c
│ │ │ │ ├── msx/
│ │ │ │ │ └── msx_redefined_chars_init_graphics.c
│ │ │ │ ├── rex/
│ │ │ │ │ └── rex_init_graphics.c
│ │ │ │ ├── sms/
│ │ │ │ │ └── sms_init_graphics.c
│ │ │ │ ├── udg/
│ │ │ │ │ ├── udg_init_graphics.c
│ │ │ │ │ └── udg_msx_test.c
│ │ │ │ ├── vz200/
│ │ │ │ │ └── vz200_init_graphics.c
│ │ │ │ ├── x07/
│ │ │ │ │ └── x07_init_graphics.c
│ │ │ │ ├── z88/
│ │ │ │ │ ├── z88_init_graphics.c
│ │ │ │ │ └── z88_udg_init_graphics.c
│ │ │ │ ├── zx80/
│ │ │ │ │ └── zx80_init_graphics.c
│ │ │ │ └── zx81/
│ │ │ │ └── zx81_init_graphics.c
│ │ │ ├── redefine_characters/
│ │ │ │ └── udg_map.h
│ │ │ ├── tiles/
│ │ │ │ ├── agat_settings.h
│ │ │ │ ├── apple2_hgr_settings.h
│ │ │ │ ├── atari7800_settings.h
│ │ │ │ ├── atari_mode1_redefined_chars_settings.h
│ │ │ │ ├── atmos_redefined_characters_settings.h
│ │ │ │ ├── bbc_settings.h
│ │ │ │ ├── c128_settings.h
│ │ │ │ ├── c264_link_time_redefined_chars_settings.h
│ │ │ │ ├── c264_redefined_chars_settings.h
│ │ │ │ ├── c64_conio_settings.h
│ │ │ │ ├── c64_memory_mapped_settings.h
│ │ │ │ ├── cidelsa_no_gfx.h
│ │ │ │ ├── cmoc_memory_mapped_settings.h
│ │ │ │ ├── comx_color_settings.h
│ │ │ │ ├── comx_settings.h
│ │ │ │ ├── cpc_cpcrslib_settings.h
│ │ │ │ ├── creativision_settings.h
│ │ │ │ ├── cx16_settings.h
│ │ │ │ ├── default_image_settings.h
│ │ │ │ ├── default_quad_graphics_settings.h
│ │ │ │ ├── micro_color_settings.h
│ │ │ │ ├── micro_settings.h
│ │ │ │ ├── msx_redefined_chars_settings.h
│ │ │ │ ├── nes_conio_settings.h
│ │ │ │ ├── nes_settings.h
│ │ │ │ ├── pce_settings.h
│ │ │ │ ├── petscii_memory_mapped_settings.h
│ │ │ │ ├── pv1000_settings.h
│ │ │ │ ├── supervision_settings.h
│ │ │ │ ├── tgi_gfx_settings.h
│ │ │ │ ├── udg_settings.h
│ │ │ │ ├── vdp_mode1_settings.h
│ │ │ │ ├── vic20_exp_16k_settings.h
│ │ │ │ ├── vic20_exp_16k_v2_settings.h
│ │ │ │ ├── vic20_exp_3k_light_settings.h
│ │ │ │ ├── vic20_exp_3k_settings.h
│ │ │ │ ├── vic20_rom_chars_and_26_tiles_settings.h
│ │ │ │ ├── vic20_rom_chars_and_27_tiles_settings.h
│ │ │ │ └── vic20_rom_chars_and_6_tiles_settings.h
│ │ │ └── tiles.h
│ │ ├── include/
│ │ │ └── standard_libs.h
│ │ ├── input/
│ │ │ ├── input_macros.c
│ │ │ ├── input_macros.h
│ │ │ └── input_target_settings.h
│ │ ├── rand/
│ │ │ ├── rand.c
│ │ │ ├── rand.h
│ │ │ └── rand_lcc1802_devkit_include.c
│ │ ├── sleep/
│ │ │ ├── sleep_macros.c
│ │ │ └── sleep_macros.h
│ │ ├── sound/
│ │ │ ├── ack/
│ │ │ │ └── msdos86/
│ │ │ │ └── msdos86_sounds.h
│ │ │ ├── cc65/
│ │ │ │ ├── atari7800/
│ │ │ │ │ └── atari7800_sounds.h
│ │ │ │ ├── atari_lynx/
│ │ │ │ │ ├── atari_lynx_sounds.c
│ │ │ │ │ ├── atari_lynx_sounds.h
│ │ │ │ │ └── chibisound.asm
│ │ │ │ ├── atmos/
│ │ │ │ │ └── atmos_sounds.h
│ │ │ │ ├── c264/
│ │ │ │ │ ├── c264_sounds.c
│ │ │ │ │ └── c264_sounds.h
│ │ │ │ ├── creativision/
│ │ │ │ │ ├── creativision_sounds.c
│ │ │ │ │ └── creativision_sounds.h
│ │ │ │ ├── cx16/
│ │ │ │ │ ├── cx16_sounds.c
│ │ │ │ │ └── cx16_sounds.h
│ │ │ │ ├── gamate/
│ │ │ │ │ ├── gamate_sounds.c
│ │ │ │ │ └── gamate_sounds.h
│ │ │ │ ├── pet/
│ │ │ │ │ ├── pet_sounds.c
│ │ │ │ │ └── pet_sounds.h
│ │ │ │ ├── pokey/
│ │ │ │ │ ├── pokey_sounds.c
│ │ │ │ │ └── pokey_sounds.h
│ │ │ │ ├── sid/
│ │ │ │ │ ├── sid_sounds.c
│ │ │ │ │ └── sid_sounds.h
│ │ │ │ ├── supervision/
│ │ │ │ │ ├── reverse_engineered_notes.txt
│ │ │ │ │ ├── supervision_sounds.c
│ │ │ │ │ └── supervision_sounds.h
│ │ │ │ └── vic20/
│ │ │ │ ├── vic20_explosion_sound.c
│ │ │ │ ├── vic20_explosion_sound.h
│ │ │ │ ├── vic20_sounds.c
│ │ │ │ └── vic20_sounds.h
│ │ │ ├── gcc4ti99/
│ │ │ │ ├── ti99_sounds.c
│ │ │ │ └── ti99_sounds.h
│ │ │ ├── generic/
│ │ │ │ ├── ascii_sounds.h
│ │ │ │ ├── bit_bang_sounds.c
│ │ │ │ ├── bit_bang_sounds.h
│ │ │ │ ├── dac_sounds.c
│ │ │ │ └── dac_sounds.h
│ │ │ ├── lcc1802/
│ │ │ │ └── comx/
│ │ │ │ ├── comx_sounds.c
│ │ │ │ └── comx_sounds.h
│ │ │ ├── sound_macros.h
│ │ │ ├── vbcc/
│ │ │ │ └── bbc/
│ │ │ │ ├── bbc_sounds.c
│ │ │ │ └── bbc_sounds.h
│ │ │ └── z88dk/
│ │ │ ├── bit_bang/
│ │ │ │ └── z88dk_bit_bang_sounds.h
│ │ │ ├── gb/
│ │ │ │ ├── gb_sounds.c
│ │ │ │ └── gb_sounds.h
│ │ │ └── psg/
│ │ │ ├── ay-3-8910_psg_sounds.c
│ │ │ ├── psg_sounds.h
│ │ │ └── sn76489a_psg_sounds.c
│ │ └── text/
│ │ └── letters.h
│ ├── debug/
│ │ ├── CONIO_TEST.COM
│ │ ├── Makefile
│ │ ├── amiga_core.h
│ │ ├── atari2600_graphics_test.c
│ │ ├── atari7800_test.c
│ │ ├── atari7800_test2.c
│ │ ├── atari7800_test3.c
│ │ ├── atari_lynx.c
│ │ ├── bar.c
│ │ ├── bbctest.c
│ │ ├── bitbang.c
│ │ ├── build_conio_test.txt
│ │ ├── coco3_test.c
│ │ ├── coco_strings_test.c
│ │ ├── comx_class.c
│ │ ├── comx_conv_debug.c
│ │ ├── comx_hello.c
│ │ ├── comx_hello_integer.c
│ │ ├── comx_mod.c
│ │ ├── comx_pointer2func.c
│ │ ├── comx_pp_debug.c
│ │ ├── comx_simple_class.c
│ │ ├── comx_simplest_class.c
│ │ ├── comx_size_debug.c
│ │ ├── conio.c
│ │ ├── conio0.c
│ │ ├── conio_test.c
│ │ ├── cpc_test.c
│ │ ├── cprintf.c
│ │ ├── debug_images.h
│ │ ├── empty42.c
│ │ ├── extern.c
│ │ ├── extern.h
│ │ ├── foo.c
│ │ ├── foo.h
│ │ ├── fx.c
│ │ ├── gamate_conio_test.c
│ │ ├── gamate_conio_test2.c
│ │ ├── gb_main.c
│ │ ├── gcc_class.c
│ │ ├── gcc_simple_class.c
│ │ ├── gcc_simplest_class.c
│ │ ├── gcc_test.c
│ │ ├── generic_psg.c
│ │ ├── getk_test.c
│ │ ├── h0comx.c
│ │ ├── hello_cgetc.c
│ │ ├── hello_conio.c
│ │ ├── hello_fputc.c
│ │ ├── hello_sdl.c
│ │ ├── helloworld.c
│ │ ├── helloworld_background_color.c
│ │ ├── helloworld_getchar.c
│ │ ├── htron.c
│ │ ├── hwcomx.c
│ │ ├── hwcomx1.c
│ │ ├── hwcomx2.c
│ │ ├── hwcomx_gotoxy.c
│ │ ├── hwcomx_gotoxy2.c
│ │ ├── hwcomx_pp_debug.c
│ │ ├── hwpecom.c
│ │ ├── intern.c
│ │ ├── intern.h
│ │ ├── lcc1802_test.c
│ │ ├── lcc1802_test_NEW.c
│ │ ├── litterals.c
│ │ ├── m5.c
│ │ ├── main_use_amiga_core.c
│ │ ├── mapfile_shoot_pet_func.txt
│ │ ├── mc10_getk.s
│ │ ├── mc10_test1.c
│ │ ├── mc10_test2.c
│ │ ├── mc10_test3.c
│ │ ├── mc10_test4.c
│ │ ├── msx_test.c
│ │ ├── msx_test2.c
│ │ ├── ncurses_test.c
│ │ ├── nes_bgcolor.c
│ │ ├── psg_test.c
│ │ ├── psg_test2.c
│ │ ├── psg_test3.c
│ │ ├── rand.c
│ │ ├── struct.c
│ │ ├── testBitwiseAnd.c
│ │ ├── test_gb.c
│ │ ├── test_getk.c
│ │ ├── test_joy.c
│ │ ├── test_joy2.c
│ │ ├── test_sleep.c
│ │ ├── test_vsync.c
│ │ ├── testc16.c
│ │ ├── tgi_lynx_black_test.c
│ │ ├── tgi_lynx_cgetc_test.c
│ │ ├── tgi_lynx_test.c
│ │ ├── ti99.c
│ │ ├── ti99_test.c
│ │ ├── unsigned_right_shift.c
│ │ ├── wait_for_key.c
│ │ ├── world.c
│ │ └── x07.c
│ ├── examples/
│ │ ├── animate/
│ │ │ ├── Makefile.animate
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── background/
│ │ │ ├── Makefile.background
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── blob/
│ │ │ ├── Makefile.blob
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ └── shape20.txt
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── boundary/
│ │ │ ├── Makefile.boundary
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── characters/
│ │ │ ├── Makefile.characters
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── color/
│ │ │ ├── Makefile.color
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── graphics/
│ │ │ ├── Makefile.graphics
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── images.h
│ │ │ ├── main.c
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ ├── tiles/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ └── ASCII/
│ │ │ │ └── char_tiles.h
│ │ │ └── tools/
│ │ │ ├── digit_0.txt
│ │ │ ├── digit_1.txt
│ │ │ ├── digit_2.txt
│ │ │ ├── digit_3.txt
│ │ │ ├── digit_4.txt
│ │ │ ├── digit_5.txt
│ │ │ ├── digit_6.txt
│ │ │ ├── digit_7.txt
│ │ │ ├── digit_8.txt
│ │ │ ├── digit_9.txt
│ │ │ ├── extract_least.py
│ │ │ ├── join_digits.py
│ │ │ ├── shape0.txt
│ │ │ ├── shape1.txt
│ │ │ ├── shape2.txt
│ │ │ ├── shape3.txt
│ │ │ ├── shape4.txt
│ │ │ ├── shape5.txt
│ │ │ ├── shape6.txt
│ │ │ ├── shape7.txt
│ │ │ ├── shape8.txt
│ │ │ ├── shape9.txt
│ │ │ └── test.txt
│ │ ├── hello/
│ │ │ ├── Makefile.hello
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── input/
│ │ │ ├── Makefile.input
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── invaders/
│ │ │ ├── Makefile.invaders
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ ├── tile_aliases.h
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── matrix/
│ │ │ ├── Makefile.matrix
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ ├── tile_aliases.h
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── numbers/
│ │ │ ├── Makefile.numbers
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── palette/
│ │ │ ├── Makefile.palette
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── random/
│ │ │ ├── Makefile.random
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── sleep/
│ │ │ ├── Makefile.sleep
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── sounds/
│ │ │ ├── Makefile.sounds
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── target/
│ │ │ ├── Makefile.target
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── text/
│ │ │ ├── Makefile.text
│ │ │ ├── config/
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ └── zombies/
│ │ ├── Makefile.zombies
│ │ ├── config/
│ │ │ └── project_config.mk
│ │ ├── images.h
│ │ ├── main.c
│ │ └── tiles/
│ │ ├── 6x8/
│ │ │ ├── tile0.txt
│ │ │ ├── tile1.txt
│ │ │ ├── tile10.txt
│ │ │ ├── tile11.txt
│ │ │ ├── tile12.txt
│ │ │ ├── tile13.txt
│ │ │ ├── tile14.txt
│ │ │ ├── tile15.txt
│ │ │ ├── tile16.txt
│ │ │ ├── tile17.txt
│ │ │ ├── tile18.txt
│ │ │ ├── tile19.txt
│ │ │ ├── tile2.txt
│ │ │ ├── tile20.txt
│ │ │ ├── tile21.txt
│ │ │ ├── tile22.txt
│ │ │ ├── tile23.txt
│ │ │ ├── tile24.txt
│ │ │ ├── tile25.txt
│ │ │ ├── tile3.txt
│ │ │ ├── tile4.txt
│ │ │ ├── tile5.txt
│ │ │ ├── tile6.txt
│ │ │ ├── tile7.txt
│ │ │ ├── tile8.txt
│ │ │ └── tile9.txt
│ │ ├── 6x9/
│ │ │ ├── tile0.txt
│ │ │ ├── tile1.txt
│ │ │ ├── tile10.txt
│ │ │ ├── tile11.txt
│ │ │ ├── tile12.txt
│ │ │ ├── tile13.txt
│ │ │ ├── tile14.txt
│ │ │ ├── tile15.txt
│ │ │ ├── tile16.txt
│ │ │ ├── tile17.txt
│ │ │ ├── tile18.txt
│ │ │ ├── tile19.txt
│ │ │ ├── tile2.txt
│ │ │ ├── tile20.txt
│ │ │ ├── tile21.txt
│ │ │ ├── tile22.txt
│ │ │ ├── tile23.txt
│ │ │ ├── tile24.txt
│ │ │ ├── tile25.txt
│ │ │ ├── tile3.txt
│ │ │ ├── tile4.txt
│ │ │ ├── tile5.txt
│ │ │ ├── tile6.txt
│ │ │ ├── tile7.txt
│ │ │ ├── tile8.txt
│ │ │ └── tile9.txt
│ │ ├── 7x8/
│ │ │ ├── tile0.txt
│ │ │ ├── tile1.txt
│ │ │ ├── tile10.txt
│ │ │ ├── tile11.txt
│ │ │ ├── tile12.txt
│ │ │ ├── tile13.txt
│ │ │ ├── tile14.txt
│ │ │ ├── tile15.txt
│ │ │ ├── tile16.txt
│ │ │ ├── tile17.txt
│ │ │ ├── tile18.txt
│ │ │ ├── tile19.txt
│ │ │ ├── tile2.txt
│ │ │ ├── tile20.txt
│ │ │ ├── tile21.txt
│ │ │ ├── tile22.txt
│ │ │ ├── tile23.txt
│ │ │ ├── tile24.txt
│ │ │ ├── tile25.txt
│ │ │ ├── tile3.txt
│ │ │ ├── tile4.txt
│ │ │ ├── tile5.txt
│ │ │ ├── tile6.txt
│ │ │ ├── tile7.txt
│ │ │ ├── tile8.txt
│ │ │ └── tile9.txt
│ │ ├── 8x8/
│ │ │ ├── tile0.txt
│ │ │ ├── tile1.txt
│ │ │ ├── tile10.txt
│ │ │ ├── tile11.txt
│ │ │ ├── tile12.txt
│ │ │ ├── tile13.txt
│ │ │ ├── tile14.txt
│ │ │ ├── tile15.txt
│ │ │ ├── tile16.txt
│ │ │ ├── tile17.txt
│ │ │ ├── tile18.txt
│ │ │ ├── tile19.txt
│ │ │ ├── tile2.txt
│ │ │ ├── tile20.txt
│ │ │ ├── tile21.txt
│ │ │ ├── tile22.txt
│ │ │ ├── tile23.txt
│ │ │ ├── tile24.txt
│ │ │ ├── tile25.txt
│ │ │ ├── tile3.txt
│ │ │ ├── tile4.txt
│ │ │ ├── tile5.txt
│ │ │ ├── tile6.txt
│ │ │ ├── tile7.txt
│ │ │ ├── tile8.txt
│ │ │ └── tile9.txt
│ │ └── ASCII/
│ │ └── char_tiles.h
│ ├── games/
│ │ ├── bomber/
│ │ │ ├── Makefile.bomber
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── main.c
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── tile_aliases.h
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ ├── aquarius/
│ │ │ │ ├── aquarius_char_tiles.h
│ │ │ │ └── aquarius_quad_char_tiles.h
│ │ │ ├── char_tiles.h
│ │ │ └── quad_char_tiles.h
│ │ ├── chase/
│ │ │ ├── Makefile.chase
│ │ │ ├── Makefile.chase_BK
│ │ │ ├── bullet.h
│ │ │ ├── character.h
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── definitions.h
│ │ │ ├── end_screen.h
│ │ │ ├── game_settings.h
│ │ │ ├── game_text.h
│ │ │ ├── ghost.h
│ │ │ ├── horizontal_missile.h
│ │ │ ├── images.h
│ │ │ ├── init_images.h
│ │ │ ├── item.h
│ │ │ ├── level.h
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── makefiles.chase/
│ │ │ │ ├── Makefile.ack_targets
│ │ │ │ ├── Makefile.cc6303_targets
│ │ │ │ ├── Makefile.cc65_targets
│ │ │ │ ├── Makefile.cmoc_targets
│ │ │ │ ├── Makefile.cross-dev-kit_targets
│ │ │ │ ├── Makefile.emcc_targets
│ │ │ │ ├── Makefile.gcc_amiga_targets
│ │ │ │ ├── Makefile.gcc_atari_st_targets
│ │ │ │ ├── Makefile.gcc_targets
│ │ │ │ ├── Makefile.gcc_tms9900_targets
│ │ │ │ ├── Makefile.gcc_z8k_pcos_targets
│ │ │ │ ├── Makefile.lcc1802_targets
│ │ │ │ ├── Makefile.sdcc_targets
│ │ │ │ ├── Makefile.vbcc_targets
│ │ │ │ ├── Makefile.xtc68_targets
│ │ │ │ ├── Makefile.z88dk_targets
│ │ │ │ └── makefiles_z88dk/
│ │ │ │ ├── Makefile_z88dk_a-k
│ │ │ │ ├── Makefile_z88dk_l-p
│ │ │ │ ├── Makefile_z88dk_q-z
│ │ │ │ └── Makefile_z88dk_zsdcc
│ │ │ ├── memory/
│ │ │ │ ├── c16_memory.s
│ │ │ │ ├── creativision_memory.s
│ │ │ │ ├── gal_memory.asm
│ │ │ │ ├── gamate_memory.s
│ │ │ │ ├── oric1_memory.s
│ │ │ │ ├── pet_memory.s
│ │ │ │ └── vic20_memory.s
│ │ │ ├── move_player.h
│ │ │ ├── rocket.h
│ │ │ ├── settings.h
│ │ │ ├── shapes/
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ └── shape7.txt
│ │ │ │ └── 8x6/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ ├── skull.h
│ │ │ ├── speed_game_settings.h
│ │ │ ├── split_files/
│ │ │ │ ├── bullet.c
│ │ │ │ ├── character.c
│ │ │ │ ├── end_screen.c
│ │ │ │ ├── game_text.c
│ │ │ │ ├── ghost.c
│ │ │ │ ├── horizontal_missile.c
│ │ │ │ ├── init_images.c
│ │ │ │ ├── item.c
│ │ │ │ ├── level.c
│ │ │ │ ├── main.c
│ │ │ │ ├── move_player.c
│ │ │ │ ├── rocket.c
│ │ │ │ ├── skull.c
│ │ │ │ └── strategy.c
│ │ │ ├── strategy.h
│ │ │ ├── text_strings.h
│ │ │ ├── tiles/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ └── ASCII/
│ │ │ │ ├── aquarius/
│ │ │ │ │ └── aquarius_char_tiles.h
│ │ │ │ └── char_tiles.h
│ │ │ └── variables.h
│ │ ├── horde/
│ │ │ ├── Makefile.horde
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── images.h
│ │ │ ├── main.c
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ └── shape26.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ └── shape26.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ └── shape26.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape25.txt
│ │ │ │ └── shape26.txt
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ ├── aquarius/
│ │ │ │ └── aquarius_char_tiles.h
│ │ │ └── char_tiles.h
│ │ ├── shoot/
│ │ │ ├── Makefile.shoot
│ │ │ ├── bullet.h
│ │ │ ├── character.h
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── definitions.h
│ │ │ ├── doc/
│ │ │ │ ├── items.txt
│ │ │ │ ├── levels.txt
│ │ │ │ └── secrets.txt
│ │ │ ├── end_screen.h
│ │ │ ├── game_settings.h
│ │ │ ├── game_text.h
│ │ │ ├── ghost.h
│ │ │ ├── horizontal_missile.h
│ │ │ ├── images.h
│ │ │ ├── init_images.h
│ │ │ ├── item.h
│ │ │ ├── level.h
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── memory/
│ │ │ │ ├── c16_memory.s
│ │ │ │ ├── creativision_memory.s
│ │ │ │ ├── creativision_memory_light.s
│ │ │ │ ├── creativision_memory_tiny.s
│ │ │ │ ├── gal_memory.asm
│ │ │ │ ├── gamate_memory.s
│ │ │ │ ├── oric1_memory.s
│ │ │ │ ├── pet_memory.s
│ │ │ │ └── vic20_memory.s
│ │ │ ├── move_player.h
│ │ │ ├── rocket.h
│ │ │ ├── settings.h
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ └── shape26.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ └── shape3.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ └── shape6.txt
│ │ │ ├── skull.h
│ │ │ ├── sleep.h
│ │ │ ├── speed_game_settings.h
│ │ │ ├── split_files/
│ │ │ │ ├── bullet.c
│ │ │ │ ├── character.c
│ │ │ │ ├── end_screen.c
│ │ │ │ ├── game_text.c
│ │ │ │ ├── ghost.c
│ │ │ │ ├── horizontal_missile.c
│ │ │ │ ├── init_images.c
│ │ │ │ ├── item.c
│ │ │ │ ├── level.c
│ │ │ │ ├── main.c
│ │ │ │ ├── move_player.c
│ │ │ │ ├── rocket.c
│ │ │ │ ├── skull.c
│ │ │ │ ├── sleep.c
│ │ │ │ └── strategy.c
│ │ │ ├── strategy.h
│ │ │ ├── text_strings.h
│ │ │ ├── tiles/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile26.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── variables.h
│ │ ├── shuriken/
│ │ │ ├── Makefile.shuriken
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── docs/
│ │ │ │ ├── 12x12_multi_tile_1.txt
│ │ │ │ ├── 12x12_multi_tile_2.txt
│ │ │ │ ├── 12x16_multi_tile.txt
│ │ │ │ ├── 14x16_multi_tile.txt
│ │ │ │ ├── 14x16_multi_tile_2.txt
│ │ │ │ ├── 14x16_multi_tile_3.txt
│ │ │ │ ├── 14x16_multi_tile_4.txt
│ │ │ │ ├── 14x16_shapes.txt
│ │ │ │ ├── 16x12_multi_tile.txt
│ │ │ │ ├── 16x16_multi_tile.txt
│ │ │ │ ├── 7x8.txt
│ │ │ │ ├── mine_shape1.txt
│ │ │ │ └── mine_shape2.txt
│ │ │ ├── level_00_horiz.h
│ │ │ ├── level_01_vert_bars.h
│ │ │ ├── level_02_cross.h
│ │ │ ├── level_03_07_11_boss.h
│ │ │ ├── level_04_horiz_walls.h
│ │ │ ├── level_05_h_barriers.h
│ │ │ ├── level_06_rain.h
│ │ │ ├── level_08_vert_walls.h
│ │ │ ├── level_09_squares.h
│ │ │ ├── level_10_many.h
│ │ │ ├── levels.h
│ │ │ ├── main.c
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── screen_types.h
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ └── tiles/
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ ├── snake/
│ │ │ ├── Makefile.snake
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── control_player.h
│ │ │ ├── doc/
│ │ │ │ ├── game_play.txt
│ │ │ │ ├── info.txt
│ │ │ │ ├── levels.txt
│ │ │ │ └── whatsnew.txt
│ │ │ ├── game_text.h
│ │ │ ├── init_images.h
│ │ │ ├── levels.h
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── memory/
│ │ │ │ ├── c16_memory.s
│ │ │ │ ├── creativision_memory.s
│ │ │ │ ├── gamate_memory.s
│ │ │ │ └── vic20_memory.s
│ │ │ ├── move_snake.h
│ │ │ ├── settings.h
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ └── shape25.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ └── shape25.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ └── shape25.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ └── shape8.txt
│ │ │ │ └── 8x8/
│ │ │ │ └── shape25.txt
│ │ │ ├── snake.h
│ │ │ ├── split_files/
│ │ │ │ ├── control_player.c
│ │ │ │ ├── game_text.c
│ │ │ │ ├── main.c
│ │ │ │ ├── move_snake.c
│ │ │ │ ├── snake.c
│ │ │ │ └── variables.c
│ │ │ ├── tiles/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ ├── 8x8/
│ │ │ │ │ ├── tile0.txt
│ │ │ │ │ ├── tile1.txt
│ │ │ │ │ ├── tile10.txt
│ │ │ │ │ ├── tile11.txt
│ │ │ │ │ ├── tile12.txt
│ │ │ │ │ ├── tile13.txt
│ │ │ │ │ ├── tile14.txt
│ │ │ │ │ ├── tile15.txt
│ │ │ │ │ ├── tile16.txt
│ │ │ │ │ ├── tile17.txt
│ │ │ │ │ ├── tile18.txt
│ │ │ │ │ ├── tile19.txt
│ │ │ │ │ ├── tile2.txt
│ │ │ │ │ ├── tile20.txt
│ │ │ │ │ ├── tile21.txt
│ │ │ │ │ ├── tile22.txt
│ │ │ │ │ ├── tile23.txt
│ │ │ │ │ ├── tile24.txt
│ │ │ │ │ ├── tile25.txt
│ │ │ │ │ ├── tile3.txt
│ │ │ │ │ ├── tile4.txt
│ │ │ │ │ ├── tile5.txt
│ │ │ │ │ ├── tile6.txt
│ │ │ │ │ ├── tile7.txt
│ │ │ │ │ ├── tile8.txt
│ │ │ │ │ └── tile9.txt
│ │ │ │ └── ASCII/
│ │ │ │ ├── aquarius/
│ │ │ │ │ └── aquarius_char_tiles.h
│ │ │ │ └── char_tiles.h
│ │ │ └── variables.h
│ │ ├── stinger/
│ │ │ ├── Makefile.stinger
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── docs/
│ │ │ │ ├── empty_stinger1.txt
│ │ │ │ ├── empty_stinger2.txt
│ │ │ │ ├── score.txt
│ │ │ │ ├── stinger.txt
│ │ │ │ ├── stinger1.txt
│ │ │ │ └── stinger2.txt
│ │ │ ├── images.h
│ │ │ ├── main.c
│ │ │ ├── makefiles/
│ │ │ │ └── Makefile.override
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ ├── aquarius/
│ │ │ │ └── aquarius_char_tiles.h
│ │ │ └── char_tiles.h
│ │ ├── trex/
│ │ │ ├── Makefile.trex
│ │ │ ├── config/
│ │ │ │ ├── game_config.mk
│ │ │ │ └── project_config.mk
│ │ │ ├── docs/
│ │ │ │ ├── dino.txt
│ │ │ │ ├── shape2x8left.txt
│ │ │ │ ├── shape2x8right.txt
│ │ │ │ ├── tile2x8left.txt
│ │ │ │ └── tile2x8right.txt
│ │ │ ├── images.h
│ │ │ ├── main.c
│ │ │ ├── shapes/
│ │ │ │ ├── 6x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape2x8left.txt
│ │ │ │ │ ├── shape2x8right.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 6x9/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape2x8left.txt
│ │ │ │ │ ├── shape2x8right.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 7x8/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape2x8left.txt
│ │ │ │ │ ├── shape2x8right.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ ├── 8x6/
│ │ │ │ │ ├── shape0.txt
│ │ │ │ │ ├── shape1.txt
│ │ │ │ │ ├── shape10.txt
│ │ │ │ │ ├── shape11.txt
│ │ │ │ │ ├── shape12.txt
│ │ │ │ │ ├── shape13.txt
│ │ │ │ │ ├── shape14.txt
│ │ │ │ │ ├── shape15.txt
│ │ │ │ │ ├── shape16.txt
│ │ │ │ │ ├── shape17.txt
│ │ │ │ │ ├── shape18.txt
│ │ │ │ │ ├── shape19.txt
│ │ │ │ │ ├── shape2.txt
│ │ │ │ │ ├── shape20.txt
│ │ │ │ │ ├── shape21.txt
│ │ │ │ │ ├── shape22.txt
│ │ │ │ │ ├── shape23.txt
│ │ │ │ │ ├── shape24.txt
│ │ │ │ │ ├── shape25.txt
│ │ │ │ │ ├── shape26.txt
│ │ │ │ │ ├── shape2x8left.txt
│ │ │ │ │ ├── shape2x8right.txt
│ │ │ │ │ ├── shape3.txt
│ │ │ │ │ ├── shape4.txt
│ │ │ │ │ ├── shape5.txt
│ │ │ │ │ ├── shape6.txt
│ │ │ │ │ ├── shape7.txt
│ │ │ │ │ ├── shape8.txt
│ │ │ │ │ └── shape9.txt
│ │ │ │ └── 8x8/
│ │ │ │ ├── bird12x8left.txt
│ │ │ │ ├── bird12x8right.txt
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ └── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile2x8left.txt
│ │ │ │ ├── tile2x8right.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile2x8left.txt
│ │ │ │ ├── tile2x8right.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile2x8left.txt
│ │ │ │ ├── tile2x8right.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile2x8left.txt
│ │ │ │ ├── tile2x8right.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 8x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ └── ASCII/
│ │ │ └── char_tiles.h
│ │ └── verbix/
│ │ ├── Makefile.verbix
│ │ ├── config/
│ │ │ ├── game_config.mk
│ │ │ └── project_config.mk
│ │ ├── dictionary.h
│ │ ├── main.c
│ │ ├── makefiles/
│ │ │ └── Makefile.override
│ │ ├── shapes/
│ │ │ ├── 6x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ ├── 8x6/
│ │ │ │ ├── shape0.txt
│ │ │ │ ├── shape1.txt
│ │ │ │ ├── shape10.txt
│ │ │ │ ├── shape11.txt
│ │ │ │ ├── shape12.txt
│ │ │ │ ├── shape13.txt
│ │ │ │ ├── shape14.txt
│ │ │ │ ├── shape15.txt
│ │ │ │ ├── shape16.txt
│ │ │ │ ├── shape17.txt
│ │ │ │ ├── shape18.txt
│ │ │ │ ├── shape19.txt
│ │ │ │ ├── shape2.txt
│ │ │ │ ├── shape20.txt
│ │ │ │ ├── shape21.txt
│ │ │ │ ├── shape22.txt
│ │ │ │ ├── shape23.txt
│ │ │ │ ├── shape24.txt
│ │ │ │ ├── shape25.txt
│ │ │ │ ├── shape26.txt
│ │ │ │ ├── shape3.txt
│ │ │ │ ├── shape4.txt
│ │ │ │ ├── shape5.txt
│ │ │ │ ├── shape6.txt
│ │ │ │ ├── shape7.txt
│ │ │ │ ├── shape8.txt
│ │ │ │ └── shape9.txt
│ │ │ └── 8x8/
│ │ │ ├── shape0.txt
│ │ │ ├── shape1.txt
│ │ │ ├── shape10.txt
│ │ │ ├── shape11.txt
│ │ │ ├── shape12.txt
│ │ │ ├── shape13.txt
│ │ │ ├── shape14.txt
│ │ │ ├── shape15.txt
│ │ │ ├── shape16.txt
│ │ │ ├── shape17.txt
│ │ │ ├── shape18.txt
│ │ │ ├── shape19.txt
│ │ │ ├── shape2.txt
│ │ │ ├── shape20.txt
│ │ │ ├── shape21.txt
│ │ │ ├── shape22.txt
│ │ │ ├── shape23.txt
│ │ │ ├── shape24.txt
│ │ │ ├── shape25.txt
│ │ │ ├── shape26.txt
│ │ │ ├── shape3.txt
│ │ │ ├── shape4.txt
│ │ │ ├── shape5.txt
│ │ │ ├── shape6.txt
│ │ │ ├── shape7.txt
│ │ │ ├── shape8.txt
│ │ │ └── shape9.txt
│ │ ├── tiles/
│ │ │ ├── 6x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile25_ORIG.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 6x9/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│ │ │ │ ├── tile17.txt
│ │ │ │ ├── tile18.txt
│ │ │ │ ├── tile19.txt
│ │ │ │ ├── tile2.txt
│ │ │ │ ├── tile20.txt
│ │ │ │ ├── tile21.txt
│ │ │ │ ├── tile22.txt
│ │ │ │ ├── tile23.txt
│ │ │ │ ├── tile24.txt
│ │ │ │ ├── tile25 _ORIG.txt
│ │ │ │ ├── tile25.txt
│ │ │ │ ├── tile26.txt
│ │ │ │ ├── tile3.txt
│ │ │ │ ├── tile4.txt
│ │ │ │ ├── tile5.txt
│ │ │ │ ├── tile6.txt
│ │ │ │ ├── tile7.txt
│ │ │ │ ├── tile8.txt
│ │ │ │ └── tile9.txt
│ │ │ ├── 7x8/
│ │ │ │ ├── tile0.txt
│ │ │ │ ├── tile1.txt
│ │ │ │ ├── tile10.txt
│ │ │ │ ├── tile11.txt
│ │ │ │ ├── tile12.txt
│ │ │ │ ├── tile13.txt
│ │ │ │ ├── tile14.txt
│ │ │ │ ├── tile15.txt
│ │ │ │ ├── tile16.txt
│
================================================
FILE CONTENTS
================================================
================================================
FILE: .devcontainer/devcontainer.json
================================================
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
{
"name": "Cross-Lib",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "ghcr.io/cross-lib/devcontainers/base:1.0.6-ubuntu",
// "postStartCommand": "bash .devcontainer/post-start.sh",
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"files.trimTrailingWhitespace": false,
"python.defaultInterpreterPath": "/usr/local/bin/python"
}
},
"codespaces": {
// Set *default* codespaces specific settings.json values on container create.
"settings": {
"files.trimTrailingWhitespace": false,
"python.defaultInterpreterPath": "/usr/local/bin/python"
}
}
}
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
================================================
FILE: .devcontainer/post-start.sh
================================================
sudo install /usr/local/bin/p2hex /usr/bin
PATH=.:$PATH
================================================
FILE: .gitignore
================================================
.bash_history
.python_history
deliverables
**_shapes
roms/mame/*.zip
roms/vice/vic20/chargen
roms/vice/vic20/kernal
roms/vice/vic20/basic
roms/vice/c64/chargen
roms/vice/c64/kernal
roms/vice/c64/basic
roms/vice/plus4/chargen
roms/vice/plus4/kernal
roms/vice/plus4/basic
roms/vice/plus4/3plus1hi
roms/vice/plus4/3plus1lo
roms/vice/pet/chargen
roms/vice/pet/kernal1
roms/vice/pet/kernal2
roms/vice/pet/kernal4
roms/vice/pet/basic1
roms/vice/pet/basic2
roms/vice/pet/basic4
roms/vice/pet/edit*
roms/vice/pet/characters*
src/cfg/*
**.lis
**mapfile.txt
**global.txt
**A.BEE
*.o
*.def
*.swp
*.img
*.tap
*.prg
build/*
src/projects/*
**generated_assets
**__pycache__
src/assets/generated_assets/*
src/examples/matrix/generated_assets/*
src/examples/tiles/generated_assets/*
src/examples/invaders/generated_assets/*
src/examples/zombies/generated_assets/*
src/examples/sounds/generated_assets/*
src/games/chase/generated_assets/*
src/games/shoot/generated_assets/*
src/games/bomber/generated_assets/*
src/games/snake/generated_assets/*
src/games/horde/generated_assets/*
src/games/shoot/main.c
src/games/chase/main.c
src/games/snake/main.c
src/test/*.exe
src/*.asm
src/examples/full_lcc1802_combo.c
src/games/full_lcc1802_combo.c
src/experiments/*
src/wincmoc_main.c
src/*.asm
src/chase/*.s
src/nes/*.o
src/nes/nes_graphics.s
*.swp
*.swo
src/wincmoc_input.c
src/wincmoc_graphics.c
./tools/cpcrslib/cpcrslib.lib
./map.txt
*.stackdump
src/wincmoc_tmp.c
src/*combo.c
src/modules/*.pyc
*.lst
tools/EDIP1e/xchase.DSK
src/cross_lib/display/*.s
src/chase/wincmoc*
a.exe
a.out
src/games/full_combo_rand.c
src/examples/full_combo_rand.c
src/examples/reduced_full_lcc1802_combo.c
src/examples/reduced_full_lcc1802_color_combo.c
src/games/reduced_full_lcc1802_combo.c
src/games/reduced_full_lcc1802_color_combo.c
src/games/reduced_full_lcc1802_micro_combo.c
src/games/reduced_full_lcc1802_combo_no_sounds.c
src/debug/*.bin
src/debug/cprintf
src/debug/*.inf
src/debug/bbctest
src/debug/bbctest1
src/debug/bbctest2
src/debug/*.dsk
src/debug/*.nes
src/assets/*.pyc
src/debug/gamate_conio_test
src/debug/gamate_conio_test2
tools/cc65/gamate/gamate-fixcart.exe
tools/cc65/osic1p/srecord-1.64/config.log
tools/cmoc/mo5/f2k5.exe
tools/cc65/gamate/gamate-fixcart.out
tools/cc65/telestrat/tap2dsk.exe
tools/cc65/telestrat/tap2dsk
tools/cc65/telestrat/tap2dsk.out
tools/cc65/telestrat/old2mfm.exe
tools/cc65/telestrat/old2mfm
tools/cc65/telestrat/old2mfm.out
tools/cmoc/mo5/f2k5.out
tools/bbc/bbcim.exe
tools/bbc/bbcim.out
tools/generic/CC1541/cc1541.exe
tools/generic/CC1541/cc1541.out
tools/generic/cc1541.exe
tools/generic/cc1541.out
tools/generic/exomizer/exomizer.exe
tools/generic/exomizer/exomizer.out
tools/generic/exomizer.exe
tools/generic/exomizer
tools/generic/exomizer/src/asm.tab.h
tools/generic/exomizer/src/asm.tab.c
tools/generic/CC1541/cc1541
tools/z88dk/oz/makewzd.exe
tools/z88dk/oz/makewzd.out
tools/cmoc/coco/file2dsk/file2dsk.exe
tools/cmoc/coco/file2dsk/file2dsk.out
tools/cmoc/mo5/sap/*.exe
tools/cmoc/mo5/sap/*.out
tools/cmoc/mo5/sapfs.exe
tools/cmoc/mo5/sapfs.out
tools/cmoc/mo5/sap/sap2
tools/cc65/atari/mkatr-master/lsatr.exe
tools/cc65/atari/mkatr-master/mkatr.exe
tools/cc65/atari/mkatr-master/lsatr.out
tools/cc65/atari/mkatr-master/mkatr.out
tools/z88dk/cpc/nocart/nocart.exe
tools/z88dk/cpc/nocart/nocart.out
tools/olivetti_m20/m20.exe
tools/olivetti_m20/m20.out
tools/ti99/elf2ea5.exe
tools/ti99/elf2ea5.out
tools/ti99/ea5split.exe
tools/ti99/ea5split.out
logs/*.log
tools/z88dk/abc80/abcdisk-2.7/conftest.c
tools/z88dk/abc80/abcdisk-2.7/abcwrite
tools/z88dk/abc80/abcdisk-2.7/bin2abc
tools/z88dk/abc80/abcdisk-2.7/confdefs.h
**/*.sym
**/*.dSYM
**/*.DS_Store
================================================
FILE: README.md
================================================
# CROSS LIB

*Cross-Lib* and games built with it (e.g., Chase, Shoot, Bomber, Snake, Horde, Verbix, Shuriken, Stinger, Trex)
by Fabrizio Caruso (fabrizio_caruso@hotmail.com)
*Cross-Lib* is a *WORA* (Write Once Run Anywhere) framework for vintage systems, i.e.,
you code your game in C **once** and *Cross-Lib* builds the very same game for about 200 vintage systems (console, computers, etc.) with **the very same code**.
Read the <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/DISCLAIMER.md"><b>Disclaimer.</b></a>
<br />
-------------------------------------------
## CROSS-LIB-HD
Cross-Lib-HD is an equivalent backward-compatible framework, still work-in-progress:
http://github.com/Fabrizio-Caruso/CROSS-LIB-HD
Its goal is to provide a **higher number of redefinable tiles**, while maintaining the **same API's** and possibly the same number of supported targets as Cross-Lib.
Cross-Lib-HD is not meant to replace Cross-Lib because the latter can provide slightly smaller binaries, a higher number of colors and a higher number of targets with real graphics.
A game with the need for a higher number of tiles may require Cross-Lib-HD, whereas games with a lower number of tiles will work on both but on Cross-Lib may get a better color pallette and/or graphics on some very limited targets.
-------------------------------------------
## ARTICLES ABOUT CROSS-LIB
Article [in English], first published in C.A.L.L. Apple Volume 3 Number 1 (January 2023): <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/EnglishArticle.md" download>C.A.L.L.-Apple</a>
Article [in French], first published in the French magazine "Programmez! Hors série #6": <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/articles/CROSS_LIB_PUBLIC.pdf" download>Programmez!</a>
-------------------------------------------
## THE GAMES
<p float="left">
<img src="snapshots/XSnake_MSX2.png" width="100" />
<img src="snapshots/XStinger_Vic20.png" width="100" />
<img src="snapshots/XVerbix_Vic20_gameplay.jpg" width="100" />
<img src="snapshots/XShoot_Level1_Skulls_VIC20.jpg" width="100" />
<img src="snapshots/XShuriken_Vic20_gameplay.jpg" width="100" />
</p>
Click on the links below to play the games on your browser.
1. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#trex"><b>Trex</b></a> is a mini-game and an obvious clone of off-line Chrome T-Rex game.
2. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#stinger"><b>Stinger</b></a> is a tank-shooter with several enemies, levels, power-ups and items to pick.
3. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#shuriken"><b>Shuriken</b></a> is somehow inspired by Pac-man and Pengo.
4. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#verbix"><b>Verbix</b></a> is a Scrabble-like game that looks like Tetrix with letters.
5. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#horde"><b>Horde</b></a> is a zombie shooter with several different enemies, levels, power-ups and special items to pick.
6. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#snake"><b>Snake</b></a> is my personal re-interpretation of Nibbler (arcade game) to which I have added more game elements.
7. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#bomber"><b>Bomber</b></a> is a mini-game and clone of Air Attack (aka Blitz).
8. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#shoot"><b>Shoot</b></a> is a shooter somehow similar to Robotron. It has many items and secrets to discover.
9. <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GAMES.md#chase"><b>Chase</b></a> is somehow similar to *Gnome Robots* but in real-time game and with several items and power-ups.
-------------------------------------------
## MORE THAN 200 SUPPORTED TARGETS
Cross-Lib can be used to build games for <ins>more than 200 different vintage systems</ins> (computers, consoles, arcade boards, pocket calculators, etc.).
An almost complete list of the supported systems with their status is in: <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/STATUS.md"><b>Supported Systems</b></a>
Some supported vintage CPU architectures are:
- `GBZ80`
- `Intel 8080/85`
- `Intel 8086`
- `MOS 6502`
- `Motorola 6803`
- `Motorola 6809`
- `RCA 1802`
- `TMS 9900`
- `Zilog 80`
Cross-Lib has also some support for vintage 16-bit and 32-bit systems and the native host PC.
For a more complete list of architectures you can look at: <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/ARCHITECTURES.md"><b>Architectures</b></a>
-------------------------------------------
## SUPPORTED HOSTS
Cross-Lib runs under __any POSIX__-like environment such as
- ***Linux***
- ***Windows/Cygwin***
- ***Windows Subsystem for Linux***
- ***Windows/MSYS2***
- ***MacOS***
- ***FreeBSD***
-------------------------------------------
## REQUIREMEMTS
Cross-Lib requires a **POSIX** environment with at least
- **Python** (2.7 is the bare minimum but 3.x provides more features)
- **make** (GNU make)
- one or more **ANSI C compiler(s)**
If you want to produce interactive binaries for the *native terminal* you need a **native compiler** (*gcc* or any other compiler such as *clang*) with **ncurses** or **ncursesw**.
In order to build binaries for a supported vintage system, the corresponding **cross-compiler** has to be installed (see the list of supported targets to see which compiler is required).
### Currently supported cross-compilers
The current set of supported cross-compilers is:
- `CC65`,
- `Z88DK` (`SCCZ80` and `ZSDCC`),
- `CMOC`,
- `LCC1802`,
- `TMS9900-GCC`
- `ACK`,
- `VBCC`,
- `CC6303`
Partially supported cross-compilers:
- `GCC-Z8K`,
- `XTC68`
- `GCC-ATARI-ST`,
- `GCC-AMIGA`,
For more details click on <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/COMPILERS.md"><b>Compilers</b></a>
### Tools to generate disk/tape/cartridge images
Very few targets use special tools to generate tape/disk/cartridge images.
Some of these tools are built from source on the fly the first time they are required. Most require *gcc* or *g++*.
In order to generate disk images for the *Apple][* and derivative targets Cross-Lib uses *ac.jar* for which **java** is necessary.
To generate tape images for the *CoCo 1/2* and *Dragon 32/64* targets Cross-Lib uses bin2cas.pl for which **perl** is required.
-------------------------------------------
## NO ACTUAL INSTALLATION NECESSARY
An actual installation is not necessary because Cross-Lib is made of scripts and a C *source library*, which is compiled on the fly when building binaries for target systems.
Moreover even installing the required compilers may not be necessary because Cross-Lib can be used through GitHub Codespaces (with <ins>preinstalled</ins> compilers) on any browser.
Additionally ou can also use it with
- the pre-built docker image (compilers are <ins>preinstalled</ins>),
- the dockerfile to build an image or (compilers are <ins>preinstalled</ins>),
- a clone of this repository (which requires the installation of the compilers).
For the details click on <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/INSTALL.md"><b>Installation</b></a>
-------------------------------------------
## THE `xl` SCRIPT
Inside the project main directory, you find the `src` and the `build` directories:
- `src` contains the source code and all other files that are necessary to build the games and the examples;
- `build` is supposed to be empty at first and it is the target directory for the build process.
First of all you need to be in the `src` directory.
From `src` you can use the `xl` script to do different operations on projects.
`xl` is used as follows:
```
xl <command> <[optional] parameters>
```
You can get help with:
```
xl help <[optional] command>
```
You can build games and examples with :
`xl <game_or_example_name> <[optional] system_name>`
For example `xl snake vic20` builds the *snake* for the *Commodore Vic 20 +16K* and `xl stinger` builds *stinger* for the *native terminal*.
For more details click on <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/XL.md"><b>XL script</b></a>
-------------------------------------------
## THE TOOL-CHAIN
Cross-Lib provides a full tool-chain to build universal vintage 8-bit games.
### Cross-Lib components
Cross-Lib provides:
- a C library with hardware-agnostic APIs for game development;
- the "user-friendly" script `xl`.
### The build process
When a game is built for a specific target, the Cross-Lib tool-chain will automatically:
1. if needed, **convert abstract graphics assets** into target specific assets on the fly;
2. **compile and link** the game code (and the target-specific game assets) by using the appropriate compiler;
3. if needed, whenever possible, **create disk/cassette/cartridge images**.
### The Workflow
The user has to:
- **code** the game in C with Cross-Lib APIs in a hardware-agnostic way;
- **draw** the abstract graphics assets and store them in the *tiles* or *shapes* directory;
- **run** the `xl` script (see below).

For more details click on <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/BUILD_PROCESS.md"><b>Build</b></a>
-------------------------------------------
## HOW TO CODE WITH CROSS-LIB
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/HARDWARE_AGNOSTIC_CODE.md
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/CROSS_LIB_APIS.md
-------------------------------------------
## LOADING THE GAMES
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/HOW_TO_LOAD.md
-------------------------------------------
## ACKNOWLEDGEMENTS
Cross-Lib would not exist without the cross-compilers and the support of their developers and the support of some people who have helped me handle the input/output of some targets.
A partial list of the people who have helped in found in <a href="https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/CREDITS.txt"><b>Credits</b></a>
-------------------------------------------
## LICENCE
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for non-commercial applications,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in
a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
For example I do not authorize selling hardware, software, firmware or any other product that contains any part of Cross-Lib and/or its games (e.g., pre-loaded disks, tapes, cartridges, etc.).
On the other hand I authorize people to load the games in the most convenient way for their personal use.
================================================
FILE: cfg/___empty.cfg
================================================
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="___empty">
<video>
<target index="0" view="Screen 0 Standard (4:3)" />
</video>
</system>
</mameconfig>
================================================
FILE: cfg/default.cfg
================================================
<?xml version="1.0"?>
<!-- This file is autogenerated; comments and unknown tags will be stripped -->
<mameconfig version="10">
<system name="default" />
</mameconfig>
================================================
FILE: docs/ARCHITECTURES.md
================================================
## SUPPORTED ARCHITECTURES
### 8-BIT ARCHITECTURES
- COSMAC RCA 1802 and derivates
- Intel 8080 and derivatives
- MOS 6502 and derivatives
- Motorola 6809 and derivatives
- Motorola 6803
- Zilog 80 and derivatives
### 16-BIT ARCHITECTURES
- Intel 8088/8086
- Motorola 68000/68008
- PDP11
- TMS 9900
- Zilog Z8000
### 32-BIT ARCHITECTURES
- PowerPC
- Intel 386
- Motorola 68020
- MIPS32r2 (little-endian)
### 32/64-BIT ARCHITECTURE
We also support any current architecture for which GCC can produce a working binary.
================================================
FILE: docs/Alice32k.txt
================================================
By Christophe Possamaï
//***************************************
//* CODE DEMO redefinition caractere *
//* ligne de commande pour compilation: *
//* cc68 -tmc10 tuto.c -o tuto *
//* pour executer sur alice: *
//* chargement: CLOADM *
//* execution: EXEC *
//***************************************
#include <stdio.h>
// definition Registres
#define R0 0xBF20 //commande
#define R1 0xBF21 //paramètre principal
#define R2 0xBF22 //paramètre
#define R3 0xBF23 //paramètre
#define R4 0xBF24 //pointeur auxiliaire haut
#define R5 0xBF25 //pointeur auxiliaire bas
#define R6 0xBF26 //pointeur principal haut
#define R7 0xBF27 //pointeur principal bas
#define EXEC 0x8 // a ajouter au registe pour execution.
// Definition couleurs
#define noir 0
#define rouge 1
#define vert 2
#define orange 3
#define bleu 4
#define magenta 5
#define cyan 6
#define rose 7
#define vertc 10
#define jaune 11
#define magentac 13
#define blanc 15
char tuiles_0[] ={0x00,0x00,0x7C,0x92,0x92,0xFE,0xEE,0x7C,0x54,0x00};
char tuiles_1[] ={0x7E,0xC3,0xA9,0xFD,0xFD,0xFD,0xB9,0x91,0xC3,0x7E};
// fonction Poke
void poke(uint16_t addr, uint8_t value) {*((uint8_t*)addr) = value;}
//fonction Peek
uint8_t peek(uint16_t address) {
// Utilisez un pointeur pour accéder à l'adresse mémoire spécifiée
uint8_t *memoryPointer = (uint8_t *)address;
// Utilisez le pointeur pour lire la valeur à l'adresse spécifiée
return *memoryPointer;
}
// positionne le curseur pour afficher un caractere
void posxy(unsigned char colonne, unsigned char ligne) {
poke(R6, ligne); // R6 (MP / LIGNE)
poke(R7, colonne); // R7 (MP / COL)
}
// parametre
void param(unsigned char b) {
poke(R2, b); // R2 (B)
}
// defnie la couleur du prichain caractere
void color(unsigned char crayon, unsigned char papier) {
unsigned char b=0,a;
if(crayon>rose) {
b=1;
crayon-=8;
}
if(papier>rose) {
b=1;
papier-=8;
}
a=papier+(crayon*16);
poke(R2, b); // R2 (B)
poke(R3, a); // R3 (A) couleur
}
// affiche un caractere
void affichr(unsigned char c) {
poke(R1, c); // R1 (C)
poke(R0+EXEC, 0); // R0 + EXEC (KRF)
}
// fonction pour afficher une chaine de caractere ASCII a une position et avec les couleurs.
void print(signed char x, signed char y, char *texte) {
char *c = texte; // Correction ici
if (x < 0) {
x = (40 - sizeof(texte)) / 2;
}
posxy(x, y);
for (; *c != '\0'; c++) {
poke(R1, *c);
poke(R0+EXEC, 1);
}
}
// Fonction pour redefinir un caracteres
void redefin(char numcaractere,char* data){ //CARACTERES REDÉFINIS
uint16_t A = numcaractere+192;
char i;
for (i = 0; i < 10; ++i) {
poke(R4, A / 256);
poke(R5, A & 255);
poke(R1, data[i]);
poke(R0+EXEC, 48 + 4); // OCT + AUX_PTR (EXEC)
A += 4;
}
}
void main() {
redefin(0,tuiles_0); //redifinition du caractere 0/128
redefin(1,tuiles_1); //redifinition du caractere 1/128
color(rouge,noir);
print(6, 0,"Demo redefinition caracteres");
color(bleu,noir);
param(128+32+16);// bascule sur les caractères redéfinit
posxy(19, 8);
affichr(0);
posxy(20, 8);
affichr(1);
}
================================================
FILE: docs/BUILD.md
================================================
# BUILD INSTRUCTIONS
## Build the default target for a given system
In order to build a game or a test, you need to be in the `src` directory.
You build a project (either a game or a test) for a specific system by either using the `xl build` script or an equivalent `make` command.
A convenient shortcut is
### Using `xl build`
I recommend that you use `xl build` as follows:
`xl build [project_name] [optional system_name] [optional number of threads]`
where `[project name]` is either an example, a built-in game or user-defined project.
A convenient shortcut is using just `xl` as follows:
`xl [project_name] [optional system_name] [optional number of threads]`
The `[optional system_name]` parameter is the name of the target. If no target is specified then the native target (the host terminal) is implied.
The `[optional number of threads]` is used to specify the number of threads to use for multiple targets that can be built in parallel.
Built-in games are
`chase`, `shoot`, `bomber`, `snake`, `horde`.
Current examples are:
`helloworld`, `text`, `pause`, `background`, `tiles`, `input`, `sounds`, `matrix`, `zombies`, `invaders`.
For the list of supported systems look at
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/STATUS.md
If no system name is given, a native version of the game or test is built by using `gcc` and `ncurses`.
*Only when using the script*: If you use the script you can pass `games`, `tests` or `all` as `[game_or_test_name]` to build all games, tests or all projects (games and tests) for a specific system or list of systems.
As system you can also pass a group of systems such as:
- `[compiler name]_targets` to build a given project for all targets compiled by a given compiler (e.g., `cc65_targets`, `z88dk_targets`, `cmoc_targets`, etc.)
- `all` to build a given project on all possible targets (avoid this if you are not sure as it fails if you have not installed *all* compilers).
Examples (`xl build` is shortened to `xl`):
- `xl snake` -> It builds Cross Snake for the native console by using `gcc` and `ncurses`.
- `xl chase` -> It builds Cross Chase for the native console by using `gcc` and `ncurses`.
- `xl bomber atari` -> It builds Cross Bomber for the Atari 8-bit target (by using the appropriate cross-compiler, i.e., CC65)
- `xl snake vic20` -> It builds Cross Snake for the Commodore Vic 20.
- `xl games msx` -> It builds all game projects for the MSX target (by using the appropriate cross-compiler, i.e., the ones in Z88DK).
- `xl bomber cc65_targets` -> It builds Cross Bomber for all targets that use CC65.
- `xl tests c64` -> It builds all tests for the Commodore 64 target
- `xl all coco` -> It builds all projects (games and tests) for the TRS-80 Color Computer (by using the appropriate cross-compiler, i.e., CMOC)
### Using `make`
Using a standard `make` command is possible but you will get fewer options.
For game projects you can use:
`make [system_name] -f ./games/[game_name]/Makefile.[game_name]`
For test projects you can use:
`make [system_name] -f ./tests/[test_name]/Makefile.[test_name]`
Examples for games:
- `make vic20 -f ./games/horde/Makefile.horde` builds *Cross Horde* for Commodore Vic 20.
- `make c64 -f ./games/chase/Makefile.chase` builds *Cross Chase* for Commodore 64.
- `make nes -f ./games/shoot/Makefile.shoot` builds *Cross Shoot* for the Nintendo NES videogame console.
- `make spectrum -f ./games/bomber/Makefile.bomber` builds *Cross Bomber* for the Sinclair ZX Spectrum.
- `make ti83 -f ./games/chase/Makefile.chase` builds *Cross Chase* for the Texas Instrument TI 83 scientific calculator.
- `make ncurses -f ./games/chase/Makefile.chase` builds *Cross Chase* for all targets by using GCC for the native host console (e.g., CYGWIN, Linux, etc. console).
- `make cc65_targets ./games/chase/Makefile.chase` builds *Cross Chase* for all targets that are built with the CC65 cross-compiler for the MOS 6502-based systems.
- `make cmoc_targets ./games/chase/Makefile.chase` builds *Cross Chase* for all targets that are built with the CMOC cross-compiler for the Motorola 6809-based systems.
- `make z88dk_targets ./games/chase/Makefile.chase` builds *Cross Chase* for all targets that are built with the SCCZ80 and ZSDCC cross-compilers of the Z88DK dev-kit for Zilog 80-based and Intel 8080-based systems.
- `make cc65_targets -f ./games/shoot/Makefile.shoot` builds *Cross Shoot* for all targets that are built with the CC65 cross-compiler for the MOS 6502-based systems.
- `make z88dk_targets -f ./games/bomber/Makefile.bomber` builds *Cross Bomber* for all targets that are built with the SCCZ80 and ZSDCC cross-compilers of the Z88DK dev-kit for Zilog 80-based and Intel 8080-based systems.
- `make lcc1802_targets -f ./games/bomber/Makefile.bomber` builds *Cross Bomber* for all targets that are built with the LCC1802 cross-compiler for the RCA COSMAC 1802-based systems.
Examples for tests:
- `make vic20 -f ./tests/tiles/Makefile.tiles` builds the test `tiles` for the Commodore Vic 20.
- `make cpc -f ./tests/sounds/Makefile.sounds` builds the test `sounds` for the Amstrad CPC computer.
- `make atari -f ./tests/invaders/Makefile.invaders` builds the tests `invaders` for the Atari 8-bit computer.
## Targets built by multiple dev-kits
Some targets, e.g., CP/M and Commodore 128, can be built by two different compilers because they can run different CPU architectures or because we may want to have multiple versions.
In such cases we can specify the CPU in the target name:
Examples using `xl build`
- `xl build chase c128_targets` builds Cross Chase for all Commodore 128 targets for both the MOS 8502 and for the more exotic Zilog 80 non-CP/M mode.
- `xl build chase c128_8502_targets` builds Cross Chase for all Commodore 128 targets for the MOS 8502 architecture in both 40 and 80 column mode.
- `xl build chase c128_z80_targets` builds Cross Chase for all Commodore 128 targets for the Zilog 80 non-CP/M mode in both 40 and 80 column mode.
- `xl build chase cpm_targets` builds Cross Chase for all "generic" CP/M targets for both the Intel 8080 and Zilog 80 architecture.
- `xl build chase cpm_8080_targets` builds Cross Chase for all "generic" CP/M targets for the Intel 8080 architecture (compatible with Zilog 80 systems).
- `xl build chase cpm_z80_targets` builds Cross Chase for all "generic" CP/M targets for both the Zilog 80 architecture (not compatible with Intel 8080 systems).
Examples using `make`:
- `make c128_targets -f ./games/chase/Makefile.chase` builds Cross Chase for all Commodore 128 targets for both the MOS 8502 and for the more exotic Zilog 80 non-CP/M mode.
- `make c128_8502_targets -f ./games/chase/Makefile.chase` builds Cross Chase for all Commodore 128 targets for the MOS 8502 architecture in both 40 and 80 column mode.
- `make c128_z80_targets -f ./games/chase/Makefile.chase` builds Cross Chase for all Commodore 128 targets for the Zilog 80 non-CP/M mode in both 40 and 80 column mode.
- `make cpm_targets -f ./games/chase/Makefile.chase` builds Cross Chase for all "generic" CP/M targets for both the Intel 8080 and Zilog 80 architecture.
- `make cpm_8080_targets -f ./games/chase/Makefile.chase` builds Cross Chase for all "generic" CP/M targets for the Intel 8080 architecture (compatible with Zilog 80 systems).
- `make cpm_z80_targets -f ./games/chase/Makefile.chase` builds Cross Chase for all "generic" CP/M targets for both the Zilog 80 architecture (not compatible with Intel 8080 systems).
================================================
FILE: docs/BUILD_PROCESS.md
================================================
The `xl` script will trigger the full build process which will produce the target specific version of the project
or massively build the same project for several targets (or even build several projects for one or more targets).
For example for the build of a project for the sole GameBoy target we may represent
the interactions of various Cross-Lib components with this diagram:

================================================
FILE: docs/COMPILERS.md
================================================
# SUPPORTED COMPILERS
The program is written in ANSI C and currently compiled with
- CC65 for all MOS 6502 targets (http://www.cc65.org/),
- SCCZ80 (from Z88DK) for most Zilog 80 and Intel 8080 targets (https://www.z88dk.org/),
- ZSDCC (from Z88DK) for some Zilog 80 and Intel 8080 targets (https://www.z88dk.org/),
- CMOC for Motorola 6809 targets (https://perso.b2b2c.ca/~sarrazip/dev/cmoc.html),
- LCC1802 for COSMAC RCA 1802 targets (https://sites.google.com/site/lcc1802/downloads),
- ACK for PC 8088/8086, CP/M Intel 8080, Linux 386/68K/PPC/MIPS, PDP11 (https://github.com/davidgiven/ack),
- XTC68 (C68) for the Motorola 68008-based Sinclair QL (https://github.com/stronnag/xtc68),
- VBCC for BBC Micro, BBC Master and other systems (http://www.compilers.de/vbcc.html)
- Z8KGCC for the Zilog Z8000-based Olivetti M20 series (http://www.z80ne.com/m20/sections/download/z8kgcc/z8kgcc.html),
- CC6303 for the Motorola 6803-based targets (https://github.com/EtchedPixels/CC6303 or https://github.com/zu2/CC6303),
- "GCC for Atari ST" (http://vincent.riviere.free.fr/soft/m68k-atari-mint/),
- "GCC for Amiga" (https://github.com/bebbo/amiga-gcc),
- "GCC for TI" for the Texas TI99/4a (https://github.com/mburkley/tms9900-gcc),
- GCC for modern 32/64-bit PC under any operating systems
Previous versions used
- WinCMOC for 6809 targets (https://sourceforge.net/projects/cmoc-win32/).
WinCMOC has been abandoned because it uses an old CMOC version that has broken pointer to functions and because it is no longer maintained by its author.
For other targets, the following compilers and dev-kits may be included in future versions of the tool-chain:
- QDOS-GCC for the Sinclair QL (http://morloch.hd.free.fr/qdos/qdosgcc.html)
- SDCC for Z80 and other targets (http://sdcc.sourceforge.net/),
- PVSNESLIB for the Super Nintendo Entertainment System (https://github.com/alekmaul/pvsneslib),
- amiga-os-toolchain for all Amigas (https://github.com/cahirwpz/amigaos-cross-toolchain),
- GCC6809 for other 6809 targets (https://sourceforge.net/projects/freewpc/files/GCC-6809/),
- TIGCC for 68k-based TI calculators (http://tigcc.ticalc.org/).
The tool-chain also uses some third-party target-specific tools to create usable cassette/disk/rom images.
This is documented in https://github.com/Fabrizio-Caruso/CROSS-CHASE/blob/master/tools/README.txt
================================================
FILE: docs/COMPILER_NAMES.md
================================================
## Compiler names of currently supported compilers
- `ack`
- `cc65`
- `cmoc`
- `emcc` (totally experimental Emscripten to produce WebAssembly/Javascript)
- `gcc`
- `gcc_amiga`
- `gcc_atari_st`
- `gcc_ti99`
- `gcc_z8k` (currently buildable only under Linux)
- `lcc1802`
- `xtc68`
- `z88dk` (for both the SCCZ80 and the ZSDCC cross-compiler in Z88DK)
================================================
FILE: docs/CREDITS.txt
================================================
CREDITS
I have been helped by people who are involved in the cross compilers Z88Dk, CC65, CMOC, ACK, LCC1802, GCC for TI99 development.
In particular I must thank:
- Alex Thissen for his support on the docker release and on the Atari Lynx target
- Stefano Bodrato for lots of help on all Z80 targets including development on the Z88Dk to support my library and games.
- Bill Rowe for improving LCC1802 and supporting my library
- Antonino Porcino for providing his online emulators and helping me test my games.
- Marcen van Tongeren: for implementing the dev-kit in LCC1802 and supporting CrossLib
- Christian Groessler: has helped me to improve the Makefile and fix an issue on the Atari 8-bit color version.
- Simon Jonassen: Help on getting a good routine for the keyboard input for all CoCo and Dragon models.
- Tursi (from AtariAge) for his Classic99 emulator, his support with libti99 and general help on the TI99/4A
- Asmusr (from AtariAge) for his JS99er JavaScript emulator, support on the cartUrl parameter, and the generation of cartridge images from EA5 files
- Mark Burkley for his great work and support on GCC for the TI compiler
- *Hamlet* for the logo.
================================================
FILE: docs/CROSSLIB.md
================================================
## CROSSLIB
For each target, at least one of the following modes has to be implemented:
1. memory-mapped graphics (display can be implemented by writing bytes into video memory)
2. conio-like (display is performed by either direct conio APIs or a wrapper that provides conio APIs, e.g., ADM3/A, VT52, VT100, etc.)
3. TGI (CC65-specific graphics APIs)
4. Z88DK Sprites (Z88DK-specific sprite APIs)
5. CPCRSLIB (Amstrad CPC-specific graphics APIs)
6. bit-mapped (display is implemented by writing into video memory and each bytes corresponds to one or more pixels)
7. buffered (stdlib-only "graphics" for targets with just stdlib support)
A graphic mode may implement the concrete graphics by either calling low level graphics instructions (e.g., writing into video-memory) or by calling higher level instructions (e.g., using control codes).
For example for a CPM target with ADM3/A control codes, we use
1. CrossLib APIs that call
2. conio.h APIs that call
3. ADM3/A control codes
For a target with direct or indirect video memory (e.g., Commodore 64, MSX, etc.), one may use:
1. CrossLib APIs that implement
2. Direct (or indirect) writes into video memory
Remark: For some targets multiple implementations are possible (C64 may use conio APIs as provided by C65, memory-mapped graphics, TGI APIs)
================================================
FILE: docs/CROSS_LIB_APIS.md
================================================
# CROSS-LIB APIs
## GRAPHICS
`_XL_INIT_GRAPHICS()`
It initializes the graphics. Necessary for any build that wants to show anything on the screen.
--------------------------------------------------------
`XSize`: Number of tiles that can be displayed horizontally on the (usable) screen
`YSize`: Number of tiles that can be displayed vertically on the (usable) screen
`_TILE_1`, ..., `_TILE_24`, `_DOLLAR_TILE`: Displayable tiles with _XL_DRAW
`_XL_BLACK`, `_XL_WHITE`, `_XL_RED`, `_XL_CYAN`, `_XL_GREEN`, `_XL_YELLOW`, `_XL_BLUE`: Currently available colors
--------------------------------------------------------
`_XL_DRAW(X, Y, T, C)`
It displays tile T at position (X,Y) with color C if color C is available or its "closest" match when C is not supported by a target.
--------------------------------------------------------
`_XL_DELETE(X,Y)`
It deletes a tile-sized area of the screen at position (X,Y)
--------------------------------------------------------
`_XL_CLEAR_SCREEN()`
It clears the whole screen.
--------------------------------------------------------
`_XL_WAIT_VSYNC()`
It waits for the vertical synch if this is supported by the target. It does nothing otherwise.
--------------------------------------------------------
## TEXT
A "Cross-Lib string" is string formed with only the following 37 possible characters
`_XL_SPACE`, `_XL_a`, ..., `_XL_z`, `_XL_A`, ..., `_XL_Z`, `'0'`, ..., `'9'`
where capital/small letter may be displayed as the same character depending on whether the target supports different display for capital vs small letters.
--------------------------------------------------------
`_XL_PRINT(X,Y,S)`
It prints the "Cross-Lib string" S starting a position (X,Y).
--------------------------------------------------------
`_XL_PRINT_CENTERED(S)`
Same as `XL_PRINT` but it just displays the "Cross-Lib string" S at the center of the screen
--------------------------------------------------------
`_XL_PRINT_CENTERED_ON_ROW(Y,S)`
Same as `XL_PRINT` but it just displays the "Cross-Lib string" S centered on row Y
--------------------------------------------------------
`_XL_PRINT_CENTERED_ON_ROW_WITH_COLOR(Y,C,S)`
Same as `_XL_PRINT_CENTERED_ON_ROW` but with color C (if the target supports text color)
--------------------------------------------------------
`_XL_PRINT_CENTERED_WITH_COLOR(C,S)`
Same as `_XL_PRINT_CENTERED` but with color C (if the target supports text color)
--------------------------------------------------------
`_XL_PRINTD(X,Y,L,N)`
It prints the positive integer number N in L digits (1<=L<=5) starting at position (X,Y)
--------------------------------------------------------
`_XL_SET_TEXT_COLOR(C)`
It sets the text color to C. Such color will be used on next PRINT and PRINTD for targets that support colored text.
If any other display operation is present (e.g., `_XL_DRAW`), then there is no guarantee that the color C will be used afterwards.
--------------------------------------------------------
## INPUT
`_XL_INIT_INPUT()`
It initializes the input (joystick/keyboard). Necessary for any program that needs to receive an input
--------------------------------------------------------
`_XL_INPUT()`
It returns a value J that represents the specific received input or absence of input at the moment of its execution (keyboard may be buffered, though).
The result J is meant to be used with the Boolean functions below.
--------------------------------------------------------
`_XL_UP(J)`, `_XL_DOWN(J)`, `_XL_LEFT(J)`, `_XL_RIGHT(J)`, `_XL_FIRE(J)`
These Boolean functions return 1 (true) if J represents a specific movement or fire button/key, and 0 (false) otherwise.
--------------------------------------------------------
`_XL_KEY_PRESSED()`
This Boolean function returns 1 (true) if any key or fire button is pressed.
--------------------------------------------------------
`_XL_WAIT_FOR_INPUT()`
It waits for any key or fire button to be pressed.
--------------------------------------------------------
## SOUND
`_XL_INIT_SOUND()`
It initializes the sound system. Necessary for any program that produces sound.
--------------------------------------------------------
`_XL_ZAP_SOUND()`: Long rising sound
`_XL_PING_SOUND()`: Short high-pitched sound
`_XL_TICK_SOUND()`: Very short high-pitched sound
`_XL_TOCK_SOUND()`: Very short low-pitched sound
`_XL_EXPLOSION_SOUND()`: Long noise
`_XL_SHOOT_SOUND()`: Short noise
## SLEEP
`_XL_SLEEP(S)`
It waits S seconds or an approximations of S seconds depending on the target
--------------------------------------------------------
`_XL_SLOW_DOWN(T)`
It waits T loops (0<=T<=65535)
--------------------------------------------------------
## RANDOM
`_XL_RAND()`
It generates a pseudo-random number in the range \[0,32767\]
================================================
FILE: docs/CROSS_LIB_APIS.txt
================================================
--------------------------------------------------------------------------------------
CROSS-LIB APIs
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
GRAPHICS
--------------------------------------------------------------------------------------
--------------------------------
_XL_INIT_GRAPHICS()
It initializes the graphics. Necessary for any build that wants to show anything on the screen.
--------------------------------
XSize: Number of tiles that can be displayed horizontally on the (usable) screen
--------------------------------
YSize: Number of tiles that can be displayed vertically on the (usable) screen
--------------------------------
_TILE_1, ..., _TILE_24, _DOLLAR_TILE
Displayable tiles with _XL_DRAW
--------------------------------
_XL_BLACK, _XL_WHITE, _XL_RED, _XL_CYAN, _XL_GREEN, _XL_YELLOW, _XL_BLUE
Currently available colors
--------------------------------
_XL_DRAW(X, Y, T, C)
It displays tile T at position (X,Y) with color C if color C is available or its "closest" match when C is not supported by a target.
--------------------------------
_XL_DELETE(X,Y)
It deletes a tile-sized area of the screen at position (X,Y)
--------------------------------
_XL_CLEAR_SCREEN()
It clears the whole screen.
--------------------------------
_XL_WAIT_VSYNC()
It waits for the vertical synch if this is supported by the target. It does nothing otherwise.
--------------------------------------------------------------------------------------
TEXT
--------------------------------------------------------------------------------------
--------------------------------
_XL_PRINT(X,Y,S)
It prints the "Cross-Lib string" S starting a position (X,Y).
A "Cross-Lib string" is string formed with only the following 37 possible characters
_XL_SPACE, _XL_a, ..., _XL_z, _XL_A, ..., _XL_Z, '0', ..., '9'
where capital/small letter may be displayed as the same character depending on whether the target supports different display for capital vs small letters.
--------------------------------
_XL_PRINTD(X,Y,L,N)
It prints the positive integer number N in L digits (1<=L<=5) starting at position (X,Y)
--------------------------------
_XL_SET_TEXT_COLOR(C)
It sets the text color to C. Such color will be used on next PRINT and PRINTD for targets that support colored text.
If any other display operation is present (e.g., _XL_DRAW), then there is no guarantee that the color C will be used afterwards.
--------------------------------------------------------------------------------------
INPUT
--------------------------------------------------------------------------------------
--------------------------------
_XL_INIT_INPUT()
It initializes the input (joystick/keyboard). Necessary for any program that needs to receive an input
--------------------------------
_XL_INPUT()
It returns a value J that represents the specific received input or absence of input at the moment of its execution (keyboard may be buffered, though).
The result J is meant to be used with the Boolean functions below.
--------------------------------
_XL_UP(J), _XL_DOWN(J), _XL_LEFT(J), _XL_RIGHT(J), _XL_FIRE(J)
These Boolean functions return 1 (true) if J represents a specific movement or fire button/key, and 0 (false) otherwise.
--------------------------------
_XL_KEY_PRESSED()
This Boolean function returns 1 (true) if any key or fire button is pressed.
--------------------------------
_XL_WAIT_FOR_INPUT()
It waits for any key or fire button to be pressed.
--------------------------------------------------------------------------------------
SOUND
--------------------------------------------------------------------------------------
--------------------------------
_XL_INIT_SOUND()
It initializes the sound system. Necessary for any program that produces sound.
--------------------------------
_XL_ZAP_SOUND()
Long rising sound
--------------------------------
_XL_PING_SOUND()
Short high-pitched sound
--------------------------------
_XL_TICK_SOUND()
Very short high-pitched sound
--------------------------------
_XL_TOCK_SOUND()
Very short low-pitched sound
--------------------------------
_XL_EXPLOSION_SOUND()
Long noise
--------------------------------
_XL_SHOOT_SOUND()
Short noise
--------------------------------------------------------------------------------------
SLEEP
--------------------------------------------------------------------------------------
--------------------------------
_XL_SLEEP(S)
It waits S seconds or an approximations of S seconds depending on the target
--------------------------------
_XL_SLOW_DOWN(T)
It waits T loops (0<=T<=65535)
--------------------------------------------------------------------------------------
RANDOM
--------------------------------------------------------------------------------------
_XL_RAND()
It generates a pseudo-random number in the range [0,32767]
================================================
FILE: docs/CX16.txt
================================================
VERA ports:
In a nutshell the values at $9F20, $9F21 & $9F22 specify a starting VRAM address and an auto-increment value (in $9F22). Reading $9F23 reads the next VRAM byte.
Writing $9F23 writes the next VRAM byte.
----
For example:
$9F20 = 0
$9F21 = 0
$9F22 = %00010001
This points at VRAM address 65536 with Auto Increment value of 1
----
Bit 0 of $9F22 is considered the bank the rest of the bits in 22 set the auto increment mode
The address is Little Endian from $9F20 to the bank bit in $22
----
HSCALE = ( DESIRED RES/640 ) * 128
VSCALE = (DESIREDRES/480) * 128
----
VRAM:
The FONT resides at 1:$F000
The text screen memory is at $1:BOOO layed out as
ATTR, CHAR, ATTR, CHAR.....
================================================
FILE: docs/Creativision_binary_structure.txt
================================================
From FunnyMu source code:
-----------------------------------
Reset CPU -> PC counter is initialized from values in $FFFC,$FFFD?
-----------------------------------
if(F=fopen(Cartridge, "rb")) {
CartSize=fread(CART, 1, 0x8000, F); // read a max of 32KB in CART
rewind(F); // rewinds reading to 0
if (CartSize==0x1000) { // cart is 4KB
printf("4KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xB000, 1, 0x1000, F); // main 4Kb at 0xB000
memcpy(RAM+0x9000, RAM+0xA000, 0x1000); // mirror 4KB at 0x9000
} else
if (CartSize==0x1800) { // cart is 6KB
printf("6KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xB000, 1, 0x1000, F); // main 4Kb at 0xB000
memcpy(RAM+0x9000, RAM+0xB000, 0x1000); // mirror 4KB at 0x9000
CartSize=fread(RAM+0xA800, 1, 0x0800, F); // main 2Kb at 0xA800
memcpy(RAM+0xA000, RAM+0xA800, 0x0800); // mirror 2KB at 0xA000
memcpy(RAM+0x8800, RAM+0xA800, 0x0800); // mirror 2KB at 0x8800
memcpy(RAM+0x8000, RAM+0xA800, 0x0800); // mirror 2KB at 0x8000
} else
if (CartSize==0x2000) { // cart is 8KB
printf("8KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xA000, 1, 0x2000, F); // main 8Kb at 0xA000
memcpy(RAM+0x8000, RAM+0xA000, 0x2000); // mirror 8KB at 0x8000
} else
if (CartSize==0x2800) { // cart is 10KB
printf("10KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xA000, 1, 0x2000, F); // main 8Kb at 0xA000
memcpy(RAM+0x8000, RAM+0xA000, 0x2000); // mirror 8KB at 0x8000
CartSize=fread(RAM+0x7800, 1, 0x0800, F); // main 2KB at 0x7800
memcpy(RAM+0x5800, RAM+0x7800, 0x0800); // mirror 2Kb at 0x5800
memcpy(RAM+0x7000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x7000
memcpy(RAM+0x6800, RAM+0x7800, 0x0800); // mirror 2Kb at 0x6800
memcpy(RAM+0x6000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x6000
memcpy(RAM+0x5000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x5000
memcpy(RAM+0x4800, RAM+0x7800, 0x0800); // mirror 2Kb at 0x4800
memcpy(RAM+0x4000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x4000 (needed by Werben ++++ Informieren)
} else
if (CartSize==0x3000) { // cart is 12KB
printf("12KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xA000, 1, 0x2000, F); // main 8Kb at 0xA000
memcpy(RAM+0x8000, RAM+0xA000, 0x2000); // mirror 8KB at 0x8000
CartSize=fread(RAM+0x7000, 1, 0x1000, F); // main 4Kb at 0x7000
memcpy(RAM+0x5000, RAM+0x7000, 0x1000); // mirror 4KB at 0x5000
memcpy(RAM+0x6000, RAM+0x7000, 0x1000); // mirror 4KB at 0x6000
memcpy(RAM+0x4000, RAM+0x7000, 0x1000); // mirror 4KB at 0x4000 (needed by Basic 82)
} else
if (CartSize==0x4000) { // cart is 16KB
printf("16KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xA000, 1, 0x2000, F); // main 8Kb at 0xA000
CartSize=fread(RAM+0x8000, 1, 0x2000, F); // second 8Kb at 0x8000
} else
if (CartSize==0x4800) { // cart is 18KB
printf("18KBytes cartridge found...OK\n");
CartSize=fread(RAM+0xA000, 1, 0x2000, F); // main 8Kb at 0xA000
CartSize=fread(RAM+0x8000, 1, 0x2000, F); // second 8Kb at 0x8000
CartSize=fread(RAM+0x7800, 1, 0x0800, F); // main 2KB at 0x7800
memcpy(RAM+0x6800, RAM+0x7800, 0x0800); // mirror 2Kb at 0x6800
memcpy(RAM+0x5800, RAM+0x7800, 0x0800); // mirror 2Kb at 0x5800
memcpy(RAM+0x4800, RAM+0x7800, 0x0800); // mirror 2Kb at 0x4800
memcpy(RAM+0x7000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x7000
memcpy(RAM+0x6000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x6000
memcpy(RAM+0x5000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x5000
memcpy(RAM+0x4000, RAM+0x7800, 0x0800); // mirror 2Kb at 0x4000
} else
if (CartSize==0x8000) { // cart is 32KB
printf("32KBytes cartridge found...OK\n");
CartSize=fread(RAM+0x4000, 1, 0x8000, F); // main 32Kb at 0x4000
}
fclose(F);
}
else
P="NOT FOUND";
================================================
FILE: docs/DISCLAIMER.md
================================================
# DISCLAIMER
All information on the site (https://github.com/Fabrizio-Caruso/CROSS-LIB) and the software it describes is provided in good faith, however we make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability or completeness of any information on the site https://github.com/Fabrizio-Caruso/CROSS-LIB and the software it provides.
Under no circumstance shall we have any liability to you for any loss or damage of any kind incurred as a result of the use of the aforementioned site and any software it provides (games, tests, tools, library, source code, scripts. etc.) or reliance on any information provided on the site. Your use of the site and the software it provides and your reliance on any information on the site is solely at your own risk.
================================================
FILE: docs/EnglishArticle.md
================================================
# CROSS-LIB
by Fabrizio Caruso
## INTRODUCTION
The goal of this article is to present Cross-Lib, briefly show how to use it and present the 6 "universal" games I have written with it.
By "universal" here I mean that these games will run on about 200 different systems (consoles, computers, arcade boards, pocket calculators, etc.) despite using the very same game code.
For more details we refer to the GitHub page: http://www.github.com/Fabrizio-Caruso/CROSS-LIB/
## WHAT IS CROSS-LIB?
Cross-Lib (https://github.com/Fabrizio-Caruso/CROSS-LIB/) is a free open source tool for retro-coding for a multitude of 8-bit and vintage systems from the ‘80s (computers, consoles, pocket calculators, arcade boards, etc.)
such as Apple //, all 8-bit Commodore computers, Atari 800, Amstrad CPC, Sinclair ZX 81, Sinclair ZX Spectrum, TRS-80 CoCo, Dragon 32, TRS-80 MC-10, Thomson Mo5 and To7, MSX, Oric-1, Oric Atmos, BBC Micro, etc. as well as consoles such as GameBoy, Sega Master System, GameGear, Nintendo NES, etc.
and other devices such as Texas Instruments pocket calculators. The main CPU architectures are Zilog 80, MOS 6502, Intel 8080, Motorola 6803, Motorola 6809 and RCA 1802.
Cross-Lib also supports several lesser known systems such as the Philips VG-5000, the Jupiter Ace and several exotic and rare systems such as the yugoslav Galaksija, the Hungarian Homlab-2,
several computers from the Eastern German Robotron series such as the Robotron KC 85, etc.
A large, yet partial list of the supported systems is at the page:
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/STATUS.md.
Cross-Lib has two main components:
1. A "universal" C library (e.g., a collection of C APIs mostly for input/output);
2. A Python script to manage game projects (e.g., to build, create, clone, etc.) and manipulate graphics assets (e.g., to create, import or rip assets)
The main goal of Cross-Lib is to provide a *hardware abstraction layer* for hundreds of vintage systems so that the *very same* game code can be used without any adaptation for all its supported systems.
Several articles have been published on Cross-Lib ([rg], [prog]) and its games ([ceo] and, in by this very magazine, [app]).
## CROSS-LIB VS OTHER DEV-KITS
Historically, 8-bit systems were programmed directly on the system and mostly in Assembly, or for simpler programs in interpreted BASIC.
Today cross-development simplifies developers’ tasks a lot (modern editors, simplified debugging, efficient and quick compilation, etc.) and can be done in C.
The problem with the portability of C code comes from the diversity of the machines and from the fact that ANSI C does not provide a standard library for graphics, sounds, input, etc.
A partial solution is already provided by some dev-kits such as CC65 (for MOS 6502), Z88DK (for the Zilog 80 and Intel 8080), LCC1802 (for the RCA 1802), CMOC (for the Motorola 6890), etc.
By using one of these dev-kits, we can exploit their cross-compatible libraries for input and output.
On the other hand:
1. Each dev-kit only covers a subset of all 8-bit architectures.
2. Even within a given dev-kit, its libraries do not necessarily provide the very same input/output APIs across the entirety of its supported targets.
Cross-Lib improves on these points and lets you do things that you cannot do with other tools:
1. cover many more vintage 8-bit architectures, including very exotic ones;
2. writing 100% WORA code, i.e., "write once, run anywhere" (after re-compilation);
3. using WORA graphics resources, i.e., define abstract graphics assets for several totally different systems;
4. using a simplified tool-chain to create, compile and test the games.
The closest dev-kits to Cross-Lib with respect to these points are
- 8-bit-Unity [un8] (meant to be used with CC65), which does incredible things but only for very few MOS 6502-based systems;
- Z88DK, which has huge libraries but only covers Zilog 80 and Intel 8080 systems.
On the other hand Cross-Lib is not a compiler. It uses several compilers to build the binary files (executable files, disk images, tape images, cartridge images, etc.) for retro-consoles and retro-computers.
By providing an abstraction layer for all 8-bit systems, Cross-Lib makes some compromises with respect to what we could do if we were coding only for a specific system.
In particular, graphics is somehow limited by what is possible on all systems. Sound effects are even more limited.
## COMPILERS
Cross-Lib is supposed to be used with C compilers but which ones?
A native compiler (for example GCC) can be used to build native binaries that can be run, for instance, under Windows.
Today the support for native compilation is limited to the text terminal, which means no graphics other than ASCII on the host machine.
Currently Cross-Lib fully supports the following cross-compilers and dev-kits with graphics and sound effects for most of its targets:
- CC65 [cc65] for most systems based on the MOS 6502 architecture;
- Z88DK [z88dk] for systems based on the Zilog 80 and Intel 8080 architectures;
- CMOC [cmoc] for systems that use the Motorola 6809;
- LCC1802 [lcc1802] for systems that use the COSMAC RCA 1802 ;
- GCC for TI [ti] for the Texas Instruments TI99/4A based on the 16-bit TMS9900.
Cross-Lib also supports other compilers (currently with limited or absent graphics and sound effects) such as
- ACK [ack] for 8088/8086, Intel 8080 CP/M, 386/68K/PPC/MIPS Linux and PDP11,
- XTC68 [xtc68] for the Sinclair QL,
- VBCC [vbcc] for the BBC Micro, BBC Master, the Amiga and others,
- CC6303 [cc6303] for the Motorola 6803;
- several versions of modded GCC to target vintage computers (Atari ST [st], Olivetti M20 [m20]).
Cross-Lib supports a large sub-set of ANSI C89 because most available cross-compilers for 8-bit architectures only implement a sub-set of ANSI C89.
Therefore we write in C (a sub-set of ANSI C C89) with Cross-Lib APIs for graphics, sounds, input.
In particular we must avoid:
- "float" and "double" types,
- copies and parameters by value of "struct" objects,
- any use of the heap.
For hints on how to code efficiently for 8-bit systems we refer to [effc] and for specific hints on how to code with these compilers we refer to [c8b].
## INSTALLATION
Cross-Lib itself does not require any real installation.
It is enough to download the repository files (from the GitHub page) or to clone the repository with:
git clone https://www.github.com/Fabrizio-Caruso/CROSS-LIB/
On the other hand it requires:
- a POSIX environment (e.g., Windows with Cygwin, Linux, FreeBSD, etc.);
- Make (GNU Make);
- Python 2.7 or Python 3.* [optional but necessary to simplify many operations];
- GCC compiler with ncurses libraries [optional];
- any compiler necessary to build for a desired target architecture (e.g., CC65, Z88DK, etc.)
- JAVA (only to be disk images for the Apple //).
Once you have Cross-Lib with its dependencies in a POSIX environment, you should move to the "src" directory.
Inside "src" you will find the "xl" Python script and the following directories
- "cross-lib", which contains the library code;
- "games" with built-in games;
- "examples" with built-in examples;
- "projects" with user-defined projects.
If you have correctly installed just Makefile, Python and any compiler (e.g. GCC) in a POSIX environment, it should already be possible to minimally use Cross-Lib to build the Chase game by running the following command inside the "src" directory (you will have to make sure that the "." directory is in your PATH environment variable otherwise you will have to explicitly use "./xl" instead of "xl"):
"xl chase stdio", which will build the game Chase in turn-based mode for the target if the compiler (e.g., the native console if you use GCC).
As stdio has no support for immediate input, the game will be, at best, barely playable in turn-based mode.
Most games won't be playable at all, because this can only work for games that are aware of this (e.g., chase) where the code invokes a specific refresh command to re-display the content of the screen like a slide-slow.
This can be used to test if the games compile with a given compiler.
## HOW TO USE THE XL SCRIPT
If just one of the supported compilers is installed, Cross-Lib can be used with the "xl" Python script inside the "src" directory.
If GCC with ncurses is installed, a native version of the games and examples can be built with:
"xl build \<project name\>" or just "xl \<project name\>"
For example
"xl snake"
builds the "snake" game for the native console.
If a cross compiler (CC65, Z88DK, CMOC, CC6303, LCC1802, etc) is installed, the games and examples can be built for the corresponding systems.
For example, if CC65 is installed,
"xl horde apple2"
builds the "horde" game for the Apple // with 6-color HGR graphics.
The "xl" script takes several commands. In particular you can see a list of the available commands with "xl commands".
You can get an explanation of each command with examples with
"xl help \<command\>".
If we want to create a new project, we need to use
"xl create \<project name\>",
which will create a project with a trivial "hello world" example inside the "projects" directory.
We can also start with a template code for a game if we pass the additional parameter "game":
"xl create \<project name\> game".
## HELLO WORLD
Coding with Cross-Lib is like normal coding in C (with ANSI C89) with the only addition that all input/output is done through Cross-Lib APIs.
Cross-Lib comes with many examples in the src/examples/ directory as well as a few games in the src/games directory.
Both of which can be used to learn how to code with Cross-Lib.
We could start to look at src/examples/helloworld/, whose main.c files contains:
```
#include "cross_lib.h"
int main(void)
{
_XL_INIT_GRAPHICS();
_XL_CLEAR_SCREEN();
_XL_SET_TEXT_COLOR(_XL_WHITE);
_XL_PRINT_CENTERED("HELLO WORLD");
while(1){};
return EXIT_SUCCESS;
}
```
We remark that all Cross-Lib specific functions start with the _XL_ prefix:
1. _XL_INIT_GRAPHICS() required to initialize the display ;
2. _XL_CLEAR_SCREEN() which cleans the content of the screen ;
3. _XL_SET_TEXT_COLOR(_XL_WHITE) which defines the color to be used by the text and characters ;
4. _XL_PRINT_CENTERED("HELLO WORLD") which displays "HELLO WORLD" on the center of the screen.
If we want to use one of the examples or games as a starting point we can clone the project with:
xl clone \<existing project to clone\> \<new project name\>
Or we can start from (almost) scratch with
xl create \<new project name\>
Once we have a new project, we can build it with
xl \<project\> \<target\>
or
xl \<project\>
if we want to build the project for the native terminal.
We can run the project for the native terminal with:
xl run \<project\>
For example we could run these commands:
xl clone helloworld myhelloworld [to clone helloworld and create myhellworld]
We modify the project myhelloworld (found inside ./src/projects/myhelloworld/)
xl build myhelloworld (or equivalently xl myhelloworld) [to build a native binary of the new project]
xl run myhelloworld [to run the new project]
xl build myhelloworld c64 [to build the same project for the Commodore 64]
## CODING WITH ABSTRACTIONS
In order to code with Cross-Lib for all targets at the same time, Cross-Lib uses several abstractions.
Graphics is only tile-based. In the code, tiles are abstract as their exact shape will depend on the target type.
The game code only sees tiles as macros _TILE_0, _TILE_1, _TILE_2, etc.
Each concrete target will interpret tiles in different ways depending on whether the target can or cannot assign free shapes to tiles and
on the number of pixels that define tiles on that system.
Sound is currently only limited to few sound effects that are rendered somehow similarly across multiple targets.
Input is limited to 4 directions and a single fire button. On each target this will be mapped to either 5 keys (usually I J K L SPACE)
or the main joystick/controller/gamepad.
Running "xl manual" will output a manual with all commands.
## MAIN DEVELOPMENT FLOW
Producing "universal" games with Cross-Lib for the developer boils down to these main steps:
- Creating or cloning a project (with xl create or xl clone);
- Writing the abstract game code in ANSI C with Cross-Lib APIs for input/output;
- Manually creating or automatically importing abstract assets (with commands such as e.g., xl shapes, xl import, xl rip, xl tile);
- Running the xl script to build the project for one or multiple targets (with xl build).
The "xl build \<project\> \<target\>" command (or its equivalent short form "xl \<project\> \<target\>")
executes one or several Makefile targets, which generally:
- generate a concrete asset file from the abstract asset files
- compile the source code (game code and target-specific portions of Cross-Lib library);
- include or link the asset files with the compiled source code;
- if necessary a tool is used to create a usable disk/floppy/rom/cartridge image (this is the case for the Apple // for which disk images are generated).
[INSERT FLOW PICTURE HERE]
## GRAPHICS
Graphics is performed by displaying "tiles", whose shape can be defined. The number of tiles is currently limited to 27 but future versions of Cross-Lib will overcome this constraint.
We can also display "characters" (letters, digits and the space character) but their shape is (currently) fixed.
Characters and tiles have the same size. Characters are used for the text, whereas tiles are used for graphics.
ASCII-only targets will be able to only assign ASCII shapes to tiles, whereas targets with real graphics will assign a "freely defined" shape to tiles.
Currently each tile only has one tile-specific foreground color and a common background color.
The definition of their shapes is not done in the C code.
Instead it is done inside the \<project\>/tiles directory, which contains sub-directories with files with tile definitions for the ASCII case and
for the graphics-enabled targets, e.g., 8x8 (for most targets), 7x8 (for the Apple //), 6x8 (for the Oric series and NTSC COMX-35), etc...
In the aforementioned files the shapes are described by either ASCII codes for ASCII-only targets or sequences of bytes for graphics-enabled targets.
These files can be:
1. edited manually or
2. automatically imported from several programs such as CharPad [chPad] (with "xl import \<file\> \<project\>") or
3. automatically ripped from BASIC or Assembly listings (with "xl rip \<file\> \<project\>") or
4. generated by some simple "pictorial" text files with drawings made of "#" and "." characters
(with "xl shapes \<project\> \<x_size\> \<y_size\> or "xl tile \<file\> \<project\> \<tile number\>".
You can see how to use these commands by running "xl help \<command\>".
In the game code tile graphics is primarily performed by invoking these functions (to display or delete tiles):
void _XL_DRAW_TILE(uint8_t x, uint8_t y, uint8_t tile_number, uint8_t tile_color);
void _XL_DELETE(uint8_t x, uint8_t y);
## SOUND
Sound is even more limited than graphics and it is restricted to a few predefined effects.
The sound commands have this form:
void _XL_\<effect name\>_SOUND(void);
For example:
XL_EXPLOSION_SOUND() produces an explosion sound (or something vaguely similar to it depending on the target)
## INPUT
Input is limited to four directions and a single fire button.
The primary input APIs are:
uint8_t _XL_INPUT(void);
uint8_t _XL_LEFT(uint8_t input);
uint8_t _XL_RIGHT(uint8_t input);
uint8_t _XL_UP(uint8_t input);
uint8_t _XL_DOWN(uint8_t input);
uint8_t _XL_FIRE(uint8_t input);
where _XL_INPUT polls the input and the other functions are used to determined the specific input.
## GRAPHICS, SOUNDS AND INPUT IN ONE EXAMPLE
Inside the src/examples/animate directory you can find the following example that could be used as a blueprint for a simple game.
This simple example has graphics, input and sound.
When compiled for any of the possible systems, it will produce the very same program but the exact tile shapes and sounds will depend on the target.
For example it can be compiled for the native console with:
xl animate
or for the Apple // with
xl animate apple2
or for the MSX with
xl animate msx
```
#include "cross_lib.h"
#define MIN_X 1
#define MAX_X (XSize-2)
#define MIN_Y 1
#define MAX_Y (YSize-2)
#define DOWN_TILE _TILE_0
#define UP_TILE _TILE_1
#define RIGHT_TILE _TILE_2
#define LEFT_TILE _TILE_3
#define FIRE_TILE _TILE_4
int main(void)
{
uint8_t x;
uint8_t y;
uint8_t input;
uint8_t tile;
_XL_INIT_GRAPHICS();
_XL_INIT_SOUND();
_XL_INIT_INPUT();
_XL_CLEAR_SCREEN();
x = XSize/2;
y = YSize/2;
tile = DOWN_TILE;
while(1)
{
_XL_SET_TEXT_COLOR(_XL_WHITE);
_XL_PRINTD(0,0,3,x);
_XL_PRINTD(5,0,3,y);
input = _XL_INPUT();
if(_XL_UP(input))
{
_XL_DELETE(x,y);
tile = UP_TILE;
--y;
}
else if (_XL_DOWN(input))
{
_XL_DELETE(x,y);
tile = DOWN_TILE;
++y;
}
else if (_XL_LEFT(input))
{
_XL_DELETE(x,y);
tile = LEFT_TILE;
--x;
}
else if(_XL_RIGHT(input))
{
_XL_DELETE(x,y);
tile = RIGHT_TILE;
++x;
}
else if(_XL_FIRE(input))
{
_XL_DRAW(x,y,FIRE_TILE,_XL_WHITE);
_XL_EXPLOSION_SOUND();
_XL_SLOW_DOWN(16*_XL_SLOW_DOWN_FACTOR);
}
if((y>=MIN_Y)&&(y<=MAX_Y)&&(x>=MIN_X)&&(x<=MAX_X))
{
_XL_DRAW(x,y,tile,_XL_WHITE);
}
else
{
_XL_DELETE(x,y);
_XL_ZAP_SOUND();
_XL_SLOW_DOWN(16*_XL_SLOW_DOWN_FACTOR);
x = XSize/2;
y = YSize/2;
}
_XL_SLOW_DOWN(4*_XL_SLOW_DOWN_FACTOR);
}
return EXIT_SUCCESS;
}
```
## THE GAMES
Cross-Lib comes with some games I have written with it. As for July 2023, it includes seven games:
- Shuriken
- Verbix
- Horde
- Snake
- Bomber
- Shoot
- Chase
### SHURIKEN
Shuriken is somehow similar to PAC-MAN in that you need to collect all diamonds to complete non-boss levels while you need to avoid being hit by the shurikens.
In boss levels you have to additionally kill all the shurikens by using the movable blocks that are deadly for them.
You can also collect special items that make you temporarily invincible (white ring) or that slow down the shurikens (blue large diamond).
### VERBIX
Verbix is a Scrabble-like game that looks also a bit like Tetris.
In this game you have to form valid 5-letter English words on the bottom row before the tower of letters reaches the top level.
You can rotate the bottom row or any of the columns by moving in the 4 directions. You press fire to confirm the word.
### HORDE
Horde is a zombie-themed shooter with many power-ups and several different enemies, levels and special items to pick.
You control a bow with a limited number of arrows. You get more arrows as a possible reward for killing some zombies.
If you run out of arrows, you will get a few arrows after a short period.
In each level you are confronted with a horde of zombies that become harder as you progress.
### SNAKE
Snake is my personal interpretation of a hybrid game between the arcade game Nibbler and the Nokia cell phone game Snake to which I have added more game elements.
As in Nibbler the walls do not kill you and can be used to stop you and let you better control your movements.
As in Nokia Snake the main goal is to eat apples. If you do not eat any apple for too long, the snake becomes faster and harder to control, consumes its energy and eventually dies.
In each level you are also confronted with mines that kill you if the snake's head touches them.
As a secondary goal you can collect rings. If you manage to get 3 or more rings without dying on a level, you will be rewarded with bonus items.
The game has several secrets and level to discover.
### BOMBER
Bomber is a mini-game and clone of Air Attack (aka Blitz) that first appeared on the Commodore Pet.
The game concept is horrible (not my own concept) but it can be addictive nevertheless.
Your plane has to carpet-bomb an entire city in order to safely land on the road. Let us assume the city has no inhabitants.
You do not control the plane and can only press fire to drop a bomb at a time.
### SHOOT
Shoot is a shooter somehow similar to Robotron. You have to kill a horde of ghosts on each level.
You can kill them by hitting them many times or by hitting them enough times to push them against the walls (mortal only for them).
You can also kill them by placing mines but you need to get the mine item (with 3 mines). A mine kills instantly common enemies.
At the end of each level when only few ghosts are left or if you survive without killing enemies long enough or in boss levels, you are confronted by some hard-to-kill skull-shaped enemies.
As a secondary goal you can complete the level by killing the skulls before the last ghosts and by doing so you unlock extra items and secrets in the next levels.
Destroying the missile bases can also unlock items.
The game has many secrets, levels and items to discover.
### CHASE
Cross Chase is somehow similar to Daleks / Gnome Robots. You need to lure your pursuers into the mines.
The main difference is that it is a real-time game and that it has several secrets items and power-ups to pick.
Similarly to Shoot, at the end of each level or in boss levels, you are confronted by a boss (a skull), which can only be killed by several bullets fired by the gun item.
You can complete the level by killing the skull before the last enemy and by doing so you unlock extra items and secrets in the next levels.
Destroying the missile bases can also unlock items.
## FUTURE DEVELOPMENT
Cross-Lib is actively developed. Planned future developments are:
- support for more targets and architectures (e.g., Apple ||gs, Apple 1, etc.);
- improved targets (e.g, DHGR mode for the 80-column capable Apple // models);
- improved APIs (more tiles, improved sounds, etc.);
- simplified setup (docker file with all compilers, tools and dependencies);
- improved scripts to handle graphics assets;
- improved support for the native target;
- more games.
## BIBLIOGRAPHY
[ack] ACK, Tanenbaum A., Jacobs C. et al., C compiler for Intel 8088, PDP 11, CP/M-80,etc., https://github.com/davidgiven/ack
[app] Cross Chase: A Massively 8-bi Multi-System Game, Caruso F., Call-A.P.P.L.E., vol. 28, No. 1, Feb 2018, pages 31-33, http://www.callapple.org
[c8b] 8-bit C, Caruso F., https://github.com/Fabrizio-Caruso/8bitC
[cc6303] CC6303, Cox A., C compiler for the Motorola 6800 and 6803, https://github.com/EtchedPixels/CC6303
[cc65] CC65, C compiler for the MOS 6502, https://sourceforge.net/projects/cc65/
[ceo] Cross Chase, Caruso F., CEO-MAG, No. 327-328, Juillet-Août 2017, https://ceo.oric.org/
[chPad] CharPad, Subchrist Software, https://subchristsoftware.itch.io/charpad-c64-free
[cmoc] CMOC, Sarrazin P., C compiler for the Motorola 6809, https://perso.b2b2c.ca/~sarrazip/dev/cmoc.html
[effc] Efficient C Code for 8-bit Microcontrollers, Jones N., https://barrgroup.com/embedded-systems/how-to/efficient-c-code
[m20] Z8KGCC, Groessler C., GCC modded for the Olivetti M20, http://www.z80ne.com/m20/sections/download/z8kgcc/z8kgcc.html
[lcc1802] LCC1802, Rowe B., C compiler for the RCA 1802, https://github.com/bill2009/lcc1802
[prog] Cross-Lib, Caruso F., Programmez! Hors Série #6, pages 72-82.
[rg] Interview to F. Caruso about Cross-Lib, RetroGamer #240, page 100, https://www.retrogamer.net/
[st] GCC, Rivière V., modded for the Atari ST, http://vincent.riviere.free.fr/soft/m68k-atari-mint/
[ti] GCC, (Insomnia), modded for the TI99/4A, http://atariage.com/forums/topic/164295-gcc-for-the-ti
[un8] 8-Bit Unity, Beaucamp A. (8-bit Dude), http://8bit-unity.com/
[vbcc] VBCC, Barthelmann V., C compiler for the BBC Micro, BBC Master, Amiga, etc., http://www.compilers.de/vbcc.html
[xtc68] XTC68, Hudson J., C compiler Sinclair QL, https://github.com/stronnag/xtc68
[z88dk] Z88DK, C compiler and dev-kit for the Zilog 80 and Intel 8080 architectures.
================================================
FILE: docs/GAMES.md
================================================
# THE GAMES
-------------------------------------------
## TREX

CONTROLS: either SPACE or FIRE.
1. Commodore Vic 20:
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/trexBETA/Xtrex_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXtrexti.bin
3. MSX:
https://webmsx.org/?cartridge1_url=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/trexBETA/Xtrex_msx_16k.rom
4. Video Technology Laser 500:
https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/trexBETA/Xtrex_laser500_keyboard.bin
-------------------------------------------
## STINGER


CONTROLS: either the joystick or J (move lefte), L(move right), SPACE (check word)
1. Commodore Vic 20:
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/stinger/Xstinger_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXstingerti.bin
3. MSX:
https://webmsx.org/?cartridge1_url=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/stinger/Xstinger_msx_16k.rom
4. Video Technology Laser 500:
https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/stinger/Xstinger_laser500.bin
-------------------------------------------
## SHURIKEN


CONTROLS: either the joystick or I (up rotate), J (move left/left rotate), K (down rotate), L(move right, right rotate), SPACE (check word)
1. Commodore Vic 20:
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/shuriken/Xshuriken_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXshurikenti.bin
3. MSX:
https://webmsx.org/?cartridge1_url=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/shuriken/Xshuriken_msx_16k.rom
4. Video Technology Laser 500:
https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/shuriken/Xshuriken_laser500.bin
-------------------------------------------
## VERBIX


Cross Verbix is a word game somehow similar to Scrabble and to a much lesser extent similar to Tetris: you must construct correct English words by rotating columns of letters or by rotating the bottom row before the letters reach the top level.
You can get extra points if you complete the level earlier by lowering the stack of letters below the second row.
CONTROLS: either the joystick or I (up rotate), J (move left/left rotate), K (down rotate), L(move right, right rotate), SPACE (check word)
1. Commodore Vic 20:
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/verbix/Xverbix_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXverbixti.bin
3. MSX:
https://webmsx.org/?cartridge1_url=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/verbix/Xverbix_msx_16k.rom
4. Video Technology Laser 500:
https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/verbix/Xverbix_laser500.bin
5. Video Technology Laser 200 / VZ200:
https://nippur72.github.io/laser310-emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/verbix/Xverbix_vz200_24k.vz
## HORDE



Cross Horde is a zombie shooter with several different enemies, levels and power-ups and items to pick.
You die if a zombie reaches the wall behind the bow or if a zombie hits you with its bullets.
In order to improve your fire power you can pick up the rings that are dropped when some zombies die.
Rings will improve in this order:
- the range of your bow
- the speed of your bow
- the number of arrows thrown at once
- the power of your bow
After these improvements, the rings will be necessary to unblock special items and to achieve the temporary "hyper" power.
CONTROLS: either the joystick or J (left), L (right), SPACE (fire).
1. Commodore Vic 20:
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_vic20_exp_8k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXhordeti.bin
3. Commodore 64:
https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_c64.prg
4. MSX 1:
https://homebrew.file-hunter.com/index.php?id=crosshorde
5. Sinclair ZX Spectrum 48K: \
https://spectrumcomputing.co.uk/playonline.php?eml=2&downid=140691 or https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=140691
6. Video Technology Laser 200 / VZ200:
https://nippur72.github.io/laser310-emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_vz200_24k.vz
7. Video Technology Laser 500:
https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_laser500.bin
8. Commodore 264 series (C16/C116/C+4):
https://plus4world.powweb.com/play/cross_horde
Binaries are in the release section (Click on Assets): \
https://github.com/Fabrizio-Caruso/CROSS-LIB/releases/tag/XHorde1.0
-------------------------------------------
## SNAKE



This my own re-interpretation of Nibbler (arcade) and Snake (primarily a cell phone game), to which I have added many more game elements.
You have to go through 32 levels (with 16 different maps) + an optional secret level (with its own map).
To complete a level you have to eat all the apples while:
- avoiding your own tail and body
- avoiding the fixed and bouncing mines
- avoiding to starve by losing your energy (eat apples to prevent this).
As you starve, the snake moves faster and faster.
Walls do not kill you and let you pause the game and think about your next move.
You can also catch special items that will help in your quest:
- ring (collect 3 or even 4 for extra points and to spawn more special items such as "freeze")
- freeze (special item that freezes the mines and restores your energy
- $ (extra points... but also some secret effects if you collect many)
- extra life (special and hard to unlock item that gives 1 extra life)
CONTROLS: either the joystick or I J K L to move and SPACE to start/continue.
You can play the game online:
1. Commodore Vic 20: \
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXsnaketi.bin
3. Commodore 64: \
https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_c64.prg
4. MSX 1: \
https://homebrew.file-hunter.com/index.php?id=crosssnake
5. Sinclair ZX Spectrum 48K: \
https://spectrumcomputing.co.uk/playonline.php?eml=2&downid=137608 or https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=137608
6. Video Technology Laser 200 / VZ200: \
https://nippur72.github.io/laser310-emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_vz200_24k.vz
7. Video Technology Laser 500: \
https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_laser500.bin
8. Commodore 264 series (C16/C116/C+4): \
http://plus4world.powweb.com/play/cross_snake_2_0
Binaries are in the release section (Click on Assets): \
https://github.com/Fabrizio-Caruso/CROSS-LIB/releases/tag/XSnake2.0
-------------------------------------------
## BOMBER

The game's goal is to destroy all buildings so that you can land on an empty road.
The game is a clone of Air Attack (aka Blitz) game that was first developed on the Commodore Pet.
The game is controlled by the single fire button (first joystick button for targets with joystick input and space key for targets with keyboard input).
Your score depends on the number of building destroyed, the level reached and how fast you complete each single level.
The game has 9 levels and it ends after the eighth level.
CONTROLS: either the joystick fire button or SPACE.
You can play the game online:
1. Commodore Vic 20: \
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XBomber/Xbomber_vic20_exp_8k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXbomberti.bin
3. Commodore 64: \
https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XBomber/Xbomber_c64.prg
4. MSX 1: \
https://homebrew.file-hunter.com/index.php?id=crossbomber
5. Sinclair ZX Spectrum 48K: \
https://spectrumcomputing.co.uk/playonline.php?eml=2&downid=137605 or https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=137605
6. Video technology Laser 200 / VZ200: \
https://nippur72.github.io/laser310-emu/?restore=false&?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XBomber/Xbomber_vz200_24k.vz
7. Video technology Laser 500: \
https://nippur72.github.io/laser500emu/?restore=false&?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/bomber/Xbomber_laser500.bin
8. Commodore 264 series (C16/C116/C+4): \
http://plus4world.powweb.com/play/cross_bomber
Binaries are in the release section (Click on Assets): \
https://github.com/Fabrizio-Caruso/CROSS-LIB/releases/tag/XBomber
-------------------------------------------
## SHOOT

The game's goal is to kill all common enemies or kill all 4 "skulls".
Common enemies can be killed quickly if pushed against the walls by shooting at them.
The "skulls" and the boss cannot be pushed and are harder to kill.
You have to avoid all enemies, rockets and chasing missiles.
All flashing items have positive effects and can grant you special powers.
Your bullets have a limited power that can be improved by catching the special fire power item.
You can also fetch the mine item that grants you 3 powerful mines to use against all your enemies.
Discover the 12 items. Some items are secret. In total the game has 16 secrets.
You can unlock the 16 secrets by shooting at the skulls and at the missile and rocket bases in different ways.
The game has 16 different levels including 2 boss levels + 1 secret level.
CONTROLS: either the joystick or I J K L to move and SPACE to fire.
You can play the gamne online:
1. Commodore VIC 20: \
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/XShoot_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXshootti.bin
3. Commodore 64: \
https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/Xshoot_c64.prg
4. MSX 1: \
https://homebrew.file-hunter.com/index.php?id=crossshoot
5. Sinclair ZX Spectrum 48K: \
https://spectrumcomputing.co.uk/playonline.php?eml=2&downid=137606 or https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=137606
6. Video Technology Laser 200 / VZ 200: \
https://nippur72.github.io/laser310-emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/Xshoot_vz200_24k.vz
7. Video Technology Laser 500: \
https://nippur72.github.io/laser500emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/Xshoot_laser500.bin
8. Commodore 264 series (C16/C116/C+4): \
http://plus4world.powweb.com/play/cross_shoot
Binaries are in the release section (Click on Assets): \
https://github.com/Fabrizio-Caruso/CROSS-LIB/releases/tag/XShootRebuild
-------------------------------------------
## CHASE

The game's goal is to lure the "ghosts" into the mines and possibly kill the "skull" by repeatedly using the gun.
You have to avoid all enemies, the mines, all walls, rockets and chasing missiles.
All flashing items have positive effects and can grant you some special powers. Discover the 10 items.
If you use the gun against the skull and/or the missiles and rockets, you can unlock some special secret items.
There are 20 different levels including 4 boss levels.
CONTROLS: either the joystick or I J K L (to move) and SPACE to fire.
You can play the game online for different systems:
1. Commodore Vic 20: \
https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_vic20_exp_16k.prg
2. TI99/4A:
https://js99er.net/#/?cartUrl=https:%2F%2Fgithub.com%2FFabrizio-Caruso%2FCROSS-LIB%2Freleases%2Fdownload%2Fti99_1.32%2FXchaseti.bin
3. Commodore 64: \
https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_c64.prg
4. MSX 1: \
https://homebrew.file-hunter.com/index.php?id=crosschase
5. Sinclair ZX Spectrum 48K: \
https://spectrumcomputing.co.uk/playonline.php?eml=2&downid=112056 or https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=112056
6. Video Technology Laser 210 / VZ200 : \
https://nippur72.github.io/laser310-emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_vz200_18k.vz
7. Video Technology Laser 500: \
https://nippur72.github.io/laser500emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_laser500.bin
8. Commodore 264 series (C16/C116/C+4): \
http://plus4world.powweb.com/play/cross_chase_32k_v0_9
Binaries are in the release section (Click on Assets): \
https://github.com/Fabrizio-Caruso/CROSS-LIB/releases/tag/XChase
================================================
FILE: docs/GIOCHI.md
================================================
# I GIOCHI
A secondo del sistema il gioco prevede
- l'uso del joystick nella port più comune (in genere port 1 tranne che port 2 su C64) oppure
- l'uso di I J K L per i movimenti e SPAZIO per FIRE.
-------------------------------------------
## CROSS HORDE



Cross Horde è uno zombie shooter con diversi tipi di nemici, power-ups e oggetti da raccogliere.
Si muore se uno zombie raggiunge il muro o se uno zombie ci colpisce con un suo proiettile.
Per migliorare la potenza di fuoco si possono raccogliere gli anelli che alcuni zombie ci lasciano alla loro morte.
Gli anelli hanno questi effetti in ordine temporale:
- aumenta la distanza dei nostri colpi
- aumenta la velocità di ricarica del nostro arco
- aumenta il numero di frecce lanciate contemporaneamente
- aumenta la potenza di ogni freccia
Una volta raggiunti tutti questi miglioramenti, gli anelli successivi saranno utile per sbloccare oggetti speciali e per raggiungere la potenza di fuoco "hyper".
Il gioco è disponibile pure online:
1. Commodore 264 series (C16/C116/C+4):
https://plus4world.powweb.com/play/cross_horde
2. Commodore Vic 20: https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_vic20_exp_8k.prg
3. Commodore 64: https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_c64.prg
4. Video Technology Laser 200 / VZ200: https://nippur72.github.io/laser310-emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_vz200_24k.vz
5. Video Technology Laser 500: https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XHorde1.0/Xhorde_laser500.bin
-------------------------------------------
## CROSS SNAKE - THE GAME



E' la mia personale re-interpretazione del gioco arcade Nibbler e del gioco per cellulare Snake, alla quale io ho aggiunto ulteriori elementi di gioco.
Ci sono 32 livelli (su 16 mappe diverse) + un livello opzionale segreto (con la sua mappa).
Per completare un livello si devono mangiare tutte le mele preveste dal livello:
- evitando di mordere il proprio corpo;
- evitando di colpire con la testa le mine (mobili e fisse);
- evitando di morire di fame, cioè perdendo tutta l'energia (non trascorrere troppo tempo senza mangiare una mela).
Più tempo passa senza mangiare mele, più veloce si muoverà il serpente e questo rende i movimenti sempre più difficili.
I muri non uccidono (come nel gioco arcade Nibbler) e tu possono essere utili per fermare il serpente per decidere la mossa successiva.
Puoi catturare oggetti speciali:
- anello (prendine 3 or anche 4 per punti extra e per generare altri oggetti speciali come "freeze");
- freeze (oggetto speciale che congela temporaneamente le mine e rallenta il serpente);
- $ (punti extra ma anche effetti speciali se se ne prendono molti)
- vita extra (oggetto difficile da sbloccare)
Il gioco è disponibile pure online:
1. Commodore 264 series (C16/C116/C+4): http://plus4world.powweb.com/play/cross_snake_2_0
2. Commodore Vic 20: https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_vic20_exp_16k.prg
3. Commodore 64: https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_c64.prg
4. MSX 1: https://homebrew.file-hunter.com/index.php?id=crosssnake
5. Sinclair ZX Spectrum 48K: https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=137608
6. Video Technology Laser 200 / VZ200: https://nippur72.github.io/laser310-emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_vz200_24k.vz
7. Video Technology Laser 500: https://nippur72.github.io/laser500emu/?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XSnake2.0/Xsnake_laser500.bin
-------------------------------------------
## CROSS BOMBER - THE GAME

Lo scopo del gioco è distruggere tutti gli edifici in maniera da potere atterrare.
Trattasi di un clone di Air Attack (anche noto come Blitz) che fu sviluppato la prima volta per Commodore Pet.
Il gioco è controllato dal solo pulsate di fuoco (quindi FIRE o SPAZIO).
Il punteggio dipende dal numero di edifici distrutti, dal livello raggiunto e da quanto velocemente si completi ogni singolo livello.
Il gioco prevede 8 livelli e termina alla fine dell'ottavo livello.
Il gioco è disponibile pure online:
1. Commodore 264 series (C16/C116/C+4): http://plus4world.powweb.com/play/cross_bomber
2. Commodore Vic 20: https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XBomber/Xbomber_vic20_exp_8k.prg
3. Commodore 64: https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XBomber/Xbomber_c64.prg
4. MSX 1: https://homebrew.file-hunter.com/index.php?id=crossbomber
5. Sinclair ZX Spectrum 48K: https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=137605
6. Video technology Laser 200 / VZ200: https://nippur72.github.io/laser310-emu/?restore=false&?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XBomber/Xbomber_vz200_24k.vz
7. Video technology Laser 500: https://nippur72.github.io/laser500emu/?restore=false&?load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/bomber/Xbomber_laser500.bin
-------------------------------------------
## CROSS SHOOT - THE GAME

Lo scopo del gioco è di occidere tutti i nemici comuni oppure alternativamente uccidere i 4 teschi prima di avere ucciso tutti gli altri nemici.
Completare un livello uccidendo i 4 teschi permette di avere più punti e di sbloccare segreti, oggetti e bonus.
I nemici comuni possono essere uccisi velocemente se spinti dai nostri proiettili contro i muri.
Devi evitare tutti i nemici e i missili di vario tipo.
Tutti gli oggetti che lampeggiano hanno effetti positivi per noi e ci possono darci poteri speciali.
I tuoi proiettili hanno una potenza limitata che puoi essere migliorata da un oggetto specifico.
Puoi anche raccogliere un oggetto che ti dà 3 mine da usare contro tutti i nemici.
Puoi scoprire 12 oggetti. Alcuni di questi oggetti sono segreti. Il gioco ha in totale 16 segreti (di vario tipo).
Per trovare i segreti la strategia migliore è quella di distruggere diversi teschi e basi di missili.
Il gioco prevede 16 diversi livelli compresi 2 boss + 1 livello segreto.
Il gioco è disponibile pure online:
1. Commodore 264 series (C16/C116/C+4): http://plus4world.powweb.com/play/cross_shoot
2. Commodore VIC 20: https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/XShoot_vic20_exp_16k.prg
3. Commodore 64: https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/Xshoot_c64.prg
4. MSX 1: https://homebrew.file-hunter.com/index.php?id=crossshoot
5. Sinclair ZX Spectrum 48K: https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=137606
6. Video Technology Laser 200 / VZ 200: https://nippur72.github.io/laser310-emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/Xshoot_vz200_24k.vz
7. Video Technology Laser 500: https://nippur72.github.io/laser500emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XShootRebuild/Xshoot_laser500.bin
-------------------------------------------
## CROSS CHASE - THE GAME

Lo scopo del gioco è quello di fare finiti i nemici sulle mine e se possibile uccidere pure il teschio colpendolo con più colpi (dopo avere preso la pistola).
Il gioco è quindi simile ad una versione real-time di Gnome Robots ma ha anche diversi elementi di gioco aggiuntivi.
Devi evitare tutti i nemici, le mine, i muri e i missili di vario genere.
Tutti gli oggetti lampeggianti hanno effetti positivi e possono darti poteri speciali. Ci sono 10 oggeti diversi da scoprire e sbloccare.
Per sbloccare alcuni segreti e oggetti speciali, dovrai usare la pistola contro il teschio e/o contro le basi dei missili.
Il gioco prevde 20 livelli diversi compresi 4 boss.
Il gioco è disponibile pure online:
1. Atari LYNX: https://atarigamer.com/lynx/play/CrossChase/675300242
2. Commodore 264 series (C16/C116/C+4): http://plus4world.powweb.com/play/cross_chase_32k_v0_9
3. Commodore Vic 20: https://nippur72.github.io/vic20-emu/?joy=1&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_vic20_exp_16k.prg
4. Commodore 64: https://nippur72.github.io/c64-emu/?joy=3&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_c64.prg
5. MSX 1: https://homebrew.file-hunter.com/index.php?id=crosschase
6. Sinclair ZX Spectrum 48K: https://spectrumcomputing.co.uk/playonline.php?eml=1&downid=112056
7. Video Technology Laser 210 / VZ200 : https://nippur72.github.io/laser310-emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_vz200_18k.vz
8. Video Technology Laser 500: https://nippur72.github.io/laser500emu/?restore=false&load=http://github.com/Fabrizio-Caruso/CROSS-LIB/releases/download/XChase/Xchase_laser500.bin
================================================
FILE: docs/HARDWARE_AGNOSTIC_CODE.md
================================================
## HARDWARE-AGNOSTIC CODE
Thanks to Cross-Lib APIs, the game code can be *hardware-agnostic*.
Using only Cross-Lib APIs is not enough, though, as Cross-Lib covers targets that have different screen size, screen shape and targets that lack some hardware features such as graphics, colors, sounds.
### ANSI C (A sub-set of)
The code has to be compiled by several different compilers that do not necessarily support the latest version of the C standard.
Therefore it should be written in a sub-set of ANSI C89 that is common among all supported compilers.
This sub-set can be described as (mostly) ANSI C89 without:
- `float` types;
- `struct` copies, assignments, parameters (use pointers to `struct` instead);
- dynamically allocated memory (`malloc`, `free`).
Moreover for performance reasons it is better to avoid recursion (as this has an extreme high cost on MOS 6502 targets).
Some C99 features are available:
- Modern `//` comments are allowed.
- `stdint.h` is not available but `uint8_t` and `uint16_t` are (with no need for extra include directive).
### Screen size
Using Cross-Lib APIs is not enough as the screen size and shape may be different.
Cross-Lib exposes a constant `XSize` for the width of the screen and a constant `YSize` for the height of the screen.
Both these macros are measured in terms of numbers of *tiles* (see next section).
The game code should rely on fractions of `XSize` and of `YSize` and never use hard-coded sizes or use conditional directives to cover all sizes.
By doing so, upon compilation, the game will auto-adapt to the target's screen size.
### Tile-based Graphics
Graphics in Cross-Lib is tile-based as this is the only possible graphics that can be supported by all targets.
For targets with graphics, the shapes of tiles are only defined at compilation time and cannot be re-defined.
So, for targets with graphics, smoothly moving sprites can only be implemented as software sprites through pre-shifted tiles.
Most targets with graphics have 8x8 pixel tiles but some other targets with graphics have different shapes.
So do not implement logic that only assumes 8x8 pixel tiles (e.g. when implementing software sprites with pre-shifted tiles).
If you want to support targets with no graphics (i.e., tiles are just mapped to ASCII characters),
you either avoid code that depends on tile shapes or if you, you have to implement an alternative version for non-graphics targets.
For example for the game Cross Snake you can see how it is rendered on the MSX 1 (graphics, sounds, colors) and on the Game Boy (graphics, sounds but no colors):


For more snapshots we refer to:
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/SNAPSHOTS.md
### Colors, Sounds and Graphics
Some targets have no colors or no color on text, or no sounds, or no graphics.
So do not write any logic that relies only on the presence of colors/sounds/graphics; or if you do, use conditional directives to implement an alternative logic for targets with no colors/sounds/graphics.
### Learn from the built-in games and tests
Cross-Lib comes with games and tests whose code can be used to learn how to code universal games.
The code of the games is in:
https://github.com/Fabrizio-Caruso/CROSS-LIB/tree/master/src/games
The code of the examples is in:
https://github.com/Fabrizio-Caruso/CROSS-LIB/tree/master/src/examples
================================================
FILE: docs/HOW_TO_ADD_A_NEW_GAME.md
================================================
## HOW TO ADD A NEW GAME
Adding a new game <game_name> is just a matter of
- copying src/Makefile.bomber into src/Makefile.<game_name>
- copying src/games/bomber into src/games/<game_name>
- add an exception to src/.gitignore for src/games/<game_name>/generated_assets
================================================
FILE: docs/HOW_TO_ADD_NEW_TARGET.txt
================================================
HOW TO COMPILE FOR A NEW TARGET
Adding a new target computer with no sound, no joystick/gamepad inpu
and no user-defined graphics can be as simple as just recompiling
with no modification if the compiler supports conio.h.
In most cases this won't produce the best result. So some little tuning
is usually necessary.
If no conio is natively supported, some little conio wrapper and/or
re-implementation of the display APIs in display_macros.c is necessary.
Here we describe the simplest cases when conio is already available,
no sound and no user defined graphics is expected.
Usually you have to do the following steps:
1. SCREEN SIZE
By default screen size is 16x16 cells.
So, if you want your target (e.g., NEW_TARGET) to use a different cell count.
You need to compile with the -D__NEW_TARGET__ option to let the code know you
are compiling for NEW_TARGET
edit display_macros.h and add something like:
...
#elif defined(__NEW_TARGET__)
#define XSize <desired X cell resolution>
...
#elif defined(__NEW_TARGET__)
#define YSize <desired Y cell resolution>
...
2. SPEED
By default no slow down is inserted in the main loop but in some cases your game
may run too fast.
So you will need to edit settings.h to add some slow-down:
...
#elif defined(__NEW_TARGET__)
#define SLOW_DOWN
#define GAME_SLOW_DOWN <number of slow-down cycles>
...
3. SLEEP
If the compiler does not implement the sleep function, you need to either implement one
yourself or compile with -DNO_SLEEP if you want no sleep.
4. KEYBOARD INPUT
Some targets may detect key-presses as capital and others as small letters.
You can tune this in settings.h.
5. INPUT
Some targets may no implement getk to read the keyboard input.
In this case you need to provide a substitute in input_macros.h and input_macros.c
================================================
FILE: docs/HOW_TO_INSTALL_COMPILERS.txt
================================================
-------------------------------------------------------------------------------------------------------
XTC68
-------------------------------------------------------------------------------------------------------
1. You need to clone
https://github.com/stronnag/xtc68
2. So you need a 32bit development environment on a x86-64 machine.
So, you may need to run:
"sudo apt install libc6-dev-i386"
or install the corresponding Cygwin package
or just be in a 32-bit environment
3. You need to unzip
424frun1.zip
(found inside the tools/xtc68 directory and originally taken from "Runtime disk1"
in http://www.dilwyn.me.uk/c/index.html into the "support" directory which you find inside the newly cloned code.
i.e., download the disk1 http://www.dilwyn.me.uk/c/424frun1.zip from http://www.dilwyn.me.uk/c/index.html and put it inside the "support" directory
4. Run "make all"
5. Run "install.sh"
Remark:
After linking and compilation the command will give us the number of bytes used for the "dataspace".
In order to use the binary inside an emulator we need to add some meta-data and choose an emulator, e.g.,
QPC from https://www.kilgus.net/qpc/ :
- run the following commands
"
f$=“dos1_<path to binary in C: where you use '_' instead of '/'>“
l=FLEN(\f$)
mem=RESPR(l)
LBYTES f$,mem
SEXEC ram1_<name in QL>,mem,l,<value >= dataspace bytes>
"
- you will have the program in ram1 with the name chosen by the SEXEC command, which you run by selecting ram1 and the program.
-------------------------------------------------------------------------------------------------------
Z8K-GCC
-------------------------------------------------------------------------------------------------------
0. Under Linux 64-bit, you may need to install
libc6:i386,
libncurses5:i386,
libstdc++6:i386
zlib1g:i386
1. Use: z8kgcc-jan-19-2009-linux-fc9.tar
from:
ftp://ftp.groessler.org/pub/chris/olivetti_m20/misc/z8kgcc/z8kgcc-jan-19-2009.tar.bz2
or:
http://www.z80ne.com/m20/sections/download/z8kgcc/z8kgcc-jan-19-2009-linux-fc9.tar.bz2
Main site: http://www.z80ne.com/m20/index.php.
2. Decompress it into /opt in order to have "z8k-pcos-gcc" inside /opt/z8kgcc-jan-2009/bin
3. Add "/opt/z8kgcc-jan-2009/bin" to your PATH
For example by inserting the following line in .bashrc
export PATH="/opt/z8kgcc-jan-2009/bin:$PATH"
Disk images
In order to insert the binary inside a disk image download the tool m20floppy from ftp://ftp.groessler.org/…/ol…/imgtools/m20floppy-0.61.tar.gz
Use a bootable image from https://github.com/…/m…/tools/olivetti_m20/pcos20h_empty.img
Compilation
- to produce an object file do something like : qcc -c hello.c -o hello.o
- to link and produce a binary "a_out" do something like qcc crt.o part1.o part2.o
-------------------------------------------------------------------------------------------------------
GCC for TI
-------------------------------------------------------------------------------------------------------
Compiler Installation:
git clone https://github.com/mburkley/tms9900-gcc
(IMPORTANT:As of 2024/10/18 only 1.32 branch is stable)
git checkout 1.32
sudo apt install build-essential libgmp-dev libmpfr-dev
cd tms900-gcc
./install.sh /opt/gcc4ti
--------------------------------------------------------------------------------
libTi99:
git clone https://github.com/tursilion/libti99
Modify the Makefile to make it point to /opt/gcc/bin
e.g.,
TMS9900_DIR?=/opt/gcc4ti/bin
ELF2EA5_DIR?=/opt/gcc4ti/bin
EA5_SPLIT_DIR?=/opt/gcc4ti/bin
Once the it has finished to build (even if with errors), make sure that
- the header files are in /opt/gcc4ti/include
- libti99 is in /opt/gcc4ti/lib
The lib may fail if it does not find classic 99 emulator, but it builds the libti99 file anyway.
So you have to move it manually to /opt/gcc4ti/lib and to move the .h files to /opt/gcc4ti/include.
A cleaner way would be to have the Makefile also point to classic99.
----
OLD procedure
for the Texas TI99/4a
(http://atariage.com/forums/topic/164295-gcc-for-the-ti/page-6),
1. download and decompress gcc-installer.tar.gz from http://atariage.com/forums/topic/164295-gcc-for-the-ti/page-1
2. install libgmp-dev libmpfr-dev tree
For Cygwin install:
Category "Devel"
- gcc-core
- libiconv
- make
- patchutils
Category "Libs"
- libgmp-devel
- libmpfr-devel
Category "Interpreters"
- m4
3. export set MAKEINFO=missing (to fix one error about texinfo) [maybe no longer necessary]
4. run the "install.sh <target dir>" script command
5. find files inside <target dir>/bin
--------------
NEW version
-------------------------------------------------------------------------------------------------------
GCC for Atari ST
-------------------------------------------------------------------------------------------------------
1. download the cross compiler from http://vincent.riviere.free.fr/soft/m68k-atari-mint/
2. follow the instructions from the installation site
3. use as GCC
4. place st52 terminfo file inside usr\share\terminfo\s in the same virtual hard disk as the .tos file(s)
================================================
FILE: docs/HOW_TO_LOAD.md
================================================
In order to run the game you will have to follow a different procedure depending on whether you want to load it into an emulated system or a real system.
### Loading the game into an emulated vintage system
In most cases loading an executable into an emulator is straightforward.
For a detailed guide on how to load the game on several emulated systems for which the procedure is not obvious, we refer to:
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/HOW_TO_LOAD_THE_GAME.md
### Loading the game into a real vintage system
This depends on the systems and the format used to store the game. For some hints on this take a look at:
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/HOW_TO_LOAD_THE_GAME_ON_REAL_HARDWARE.md
================================================
FILE: docs/HOW_TO_LOAD_THE_GAME.md
================================================
## HOW TO LOAD THE GAME
This document only describes some non-obvious procedures on how to load the game
on some emulators (similar procedures can be followed on the real machines):
-----------------------------------------------------------
### AGAT 7 and 9
Use the Agat emulator 1.29 (the one not detected as a virus):
https://sourceforge.net/projects/agatemulator/
Select "(2) IKP-9"
Chose second option from below
Right click top of the window
Go to 140k drive
Select game disk image
Type:
"
CATALOG,S6
BRUN XL
"
-----------------------------------------------------------
### AGON LIGHT
Use https://github.com/astralaster/agon-light-emulator
Put the binaries inside the sdcard directory
dir to list the content of the emulated SDK
load <file name>
run
-----------------------------------------------------------
### ALPHATRONIC
Use MAME/MESS
mame64.exe alphatro -uimodekey DEL -window -cartridge1 c:\Retro\CROSS-CHASE\build\FULL_alphatro.rom
---------------------------------------------------------
### AMSTRAD CPC/GX4000
You can use Caprice, WinApe
- Tape (.cdt) version:
You need to attach the image as a tape
In BASIC type
|tape
run"
Start PLAY on the virtual tape player
- Disk (.dsk) version:
You need to attach the image as a disk
In BASIC type
run"XBIN .CPC"
- ROM (.cpr) version:
You need to attach the image as a cartridge
----------------------------------------------------------
### Amstrad NC 100
Use nc100em-1.2-2014 emulator .
Rename the binary to nc100.card and place it in the same folder as the emulator
Run the emulator.
Control-X to start the game
---------------------------------------------------------
### ATARI 5200
Use Altirra or use Atari800 emulator with the Atari 5200 bios roms and select Atari 5200 emulation.
Load as 16k one chip cartridge.
---------------------------------------------------------
### ATARI 7800
Use A7800 (http://7800.8bitdev.org/index.php/A7800_Emulator)
Select standard options.
Use it as Mame/Mess by:
TAB->load ROM->cartridge->select file
---------------------------------------------------------
### ATARI LYNX
Use Handy 0.95 emulator (https://sourceforge.net/projects/handy/?source=typ_redirect).
Place the rom into same folder as Handy emulator (https://atariage.com/Lynx/roms/LynxBoot.zip)
---------------------------------------------------------
### AQUARIUS
Unzip the .zip file.
Type CLOAD
First load the file starting with underscore
Type RUN
Type CLOAD
Then load the other file
-----------------------------------------------------------
### BBC MICRO / BBC MASTER
Use BeebEm 4.19 emulator.
File-> Load disk 0-> Select .img file
To load and run the game in dsk format you can use the following commands:
- *CAT to verify the disk content
- *RUN"XCHASE"
If you want to create a dsk image from a .inf image:
It is better to have short simple name files. For example let us assume XCHASE and XCHASE.INF
Use the binary and .inf files to
either
create a disk with tools such as bbcim or BBCExplorer-2.01
or
use BeebEm 4.16 emulator
1. to create an empty disk image (File->Disc Options->New Disc 0)
2. inject the binary into the new disk (Edit->Import files to disc->select .inf file)
-----------------------------------------------------------
### BIC / A5105
Use JKCEMU.
- (If not already selected) Einstellungen -> Select BIC
- Datei->Diskettenstation->Laufwerk 1->Open->Diskettenabbilddatei oeffnen->select file .dumb file->Nur lesen
- Datei->Schliessen
- Run file by its name (e.g., BULD/FU)
- Run DIR to see disk content/view/3/4/
-----------------------------------------------------------
### BIT90
Use Mame emulator.
Run it with something like:
mame64.exe bit90 -window -uimodekey DEL
Attach the .rom as a cartridge to load and run the game
-----------------------------------------------------------
### BONDWELL 2
Use Mame
- Start bw2
- May need to use ScrollLock (FN+`[` on some keyboards)
in order to enable TAB to enter the disk selection menu
- Select the CP/M 2.2 boot disk
- Use natural keyboard to type CTRL-C to leave the menu
- Switch to the game disk
-----------------------------------------------------------
### CAMPUTERS LYNX
Use Jinx emulator: https://jynxemulator.wordpress.com/download/
GitHub project: https://github.com/jonathan-markland/Jynx/releases
-----------------------------------------------------------
### CANON X-07
Use Takeda emulator
Insert the .CAS file with PLAY->select file
Use the CAS file with the following commands
CLOAD
RUN
-----------------------------------------------------------
### CASIO FP-1100
Use Takeda's fp1100.exe emulator.
You need to put MAME roms in the same directory as the binary.
Attach disk image
Reset
---------------------------------------------------------
### CCE MC-1000
Use the MESS emulator
e.g.
mess64.exe mc1000 -uimodekey DEL -window
mess64.exe mc1000 -uimodekey DEL -window -ramsize 48k (for the 48k expansion) )
Use File Manager to attach the WAV file
In BASIC do: TLOAD
Start the tape: Tape Control -> Tape
---------------------------------------------------------
### CBM 610
Use WinVice 3.1 and try multiple times.
Sometimes load"*",8 helps.
There must be a bug in WinVice disk drive emulation for this target.
-----------------------------------------------------------
### COLECOVISION
Use ColEm: https://fms.komkon.org/ColEm/
-----------------------------------------------------------
### COLECO ADAM
Use Mame emulator.
mame64.exe adam -window -flop1 .\disk\adam\cpm2.2_1.50.dsk -flop2 c:\Retro\CROSS-CHASE\build\FULL_coleco_adam.img
B:
Type the binary name (no extension) contained in B:
-------------------------------------------------------------
### Color Computer (CoCo)
Tape load
- Use XROAR emulator: https://www.6809.org.uk/xroar/
- Attach the .cas image
- Type
- CLOADM
Remark: You can also simply use the "run" option
Disk load
- Use XROAR emulator (Emulate CoCo DISK EXTENDED)
- Disable "keyboard translation" in the "Tool" tab
- Select a CoCO machine to emulate in the "Hardware" tab
- Attach the .dsk disk image in "File->Drive 1"
- Type:
- LOADM"XBIN
- EXEC
-------------------------------------------------------------
### Color Computer 3 (CoCo 3)
Use VCC emulator: https://github.com/VCCE/VCC/releases
Same as CoCo with XROAR but disk drives need to be enabled:
Disk load
Cartridge -> Cartridge -> Load Cart
fd502.dll (to enable disk drive emulation)
---------------------------------------------------------
### COMX
Use EMMA 02 (https://www.emma02.hobby-site.com/download.html)
Select COMX tab
Click on START (window may hide the option -> make it bigger)
Click on LOAD
Go to the directory with the .hex file
Select HEX Files
Chose the .hex file
Type RUN
[equivalent to CALL(@4401)]
----------------------------------------------------------
### CP/M (generic system) with ADM-3A control sequences
.COM binaries:
Examples of CP/M systems with ADM-3A support:
multiple Kaypro systems, Aussie Byte (Knight 2000), Decision Mate V
Use MAME emulator with correct roms and CP/M disks.
Examples:
- mame64.exe kaypro2x -flop1 ..\disk\kaypro\k10hald1.td0 -uimodekey DEL
- mame64.exe aussieby -flop1 ..\disk\aussie_byte\knight2000_boot.dsk -uimodekey DEL
WAIT for the operating system to fully load.
Use the quickload option to load the .COM file.
If you want to create a disk image you need to follow the instructions in the Z88DK wiki.
.DSK images:
Use MAME emulator with correct roms and CP/M disks
Examples:
- mame64.exe dmv -flop1 ..\disk\dmv\dm5-cpm.td0 -uimodekey DEL
- Attach image as disk B:
- Run B:
- <binary name without .COM>
-----------------------------------------------------------
### CREATIVISION
Use MAME/MESS.
Mess 0.148 with crvision works fine:
mess64.exe crvision -window -uimodekey DEL -cart1 c:\Retro\CROSS-LIB\build\FULL_creativision_16k_SWAPPED.bin
mess64.exe crvision -window -uimodekey DEL -cart c:\Retro\CROSS-LIB\build\Xshoot_creativision_18k_SWAPPED.bin
-------------------------------------------------------------
### DAI
Use Mame emulator.
mame64.exe dai -window
Attach tape file
UT (to enter monitor)
R (to load)
G0800 (to start the game)
-------------------------------------------------------------
### Dragon
Tape load
- Use XROAR emulator
- Attach the .cas image
- Type
- CLOADM
Remark: You can also simply use the "run" option
Disk load
- Use XROAR emulator (Emulate DOSPLUS)
- Attach the .vdk disk image
- Type: RUN"XBIN.BIN"
-----------------------------------------------------------
### EACA 2000 - EG2K
Use the Genieous emulator: http://gaia.atilia.eu/content/view/3/4/
------------------------------------------------------------
### EMSCRIPTEN
This is a special target: its build is generated by Emscripten and it is targeting browsers.
The build for this target are .html, .js, , .wasm files.
In order to run a game built for this target you need to run an HTTP server:
- move the generated files inside the emsdk directory
- python -m SimpleHTTPServer
You can then run your program by using the following URL:
e.g., http://localhost:8000/FULL_emcc_buffered.html
For more info on Emscripten installation:
see https://emscripten.org/docs/getting_started/downloads.html
In particular:
- Make the "latest" SDK "active" for the current user. (writes .emscripten file)
./emsdk activate latest
- Activate PATH and other environment variables in the current terminal
source ./emsdk_env.sh
Note:
On Windows, run emsdk instead of ./emsdk, and emsdk_env.bat instead of source ./emsdk_env.sh.
WSL mounted on:
C:\Users\fabri\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs
------------------------------------------------------------
### ENTERPRISE
Use ep128emu (https://sourceforge.net/projects/ep128emu/files/)
Select config EP_128k_EXDOS_FileIO.cfg
Set working directory to the directory with your binary
F1 -> Select binary
----------------------------------------------------------
### EPSON PX-4 / HC-40
Use Takeda emulator for HC-40 with the right SYS.ROM file (https://fjkraan.home.xs4all.nl/comp/px4/).
Rename the binary into BASIC.ROM and replace the original BASIC.ROM that
should be (or have been) in the same directory as the HC-40 emulator executable.
----------------------------------------------------------
### EPSON PX-8 / HC-80
Use Takeda emulator for HC-80 with the right SYS.ROM file.
Rename the binary into BASIC.ROM and replace the original BASIC.ROM that
should be (or have been) in the same directory as the HC-80 emulator executable.
----------------------------------------------------------
### EPSON QC-10 / QX-10
Use Mame emulator
e.g.,
mame64.exe qx10 -window -uimodekey DEL -flop1 c:\Emulation\TEST\0.196\disk\qc10\EPSNQX10.dsk
Attach the disk image and type the binary name (run DIR to see name).
-----------------------------------------------------------
### BGR COMPUTERS EXCALIBUR 64
Use Mame emulator with the CP/M boot disk
e.g.,
mame64.exe excali64 -window -uimodekey DEL -flop1 c:\Emulation\TEST\0.196\disk\excali64\excalibur_cpm_system.raw
Attach the game image
B:
Run the binary in B: with its plain name (no extension)
-----------------------------------------------------------
### EXIDY SORCERER
Use Mess emulator.
Attach the .wav file
Type LOADG
---------------------------------------------------------
### PC-E200 / PC-G850 / PC-G815
Use the g800 emulator (https://ver0.sakura.ne.jp/pc/)
Run it from the cmd line with:
g800(.exe) -machine=e200 <path to ihx file>
g800(.exe) -machine=g815 <path to ihx file>
g800(.exe) -machine=g850 <path to ihx file>
Once the emulated machine is started use:
MON (to enter the Assembly monitor)
G100 (to actually run the code)
---------------------------------------------------------
### Galaksija
Use the MESS emulator or
(for debugging) the online emulator https://galaksija.net/?i=2
Use File Manager to attach the WAV file
In BASIC run: OLD
Start the tape
In BASIC run: RUN
---------------------------------------------------------
### Galaksija Plus
Use GALe emualtor: https://galaksija.net/?i=1
Drop the .gtp file into the browser.
---------------------------------------------------------
### GAMATE
Use MESS/MAME (e.g., Mess 0.148).
Run mess.exe gamate
File Manager -> Select cartridge -> Choose the .bin file
---------------------------------------------------------
### GAMEGEAR
Use Mednafen.
Remark: Sound works fine here.
mednafen.exe c:\Retro\CROSS-LIB\build\Xhorde_gamegear.gg
Use Emulitious (https://emulicious.net/)
File -> Open File -> Select .gg file
or (maybe broken with no sound!)
Use Kega Fusion ((https://segaretro.org/Kega_Fusion).
File -> Open GameGear ROM -> Select .gg file
------------------------------------------------------------
### GRUNDY NEWBRAIN
Use NBemulator15.
Create a directory with _dir.txt, a.bas, a.dat
Insert this directory into the BASIC directory
Start the emulator
File -> Start Emulation
File -> Tape Management -> Select directory with the game's files
Type "LOAD"
Type "RUN"
---------------------------------------------------------
### HECTOR HR
Use DCHector or VB Hector emulator
[DCHector]
Select Hector HR(2)+.
File->Load Tape
Press 1 and wait for the game to load and run
---
[VB HECTOR]
Start the emulator
Select HR Plus
Fichier -> Ouvrir Fichier K7
Press 1 and wait for the game to load and run
Click on the emulator's window
---------------------------------------------------------
### HOMELAB 2### HECTOR HR
Use MAME emulator.
Use quickload to select the .htp file (and load it into memory)
CALL 17152
---------------------------------------------------------
### HOMELAB 3/4
Use MAME emulator.
Use quickload to select the .htp file (and load it into memory)
CALL $4300
---------------------------------------------------------
### HUEBLER/EVERT-MC
Use JKCEmu.
Einstellungen
Select HUEBLER/EVERT-MC
Uebernehmen
Schliessen
Datei -> Lauden -> Select binary
GO 0000
---------------------------------------------------------
### HUEBLER-GRAFIK-MC
Einstellungen
Select HUEBLER-GRAFIK-MC
Uebernehmen
Schliessen
Datei -> Lauden -> Select binary
GO 0000
---------------------------------------------------------
### JUPITER ACE
Use EightOne emulator.
For the FULL version game
"0 0 bload ace"
Open the FULL .wav version with
Tools->Wav Loader.
------------------------------------------------------------
### KAYPRO
Use Mame (See CP/M target)
mame64.exe kaypro2x -flop1 ..\disk\kaypro\k10hald1.td0 -uimodekey DEL
---------------------------------------------------------
### Luxor ABC 80
Use the ABC80SIM emulator (https://www.abc80.org/pub/abc80sim/, https://git.zytor.com/abc80/abc80sim.git/)
.ihx
Pass the ihx file as a parameter to the emulator
Run it directly with the command “A=CALL(49200)”
---
.bac
abc80 --casfile program.bac
run cas:
or
put the .bac file in the right directory (abcdir),
then run prb:xchase
---
.dsk
Rename the image to mo0
Put the image in abcdisk
run xchase
or
Rename the image to mo0
Put the image in <mydir>
Run abc80 -Dd <mydir>
run xchase
--------------------------------
Use ABC80Win.
Attach .dsk image
load"xchase"
run
---------------------------------------------------------
### Luxor ABC 800
Use the ABC80SIM emulator (https://www.abc80.org/pub/abc80sim/, https://git.zytor.com/abc80/abc80sim.git/)
.bac
abc80 --abc802 --memfile program.bac
Then "run mem:"
.dsk
Rename the image to mo0
Put the image in abcdisk
run xchase
or
Rename the image to mo0
Put the image in <mydir>
Run abc80 -Dd <mydir>
run xchase
Use ABC80Win
Attach .dsk image
load"xchase"
run
---------------------------------------------------------
### LVIV/LVOV
Use https://web.archive.org/web/20201215185635/https://github.com/izhaks/PK01LvovEmulator/releases/tag/v1.4
---------------------------------------------------------
### M100 / Olivetti M10 / KC85 / PC8201
.CO file can be loaded into VirtualT emulator through "File > Load file from HD" menu item.
Once the program is in memory, enter BASIC and give the following command:
CLEAR 0,49999
now the program can be loaded, either via the BASIC command RUNM "A.CO or by pressing F8 to get back to the menu and choosing it with the cursors.
---------------------------------------------------------
### Memotech MTX 500 and 512
Use Bill's MEMU (http://www.primrosebank.net/computers/mtx/emulators/Bills_MEMU_ds.htm)
memu -tape-overwrite -vid-win-big -snd-portaudio <path to the .mtx file>
Type:
LO.""
Then:
RUN
---
Place the .mtx binary into the directory "tapes"
Use memu-cfg.exe
F11 to enter the menu
Select MTX model if necessary (MTX500 or MTX512)
Select tape -> Choose the .mtx binary
Restart
MTX500 binary on MTX512
POKE 64122,0
NEW
LOAD""
RUN
MTX500 binary on MTX500 or MTX 512 binary n MTX512
LOAD""
RUN
Use the MESS 0.118 emulator
Rename FULL_MTX.mtx to FULL and place it in the same folder as the Mess emulator
In Basic do:
LOAD"FULL"
RUN
-----------------------------------------------------------
### MITS Altair 8800
Use http://www.classiccmp.org/altair32/
Switch it ON
Load the .bin y File -> Read Image File -> Select File -> Address: $0000
Click on STOP/RUN
-----------------------------------------------------------
### MITSUBISHI MULTI 8
Use Takeda emulator
Type "MON"
Then "R"
Select tape file with CMT -> Play -> Select file
Type "GC000"
-----------------------------------------------------------
### MICROBEE
(1) .WAV files
(1a) Use Mame/Mess_
For example with:
mbeepc85 -window -uimodekey DEL -cass c:\Retro\CROSS-LIB\build\<file_name>.WAV
Type B to enter BASIC
Type LOAD
Go to Mame/Mess menu to control TAPE and select PLAY
---
(1b) Use UBEE512
Install UBEE512 (run script, copy roms into rom folder)
Select UBEE512 icon and select properties to add " ic" to the command
Run UBEE512
C:\Emulation\Computers\ubee512\ubee512.exe ic --tapei="a.wav"
Type LOAD
Right click to select TAPE to start loading the tape
Type RUN
-----------------------------------------------------------
### MICRO (MICROBOARD SYSTEM)
Use Emma 02 emulator.
Select RCA -> Microboard System
CARD2 -> 128 6x8 characters
CARD1 -> RAM U20 -> binary
START
-----------------
(2) .BEE files
Use Nanowasp emulator: http://nanowasp.org/
Click on TAPE to select the .BEE file to insert the file in the list of programs
Click on the selected file to insert in the tape player
Type LOADM
-----------------------------------------------------------
### MIKRO-80
Use E3000 emulator http://www.emulator3000.org/e3.htm
Select the binary to load and run it.
-----------------------------------------------------------
### MSX
Use BlueMSX
Attach image.
Run bload"cas:",r
Or use MAME
For example
mame.exe canonv20 -window -uimodekey DEL -cart1 c:\Retro\CROSS-LIB\build\Xhorde_msx_32k.rom -skip_gameinfo
-----------------------------------------------------------
### NICHIBUTSU MY VISION
Use Mame emulator
e.g., mame64.exe myvision -window -uimodekey DEL
Attach the .rom image file as a cartridge
-----------------------------------------------------------
### NASCOM
Use Virtual-Nascom (http://repo.or.cz/w/virtual-nascom.git)
Type virtualnascom [.nas file]
Once the monitor is running, enter “E 1000”
-----------------------------------------------------------
### NEC PC-6001
Use Virtual Nec Trek
Select 2 pages at start-up
Type "cload"
Select cassette image
Type "run"
---------------------------------------------------------
### Nintendo NES / Famicom
Use FCEUX (https://tasvideos.github.io/fceux/web/home.html)
Alternatively Use mednafen and run the following command:
mednafen.exe -fs 1 FULL_nes.nes
---------------------------------------------------------
### Ohio Scientific C1P
Start the WinOSI executable (http://osi.marks-lab.com/)
Under "Options" select "System Configuration...".
Select "OSI C1P / Superboard II (600 BOard)" as machine type.
On the "System ROMs" tab under "Specify ROM Type" select SYN600.
Press "OK"
Under "File" select "Attach Serial Input File...".
Select the file "FULL_osic1p.c1p".
In the emulator window you should see the "D/C/W/M" prompt.
Press "M" to run the monitor. You then should see the "0000 00" prompt of the machine monitor.
Press "l" (lowercase L). This will load the program and start it.
Memory configs in WinOSI
Open Osi.ini
32K -> RAMTOP=0x7FFF
8k _> RAMTOP=0x1FFF
-------------------------------------------------------------
### Olivetti M20
Use Mame
You need to attach the floppy image
mame64.exe m20 -window -flop1 c:\Retro\CROSS-CHASE\build\FULL_m20_buffered.img
At the prompt run with
aout.cmd
---------------------------------------------------------
### Sanyo PHC-25
Use https://github.com/hitchhikr/phc25
Screen -> 1 (to get more available memory)
cload
File->Read tape options->Read tape file->(select file)
run
----------------------------------------------------------
### Senio MAP-1010
You need to convert the phc file to a wav file.
In order to do this you can use castool:
castool convert phc [phc file] [wav output file]
Use TAKEDA emulator
CLOAD
CMT->Play->select file
run
----------------------------------------------------------
### MS-DOS 8086
Use DOSBOX.
Map the directory with the .COM binaries to a drive (e.g., C:)
Move to C:
Type the name of the .COM file
----------------------------------------------------------
### MS-DOS 386
Use DOSBOX.
Map the directory with the .EXE binaries to a drive (e.g., C:)
Move to C:
You need CWSDPMI
Run: CWSDPMI -p -s
Type the name of the .EXE file
------------------------------------------------------------
### TESLA ONDRA VILI
Use Mame emulator with the ondrav target
e.g., mame64.exe ondrav -window -uimodekey DEL
Press ENTER
Attach .wav image as tape
Start tape to load and autostart the game
------------------------------------------------------------
### ORIC 1 / ORIC ATMOS
Use the Oricutron emulator (https://github.com/pete-gordon/oricutron)
Attach the image.
Run CLOAD""
------------------------------------------------------------
### ORIC TELESTRAT
Use the modified version of Oricutron emulator: http://orix.oric.org/download/
Use the instructions on the link above to boot Orix operating system
Rename the binary file to a short name with no extension
Copy it into sdcard/bin
Run the binary by typing its name
------------------------------------------------------------
### OSCA
Use the OSCA emulator (http://www.basoft.co.uk/wordpress/emulation/computer-system-emulation/v6z80p/osca-emulator/)
Use WinImage to inject the .exe binary into a working .img file
Edit the config.txt to make it point to the modified .img file
Run by typing the executable name (whitout .exe)
------------------------------------------------------------
### OZ
Launch vOZ
Drag oz750.rom on the emulator's windows
choose the memory size (256K in my case)
press ENTER (CTRL key) to exit the display settings
press ENTER (CTRL key) again
(optional) Press F6 for brighter display
Drag <program>.wzd on the emulator's windows
Choose the program 'slot' from the emulator's dialog window
Press F5 to select the custom program
-----------------------------------------------------------
### NAMCO PUCMAN (PACMAN)
Use the Mame emulator
You need the puckman.zip rom file.
You have to replace puckmod with the one generated by CrossLib Makefile.
Run Mame:
mame64.exe puckmod -window -uimodekey DEL
-----------------------------------------------------------
### PASOPIA 7
Use Takeda emulator (http://takeda-toshiya.my.coocan.jp/) with the Mame romset
Attach the disk image
Reset to start the game
-----------------------------------------------------------
### PC 8088/8086
Use qemu-system-i386 to start a bare metal PC 8088/8086 and attach the floppy image
qemu-system-i386.exe c:\Retro\CROSS-CHASE\build\FULL_pc8086_turn_based.img
---------------------------------------------------------
### PCE
Use mednafen and run the following command:
mednafen.exe -fs 1 TINY_pce.pce
---------------------------------------------------------
### Pecom 32/64
Use EMMA 02 (https://www.emma02.hobby-site.com/download.html)
Select Pecom tab
Click on START (window may hide the option -> make it bigger)
Click on LOAD
Go to the directory with the .hex file
Select HEX Files
Chose the .hex file
Type RUN [equivalent to CALL(&0201)]
---------------------------------------------------------
### Hanimex Pencil II
Use Mame emulator.
Run mame64.exe pencil2 -window -uimodekey DEL
Attach the ROM image
-----------------------------------------------------------
### NEC PC 8801
Use the M88 emulator: https://illusioncity.net/PC88/m88eng.rar
BIOS: https://archive.org/details/m-88.7z
Type:
MON
R
Select the tape file
G8A00 to start
-----------------------------------------------------------
### PETERS PLUS SPRINTER
Use SPRINT (http://web.archive.org/web/20040905083237/http://shaos.ru/nedopc/sprinter/sprint.htm)
run with something like SPRINTGW.EXE c:\Retro\CROSS-CHASE\build\FULL_pps.exe
---------------------------------------------------------
### Philips 2000
Use m2000-allegro5 emulator
Place the game file into the same directory as the m2000.exe and rename it into p2000.cas
In BASIC execute:
CLOAD
RUN
---------------------------------------------------------
### Philips VG 5000
Type CLOAD
Select the game file
----------------------------------------------------------
### PMD-85
Use Borik's PMD-85 Emulator (https://pmd85.borik.net/wiki/Emulator)
Select the .ptp image file.
Run
MGLD 00
Press the flash button.
Click on the play button.
JUMP 0000
----------------------------------------------------------
### PRIMO
Use Mame
e.g., mame64.exe primoa64 -window -uimodekey DEL
Use Quickload to load the .pp image
----------------------------------------------------------
### Robotron KC 85/2, 85/3, 85/4, 85/5, HC 900
Use the JKCEMU emulator.
Click on "Extra" tab.
Choose "Einstellungen"
Select your target (e.g., KC 85/5)
Press "Uebernehmen" and then "Schliessen"
Load file with "Datei" -> "Laden" -> Select File -> "Starten"
----------------------------------------------------------
### Robotron Z 1013
Use J1013 emulator (http://www.jens-mueller.org/j1013/download.html):
1. Press Datei->Laden
2. Select binary
3. Press Starten
---------------------------------------------------------
### Robotron Z 9001
Use the JKCEMU emulator.
Click on the "Extra" tab.
Choose "Einstellungen"
Select Z9001
Press "Uebernehmen"
Press "Schliessen"
Load file with "Datei"->"Laden"
Select file
Click "Starten"
-------------------------------------------------------------
### S-OS
Use sword05 (http://www.retropc.net/ohishi/s-os/sword05.lzh)
Place the file (a.obj) in the same directory as the emulator
(no space)L<SPACE>a.obj
(no space)J 3000
-----------------------------------------------------------
### SAMSUNG SPC-1000
Use ESPC emulator
Type "LOAD"
CMT -> Play -> Select file
CMT -> Play button
---------------------------------------------------------
### SEGA MSTER SYSTEM
Use Kega Fusion Emulator (https://segaretro.org/Kega_Fusion)
File -> Load MasterSystem ROM -> Select .sms file
or
Use Emulitious (https://emulicious.net/)
File -> Open File -> Select .sms file
---------------------------------------------------------
### SEGA SC 3000
Use the MESS emulator
Run mess with
mess64.exe sc3000 -cart1 <basic31 file name>.sc -cass1 FULL_sc3000_32k.wav
Inside the emulator type:
LOAD
RUN
---------------------------------------------------------
### Sharp MZ
Use mz800Emu
Press C
Select .mzf file
----------------------------------------------------------
### SHARP X1
Use Takeda X1 emulator (you need the roms)
1. Start the emulator.
2. Click on FD0.
3. Select the disk image
-----------------------------------------------------------
### SHARP PC G850
Use g800win32 emulator (http://ver0.sakura.ne.jp/pc/)
g800.exe -machine=200 c:\Retro\CROSS-CHASE\build\FULL_g800_turn_based.ihx
Type "G100"
-----------------------------------------------------------
### ZX SPECTRUM NEXT
Use CSPECT emulator (http://www.cspect.org/)
Press F2
Select .nex binary to load and start it
-------------------------------------------------------------
### Sinclair QL
Use QPC https://www.kilgus.net/qpc/
Rename the binary to something short, e.g., xchase
Type the following commands to add the necessary meta-data and have the binary inside the emulated Sinclair QL
"
f$=“dos1_<path fo file with '_' instead of '/'>“
l=FLEN(\f$)
mem=RESPR(l)
LBYTES f$,mem
SEXEC ram1_<name given to the binary inside the QL>,mem,l,<dataspace value (*)>
"
(*) dataspace has to be big enough, i.e., bigger than what the compiler shows as output.
A possible value is 4096.
Now the ram1 disk has the executable binary inside the QL. Select ram1 and then the game to start
-----------------------------------------------------------
### SONY SMC-77
Use Takeda emulator with Mame roms.
Insert the boot disk into the first floppy drive and the game disk in the second one
B:
Run the binary inside B: (no extension)
-----------------------------------------------------------
### SORD M5
Use MESS/MAME
You need the basic-i rom somewhere in your file system
You could run:
Mess 0.191
ROM:
mess64.exe m5 -window -ramsize 36k -cart1 c:\Retro\CROSS-LIB\build\Xbomber_m5_rom.rom
|Tape:
mess64.exe m5 -window -ramsize 36k -cart1 basic-i\basic-i.rom -cass c:\Retro\CROSS-LIB\build\Xbomber_m5.cas
or
mess64.exe m5 -uimodekey DEL -cart1 basic-i\basic-i.rom -ramsize 36k -window
You need to insert the tape
Type TAPE
Press ESC
---------------------------------------------------------
### SUPERVISION
Use Potator (https://emulationrealm.net/downloads/file/235-potator)
Use arrows for movements and C for fire
---------------------------------------------------------
### SONY SV 8000
Use the Mame emulator.
e.g., mame64.exe sv8000 -window -uimodekey DEL
Attach the .rom cartridge image to start the game.
---------------------------------------------------------
### DICK SMITH SUPER 80
Use the Mame emulator
e.g., mame64.exe super80 -window -uimodekey DEL
Use quickload to load and start the game
---------------------------------------------------------
### DICK SMITH SUPER 80R
Use the Mame emulator
e.g., mame64.exe super80r -window -uimodekey DEL
Ues quickload to load and start the game
-----------------------------------------------------------
### TATUNG EINSTEIN
With +cpm -subtype=einstein
a .dsk will be produced that can be used in combination with dos80.dsk.
-flop1 dos80.dsk -flop2 [created image]
Once booted, type:
1:
APP.COM
----------
USE EDIP1 1e (http://www.einstein.talktalk.net/edip.html?showpage=true)
to insert the .COM file into a disk image:
0. Rename your file such that no special characters (no underscore) are present
1. Run EDIP 1e
2. Select DOS80.DSK
3. Click on CREATE BLANK -> Name your disk image
4. Select DOS TATUNG XTAL...
5. Press SELECT -> Select File
6. Press SELECT -> Cancel -> Quit
Use MAME/MESS:
1. mame64.exe einstein -window -uimodekey DEL -flop1 c:\Emulation\Mame\EDIP1e\XCHASE.DSK
2. run the .COM file by typing its name
---------------------------------------------------------
### Telmac TMC-600
Use EMMA 02 (https://www.emma02.hobby-site.com/download.html)
Select telmac tab.
Select TMC-600
Click on START (window may hide the option -> make it bigger)
Click on LOAD
Go to the directory with the .hex file
Select HEX Files
Chose the .hex file
Type RUN [equivalent to CALL(@6300)]
-------------------------------------------------------------
### Thomson MO5/MO6/Prodest PC 128
- Tape
Use DCMOTO
Select Mo5 or Mo6 or Prodest PC 128
BASIC 1.0
Attach .k7 image
Type
LOADM
EXEC
BASIC 128 (Mo6/Prodest PC 128)
Attach .k7 imloadage
Type
LOADM"CASS:",&H600
EXEC
or
LOADM"CASS:",&H600,R
-------------------------------------------------------------
### Thomson TO7/TO8/TO9
- Disk .sap image
Use DCMOTO
Select T08D
Attach .sap image
Type
loadm "XLIB.bin"
exec
In order to load at an address lower than $A000 by <offset> bytes, you need to use CLEAR:
CLEAR ,,,&h8000
loadm "XLIB.bin",<offset>
exec
Example 1:
Cross Snake may need to be loaded at a lower start address than $A000, so you need to do:
CLEAR ,,,&h8000
loadm "XLIB.bin",-1024
Example 2:
Cross Shoot may need even more memory than Cross Snake. So you need to do:
CLEAR ,,,&H7FFF
LOADM"0:FULL_TO7.bin",-&HA000
EXEC
-----------------------------------------------------------
### TI-82
Use the VTI emulator
1. Load the Crash Shell into the calculator
- 2nd + x,T,\theta (LINK)
- Select Receive
- Drop Crash .82b
- 2ND + ON (OFF)
- ON (+ SAVE STATE to start from this point next time)
2. Load the game
- 2nd + x,T,\theta (LINK)
- Select Receive
- Drop .82p file
- 2ND + ON (OFF)
- ON (+ SAVE STATE to start from this point next time)
3. Run the game
- PRGM
- Select Crash (NOT the game)
- Select the game
-----------------------------------------------------------
### TI-83
Use the VTI emulator
1. Load the Ion Shell into the calculator
- 2nd + x,T,\theta,\pi (LINK)
- Select Receive
- Drop .83b Ion 1.5 or 1.6 file
- 2ND + ON (OFF)
- ON (+ SAVE STATE to start from this point next time)
2. Load the game
- 2nd + x,T,\theta,\pi (LINK)
- Select Receive
- Drop .83p file
- 2ND + ON (OFF)
- ON (+ SAVE STATE to start from this point next time)
3. Run the "a" application
- PRGM
- Select A
4. Run the game
- PRGM
- Select Ion (NOT the game)
- Select the game
Alternative load instructions:
- Use VTI 2.5 beta 4 or beta 5.
- Select TI83 (v1.07)
- Reset calculator (MEM CLEARED)
- 2nd, LINK, RECEIVE (do not press ENTER, yet)
- Look for ION.83G (memory dump)
- Press ENTER on ION
- Drag the file onto VTI
- Transmission error. Retry.
- PRGM -> ION (see prgmION) -> press Enter (INSTALLED)
- Compile your program with a name different from default abc80
- Transfer program as done with ION.83G
- Start the shell and program
-----------------------------------------------------------
### TI-85
Use the VTI emulator
1. Load the Rigel Shell into the calculator
- 2nd + X-Var (LINK) + F2
- Drop Rigel memory backup file
- 2ND + ON (OFF)
- ON (+ SAVE STATE to start from this point next time)
2. Load the game
- 2nd + X-Var (LINK) + F2
- Drop the .85s game binary
3. Run the game
- Custom + F1 (to select Rigel)
- Select the game
Alternative instructions:
- Install the emulator program VTI.
- Download the TI85.ROM and put it into VTI directory.
- Download and extract Rigel Shell.
- Start VTI. Select TI85.
- Click 2nd Link, then press F2 to receive.
- Right Mouse click and choose Send File to VTI. Choose the file rigel.85b from the Backups directory of the Rigel Shell.
- Quickly press F1 to confirm Warning about Memory backup, before transmission error message.
- Click 2nd OFF On, to init the Rigel Shell.
- Click 2nd Link, then press F2 to receive.
- Right Mouse click and choose Send File to VTI. Select spice.85s.
- Click 2nd OFF On, to init the Rigel Shell.
- Click Custom, then F1, and select SPICE program.
QUICK
- Load Rigel savestate
- Click 2nd OFF On
- Click 2nd Link, then press F2 to receive.
- Right Mouse click and choose Send File to VTI. Choose the .85s file
- Click 2nd OFF On, to init the Rigel Shell.
- Click Custom, then F1, and select A program.
-----------------------------------------------------------
### TI-86
Use Wabbitemu
You can load the .86p files by directly dragging them on VTI,
no need to go through the 'link" sequence, they'll be pushed in the TI86 memory.
- So, first drag InstLASM.86p,
- then enter: `asm(InstLASM)`
- press `F5` and confirm the reset process
- once you get the message "MEM CLEARED",
- drag LargeLd.86p on the calculator.
- Now you can upload *ONE SINGLE* "big" executable (built with the LASM startup option), just drag it on the calculator.
- To run: asm(LargeLd)
-----------------------------------------------------------
### TI99/4A
Use Classic99 (http://www.harmlesslion.com/cgi-bin/onesoft.cgi?1).
EA5 files are loaded as follows:
- Have one of the disks, e.g DSK1., point to the directory that contains the EA5 file: DSK1-> Set DSK1 -> Disk Type: FIAD
- Go to Cartridge->Apps->Editor/Assembler
- Press 2 to enter the Editor/Assembler
- Press 5 to run a file
- Enter DSK1.(file name)1
Example: DSK1.XCHASE1 -> loads Cross Chase
-----------------------------------------------------------
### TIKI-100
Use TIKI-100_emul (http://www.djupdal.org/tiki/emulator/)
Attach the image and type:
a
folowed by enter.
----------------------------------------------------------
### TRS-80 MC-10
Use VMC-10 emulator (https://github.com/PhoenixInteractiveNL/emuDownloadCenter/wiki/Emulator-virtualmc10#downloads)
Enable 16k (at least): Configure -> Memory -> 16k
Run:
CLOADM
Load the .c10 file: File->Play cassette file
Run:
EXEC
----------------------------------------------------------
### TRS-80 Model 1/2/4
.cas version:
If you use trs80gp-1.8
Type enter to get to the console
Use load option
If you use trs32
.cas version:
Use trs32 emulator.
Type L+enter at Cass?
Type enter at Memory?
Type System
Attach .cas
Show cassette
Type ../BUI
Press PLAY
Wait...
Press / + enter to start
.cmd version:
Get to BASIC prompt
File->Run-> Select .cmd file
----------------------------------------------------------
### VIDEOTON TVC
Use WinTVC emulator (http://gaia.atilia.eu/downloads/)
Start the emulator and wait until the BASIC prompt
Load the .cas file with "CAS direkt betoeltese"
Type "run" to start
-----------------------------------------------------------
### VECTOR 06C
Use E3000 emulator http://www.emulator3000.org/e3.htm
Select the binary to load and run it.
----------------------------------------------------------
### VTECH Laser 500
Use the online Laser500emu (https://nippur72.github.io/laser500emu/).
Drop the .bin or .wav file onto the browser window
----------------------------------------------------------
### Z80 TV GAME
Use Takeda emulator with Mame roms
Start the game: Cart -> Insert -> Select .rom image file
Input: Host -> Input -> Joystick1 -> Redefine keys
================================================
FILE: docs/HOW_TO_LOAD_THE_GAME_ON_REAL_HARDWARE.md
================================================
## Loading the game into a real vintage system
The loading procedure depends on the systems and the format used to store the game.
- Most vintage systems used cassette players. For such systems the .wav or any other reproducible format (e.g., mp3)
is the easiest solution because it can be played by a PC or smartphone connected to the audio in of the vintage system.
If a different format is produced, we suggest the use of a tool to convert into a playable.
If the emulator supports the creation of .wav files, one way to do this is to use the `save` or equivalent BASIC command.
- Several vintage systems use floppy disks.
Some hardware solutions (e.g., XUM1541 cables for the Commodore 8-bit series) can be used to transfer disk images into real disks.
Some other hardware solutions (SD2IEC for the Commodore 8-bit series, SI2SD for the Atari 8-bit series) allow the use disk images by a vintage system.
- Some other systems use cartridges. Cartridge images can be store into EPROMs or can be used directly by some special hardware (e.g., EasyFlash for the Commodore 64).
================================================
FILE: docs/INSTALL.md
================================================
## NO LOCAL INSTALLATION
Having a Dockerfile and a devcontainer configuration means that anyone with a GitHub account can just clone this repository and run it with GitHub CodeSpaces (free of charge with some restrictions): https://github.com/codespaces.
-------------------------------------------
## LOCAL DOKCER WITH A PRE-BUILD DOCKER IMAGE
You can pull and run the latest pre-build image with
```
docker run -it -v {cross-lib_location}:/usr/src/cross-lib ghcr.io/cross-lib/devcontainers/base:1.0.5-ubuntu
```
where {cross-lib_location} could be something like: *c:\sources\cross-lib*.
Once in the docker container, you can enter the *src* directory with *cd /usr/src/cross-lib/src* and
use the *xl* script, e.g., *./xl stinger cc65*.
Or just pull the pre-build image with
```
docker pull ghcr.io/cross-lib/devcontainers/base:1.0.5-ubuntu
```
An older image can be pulled here
```
docker pull fabriziocaruso:crosslib:0.1
```
and follow the same instructions as for docker image built from a dockerfile.
-------------------------------------------
## LOCAL DOCKER WITH THE DOCKERFILE
The dockerized version of Cross-Lib can used by
- cloning this repository into a directory (let us refer to it as `<local_cross-lib>`);
- building the docker image that contains the dependencies by running the command
```docker build . -t crosslib:<version>```;
from the `/CROSS-LIB/.devcontainer` directory.
- running the docker container and mapping the cloned repository into a directory (e.g. `/workspaces/crosslib`) in the container with
```docker run -it -v <local_cross-lib>:/workspaces/crosslib --env-file <local_cross-lib>/.devcontainer/container.env crosslib:<version> bash```
- (once in the docker container) by entering `workspaces/crosslib/src` and running `xl` commands.
-------------------------------------------
## LOCAL NON-DOCKER INSTALLATION - PREREQUISITES
Cross-Lib is meant to be used under a POSIX environment (Windows+Cygwin, Linux, etc.).
In order to be able to build the games and tests on all `default targets` you need:
- GNU `make`
- `python` (2.x or 3.x)
- `gcc` and `ncurses` (necessary only for native builds)
- cross-compilers (necessary to build for vintage targets)
- `java` only to build disk images for the Apple//e, Apple\]\[ and the Agat 7/9 targets
- `perl` only to build cassette images for the CoCo 1/2 and Dragon 32/64 targets
For the compilers to work, you may need to add the location of their binaries to the `$PATH` environment variable and to add the execution rights to those binaries.
If the compiler's binary cannot be found, you may have to set their paths in: `src\makefiles.common\auxiliary/Makefile_compilers`, e.g., `Z88DK_PATH`, `LCC1802_PATH`, etc..
For more details on the prerequisites we refer to:
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/PREREQUISITES.md
-------------------------------------------
## LOCAL NON-DOCKER INSTALLATION OF THE TOOL-CHAIN
The tool-chain Cross-Lib can be installed on different POSIX-compliant environments.
It has been tested on:
- Windows (7, 10) + `Cygwin`
- Windows Subsystem for Linux
- MacOS X
- Linux Ubuntu 18.04 under the Windows Subsystem
- Linux (KUbuntu 18.04, Lubuntu 21.10)
- FreeBSD 13.0
Cross-Lib itself does not require any installation. It is just a source library and scripts that is ready to be used as is, by just downloading or cloning the content of this repository.
For example you can do it by:
```
git clone https://github.com/Fabrizio-Caruso/CROSS-LIB.git
```
In order to use Cross-Lib you will need to install the prerequisites described in the previous section.
The way these prerequisites are installed vary depending on the environment.
### Under Windows + Cygwin
For Windows + Cygwin the tested and verified installation procedure uses:
- `Cygwin` setup to install `gcc`, `make`, `python`, `java`
- `CC65` is installed under Windows by just downloading and decompressing its snapshot (https://sourceforge.net/projects/cc65/).
- `Z88DK` is installed under Windows by downloading and decompressing its latest nightly build (http://nightly.z88dk.org/).
- `CMOC` and `ACK` are installed from sources. Look at the installation procedure under Linux for the details.
- `LCC1802` is installed under Windows by simply decompressing its released binary version (https://github.com/bill2009/lcc1802/releases).
### Under Linux
For Linux (native or under the Windows Subsystem), the tested and verified procedure both standard repositories and installation from sources.
A detailed procedure for recent Ubuntu distributions is described here:
https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/LINUX_SETUP.md
### ACKNOWLEDGEMENTS
Thanks to Alex Thissen, a version of Cross-Lib with (Z88DK, CC65, CMOC and native compilers) is available as a Docker image (to be built by using the provided Dockerfile) with a devcontainer configuration.
================================================
FILE: docs/LICENCE.txt
================================================
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for non-commercial applications,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in
a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not
be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
================================================
FILE: docs/LINUX_SETUP.md
================================================
# CROSS-LIB SET-UP UNDER LINUX
We give here the procedure to install Cross-Lib and its dependencies under Linux.
In particular this procedure is the one I have used under LUBUNTU 21.10.
On other distributions the same procedure or a similar one can be used depending on how packages are handled.
Even under Windows with Cygwin many of these steps are similar but the way packages are installed is very different (i.e., using Cygwin's `setup.exe`).
We do not cover *all* supported compilers here. We only fully covered the fully supported ones under Linux.
In particular we describe how to install:
- `GCC` for native compilation
- `CC65` for MOS 6502-based targets
- `Z88DK` for Zilog 80, Intel 8080-based targets
- `CMOC` for Motorola 6809-based targets
We give some information on how to install some experimentally supported compilers:
- `ACK` for Intel 8088-based targets and other targets (partially supported and currently only used for one game)
- `LCC1802` for RCA COSMAC 1802-based targets (with only experimental support under Linux)
-----------------------------
## Python Installation
The whole tool-chain uses heavily Python scripts. So we need Python to do anything.
Python 2.7 or Python 3.X can used.
Under any recent Ubuntu distribution, Python is trivially installed with:
```
sudo apt install python
```
-----------------------------
## Enable builds for the host
Native builds can be performed as long as an ANSI C compiler and the `ncurses` libraries are installed.
By default Cross-Lib expects `gcc` to be the native compiler.
A different one can be used (including a non-native one, which would defeat the purpose of a native compiler).
In order to select a different compiler edit the `NATIVE_CC` variable in `src/makefiles.common/auxiliary/Makefile.compilers`.
The `gcc` compiler may be pre-installed. In not present, `gcc` is trivially installed with
```
sudo apt install gcc
```
The `ncurses` libraries can be installed with:
```
sudo apt install libncurses5-dev libncursesw5-dev
```
The native target is the default target for the script command `xl build`.
This makes it possible to try and debug the code natively if desired. No emulator and no cross-compiler is necessary to start using Cross-Lib.
Currently the native target is just an ncurses-enabled terminal target. So no graphics. Only ASCII characters will be displayed.
So you can use Cross-Lib to build old and new games and to create new ones by using the `xl` command and by providing no target or equivalently the `ncurses` target.
To get started you can build some of the games by using `xl build [name of the game or test]`.
Example:
The following commands will be three games for the native target:
```
xl build bomber
xl build snake
xl build horde
```
-----------------------------
## Enable builds for MOS 6502-based targets
Nearly all MOS 6502-based targets supported by Cross-Lib rely on `CC65`. Very few others experimental targets use `VBCC`.
On very recent Ubuntu distributions we can install `CC65` by just:
```
sudo apt install cc65
```
In order to build disk images for the `Apple][` and `Apple//e` targets we need `java`, which we can install with:
```
sudo apt install openjdk-17-jre-headless
```
-----------------------------
## Enable builds for Motorola 6809-based targets
Cross-Lib relies on `CMOC` for all its supported Motorola 6809-targets.
In order to install `CMOC` you can use build from its source code and follow its simple installation procedure.
First of all you need to download `LWTOOLS` (the linker) from http://www.lwtools.ca/, and install it with
```
make
sudo make install
```
Then you download `CMOC`'s source code from http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html and install it with:
```
apt install bison
apt install flex
configure
make
sudo make install
```
----------------------
## Enable builds for targets based on Zilog 80 and Intel 8080
Cross-Lib relies on the `Z88DK` dev-kit for all its targets based on the Zilog 80, Intel 8080/5, and GBZ80.
`Z88DK` contains two separate cross-compilers: `SCCZ80` and `ZSDCC`. Using `SCCZ80` is enough to build most Cross-Lib targets.
So the installation of `ZSDCC` is not strictly necessary to build new games.
Here we describe how to download and install `Z88DK` from its source code.
### Z88DK dependencies
In order to be able to compile the source you have to install the following packages by running `apt install [list of packages]`:
```
apt install
build-essential
dos2unix
libboost-all-dev
texinfo
texi2html
libxml2-dev
subversion
bison
flex
zlib1g-dev
m4
```
### Installation from source code
In order to download `Z88DK`'s source code you can run:
```
wget http://nightly.z88dk.org/z88dk-latest.tgz
```
and then decompress it with:
```
tar -xzf z88dk-latest.tgz
```
You can now start the build process by using the `build.sh` script:
```
cd z88dk
export BUILD_SDCC=1
chmod 777 build.sh
./build.sh
```
In order to finalize the installation and to be able to use Z88DK from any location you need to set the following environment variables:
```
export PATH=${PATH}:${HOME}/z88dk/bin
export ZCCCFG=${HOME}/z88dk/lib/config
```
----------------------------------------------------------
## Enable builds for RCA COSMAC 1802-based targets
The build process for RCA COSMAC 1802-based targets relies on the `LCC1802` compiler.
This has not been tested, yet, under Linux.
Its installation procedure under Linux is described in:
https://github.com/bill2009/lcc1802
----------------------------------------------------------
## Enable builds for Intel 8088-based targets
In order to use Cross-Lib for targets based on the Intel 8088 and some other 16 and 32-bit vintage targets you can use `ACK`.
Support for these targets is currently only experimental.
`ACK` can be downloaded from https://github.com/davidgiven/ack.
It depends only on `flex` and `yacc` or `bison` and it is installed with:
```
make
sudo make install
```
================================================
FILE: docs/MSDOS_big_banging.txt
================================================
Skip to content
Chat history
You said:
How can I produce sounds with the speaker by big banging in msdos 8086?
ChatGPT said:
On an 8086 under MS-DOS you can produce sound with the PC speaker in two different ways:
Correct way (using the PIT timer, channel 2) – stable tone
True “bit banging” – manually toggling the speaker line for crude square waves
Below are both methods with full explanations and sample 8086 code.
✅ 1. REAL MODE / MS-DOS PC SPEAKER USING PIT (recommended)
The PC speaker is controlled by:
Function Port
PIT channel 2 control 43h
PIT channel 2 data 42h
Speaker gate + data enable 61h
→ Steps to play a tone:
Program PIT channel 2 for square-wave mode.
Load divisor into port 42h (frequency = 1,193,180 / divisor).
Enable speaker bit 0 and 1 in port 61h.
Delay.
Turn off speaker.
Example: 1 kHz tone
; ====== Play 1 kHz tone ======
; PIT clock = 1,193,180 Hz
; divisor = 1193180 / 1000 ≈ 1193 = 04A9h
mov al, 0B6h ; Channel 2, lobyte/hibyte, mode 3 (square wave)
out 43h, al
mov ax, 1193
out 42h, al ; Low byte
mov al, ah
out 42h, al ; High byte
; Enable speaker (bits 0 and 1 of port 61h)
in al, 61h
or al, 03h
out 61h, al
; ---- Delay loop ----
mov cx, 0FFFFh
.delay:
loop .delay
; Disable speaker
in al, 61h
and al, 0FCh ; clear bits 0 and 1
out 61h, al
This produces a clean, stable square wave.
✅ 2. TRUE “BIT BANGING” (no PIT)
This is closer to the literal meaning of bit-banging: you manually drive the speaker by flipping bit 1 of port 61h at the desired rate.
The PC speaker is connected to bit 1 (value 2) of port 61h.
→ Principle
Flip bit 1 rapidly:
0 → 1 → 0 → 1 → 0 → …
The switching speed = frequency × 2.
So for a 1 kHz tone, toggle 2000 times per second.
Example: crude software-generated square wave
; ====== Bit-banged speaker tone ======
in al, 61h
or al, 01h ; enable speaker gate
out 61h, al
mov bx, 2000 ; number of toggles (duration)
bitloop:
in al, 61h
xor al, 02h ; toggle speaker data bit (bit 1)
out 61h, al
; small delay to control pitch
mov cx, 80
delay:
loop delay
dec bx
jnz bitloop
; turn off speaker
in al, 61h
and al, 0FCh
out 61h, al
This method:
gives you full control
but tone quality is rough
pitch depends on CPU speed (so unstable on fast machines or emulators)
Choosing a method
Method Pros Cons
PIT (hardware) stable, accurate, classic PC speaker tone slightly more code
Bit banging unlimited waveforms, educational, works without PIT crude, speed-dependent
If you want, I can also provide:
A macro-based sound library
C-callable 8086 routines
A bit-banged melody player
A PIT-based music routine using int 08h (timer interrupts)
ChatGPT can make mistakes. Check important info. See Cookie Preferences.
================================================
FILE: docs/PREREQUISITES.md
================================================
## Prerequisites
- [Non-UNIX only] Install a POSIX environment if necessary, e.g., Cygwin.
- Install `make` in your environment.
- Install `python` (2.x or 3.x)
- Install the required cross-compilers
- [Only for some compilers] Make sure they are either installed as described in the Makefile variables: `Z88DK_PATH`, `CC65_PATH`, `LCC1802_PATH`, etc. or set these variables accordingly.
- [Z88DK-only] Select the optimization level in Makefile by setting the variables: `SCZZ80_OPTS` (`-O3` for highest optimizations), `ZSDCC_OPTS` (`-SO3` for high optimizations; `-SO3 --max-allocs-per-node200000` for highest and extremely slow optimizations).
- [Native builds only] Install `gcc` and `ncurses`
- [Only to have disk images for the Apple //e and Apple\]\[] Install `java`
================================================
FILE: docs/PRESENTAZIONE_ITA/Documenti_on_line.txt
================================================
CROSS-LIB breve presentazione in italiano: https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/presentazione.md
LISTA PARZIALE DEI SISTEMI SUPPORTATI: https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/STATUS.md
DESCRIZIONE DEI GIOCHI (in italino): https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/GIOCHI.md
CROSS-LIB pagina principale (in inglese) : https://github.com/Fabrizio-Caruso/CROSS-LIB
CROSS-LIB presentazione lunga (in inglese) con slides: https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/CrossLib.odp
================================================
FILE: docs/PRESENTAZIONE_ITA/Giochi/EMULATORI_DA_USARE.txt
================================================
ATARI 8-bit: Altirra
Commodore 64: Vice
Commodore Vic 20 + 8k: Vice (settare memoria a +8k)
Game Boy: Visual Boy Advance Emulator
Game Gear: Emulicious (ULTIMA versione)
Sega Master System: Emulicious (ULTIMA versione)
Sinclair ZX Spectrum: Fuse
================================================
FILE: docs/SNAPSHOTS.md
================================================
## Snapshots








================================================
FILE: docs/STATUS.md
================================================
## STATUS
Last update: 2026/03/16
### 8-BIT targets
target name | long target name | working | CPU family | dev-kit | real-time input | graphics | sound | notes
--------------------|---------------------------------------------|----------|---------------|---------|-----------------|----------------|---------|-----------
*abc80* | Luxor ABC 80 | YES | Zilog 80 | Z88DK | OK | missing | missing |
*abc800* | Luxor ABC 800 | YES | Zilog 80 | Z88DK | OK? | missing | missing |
*ace* | Jupiter Ace | YES | Zilog 80 | Z88DK | OK | OK | OK |
*agat* | Agat-7/9 | YES | MOS 6502 | CC65 | OK | OK | OK |
*alphatro* | Alphatronic | YES | Zilog 80 | Z88DK | OK | N/A | missing |
*altair8800* | MITS Altair 8800 | YES | Intel 8080 | Z88DK | OK | N/A | N/A |
*apple2* | Apple II | YES | MOS 6502 | CC65 | OK | OK | OK |
*apple2_z80* | Apple II | YES | Zilog 80 | Z88DK | OK | missing | missing |
*apple2enh* | Apple //e | YES | MOS 6502 | CC65 | OK | OK | OK |
*aquarius* | Mattel Aquarius | YES | Zilog 80 | Z88DK | OK | N/A | OK |
*aquarius plus* | Aquarius Plus | YES | Zilog 80 | Z88DK | OK | OK | OK |
*atari5200* | Atari 5200 | YES | MOS 6502 | CC65 | OK | OK | OK |
*atari7800* | Atari 7800 | YES | MOS 6502 | CC65 | OK | OK | OK |
*atari* | Atari 8-bit (e.g., Atari 800) | YES | MOS 6502 | CC65 | OK | OK | OK |
*atari_lynx* | Atari Lynx | YES | MOS 6502 | CC65 | OK | OK | OK |
*attache* | Otrona Attache | YES | Zilog 80 | Z88DK | OK | OK | missing |
*aussie* | Aussie Byte (Knight 2000) | YES | Zilog 80 | Z88DK | OK | missing | OK |
*bbc* | BBC Micro | YES | MOS 6502 | VBCC | OK | OK | OK |
*bbcmaster* | BBC Master | YES | MOS 6502 | VBCC | OK | OK | OK |
*bic* | BIC/A5105 | YES | Zilog 80 | Z88DK | OK | ? | ? |
*bit90* | Bit Corporation BIT 90 | YES | Zilog 80 | Z88DK | OK | OK | missing | PSG SN76489A
*bondwell* | Bondwell | YES? | Zilog 80 | Z88DK | OK | ? | ? |
*bondwell2* | Bondwell 2 | YES? | Zilog 80 | Z88DK | OK | OK | ? |
*c128_8502* | Commodore 128 [8502 CPU] | YES | MOS 6502 | CC65 | OK | OK | OK | GFX in VDC mode
*c128* | Commodore 128 [Z80 CPU] | YES | Zilog 80 | Z88DK | OK | OK | OK | GFX with VIC (OK) and VDC (slow)
*c16* | Commodore 264 series (16/116/+4) | YES | MOS 6502 | CC65 | OK | OK | OK |
*c64* | Commodore 64 | YES | MOS 6502 | CC65 | OK | OK | OK |
*c65* | Commodore 65 | ? | MOS 6502 | CC65 | OK? | missing | missing |
*cbm510* | Commodore CBM 510 | YES | MOS 6502 | CC65 | OK | missing | missing |
*cbm610* | Commodore CBM 610 | YES | MOS 6502 | CC65 | OK | missing | missing |
*camputers_lynx* | Camputers Lynx 48k/96k/128k | YES | Zilog 80 | Z88DK | OK | OK | missing |
*cidelsa_altair* | Cidelsa Altair arcade board | YES | RCA 1802 | LCC1802 | OK | missing | OK |
*cidelsa_destroyer* | Cidelsa Destroyer arcade board | YES | RCA 1802 | LCC1802 | OK | missing | OK |
*cidelsa_draco* | Cidelsa Draco arcade board | YES | RCA 1802 | LCC1802 | OK | missing | OK |
*coco* | Color Computer 1/2 | YES | Motorola 6809 | CMOC | OK | OK | OK |
*coco3* | Color Computer 3 | YES | Motorola 6809 | CMOC | OK | OK | OK |
*coleco* | Colecovision | YES | Zilog 80 | Z88DK | OK | OK | missing | PSG SN76489A
*coleco_adam* | Colecovision Adam | YES | Zilog 80 | Z88DK | OK | OK | missing | PSG SN76489A
*comx* | COMX-35 | YES | RCA 1802 | LCC1802 | OK | OK | OK |
*corvette* | Corvette | YES? | Zilog 80 | Z88DK | OK? | OK? | missing |
*cpc* | Amstrad CPC | YES | Zilog 80 | Z88DK | OK | OK | OK |
*cpm_8080* | CP/M Intel 8080 | YES | Intel 8080 | Z88DK | OK | N/A | N/A |
*cpm_z80* | CP/M Z80 with adm3a/vt52/vt100 | YES | Zilog 80 | Z88DK | OK | N/A | N/A |
*creativision* | VTech Creativision | YES | MOS 6502 | CC65 | OK | OK | OK |
*cx16* | Commander X16 | YES | MOS 6502 | CC65 | OK | OK | OK |
*dai* | DAI | YES | Intel 8080 | Z88DK | missing | N/A ? | N/A ? |
*dmv* | Decision Mate V | YES | Zilog 80 | Z88DK | OK | ? | ? |
*dragon* | Dragon 32/64 | YES | Motorola 6809 | CMOC | OK | OK | OK |
*e200* | Sharp PC-E200 | YES | Zilog 80 | Z88DK | OK | missing | missing |
*eg2k* | EACA EG2000 Color Genie | YES | Zilog 80 | Z88DK | OK | OK | OK ? |
*einstein* | Tatung Einstein TC-01 | YES | Zilog 80 | Z88DK | OK | OK ? | OK ? | PSG AY-3-8910
*einstein256* | Tatung Einstein TC-01 | YES | Zilog 80 | Z88DK | OK | OK ? | OK ? | PSG AY-3-8910
*enterprise* | Enterprise 64/128 | YES | Zilog 80 | Z88DK | missing | missing | missing |
*excalibur64* | Excalibur64 | YES | Zilog 80 | Z88DK | OK | N/A ? | N/A ? |
*fp1100* | Casio FP-1100 | YES | Zilog 80 | Z88DK | OK | OK | N/A ? |
*g815* | Sharp PC-G815 | YES | Zilog 80 | Z88DK | OK | missing | missing |
*g850* | Sharp PC-G850 | YES | Zilog 80 | Z88DK | OK | missing | missing |
*gal* | Galaksija | YES | Zilog 80 | Z88DK | OK | N/A | N/A |
*gal_plus* | Galaksija Plus | YES | Zilog 80 | Z88DK | OK | OK ? | N/A |
*gamate* | Gamate | YES | MOS 6502 | CC65 | OK | OK | OK |
*gamegear* | Game Gear | YES | Zilog 80 | Z88DK | OK | OK | OK ? | PSG SN76489 Mednafen OK
*gb* | Game Boy | YES | GBZ80 | Z88DK | OK | OK | OK | grey levels
*gemini* | Gemini | YES? | Zilog 80 | Z88DK | OK | ? | ? |
*gl4000* | VTech Genius Leader 4000 | YES | Zilog 80 | Z88DK | missing | missing | missing |
*gl6000sl* | VTech Genius Leader 6000sl | YES | Zilog 80 | Z88DK | OK | OK | missing |
*gx4000* | Amstrad GX-4000 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*hbios* | HBIOS generic target | ? | Zilog 80 | Z88DK | missing | missing | missing |
*hector1* | Hector 1 | YES | Zilog 80 | Z88DK | OK? | missing | missing | extremely low memory
*hectorhr* | Hector HR2+ / Hector HRX | YES | Zilog 80 | Z88DK | OK | OK | missing |
*hemc* | Huebler/Evert-MC | YES | Zilog 80 | Z88DK | OK | N/A | N/A ? |
*hgmc* | Huebler-Grafik-MC | YES | Zilog 80 | Z88DK | OK | missing | N/A ? |
*homelab* | Homelab 4 | YES | Zilog 80 | Z88DK | OK | N/A | N/A ? |
*homelab2* | Homelab 2 | YES | Zilog 80 | Z88DK | OK | N/A | N/A ? |
*kaypro83* | Kaypro 83 | YES | Zilog 80 | Z88DK | OK | N/A | N/A ? |
*kaypro* | Kaypro 2X | YES | Zilog 80 | Z88DK | OK | N/A ? | N/A ? |
*interact* | Interact | YES | Intel 8080 | Z88DK | OK? | missing | missing | extremely low memory
*kc* | Robotron KC-85/2/3/4 | YES | Zilog 80 | Z88DK | OK | OK | N/A ? |
*kc85* | Kyocera 85 | YES | Intel 8085 | Z88DK | OK | missing | missing |
*kramermc* | Kramer-MC | YES | Zilog 80 | Z88DK | OK | N/A | N/A ? |
*krokha* | Krokha | YES? | Zilog 80 | Z88DK | OK | ? | ? |
*lambda* | Lambda 8300 | YES | Zilog 80 | Z88DK | OK | N/A | N/A ? |
*laser500* | Laser 500 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*lm80c* | LM80C | YES | Zilog 80 | Z88DK | OK? | OK | missing |
*m10* | Olivetti M10 | YES | Intel 8085 | Z88DK | OK | missing | missing |
*m100* | TRS-80 M100 | YES | Intel 8085 | Z88DK | OK | missing | missing |
*m5* | Sord M5 | YES | Zilog 80 | Z88DK | OK | OK | OK ? |
*map1010* | Seiko MAP-1010 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*mbc200* | Sanyo MBC 200 | YES? | Zilog 80 | Z88DK | OK | missing | missing |
*mc10* | TRS-80 MC-10 / Alice Matra 4k | YES | Motorola 6803 | CC6303 | OK | missing | OK |
*mc1000* | CCE MC-1000 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*mega65* | Mega 65 / Commodore 65 | YES | MOS 6502 | CC65 | OK | missing | OK |
*micro8085* | Micro 8085 | YES? | Intel 8085 | Z88DK | N/A? | N/A? | N/A? |
*microboard* | Microboard Computer Development System | YES | RCA 1802 | LCC1802 | OK | OK | OK |
*microbee* | Microobee | YES | Zilog 80 | Z88DK | OK | OK | OK |
*microbee_premium* | Microobee Premium | YES | Zilog 80 | Z88DK | OK | OK | OK |
*mikro80* | Mikro 80 | YES | Intel 8080 | Z88DK | OK | N/A | N/A |
*mo5* | Thomson Mo series / Olivetti Prodest PC 128 | YES | Motorola 6809 | CMOC | OK | OK | OK |
*msx* | MSX 1 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*msx 2* | MSX 2/2+/Turbo | YES | Zilog 80 | Z88DK | OK | OK | OK |
*mtx* | Memotech MTX 512 | YES | Zilog 80 | Z88DK | OK | OK | OK ? |
*mtx500* | Memotech MTX 500 | YES | Zilog 80 | Z88DK | OK | OK | OK ? |
*multi8* | Mitsubishi Multi 8 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*myvision* | Nichibutsu My Vision | YES | Zilog 80 | Z88DK | OK | OK | OK |
*mz* | Sharp MZ 80/700 | YES | Zilog 80 | Z88DK | OK | N/A | OK |
*mz2500* | Sharp MZ 2500 | YES | Zilog 80 | Z88DK | OK | missing | missing |
*nabu* | Nabu PC | YES? | Zilog 80 | Z88DK | OK? | OK? | missing |
*nascom* | Nascom | YES | Zilog 80 | Z88DK | OK | N/A | missing |
*nc100* | Amstrad NC-100/150 | YES | Zilog 80 | Z88DK | OK | OK | N/A ? |
*nc200* | Amstrad NC-200 | YES | Zilog 80 | Z88DK | OK | OK | N/A ? |
*nes* | Nintendo Enterteinment System | YES | MOS 6502 | CC65 | OK | OK | missing |
*newbrain* | Grundy Newbrain | YES | Zilog 80 | Z88DK | missing | missing | missing |
*ondra* | Tesla Ondra Vili | YES | Zilog 80 | Z88DK | OK | OK ? | missing |
*oric* | Tangerine Oric 1/Atmos | YES | MOS 6502 | CC65 | OK | OK | OK |
*osborne1* | Osborne 1 | YES | Zilog 80 | Z88DK | OK | N/A ? | N/A ? |
*osca* | OSCA v6z80p | YES | Zilog 80 | Z88DK | OK | missing | missing |
*osic1p* | Ohio Scientific Challenger 1P | YES | MOS 6502 | CC65 | OK | N/A ? | N/A ? |
*oz* | Sharp OZ-700 | YES | Zilog 80 | Z88DK | N/A ? | N/A ? | N/A ? |
*p2000* | Philips P2000 | YES | Zilog 80 | Z88DK | OK | N/A | OK |
*pacman* | Pacman Namco arcade board | NO | Zilog 80 | Z88DK | missing | missing | missing |
*pasaopia7* | Toshiba Pasopia 7 | YES | Zilog 80 | Z88DK | OK | missing | missing | PSG SN76489
*pc6001* | NEC PC 6001 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*pc8201* | NEC PC 8201 | YES | Intel 8085 | Z88DK | OK | missing | missing |
*pc88* | NEC PC 8801 | YES | Zilog 80 | Z88DK | OK | OK ? | missing |
*pce* | PCEngine | YES | MOS 6502 | CC65 | OK | OK | OK |
*pcw* | Amstrad PCW | ? | Zilog 80 | Z88DK | ? | missing | missing |
*pecom* | Pecom 32/64 | YES | RCA 1802 | LCC1802 | OK | OK | OK |
*pencil2* | Hanimex Pencil II | YES | Zilog 80 | Z88DK | OK | OK ? | missing | PSG SN76489
*pet* | Commodore Pet | YES | MOS 6502 | CC65 | OK | N/A | OK |
*phc25* | Sanyo PHC-25 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*lviv* | PK-01 LVIV/LVOV | YES | Intel 8080 | Z88DK | OK | OK | missing |
*pmd85* | PMD85 | YES | Intel 8080 | Z88DK | OK | OK ? | missing |
*pps* | Peters Plus Sprinter | YES | Zilog 80 | Z88DK | OK | N/A ? | missing |
*primo* | Microkey Primo | YES | Zilog 80 | Z88DK | OK | OK ? | OK ? |
*pv1000* | Casio PV1000 | YES | Zilog 80 | Z88DK | OK | OK | missing |
*pv2000* | Casio PV2000 | YES | Zilog 80 | Z88DK | OK | OK | missing | PSG SN76489
*px4* | Epson PX-4/HC-40 | YES | Zilog 80 | Z88DK | OK | OK | N/A ? |
*px8* | Epson PX-8/HC-80 | YES | Zilog 80 | Z88DK | OK | OK | N/A ? |
*qc10* | Epson QX-10/QC-10 | YES | Zilog 80 | Z88DK | OK | N/A ? | N/A ? |
*radio86* | Radio 86 | YES? | Zilog 80 | Z88DK | OK | OK? | missing |
*rex* | Xircom Rex 6000 | ? | Zilog 80 | Z88DK | missing | missing | missing |
*rc2014* | RC 2014 board | ? | Zilog 80 | Z88DK | missing | missing | missing |
*rc700* | Regnecentralen RC700 | YES | Zilog 80 | Z88DK | OK | N/A ? | N/A ? |
*rcmx00* | Rabbit Control Module | ? | Zilog 80 | Z88DK | missing | missing | missing |
*rx78* | Bandai RX-78 | YES | Zilog 80 | Z88DK | OK | OK | missing | PSG SN76489
*samcoupe* | Sam Coupe | YES | Zilog 80 | Z88DK | OK | OK | OK |
*sc3000* | Sega SC 3000 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*scz180* | SC126 and SC130 boards | ? | Zilog 80 | Z88DK | missing | missing | missing |
*sg1000* | Sega SG 1000 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*smc777* | Sony SMC-70 / SMC-777 | YES | Zilog 80 | Z88DK | OK | OK | missing | PSG SN76489
*sms* | Sega Master System | YES | Zilog 80 | Z88DK | OK | OK | OK? | PSG SN76489 Mednafen OK
*sol20* | Sol 20 | YES? | Intel 8085 | Z88DK | OK? | missing | missing |
*sos* | S-OS | YES | Zilog 80 | Z88DK | N/A | N/A | N/A |
*spc1000* | Samsung SPC 1000 | YES | Zilog 80 | Z88DK | OK | OK | OK |
*special* | Specialist |
Showing preview only (429K chars total). Download the full file or copy to clipboard to get everything.
gitextract_v60rhtgp/ ├── .devcontainer/ │ ├── devcontainer.json │ └── post-start.sh ├── .gitignore ├── README.md ├── cfg/ │ ├── ___empty.cfg │ └── default.cfg ├── docs/ │ ├── ARCHITECTURES.md │ ├── Alice32k.txt │ ├── BUILD.md │ ├── BUILD_PROCESS.md │ ├── COMPILERS.md │ ├── COMPILER_NAMES.md │ ├── CREDITS.txt │ ├── CROSSLIB.md │ ├── CROSS_LIB_APIS.md │ ├── CROSS_LIB_APIS.txt │ ├── CX16.txt │ ├── Creativision_binary_structure.txt │ ├── CrossLib.odp │ ├── DISCLAIMER.md │ ├── EnglishArticle.md │ ├── FEATURE_STATUS.ods │ ├── GAMES.md │ ├── GIOCHI.md │ ├── HARDWARE_AGNOSTIC_CODE.md │ ├── HOW_TO_ADD_A_NEW_GAME.md │ ├── HOW_TO_ADD_NEW_TARGET.txt │ ├── HOW_TO_INSTALL_COMPILERS.txt │ ├── HOW_TO_LOAD.md │ ├── HOW_TO_LOAD_THE_GAME.md │ ├── HOW_TO_LOAD_THE_GAME_ON_REAL_HARDWARE.md │ ├── INSTALL.md │ ├── LICENCE.txt │ ├── LINUX_SETUP.md │ ├── MSDOS_big_banging.txt │ ├── PREREQUISITES.md │ ├── PRESENTAZIONE_ITA/ │ │ ├── Documenti_on_line.txt │ │ └── Giochi/ │ │ ├── EMULATORI_DA_USARE.txt │ │ ├── xbomber/ │ │ │ ├── Xbomber_atari_color.xex │ │ │ └── Xbomber_gamegear.gg │ │ └── xsnake/ │ │ ├── Xsnake_gb.gb │ │ └── Xsnake_sms.sms │ ├── SNAPSHOTS.md │ ├── STATUS.md │ ├── SUPPORT_FOR_NEW_TARGET.txt │ ├── SYSTEMS.md │ ├── TESTS.md │ ├── THE_GAME.txt │ ├── TILES.txt │ ├── TODO.txt │ ├── VGA_from_protected_mode.txt │ ├── VZ.txt │ ├── XL.md │ ├── alt_conio_fonts.s │ ├── articles/ │ │ ├── CALL_APPLE/ │ │ │ └── apple2.txt │ │ ├── CROSS_LIB_PUBLIC.rtf │ │ ├── CROSS_LIB_PUBLIC_ENG.rtf │ │ ├── article.txt │ │ └── articolo_ITA.txt │ ├── bbc/ │ │ ├── chibiakumas.txt │ │ └── putchar.txt │ ├── bbc_sounds/ │ │ ├── bbc.h │ │ └── bbctest.c │ ├── compilation_parameters.txt │ ├── compiler_install.txt │ ├── conio_macros_vs_functions.txt │ ├── docker.txt │ ├── games/ │ │ ├── BOMBER.txt │ │ ├── CHASE.txt │ │ ├── HORDE.txt │ │ ├── SHOOT.txt │ │ ├── SNAKE.txt │ │ └── VERBIX.txt │ ├── generic_tiles.txt │ ├── hector_sound.txt │ ├── manual/ │ │ ├── XSize.txt │ │ ├── YSize.txt │ │ ├── _XL_CHAR.txt │ │ ├── _XL_CLEAR_SCREEN.txt │ │ ├── _XL_DELETE.txt │ │ ├── _XL_DOWN.txt │ │ ├── _XL_DRAW.txt │ │ ├── _XL_EXPLOSION_SOUND.txt │ │ ├── _XL_FIRE.txt │ │ ├── _XL_INIT_GRAPHICS.txt │ │ ├── _XL_INIT_INPUT.txt │ │ ├── _XL_INIT_SOUND.txt │ │ ├── _XL_INPUT.txt │ │ ├── _XL_KEY_PRESSED.txt │ │ ├── _XL_LEFT.txt │ │ ├── _XL_PING_SOUND.txt │ │ ├── _XL_PRINT.txt │ │ ├── _XL_PRINTD.txt │ │ ├── _XL_RAND.txt │ │ ├── _XL_RIGHT.txt │ │ ├── _XL_SET_TEXT_COLOR.txt │ │ ├── _XL_SHOOT_SOUND.txt │ │ ├── _XL_SLEEP.txt │ │ ├── _XL_SLOW_DOWN.txt │ │ ├── _XL_TICK_SOUND.txt │ │ ├── _XL_TOCK_SOUND.txt │ │ ├── _XL_UP.txt │ │ ├── _XL_WAIT_FOR_INPUT.txt │ │ └── _XL_ZAP_SOUND.txt │ ├── mc10.txt │ ├── mc10_2.txt │ ├── mega65.txt │ ├── presentazione.md │ ├── presentazione.txt │ ├── requirements.txt │ └── zzap_issue.txt ├── logs/ │ └── .gitkeep ├── roms/ │ ├── mame/ │ │ └── .keepthisfile.txt │ └── vice/ │ ├── c64/ │ │ └── .keepthisfile.txt │ ├── pet/ │ │ └── .keepthisfile.txt │ ├── plus4/ │ │ └── .keepthisfile.txt │ └── vic20/ │ └── .keepthisfile.txt ├── src/ │ ├── Makefile_common │ ├── assets/ │ │ ├── LoggerSingleton.py │ │ ├── __init__.py │ │ ├── copy_assets.py │ │ ├── examples/ │ │ │ ├── README.txt │ │ │ ├── single_tiles/ │ │ │ │ ├── tile_shape0.txt │ │ │ │ └── tile_shape1.txt │ │ │ └── tile_sets/ │ │ │ ├── asm/ │ │ │ │ ├── 8x6_cidelsa_digits.s │ │ │ │ ├── 8x6_cidelsa_fonts.s │ │ │ │ ├── Antiriad_Chars.asm │ │ │ │ ├── test_vchar-charset.s │ │ │ │ ├── tile_8x6_shapeA.txt │ │ │ │ ├── tile_8x6_shapeA_rotated.txt │ │ │ │ ├── tiles_all.asm │ │ │ │ ├── tiles_all_2.asm │ │ │ │ ├── tiles_bin.asm │ │ │ │ ├── tiles_charPad.asm │ │ │ │ ├── tiles_magellan.a99 │ │ │ │ └── tiles_magellan_2.a99 │ │ │ └── basic/ │ │ │ ├── test.txt │ │ │ ├── tiles_atari.bas │ │ │ ├── tiles_atari_2.bas │ │ │ ├── tiles_bbc.bas │ │ │ ├── tiles_cbm.bas │ │ │ ├── tiles_cbm_10_liner.bas │ │ │ ├── tiles_cbm_10_liner_2.bas │ │ │ ├── tiles_cbm_10_liner_3.bas │ │ │ ├── tiles_cbm_10_liner_4.bas │ │ │ ├── tiles_cbm_2.bas │ │ │ ├── tiles_cpc.bas │ │ │ ├── tiles_msx_headless_hex.bas │ │ │ ├── tiles_oric.bas │ │ │ ├── tiles_oric_2.bas │ │ │ ├── tiles_oric_3.bas │ │ │ ├── tiles_oric_4.bas │ │ │ ├── tiles_oric_5.bas │ │ │ └── tiles_sinclair.bas │ │ ├── generate_assets.py │ │ ├── templates/ │ │ │ ├── 4x4/ │ │ │ │ └── 4x4_chars.h.template │ │ │ ├── 6x8/ │ │ │ │ ├── 6x8_chars.h.template │ │ │ │ └── z88dk_6x8_pmd85.asm.template │ │ │ ├── 6x9/ │ │ │ │ └── 6x9_chars.h.template │ │ │ ├── 7x8/ │ │ │ │ └── 7x8_chars.h.template │ │ │ ├── 8x6/ │ │ │ │ ├── 8x6_chars.h.template │ │ │ │ ├── 8x6_tiles.s.template │ │ │ │ └── z88dk_8x6_sprites_definitions.h.template │ │ │ └── 8x8/ │ │ │ ├── 8x8_chars.h.template │ │ │ ├── cc65_agat.s.template │ │ │ ├── cc65_gamate_tiles.s.template │ │ │ ├── cc65_nes_color_tiles.s.template │ │ │ ├── cc65_nes_tiles.s.template │ │ │ ├── cc65_pce_tiles.s.template │ │ │ ├── cc65_udc.s.template │ │ │ ├── cc65_udc_64_chars.s.template │ │ │ ├── cc65_udc_6chars.s.template │ │ │ ├── cc65_udc_arcade.s.template │ │ │ ├── cc65_udc_arcade_64_chars.s.template │ │ │ ├── cc65_udc_arcade_VIC20.s.template │ │ │ ├── cc65_udc_arcade_conio.s.template │ │ │ ├── cc65_udc_arcade_v2.s.template │ │ │ ├── cc65_udc_atari7800_160A.s.template │ │ │ ├── cc65_udc_vic20_19_tiles.s.template │ │ │ ├── cc65_udc_vic20_25_tiles.s.template │ │ │ ├── cc65_udc_vic20_27_tiles.s.template │ │ │ ├── cc65_udc_vic20_64_chars.s.template │ │ │ ├── cmoc_udc_tiles.s.template │ │ │ ├── cmoc_udc_tiles_and_fonts.s.template │ │ │ ├── z88dk_cpc_Chars8.asm.template │ │ │ ├── z88dk_gameboy.asm.template │ │ │ ├── z88dk_pv1000.asm.template │ │ │ ├── z88dk_sprites_definitions.h.template │ │ │ └── z88dk_xchase.asm.template │ │ └── unit_tests/ │ │ └── testAssets.py │ ├── config.ini │ ├── cross_lib/ │ │ ├── boot/ │ │ │ └── multi8/ │ │ │ └── bootstrap.c │ │ ├── cfg/ │ │ │ ├── cc65/ │ │ │ │ ├── alt/ │ │ │ │ │ ├── vic20-16k.cfg │ │ │ │ │ ├── vic20-24k.cfg │ │ │ │ │ ├── vic20-3k.cfg │ │ │ │ │ ├── vic20-8k.cfg │ │ │ │ │ ├── vic20-8k_GFX_tight.cfg │ │ │ │ │ ├── vic20-8k_old_GFX.cfg │ │ │ │ │ ├── vic20-8k_tight.cfg │ │ │ │ │ └── vic20_unexpanded.cfg │ │ │ │ ├── apple2-hgr.cfg │ │ │ │ ├── apple2enh-hgr.cfg │ │ │ │ ├── atari5200_redefined_chars.cfg │ │ │ │ ├── atari5200_redefined_chars_32k.cfg │ │ │ │ ├── atari7800_more_ram.cfg │ │ │ │ ├── atari_mode12.cfg │ │ │ │ ├── atari_mode1_redefined_chars.cfg │ │ │ │ ├── atarixl_mode12.cfg │ │ │ │ ├── atmos_better_tap.cfg │ │ │ │ ├── c16-16k.cfg │ │ │ │ ├── c16-16k_GFX.cfg │ │ │ │ ├── c16-16k_GFX_64chars.cfg │ │ │ │ ├── c16-16k_GFX_64chars_stack_0x30.cfg │ │ │ │ ├── c16-16k_GFX_64chars_stack_0x30_less_hd_stack.cfg │ │ │ │ ├── c16-32k.cfg │ │ │ │ ├── c16-32k_GFX.cfg │ │ │ │ ├── c16-32k_GFX_64chars.cfg │ │ │ │ ├── c64_GFXat0xC000.cfg │ │ │ │ ├── creativision-16k.cfg │ │ │ │ ├── creativision-16k_2.cfg │ │ │ │ ├── creativision-16k_less_stack.cfg │ │ │ │ ├── creativision-18k.cfg │ │ │ │ ├── creativision-24k.cfg │ │ │ │ ├── creativision-32k.cfg │ │ │ │ ├── creativision-32k_alt.cfg │ │ │ │ ├── creativision-8k.cfg │ │ │ │ ├── creativision-8k_less_stack.cfg │ │ │ │ ├── gamate_reduced_stack.cfg │ │ │ │ ├── gamate_reduced_stack_2.cfg │ │ │ │ ├── nes_fx.cfg │ │ │ │ ├── osic1p_less_stack.cfg │ │ │ │ ├── pce.cfg │ │ │ │ ├── pce_16k.cfg │ │ │ │ ├── pce_16k_less_stack.cfg │ │ │ │ ├── pce_32k.cfg │ │ │ │ ├── pce_8k_less_stack.cfg │ │ │ │ ├── pet_8k.cfg │ │ │ │ ├── plus4_GFX.cfg │ │ │ │ ├── supervision-16k.cfg │ │ │ │ ├── supervision-16k_GFX.cfg │ │ │ │ ├── supervision-16k_GFX_2.cfg │ │ │ │ ├── supervision-16k_GFX_2_stack_0x1B.cfg │ │ │ │ ├── supervision-16k_GFX_3.cfg │ │ │ │ ├── supervision-64k.cfg │ │ │ │ ├── vic20-16k_CODE2_GFX.cfg │ │ │ │ ├── vic20-16k_CODE2_GFX_ALT_V2.cfg │ │ │ │ ├── vic20-16k_CODE2_GFX_V2.cfg │ │ │ │ ├── vic20-16k_GFX.cfg │ │ │ │ ├── vic20-3k_GFX.cfg │ │ │ │ ├── vic20-8k_CODE2_GFX.cfg │ │ │ │ ├── vic20-8k_CODE2_GFX_V2.cfg │ │ │ │ ├── vic20-8k_CODE2_GFX_V2_alt.cfg │ │ │ │ ├── vic20-8k_GFX.cfg │ │ │ │ ├── vic20-8k_GFX_25_tiles.cfg │ │ │ │ ├── vic20-8k_GFX_stack_0x1B.cfg │ │ │ │ ├── vic20-8k_memory_mapped_GFX.cfg │ │ │ │ ├── vic20-cart.cfg │ │ │ │ ├── vic20.cfg │ │ │ │ ├── vic20_unexpanded_gfx.cfg │ │ │ │ └── vic20_unexpanded_gfx_low_stack.cfg │ │ │ ├── gcc4ti99/ │ │ │ │ └── linkfile.cfg │ │ │ ├── vbcc/ │ │ │ │ └── bbc/ │ │ │ │ ├── bbc │ │ │ │ ├── bbc2 │ │ │ │ ├── bbc2_posix │ │ │ │ ├── bbc5 │ │ │ │ ├── bbc5_posix │ │ │ │ ├── bbc7 │ │ │ │ ├── bbc7_posix │ │ │ │ ├── bbc_posix │ │ │ │ ├── bbcmaster │ │ │ │ ├── vlink.cmd │ │ │ │ ├── vlink2.cmd │ │ │ │ ├── vlink5.cmd │ │ │ │ └── vlink7.cmd │ │ │ └── z88dk/ │ │ │ ├── zpragma.inc │ │ │ ├── zpragma_clib.inc │ │ │ ├── zpragma_clib_no_printf.inc │ │ │ └── zpragma_sms.inc │ │ ├── cross_lib.h │ │ ├── crt/ │ │ │ └── cc65/ │ │ │ └── vic20/ │ │ │ └── vic20_cart.crt │ │ ├── display/ │ │ │ ├── alt_print/ │ │ │ │ ├── atari_mode1_alt_print.c │ │ │ │ ├── comx_alt_print.c │ │ │ │ ├── memory_mapped_alt_print.c │ │ │ │ ├── memory_mapped_alt_print.h │ │ │ │ ├── mo5_alt_print.c │ │ │ │ ├── ncurses_alt_print.c │ │ │ │ ├── simple_alt_stats.c │ │ │ │ ├── tgi_alt_print.c │ │ │ │ └── tgi_gfx_print.c │ │ │ ├── color_definitions.h │ │ │ ├── conio_patch.h │ │ │ ├── display_macros.c │ │ │ ├── display_macros.h │ │ │ ├── display_target_color.h │ │ │ ├── display_target_geometry.h │ │ │ ├── graphics_mode/ │ │ │ │ ├── antic_mode6_graphics.h │ │ │ │ ├── apple2_hgr_graphics.h │ │ │ │ ├── atari7800_color_graphics.h │ │ │ │ ├── atari_lynx_tgi_graphics.h │ │ │ │ ├── bbc_graphics.h │ │ │ │ ├── bit_mapped_16_graphics.h │ │ │ │ ├── bit_mapped_4_graphics.h │ │ │ │ ├── bit_mapped_graphics.h │ │ │ │ ├── buffered_graphics.h │ │ │ │ ├── conio_graphics.h │ │ │ │ ├── cpc_cpcrslib_graphics.h │ │ │ │ ├── dual_memory_mapped_graphics.h │ │ │ │ ├── lcc1802_color_graphics.h │ │ │ │ ├── lcc1802_graphics.h │ │ │ │ ├── memory_mapped_graphics.h │ │ │ │ ├── nes_conio_graphics.h │ │ │ │ ├── no_graphics.h │ │ │ │ ├── oric_color_graphics.h │ │ │ │ ├── pv1000_graphics.h │ │ │ │ ├── quad_memory_mapped_graphics.h │ │ │ │ ├── rex_graphics.h │ │ │ │ ├── terminal_graphics.h │ │ │ │ ├── vdp_mode1_graphics.h │ │ │ │ ├── vectorial_graphics.h │ │ │ │ ├── vga_graphics.h │ │ │ │ └── z88dk_sprites_graphics.h │ │ │ ├── graphics_settings.h │ │ │ ├── init_graphics/ │ │ │ │ ├── ack/ │ │ │ │ │ ├── msdos386/ │ │ │ │ │ │ ├── init386_vga.s │ │ │ │ │ │ └── msdos386_init_graphics.c │ │ │ │ │ └── msdos86/ │ │ │ │ │ ├── CGA.txt │ │ │ │ │ ├── EGA.txt │ │ │ │ │ ├── init_vga.s │ │ │ │ │ └── msdos86_init_graphics.c │ │ │ │ ├── cc6303/ │ │ │ │ │ └── mc10_init_graphics.c │ │ │ │ ├── cc65/ │ │ │ │ │ ├── agat/ │ │ │ │ │ │ └── agat_init_graphics.c │ │ │ │ │ ├── apple2/ │ │ │ │ │ │ ├── apple2_hgr_init_graphics.c │ │ │ │ │ │ └── hgr.s │ │ │ │ │ ├── apple2enh/ │ │ │ │ │ │ └── apple2enh_80col_init_graphics.c │ │ │ │ │ ├── atari/ │ │ │ │ │ │ ├── atari_mode1_redefined_chars_init_graphics.c │ │ │ │ │ │ └── disable_setcursor.s │ │ │ │ │ ├── atari5200/ │ │ │ │ │ │ ├── atari5200_init_graphics.c │ │ │ │ │ │ └── setcolor.h │ │ │ │ │ ├── atari7800/ │ │ │ │ │ │ ├── atari7800_init_graphics.c │ │ │ │ │ │ └── atari7800_init_graphics_debug.c │ │ │ │ │ ├── atari_lynx/ │ │ │ │ │ │ └── atari_lynx_gfx_init_graphics.c │ │ │ │ │ ├── atmos/ │ │ │ │ │ │ └── atmos_redefined_characters_init_graphics.c │ │ │ │ │ ├── c128/ │ │ │ │ │ │ └── c128_80col_init_graphics.c │ │ │ │ │ ├── c264/ │ │ │ │ │ │ ├── c16_linked_redefined_chars_init_graphics.c │ │ │ │ │ │ └── c16_redefined_chars_init_graphics.c │ │ │ │ │ ├── c64/ │ │ │ │ │ │ └── c64_init_graphics.c │ │ │ │ │ ├── c65/ │ │ │ │ │ │ └── c65_init_graphics.c │ │ │ │ │ ├── creativision/ │ │ │ │ │ │ ├── creativision_color_init_graphics.c │ │ │ │ │ │ └── creativision_init_graphics.c │ │ │ │ │ ├── cx16/ │ │ │ │ │ │ └── cx16_init_graphics.c │ │ │ │ │ ├── mega65/ │ │ │ │ │ │ └── mega65_init_graphics.c │ │ │ │ │ ├── nes/ │ │ │ │ │ │ └── nes_init_graphics.c │ │ │ │ │ ├── pce/ │ │ │ │ │ │ └── pce_init_graphics.c │ │ │ │ │ ├── supervision/ │ │ │ │ │ │ └── supervision_init_graphics.c │ │ │ │ │ └── vic20/ │ │ │ │ │ └── vic20_init_graphics.c │ │ │ │ ├── cmoc/ │ │ │ │ │ ├── coco/ │ │ │ │ │ │ └── coco_init_graphics.c │ │ │ │ │ ├── coco3/ │ │ │ │ │ │ └── coco3_init_graphics.c │ │ │ │ │ └── mo5/ │ │ │ │ │ └── mo5_init_graphics.c │ │ │ │ ├── gcc/ │ │ │ │ │ ├── ncurses_init_graphics.c │ │ │ │ │ └── terminal_init_graphics.c │ │ │ │ ├── gcc4ti99/ │ │ │ │ │ └── gcc4ti99_init_graphics.c │ │ │ │ ├── lcc1802/ │ │ │ │ │ └── comx/ │ │ │ │ │ ├── comx_color_init_graphics.c │ │ │ │ │ ├── comx_init_graphics.c │ │ │ │ │ └── micro_color_init_graphics.c │ │ │ │ ├── vbcc/ │ │ │ │ │ └── bbc/ │ │ │ │ │ ├── bbc_init_graphics.c │ │ │ │ │ └── bbc_init_graphics_test.c │ │ │ │ └── z88dk/ │ │ │ │ ├── aquarius/ │ │ │ │ │ └── aquarius_init_graphics.c │ │ │ │ ├── c128/ │ │ │ │ │ └── c128_init_graphics.c │ │ │ │ ├── cpc/ │ │ │ │ │ └── cpc_cpcrslib_init_graphics.c │ │ │ │ ├── g850/ │ │ │ │ │ └── g850_init_graphics.c │ │ │ │ ├── msx/ │ │ │ │ │ └── msx_redefined_chars_init_graphics.c │ │ │ │ ├── rex/ │ │ │ │ │ └── rex_init_graphics.c │ │ │ │ ├── sms/ │ │ │ │ │ └── sms_init_graphics.c │ │ │ │ ├── udg/ │ │ │ │ │ ├── udg_init_graphics.c │ │ │ │ │ └── udg_msx_test.c │ │ │ │ ├── vz200/ │ │ │ │ │ └── vz200_init_graphics.c │ │ │ │ ├── x07/ │ │ │ │ │ └── x07_init_graphics.c │ │ │ │ ├── z88/ │ │ │ │ │ ├── z88_init_graphics.c │ │ │ │ │ └── z88_udg_init_graphics.c │ │ │ │ ├── zx80/ │ │ │ │ │ └── zx80_init_graphics.c │ │ │ │ └── zx81/ │ │ │ │ └── zx81_init_graphics.c │ │ │ ├── redefine_characters/ │ │ │ │ └── udg_map.h │ │ │ ├── tiles/ │ │ │ │ ├── agat_settings.h │ │ │ │ ├── apple2_hgr_settings.h │ │ │ │ ├── atari7800_settings.h │ │ │ │ ├── atari_mode1_redefined_chars_settings.h │ │ │ │ ├── atmos_redefined_characters_settings.h │ │ │ │ ├── bbc_settings.h │ │ │ │ ├── c128_settings.h │ │ │ │ ├── c264_link_time_redefined_chars_settings.h │ │ │ │ ├── c264_redefined_chars_settings.h │ │ │ │ ├── c64_conio_settings.h │ │ │ │ ├── c64_memory_mapped_settings.h │ │ │ │ ├── cidelsa_no_gfx.h │ │ │ │ ├── cmoc_memory_mapped_settings.h │ │ │ │ ├── comx_color_settings.h │ │ │ │ ├── comx_settings.h │ │ │ │ ├── cpc_cpcrslib_settings.h │ │ │ │ ├── creativision_settings.h │ │ │ │ ├── cx16_settings.h │ │ │ │ ├── default_image_settings.h │ │ │ │ ├── default_quad_graphics_settings.h │ │ │ │ ├── micro_color_settings.h │ │ │ │ ├── micro_settings.h │ │ │ │ ├── msx_redefined_chars_settings.h │ │ │ │ ├── nes_conio_settings.h │ │ │ │ ├── nes_settings.h │ │ │ │ ├── pce_settings.h │ │ │ │ ├── petscii_memory_mapped_settings.h │ │ │ │ ├── pv1000_settings.h │ │ │ │ ├── supervision_settings.h │ │ │ │ ├── tgi_gfx_settings.h │ │ │ │ ├── udg_settings.h │ │ │ │ ├── vdp_mode1_settings.h │ │ │ │ ├── vic20_exp_16k_settings.h │ │ │ │ ├── vic20_exp_16k_v2_settings.h │ │ │ │ ├── vic20_exp_3k_light_settings.h │ │ │ │ ├── vic20_exp_3k_settings.h │ │ │ │ ├── vic20_rom_chars_and_26_tiles_settings.h │ │ │ │ ├── vic20_rom_chars_and_27_tiles_settings.h │ │ │ │ └── vic20_rom_chars_and_6_tiles_settings.h │ │ │ └── tiles.h │ │ ├── include/ │ │ │ └── standard_libs.h │ │ ├── input/ │ │ │ ├── input_macros.c │ │ │ ├── input_macros.h │ │ │ └── input_target_settings.h │ │ ├── rand/ │ │ │ ├── rand.c │ │ │ ├── rand.h │ │ │ └── rand_lcc1802_devkit_include.c │ │ ├── sleep/ │ │ │ ├── sleep_macros.c │ │ │ └── sleep_macros.h │ │ ├── sound/ │ │ │ ├── ack/ │ │ │ │ └── msdos86/ │ │ │ │ └── msdos86_sounds.h │ │ │ ├── cc65/ │ │ │ │ ├── atari7800/ │ │ │ │ │ └── atari7800_sounds.h │ │ │ │ ├── atari_lynx/ │ │ │ │ │ ├── atari_lynx_sounds.c │ │ │ │ │ ├── atari_lynx_sounds.h │ │ │ │ │ └── chibisound.asm │ │ │ │ ├── atmos/ │ │ │ │ │ └── atmos_sounds.h │ │ │ │ ├── c264/ │ │ │ │ │ ├── c264_sounds.c │ │ │ │ │ └── c264_sounds.h │ │ │ │ ├── creativision/ │ │ │ │ │ ├── creativision_sounds.c │ │ │ │ │ └── creativision_sounds.h │ │ │ │ ├── cx16/ │ │ │ │ │ ├── cx16_sounds.c │ │ │ │ │ └── cx16_sounds.h │ │ │ │ ├── gamate/ │ │ │ │ │ ├── gamate_sounds.c │ │ │ │ │ └── gamate_sounds.h │ │ │ │ ├── pet/ │ │ │ │ │ ├── pet_sounds.c │ │ │ │ │ └── pet_sounds.h │ │ │ │ ├── pokey/ │ │ │ │ │ ├── pokey_sounds.c │ │ │ │ │ └── pokey_sounds.h │ │ │ │ ├── sid/ │ │ │ │ │ ├── sid_sounds.c │ │ │ │ │ └── sid_sounds.h │ │ │ │ ├── supervision/ │ │ │ │ │ ├── reverse_engineered_notes.txt │ │ │ │ │ ├── supervision_sounds.c │ │ │ │ │ └── supervision_sounds.h │ │ │ │ └── vic20/ │ │ │ │ ├── vic20_explosion_sound.c │ │ │ │ ├── vic20_explosion_sound.h │ │ │ │ ├── vic20_sounds.c │ │ │ │ └── vic20_sounds.h │ │ │ ├── gcc4ti99/ │ │ │ │ ├── ti99_sounds.c │ │ │ │ └── ti99_sounds.h │ │ │ ├── generic/ │ │ │ │ ├── ascii_sounds.h │ │ │ │ ├── bit_bang_sounds.c │ │ │ │ ├── bit_bang_sounds.h │ │ │ │ ├── dac_sounds.c │ │ │ │ └── dac_sounds.h │ │ │ ├── lcc1802/ │ │ │ │ └── comx/ │ │ │ │ ├── comx_sounds.c │ │ │ │ └── comx_sounds.h │ │ │ ├── sound_macros.h │ │ │ ├── vbcc/ │ │ │ │ └── bbc/ │ │ │ │ ├── bbc_sounds.c │ │ │ │ └── bbc_sounds.h │ │ │ └── z88dk/ │ │ │ ├── bit_bang/ │ │ │ │ └── z88dk_bit_bang_sounds.h │ │ │ ├── gb/ │ │ │ │ ├── gb_sounds.c │ │ │ │ └── gb_sounds.h │ │ │ └── psg/ │ │ │ ├── ay-3-8910_psg_sounds.c │ │ │ ├── psg_sounds.h │ │ │ └── sn76489a_psg_sounds.c │ │ └── text/ │ │ └── letters.h │ ├── debug/ │ │ ├── CONIO_TEST.COM │ │ ├── Makefile │ │ ├── amiga_core.h │ │ ├── atari2600_graphics_test.c │ │ ├── atari7800_test.c │ │ ├── atari7800_test2.c │ │ ├── atari7800_test3.c │ │ ├── atari_lynx.c │ │ ├── bar.c │ │ ├── bbctest.c │ │ ├── bitbang.c │ │ ├── build_conio_test.txt │ │ ├── coco3_test.c │ │ ├── coco_strings_test.c │ │ ├── comx_class.c │ │ ├── comx_conv_debug.c │ │ ├── comx_hello.c │ │ ├── comx_hello_integer.c │ │ ├── comx_mod.c │ │ ├── comx_pointer2func.c │ │ ├── comx_pp_debug.c │ │ ├── comx_simple_class.c │ │ ├── comx_simplest_class.c │ │ ├── comx_size_debug.c │ │ ├── conio.c │ │ ├── conio0.c │ │ ├── conio_test.c │ │ ├── cpc_test.c │ │ ├── cprintf.c │ │ ├── debug_images.h │ │ ├── empty42.c │ │ ├── extern.c │ │ ├── extern.h │ │ ├── foo.c │ │ ├── foo.h │ │ ├── fx.c │ │ ├── gamate_conio_test.c │ │ ├── gamate_conio_test2.c │ │ ├── gb_main.c │ │ ├── gcc_class.c │ │ ├── gcc_simple_class.c │ │ ├── gcc_simplest_class.c │ │ ├── gcc_test.c │ │ ├── generic_psg.c │ │ ├── getk_test.c │ │ ├── h0comx.c │ │ ├── hello_cgetc.c │ │ ├── hello_conio.c │ │ ├── hello_fputc.c │ │ ├── hello_sdl.c │ │ ├── helloworld.c │ │ ├── helloworld_background_color.c │ │ ├── helloworld_getchar.c │ │ ├── htron.c │ │ ├── hwcomx.c │ │ ├── hwcomx1.c │ │ ├── hwcomx2.c │ │ ├── hwcomx_gotoxy.c │ │ ├── hwcomx_gotoxy2.c │ │ ├── hwcomx_pp_debug.c │ │ ├── hwpecom.c │ │ ├── intern.c │ │ ├── intern.h │ │ ├── lcc1802_test.c │ │ ├── lcc1802_test_NEW.c │ │ ├── litterals.c │ │ ├── m5.c │ │ ├── main_use_amiga_core.c │ │ ├── mapfile_shoot_pet_func.txt │ │ ├── mc10_getk.s │ │ ├── mc10_test1.c │ │ ├── mc10_test2.c │ │ ├── mc10_test3.c │ │ ├── mc10_test4.c │ │ ├── msx_test.c │ │ ├── msx_test2.c │ │ ├── ncurses_test.c │ │ ├── nes_bgcolor.c │ │ ├── psg_test.c │ │ ├── psg_test2.c │ │ ├── psg_test3.c │ │ ├── rand.c │ │ ├── struct.c │ │ ├── testBitwiseAnd.c │ │ ├── test_gb.c │ │ ├── test_getk.c │ │ ├── test_joy.c │ │ ├── test_joy2.c │ │ ├── test_sleep.c │ │ ├── test_vsync.c │ │ ├── testc16.c │ │ ├── tgi_lynx_black_test.c │ │ ├── tgi_lynx_cgetc_test.c │ │ ├── tgi_lynx_test.c │ │ ├── ti99.c │ │ ├── ti99_test.c │ │ ├── unsigned_right_shift.c │ │ ├── wait_for_key.c │ │ ├── world.c │ │ └── x07.c │ ├── examples/ │ │ ├── animate/ │ │ │ ├── Makefile.animate │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── background/ │ │ │ ├── Makefile.background │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── blob/ │ │ │ ├── Makefile.blob │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ └── shape20.txt │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── boundary/ │ │ │ ├── Makefile.boundary │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── characters/ │ │ │ ├── Makefile.characters │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── color/ │ │ │ ├── Makefile.color │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── graphics/ │ │ │ ├── Makefile.graphics │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── images.h │ │ │ ├── main.c │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ ├── tiles/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ └── ASCII/ │ │ │ │ └── char_tiles.h │ │ │ └── tools/ │ │ │ ├── digit_0.txt │ │ │ ├── digit_1.txt │ │ │ ├── digit_2.txt │ │ │ ├── digit_3.txt │ │ │ ├── digit_4.txt │ │ │ ├── digit_5.txt │ │ │ ├── digit_6.txt │ │ │ ├── digit_7.txt │ │ │ ├── digit_8.txt │ │ │ ├── digit_9.txt │ │ │ ├── extract_least.py │ │ │ ├── join_digits.py │ │ │ ├── shape0.txt │ │ │ ├── shape1.txt │ │ │ ├── shape2.txt │ │ │ ├── shape3.txt │ │ │ ├── shape4.txt │ │ │ ├── shape5.txt │ │ │ ├── shape6.txt │ │ │ ├── shape7.txt │ │ │ ├── shape8.txt │ │ │ ├── shape9.txt │ │ │ └── test.txt │ │ ├── hello/ │ │ │ ├── Makefile.hello │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── input/ │ │ │ ├── Makefile.input │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── invaders/ │ │ │ ├── Makefile.invaders │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ ├── tile_aliases.h │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── matrix/ │ │ │ ├── Makefile.matrix │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ ├── tile_aliases.h │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── numbers/ │ │ │ ├── Makefile.numbers │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── palette/ │ │ │ ├── Makefile.palette │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── random/ │ │ │ ├── Makefile.random │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── sleep/ │ │ │ ├── Makefile.sleep │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── sounds/ │ │ │ ├── Makefile.sounds │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── target/ │ │ │ ├── Makefile.target │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── text/ │ │ │ ├── Makefile.text │ │ │ ├── config/ │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ └── zombies/ │ │ ├── Makefile.zombies │ │ ├── config/ │ │ │ └── project_config.mk │ │ ├── images.h │ │ ├── main.c │ │ └── tiles/ │ │ ├── 6x8/ │ │ │ ├── tile0.txt │ │ │ ├── tile1.txt │ │ │ ├── tile10.txt │ │ │ ├── tile11.txt │ │ │ ├── tile12.txt │ │ │ ├── tile13.txt │ │ │ ├── tile14.txt │ │ │ ├── tile15.txt │ │ │ ├── tile16.txt │ │ │ ├── tile17.txt │ │ │ ├── tile18.txt │ │ │ ├── tile19.txt │ │ │ ├── tile2.txt │ │ │ ├── tile20.txt │ │ │ ├── tile21.txt │ │ │ ├── tile22.txt │ │ │ ├── tile23.txt │ │ │ ├── tile24.txt │ │ │ ├── tile25.txt │ │ │ ├── tile3.txt │ │ │ ├── tile4.txt │ │ │ ├── tile5.txt │ │ │ ├── tile6.txt │ │ │ ├── tile7.txt │ │ │ ├── tile8.txt │ │ │ └── tile9.txt │ │ ├── 6x9/ │ │ │ ├── tile0.txt │ │ │ ├── tile1.txt │ │ │ ├── tile10.txt │ │ │ ├── tile11.txt │ │ │ ├── tile12.txt │ │ │ ├── tile13.txt │ │ │ ├── tile14.txt │ │ │ ├── tile15.txt │ │ │ ├── tile16.txt │ │ │ ├── tile17.txt │ │ │ ├── tile18.txt │ │ │ ├── tile19.txt │ │ │ ├── tile2.txt │ │ │ ├── tile20.txt │ │ │ ├── tile21.txt │ │ │ ├── tile22.txt │ │ │ ├── tile23.txt │ │ │ ├── tile24.txt │ │ │ ├── tile25.txt │ │ │ ├── tile3.txt │ │ │ ├── tile4.txt │ │ │ ├── tile5.txt │ │ │ ├── tile6.txt │ │ │ ├── tile7.txt │ │ │ ├── tile8.txt │ │ │ └── tile9.txt │ │ ├── 7x8/ │ │ │ ├── tile0.txt │ │ │ ├── tile1.txt │ │ │ ├── tile10.txt │ │ │ ├── tile11.txt │ │ │ ├── tile12.txt │ │ │ ├── tile13.txt │ │ │ ├── tile14.txt │ │ │ ├── tile15.txt │ │ │ ├── tile16.txt │ │ │ ├── tile17.txt │ │ │ ├── tile18.txt │ │ │ ├── tile19.txt │ │ │ ├── tile2.txt │ │ │ ├── tile20.txt │ │ │ ├── tile21.txt │ │ │ ├── tile22.txt │ │ │ ├── tile23.txt │ │ │ ├── tile24.txt │ │ │ ├── tile25.txt │ │ │ ├── tile3.txt │ │ │ ├── tile4.txt │ │ │ ├── tile5.txt │ │ │ ├── tile6.txt │ │ │ ├── tile7.txt │ │ │ ├── tile8.txt │ │ │ └── tile9.txt │ │ ├── 8x8/ │ │ │ ├── tile0.txt │ │ │ ├── tile1.txt │ │ │ ├── tile10.txt │ │ │ ├── tile11.txt │ │ │ ├── tile12.txt │ │ │ ├── tile13.txt │ │ │ ├── tile14.txt │ │ │ ├── tile15.txt │ │ │ ├── tile16.txt │ │ │ ├── tile17.txt │ │ │ ├── tile18.txt │ │ │ ├── tile19.txt │ │ │ ├── tile2.txt │ │ │ ├── tile20.txt │ │ │ ├── tile21.txt │ │ │ ├── tile22.txt │ │ │ ├── tile23.txt │ │ │ ├── tile24.txt │ │ │ ├── tile25.txt │ │ │ ├── tile3.txt │ │ │ ├── tile4.txt │ │ │ ├── tile5.txt │ │ │ ├── tile6.txt │ │ │ ├── tile7.txt │ │ │ ├── tile8.txt │ │ │ └── tile9.txt │ │ └── ASCII/ │ │ └── char_tiles.h │ ├── games/ │ │ ├── bomber/ │ │ │ ├── Makefile.bomber │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── main.c │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── tile_aliases.h │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ ├── aquarius/ │ │ │ │ ├── aquarius_char_tiles.h │ │ │ │ └── aquarius_quad_char_tiles.h │ │ │ ├── char_tiles.h │ │ │ └── quad_char_tiles.h │ │ ├── chase/ │ │ │ ├── Makefile.chase │ │ │ ├── Makefile.chase_BK │ │ │ ├── bullet.h │ │ │ ├── character.h │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── definitions.h │ │ │ ├── end_screen.h │ │ │ ├── game_settings.h │ │ │ ├── game_text.h │ │ │ ├── ghost.h │ │ │ ├── horizontal_missile.h │ │ │ ├── images.h │ │ │ ├── init_images.h │ │ │ ├── item.h │ │ │ ├── level.h │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── makefiles.chase/ │ │ │ │ ├── Makefile.ack_targets │ │ │ │ ├── Makefile.cc6303_targets │ │ │ │ ├── Makefile.cc65_targets │ │ │ │ ├── Makefile.cmoc_targets │ │ │ │ ├── Makefile.cross-dev-kit_targets │ │ │ │ ├── Makefile.emcc_targets │ │ │ │ ├── Makefile.gcc_amiga_targets │ │ │ │ ├── Makefile.gcc_atari_st_targets │ │ │ │ ├── Makefile.gcc_targets │ │ │ │ ├── Makefile.gcc_tms9900_targets │ │ │ │ ├── Makefile.gcc_z8k_pcos_targets │ │ │ │ ├── Makefile.lcc1802_targets │ │ │ │ ├── Makefile.sdcc_targets │ │ │ │ ├── Makefile.vbcc_targets │ │ │ │ ├── Makefile.xtc68_targets │ │ │ │ ├── Makefile.z88dk_targets │ │ │ │ └── makefiles_z88dk/ │ │ │ │ ├── Makefile_z88dk_a-k │ │ │ │ ├── Makefile_z88dk_l-p │ │ │ │ ├── Makefile_z88dk_q-z │ │ │ │ └── Makefile_z88dk_zsdcc │ │ │ ├── memory/ │ │ │ │ ├── c16_memory.s │ │ │ │ ├── creativision_memory.s │ │ │ │ ├── gal_memory.asm │ │ │ │ ├── gamate_memory.s │ │ │ │ ├── oric1_memory.s │ │ │ │ ├── pet_memory.s │ │ │ │ └── vic20_memory.s │ │ │ ├── move_player.h │ │ │ ├── rocket.h │ │ │ ├── settings.h │ │ │ ├── shapes/ │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ └── shape7.txt │ │ │ │ └── 8x6/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ ├── skull.h │ │ │ ├── speed_game_settings.h │ │ │ ├── split_files/ │ │ │ │ ├── bullet.c │ │ │ │ ├── character.c │ │ │ │ ├── end_screen.c │ │ │ │ ├── game_text.c │ │ │ │ ├── ghost.c │ │ │ │ ├── horizontal_missile.c │ │ │ │ ├── init_images.c │ │ │ │ ├── item.c │ │ │ │ ├── level.c │ │ │ │ ├── main.c │ │ │ │ ├── move_player.c │ │ │ │ ├── rocket.c │ │ │ │ ├── skull.c │ │ │ │ └── strategy.c │ │ │ ├── strategy.h │ │ │ ├── text_strings.h │ │ │ ├── tiles/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ └── ASCII/ │ │ │ │ ├── aquarius/ │ │ │ │ │ └── aquarius_char_tiles.h │ │ │ │ └── char_tiles.h │ │ │ └── variables.h │ │ ├── horde/ │ │ │ ├── Makefile.horde │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── images.h │ │ │ ├── main.c │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape25.txt │ │ │ │ │ └── shape26.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape25.txt │ │ │ │ │ └── shape26.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape25.txt │ │ │ │ │ └── shape26.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape25.txt │ │ │ │ └── shape26.txt │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ ├── aquarius/ │ │ │ │ └── aquarius_char_tiles.h │ │ │ └── char_tiles.h │ │ ├── shoot/ │ │ │ ├── Makefile.shoot │ │ │ ├── bullet.h │ │ │ ├── character.h │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── definitions.h │ │ │ ├── doc/ │ │ │ │ ├── items.txt │ │ │ │ ├── levels.txt │ │ │ │ └── secrets.txt │ │ │ ├── end_screen.h │ │ │ ├── game_settings.h │ │ │ ├── game_text.h │ │ │ ├── ghost.h │ │ │ ├── horizontal_missile.h │ │ │ ├── images.h │ │ │ ├── init_images.h │ │ │ ├── item.h │ │ │ ├── level.h │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── memory/ │ │ │ │ ├── c16_memory.s │ │ │ │ ├── creativision_memory.s │ │ │ │ ├── creativision_memory_light.s │ │ │ │ ├── creativision_memory_tiny.s │ │ │ │ ├── gal_memory.asm │ │ │ │ ├── gamate_memory.s │ │ │ │ ├── oric1_memory.s │ │ │ │ ├── pet_memory.s │ │ │ │ └── vic20_memory.s │ │ │ ├── move_player.h │ │ │ ├── rocket.h │ │ │ ├── settings.h │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ └── shape26.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ └── shape3.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape26.txt │ │ │ │ └── shape6.txt │ │ │ ├── skull.h │ │ │ ├── sleep.h │ │ │ ├── speed_game_settings.h │ │ │ ├── split_files/ │ │ │ │ ├── bullet.c │ │ │ │ ├── character.c │ │ │ │ ├── end_screen.c │ │ │ │ ├── game_text.c │ │ │ │ ├── ghost.c │ │ │ │ ├── horizontal_missile.c │ │ │ │ ├── init_images.c │ │ │ │ ├── item.c │ │ │ │ ├── level.c │ │ │ │ ├── main.c │ │ │ │ ├── move_player.c │ │ │ │ ├── rocket.c │ │ │ │ ├── skull.c │ │ │ │ ├── sleep.c │ │ │ │ └── strategy.c │ │ │ ├── strategy.h │ │ │ ├── text_strings.h │ │ │ ├── tiles/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile26.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── variables.h │ │ ├── shuriken/ │ │ │ ├── Makefile.shuriken │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── docs/ │ │ │ │ ├── 12x12_multi_tile_1.txt │ │ │ │ ├── 12x12_multi_tile_2.txt │ │ │ │ ├── 12x16_multi_tile.txt │ │ │ │ ├── 14x16_multi_tile.txt │ │ │ │ ├── 14x16_multi_tile_2.txt │ │ │ │ ├── 14x16_multi_tile_3.txt │ │ │ │ ├── 14x16_multi_tile_4.txt │ │ │ │ ├── 14x16_shapes.txt │ │ │ │ ├── 16x12_multi_tile.txt │ │ │ │ ├── 16x16_multi_tile.txt │ │ │ │ ├── 7x8.txt │ │ │ │ ├── mine_shape1.txt │ │ │ │ └── mine_shape2.txt │ │ │ ├── level_00_horiz.h │ │ │ ├── level_01_vert_bars.h │ │ │ ├── level_02_cross.h │ │ │ ├── level_03_07_11_boss.h │ │ │ ├── level_04_horiz_walls.h │ │ │ ├── level_05_h_barriers.h │ │ │ ├── level_06_rain.h │ │ │ ├── level_08_vert_walls.h │ │ │ ├── level_09_squares.h │ │ │ ├── level_10_many.h │ │ │ ├── levels.h │ │ │ ├── main.c │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── screen_types.h │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ └── tiles/ │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ ├── snake/ │ │ │ ├── Makefile.snake │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── control_player.h │ │ │ ├── doc/ │ │ │ │ ├── game_play.txt │ │ │ │ ├── info.txt │ │ │ │ ├── levels.txt │ │ │ │ └── whatsnew.txt │ │ │ ├── game_text.h │ │ │ ├── init_images.h │ │ │ ├── levels.h │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── memory/ │ │ │ │ ├── c16_memory.s │ │ │ │ ├── creativision_memory.s │ │ │ │ ├── gamate_memory.s │ │ │ │ └── vic20_memory.s │ │ │ ├── move_snake.h │ │ │ ├── settings.h │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ └── shape25.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ └── shape25.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ └── shape25.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ └── shape8.txt │ │ │ │ └── 8x8/ │ │ │ │ └── shape25.txt │ │ │ ├── snake.h │ │ │ ├── split_files/ │ │ │ │ ├── control_player.c │ │ │ │ ├── game_text.c │ │ │ │ ├── main.c │ │ │ │ ├── move_snake.c │ │ │ │ ├── snake.c │ │ │ │ └── variables.c │ │ │ ├── tiles/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ ├── 8x8/ │ │ │ │ │ ├── tile0.txt │ │ │ │ │ ├── tile1.txt │ │ │ │ │ ├── tile10.txt │ │ │ │ │ ├── tile11.txt │ │ │ │ │ ├── tile12.txt │ │ │ │ │ ├── tile13.txt │ │ │ │ │ ├── tile14.txt │ │ │ │ │ ├── tile15.txt │ │ │ │ │ ├── tile16.txt │ │ │ │ │ ├── tile17.txt │ │ │ │ │ ├── tile18.txt │ │ │ │ │ ├── tile19.txt │ │ │ │ │ ├── tile2.txt │ │ │ │ │ ├── tile20.txt │ │ │ │ │ ├── tile21.txt │ │ │ │ │ ├── tile22.txt │ │ │ │ │ ├── tile23.txt │ │ │ │ │ ├── tile24.txt │ │ │ │ │ ├── tile25.txt │ │ │ │ │ ├── tile3.txt │ │ │ │ │ ├── tile4.txt │ │ │ │ │ ├── tile5.txt │ │ │ │ │ ├── tile6.txt │ │ │ │ │ ├── tile7.txt │ │ │ │ │ ├── tile8.txt │ │ │ │ │ └── tile9.txt │ │ │ │ └── ASCII/ │ │ │ │ ├── aquarius/ │ │ │ │ │ └── aquarius_char_tiles.h │ │ │ │ └── char_tiles.h │ │ │ └── variables.h │ │ ├── stinger/ │ │ │ ├── Makefile.stinger │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── docs/ │ │ │ │ ├── empty_stinger1.txt │ │ │ │ ├── empty_stinger2.txt │ │ │ │ ├── score.txt │ │ │ │ ├── stinger.txt │ │ │ │ ├── stinger1.txt │ │ │ │ └── stinger2.txt │ │ │ ├── images.h │ │ │ ├── main.c │ │ │ ├── makefiles/ │ │ │ │ └── Makefile.override │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ ├── aquarius/ │ │ │ │ └── aquarius_char_tiles.h │ │ │ └── char_tiles.h │ │ ├── trex/ │ │ │ ├── Makefile.trex │ │ │ ├── config/ │ │ │ │ ├── game_config.mk │ │ │ │ └── project_config.mk │ │ │ ├── docs/ │ │ │ │ ├── dino.txt │ │ │ │ ├── shape2x8left.txt │ │ │ │ ├── shape2x8right.txt │ │ │ │ ├── tile2x8left.txt │ │ │ │ └── tile2x8right.txt │ │ │ ├── images.h │ │ │ ├── main.c │ │ │ ├── shapes/ │ │ │ │ ├── 6x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape2x8left.txt │ │ │ │ │ ├── shape2x8right.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 6x9/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape2x8left.txt │ │ │ │ │ ├── shape2x8right.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 7x8/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape2x8left.txt │ │ │ │ │ ├── shape2x8right.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ ├── 8x6/ │ │ │ │ │ ├── shape0.txt │ │ │ │ │ ├── shape1.txt │ │ │ │ │ ├── shape10.txt │ │ │ │ │ ├── shape11.txt │ │ │ │ │ ├── shape12.txt │ │ │ │ │ ├── shape13.txt │ │ │ │ │ ├── shape14.txt │ │ │ │ │ ├── shape15.txt │ │ │ │ │ ├── shape16.txt │ │ │ │ │ ├── shape17.txt │ │ │ │ │ ├── shape18.txt │ │ │ │ │ ├── shape19.txt │ │ │ │ │ ├── shape2.txt │ │ │ │ │ ├── shape20.txt │ │ │ │ │ ├── shape21.txt │ │ │ │ │ ├── shape22.txt │ │ │ │ │ ├── shape23.txt │ │ │ │ │ ├── shape24.txt │ │ │ │ │ ├── shape25.txt │ │ │ │ │ ├── shape26.txt │ │ │ │ │ ├── shape2x8left.txt │ │ │ │ │ ├── shape2x8right.txt │ │ │ │ │ ├── shape3.txt │ │ │ │ │ ├── shape4.txt │ │ │ │ │ ├── shape5.txt │ │ │ │ │ ├── shape6.txt │ │ │ │ │ ├── shape7.txt │ │ │ │ │ ├── shape8.txt │ │ │ │ │ └── shape9.txt │ │ │ │ └── 8x8/ │ │ │ │ ├── bird12x8left.txt │ │ │ │ ├── bird12x8right.txt │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ └── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile2x8left.txt │ │ │ │ ├── tile2x8right.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile2x8left.txt │ │ │ │ ├── tile2x8right.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile2x8left.txt │ │ │ │ ├── tile2x8right.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile2x8left.txt │ │ │ │ ├── tile2x8right.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 8x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ └── ASCII/ │ │ │ └── char_tiles.h │ │ └── verbix/ │ │ ├── Makefile.verbix │ │ ├── config/ │ │ │ ├── game_config.mk │ │ │ └── project_config.mk │ │ ├── dictionary.h │ │ ├── main.c │ │ ├── makefiles/ │ │ │ └── Makefile.override │ │ ├── shapes/ │ │ │ ├── 6x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ ├── 8x6/ │ │ │ │ ├── shape0.txt │ │ │ │ ├── shape1.txt │ │ │ │ ├── shape10.txt │ │ │ │ ├── shape11.txt │ │ │ │ ├── shape12.txt │ │ │ │ ├── shape13.txt │ │ │ │ ├── shape14.txt │ │ │ │ ├── shape15.txt │ │ │ │ ├── shape16.txt │ │ │ │ ├── shape17.txt │ │ │ │ ├── shape18.txt │ │ │ │ ├── shape19.txt │ │ │ │ ├── shape2.txt │ │ │ │ ├── shape20.txt │ │ │ │ ├── shape21.txt │ │ │ │ ├── shape22.txt │ │ │ │ ├── shape23.txt │ │ │ │ ├── shape24.txt │ │ │ │ ├── shape25.txt │ │ │ │ ├── shape26.txt │ │ │ │ ├── shape3.txt │ │ │ │ ├── shape4.txt │ │ │ │ ├── shape5.txt │ │ │ │ ├── shape6.txt │ │ │ │ ├── shape7.txt │ │ │ │ ├── shape8.txt │ │ │ │ └── shape9.txt │ │ │ └── 8x8/ │ │ │ ├── shape0.txt │ │ │ ├── shape1.txt │ │ │ ├── shape10.txt │ │ │ ├── shape11.txt │ │ │ ├── shape12.txt │ │ │ ├── shape13.txt │ │ │ ├── shape14.txt │ │ │ ├── shape15.txt │ │ │ ├── shape16.txt │ │ │ ├── shape17.txt │ │ │ ├── shape18.txt │ │ │ ├── shape19.txt │ │ │ ├── shape2.txt │ │ │ ├── shape20.txt │ │ │ ├── shape21.txt │ │ │ ├── shape22.txt │ │ │ ├── shape23.txt │ │ │ ├── shape24.txt │ │ │ ├── shape25.txt │ │ │ ├── shape26.txt │ │ │ ├── shape3.txt │ │ │ ├── shape4.txt │ │ │ ├── shape5.txt │ │ │ ├── shape6.txt │ │ │ ├── shape7.txt │ │ │ ├── shape8.txt │ │ │ └── shape9.txt │ │ ├── tiles/ │ │ │ ├── 6x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile25_ORIG.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 6x9/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── tile2.txt │ │ │ │ ├── tile20.txt │ │ │ │ ├── tile21.txt │ │ │ │ ├── tile22.txt │ │ │ │ ├── tile23.txt │ │ │ │ ├── tile24.txt │ │ │ │ ├── tile25 _ORIG.txt │ │ │ │ ├── tile25.txt │ │ │ │ ├── tile26.txt │ │ │ │ ├── tile3.txt │ │ │ │ ├── tile4.txt │ │ │ │ ├── tile5.txt │ │ │ │ ├── tile6.txt │ │ │ │ ├── tile7.txt │ │ │ │ ├── tile8.txt │ │ │ │ └── tile9.txt │ │ │ ├── 7x8/ │ │ │ │ ├── tile0.txt │ │ │ │ ├── tile1.txt │ │ │ │ ├── tile10.txt │ │ │ │ ├── tile11.txt │ │ │ │ ├── tile12.txt │ │ │ │ ├── tile13.txt │ │ │ │ ├── tile14.txt │ │ │ │ ├── tile15.txt │ │ │ │ ├── tile16.txt │ │ │ │ ├── tile17.txt │ │ │ │ ├── tile18.txt │ │ │ │ ├── tile19.txt │ │ │ │ ├── til
Showing preview only (239K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (2906 symbols across 607 files)
FILE: docs/bbc_sounds/bbc.h
type bbc_sound (line 1) | typedef struct {
FILE: src/assets/LoggerSingleton.py
class LoggerSingleton (line 9) | class LoggerSingleton:
method initLogger (line 12) | def initLogger(name, path):
FILE: src/assets/generate_assets.py
function read_tiles_from_dir (line 42) | def read_tiles_from_dir(dir_name):
function read_templates_from_dir (line 65) | def read_templates_from_dir(dir_name):
function four_colored (line 101) | def four_colored(four_bit, color):
function one_to_two (line 107) | def one_to_two(source, color):
function generate_two_bit_asset (line 115) | def generate_two_bit_asset(abstract_asset):
function generate_160A_asset (line 160) | def generate_160A_asset(two_bit_assets):
function process_a7800_160A_file (line 176) | def process_a7800_160A_file():
function format_asset (line 227) | def format_asset(assets):
function generate_asset_from_template (line 252) | def generate_asset_from_template(dir_name, stripped_template_file_name):
function generate_assets_from_dir (line 317) | def generate_assets_from_dir(dir_name):
function main (line 323) | def main():
FILE: src/assets/unit_tests/testAssets.py
class testAssets (line 12) | class testAssets(unittest.TestCase):
method test_four_colored_1 (line 18) | def test_four_colored_1(self):
method test_four_colored_2 (line 22) | def test_four_colored_2(self):
method test_four_colored_3 (line 26) | def test_four_colored_3(self):
method test_four_colored_4 (line 30) | def test_four_colored_4(self):
method test_four_colored_5 (line 34) | def test_four_colored_5(self):
method test_four_colored_6 (line 38) | def test_four_colored_6(self):
method test_four_colored_7 (line 42) | def test_four_colored_7(self):
method test_four_colored_8 (line 46) | def test_four_colored_8(self):
method test_four_colored_9 (line 50) | def test_four_colored_9(self):
method test_four_colored_10 (line 54) | def test_four_colored_10(self):
method test_four_colored_11 (line 58) | def test_four_colored_11(self):
method test_four_colored_12 (line 62) | def test_four_colored_12(self):
method test_four_colored_13 (line 66) | def test_four_colored_13(self):
method test_four_colored_14 (line 70) | def test_four_colored_14(self):
method test_four_colored_15 (line 74) | def test_four_colored_15(self):
FILE: src/cross_lib/boot/multi8/bootstrap.c
function setup_memory_map (line 17) | static void setup_memory_map() __naked
function reset_memory_map (line 30) | static void reset_memory_map() __naked
function write_string (line 43) | static void write_string(char *str) __z88dk_fastcall
function main (line 49) | int main()
FILE: src/cross_lib/display/alt_print/atari_mode1_alt_print.c
function _GOTOXY (line 8) | void _GOTOXY(uint8_t x, uint8_t y)
function _XL_PRINT (line 20) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function screenCode (line 30) | uint8_t screenCode(uint8_t ch)
function _XL_PRINT (line 43) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_CHAR (line 55) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
function _XL_PRINTD (line 61) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
FILE: src/cross_lib/display/alt_print/comx_alt_print.c
function strlen (line 7) | unsigned int strlen(char *str)
function _XL_PRINT (line 23) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_PRINTD (line 60) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
FILE: src/cross_lib/display/alt_print/memory_mapped_alt_print.c
function screenCode (line 28) | char screenCode(char ch)
function screenCode (line 41) | char screenCode(char ch)
function screenCode (line 46) | char screenCode(char ch)
function screenCode (line 62) | char screenCode(char ch)
function screenCode (line 79) | char screenCode(char ch)
function screenCode (line 100) | char screenCode(char ch)
function screenCode (line 123) | char screenCode(char ch)
function screenCode (line 141) | char screenCode(char ch)
function screenCode (line 154) | char screenCode(char ch)
function screenCode (line 167) | char screenCode(char ch)
function screenCode (line 179) | char screenCode(char ch)
function screenCode (line 191) | char screenCode(char ch)
function _DISPLAY (line 233) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 243) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 249) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 255) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 261) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 267) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 274) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 280) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 287) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 295) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 325) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 343) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 348) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 368) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 380) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 392) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 398) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _DISPLAY (line 417) | void _DISPLAY(uint8_t x, uint8_t y, uint8_t ch)
function _XL_PRINT (line 424) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_PRINTD (line 444) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
function _XL_CHAR (line 473) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
function _XL_CHAR (line 478) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
FILE: src/cross_lib/display/alt_print/mo5_alt_print.c
function _XL_PRINT (line 4) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_CHAR (line 19) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
function _XL_PRINTD (line 26) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
FILE: src/cross_lib/display/alt_print/ncurses_alt_print.c
function _XL_PRINT (line 9) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_CHAR (line 22) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
FILE: src/cross_lib/display/alt_print/simple_alt_stats.c
function _displayShort (line 29) | void _displayShort(uint8_t x, register uint16_t value)
function _XL_PRINT (line 46) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
FILE: src/cross_lib/display/alt_print/tgi_alt_print.c
function _XL_CHAR (line 6) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
function _XL_PRINT (line 16) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_PRINTD (line 22) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
FILE: src/cross_lib/display/alt_print/tgi_gfx_print.c
function _XL_CHAR (line 9) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
function _XL_PRINT (line 29) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_PRINTD (line 44) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
FILE: src/cross_lib/display/display_macros.c
function _XL_SET_TEXT_COLOR (line 34) | void _XL_SET_TEXT_COLOR(uint8_t c)
function _color_draw (line 69) | void _color_draw(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _color_delete (line 86) | void _color_delete(uint8_t x, uint8_t y)
function _color_draw (line 110) | void _color_draw(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _color_delete (line 134) | void _color_delete(uint8_t x, uint8_t y)
function mc10_display_poke (line 230) | void mc10_display_poke(uint16_t addr, uint8_t val)
function vdp_waitvsync (line 244) | void vdp_waitvsync(void)
function loc (line 268) | uint16_t loc(uint8_t x, uint8_t y)
function __display_all (line 302) | void __display_all(void)
function gotoxy (line 366) | void gotoxy(uint8_t x, uint8_t y)
function SWITCH_COLOR_BANK_ON (line 376) | void SWITCH_COLOR_BANK_ON(void)
function SWITCH_COLOR_BANK_OFF (line 386) | void SWITCH_COLOR_BANK_OFF(void)
function PUTCH (line 396) | void PUTCH(unsigned char ch)
function gotoxy (line 405) | void gotoxy(uint8_t x, uint8_t y)
function left_map_one_to_two (line 424) | uint8_t left_map_one_to_two(uint8_t n)
function right_map_one_to_two (line 429) | uint8_t right_map_one_to_two(uint8_t n)
function first_map_one_to_four (line 446) | uint8_t first_map_one_to_four(uint8_t n)
function second_map_one_to_four (line 451) | uint8_t second_map_one_to_four(uint8_t n)
function third_map_one_to_four (line 456) | uint8_t third_map_one_to_four(uint8_t n)
function fourth_map_one_to_four (line 461) | uint8_t fourth_map_one_to_four(uint8_t n)
function _XL_SET_TEXT_COLOR (line 488) | void _XL_SET_TEXT_COLOR(uint8_t c)
function __draw_ch (line 528) | void __draw_ch(uint8_t x, uint8_t y, uint8_t ch)
function _XL_CLEAR_SCREEN (line 539) | void _XL_CLEAR_SCREEN(void)
function _XL_DRAW (line 560) | void _XL_DRAW(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function __DRAW_NO_COLOR (line 566) | void __DRAW_NO_COLOR(uint8_t x, uint8_t y, uint8_t tile)
function _XL_DELETE (line 572) | void _XL_DELETE(uint8_t x, uint8_t y)
function _gotoxy (line 584) | void _gotoxy(uint8_t x, uint8_t y)
function _select_color (line 591) | void _select_color(uint8_t color)
function _bbc_draw (line 598) | void _bbc_draw(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _bbc_draw (line 606) | void _bbc_draw(uint8_t x, uint8_t y, uint8_t tile)
function _bbc_delete (line 614) | void _bbc_delete(uint8_t x, uint8_t y)
function _terminal_draw (line 667) | void _terminal_draw(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _terminal_delete (line 701) | void _terminal_delete(uint8_t x, uint8_t y)
function _XL_REFRESH (line 729) | void _XL_REFRESH(void)
function _XL_REFRESH (line 734) | void _XL_REFRESH(void)
function _XL_PRINT (line 752) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_CHAR (line 763) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
function _XL_PRINTD (line 771) | void _XL_PRINTD(uint8_t x, uint8_t y, uint8_t length, uint16_t val)
function _XL_SET_TEXT_COLOR (line 788) | void _XL_SET_TEXT_COLOR(uint8_t c)
function _XL_PRINT (line 804) | void _XL_PRINT(uint8_t x, uint8_t y, const char * str)
function _XL_CHAR (line 810) | void _XL_CHAR(uint8_t x, uint8_t y, char ch)
FILE: src/cross_lib/display/graphics_mode/atari_lynx_tgi_graphics.h
type scb_hv_pal2 (line 9) | typedef struct scb_hv_pal2 {
FILE: src/cross_lib/display/init_graphics/ack/msdos386/msdos386_init_graphics.c
function _display_tile (line 123) | void _display_tile(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _XL_INIT_GRAPHICS (line 160) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/ack/msdos86/msdos86_init_graphics.c
function _display_tile (line 89) | void _display_tile(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _XL_INIT_GRAPHICS (line 119) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc6303/mc10_init_graphics.c
function _XL_INIT_GRAPHICS (line 19) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/agat/agat_init_graphics.c
function _XL_INIT_GRAPHICS (line 11) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/apple2/apple2_hgr_init_graphics.c
function hgr_draw (line 136) | void hgr_draw(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function hgr_delete (line 165) | void hgr_delete(uint8_t x, uint8_t y)
function _XL_INIT_GRAPHICS (line 183) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/apple2enh/apple2enh_80col_init_graphics.c
function _XL_INIT_GRAPHICS (line 6) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/atari/atari_mode1_redefined_chars_init_graphics.c
function set_udg (line 45) | void set_udg(void)
function _XL_INIT_GRAPHICS (line 114) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/atari5200/atari5200_init_graphics.c
function set_udg (line 46) | void set_udg(void)
function _XL_INIT_GRAPHICS (line 62) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/atari7800/atari7800_init_graphics.c
function _XL_INIT_GRAPHICS (line 12) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/atari7800/atari7800_init_graphics_debug.c
function _XL_INIT_GRAPHICS (line 9) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/atari_lynx/atari_lynx_gfx_init_graphics.c
function init_tile_data (line 151) | void init_tile_data(void)
function init_tgi_tile (line 197) | void init_tgi_tile(void)
function _tgi_gfx_delete (line 245) | void _tgi_gfx_delete(uint8_t x, uint8_t y)
function _tgi_gfx_draw (line 253) | void _tgi_gfx_draw(uint8_t x, uint8_t y, uint8_t tile, uint8_t color)
function _XL_INIT_GRAPHICS (line 264) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/atmos/atmos_redefined_characters_init_graphics.c
function init_colors (line 26) | void init_colors(void)
function _XL_INIT_GRAPHICS (line 39) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/c128/c128_80col_init_graphics.c
function vdc_write (line 18) | void vdc_write(uint8_t vdc_register, uint8_t value)
function redefine (line 25) | void redefine(uint8_t tile, const uint8_t definition[])
function set_udg (line 37) | void set_udg(void)
function _XL_INIT_GRAPHICS (line 50) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/c264/c16_linked_redefined_chars_init_graphics.c
function _XL_INIT_GRAPHICS (line 20) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/c264/c16_redefined_chars_init_graphics.c
function _XL_INIT_GRAPHICS (line 27) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/c64/c64_init_graphics.c
function _XL_INIT_GRAPHICS (line 10) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/c65/c65_init_graphics.c
function _XL_INIT_GRAPHICS (line 11) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/creativision/creativision_color_init_graphics.c
function set_group_block_color (line 55) | void set_group_block_color(uint8_t group, uint8_t color)
function set_udg_colors (line 64) | void set_udg_colors(void)
function redefine (line 136) | void redefine(const uint8_t ch, const uint8_t* image)
function SET_UDG_IMAGES (line 147) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 162) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/creativision/creativision_init_graphics.c
function set_group_color (line 10) | void set_group_color(uint8_t group, uint8_t color)
function set_udg_colors (line 15) | void set_udg_colors(void)
function redefine (line 34) | void redefine(const uint8_t ch, const uint8_t* image)
function SET_UDG_IMAGES (line 45) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 56) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/cx16/cx16_init_graphics.c
function redefine (line 12) | void redefine(const uint8_t ch, const uint8_t* image)
function SET_UDG_IMAGES (line 30) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 55) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/mega65/mega65_init_graphics.c
function _XL_INIT_GRAPHICS (line 9) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/nes/nes_init_graphics.c
function set_color (line 18) | void set_color(uint8_t palette_group, uint8_t color_index, uint8_t color)
function All_Off (line 30) | void All_Off(void) {
function All_On (line 35) | void All_On(void) {
function Reset_Scroll (line 40) | void Reset_Scroll(void)
function _XL_INIT_GRAPHICS (line 64) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/pce/pce_init_graphics.c
function _XL_INIT_GRAPHICS (line 19) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/supervision/supervision_init_graphics.c
function _XL_INIT_GRAPHICS (line 5) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cc65/vic20/vic20_init_graphics.c
function _XL_INIT_GRAPHICS (line 10) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cmoc/coco/coco_init_graphics.c
function _XL_INIT_GRAPHICS (line 37) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cmoc/coco3/coco3_init_graphics.c
function _XL_INIT_GRAPHICS (line 34) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/cmoc/mo5/mo5_init_graphics.c
function _XL_INIT_GRAPHICS (line 5) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/gcc/ncurses_init_graphics.c
function _XL_INIT_GRAPHICS (line 15) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/gcc/terminal_init_graphics.c
function _XL_INIT_GRAPHICS (line 121) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/gcc4ti99/gcc4ti99_init_graphics.c
function set_udg_colors (line 27) | void set_udg_colors(void)
function redefine (line 87) | void redefine(const uint8_t ch, const uint8_t* image)
function SET_UDG_IMAGES (line 94) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 109) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/lcc1802/comx/comx_color_init_graphics.c
function redefine_char (line 37) | void redefine_char(uint8_t ch, const uint8_t * shapelocation)
type redefine_struct (line 53) | struct redefine_struct
type redefine_struct (line 60) | struct redefine_struct
function _XL_INIT_GRAPHICS (line 112) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/lcc1802/comx/comx_init_graphics.c
function redefine_char (line 27) | void redefine_char(uint8_t ch, const uint8_t * shapelocation, int color)
type redefine_struct (line 39) | struct redefine_struct
type redefine_struct (line 47) | struct redefine_struct
function _XL_INIT_GRAPHICS (line 88) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/lcc1802/comx/micro_color_init_graphics.c
function redefine_char (line 24) | void redefine_char(uint8_t ch, const uint8_t * shapelocation)
type redefine_struct (line 37) | struct redefine_struct
type redefine_struct (line 45) | struct redefine_struct
function _XL_INIT_GRAPHICS (line 98) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/vbcc/bbc/bbc_init_graphics.c
function redefine (line 90) | void redefine(const uint8_t ch, const uint8_t *data)
function SET_UDG_IMAGES (line 103) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 137) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/vbcc/bbc/bbc_init_graphics_test.c
function redefine (line 114) | void redefine(const uint8_t ch, const uint8_t *data)
function SET_UDG_IMAGES (line 128) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 169) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/aquarius/aquarius_init_graphics.c
function _XL_INIT_GRAPHICS (line 38) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/c128/c128_init_graphics.c
function _XL_INIT_GRAPHICS (line 6) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/cpc/cpc_cpcrslib_init_graphics.c
function set_palette (line 41) | void set_palette()
FILE: src/cross_lib/display/init_graphics/z88dk/g850/g850_init_graphics.c
function _XL_INIT_GRAPHICS (line 4) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/msx/msx_redefined_chars_init_graphics.c
function set_group_color (line 36) | void set_group_color(uint8_t group, uint8_t color)
function set_udg_colors (line 71) | void set_udg_colors(void)
function redefine (line 133) | void redefine(const uint8_t ch, const uint8_t* image)
function SET_UDG_IMAGES (line 144) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 155) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/rex/rex_init_graphics.c
function _XL_INIT_GRAPHICS (line 33) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/sms/sms_init_graphics.c
type r_Rect8 (line 18) | struct r_Rect8
function _XL_INIT_GRAPHICS (line 20) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/udg/udg_init_graphics.c
function _XL_INIT_GRAPHICS (line 15) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/udg/udg_msx_test.c
function _XL_INIT_GRAPHICS (line 10) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/vz200/vz200_init_graphics.c
function _XL_INIT_GRAPHICS (line 3) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/x07/x07_init_graphics.c
function _XL_INIT_GRAPHICS (line 3) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/z88/z88_init_graphics.c
function _XL_INIT_GRAPHICS (line 35) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/z88/z88_udg_init_graphics.c
function _XL_INIT_GRAPHICS (line 18) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/zx80/zx80_init_graphics.c
function _XL_INIT_GRAPHICS (line 5) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/init_graphics/z88dk/zx81/zx81_init_graphics.c
function _XL_INIT_GRAPHICS (line 5) | void _XL_INIT_GRAPHICS(void)
FILE: src/cross_lib/display/redefine_characters/udg_map.h
type redefine_struct (line 10) | struct redefine_struct
function screenCode (line 18) | char screenCode(char ch)
type redefine_struct (line 34) | struct redefine_struct
FILE: src/cross_lib/input/input_macros.c
function __joystfast (line 47) | uint8_t __joystfast(int unit) {
function JOY_INPUT (line 83) | uint8_t JOY_INPUT(void)
function GET_CHAR (line 95) | char GET_CHAR(void)
function _XL_WAIT_FOR_INPUT (line 384) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 392) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 399) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 404) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 415) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 426) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 436) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 444) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 451) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 462) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 476) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 492) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 504) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 519) | void _XL_WAIT_FOR_INPUT(void)
function _XL_WAIT_FOR_INPUT (line 530) | void _XL_WAIT_FOR_INPUT(void)
FILE: src/cross_lib/rand/rand.c
function rand (line 19) | int rand(void) // RAND_MAX assumed to be 32767
FILE: src/cross_lib/sleep/sleep_macros.c
function _XL_SLEEP (line 52) | void _XL_SLEEP(uint8_t sec)
function _XL_SLOW_DOWN (line 92) | void _XL_SLOW_DOWN(uint16_t t)
function _XL_SLOW_DOWN (line 98) | void _XL_SLOW_DOWN(uint16_t t)
function _XL_SLOW_DOWN (line 107) | void _XL_SLOW_DOWN(uint16_t t)
function _XL_SLOW_DOWN (line 119) | void _XL_SLOW_DOWN(uint16_t t)
function _XL_SLOW_DOWN (line 132) | void _XL_SLOW_DOWN(uint16_t t)
function _XL_SLOW_DOWN (line 145) | void _XL_SLOW_DOWN(uint16_t t)
function _XL_SLOW_DOWN (line 158) | void _XL_SLOW_DOWN(uint16_t t)
FILE: src/cross_lib/sound/cc65/atari_lynx/atari_lynx_sounds.c
function _play_frequency (line 9) | void _play_frequency(uint16_t freq)
FILE: src/cross_lib/sound/cc65/c264/c264_sounds.c
function _set_sound (line 29) | void _set_sound()
function _pause (line 35) | void _pause(uint8_t length)
function _noise_sound (line 43) | void _noise_sound(uint8_t type)
function _short_sound (line 56) | void _short_sound(uint8_t type)
function _XL_ZAP_SOUND (line 66) | void _XL_ZAP_SOUND(void)
FILE: src/cross_lib/sound/cc65/creativision/creativision_sounds.c
function play_frequency (line 36) | void play_frequency(uint16_t value)
FILE: src/cross_lib/sound/cc65/cx16/cx16_sounds.c
function _play (line 14) | void _play(uint16_t value)
FILE: src/cross_lib/sound/cc65/gamate/gamate_sounds.c
function play_frequency (line 40) | void play_frequency(uint16_t value)
FILE: src/cross_lib/sound/cc65/pet/pet_sounds.c
function beep (line 35) | void beep(uint8_t value)
function noise (line 47) | void noise(uint8_t duration)
function _XL_ZAP_SOUND (line 63) | void _XL_ZAP_SOUND(void)
FILE: src/cross_lib/sound/cc65/pokey/pokey_sounds.c
function _explosion_sound (line 29) | void _explosion_sound(uint8_t freq)
function _ping_sound (line 43) | void _ping_sound(uint8_t freq)
function _XL_ZAP_SOUND (line 57) | void _XL_ZAP_SOUND(void)
FILE: src/cross_lib/sound/cc65/sid/sid_sounds.c
function _set_noise (line 13) | void _set_noise(void)
function _short_sound (line 22) | void _short_sound(void)
function _XL_SHOOT_SOUND (line 52) | void _XL_SHOOT_SOUND(void)
function _XL_EXPLOSION_SOUND (line 71) | void _XL_EXPLOSION_SOUND(void)
function _XL_PING_SOUND (line 96) | void _XL_PING_SOUND(void)
function _XL_TICK_SOUND (line 103) | void _XL_TICK_SOUND(void)
function _XL_TOCK_SOUND (line 109) | void _XL_TOCK_SOUND(void)
function _XL_ZAP_SOUND (line 115) | void _XL_ZAP_SOUND(void)
FILE: src/cross_lib/sound/cc65/supervision/supervision_sounds.c
function play_frequency (line 22) | void play_frequency(uint16_t value)
FILE: src/cross_lib/sound/cc65/vic20/vic20_explosion_sound.c
function _explosion_sound (line 32) | void _explosion_sound(void)
FILE: src/cross_lib/sound/cc65/vic20/vic20_sounds.c
function _pause (line 33) | void _pause(void)
function silence (line 42) | void silence(void)
function _explosion_sound (line 49) | void _explosion_sound(uint8_t freq, uint8_t duration)
function _ping_sound (line 62) | void _ping_sound(uint8_t freq)
function _XL_ZAP_SOUND (line 71) | void _XL_ZAP_SOUND()
FILE: src/cross_lib/sound/gcc4ti99/ti99_sounds.c
function CLICK (line 9) | void CLICK(uint16_t duration, uint16_t period)
function NOISE (line 24) | void NOISE(uint16_t duration, uint8_t mode)
function _XL_ZAP_SOUND (line 42) | void _XL_ZAP_SOUND(void)
FILE: src/cross_lib/sound/generic/bit_bang_sounds.c
function _click (line 11) | void _click(void)
function _click (line 17) | void _click(void)
function _XL_ZAP_SOUND (line 25) | void _XL_ZAP_SOUND(void)
function CLICK (line 38) | void CLICK(uint16_t duration, uint8_t period)
function NOISE (line 51) | void NOISE(uint16_t duration, uint8_t period)
FILE: src/cross_lib/sound/generic/dac_sounds.c
function _XL_INIT_SOUND (line 6) | void _XL_INIT_SOUND(void)
function _XL_INIT_SOUND (line 22) | void _XL_INIT_SOUND(void)
function _XL_INIT_SOUND (line 38) | void _XL_INIT_SOUND(void)
function _XL_INIT_SOUND (line 65) | void _XL_INIT_SOUND(void)
function CLICK (line 88) | void CLICK(uint8_t duration, uint8_t period)
function NOISE (line 102) | void NOISE(uint8_t duration, uint16_t period)
FILE: src/cross_lib/sound/lcc1802/comx/comx_sounds.c
function _ping_sound (line 6) | void _ping_sound(uint8_t freq)
function _explosion_sound (line 23) | void _explosion_sound(uint8_t range, uint8_t duration)
function _XL_ZAP_SOUND (line 42) | void _XL_ZAP_SOUND(void)
FILE: src/cross_lib/sound/z88dk/gb/gb_sounds.c
function _XL_INIT_SOUND (line 46) | void _XL_INIT_SOUND(void)
function _XL_ZAP_SOUND (line 54) | void _XL_ZAP_SOUND(void)
function sound (line 73) | void sound(uint8_t freq_msb)
FILE: src/cross_lib/sound/z88dk/psg/ay-3-8910_psg_sounds.c
function _XL_INIT_SOUND (line 93) | void _XL_INIT_SOUND(void)
function _XL_ZAP_SOUND (line 110) | void _XL_ZAP_SOUND(void)
function _ping_sound (line 134) | void _ping_sound(uint8_t freq)
function _explosion_sound (line 156) | void _explosion_sound(uint8_t freq)
FILE: src/cross_lib/sound/z88dk/psg/sn76489a_psg_sounds.c
function _XL_INIT_SOUND (line 60) | void _XL_INIT_SOUND(void)
function _XL_INIT_SOUND (line 77) | void _XL_INIT_SOUND(void)
function _ping_sound (line 84) | void _ping_sound(uint8_t freq)
function _XL_ZAP_SOUND (line 100) | void _XL_ZAP_SOUND(void)
function _explosion_sound (line 120) | void _explosion_sound(uint8_t freq)
FILE: src/debug/amiga_core.h
type ExecBase (line 61) | struct ExecBase
type Custom (line 62) | struct Custom
type DosLibrary (line 63) | struct DosLibrary
type GfxBase (line 64) | struct GfxBase
function dma_On (line 67) | void dma_On(int v)
function dma_Off (line 71) | void dma_Off(int v)
function copper_Move (line 80) | int copper_Move(short a,short v)
function copper_Set (line 89) | void copper_Set(void *copmem)
function copper_SetView (line 95) | int copper_SetView(short sx , short sy , short ww , short hh , short wib )
function copper_OffsetX (line 117) | int copper_OffsetX(short x)
function copper_Pointer (line 122) | int copper_Pointer(short addr, short n, void *pdata)
function copper_Bitplane (line 136) | int copper_Bitplane(short n, void *data)
function copper_Bitplanes (line 141) | int copper_Bitplanes(short n, void *data, int count , int stride )
function copper_RefreshBitplanes (line 150) | int copper_RefreshBitplanes(short n, void *data, int count , int stride )
function copper_BitplanesNum (line 160) | int copper_BitplanesNum(int n)
function copper_Jump (line 169) | int copper_Jump(int cpl)
function copper_Next (line 173) | int copper_Next(int cmdn, int cpl )
function copper_Color (line 181) | int copper_Color(short n, short val)
function copper_Colors (line 185) | int copper_Colors(short *c, int pos, int count )
function copper_WaitRaw (line 197) | int copper_WaitRaw(int x , int y , int maskx , int masky, int blitwait )
function copper_Wait (line 204) | int copper_Wait(int x , int y , int maskx , int masky , int blitwait )
function copper_End (line 210) | int copper_End()
function copper_Load (line 217) | void copper_Load() //=0
function OpenDisplay (line 223) | void OpenDisplay(int w,int h, void* bitplanes, int nbitplanes,short *pal...
type View (line 248) | struct View
function APTR (line 250) | static APTR GetVBR(void) {
function SetInterruptHandler (line 260) | void SetInterruptHandler(APTR interrupt) {
function APTR (line 264) | APTR GetInterruptHandler() {
function WaitVbl (line 270) | void WaitVbl() {
function WaitBlt (line 285) | void WaitBlt() {
function TakeSystem (line 291) | void TakeSystem() {
function FreeSystem (line 331) | void FreeSystem() {
function MouseLeft (line 359) | short MouseLeft(){return !((*(volatile UBYTE*)0xbfe001)&64);}
function MouseRight (line 360) | short MouseRight(){return !((*(volatile UWORD*)0xdff016)&(1<<10));}
function InitializeSystem (line 379) | void InitializeSystem()
function SetVBLInterrupt (line 394) | void SetVBLInterrupt(APTR intr)
FILE: src/debug/atari2600_graphics_test.c
function main (line 23) | void main(void) {
FILE: src/debug/atari7800_test.c
function main (line 8) | int main(void)
FILE: src/debug/atari7800_test2.c
function main (line 6) | void main()
FILE: src/debug/atari7800_test3.c
function main (line 5) | int main(void)
FILE: src/debug/atari_lynx.c
function main (line 3) | int main(void)
FILE: src/debug/bbctest.c
type redefine_struct (line 171) | struct redefine_struct
type redefine_struct (line 179) | struct redefine_struct
function redefine (line 224) | void redefine(const uint8_t ch, const uint8_t *data)
function SET_UDG_IMAGES (line 237) | void SET_UDG_IMAGES(void)
function _XL_INIT_GRAPHICS (line 250) | void _XL_INIT_GRAPHICS(void)
function main (line 286) | int main(void)
FILE: src/debug/bitbang.c
function main (line 5) | int main(void)
FILE: src/debug/coco3_test.c
function main (line 7) | int main(void)
FILE: src/debug/coco_strings_test.c
function main (line 15) | int main(void)
FILE: src/debug/comx_class.c
function setvideobase (line 2) | void setvideobase(unsigned int vidmem){
function vidstrcpy (line 10) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
type ParentStruct (line 23) | struct ParentStruct
type parent_t (line 29) | typedef struct ParentStruct parent_t;
type ChildStruct (line 31) | struct ChildStruct
type child_t (line 38) | typedef struct ChildStruct child_t;
function _set_parent_data (line 41) | void _set_parent_data(struct ParentStruct* this, int val)
function _set_child_data (line 47) | void _set_child_data(child_t* this, int val)
function main (line 53) | int main()
FILE: src/debug/comx_conv_debug.c
function main (line 8) | void main(){
FILE: src/debug/comx_hello.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 63) | void disableinterrupt(){
function enableinterrupt (line 70) | void enableinterrupt(){
function vidstrcpy (line 77) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 87) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 102) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 110) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 126) | unsigned char cgetc(){ //wait for key press
function kbhit (line 140) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 156) | void settone(int value){
function generatetone (line 163) | void generatetone(int tone, int range, int volume){
function setnoise (line 169) | void setnoise(int value){
function generatenoise (line 179) | void generatenoise(int range, int volume){
function main (line 185) | void main(){
FILE: src/debug/comx_hello_integer.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 63) | void disableinterrupt(){
function enableinterrupt (line 70) | void enableinterrupt(){
function vidstrcpy (line 77) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 87) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 102) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 110) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 126) | unsigned char cgetc(){ //wait for key press
function kbhit (line 140) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 156) | void settone(int value){
function generatetone (line 163) | void generatetone(int tone, int range, int volume){
function setnoise (line 169) | void setnoise(int value){
function generatenoise (line 179) | void generatenoise(int range, int volume){
function main (line 185) | void main(){
FILE: src/debug/comx_mod.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 63) | void disableinterrupt(){
function enableinterrupt (line 70) | void enableinterrupt(){
function vidstrcpy (line 77) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 87) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 102) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 110) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 126) | unsigned char cgetc(){ //wait for key press
function kbhit (line 140) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 156) | void settone(int value){
function generatetone (line 163) | void generatetone(int tone, int range, int volume){
function setnoise (line 169) | void setnoise(int value){
function generatenoise (line 179) | void generatenoise(int range, int volume){
function oneMissileLevel (line 190) | uint8_t oneMissileLevel(void)
function rocketLevel (line 195) | uint8_t rocketLevel(void)
function missileLevel (line 200) | uint8_t missileLevel(void)
function bossLevel (line 205) | uint8_t bossLevel(void)
function horizontalWallsLevel (line 210) | uint8_t horizontalWallsLevel(void)
function main (line 217) | void main(){
FILE: src/debug/comx_pointer2func.c
function _do_nothing (line 1) | void _do_nothing(void){}
function main (line 2) | void main()
FILE: src/debug/comx_pp_debug.c
function main (line 46) | int main(void)
FILE: src/debug/comx_simple_class.c
function setvideobase (line 2) | void setvideobase(unsigned int vidmem){
function vidstrcpy (line 10) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
type ClassStruct (line 21) | struct ClassStruct
type class_t (line 27) | typedef struct ClassStruct class_t;
function _set_class_data (line 30) | void _set_class_data(struct ClassStruct* this, int val)
function main (line 36) | int main()
FILE: src/debug/comx_simplest_class.c
function setvideobase (line 2) | void setvideobase(unsigned int vidmem){
function vidstrcpy (line 10) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
type ClassStruct (line 21) | struct ClassStruct
type class_t (line 26) | typedef struct ClassStruct class_t;
function _print_42 (line 30) | void _print_42(void)
function main (line 36) | int main()
FILE: src/debug/comx_size_debug.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 63) | void disableinterrupt(){
function enableinterrupt (line 70) | void enableinterrupt(){
function vidstrcpy (line 77) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 87) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 102) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 110) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 124) | unsigned char cgetc(){ //wait for key press
function kbhit (line 135) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 149) | void settone(int value){
function generatetone (line 156) | void generatetone(int tone, int range, int volume){
function setnoise (line 162) | void setnoise(int value){
function generatenoise (line 172) | void generatenoise(int range, int volume){
function main (line 178) | void main(){
FILE: src/debug/conio.c
function main (line 36) | void main(void)
FILE: src/debug/conio0.c
function main (line 19) | int main()
FILE: src/debug/conio_test.c
function main (line 3) | int main()
FILE: src/debug/cpc_test.c
function main (line 6) | int main(void)
FILE: src/debug/cprintf.c
function main (line 12) | int main(void)
FILE: src/debug/debug_images.h
type ImageStruct (line 8) | struct ImageStruct
type Image (line 16) | typedef struct ImageStruct Image;
FILE: src/debug/empty42.c
function main (line 2) | int main()
FILE: src/debug/extern.c
function main (line 5) | int main(void)
FILE: src/debug/foo.c
function main (line 4) | int main(void)
FILE: src/debug/foo.h
type FooStruct (line 7) | struct FooStruct
type Foo (line 11) | typedef struct FooStruct Foo;
FILE: src/debug/fx.c
function main (line 4) | void main()
FILE: src/debug/gamate_conio_test.c
function waitForJoy (line 6) | void waitForJoy(void)
function main (line 12) | int main(void)
FILE: src/debug/gamate_conio_test2.c
function waitForJoy (line 8) | void waitForJoy(void)
function display_3_rows (line 14) | void display_3_rows(uint8_t x_offset, uint8_t y_offset)
function main (line 30) | int main(void)
FILE: src/debug/gb_main.c
function main (line 4) | int main(void)
FILE: src/debug/gcc_class.c
type ParentStruct (line 7) | struct ParentStruct
type parent_t (line 13) | typedef struct ParentStruct parent_t;
type ChildStruct (line 15) | struct ChildStruct
type child_t (line 22) | typedef struct ChildStruct child_t;
function _set_parent_data (line 25) | void _set_parent_data(struct ParentStruct* this, int val)
function _set_child_data (line 31) | void _set_child_data(child_t* this, int val)
function main (line 37) | int main()
FILE: src/debug/gcc_simple_class.c
type ClassStruct (line 7) | struct ClassStruct
type class_t (line 12) | typedef struct ClassStruct class_t;
function _set_data (line 15) | void _set_data(struct ClassStruct* this, int val)
function main (line 22) | int main()
FILE: src/debug/gcc_simplest_class.c
type ClassStruct (line 7) | struct ClassStruct
type class_t (line 11) | typedef struct ClassStruct class_t;
function _print_42 (line 14) | void _print_42(void)
function main (line 21) | int main()
FILE: src/debug/gcc_test.c
function main (line 17) | int main(void)
FILE: src/debug/generic_psg.c
function main (line 3) | int main(void)
FILE: src/debug/getk_test.c
function main (line 3) | int main()
FILE: src/debug/h0comx.c
function main (line 1) | int main()
FILE: src/debug/hello_cgetc.c
function main (line 4) | int main(){
FILE: src/debug/hello_conio.c
function main (line 2) | int main()
FILE: src/debug/hello_fputc.c
function main (line 3) | int main()
FILE: src/debug/hello_sdl.c
function drawRandomPixels (line 7) | void drawRandomPixels() {
function main (line 22) | int main(int argc, char* argv[]) {
FILE: src/debug/helloworld.c
function main (line 3) | int main()
FILE: src/debug/helloworld_background_color.c
function main (line 10) | int main()
FILE: src/debug/helloworld_getchar.c
function main (line 2) | int main(){
FILE: src/debug/htron.c
function myTextOut (line 1363) | void myTextOut(int x, int y, const char* text)
function myTextOutXY (line 1400) | void myTextOutXY(int x, int y, const char* text)
function myPlot (line 1412) | void myPlot(short x, short y, short pmode)
function myCls (line 1474) | void myCls() // clear the screen
function myPoint (line 1490) | int myPoint(short x, short y)
function myWait (line 1517) | void myWait(uint msec)
function uint (line 1542) | uint myKeyPressed(uint scancode)
function InitPlayfield (line 1555) | void InitPlayfield()
function MovePlayers (line 1644) | void MovePlayers()
function AIComputerPlayer (line 1701) | void AIComputerPlayer(int *x, int *y, int *dir)
function AICheckDistanceEast (line 1806) | int AICheckDistanceEast(int x,int y,int maxDistanceToCheck)
function AICheckDistanceWest (line 1817) | int AICheckDistanceWest(int x,int y,int maxDistanceToCheck)
function AICheckDistanceNorth (line 1828) | int AICheckDistanceNorth(int x,int y,int maxDistanceToCheck)
function AICheckDistanceSouth (line 1839) | int AICheckDistanceSouth(int x,int y,int maxDistanceToCheck)
function DisplayGameType (line 1851) | void DisplayGameType(int gameType)
function DoWhenProgramTerminates (line 1875) | void DoWhenProgramTerminates()
function main (line 1887) | void main()
FILE: src/debug/hwcomx.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 69) | void disableinterrupt(){
function enableinterrupt (line 76) | void enableinterrupt(){
function gotoxycomx (line 83) | void gotoxycomx(unsigned int vidmem, unsigned char column){
function gotoxy (line 104) | void gotoxy(unsigned char x, unsigned char y){
function vidstrcpy (line 110) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 122) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 137) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 145) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 161) | unsigned char cgetc(){ //wait for key press
function kbhit (line 175) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 191) | void settone(int value){
function generatetone (line 198) | void generatetone(int tone, int range, int volume){
function setnoise (line 204) | void setnoise(int value){
function generatenoise (line 214) | void generatenoise(int range, int volume){
function bgcolor (line 220) | unsigned char bgcolor(unsigned char color){
function textcolordefinition (line 250) | void textcolordefinition(unsigned char definition){
function monochrome (line 273) | void monochrome(unsigned char mono){
function rand (line 291) | unsigned short int rand(){
function main (line 345) | void main(){
FILE: src/debug/hwcomx1.c
function shapechar (line 65) | void shapechar(unsigned char * shapelocation, int number)
function setvideobase (line 96) | void setvideobase(){
function vidstrcpy (line 103) | void vidstrcpy(unsigned char * vidmem,char * text){ //write to video memory
function vidclr (line 113) | void vidclr(unsigned char * vidmem, int vidlen){ //write 0's to video me...
function vidchar (line 128) | void vidchar(int vidmem, int character){ //write character to vidmem loc...
function getlastkey (line 136) | int getlastkey(){ //get last key
function getkey (line 148) | int getkey(){ //get key value if currently pressed
function settone (line 158) | void settone(int value){
function generatetone (line 165) | void generatetone(int tone, int range, int volume){
function main (line 174) | void main(){
FILE: src/debug/hwcomx2.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 63) | void disableinterrupt(){
function enableinterrupt (line 70) | void enableinterrupt(){
function vidstrcpy (line 77) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 87) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 102) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 110) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 126) | unsigned char cgetc(){ //wait for key press
function kbhit (line 140) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 156) | void settone(int value){
function generatetone (line 163) | void generatetone(int tone, int range, int volume){
function setnoise (line 169) | void setnoise(int value){
function generatenoise (line 179) | void generatenoise(int range, int volume){
function main (line 185) | void main(){
FILE: src/debug/hwcomx_gotoxy.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 63) | void disableinterrupt(){
function enableinterrupt (line 70) | void enableinterrupt(){
function gotoxycomx (line 77) | void gotoxycomx(unsigned short vidmem, unsigned char column)
function vidstrcpy (line 108) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 118) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 133) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 141) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 157) | unsigned char cgetc(){ //wait for key press
function kbhit (line 171) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 187) | void settone(int value){
function generatetone (line 194) | void generatetone(int tone, int range, int volume){
function setnoise (line 200) | void setnoise(int value){
function generatenoise (line 210) | void generatenoise(int range, int volume){
function main (line 216) | void main(){
FILE: src/debug/hwcomx_gotoxy2.c
function putcomx (line 9) | void putcomx(unsigned char c, unsigned int r13val){
function shapechar (line 25) | void shapechar(char * shapelocation, int number)
function setvideobase (line 56) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 69) | void disableinterrupt(){
function enableinterrupt (line 76) | void enableinterrupt(){
function gotoxycomx (line 83) | void gotoxycomx(unsigned int vidmem, unsigned char column){
function vidstrcpy (line 111) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 121) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 136) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 144) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 160) | unsigned char cgetc(){ //wait for key press
function kbhit (line 174) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 190) | void settone(int value){
function generatetone (line 197) | void generatetone(int tone, int range, int volume){
function setnoise (line 203) | void setnoise(int value){
function generatenoise (line 213) | void generatenoise(int range, int volume){
function main (line 219) | void main(){
FILE: src/debug/hwcomx_pp_debug.c
function setvideobase (line 4) | void setvideobase(){
function vidstrcpy (line 11) | void vidstrcpy(unsigned char * vidmem,char * text){ //write to video memory
function vidclr (line 21) | void vidclr(unsigned char * vidmem, int vidlen){ //write 0's to video me...
function main (line 42) | int main(void)
FILE: src/debug/hwpecom.c
function putpecom (line 9) | void putpecom(unsigned char c, unsigned int r13val){
function shapechar (line 26) | void shapechar(char * shapelocation, int number)
function setvideobase (line 61) | void setvideobase(unsigned int vidmem){
function disableinterrupt (line 74) | void disableinterrupt(){
function enableinterrupt (line 81) | void enableinterrupt(){
function gotoxypecom (line 88) | void gotoxypecom(unsigned int vidmem){
function gotoxy (line 100) | void gotoxy(unsigned char x, unsigned char y){
function vidstrcpy (line 104) | void vidstrcpy(unsigned int vidmem,char * text){ //write to video memory
function vidclr (line 120) | void vidclr(unsigned int vidmem, int vidlen){ //write 0's to video memory
function vidchar (line 139) | void vidchar(unsigned int vidmem, int character){ //write character to v...
function getkey (line 151) | unsigned char getkey(){ //get key value if pressed, otherwise return 0
function cgetc (line 180) | unsigned char cgetc(){ //wait for key press
function kbhit (line 208) | int kbhit(){ //return 1 if a key is pressed, 0 if not
function settone (line 232) | void settone(int value){
function generatetone (line 239) | void generatetone(int tone, int range, int volume){
function setnoise (line 245) | void setnoise(int value){
function generatenoise (line 254) | void generatenoise(int range, int volume){
function bgcolor (line 260) | unsigned char bgcolor(unsigned char color){
function textcolordefinition (line 290) | void textcolordefinition(unsigned char definition){
function monochrome (line 313) | void monochrome(unsigned char mono){
function main (line 331) | void main(){
FILE: src/debug/intern.c
function main (line 5) | int main(void)
FILE: src/debug/lcc1802_test.c
function main (line 59) | void main(){
FILE: src/debug/lcc1802_test_NEW.c
function main (line 60) | void main(){
FILE: src/debug/litterals.c
function main (line 5) | int main(void)
FILE: src/debug/m5.c
function main (line 3) | int main()
FILE: src/debug/main_use_amiga_core.c
function interruptHandler (line 6) | static __attribute__((interrupt)) void interruptHandler() {
function main (line 13) | int main() {
FILE: src/debug/mc10_test1.c
function main (line 19) | int main(void)
FILE: src/debug/mc10_test2.c
function main (line 21) | int main(void)
FILE: src/debug/mc10_test3.c
function main (line 23) | int main(void)
FILE: src/debug/mc10_test4.c
function main (line 50) | int main(void)
FILE: src/debug/msx_test.c
function main (line 2) | int main()
FILE: src/debug/msx_test2.c
function main (line 9) | int main(void)
FILE: src/debug/ncurses_test.c
function main (line 15) | int main(void)
FILE: src/debug/nes_bgcolor.c
function main (line 3) | int main()
FILE: src/debug/psg_test.c
function _ping_sound (line 20) | void _ping_sound(uint8_t freq)
function _explosion_sound (line 39) | void _explosion_sound(uint8_t freq)
function ZAP_SOUND (line 66) | void ZAP_SOUND(void) {
function main (line 88) | int main()
FILE: src/debug/psg_test2.c
function main (line 3) | int main(void)
FILE: src/debug/psg_test3.c
function _ping_sound (line 4) | void _ping_sound(uint8_t freq)
function _XL_ZAP_SOUND (line 19) | void _XL_ZAP_SOUND(void)
function _explosion_sound (line 38) | void _explosion_sound(uint8_t freq)
function main (line 57) | int main(void)
FILE: src/debug/rand.c
function main (line 4) | int main(void)
FILE: src/debug/struct.c
type Test (line 3) | struct Test {
type Test (line 9) | struct Test
type Test (line 11) | struct Test
function main (line 15) | void main(void) {
FILE: src/debug/testBitwiseAnd.c
function main (line 3) | int main()
FILE: src/debug/test_gb.c
function main (line 3) | int main(void)
FILE: src/debug/test_getk.c
function main (line 4) | int main() {
FILE: src/debug/test_joy.c
function main (line 6) | int main(void)
FILE: src/debug/test_joy2.c
function _XL_ZAP_SOUND (line 37) | void _XL_ZAP_SOUND(void)
function fire_pressed_after_time (line 57) | uint8_t fire_pressed_after_time(void)
function short_sleep (line 63) | void short_sleep(void)
function main (line 71) | int main(void)
FILE: src/debug/test_sleep.c
function main (line 4) | int main(void)
FILE: src/debug/test_vsync.c
function main (line 16) | int main()
FILE: src/debug/testc16.c
function main (line 5) | int main(void)
FILE: src/debug/tgi_lynx_black_test.c
function main (line 5) | int main(void)
FILE: src/debug/tgi_lynx_cgetc_test.c
function main (line 7) | int main(void)
FILE: src/debug/tgi_lynx_test.c
function main (line 5) | int main(void)
FILE: src/debug/ti99.c
function main (line 5) | int main(void)
FILE: src/debug/ti99_test.c
function main (line 19) | int main(void)
FILE: src/debug/unsigned_right_shift.c
function main (line 7) | int main(void)
FILE: src/debug/wait_for_key.c
function wait_for_key (line 5) | void wait_for_key(void)
function main (line 16) | int main(void)
FILE: src/debug/x07.c
function send_t6834 (line 1) | void send_t6834(char data) __stdc
function x_circle (line 37) | void x_circle(char x,y,r)
function x_ramwrite (line 48) | void x_ramwrite(char data,unsigned int addr)
function main (line 67) | int main(void)
FILE: src/examples/animate/main.c
function main (line 39) | int main(void)
FILE: src/examples/background/main.c
function main (line 77) | int main(void)
FILE: src/examples/blob/main.c
type BlobStruct (line 79) | struct BlobStruct
type Blob (line 90) | typedef struct BlobStruct Blob;
function PRINT_CENTERED_ON_ROW (line 93) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function display_player_right (line 102) | void display_player_right(void)
function display_player_left (line 121) | void display_player_left(void)
function display_enemy_right (line 141) | void display_enemy_right(void)
function display_enemy_left (line 160) | void display_enemy_left(void)
function display_boss_right (line 180) | void display_boss_right(void)
function display_boss_left (line 199) | void display_boss_left(void)
function display_player (line 219) | void display_player(void)
function display_enemy (line 233) | void display_enemy(void)
function display_boss (line 246) | void display_boss(void)
function draw_level (line 259) | void draw_level(void)
function handle_player (line 269) | void handle_player(void)
function main (line 288) | int main(void)
FILE: src/examples/boundary/main.c
function main (line 27) | int main(void)
FILE: src/examples/characters/main.c
function main (line 54) | int main(void)
FILE: src/examples/color/main.c
function main (line 95) | int main(void)
FILE: src/examples/graphics/main.c
function main (line 101) | int main(void)
FILE: src/examples/hello/main.c
function main (line 27) | int main(void)
FILE: src/examples/input/main.c
function UPDATE_STATE (line 33) | void UPDATE_STATE(char *Text)
function main (line 39) | int main(void)
FILE: src/examples/invaders/main.c
function redraw (line 228) | void redraw(void)
function MOVE_PLAYER (line 247) | void MOVE_PLAYER(void) {}
function MOVE_PLAYER (line 249) | void MOVE_PLAYER(void)
function main (line 291) | int main(void)
FILE: src/examples/matrix/main.c
function main (line 61) | int main(void)
FILE: src/examples/numbers/main.c
function main (line 33) | int main(void)
FILE: src/examples/palette/main.c
function main (line 95) | int main(void)
FILE: src/examples/random/main.c
function main (line 29) | int main(void)
FILE: src/examples/sleep/main.c
function PRINT_CENTERED_ON_ROW (line 31) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function main (line 42) | int main(void)
FILE: src/examples/sounds/main.c
function PRINT_CENTERED_ON_ROW (line 34) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function main (line 44) | int main(void)
FILE: src/examples/target/main.c
function main (line 43) | int main(void)
FILE: src/examples/text/main.c
function PRINT_CENTERED_ON_ROW (line 32) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function print_text (line 61) | void print_text(uint8_t x, uint8_t y, const char *str)
function small_pause (line 83) | void small_pause(void)
function main (line 89) | int main(void)
FILE: src/examples/zombies/main.c
function zombie_display (line 48) | void zombie_display(void)
function die (line 66) | void die(void)
function main (line 83) | int main(void)
FILE: src/games/bomber/main.c
function PRINT_CENTERED_ON_ROW (line 262) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function displayGameOverMessage (line 271) | void displayGameOverMessage(void)
function intro (line 382) | void intro(void)
function initialize_game (line 427) | void initialize_game(void)
function initialize_buildings (line 436) | void initialize_buildings(void)
function initialize_level (line 477) | void initialize_level(void)
function handle_non_active_bomb (line 520) | void handle_non_active_bomb(void)
function handle_active_bomb (line 549) | void handle_active_bomb(void)
function handle_plane_movement (line 607) | void handle_plane_movement(void)
function level_completed (line 662) | void level_completed(void)
function plane_crash (line 694) | void plane_crash(void)
function main (line 746) | int main(void)
FILE: src/games/chase/character.h
type CharacterStruct (line 30) | struct CharacterStruct
type Character (line 42) | typedef struct CharacterStruct Character;
FILE: src/games/chase/item.h
type ItemStruct (line 9) | struct ItemStruct
type Item (line 19) | typedef struct ItemStruct Item;
FILE: src/games/chase/settings.h
type ImageStruct (line 31) | struct ImageStruct
type Image (line 39) | typedef struct ImageStruct Image;
FILE: src/games/chase/split_files/bullet.c
function handle_chasing_bullet (line 82) | void handle_chasing_bullet(void)
function handle_bullet (line 98) | void handle_bullet(void)
function checkBullet (line 124) | void checkBullet(Character *bulletPtr)
function bulletVsGhost (line 130) | void bulletVsGhost(Character * bulletPtr,
function bulletVsGhosts (line 142) | void bulletVsGhosts(Character * bulletPtr)
function bulletVsSkull (line 151) | void bulletVsSkull(register Character *bulletPtr)
function _moveBullet (line 175) | void _moveBullet(register Character *bulletPtr)
function destroyHorizontalMissile (line 198) | void destroyHorizontalMissile(Character * horizontalMissilePtr)
function moveBullet (line 211) | void moveBullet(register Character * bulletPtr)
FILE: src/games/chase/split_files/character.c
function _blink_draw (line 55) | void _blink_draw(uint8_t x, uint8_t y, Image * image, uint8_t *blinkCoun...
function _DRAW_PLAYER (line 71) | void _DRAW_PLAYER(void)
function displayCharacter (line 82) | void displayCharacter(register Character * characterPtr)
function deleteCharacter (line 87) | void deleteCharacter(Character * characterPtr)
function DRAW_BROKEN_BRICK (line 94) | void DRAW_BROKEN_BRICK(uint8_t x, uint8_t y)
function playerDies (line 109) | void playerDies(void)
function playerKilledBy (line 120) | uint8_t playerKilledBy(Character *enemyPtr)
function initializeCharacter (line 126) | void initializeCharacter(register Character* characterPtr, uint8_t x, ui...
function isCharacterAtLocation (line 135) | uint8_t isCharacterAtLocation(uint8_t x, uint8_t y, Character * characte...
function wallReached (line 141) | uint8_t wallReached(register Character *characterPtr)
function ghostDies (line 148) | void ghostDies(Character * ghostPtr)
function checkBombsVsGhost (line 190) | void checkBombsVsGhost(register Character * ghostPtr)
function sameLocationAsAnyLocation (line 218) | uint8_t sameLocationAsAnyLocation(uint8_t x, uint8_t y, Character *chara...
function safeLocation (line 239) | uint8_t safeLocation(uint8_t x, uint8_t y)
function relocateCharacter (line 247) | void relocateCharacter(register Character * characterPtr)
function innerWallReached (line 265) | uint8_t innerWallReached(register Character *characterPtr)
function horizWallsReached (line 270) | uint8_t horizWallsReached(void)
FILE: src/games/chase/split_files/end_screen.c
function dance (line 31) | void dance(Character * characterPtr)
function gameCompleted (line 62) | void gameCompleted(void)
FILE: src/games/chase/split_files/game_text.c
function PRINT_CENTERED_ON_ROW (line 93) | void PRINT_CENTERED_ON_ROW(uint8_t row, const char *Text)
function printKillTheSkull (line 100) | void printKillTheSkull(void)
function displayStatsTitles (line 112) | void displayStatsTitles(void)
function printGunsStats (line 122) | void printGunsStats(void)
function printLevelStats (line 135) | void printLevelStats(void)
function printGhostCountStats (line 149) | void printGhostCountStats(void)
function printLivesStats (line 161) | void printLivesStats(void)
function printPressKeyToStart (line 175) | void printPressKeyToStart(void)
function displayScore (line 183) | void displayScore(void)
function printLevel (line 191) | void printLevel(void)
function _printScoreOnRow (line 201) | void _printScoreOnRow(uint8_t row, uint16_t score)
function _printScore (line 207) | void _printScore(uint16_t score)
function gameCompleted (line 215) | void gameCompleted(void)
function printVictoryMessage (line 224) | void printVictoryMessage(void)
function printDefeatMessage (line 233) | void printDefeatMessage(void)
function printGameOver (line 242) | void printGameOver(void)
function _printCrossChase (line 279) | void _printCrossChase(void)
function printHints (line 296) | void printHints(void)
function printStartMessage (line 358) | void printStartMessage(void)
FILE: src/games/chase/split_files/ghost.c
function computeGhostSlowDown (line 41) | uint16_t computeGhostSlowDown(void)
function decreaseGhostLevel (line 56) | void decreaseGhostLevel(void)
function displayBombs (line 66) | void displayBombs(void)
function firstAlive (line 78) | uint8_t firstAlive(void)
FILE: src/games/chase/split_files/horizontal_missile.c
function _playerInArrowRange (line 27) | uint8_t _playerInArrowRange(void)
function handle_from_left (line 32) | void handle_from_left(void)
function handle_from_right (line 62) | void handle_from_right(void)
function handle_missiles (line 92) | void handle_missiles(void)
FILE: src/games/chase/split_files/init_images.c
function INIT_IMAGES (line 54) | void INIT_IMAGES(void)
FILE: src/games/chase/split_files/item.c
function itemReached (line 69) | void itemReached(Character * itemPtr)
function relocateItem (line 79) | void relocateItem(Character * itemPtr)
function _commonPowerUpEffect (line 94) | void _commonPowerUpEffect(void)
function powerUpEffect (line 102) | void powerUpEffect(void)
function _gunEffect (line 108) | void _gunEffect(void)
function gunEffect (line 117) | void gunEffect(void)
function powerUpEffect (line 124) | void powerUpEffect(void)
function gunEffect (line 132) | void gunEffect(void)
function extraPointsEffect (line 143) | void extraPointsEffect(void)
function handle_item (line 149) | void handle_item(register Item *itemPtr)
function handle_count_down (line 174) | void handle_count_down(uint8_t * activeItemFlagPtr, uint8_t * countDownPtr)
function reducePowerUpsCoolDowns (line 193) | void reducePowerUpsCoolDowns(void)
function reducePowerUpsCoolDowns (line 201) | void reducePowerUpsCoolDowns(void)
function powerUp2Effect (line 212) | void powerUp2Effect(void)
function _freezeEffect (line 218) | void _freezeEffect(void)
function freezeEffect (line 225) | void freezeEffect(void)
function extraLifeEffect (line 232) | void extraLifeEffect(void)
function _invincibilityEffect (line 240) | void _invincibilityEffect(void)
function invincibilityEffect (line 246) | void invincibilityEffect(void)
function superEffect (line 252) | void superEffect(void)
function confuseEffect (line 260) | void confuseEffect(void)
function zombieEffect (line 267) | void zombieEffect(void)
function chaseEffect (line 284) | void chaseEffect(void)
FILE: src/games/chase/split_files/level.c
function DRAW_HORIZONTAL_LINE (line 120) | void DRAW_HORIZONTAL_LINE(uint8_t x,uint8_t y, uint8_t length)
function DRAW_VERTICAL_LINE (line 129) | void DRAW_VERTICAL_LINE(uint8_t x,uint8_t y, uint8_t length)
function updateInnerWallVerticalData (line 140) | void updateInnerWallVerticalData(void)
function oneMissileLevel (line 162) | uint8_t oneMissileLevel(void)
function rocketLevel (line 167) | uint8_t rocketLevel(void)
function missileLevel (line 172) | uint8_t missileLevel(void)
function bossLevel (line 177) | uint8_t bossLevel(void)
function horizWallsLevel (line 182) | uint8_t horizWallsLevel(void)
function initializeAwayFromWall (line 187) | void initializeAwayFromWall(Character * characterPtr, uint8_t x, uint8_t...
function spiral (line 211) | void spiral(register Character *characterPtr)
function fillLevelWithCharacters (line 264) | void fillLevelWithCharacters(void)
FILE: src/games/chase/split_files/main.c
function resetItems (line 103) | void resetItems(void)
function constructItems (line 126) | void constructItems(void)
function initialScreen (line 146) | void initialScreen(void)
function handle_special_triggers (line 162) | void handle_special_triggers(void)
function DO_DEBUG_ITEMS (line 175) | void DO_DEBUG_ITEMS(void)
FILE: src/games/chase/split_files/move_player.c
function MOVE_PLAYER (line 73) | void MOVE_PLAYER(void)
function MOVE_PLAYER (line 77) | void MOVE_PLAYER(void)
FILE: src/games/chase/split_files/rocket.c
function handle_rockets (line 20) | void handle_rockets(void)
FILE: src/games/chase/split_files/skull.c
function computeSkullSlowDown (line 61) | uint16_t computeSkullSlowDown(void)
FILE: src/games/chase/split_files/strategy.c
function moveCharacter (line 49) | uint8_t moveCharacter(register uint8_t *hunterOffsetPtr, register uint8_...
function chaseXStrategy (line 68) | uint8_t chaseXStrategy(Character* hunterPtr, Character* preyPtr)
function chaseYStrategy (line 95) | uint8_t chaseYStrategy(Character* hunterPtr, Character* preyPtr)
function moveTowardCharacter (line 128) | uint8_t moveTowardCharacter(Character* preyPtr, Character *hunterPtr, ui...
function moveTowardCharacter (line 148) | uint8_t moveTowardCharacter(Character* preyPtr, Character *hunterPtr)
function moveTowardCharacter (line 165) | uint8_t moveTowardCharacter(Character *hunterPtr)
function moveTowardCharacter (line 181) | void moveTowardCharacter(Character *hunterPtr)
function computeStrategy (line 196) | void computeStrategy(void)
function chaseCharacter (line 220) | void chaseCharacter(void)
FILE: src/games/horde/main.c
type ItemStruct (line 308) | struct ItemStruct
type Item (line 320) | typedef struct ItemStruct Item;
type Missile (line 321) | typedef struct ItemStruct Missile;
function PRINT_CENTERED_ON_ROW (line 354) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function sleep_and_wait_for_input (line 367) | void sleep_and_wait_for_input(void)
function display_power_up_counter (line 382) | void display_power_up_counter(void)
function display_zombie_counter (line 391) | void display_zombie_counter(void)
function display_remaining_arrows (line 401) | void display_remaining_arrows(void)
function display_remaining_arrows (line 417) | void display_remaining_arrows(void)
function recharge_arrows (line 424) | void recharge_arrows(uint8_t value)
function display_score (line 435) | void display_score(void)
function display_lives (line 446) | void display_lives(uint8_t color)
function display_bow (line 470) | void display_bow(void)
function display_zombie (line 478) | void display_zombie(void)
function display_zombie (line 559) | void display_zombie(void)
function increase_score (line 666) | void increase_score(uint8_t value)
function recharge_effect (line 674) | void recharge_effect(void)
function find_inactive (line 729) | uint8_t find_inactive(Item* itemArray)
function display_power_ups (line 746) | void display_power_ups(void)
function display_power_ups (line 815) | void display_power_ups(void)
function display_power_ups (line 883) | void display_power_ups(void)
function power_up_effect (line 962) | void power_up_effect(void)
function extra_points_effect (line 1058) | void extra_points_effect(void)
function wall_effect (line 1064) | void wall_effect(void)
function display_zombies (line 1092) | void display_zombies(void)
function freeze_effect (line 1104) | void freeze_effect(void)
function zombie_effect (line 1114) | void zombie_effect(void)
function beam_effect (line 1126) | void beam_effect(void)
function drop_item (line 1243) | void drop_item(register Item *item, uint8_t max_counter)
function handle_item (line 1263) | void handle_item(register Item* item)
function find_random_zombie (line 1347) | uint8_t find_random_zombie(uint8_t value)
function activate_zombie (line 1366) | void activate_zombie(void)
function spawn_minion (line 1387) | void spawn_minion(void)
function spawn_boss (line 1396) | void spawn_boss(void)
function update_zombie_speed (line 1436) | void update_zombie_speed(void)
function display_wall (line 1449) | void display_wall(uint8_t y)
function display_red_zombie (line 1466) | void display_red_zombie(void)
function handle_item_drop (line 1482) | void handle_item_drop(void)
function respawn (line 1540) | void respawn(void)
function zombie_dies (line 1559) | void zombie_dies(void)
function handle_arrows (line 1624) | void handle_arrows(void)
function push_zombie (line 1704) | void push_zombie(void)
function handle_zombie_collisions (line 1780) | void handle_zombie_collisions(void)
function move_zombies (line 1889) | void move_zombies(void)
function fire (line 1958) | void fire(void)
function initialize_zombie_at_level_restart (line 2158) | void initialize_zombie_at_level_restart(void)
function clear_top_border (line 2410) | void clear_top_border(void)
function display_cleared (line 2469) | void display_cleared(void)
function zombie_animation (line 2514) | void zombie_animation(void)
function main (line 2592) | int main(void)
FILE: src/games/shoot/character.h
type CharacterStruct (line 31) | struct CharacterStruct
type Character (line 43) | typedef struct CharacterStruct Character;
FILE: src/games/shoot/item.h
type ItemStruct (line 31) | struct ItemStruct
type Item (line 41) | typedef struct ItemStruct Item;
FILE: src/games/shoot/settings.h
type ImageStruct (line 45) | struct ImageStruct
type Image (line 53) | typedef struct ImageStruct Image;
FILE: src/games/shoot/split_files/bullet.c
function availableBullet (line 89) | uint8_t availableBullet(void)
function not_stacked (line 104) | uint8_t not_stacked(uint8_t candidate_x, uint8_t candidate_y)
function handle_bomb (line 119) | void handle_bomb(void)
function handle_bullet_fire (line 177) | void handle_bullet_fire(uint8_t bulletIndex)
function handle_bullet (line 245) | void handle_bullet(uint8_t bulletIndex)
function handle_bullets (line 256) | void handle_bullets(void)
function pushGhost (line 274) | void pushGhost(Character * ghostPtr, uint8_t bulletDirection)
function checkBullets (line 295) | void checkBullets(void)
function checkBullet (line 306) | void checkBullet(Character *bulletPtr, uint8_t bulletDirection)
function restoreRocketsOnWall (line 320) | void restoreRocketsOnWall(uint8_t x, uint8_t y)
function checkBulletVsGhost (line 344) | void checkBulletVsGhost(Character * bulletPtr,
function checkBulletVsGhosts (line 396) | void checkBulletVsGhosts(Character * bulletPtr, uint8_t bulletDirection)
function checkBulletVsSkull (line 410) | void checkBulletVsSkull(register Character *bulletPtr, register Characte...
function checkBulletVsSkulls (line 439) | void checkBulletVsSkulls(Character *bulletPtr)
function _moveBullet (line 453) | void _moveBullet(register Character *bulletPtr, uint8_t bulletDirection)
function destroyHorizontalMissile (line 475) | void destroyHorizontalMissile(Character * horizontalMissilePtr)
function moveBullet (line 488) | void moveBullet(register Character * bulletPtr, uint8_t bulletDirection)
FILE: src/games/shoot/split_files/character.c
function _DRAW_PLAYER (line 64) | void _DRAW_PLAYER(void)
function _blink_draw (line 87) | void _blink_draw(uint8_t x, uint8_t y, Image * image, uint8_t *blinkCoun...
function displayCharacter (line 103) | void displayCharacter(register Character * characterPtr)
function deleteCharacter (line 108) | void deleteCharacter(Character * characterPtr)
function increasePoints (line 123) | void increasePoints(uint8_t score)
function playerDies (line 130) | void playerDies(void)
function playerKilledBy (line 140) | uint8_t playerKilledBy(Character *enemyPtr)
function handle_player_killed (line 145) | uint8_t handle_player_killed(Character *enemyPtr)
function initializeCharacter (line 155) | void initializeCharacter(register Character* characterPtr, uint8_t x, ui...
function isCharacterAtLocation (line 168) | uint8_t isCharacterAtLocation(uint8_t x, uint8_t y, Character * characte...
function onWall (line 174) | uint8_t onWall(uint8_t x, uint8_t y)
function wallReached (line 180) | uint8_t wallReached(Character *characterPtr)
function sameLocationAsAnyActiveLocation (line 186) | uint8_t sameLocationAsAnyActiveLocation(uint8_t x, uint8_t y, Character ...
function safeLocation (line 209) | uint8_t safeLocation(uint8_t x, uint8_t y)
function relocateNearBy (line 215) | void relocateNearBy(register Character * characterPtr)
function innerVerticalWallReached (line 231) | uint8_t innerVerticalWallReached(uint8_t x, uint8_t y)
function innerHorizontalWallReached (line 245) | uint8_t innerHorizontalWallReached(uint8_t x, uint8_t y)
FILE: src/games/shoot/split_files/end_screen.c
function gameCompleted (line 40) | void gameCompleted(void)
FILE: src/games/shoot/split_files/game_text.c
function PRINT_CENTERED_ON_ROW (line 77) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function print_destroy_missiles (line 85) | void print_destroy_missiles(uint8_t row)
function printKillTheSkulls (line 98) | void printKillTheSkulls(void)
function displayStatsTitles (line 118) | void displayStatsTitles(void)
function displayStats (line 126) | void displayStats(void)
function printGunsStats (line 155) | void printGunsStats(void)
function printFirePowerStats (line 184) | void printFirePowerStats(void)
function printLevelStats (line 210) | void printLevelStats(void)
function printGhostCountStats (line 219) | void printGhostCountStats(void)
function printLivesStats (line 231) | void printLivesStats(void)
function displayScoreStats (line 240) | void displayScoreStats(void)
function printLevel (line 248) | void printLevel(void)
function gameCompleted (line 292) | void gameCompleted(void)
function printVictoryMessage (line 303) | void printVictoryMessage(void)
function printDefeatMessage (line 312) | void printDefeatMessage(void)
function printGameOver (line 320) | void printGameOver(void)
function _printCrossShoot (line 329) | void _printCrossShoot(void)
function printHints (line 338) | void printHints(void)
function printStartMessage (line 366) | void printStartMessage(void)
function handleLevelBonus (line 401) | void handleLevelBonus(uint16_t bonus)
function countDiscoveredSecrets (line 427) | uint8_t countDiscoveredSecrets(void)
function printAchievements (line 461) | void printAchievements(void)
FILE: src/games/shoot/split_files/ghost.c
function checkBombsVsGhost (line 54) | void checkBombsVsGhost(register Character * ghostPtr)
function checkBombsVsGhosts (line 70) | void checkBombsVsGhosts(void)
function spawnGhost (line 81) | void spawnGhost(Character *ghostPtr, uint8_t ghostIndex)
function ghostDies (line 130) | void ghostDies(register Character * ghostPtr)
function ghostDiesAndSpawns (line 150) | void ghostDiesAndSpawns(Character * ghostPtr)
function computeGhostSlowDown (line 160) | uint16_t computeGhostSlowDown(void)
function decreaseGhostLevel (line 174) | void decreaseGhostLevel(void)
function displayBombs (line 183) | void displayBombs(void)
function sameLocationAsAnyGhostLocation (line 197) | uint8_t sameLocationAsAnyGhostLocation(uint8_t x, uint8_t y, Character *...
FILE: src/games/shoot/split_files/horizontal_missile.c
function _playerInArrowRange (line 45) | uint8_t _playerInArrowRange(void)
function _handle_from_the_left (line 51) | void _handle_from_the_left(void)
function _handle_from_the_right (line 85) | void _handle_from_the_right(void)
function handle_horizontal_missiles (line 120) | void handle_horizontal_missiles(void)
FILE: src/games/shoot/split_files/init_images.c
function INIT_IMAGES (line 50) | void INIT_IMAGES(void)
FILE: src/games/shoot/split_files/item.c
function itemReached (line 118) | void itemReached(Character * itemPtr)
function relocateAwayFromWalls (line 128) | void relocateAwayFromWalls(Character * itemPtr)
function _freezeEffect (line 142) | void _freezeEffect(void)
function _increaseBullets (line 151) | void _increaseBullets(uint8_t bullets)
function fireChargeEffect (line 168) | void fireChargeEffect(void)
function bombChargeEffect (line 177) | void bombChargeEffect(void)
function calmDownEffect (line 194) | void calmDownEffect(void)
function _firePowerEffect (line 210) | void _firePowerEffect(void)
function firePowerEffect (line 234) | void firePowerEffect(void)
function extraPointsEffect (line 241) | void extraPointsEffect(void)
function handle_item (line 260) | void handle_item(register Item *itemPtr)
function handle_count_down (line 290) | void handle_count_down(uint8_t * flagPtr, uint8_t * countDownPtr)
function reduceItemCoolDowns (line 306) | void reduceItemCoolDowns(void)
function freezeEffect (line 316) | void freezeEffect(void)
function extraLifeEffect (line 323) | void extraLifeEffect(void)
function _invincibilityEffect (line 335) | void _invincibilityEffect(void)
function invincibilityEffect (line 346) | void invincibilityEffect(void)
function superEffect (line 361) | void superEffect(void)
function confuseEffect (line 371) | void confuseEffect(void)
function suicideEffect (line 410) | void suicideEffect(void)
function destroyerEffect (line 436) | void destroyerEffect(void)
function handle_destroyer_triggers (line 446) | void handle_destroyer_triggers(void)
function setSecret (line 464) | void setSecret(uint8_t secretIndex)
FILE: src/games/shoot/split_files/level.c
function DRAW_HORIZONTAL_LINE (line 126) | void DRAW_HORIZONTAL_LINE(uint8_t x,uint8_t y, uint8_t length)
function DRAW_VERTICAL_LINE (line 135) | void DRAW_VERTICAL_LINE(uint8_t x,uint8_t y, uint8_t length)
function updateInnerVerticalWall (line 144) | void updateInnerVerticalWall(void)
function updateInnerHorizontalWall (line 174) | void updateInnerHorizontalWall(void)
function innerHorizontalWallLevel (line 199) | uint8_t innerHorizontalWallLevel(void)
function innerVerticalWallLevel (line 206) | uint8_t innerVerticalWallLevel(void)
function oneMissileLevel (line 212) | uint8_t oneMissileLevel(void)
function missileLevel (line 223) | uint8_t missileLevel(void)
function bossLevel (line 229) | uint8_t bossLevel(void)
function initializeAwayFromWall (line 234) | void initializeAwayFromWall(Character * characterPtr, uint8_t x, uint8_t...
function spiral (line 243) | void spiral(register Character *characterPtr, uint8_t length)
function initializeBombs (line 274) | void initializeBombs(void)
function setNumberOfRocketsOnScreen (line 281) | void setNumberOfRocketsOnScreen(void)
function fillLevelWithCharacters (line 317) | void fillLevelWithCharacters(void)
FILE: src/games/shoot/split_files/main.c
function DO_DEBUG_ITEMS (line 99) | void DO_DEBUG_ITEMS(void)
function resetSecrets (line 212) | void resetSecrets(void)
function resetItems (line 223) | void resetItems(void)
function constructItems (line 267) | void constructItems(void)
function initialScreen (line 285) | void initialScreen(void)
function handle_special_triggers (line 307) | void handle_special_triggers(void)
function handle_player_killed_by_ghost (line 316) | void handle_player_killed_by_ghost(void)
function main (line 333) | int main(void)
FILE: src/games/shoot/split_files/move_player.c
function innerWallReached (line 51) | uint8_t innerWallReached(uint8_t x, uint8_t y)
function up_direction (line 63) | void up_direction(void)
function down_direction (line 70) | void down_direction(void)
function left_direction (line 76) | void left_direction(void)
function right_direction (line 82) | void right_direction(void)
function MOVE_PLAYER (line 114) | void MOVE_PLAYER(void) {}
function MOVE_PLAYER (line 116) | void MOVE_PLAYER(void)
function _set_old (line 177) | void _set_old(void)
function MOVE_PLAYER (line 259) | void MOVE_PLAYER(void) {}
function MOVE_PLAYER (line 261) | void MOVE_PLAYER(void)
FILE: src/games/shoot/split_files/rocket.c
function handle_rockets (line 41) | void handle_rockets(void)
FILE: src/games/shoot/split_files/skull.c
function computeSkullSlowDown (line 74) | uint16_t computeSkullSlowDown(void)
function computeSkullParameters (line 87) | void computeSkullParameters(void)
function skullDies (line 107) | void skullDies(register Character * skullPtr)
function handle_skull (line 134) | void handle_skull(Character *skullPtr, uint8_t strategy)
function handle_skulls (line 166) | void handle_skulls(void)
function checkBombsVsSkull (line 231) | void checkBombsVsSkull(register Character * skullPtr)
function checkBombsVsSkulls (line 256) | void checkBombsVsSkulls(void)
function displaySkulls (line 266) | void displaySkulls(void)
FILE: src/games/shoot/split_files/sleep.c
function SHORT_SLEEP (line 10) | void SHORT_SLEEP(uint8_t t)
FILE: src/games/shoot/split_files/strategy.c
function ghost_move_condition (line 62) | uint8_t ghost_move_condition(void)
function fast_ghost_move_condition (line 67) | uint8_t fast_ghost_move_condition(void)
function moveCharacter (line 74) | uint8_t moveCharacter(register uint8_t *hunterOffsetPtr, register uint8_...
function blindChaseCharacterXStrategy (line 92) | void blindChaseCharacterXStrategy(Character* hunterPtr)
function blindChaseCharacterYStrategy (line 108) | void blindChaseCharacterYStrategy(Character* hunterPtr)
function inHorizontalCorridor (line 124) | uint8_t inHorizontalCorridor(Character *hunterPtr)
function leftSide (line 129) | uint8_t leftSide(Character *characterPtr)
function rightSide (line 134) | uint8_t rightSide(Character *characterPtr)
function sameSide (line 139) | uint8_t sameSide(Character *hunterPtr)
function verticalWallMoveTowardCharacter (line 150) | void verticalWallMoveTowardCharacter(register Character *hunterPtr, uint...
function verticalWallMoveTowardCharacter (line 205) | void verticalWallMoveTowardCharacter(register Character *hunterPtr)
function inVerticalCorridor (line 265) | uint8_t inVerticalCorridor(Character *hunterPtr)
function topSide (line 270) | uint8_t topSide(Character *characterPtr)
function bottomSide (line 275) | uint8_t bottomSide(Character *characterPtr)
function sameHorizontalSide (line 280) | uint8_t sameHorizontalSide(Character *hunterPtr)
function horizontalWallMoveTowardCharacter (line 287) | void horizontalWallMoveTowardCharacter(register Character *hunterPtr, ui...
function horizontalWallMoveTowardCharacter (line 342) | void horizontalWallMoveTowardCharacter(register Character *hunterPtr)
function skullMoveTowardCharacter (line 400) | void skullMoveTowardCharacter(Character *hunterPtr, uint8_t strategy)
function computeStrategy (line 414) | void computeStrategy(void)
function chaseCharacter (line 434) | void chaseCharacter(void)
FILE: src/games/shuriken/main.c
function short_pause (line 285) | void short_pause(void)
function one_second_pause (line 291) | void one_second_pause(void)
function build_element (line 298) | void build_element(uint8_t type, uint8_t x, uint8_t y)
function delete_element (line 309) | void delete_element(uint8_t x, uint8_t y)
function delete_player_down (line 343) | void delete_player_down(void)
function delete_player_up (line 350) | void delete_player_up(void)
function delete_player (line 373) | void delete_player(void)
function display_player (line 380) | void display_player(void)
function update_time_counter_display (line 420) | void update_time_counter_display(void)
function update_item_display (line 427) | void update_item_display(void)
function increase_time_counter_if_not_max (line 443) | void increase_time_counter_if_not_max(void)
function delete_player_cells (line 457) | void delete_player_cells(void)
function handle_collisions (line 466) | void handle_collisions(void)
function update_player (line 528) | void update_player(void)
function allowed (line 542) | uint8_t allowed(uint8_t cell1, uint8_t cell2, uint8_t beyond_cell1, uint...
function allowed_down (line 581) | uint8_t allowed_down(void)
function allowed_up (line 588) | uint8_t allowed_up(void)
function allowed_left (line 594) | uint8_t allowed_left(void)
function allowed_right (line 600) | uint8_t allowed_right(void)
function _if_block_push_down (line 606) | void _if_block_push_down(uint8_t x)
function _if_block_push_up (line 624) | void _if_block_push_up(uint8_t x)
function _if_block_push_left (line 642) | void _if_block_push_left(uint8_t y)
function _if_block_push_right (line 660) | void _if_block_push_right(uint8_t y)
function init_map (line 678) | void init_map(void)
function update_lives_display (line 709) | void update_lives_display(void)
function build_rectangle (line 754) | void build_rectangle(uint8_t type, uint8_t x, uint8_t y, uint8_t width, ...
function build_objects (line 777) | void build_objects(uint8_t level)
function build_shurikens (line 843) | void build_shurikens(void)
function safe_area (line 910) | uint8_t safe_area(uint8_t x, uint8_t y, uint8_t x_size, uint8_t y_size)
function handle_barriers (line 929) | void handle_barriers(void)
function activate_shurikens (line 972) | void activate_shurikens(void)
function initialize_level_parameters (line 983) | void initialize_level_parameters(void)
function print_use_block_against_shurikens (line 1025) | void print_use_block_against_shurikens(uint8_t y)
function initialize_new_level (line 1035) | void initialize_new_level(void)
function display_horizontal_transition_shuriken (line 1074) | void display_horizontal_transition_shuriken(uint8_t x, uint8_t y)
function shuriken_death (line 1081) | void shuriken_death(uint8_t index)
function block_explosion (line 1092) | void block_explosion(uint8_t x, uint8_t y)
function player_chased (line 1109) | uint8_t player_chased(void)
function chase_vertically (line 1119) | void chase_vertically(uint8_t index)
function handle_horizontal_shuriken (line 1134) | void handle_horizontal_shuriken(register uint8_t index)
function delete_shurikens (line 1220) | void delete_shurikens(void)
function display_vertical_transition_shuriken (line 1266) | void display_vertical_transition_shuriken(uint8_t x, uint8_t y)
function chase_horizontally (line 1273) | void chase_horizontally(uint8_t index)
function handle_vertical_shuriken (line 1288) | void handle_vertical_shuriken(register uint8_t index)
function handle_shurikens (line 1371) | void handle_shurikens(void)
function update_player_direction (line 1417) | void update_player_direction(uint8_t direction)
function handle_player (line 1431) | void handle_player(void)
function handle_freeze_and_shurikens (line 1532) | void handle_freeze_and_shurikens(void)
function item_bonus (line 1610) | void item_bonus(uint8_t *item_counter_ptr)
function animate_shurikens (line 1701) | void animate_shurikens(void)
function main (line 1890) | int main(void)
FILE: src/games/snake/split_files/control_player.c
function _MOVE_PLAYER (line 10) | uint8_t _MOVE_PLAYER(uint8_t control_input)
function MOVE_PLAYER (line 34) | uint8_t MOVE_PLAYER(void)
FILE: src/games/snake/split_files/game_text.c
function PRINT_CENTERED_ON_ROW (line 11) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function DISPLAY_RINGS (line 19) | void DISPLAY_RINGS(void)
function show_intro_snake (line 38) | void show_intro_snake(void)
function DISPLAY_ENERGY (line 50) | void DISPLAY_ENERGY(void)
function PRESS_KEY (line 63) | void PRESS_KEY(void)
function CONTROL_INSTRUCTIONS (line 87) | void CONTROL_INSTRUCTIONS(void)
function DISPLAY_POINTS (line 95) | void DISPLAY_POINTS(void)
function DISPLAY_REMAINING_APPLES_COUNT (line 101) | void DISPLAY_REMAINING_APPLES_COUNT(void)
function DISPLAY_LIVES (line 107) | void DISPLAY_LIVES(void)
FILE: src/games/snake/split_files/main.c
function display_secret_string (line 60) | void display_secret_string(void)
function set_secret (line 66) | void set_secret(uint8_t *secret_ptr)
function set_secret (line 90) | void set_secret(uint8_t *secret_ptr)
function spawn (line 192) | void spawn(uint8_t type)
function build_box_wall (line 216) | void build_box_wall(uint8_t x, uint8_t y, uint8_t x_length, uint8_t y_le...
function DRAW_MAP_BORDERS (line 245) | void DRAW_MAP_BORDERS(void)
function DRAW_MINE (line 273) | void DRAW_MINE(uint8_t x, uint8_t y)
function build_horizontal_mines (line 279) | void build_horizontal_mines(uint8_t level)
function build_vertical_mines (line 299) | void build_vertical_mines(uint8_t level)
function init_map_to_empty (line 320) | void init_map_to_empty(void)
function build_level (line 332) | void build_level(void)
function display_horizontal_transition_mine (line 412) | void display_horizontal_transition_mine(uint8_t x, uint8_t y)
function handle_horizontal_mine (line 418) | void handle_horizontal_mine(register uint8_t index)
function handle_horizontal_mines (line 477) | void handle_horizontal_mines(void)
function display_vertical_transition_mine (line 486) | void display_vertical_transition_mine(uint8_t x, uint8_t y)
function handle_vertical_mine (line 493) | void handle_vertical_mine(register uint8_t index)
function handle_vertical_mines (line 552) | void handle_vertical_mines(void)
function empty_vertical_wall_area (line 561) | uint8_t empty_vertical_wall_area(void)
function empty_horizontal_wall_area (line 578) | uint8_t empty_horizontal_wall_area(void)
function handle_transparent_vertical_wall (line 595) | void handle_transparent_vertical_wall(void)
function handle_transparent_horizontal_wall (line 616) | void handle_transparent_horizontal_wall(void)
function one_up (line 748) | void one_up(void)
function one_up (line 769) | void one_up(void)
function spawn_extra (line 871) | void spawn_extra(uint8_t quantity)
function build_magic_column (line 881) | void build_magic_column(uint8_t x, uint8_t y, uint8_t length)
function magic_wall (line 887) | void magic_wall(void)
function increase_points (line 1048) | void increase_points(uint16_t value)
function get_level_bonus (line 1056) | void get_level_bonus(uint16_t level_bonus)
function display_achievements (line 1164) | void display_achievements(uint8_t row, uint8_t achievements, uint8_t max)
function display_stats (line 1189) | void display_stats(void)
function main (line 1264) | int main(void)
FILE: src/games/snake/split_files/move_snake.c
function move_snake (line 10) | uint8_t move_snake(uint8_t wished_direction)
FILE: src/games/snake/split_files/snake.c
function draw_head (line 8) | void draw_head(void)
function delete_body_part (line 13) | void delete_body_part(uint8_t i)
function draw_body_part (line 19) | void draw_body_part(uint8_t i)
function init_snake (line 26) | void init_snake(void)
function snake_grows (line 52) | void snake_grows(void)
FILE: src/games/stinger/main.c
type ItemStruct (line 438) | struct ItemStruct
type Item (line 450) | typedef struct ItemStruct Item;
type Missile (line 451) | typedef struct ItemStruct Missile;
function short_sleep (line 509) | void short_sleep(void)
function less_short_sleep (line 514) | void less_short_sleep(void)
function one_second (line 520) | void one_second(void)
function PRINT_CENTERED_ON_ROW (line 526) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function sleep_and_wait_for_input (line 538) | void sleep_and_wait_for_input(void)
function display_power_up_counter (line 559) | void display_power_up_counter(void)
function display_enemy_counter (line 580) | void display_enemy_counter(void)
function display_remaining_rockets (line 589) | void display_remaining_rockets(void)
function recharge_rockets (line 608) | void recharge_rockets(uint8_t value)
function display_score (line 619) | void display_score(void)
function display_lives (line 630) | void display_lives(uint8_t color)
function display_stinger (line 654) | void display_stinger(void)
function display_tank (line 667) | void display_tank(void)
function increase_score (line 799) | void increase_score(uint8_t value)
function recharge_effect (line 806) | void recharge_effect(void)
function find_inactive (line 846) | uint8_t find_inactive(Item* itemArray)
function display_power_ups (line 866) | void display_power_ups(void)
function display_power_ups (line 928) | void display_power_ups(void)
function display_power_ups (line 985) | void display_power_ups(void)
function power_up_effect (line 1072) | void power_up_effect(void)
function extra_points_effect (line 1128) | void extra_points_effect(void)
function display_tanks (line 1139) | void display_tanks(void)
function freeze_effect (line 1151) | void freeze_effect(void)
function tank_effect (line 1161) | void tank_effect(void)
function player_hit (line 1180) | void player_hit(void)
function bullet_effect (line 1198) | void bullet_effect(void)
function move_left (line 1284) | void move_left(void)
function move_right (line 1295) | void move_right(void)
function drop_item (line 1306) | void drop_item(register Item *item, uint8_t max_counter)
function artillery_fire (line 1326) | void artillery_fire(void)
function handle_item (line 1340) | void handle_item(register Item* item)
function handle_artillery_shell (line 1408) | void handle_artillery_shell(void)
function find_random_active_tank (line 1480) | uint8_t find_random_active_tank(void)
function find_random_inactive_tank (line 1501) | uint8_t find_random_inactive_tank(void)
function activate_tank (line 1522) | void activate_tank(void)
function spawn_light_tank (line 1551) | void spawn_light_tank(void)
function spawn_heavy_tank (line 1561) | void spawn_heavy_tank(void)
function update_tank_move_speed_mask (line 1630) | void update_tank_move_speed_mask(void)
function display_wall (line 1644) | void display_wall(uint8_t y)
function display_red_tank (line 1663) | void display_red_tank(void)
function handle_item_drop (line 1688) | void handle_item_drop(void)
function respawn (line 1748) | void respawn(void)
function tank_dies (line 1772) | void tank_dies(void)
function handle_rockets (line 1842) | void handle_rockets(void)
function decrease_energy (line 1875) | void decrease_energy(void)
function push_tank (line 1888) | void push_tank(void)
function push_display_tank (line 1903) | void push_display_tank(void)
function handle_tank_collisions (line 1912) | void handle_tank_collisions(void)
function move_tank (line 2039) | void move_tank(void)
function move_display_tank (line 2050) | void move_display_tank(void)
function handle_missile_drops (line 2061) | void handle_missile_drops(void)
function move_tanks (line 2096) | void move_tanks(void)
function fire (line 2164) | void fire(void)
function handle_stinger_move (line 2227) | void handle_stinger_move(void)
function handle_stinger_move (line 2296) | void handle_stinger_move(void)
function initialize_tank_at_level_restart (line 2458) | void initialize_tank_at_level_restart(void)
function reset_tanks (line 2468) | void reset_tanks(void)
function display_cleared (line 2603) | void display_cleared(void)
function display_stinger_string (line 2611) | void display_stinger_string(uint8_t color)
function display_enemies_string (line 2619) | void display_enemies_string(uint8_t color)
function display_victory_string (line 2626) | void display_victory_string(uint8_t color)
function _display_stinger_string (line 2632) | void _display_stinger_string(void)
function _display_enemies_string (line 2639) | void _display_enemies_string(void)
function _display_victory_string (line 2645) | void _display_victory_string(void)
function fire_pressed_after_time (line 2662) | uint8_t fire_pressed_after_time(void)
function control_instructions (line 2670) | void control_instructions(void)
function delete_instructions (line 2676) | void delete_instructions(void)
function display_enemies (line 2704) | void display_enemies(void)
function mortar_intro_animation (line 2719) | void mortar_intro_animation(void)
function tank_intro_animation (line 2904) | void tank_intro_animation(void)
function display_second_screen (line 3035) | void display_second_screen(void)
function handle_auto_recharge (line 3127) | void handle_auto_recharge(void)
function display_level_at_start_up (line 3162) | void display_level_at_start_up(void)
function handle_tank_movement (line 3202) | void handle_tank_movement(void)
function tank_animation (line 3263) | void tank_animation(void)
function victory_animation (line 3287) | void victory_animation(void)
function handle_level_end (line 3404) | void handle_level_end(void)
function main (line 3516) | int main(void)
FILE: src/games/trex/main.c
function draw_jump_dino_0 (line 134) | void draw_jump_dino_0(uint8_t height)
function draw_dead_dino_0 (line 145) | void draw_dead_dino_0(void)
function draw_jump_dino_1 (line 158) | void draw_jump_dino_1(uint8_t height)
function delete_feet (line 171) | void delete_feet(uint8_t height)
function delete_top (line 177) | void delete_top(uint8_t height)
function draw_dino_feet_0 (line 185) | void draw_dino_feet_0(void)
function draw_dino_feet_1 (line 192) | void draw_dino_feet_1(void)
function draw_dino_feet_0 (line 198) | void draw_dino_feet_0(void)
function handle_state_behavior (line 215) | void handle_state_behavior(void)
function handle_fire (line 352) | void handle_fire(void)
function display_score (line 421) | void display_score(void)
function display_hiscore (line 428) | void display_hiscore(void)
function display_hilevel (line 444) | void display_hilevel(void)
function handle_cactus_half_transition (line 457) | void handle_cactus_half_transition(uint8_t i)
function handle_bird_half_transition (line 480) | void handle_bird_half_transition(void)
function one_point (line 495) | void one_point(void)
function draw_cactus_1 (line 508) | void draw_cactus_1(uint8_t x)
function draw_cactus_2 (line 515) | void draw_cactus_2(uint8_t x)
function update_cactus (line 524) | void update_cactus(uint8_t i)
function update_bird (line 569) | void update_bird(void)
function handle_cactus (line 599) | void handle_cactus(uint8_t i)
function handle_bird (line 612) | void handle_bird(void)
function first_non_active_cactus (line 627) | uint8_t first_non_active_cactus(void)
function spawn_cacti (line 655) | void spawn_cacti(void)
function spawn_bird (line 673) | void spawn_bird(void)
function handle_enemy_spawn (line 698) | void handle_enemy_spawn(void)
function handle_enemy_spawn (line 710) | void handle_enemy_spawn(void)
function handle_enemies (line 720) | void handle_enemies(void)
function handle_collisions (line 755) | void handle_collisions(void)
function handle_collisions (line 774) | void handle_collisions(void)
function draw_terrain (line 790) | void draw_terrain(void)
function draw_terrain (line 819) | void draw_terrain(void)
function draw_cacti (line 831) | void draw_cacti(void)
function delete_cacti (line 838) | void delete_cacti(void)
function initialize_enemies (line 854) | void initialize_enemies(void)
function handle_game_over (line 904) | void handle_game_over(void)
function initialize_player (line 948) | void initialize_player(void)
function display_level (line 957) | void display_level(void)
function handle_game_start (line 963) | void handle_game_start(void)
function handle_game_start (line 1061) | void handle_game_start(void)
function birdAndTwoCacti (line 1093) | void birdAndTwoCacti(void)
function birdAndThreeCacti (line 1099) | void birdAndThreeCacti(void)
function activate_level (line 1107) | void activate_level(void)
function activate_level (line 1196) | void activate_level(void)
function handle_level (line 1220) | void handle_level(void)
function handle_speed (line 1237) | void handle_speed(void)
function handle_speed (line 1249) | void handle_speed(void)
function main (line 1263) | int main(void)
FILE: src/games/verbix/main.c
function short_pause (line 231) | void short_pause(void)
function tiny_pause (line 237) | void tiny_pause(void)
function one_second_pause (line 243) | void one_second_pause(void)
function display_letters (line 252) | void display_letters(void)
function x_slot (line 271) | uint8_t x_slot(uint8_t x)
function y_slot (line 283) | uint8_t y_slot(uint8_t y)
function draw_letter (line 289) | void draw_letter(uint8_t x, uint8_t y)
function draw_crosses (line 307) | void draw_crosses(void)
function display_rings (line 325) | void display_rings(void)
function display_bottom_row (line 339) | void display_bottom_row(void)
function display_column (line 351) | void display_column(uint8_t row)
function display_player_column (line 366) | void display_player_column(void)
function display_matrix (line 372) | void display_matrix(void)
function display_remaining_words (line 383) | void display_remaining_words(void)
function drop_letter (line 391) | void drop_letter(void)
function player_slot_x (line 425) | uint8_t player_slot_x(void)
function delete_player (line 432) | void delete_player(void)
function display_vertical_player (line 449) | void display_vertical_player(uint8_t player_tile)
function display_horizontal_left_player (line 457) | void display_horizontal_left_player(uint8_t player_tile)
function display_horizontal_right_player (line 463) | void display_horizontal_right_player(uint8_t player_tile)
function display_player (line 469) | void display_player(void)
function right_rotate_row (line 489) | void right_rotate_row(void)
function left_rotate_row (line 512) | void left_rotate_row(void)
function up_rotate_column (line 533) | void up_rotate_column(void)
function down_rotate_column (line 554) | void down_rotate_column(void)
function letter_index (line 582) | uint8_t letter_index(uint8_t letter_to_check)
function word_score (line 602) | uint8_t word_score(void)
function first_letter (line 617) | uint8_t first_letter(uint16_t index)
function compress_bottom_word (line 634) | uint16_t compress_bottom_word(void)
function binary_search (line 642) | uint8_t binary_search(uint16_t search_word, uint16_t first_index, uint16...
function word_in_dictionary (line 671) | uint8_t word_in_dictionary(void)
function display_score (line 684) | void display_score(void)
function increase_score (line 691) | void increase_score(uint8_t value)
function remove_bottom_word (line 699) | void remove_bottom_word(void)
function handle_input (line 734) | void handle_input(void)
function display_borders (line 862) | void display_borders(uint8_t offset, uint8_t tile)
function swap (line 968) | void swap(uint8_t i, uint8_t j)
function shuffle (line 979) | void shuffle(void)
function display_record (line 990) | void display_record(uint8_t x)
function display_letter_values (line 1019) | void display_letter_values(void)
function display_walls (line 1087) | void display_walls(void)
function initialize_level (line 1173) | void initialize_level(void)
function restart_game (line 1250) | void restart_game(void)
function level_end (line 1263) | void level_end(void)
function main (line 1372) | int main(void)
FILE: src/games/verbix/words_16/compress.py
function letter_index (line 5) | def letter_index(letter):
function compress (line 42) | def compress(word):
FILE: src/modules/LoggerSingleton.py
class LoggerSingleton (line 9) | class LoggerSingleton:
method initLogger (line 12) | def initLogger(name, path):
FILE: src/modules/build_functions.py
function multiple_project_reset (line 44) | def multiple_project_reset(option_config, mypath):
function multiple_size_build (line 56) | def multiple_size_build(option_config, mypath,target,xsize,ysize,debug):
function multiple_build (line 142) | def multiple_build(option_config, mypath,target,threads,zsdcc_extra_opti...
function size (line 243) | def size(option_config, params, debug = False):
function rebuild (line 314) | def rebuild(option_config, params):
function tools (line 321) | def tools(option_config):
function partial_tools (line 330) | def partial_tools(option_config, tools_to_build):
function build (line 340) | def build(option_config, params, reset_flag = False):
function slow (line 513) | def slow(option_config, params):
function reset (line 561) | def reset(option_config, params):
function make (line 621) | def make(option_config, params):
function assets (line 625) | def assets(option_config, params):
FILE: src/modules/clean_functions.py
function clean_test (line 8) | def clean_test(option_config):
function clean (line 21) | def clean(option_config, params):
FILE: src/modules/commands.py
function commands (line 66) | def commands(option_config):
FILE: src/modules/default_values.py
function default_tile_size (line 5) | def default_tile_size(target):
function default_screen_size (line 25) | def default_screen_size(target):
function default_terminal_size_string (line 107) | def default_terminal_size_string(target):
function get_terminal_target (line 119) | def get_terminal_target(target):
function insert_default_sizes (line 125) | def insert_default_sizes(option_config, params):
FILE: src/modules/execute.py
function signature (line 18) | def signature(name):
function normalize_command (line 42) | def normalize_command(command_name):
function execute_command (line 47) | def execute_command(option_config, params):
function execute_command (line 61) | def execute_command(option_config, params):
function execute_string (line 73) | def execute_string(option_config, command_line, silent = True):
FILE: src/modules/file_functions.py
function files_in_path (line 7) | def files_in_path(mypath):
function dirs_in_path (line 16) | def dirs_in_path(mypath):
function built_files_in_path (line 26) | def built_files_in_path(mypath):
function list_of_projects (line 39) | def list_of_projects(project_category):
function list_projects (line 48) | def list_projects(option_config, params):
function convert_makefile (line 87) | def convert_makefile(option_config, dir,old_type,old_name,new_name):
function files (line 119) | def files(option_config):
FILE: src/modules/help_functions.py
function list_of_documented_routines (line 15) | def list_of_documented_routines():
function list_documented_routines (line 22) | def list_documented_routines():
function manual (line 27) | def manual(option_config, params):
function help_help (line 44) | def help_help(option_config):
function help_command (line 67) | def help_command(option_config, params):
FILE: src/modules/import_from_source.py
function has_extension (line 28) | def has_extension(string, patterns):
function fill_empty_slots_with_zero (line 36) | def fill_empty_slots_with_zero(data_list):
function has_headless_hex (line 48) | def has_headless_hex(trimmed_lines):
function has_nine_byte_lines (line 60) | def has_nine_byte_lines(trimmed_lines):
function normalize_basic_line (line 68) | def normalize_basic_line(line):
function normalize_assembly_line (line 83) | def normalize_assembly_line(line):
function normalize_line (line 93) | def normalize_line(line, basic_extension, assembly_extension):
function remove_basic_comments (line 105) | def remove_basic_comments(line):
function remove_assembly_comments (line 117) | def remove_assembly_comments(line):
function display_data_type (line 123) | def display_data_type(word_data, verbose=False):
function display_code_type (line 134) | def display_code_type(basic_code, verbose=False):
function display_extension_type (line 144) | def display_extension_type(assembly_extension, basic_code, verbose=False):
function is_basic_code (line 157) | def is_basic_code(directive,assembly_extension):
function line_pattern (line 162) | def line_pattern(line):
function remove_comments (line 170) | def remove_comments(line,basic_code):
function split (line 180) | def split(option_config, params):
function rip_tiles (line 184) | def rip_tiles(option_config, filename, xsize, ysize, rip = False, rotate...
function aux_rip_tiles (line 211) | def aux_rip_tiles(option_config, lines, assembly_extension, basic_extens...
function store_tiles (line 345) | def store_tiles(option_config, project, tiles, xsize, ysize):
function store_tile (line 357) | def store_tile(option_config, project, tile, xsize, ysize, index):
function compute_split_tiles (line 385) | def compute_split_tiles(option_config, lines,verbose=False):
function import_split_tiles (line 415) | def import_split_tiles(option_config, file_name):
function compute_tile (line 425) | def compute_tile(lines, verbose=False):
function import_tile (line 466) | def import_tile(file_name):
function _import_from_source (line 478) | def _import_from_source(option_config, params, rotate = False, rip_optio...
function rotate (line 493) | def rotate(option_config, params):
function import_from_source (line 498) | def import_from_source(option_config, params):
function rip (line 508) | def rip(option_config, params, rotate = False):
FILE: src/modules/init.py
class bcolors (line 33) | class bcolors:
function handle_parallelism (line 47) | def handle_parallelism(option_config):
function show_python_version (line 57) | def show_python_version(option_config):
FILE: src/modules/input_functions.py
function generic_input (line 3) | def generic_input(string):
function are_you_sure (line 8) | def are_you_sure():
FILE: src/modules/option_functions.py
class TerminalConfig (line 14) | class TerminalConfig():
method __init__ (line 15) | def __init__(
class RomConfig (line 33) | class RomConfig():
method __init__ (line 34) | def __init__(
class ExtendConfig (line 46) | class ExtendConfig():
method __init__ (line 47) | def __init__(
class BuildConfig (line 56) | class BuildConfig():
method __init__ (line 57) | def __init__(
method get_opts (line 99) | def get_opts(self):
class OptionConfig (line 121) | class OptionConfig:
method __init__ (line 122) | def __init__(
function all_compilers_opts (line 142) | def all_compilers_opts(option_config, zsdcc_extra_optimization, compiler...
function config (line 187) | def config(option_config):
function read_config_option (line 284) | def read_config_option(config, section, option):
function read_config (line 289) | def read_config(config_file="./config.ini"):
function default_config (line 447) | def default_config():
function get_config (line 500) | def get_config():
function handle_make (line 517) | def handle_make(option_config, make_test):
FILE: src/modules/params.py
function full_params (line 16) | def full_params(params):
function handle_two_letter_params (line 23) | def handle_two_letter_params(params):
function get_size_params (line 38) | def get_size_params(params):
function get_params_from_keyboard_input (line 57) | def get_params_from_keyboard_input(option_config):
function get_params_from_command_line (line 80) | def get_params_from_command_line():
function get_params (line 89) | def get_params(option_config):
FILE: src/modules/print_functions.py
class bcolors (line 3) | class bcolors:
function printc (line 15) | def printc(option_config, print_color,text):
function print_shape (line 24) | def print_shape(option_config, items):
function display_shape (line 33) | def display_shape(option_config, tile_vect):
function display_simple_shape (line 38) | def display_simple_shape(tile_vect):
FILE: src/modules/project_functions.py
function project_category (line 11) | def project_category(game_dir):
function rename (line 21) | def rename(option_config, params):
function clone (line 52) | def clone(option_config, params):
function create (line 104) | def create(option_config, params):
function delete (line 223) | def delete(option_config, params):
FILE: src/modules/run.py
function run_command (line 17) | def run_command(option_config, command_string):
function run_native (line 34) | def run_native(option_config, params, target):
function run_stdio (line 48) | def run_stdio(option_config, params):
function run (line 53) | def run(option_config, params):
FILE: src/modules/shape_functions.py
function resize_shape (line 14) | def resize_shape(tile_vect,xsize,ysize, extend_algorithm):
function trim_newline_from_shape (line 40) | def trim_newline_from_shape(lines):
function read_shape (line 58) | def read_shape(file_name):
function path_to_shapes (line 69) | def path_to_shapes(project, xsize, ysize):
function write_shapes (line 79) | def write_shapes(option_config, project, shapes, xsize,ysize):
function extend (line 121) | def extend(option_config, params):
function show (line 200) | def show(option_config, params):
function print_shape_from_file (line 235) | def print_shape_from_file(option_config, parent_dir, project_name, xsize...
function compute_shape (line 260) | def compute_shape(string, xsize):
function compute_rotated_shape (line 290) | def compute_rotated_shape(items):
FILE: src/modules/split_projects.py
function create_main (line 8) | def create_main(game_dir, project_type):
function delete_main (line 15) | def delete_main(option_config, game_dir, project_type):
function is_project_split (line 23) | def is_project_split(game_dir):
FILE: src/modules/strings.py
function only_upper_digits_and_space (line 9) | def only_upper_digits_and_space(s):
function no_space (line 13) | def no_space(s):
function compute_string (line 18) | def compute_string(string):
function string (line 38) | def string(option_config, params):
FILE: src/modules/target_defs.py
function binary_factor (line 16) | def binary_factor(target):
function retrieve_targets (line 34) | def retrieve_targets():
function filter_targets (line 44) | def filter_targets(lines, compiler="", cpu="", working=""):
function display_targets (line 56) | def display_targets(lines):
function display_filtered_targets (line 64) | def display_filtered_targets(lines, compiler="", cpu="", working=""):
function get_targets (line 71) | def get_targets(compiler="", cpu="", working=""):
function get_target_map (line 78) | def get_target_map(lines):
function info (line 85) | def info(option_config, params):
FILE: src/modules/tests.py
function check_programs (line 261) | def check_programs(option_config, title, command_list, expected_list, si...
function test_cross_compilers (line 299) | def test_cross_compilers(option_config):
function test_native_compilers (line 303) | def test_native_compilers(option_config):
function test_make (line 307) | def test_make(option_config, silent):
function test_tools (line 310) | def test_tools(option_config, silent=False):
function test_emulators (line 313) | def test_emulators(option_config):
function test_interpreters (line 316) | def test_interpreters(option_config):
function test_libraries (line 319) | def test_libraries(option_config):
function test_roms (line 322) | def test_roms(option_config):
function test_compilers (line 326) | def test_compilers(option_config):
function run_single_unit_test (line 331) | def run_single_unit_test(option_config, test_file_name, path="unit_tests"):
function _unit_tests (line 342) | def _unit_tests(option_config, path="./"):
function test_projects (line 377) | def test_projects(option_config, projects, target="stdio"):
function test_clean_tools (line 420) | def test_clean_tools(option_config):
function no_check (line 423) | def no_check(option_config, target):
function execute_commands (line 426) | def execute_commands(option_config, command_strings, target, silent = Tr...
function display_ok_ko (line 431) | def display_ok_ko(option_config, result):
function check_clean (line 439) | def check_clean(option_config, target):
function check_tools (line 443) | def check_tools(option_config, target):
function check_complex (line 453) | def check_complex(option_config, target):
function check_examples (line 459) | def check_examples(option_config, target):
function check_games (line 466) | def check_games(option_config, target):
function check_games_terminal (line 473) | def check_games_terminal(option_config, target):
function check_rename (line 479) | def check_rename(option_config, target):
function check_create (line 484) | def check_create(option_config, target):
function check_make (line 488) | def check_make(option_config, target):
function test_execute (line 503) | def test_execute(option_config, target, test_name, commands, check = no_...
function test_self (line 554) | def test_self(option_config, target = "stdio"):
function test_all (line 584) | def test_all(option_config, params):
function targets_test (line 609) | def targets_test(option_config, params):
function test (line 678) | def test(option_config, params):
function check (line 750) | def check(option_config, params, silent=False):
function compilers (line 833) | def compilers(option_config):
function unit_tests (line 836) | def unit_tests(option_config):
function self (line 841) | def self(option_config, params):
FILE: src/modules/tiles.py
function detect_xsize (line 18) | def detect_xsize(target):
function detect_ysize (line 32) | def detect_ysize(target):
function tile (line 47) | def tile(option_config, params):
function tiles (line 61) | def tiles(option_config, params):
function make_assets_from_tiles (line 116) | def make_assets_from_tiles(option_config, params):
FILE: src/template_projects/arcade_game_code.template/main.c
function PRINT_CENTERED_ON_ROW (line 43) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function display_xy (line 51) | void display_xy(void)
function main (line 58) | int main(void)
FILE: src/template_projects/demo_code.template/main.c
function PRINT_CENTERED_ON_ROW (line 40) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function main (line 79) | int main(void)
FILE: src/template_projects/helloworld_code.template/main.c
function PRINT_CENTERED_ON_ROW (line 28) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function main (line 39) | int main(void)
FILE: src/template_projects/test_code.template/main.c
function PRINT_CENTERED_ON_ROW (line 40) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function main (line 80) | int main(void)
FILE: src/template_projects/text_game_code.template/main.c
function mystrlen (line 43) | uint8_t mystrlen(char *cstr)
function PRINT_CENTERED_ON_ROW (line 52) | void PRINT_CENTERED_ON_ROW(uint8_t row, char *Text)
function print_text (line 61) | void print_text(uint8_t x, uint8_t y, const char *str)
function main (line 82) | int main(void)
FILE: src/unit_tests/testDefaults.py
class testDefaults (line 12) | class testDefaults(unittest.TestCase):
method test_no_defaults_1 (line 15) | def test_no_defaults_1(self):
method test_no_defaults_2 (line 21) | def test_no_defaults_2(self):
method test_terminal_1 (line 27) | def test_terminal_1(self):
method test_terminal_2 (line 33) | def test_terminal_2(self):
method test_terminal_3 (line 39) | def test_terminal_3(self):
method test_terminal_4 (line 45) | def test_terminal_4(self):
method test_terminal_5 (line 51) | def test_terminal_5(self):
method test_terminal_6 (line 57) | def test_terminal_6(self):
method test_terminal_7 (line 63) | def test_terminal_7(self):
method test_terminal_8 (line 69) | def test_terminal_8(self):
method test_terminal_9 (line 75) | def test_terminal_9(self):
method test_terminal_10 (line 81) | def test_terminal_10(self):
method test_terminal_11 (line 87) | def test_terminal_11(self):
method test_terminal_12 (line 93) | def test_terminal_12(self):
method test_terminal_13 (line 99) | def test_terminal_13(self):
FILE: src/unit_tests/testImport.py
class testImport (line 12) | class testImport(unittest.TestCase):
method test_fill_empty_slots_with_zero_1 (line 15) | def test_fill_empty_slots_with_zero_1(self):
method test_has_headless_hex_1 (line 21) | def test_has_headless_hex_1(self):
method test_has_headless_hex_2 (line 25) | def test_has_headless_hex_2(self):
method test_has_headless_hex_2 (line 29) | def test_has_headless_hex_2(self):
method test_has_nine_byte_lines_1 (line 35) | def test_has_nine_byte_lines_1(self):
method test_has_nine_byte_lines_2 (line 39) | def test_has_nine_byte_lines_2(self):
method test_has_nine_byte_lines_3 (line 43) | def test_has_nine_byte_lines_3(self):
method test_remove_basic_comments_1 (line 49) | def test_remove_basic_comments_1(self):
method test_remove_basic_comments_2 (line 53) | def test_remove_basic_comments_2(self):
method test_remove_basic_comments_3 (line 57) | def test_remove_basic_comments_3(self):
method test_remove_basic_comments_4 (line 61) | def test_remove_basic_comments_4(self):
method test_remove_basic_comments_5 (line 65) | def test_remove_basic_comments_5(self):
method test_remove_basic_comments_6 (line 69) | def test_remove_basic_comments_6(self):
method test_remove_assembly_comments_1 (line 75) | def test_remove_assembly_comments_1(self):
method test_normalize_assembly_line_1 (line 81) | def test_normalize_assembly_line_1(self):
method test_normalize_assembly_line_2 (line 85) | def test_normalize_assembly_line_2(self):
method test_normalize_assembly_line_3 (line 89) | def test_normalize_assembly_line_3(self):
method test_normalize_assembly_line_4 (line 93) | def test_normalize_assembly_line_4(self):
method test_normalize_assembly_line_5 (line 97) | def test_normalize_assembly_line_5(self):
method test_normalize_assembly_line_6 (line 101) | def test_normalize_assembly_line_6(self):
method test_normalize_assembly_line_7 (line 105) | def test_normalize_assembly_line_7(self):
method test_normalize_basic_line_1 (line 111) | def test_normalize_basic_line_1(self):
method test_normalize_basic_line_2 (line 115) | def test_normalize_basic_line_2(self):
method test_normalize_basic_line_3 (line 119) | def test_normalize_basic_line_3(self):
method test_compute_shape_xsize_8_1 (line 124) | def test_compute_shape_xsize_8_1(self):
method test_compute_shape_xsize_8_2 (line 128) | def test_compute_shape_xsize_8_2(self):
method test_compute_shape_xsize_8_3 (line 132) | def test_compute_shape_xsize_8_3(self):
method test_compute_shape_xsize_8_4 (line 136) | def test_compute_shape_xsize_8_4(self):
method test_compute_shape_xsize_8_5 (line 140) | def test_compute_shape_xsize_8_5(self):
method test_compute_shape_xsize_7_1 (line 144) | def test_compute_shape_xsize_7_1(self):
method test_compute_shape_xsize_7_2 (line 148) | def test_compute_shape_xsize_7_2(self):
method test_compute_shape_xsize_7_3 (line 152) | def test_compute_shape_xsize_7_3(self):
method test_compute_shape_xsize_7_4 (line 156) | def test_compute_shape_xsize_7_4(self):
method test_compute_shape_xsize_7_5 (line 160) | def test_compute_shape_xsize_7_5(self):
method test_compute_shape_xsize_6_1 (line 164) | def test_compute_shape_xsize_6_1(self):
method test_compute_shape_xsize_6_2 (line 168) | def test_compute_shape_xsize_6_2(self):
method test_compute_shape_xsize_6_3 (line 172) | def test_compute_shape_xsize_6_3(self):
method test_compute_shape_xsize_6_4 (line 176) | def test_compute_shape_xsize_6_4(self):
method test_compute_shape_xsize_6_5 (line 180) | def test_compute_shape_xsize_6_5(self):
method intListToString (line 187) | def intListToString(intList):
method test_compute_rotated_shape_1 (line 196) | def test_compute_rotated_shape_1(self):
method test_compute_rotated_shape_2 (line 230) | def test_compute_rotated_shape_2(self):
method test_rip_tiles_asm_1 (line 258) | def test_rip_tiles_asm_1(self):
method test_rip_tiles_asm_2 (line 264) | def test_rip_tiles_asm_2(self):
method test_rip_tiles_asm_3 (line 270) | def test_rip_tiles_asm_3(self):
method test_rip_tiles_asm_4 (line 351) | def test_rip_tiles_asm_4(self):
method test_rip_tiles_asm_5 (line 370) | def test_rip_tiles_asm_5(self):
method test_rip_tiles_asm_6 (line 393) | def test_rip_tiles_asm_6(self):
method test_rip_tiles_cbm_basic_1 (line 433) | def test_rip_tiles_cbm_basic_1(self):
method test_rip_tiles_cbm_basic_2 (line 484) | def test_rip_tiles_cbm_basic_2(self):
method test_rip_tiles_cbm_basic_3 (line 510) | def test_rip_tiles_cbm_basic_3(self):
method test_rip_tiles_oric_basic_1 (line 537) | def test_rip_tiles_oric_basic_1(self):
method test_rip_tiles_msx_basic_1 (line 567) | def test_rip_tiles_msx_basic_1(self):
method test_rip_tiles_cpc_basic_1 (line 646) | def test_rip_tiles_cpc_basic_1(self):
method test_rip_tiles_atari_basic_1 (line 753) | def test_rip_tiles_atari_basic_1(self):
method test_rip_tiles_bbc_basic_1 (line 778) | def test_rip_tiles_bbc_basic_1(self):
method test_rip_tiles_sinclair_basic_1 (line 802) | def test_rip_tiles_sinclair_basic_1(self):
method test_compute_tile_1 (line 824) | def test_compute_tile_1(self):
method test_compute_split_tile_1 (line 844) | def test_compute_split_tile_1(self):
method test_compute_split_tile_2 (line 897) | def test_compute_split_tile_2(self):
FILE: src/unit_tests/testParams.py
class testParams (line 12) | class testParams(unittest.TestCase):
method test_handle_two_letter_params_1 (line 14) | def test_handle_two_letter_params_1(self):
method test_handle_two_letter_params_2 (line 20) | def test_handle_two_letter_params_2(self):
method test_get_size_params_1 (line 26) | def test_get_size_params_1(self):
method test_get_size_params_2 (line 32) | def test_get_size_params_2(self):
FILE: src/unit_tests/testShapes.py
class testShapes (line 11) | class testShapes(unittest.TestCase):
method test_trim_newline_from_shape_1 (line 15) | def test_trim_newline_from_shape_1(self):
method test_trim_newline_from_shape_2 (line 25) | def test_trim_newline_from_shape_2(self):
method test_convert_1 (line 36) | def test_convert_1(self):
method test_convert_2 (line 63) | def test_convert_2(self):
method test_convert_3 (line 90) | def test_convert_3(self):
method test_convert_4 (line 121) | def test_convert_4(self):
method test_convert_5 (line 151) | def test_convert_5(self):
method test_convert_6 (line 180) | def test_convert_6(self):
method test_convert_7 (line 211) | def test_convert_7(self):
method test_convert_8 (line 242) | def test_convert_8(self):
method test_convert_9 (line 273) | def test_convert_9(self):
method test_convert_10 (line 304) | def test_convert_10(self):
FILE: src/unit_tests/testStrings.py
class testStrings (line 12) | class testStrings(unittest.TestCase):
method test_no_space_1 (line 15) | def test_no_space_1(self):
method test_only_upper_digits_and_space_1 (line 21) | def test_only_upper_digits_and_space_1(self):
method test_only_upper_digits_and_space_2 (line 26) | def test_only_upper_digits_and_space_2(self):
method test_only_upper_digits_and_space_3 (line 31) | def test_only_upper_digits_and_space_3(self):
method test_only_upper_digits_and_space_4 (line 36) | def test_only_upper_digits_and_space_4(self):
method test_only_upper_digits_and_space_5 (line 41) | def test_only_upper_digits_and_space_5(self):
method test_only_upper_digits_and_space_6 (line 46) | def test_only_upper_digits_and_space_6(self):
method test_compute_string_1 (line 52) | def test_compute_string_1(self):
method test_compute_string_2 (line 57) | def test_compute_string_2(self):
method test_compute_string_3 (line 62) | def test_compute_string_3(self):
method test_compute_string_4 (line 67) | def test_compute_string_4(self):
method test_compute_string_5 (line 72) | def test_compute_string_5(self):
FILE: src/unit_tests/testTiles.py
class testTiles (line 11) | class testTiles(unittest.TestCase):
method test_detect_xsize_1 (line 15) | def test_detect_xsize_1(self):
method test_detect_xsize_2 (line 19) | def test_detect_xsize_2(self):
method test_detect_xsize_3 (line 23) | def test_detect_xsize_3(self):
method test_detect_xsize_4 (line 27) | def test_detect_xsize_4(self):
method test_detect_xsize_5 (line 31) | def test_detect_xsize_5(self):
method test_detect_xsize_6 (line 35) | def test_detect_xsize_6(self):
method test_detect_xsize_7 (line 39) | def test_detect_xsize_7(self):
method test_detect_xsize_8 (line 43) | def test_detect_xsize_8(self):
method test_detect_xsize_9 (line 47) | def test_detect_xsize_9(self):
method test_detect_xsize_10 (line 51) | def test_detect_xsize_10(self):
method test_detect_xsize_11 (line 55) | def test_detect_xsize_11(self):
method test_detect_ysize_1 (line 61) | def test_detect_ysize_1(self):
method test_detect_ysize_2 (line 65) | def test_detect_ysize_2(self):
method test_detect_ysize_3 (line 69) | def test_detect_ysize_3(self):
method test_detect_ysize_4 (line 73) | def test_detect_ysize_4(self):
method test_detect_ysize_5 (line 77) | def test_detect_ysize_5(self):
method test_detect_ysize_6 (line 81) | def test_detect_ysize_6(self):
method test_detect_ysize_7 (line 85) | def test_detect_ysize_7(self):
method test_detect_ysize_8 (line 89) | def test_detect_ysize_8(self):
method test_detect_ysize_9 (line 93) | def test_detect_ysize_9(self):
method test_detect_ysize_10 (line 97) | def test_detect_ysize_10(self):
method test_detect_ysize_11 (line 101) | def test_detect_ysize_11(self):
FILE: tools/bbc/bbcim-1.0.1/src/archief.c
function cleanup (line 7) | void cleanup(int argc, char *argv[], int options) {
FILE: tools/bbc/bbcim-1.0.1/src/bbc_crc.c
function fcrc (line 10) | unsigned int fcrc(char *bestand) {
function icrc (line 55) | void icrc(int argc, char *argv[], int options) {
function xcrc (line 173) | void xcrc(int argc, char *argv[], int options) {
FILE: tools/bbc/bbcim-1.0.1/src/bbcim.c
function reduceer_unix_naam (line 247) | void reduceer_unix_naam(char *unixnaam, char *bbcnaam) {
function print_version (line 284) | void print_version(void) {
function use (line 289) | void use(void) {
function main (line 312) | int main(int argc, char *argv[]) {
FILE: tools/bbc/bbcim-1.0.1/src/ddos2dfs.c
function ddos2dfs (line 19) | void ddos2dfs(int argc, char *argv[], int options) {
FILE: tools/bbc/bbcim-1.0.1/src/diskb_add.c
function add_to_image (line 9) | void add_to_image(char *disk, int options, int argc, char *argv[], int r...
FILE: tools/bbc/bbcim-1.0.1/src/diskb_del.c
function del_from_image (line 10) | void del_from_image(int argc, char *argv[], int options) {
FILE: tools/bbc/bbcim-1.0.1/src/expand_im.c
function expand_image (line 6) | void expand_image(char *disk, int expand) {
FILE: tools/bbc/bbcim-1.0.1/src/intersplits.c
function interss (line 13) | void interss(int argc, char *argv[], int options) {
function splitds (line 120) | void splitds(int argc, char *argv[], int options) {
FILE: tools/bbc/bbcim-1.0.1/src/minimaliseer.c
function minimise_image (line 7) | void minimise_image(char *disk) {
FILE: tools/bbc/bbcim-1.0.1/src/nieuw_diskb.c
function new_image (line 7) | void new_image(char *disk, unsigned int size) {
FILE: tools/bbc/bbcim-1.0.1/src/overschrijf.c
function rename_sequential (line 9) | int rename_sequential(char *naam) {
function overschrijf_vraag (line 27) | int overschrijf_vraag(char *oude_naam, char *nieuwe_naam) {
FILE: tools/bbc/bbcim-1.0.1/src/splits_cat.c
function split_cat (line 7) | void split_cat(int argc, char *argv[],int options, char *optread_line) {
FILE: tools/bbc/bbcim-1.0.1/src/w62.c
function w62dfs (line 13) | int w62dfs(int argc, char *argv[], int options) {
FILE: tools/bbc/bbcim-1.0.1/src/xbeeb.c
function xbeeb (line 11) | void xbeeb(int argc, char *argv[], int options) {
FILE: tools/cc65/atari/mkatr-master/src/atr.c
type atr_image (line 29) | struct atr_image
type atr_image (line 63) | struct atr_image
type atr_image (line 63) | struct atr_image
type atr_image (line 152) | struct atr_image
type atr_image (line 152) | struct atr_image
function atr_free (line 159) | void atr_free(struct atr_image *atr)
type atr_image (line 166) | struct atr_image
FILE: tools/cc65/atari/mkatr-master/src/atr.h
type atr_image (line 23) | struct atr_image
type atr_image (line 30) | struct atr_image
type atr_image (line 31) | struct atr_image
type atr_image (line 32) | struct atr_image
FILE: tools/cc65/atari/mkatr-master/src/compat.c
function compat_mkdir (line 22) | int compat_mkdir(const char *path)
function is_separator (line 31) | int is_separator(char c)
FILE: tools/cc65/atari/mkatr-master/src/crc32.c
function crc32 (line 62) | unsigned crc32(unsigned crc, const uint8_t *buf, unsigned len)
FILE: tools/cc65/atari/mkatr-master/src/darray.c
function darray_fill_ptr (line 22) | void darray_fill_ptr(void *arr, size_t sz, size_t init)
function darray_grow (line 39) | void darray_grow(void *arr, size_t sz, size_t newsize)
function darray_free (line 50) | void darray_free(void *arr)
function darray_delete_ptr (line 57) | void darray_delete_ptr(void *arr)
FILE: tools/cc65/atari/mkatr-master/src/flist.c
function is_separator (line 45) | static int is_separator(char c)
function flist_add_main_dir (line 124) | void flist_add_main_dir(file_list *flist)
function flist_add_file (line 151) | void flist_add_file(file_list *flist, const char *fname, int boot_file,
FILE: tools/cc65/atari/mkatr-master/src/flist.h
type fattr (line 25) | enum fattr
type afile (line 33) | struct afile
type file_list (line 53) | typedef darray(struct afile *) file_list;
type fattr (line 57) | enum fattr
FILE: tools/cc65/atari/mkatr-master/src/lsatr.c
function show_usage (line 34) | static void show_usage(void)
function main (line 49) | int main(int argc, char **argv)
FILE: tools/cc65/atari/mkatr-master/src/lsdos.c
type lsdos (line 37) | struct lsdos
function read16 (line 49) | static uint16_t read16(const uint8_t *p)
function get_name (line 55) | static unsigned get_name(char *name, char *aname, const uint8_t *data, i...
function read_file (line 88) | static unsigned read_file(struct atr_image *atr, unsigned sect, unsigned...
type lsdos (line 136) | struct lsdos
function read_dir (line 154) | static void read_dir(struct lsdos *ls, unsigned dir, const char *name)
function detect_bibo (line 291) | int detect_bibo(struct atr_image *atr, int dir_sect)
function dos_read (line 323) | int dos_read(struct atr_image *atr, const char *atr_name, int atari_list...
FILE: tools/cc65/atari/mkatr-master/src/lsdos.h
type atr_image (line 23) | struct atr_image
FILE: tools/cc65/atari/mkatr-master/src/lsextra.c
function get_name (line 34) | static unsigned get_name(char *name, char *aname, const uint8_t *data, i...
function read16 (line 74) | static uint16_t read16(const uint8_t *p)
function check_bas2boot (line 79) | static int check_bas2boot(struct atr_image *atr)
function extract_bas2boot (line 101) | static void extract_bas2boot(struct atr_image *atr, int atari_list, int ...
function check_kboot (line 171) | static int check_kboot(struct atr_image *atr)
function extract_kboot (line 190) | static void extract_kboot(struct atr_image *atr, const char *atr_name, i...
function show_header (line 246) | static void show_header(struct atr_image *atr, const char *atr_name, int...
function extra_read (line 259) | int extra_read(struct atr_image *atr, const char *atr_name, int atari_list,
FILE: tools/cc65/atari/mkatr-master/src/lsextra.h
type atr_image (line 23) | struct atr_image
FILE: tools/cc65/atari/mkatr-master/src/lshowfen.c
function get_name (line 35) | static unsigned get_name(char *name, char *aname, const uint8_t *data, i...
function get_len (line 66) | int get_len(const uint8_t *p)
function howfen_read (line 77) | int howfen_read(struct atr_image *atr, const char *atr_name, int atari_l...
FILE: tools/cc65/atari/mkatr-master/src/lshowfen.h
type atr_image (line 23) | struct atr_image
FILE: tools/cc65/atari/mkatr-master/src/lssfs.c
type lssfs (line 37) | struct lssfs
function read16 (line 46) | static uint16_t read16(const uint8_t *p)
function read24 (line 51) | static unsigned read24(const uint8_t *p)
function file_msize (line 57) | static unsigned file_msize(struct atr_image *atr, unsigned map)
function read_file (line 79) | static unsigned read_file(struct atr_image *atr, unsigned map, unsigned ...
function get_name (line 126) | static unsigned get_name(char *name, char *aname, const uint8_t *data, i...
function set_times (line 155) | static void set_times(const char *path, int d_day, int d_mon, int d_yea,...
function read_dir (line 172) | static void read_dir(struct lssfs *ls, unsigned map, const char *name)
function sfs_read (line 312) | int sfs_read(struct atr_image *atr, const char *atr_name, int atari_list...
FILE: tools/cc65/atari/mkatr-master/src/lssfs.h
type atr_image (line 23) | struct atr_image
FILE: tools/cc65/atari/mkatr-master/src/mkatr.c
function show_usage (line 28) | static void show_usage(void)
function write_atr (line 49) | static void write_atr(const char *out, const uint8_t *data, int ssec, in...
function image_size (line 88) | static int image_size(int nsec, int ssec)
function image_sect (line 102) | static int image_sect(int size, int ssec)
function main (line 115) | int main(int argc, char **argv)
FILE: tools/cc65/atari/mkatr-master/src/msg.c
function show_error (line 28) | void show_error(const char *format, ...)
function show_msg (line 39) | void show_msg(const char *format, ...)
function show_opt_error (line 49) | void show_opt_error(const char *format, ...)
function show_version (line 60) | void show_version(void)
function memory_error (line 70) | void memory_error(void)
FILE: tools/cc65/atari/mkatr-master/src/spartafs.c
function hex (line 28) | static char hex(int x)
type sfs (line 33) | struct sfs
type sfs (line 44) | struct sfs
function sfs_free_sec (line 49) | static void sfs_free_sec(struct sfs *sfs, int sec)
function sfs_used (line 54) | static int sfs_used(struct sfs *sfs, int sec)
function sfs_alloc (line 59) | static int sfs_alloc(struct sfs *sfs)
function get_word (line 74) | static int get_word(const uint8_t *data)
function sfs_patch_byte (line 79) | static int sfs_patch_byte(struct sfs *sfs, int smap, int pos, int byte)
function sfs_add_data (line 102) | static int sfs_add_data(struct sfs *sfs, char *data, int size)
function write_boot (line 145) | static void write_boot(struct sfs *sfs, int address)
function compare_level (line 181) | static int compare_level(const void *a, const void *b)
type sfs (line 192) | struct sfs
type sfs (line 195) | struct sfs
type sfs (line 195) | struct sfs
type afile (line 214) | struct afile
type afile (line 217) | struct afile
type afile (line 229) | struct afile
type afile (line 253) | struct afile
type afile (line 283) | struct afile
type sfs (line 332) | struct sfs
function sfs_get_num_sectors (line 337) | int sfs_get_num_sectors(const struct sfs *sfs)
function sfs_get_sector_size (line 342) | int sfs_get_sector_size(const struct sfs *sfs)
function sfs_get_free_sectors (line 347) | int sfs_get_free_sectors(const struct sfs *sfs)
function sfs_free (line 352) | void sfs_free(struct sfs *sfs)
FILE: tools/cc65/atari/mkatr-master/src/spartafs.h
type sfs (line 24) | struct sfs
type sfs (line 26) | struct sfs
type sfs (line 29) | struct sfs
type sfs (line 30) | struct sfs
type sfs (line 31) | struct sfs
type sfs (line 32) | struct sfs
type sfs (line 33) | struct sfs
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/NOT_USED/d_write_cat.c
function bbcim_d_write_cat_entry (line 10) | int bbcim_d_write_cat_entry(struct bbcim_diskimage *image, struct bbcim_...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_add_file.c
type bbc_archive__diskimage (line 12) | struct bbc_archive__diskimage
type bbc_archive__file (line 12) | struct bbc_archive__file
function bbcim_disk_add_file (line 17) | int bbcim_disk_add_file(struct bbc_archive__diskimage *image, int side, ...
function d_add_file (line 100) | int d_add_file(struct bbc_archive__diskimage *image, int side, struct bb...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_catalogue_extract.c
type bbc_archive__diskimage (line 12) | struct bbc_archive__diskimage
type bbc_archive__file (line 12) | struct bbc_archive__file
function bbcim_disk_cat_extract_crc (line 16) | int bbcim_disk_cat_extract_crc (struct bbc_archive__diskimage *image, i...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_catalogue_extract__dfs.c
function _bbcim__disk_dfscat_extract_crc (line 1) | int _bbcim__disk_dfscat_extract_crc(struct bbc_archive__diskimage *imag...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_combine_ss.c
function bbcim_interleave_singlesided (line 17) | int bbcim_interleave_singlesided(struct bbc_archive__diskimage *image0, ...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_convert_ddos_to_dfs.c
function bbcim_ddos_disk_error (line 11) | int bbcim_ddos_disk_error(int drive, int verbose) {
function bbcim_ddos_to_dfs (line 20) | int bbcim_ddos_to_dfs(struct bbc_archive__diskimage *image, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_convert_w62_to_dfs.c
function bbcim_w62_to_dfs (line 13) | int bbcim_w62_to_dfs(struct bbc_archive__diskimage *image, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_delete_file.c
function bbcim_disk_del_file (line 14) | int bbcim_disk_del_file(struct bbc_archive__diskimage *image, int side, ...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_expand.c
function bbcim_disk_expand (line 10) | int bbcim_disk_expand(struct bbc_archive__diskimage *image, int sectors,...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_id.c
function bbcim_disk_identify (line 7) | int bbcim_disk_identify(char *filename, int *possible_disktypes, int ver...
function verify_watford_id (line 88) | int verify_watford_id(FILE *fp, int offset) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_minimise.c
function bbcim_disk_minimise (line 11) | int bbcim_disk_minimise(struct bbc_archive__diskimage *image, int verbos...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_new.c
function bbcim_disk_new (line 10) | int bbcim_disk_new(struct bbc_archive__diskimage *image, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_set_boot.c
function bbcim_disk_set_boot (line 10) | int bbcim_disk_set_boot(struct bbc_archive__diskimage *image, int side, ...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/disk_split_ds.c
function bbcim_split_doublesided (line 18) | int bbcim_split_doublesided(struct bbc_archive__diskimage *image, int ve...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/error.c
function bbcim_set_error (line 1) | int bbcim_set_error(int errorno, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/include/bbcim.h
type bbcim_tapeimage_attr (line 79) | struct bbcim_tapeimage_attr {
type bbcim_tapeimage (line 83) | struct bbcim_tapeimage {
type bbcim_disk_data (line 119) | struct bbcim_disk_data {
type bbcim_file_data (line 150) | struct bbcim_file_data {
type bbc_archive__diskimage (line 179) | struct bbc_archive__diskimage
type bbc_archive__file (line 179) | struct bbc_archive__file
type bbc_archive__diskimage (line 181) | struct bbc_archive__diskimage
type bbc_archive__file (line 181) | struct bbc_archive__file
type bbc_archive__diskimage (line 183) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 185) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 186) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 187) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 188) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 192) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 192) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 193) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 196) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 197) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 201) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 202) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 203) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 204) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 205) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 216) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 217) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 218) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 226) | struct bbc_archive__diskimage
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/overschrijf.c
function bbcim_overschrijf_vraag (line 11) | int bbcim_overschrijf_vraag(char *oude_naam, char *nieuwe_naam) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/_bbc_crc.c
function bbc_fcrc (line 10) | int bbc_fcrc(char *bestand, int verbose) {
function bbc_data_crc (line 44) | int bbc_data_crc(void *data, int length) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/_bbc_filenames.c
function bbc_replace_bad_chars (line 20) | void bbc_replace_bad_chars(char *unix_bbcfile_naam) {
function bbc_printable_bbcfilename (line 43) | int bbc_printable_bbcfilename(char *name) {
function bbc_rename_sequential (line 62) | int bbc_rename_sequential(char *name) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/_read_write_wrappers.c
function my_write (line 24) | int my_write(int fd, void *data, int nbytes) {
function my_read (line 44) | int my_read(int fd, void *data, int nbytes) {
function my_read_byte (line 65) | int my_read_byte(int fd) {
function my_fwrite (line 82) | int my_fwrite(FILE *fp, void *data, int length, char *fn) {
function my_fread (line 95) | int my_fread(FILE *fp, void *data, int length, char *fn) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/archive_format/_bbc_archive.h
type bbc_archive__file_attr (line 22) | struct bbc_archive__file_attr {
type bbc_archive__file (line 34) | struct bbc_archive__file {
type bbc_archive__dfs_bootoption (line 40) | enum bbc_archive__dfs_bootoption { BBCIM_DFS_BOOTOPTION_NONE, BBCIM_DFS_...
type bbc_archive__disktype (line 42) | enum bbc_archive__disktype { BBC_ARCHIVE__UNKNOWN_DISK, BBC_ARCHIVE__DFS...
type bbc_archive__diskimage_attr (line 54) | struct bbc_archive__diskimage_attr {
type bbc_archive__diskimage (line 62) | struct bbc_archive__diskimage {
type bbc_archive__file_attr (line 69) | struct bbc_archive__file_attr
type bbc_archive__file_attr (line 70) | struct bbc_archive__file_attr
type bbc_archive__diskimage_attr (line 72) | struct bbc_archive__diskimage_attr
type bbc_archive__diskimage_attr (line 73) | struct bbc_archive__diskimage_attr
type bbc_archive__file_attr (line 78) | struct bbc_archive__file_attr
type bbc_archive__diskimage_attr (line 79) | struct bbc_archive__diskimage_attr
type bbc_archive__diskimage_attr (line 82) | struct bbc_archive__diskimage_attr
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/archive_format/_bbc_archive_read_attributes.c
type bbc_archive__diskimage_attr (line 41) | struct bbc_archive__diskimage_attr
function bbc_archive__string_to_hex (line 45) | int bbc_archive__string_to_hex(char *string, unsigned int *hex) {
function skip_whitespace (line 63) | void skip_whitespace(char *string, int *ptr) {
function skip_nonwhitespace (line 69) | void skip_nonwhitespace(char *string, int *ptr) {
function bbc_archive__read_file_attributes (line 75) | int bbc_archive__read_file_attributes(char *filename, struct bbc_archive...
function bbc_archive__free_file_attributes (line 277) | void bbc_archive__free_file_attributes(struct bbc_archive__file_attr *fi...
function bbc_archive__diskinfo_from_string (line 287) | int bbc_archive__diskinfo_from_string(char *string, struct bbc_archive__...
function bbc_archive__read_disk_attributes (line 302) | int bbc_archive__read_disk_attributes(char *diskname, struct bbc_archive...
function bbc_archive__free_disk_attributes (line 343) | void bbc_archive__free_disk_attributes(struct bbc_archive__diskimage_att...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/archive_format/_bbc_archive_write_attributes.c
function bbc_archive__is_inf_file (line 34) | int bbc_archive__is_inf_file(char *filename) {
function bbc_archive__write_file_attributes (line 85) | int bbc_archive__write_file_attributes(char *filename, struct bbc_archiv...
function bbc_archive__write_disk_attributes2 (line 112) | int bbc_archive__write_disk_attributes2(char *diskname, int sides, int t...
function bbc_archive__write_disk_attributes (line 131) | int bbc_archive__write_disk_attributes(char *filename, struct bbc_archiv...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/archive_format/_weg/archive_error.c
function bbc_error__set_error (line 5) | struct bbc_error {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/shared/archive_format/test/archive_test.c
function main (line 17) | int main(int argc, char **argv) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/lib/utils.c
type bbc_archive__diskimage (line 13) | struct bbc_archive__diskimage
function bbcim_rename_diskimage (line 17) | int bbcim_rename_diskimage(char *from, char *to, int verbose) {
function bbcim_reduce_bbcname__no_dir (line 56) | void bbcim_reduce_bbcname__no_dir(char *unix_naam, char *bbc_naam) {
function bbcim_reduce_bbcname__no_rootdir (line 65) | void bbcim_reduce_bbcname__no_rootdir(char *unix_naam, char *bbc_naam) {
function bbcim_read4lsb (line 77) | int bbcim_read4lsb(unsigned char *data) {
function bbcim_read3lsb (line 81) | int bbcim_read3lsb(unsigned char *data) {
function bbcim_read2lsb (line 85) | int bbcim_read2lsb(unsigned char *data) {
function bbcim_file_sanitycheck (line 91) | int bbcim_file_sanitycheck(char *filename, int verbose) {
function bbcim_diskimage_sanitycheck (line 112) | int bbcim_diskimage_sanitycheck(struct bbc_archive__diskimage *image, in...
function bbcim_disk_write (line 217) | int bbcim_disk_write(struct bbc_archive__diskimage *image, FILE *fp, int...
function bbcim_disk_read (line 229) | int bbcim_disk_read(struct bbc_archive__diskimage *image, FILE *fp, int ...
function bbcim_disk_write_multi (line 243) | int bbcim_disk_write_multi(struct bbc_archive__diskimage *image, FILE *f...
function bbcim_disk_read_multi (line 263) | int bbcim_disk_read_multi(struct bbc_archive__diskimage *image, FILE *fp...
function bbcim_disk_offset (line 285) | int bbcim_disk_offset(struct bbc_archive__diskimage *image, int side_off...
function bbcim_print_error_bad_side (line 310) | int bbcim_print_error_bad_side(char *function, struct bbc_archive__diski...
function bbcim_print_error_unsupported_disktype (line 319) | int bbcim_print_error_unsupported_disktype(char *function, struct bbc_ar...
function bbcim_print_error_diskimage_truncated (line 328) | int bbcim_print_error_diskimage_truncated(char *function, struct bbc_arc...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/_help.c
function show_help (line 15) | void show_help() {
function use_option (line 70) | void use_option() {
function use (line 168) | void use() {
function show_version_copyright (line 174) | void show_version_copyright() {
function show_options (line 182) | void show_options() {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/_help_man.c
function help2_diskoptions (line 8) | void help2_diskoptions() {
function help2_bootoption (line 14) | void help2_bootoption() {
function help2 (line 18) | void help2(char *optstring) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/bbcim.c
type bbc_archive__diskimage (line 46) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 47) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 48) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 48) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 50) | struct bbc_archive__diskimage
type optie_type (line 52) | enum optie_type { VERSIE, HELP, INTERSS, SPLITDS, DDOS_DFS, W62_DFS, SPL...
function argc_check (line 79) | void argc_check(int argc, int options, int required) {
function main (line 93) | int main(int argc, char *argv[]) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/functions/archive_cleanup.c
function bbcim_archive_cleanup (line 14) | int bbcim_archive_cleanup(char *filename, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/functions/archive_crc_check.c
function bbcim_archive_crc_check (line 16) | int bbcim_archive_crc_check(char *filename, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/functions/catalogue_to_inf.c
function bbcim_catalogue_to_inf (line 16) | int bbcim_catalogue_to_inf(char *cat_naam, int flags, int verbose) {
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/prog/utils.c
type bbc_archive__diskimage (line 52) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 53) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 54) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 54) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 56) | struct bbc_archive__diskimage
type bbc_archive__diskimage (line 57) | struct bbc_archive__diskimage
function set_diskimage_defaults (line 63) | void set_diskimage_defaults(struct bbc_archive__diskimage *image) {
function set_diskimage_invalid (line 72) | void set_diskimage_invalid(struct bbc_archive__diskimage *image) {
function copy_disktype (line 82) | int copy_disktype(struct bbc_archive__diskimage *from_image1, struct bbc...
function get_side (line 93) | int get_side(char **argv, int argc) {
function set_disktype (line 105) | int set_disktype(struct bbc_archive__diskimage *image, char **argv, int ...
function get_disk_type_name_side (line 151) | int get_disk_type_name_side(char **argv, int argc, struct bbc_archive__d...
FILE: tools/cc65/bbc/INSTALL/bbcim-1.2/test/libtest.c
function main (line 24) | int main(int argc, char **argv) {
function bbcimtest_list_bbc_files (line 99) | void bbcimtest_list_bbc_files(char *dir) {
function bbcimtest_list_bbc_disks (line 117) | void bbcimtest_list_bbc_disks(char *dir) {
function bbcimtest_find_file (line 138) | int bbcimtest_find_file(char *dirname, char *filename, int action) {
FILE: tools/cc65/c64/prg2crt.py
function writeHex (line 21) | def writeHex(string):
FILE: tools/cc65/gamate/gamate-fixcart.c
function usage (line 7) | void usage(char *arg)
function main (line 13) | int main(int argc, char *argv[]) {
FILE: tools/cc65/osic1p/srecord-1.64/srec_cat/main.cc
function main (line 35) | int
FILE: tools/cc65/osic1p/srecord-1.64/srec_cmp/main.cc
function execution_start_addresses_differ (line 30) | static bool
function main (line 37) | int
FILE: tools/cc65/osic1p/srecord-1.64/srec_info/main.cc
function main (line 33) | int
FILE: tools/cc65/osic1p/srecord-1.64/srecord/adler16.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/adler32.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/arglex.cc
function is_a_number (line 261) | static int
function starts_with (line 354) | static bool
function ends_with (line 366) | static bool
function deprecated_warning (line 387) | static void
FILE: tools/cc65/osic1p/srecord-1.64/srecord/arglex.h
function namespace (line 31) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/arglex/tool.h
function namespace (line 30) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/bitrev.h
function namespace (line 22) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/crc16.cc
function state_from_seed_mode (line 98) | static int
type table_t (line 347) | struct table_t
FILE: tools/cc65/osic1p/srecord-1.64/srecord/crc16.h
function namespace (line 28) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/crc32.cc
function calculate_table (line 85) | static void
function initial_state_from_seed_mode (line 99) | static unsigned long
function UPDC32 (line 144) | static inline unsigned long
FILE: tools/cc65/osic1p/srecord-1.64/srecord/crc32.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/defcon.cc
type table_t (line 44) | struct table_t
function compare (line 65) | static int
FILE: tools/cc65/osic1p/srecord-1.64/srecord/defcon.h
function namespace (line 22) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/endian.h
function namespace (line 23) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/fletcher16.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/fletcher32.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input.h
function namespace (line 28) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/catenate.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file.h
function namespace (line 26) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/aomf.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/ascii_hex.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/atmel_generic.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/binary.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/brecord.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/cosmac.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/dec_binary.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/emon52.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/fairchild.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/fastload.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/formatted_binary.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/four_packed_code.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/hexdump.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/idt.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/intel.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/intel16.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/logisim.cc
function quote_char (line 50) | static std::string
class record (line 236) | class record
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/logisim.h
function class (line 80) | class input_file_logisim:
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/mif.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/mips_flash.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/mos_tech.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/motorola.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/msbin.h
function namespace (line 30) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/needham.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/os65v.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/ppb.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/ppx.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/signetics.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/spasm.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/spectrum.cc
function is_binary_digit (line 84) | static inline bool
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/spectrum.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/stewie.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/tektronix.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/tektronix_extended.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/ti_tagged.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/ti_tagged_16.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/ti_txt.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/trs80.h
function namespace (line 28) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/vmem.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/file/wilson.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter.h
function namespace (line 26) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/and.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/bitrev.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/byte_swap.h
function namespace (line 26) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/checksum.h
function namespace (line 29) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/checksum/bitnot.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/checksum/negative.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/checksum/positive.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/crop.h
function namespace (line 27) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/fill.h
function namespace (line 27) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/interval.h
function namespace (line 26) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/interval/length.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/interval/maximum.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/interval/minimum.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/adler16.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/adler32.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/crc16.h
function namespace (line 27) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/crc32.h
function namespace (line 27) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/fletcher16.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/fletcher32.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/gcrypt.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/message/stm32.h
function namespace (line 35) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/not.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/offset.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/or.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/random_fill.h
function namespace (line 27) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/sequence.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/split.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/unfill.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/unsplit.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/filter/xor.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/generator.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/generator/constant.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/generator/random.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/generator/repeat.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/input/interval.h
function namespace (line 26) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/interval.cc
function promote (line 57) | static inline srecord::interval::long_data_t
function to_string (line 775) | static std::string
FILE: tools/cc65/osic1p/srecord-1.64/srecord/interval.h
function class (line 35) | class interval
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory.h
function namespace (line 31) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/chunk.h
function class (line 33) | class memory_chunk
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/adler16.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/adler32.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/alignment.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/compare.cc
function spaces (line 71) | static std::string
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/compare.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/continuity.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/crc16.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/crc32.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/fletcher16.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/fletcher32.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/gcrypt.h
function namespace (line 31) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/stm32.h
function namespace (line 34) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/memory/walker/writer.h
function namespace (line 26) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output.h
function namespace (line 28) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file.cc
type table_t (line 401) | struct table_t
type stat (line 433) | struct stat
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file.h
function namespace (line 27) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/aomf.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/ascii_hex.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/asm.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/atmel_generic.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/basic.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/binary.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/brecord.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/c.cc
function toupper (line 30) | static std::string
function identifier (line 50) | static std::string
function build_include_file_name (line 419) | static std::string
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/c.h
function namespace (line 27) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/coe.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/cosmac.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/dec_binary.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/emon52.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/fairchild.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/fastload.cc
function number_width (line 85) | static int
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/fastload.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/formatted_binary.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/forth.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/four_packed_code.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/hexdump.cc
function hex_nybble (line 79) | static char
function hex_byte (line 86) | static void
function hex (line 94) | static void
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/hexdump.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/idt.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/intel.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/intel16.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/line_termination.cc
type table_t (line 54) | struct table_t
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/logisim.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/mem.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/mif.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/mips_flash.h
function namespace (line 25) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/mos_tech.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/motorola.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/msbin.h
function namespace (line 30) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/needham.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/os65v.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/ppb.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/ppx.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/signetics.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/spasm.h
function namespace (line 26) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/spectrum.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/stewie.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/tektronix.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/tektronix_extended.cc
function addr_width (line 98) | static int
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/tektronix_extended.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/ti_tagged.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/ti_tagged_16.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/ti_txt.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/trs80.h
function namespace (line 27) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/vhdl.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/vmem.cc
function calc_width_shift (line 55) | static unsigned
function calc_width_mask (line 94) | static unsigned
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/vmem.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/file/wilson.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/filter.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/output/filter/reblock.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/pretty_size.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/progname.h
function namespace (line 23) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/quit.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/quit/exception.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/quit/normal.h
function namespace (line 24) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/quit/prefix.h
function namespace (line 25) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/r250.cc
function rand8 (line 29) | static inline int
function rand32 (line 36) | static inline long
function r250_init (line 58) | static void
FILE: tools/cc65/osic1p/srecord-1.64/srecord/r250.h
function namespace (line 22) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/record.h
function namespace (line 27) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/stm32.cc
function stm32_crc (line 85) | static unsigned long
FILE: tools/cc65/osic1p/srecord-1.64/srecord/stm32.h
function namespace (line 33) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/string.h
function namespace (line 24) | namespace srecord {
FILE: tools/cc65/osic1p/srecord-1.64/srecord/string/url_decode.cc
function unhex_nybble (line 24) | static bool
function unhex_byte (line 48) | static bool
FILE: tools/cc65/osic1p/srecord-1.64/srecord/string/url_encode.cc
function nybble (line 25) | static char
function needs_quoting (line 35) | static bool
FILE: tools/cc65/osic1p/srecord-1.64/srecord/versn_stamp.h
function namespace (line 23) | namespace srecord
FILE: tools/cc65/osic1p/srecord-1.64/srecord/vsnprintf.cc
function snprintf (line 26) | int
function vsnprintf (line 39) | int
FILE: tools/cc65/osic1p/srecord-1.64/test/arglex_ambiguous/main.cc
function main (line 22) | int
FILE: tools/cc65/osic1p/srecord-1.64/test/crc16/main.cc
function usage (line 31) | static void
type option (line 39) | struct option
function main (line 53) | int
FILE: tools/cc65/osic1p/srecord-1.64/test/fletcher16/main.cc
function usage (line 26) | static void
function main (line 34) | int
FILE: tools/cc65/osic1p/srecord-1.64/test/gecos/main.cc
function trim (line 33) | static std::string
function split (line 60) | static void
function main (line 84) | int
FILE: tools/cc65/osic1p/srecord-1.64/test/hyphen/main.cc
function read_one_line (line 32) | static bool
function check (line 53) | static void
function usage (line 134) | static void
type option (line 144) | struct option
function main (line 151) | int
FILE: tools/cc65/osic1p/srecord-1.64/test/url_decode/main.cc
function usage (line 32) | static void
function test_url_decode (line 44) | static void
function test_url_encode (line 61) | static void
function main (line 78) | int
FILE: tools/cc65/telestrat/old2mfm.c
function init_track (line 16) | void init_track(int n)
function compute_crc (line 73) | void compute_crc(unsigned char *ptr,int count)
function main (line 87) | int main(int argc,char *argv[])
FILE: tools/cc65/telestrat/tap2dsk.c
type byte (line 15) | typedef unsigned char byte;
type byte (line 16) | typedef byte sector[256];
function allocate_sector (line 57) | void allocate_sector(int track, int sect, byte *contents)
function find_free_sector (line 65) | void find_free_sector(byte *contents)
function update_sector (line 80) | void update_sector(int track, int sect, byte *contents)
function convert_basename (line 85) | void convert_basename(char *dest, char *name)
function store_file (line 109) | void store_file(byte *buf, char *name, byte *header)
function main (line 171) | int main(int argc, char *argv[])
FILE: tools/cmoc/coco/file2dsk/Source/file2dsk.c
function getch (line 101) | int getch (void)
function AddFile (line 153) | char AddFile(char *pszFilename,
function main (line 451) | int main(int argc, char **argv) {
FILE: tools/cmoc/mo5/f2k5.c
function main (line 5) | int main(int argc, char* argv[])
FILE: tools/cmoc/mo5/sap/dfloppy.c
type floppy_cmd (line 38) | struct floppy_cmd {
function SetDiskParameters (line 59) | static void SetDiskParameters(int density)
function ExecCommand (line 95) | static int ExecCommand(int drive, int density, struct floppy_cmd *fd_cmd)
function FloppyReadSector (line 147) | int FloppyReadSector(int drive, int density, int track, int sector, int ...
function FloppyWriteSector (line 166) | int FloppyWriteSector(int drive, int density, int track, int sector, int...
function FloppyFormatTrack (line 185) | int FloppyFormatTrack(int drive, int density, int track, const unsigned ...
function FloppyInit (line 229) | int FloppyInit(struct floppy_info *fi, int enable_write_support)
function FloppyExit (line 279) | void FloppyExit(void)
FILE: tools/cmoc/mo5/sap/floppy.h
type floppy_info (line 24) | struct floppy_info {
type floppy_info (line 39) | struct floppy_info
FILE: tools/cmoc/mo5/sap/lfloppy.c
function ResetDrive (line 50) | static void ResetDrive(int drive, int density)
function OpenDrive (line 72) | static int OpenDrive(int drive, int density)
function ExecCommand (line 110) | static int ExecCommand(int drive, int density, struct floppy_raw_cmd *fd...
function FloppyReadSector (line 163) | int FloppyReadSector(int drive, int density, int track, int sector, int ...
function FloppyWriteSector (line 199) | int FloppyWriteSector(int drive, int density, int track, int sector, int...
function FloppyFormatTrack (line 235) | int FloppyFormatTrack(int drive, int density, int track, const unsigned ...
function FloppyInit (line 268) | int FloppyInit(struct floppy_info *fi, int enable_write_support)
function FloppyExit (line 317) | void FloppyExit(void)
function FloppyReadSector (line 333) | int FloppyReadSector(int drive, int density, int track, int sector, int ...
function FloppyFormatTrack (line 344) | int FloppyFormatTrack(int drive, int density, int track, const unsigned ...
function FloppyWriteSector (line 353) | int FloppyWriteSector(int drive, int density, int track, int sector, int...
function FloppyInit (line 364) | int FloppyInit(struct floppy_info *fi, int enable_write_support)
function FloppyExit (line 372) | void FloppyExit(void)
FILE: tools/cmoc/mo5/sap/libsap.c
type extension_t (line 168) | struct extension_t {
type extension_t (line 190) | struct extension_t
function get_id (line 218) | static int get_id(void)
function clean_string (line 235) | static inline void clean_string(unsigned char *str)
function crc_pukall (line 255) | static void crc_pukall(short int c)
function do_crc (line 273) | static void do_crc(sapsector_t *sapsector, int format)
function do_read_sector (line 293) | static void do_read_sector(sapID id, sapsector_t *sapsector)
function do_write_sector (line 320) | static void do_write_sector(sapID id, sapsector_t *sapsector)
function seek_pos (line 348) | static void seek_pos(sapID id, int track, int sect)
function get_file_size (line 368) | static int get_file_size(int format, int n, const unsigned char trk20_da...
function get_dskf (line 391) | static int get_dskf(int format, const unsigned char trk20_data[])
function extract_dir_entry (line 411) | static int extract_dir_entry(int format, char buffer[], int buffer_size,...
function get_filename (line 495) | static int get_filename(char filename[], const unsigned char entry_data[])
function decode_filename (line 534) | static void decode_filename(unsigned char entry_data[], const char filen...
function seek_file (line 623) | static int seek_file(int format, const char filename[], const unsigned c...
type WCD_MATCH_DATA (line 644) | struct WCD_MATCH_DATA
function wcdcmp (line 657) | static int wcdcmp(const char *s1, const char *s2)
function seek_wildcard (line 766) | static int seek_wildcard(int format, char filename[], const char pattern...
function find_free_block_sym (line 794) | static int find_free_block_sym(int format, unsigned char fat_data[])
function find_free_block_rel (line 818) | static int find_free_block_rel(int format, int block, unsigned char fat_...
function do_add_file (line 848) | static void do_add_file(sapID id, FILE *file, int file_size, unsigned ch...
function do_delete_file (line 920) | static int do_delete_file(sapID id, const char filename[], int n, unsign...
function do_extract_file (line 960) | static int do_extract_file(sapID id, const char filename[], int n, unsig...
function _ExtractDir (line 1024) | int _ExtractDir(char buffer[], int buffer_size, int drive, int density, ...
function _ForEachFile (line 1066) | int _ForEachFile(sapID id, const char pattern[], sapfilecb_t callback, i...
function sapID (line 1127) | sapID sap_OpenArchive(const char filename[], int *format)
function sapID (line 1179) | sapID sap_CreateArchive(const char filename[], int format)
function sap_CloseArchive (line 1222) | int sap_CloseArchive(sapID id)
function sap_FillArchive (line 1266) | int sap_FillArchive(sapID id, sapsector_t *sapsector)
function sap_ReadSector (line 1312) | int sap_ReadSector(sapID id, int track, int sect, sapsector_t *sapsector)
function sap_ReadSectorEx (line 1362) | int sap_ReadSectorEx(sapID id, int track, int sect, int nsects, unsigned...
function sap_WriteSector (line 1402) | int sap_WriteSector(sapID id, int track, int sect, sapsector_t *sapsector)
function sap_WriteSectorEx (line 1434) | int sap_WriteSectorEx(sapID id, int track, int sect, int nsects, const u...
function sap_FormatArchive (line 1484) | int sap_FormatArchive(sapID id, int capacity)
function sap_ListArchive (line 1568) | int sap_ListArchive(sapID id, char buffer[], int buffer_size)
function sap_AddFile (line 1602) | int sap_AddFile(sapID id, const char filename[])
function sap_DeleteFile (line 1711) | int sap_DeleteFile(sapID id, const char pattern[])
function sap_ExtractFile (line 1722) | int sap_ExtractFile(sapID id, const char pattern[])
function sap_GetFileInfo (line 1733) | int sap_GetFileInfo(sapID id, const char filename[], sapfileinfo_t *info)
FILE: tools/cmoc/mo5/sap/libsap.h
type sapID (line 41) | typedef unsigned int sapID;
type sapsector_t (line 43) | typedef struct {
type sapfileinfo_t (line 51) | typedef struct {
FILE: tools/cmoc/mo5/sap/sap2.c
type floppy_info (line 71) | struct floppy_info
function term_puts (line 87) | static void term_puts(const char buffer[], int lines, int page_height)
function ViewDiskDir (line 123) | static int ViewDiskDir(int drive, int density, int page_height)
function ViewArchiveDir (line 152) | static int ViewArchiveDir(const char sap_name[], int page_height)
function CreateEmptyArchive (line 180) | static int CreateEmptyArchive(const char sap_name[], int format, int cap...
function BuildSectorMap (line 199) | static void BuildSectorMap(int *sector_map, int factor)
function FormatDisk (line 221) | static int FormatDisk(int drive, int density, int factor, int verbose)
function shrink_fat_160_to_80 (line 305) | static void shrink_fat_160_to_80(unsigned char fat_data[])
function PackArchive (line 322) | static int PackArchive(const char sap_name[], int drive, int density, in...
function UnpackArchive (line 419) | static int UnpackArchive(const char sap_name[], int drive, int density, ...
function get_drive (line 491) | static void get_drive(int *drive, int *density)
function interactive_main (line 536) | static void interactive_main(void)
function usage (line 866) | static void usage(const char prog_name[])
function main (line 878) | int main(int argc, char *argv[])
FILE: tools/cmoc/mo5/sap/sapfs.c
function PrintErrorMessage (line 65) | static void PrintErrorMessage(int errno, const char str[])
function put_separator (line 118) | static void put_separator(char filename[])
function CreateEmptyArchive (line 133) | static int CreateEmptyArchive(const char sap_name[], int format, int cap...
function FormatArchive (line 153) | static int FormatArchive(const char sap_name[], int capacity)
function VerifyArchive (line 174) | static int VerifyArchive(const char sap_name[], int track, int sect)
function DumpArchive (line 262) | static int DumpArchive(const char sap_name[], int track, int sect)
function ListArchive (line 357) | static int ListArchive(const char sap_name[])
function PrintFileInfo (line 380) | static int PrintFileInfo(const char sap_name[], char filename[])
function ExtractFile (line 428) | static int ExtractFile(const char sap_name[], char *filename[], int nfiles)
function AddFile (line 458) | static int AddFile(const char sap_name[], char *filename[], int nfiles)
function DeleteFile (line 534) | static int DeleteFile(const char sap_name[], char *filename[], int nfiles)
function CopyArchive (line 564) | static int CopyArchive(const char src_name[], const char dest_name[], in...
function MoveSector (line 652) | static int MoveSector(const char src_name[], int src_track, int src_sect,
function usage (line 746) | static void usage(const char prog_name[])
function main (line 759) | int main(int argc, char *argv[])
FILE: tools/cmoc/to7/k7tools/getmemo7.c
function mygetc (line 27) | int mygetc(void)
function myputc (line 41) | int myputc(int a)
function main (line 58) | int main(int argc,char **argv)
FILE: tools/cmoc/to7/k7tools/getrom.c
function mygetc (line 28) | int mygetc()
function myputc (line 42) | int myputc(int a)
function main (line 59) | int main(int argc,char **argv)
FILE: tools/cmoc/to7/k7tools/wav2k7.c
function mygetc (line 18) | int mygetc(FILE *f)
function myputc (line 24) | int myputc(int c,FILE *f)
function main (line 29) | int main(int argc, char **argv)
FILE: tools/cpm/imd118sc/ANY2IMD.C
function getvalue (line 133) | unsigned getvalue(unsigned char e)
function tstchar (line 282) | unsigned tstchar(void) asm
function getchar (line 296) | unsigned getchar(void) asm
function getint (line 307) | void getint(void) asm
function relint (line 323) | void relint(void) asm
function scancode (line 339) | unsigned scancode(unsigned char c)
function vputc (line 379) | void vputc(unsigned x, unsigned y, unsigned char c)
function vputs (line 387) | void vputs(unsigned char *s)
function vprintf (line 397) | register void vprintf(unsigned args)
function vcls (line 407) | void vcls(void)
function capture_screen (line 424) | void capture_screen(void)
function restore_screen (line 436) | void restore_screen(void)
function capture (line 448) | unsigned capture(unsigned char *ptr)
function xtstc (line 474) | void xtstc(void)
function setup_capture (line 488) | int setup_capture(void)
function keyboard (line 553) | void keyboard(unsigned ax)
function setcmd (line 661) | void setcmd(unsigned char *p, unsigned char *t)
function showcmd (line 689) | int showcmd(unsigned char op)
FILE: tools/cpm/imd118sc/BIN2IMD.C
type SIDE (line 43) | struct SIDE {
function filename (line 82) | void filename(unsigned char *p, unsigned char *name, unsigned char *ext)
function get_num (line 99) | unsigned char get_num(unsigned *value, unsigned l, unsigned h)
function checksize (line 138) | void checksize(unsigned v, unsigned s)
function get_map (line 147) | void get_map(unsigned char map[], unsigned *size, unsigned l, unsigned h)
function check_dup (line 181) | void check_dup(unsigned char map[], unsigned size)
function option (line 195) | int option(char flag)
function showmap (line 275) | void showmap(unsigned char *title, unsigned char Map[], unsigned size)
function validate (line 290) | void validate(unsigned side)
function read_format (line 343) | void read_format(void)
function write_track (line 377) | void write_track(unsigned char head)
FILE: tools/cpm/imd118sc/DMK2IMD.C
type DMK_header (line 27) | struct DMK_header {
function getbyte (line 119) | unsigned char getbyte(void)
FILE: tools/cpm/imd118sc/IMD.C
type SIDE (line 107) | struct SIDE {
type WINDOW (line 209) | struct WINDOW
function fmtrest (line 262) | void fmtrest(void)
function format_changed (line 272) | int format_changed(void)
function ppoff (line 284) | void ppoff(void)
function upCH (line 293) | void upCH(void)
function interleave (line 331) | void interleave(void)
function update_int (line 395) | void update_int(unsigned char *map)
function compute_gl (line 406) | void compute_gl(unsigned char iupdate)
function Cstat (line 466) | void Cstat(unsigned char c)
function upCYL (line 488) | void upCYL(void)
function prompt (line 501) | void prompt(unsigned char *p[], unsigned x)
function draw_scale (line 522) | void draw_scale(void)
function wcloseall (line 531) | void wcloseall(struct WINDOW *level)
function wintitle (line 540) | void wintitle(unsigned x, char *ptr)
function deselect_drive (line 554) | void deselect_drive(void)
function error (line 564) | register void error(unsigned args)
function merror (line 584) | void merror(unsigned char *p)
function help (line 595) | void help(unsigned section)
function xabort (line 756) | void xabort(void)
function tstabt (line 765) | void tstabt(void)
function wrfdc (line 778) | void wrfdc(unsigned char b)
function waitirq (line 838) | void waitirq(unsigned char c)
function initmode (line 885) | void initmode(void)
function initdma (line 897) | void initdma(unsigned char mode, unsigned count)
function wrcmd (line 916) | void wrcmd(unsigned c)
function rdfdc (line 926) | int rdfdc(void)
function rdfdc (line 949) | int rdfdc(void) asm
function result (line 990) | int result(unsigned m)
function recal (line 1005) | void recal(void)
function seek (line 1027) | void seek(unsigned c)
function resync (line 1050) | void resync(void)
function readid (line 1089) | int readid(void)
function diskerror (line 1098) | void diskerror(char *t)
function read_sector (line 1121) | int read_sector(unsigned index)
function write_sector (line 1148) | int write_sector(unsigned index, unsigned char df)
function adjmode (line 1175) | void adjmode(unsigned char dec)
function
Copy disabled (too large)
Download .json
Condensed preview — 8180 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,013K chars).
[
{
"path": ".devcontainer/devcontainer.json",
"chars": 1063,
"preview": "// For format details, see https://aka.ms/devcontainer.json. For config options, see the\n// README at: https://github.co"
},
{
"path": ".devcontainer/post-start.sh",
"chars": 55,
"preview": "sudo install /usr/local/bin/p2hex /usr/bin\nPATH=.:$PATH"
},
{
"path": ".gitignore",
"chars": 3816,
"preview": ".bash_history\r\n.python_history\r\ndeliverables\r\n**_shapes\r\nroms/mame/*.zip\r\nroms/vice/vic20/chargen\r\nroms/vice/vic20/kerna"
},
{
"path": "README.md",
"chars": 11508,
"preview": "\n\n# CROSS LIB\n\n\n*Cross-Lib* and games built with it (e.g., Chase, Shoo"
},
{
"path": "cfg/___empty.cfg",
"chars": 292,
"preview": "<?xml version=\"1.0\"?>\r\n<!-- This file is autogenerated; comments and unknown tags will be stripped -->\r\n<mameconfig ver"
},
{
"path": "cfg/default.cfg",
"chars": 178,
"preview": "<?xml version=\"1.0\"?>\r\n<!-- This file is autogenerated; comments and unknown tags will be stripped -->\r\n<mameconfig ver"
},
{
"path": "docs/ARCHITECTURES.md",
"chars": 544,
"preview": "## SUPPORTED ARCHITECTURES\r\n\r\n### 8-BIT ARCHITECTURES\r\n- COSMAC RCA 1802 and derivates\r\n- Intel 8080 and derivatives\r\n- "
},
{
"path": "docs/Alice32k.txt",
"chars": 3259,
"preview": "By Christophe Possamaï\r\n\r\n//***************************************\r\n//* CODE DEMO redefinition caractere *\r\n//* lign"
},
{
"path": "docs/BUILD.md",
"chars": 7612,
"preview": "\r\n\r\n# BUILD INSTRUCTIONS\r\n\r\n## Build the default target for a given system\r\n\r\nIn order to build a game or a test, you ne"
},
{
"path": "docs/BUILD_PROCESS.md",
"chars": 431,
"preview": "The `xl` script will trigger the full build process which will produce the target specific version of the project \r\nor m"
},
{
"path": "docs/COMPILERS.md",
"chars": 2388,
"preview": "\r\n# SUPPORTED COMPILERS\r\n\r\nThe program is written in ANSI C and currently compiled with \r\n- CC65 for all MOS 6502 target"
},
{
"path": "docs/COMPILER_NAMES.md",
"chars": 362,
"preview": "## Compiler names of currently supported compilers\r\n\r\n- `ack`\r\n- `cc65`\r\n- `cmoc`\r\n- `emcc` (totally experimental Emscri"
},
{
"path": "docs/CREDITS.txt",
"chars": 1184,
"preview": "CREDITS\n\nI have been helped by people who are involved in the cross compilers Z88Dk, CC65, CMOC, ACK, LCC1802, GCC for T"
},
{
"path": "docs/CROSSLIB.md",
"chars": 1327,
"preview": "## CROSSLIB\r\n\r\nFor each target, at least one of the following modes has to be implemented:\r\n1. memory-mapped graphics (d"
},
{
"path": "docs/CROSS_LIB_APIS.md",
"chars": 5052,
"preview": "\r\n# CROSS-LIB APIs\r\n\r\n\r\n\r\n## GRAPHICS\r\n\r\n\r\n\r\n`_XL_INIT_GRAPHICS()`\r\n\r\nIt initializes the graphics. Necessary for any bui"
},
{
"path": "docs/CROSS_LIB_APIS.txt",
"chars": 5177,
"preview": "--------------------------------------------------------------------------------------\r\nCROSS-LIB APIs\r\n----------------"
},
{
"path": "docs/CX16.txt",
"chars": 748,
"preview": "\r\nVERA ports:\r\nIn a nutshell the values at $9F20, $9F21 & $9F22 specify a starting VRAM address and an auto-increment va"
},
{
"path": "docs/Creativision_binary_structure.txt",
"chars": 4208,
"preview": "From FunnyMu source code:\r\n\r\n-----------------------------------\r\n\r\nReset CPU -> PC counter is initialized from values i"
},
{
"path": "docs/DISCLAIMER.md",
"chars": 840,
"preview": "# DISCLAIMER\r\n\r\nAll information on the site (https://github.com/Fabrizio-Caruso/CROSS-LIB) and the software it describes"
},
{
"path": "docs/EnglishArticle.md",
"chars": 25592,
"preview": "# CROSS-LIB\r\nby Fabrizio Caruso\r\n\r\n## INTRODUCTION\r\n\r\nThe goal of this article is to present Cross-Lib, briefly show how"
},
{
"path": "docs/GAMES.md",
"chars": 15177,
"preview": "# THE GAMES\r\n\r\n\r\n-------------------------------------------\r\n## TREX\r\n\r\n\r\nCONTROLS: "
},
{
"path": "docs/GIOCHI.md",
"chars": 9819,
"preview": "# I GIOCHI\r\n\r\n\r\nA secondo del sistema il gioco prevede \r\n- l'uso del joystick nella port più comune (in genere port 1 tr"
},
{
"path": "docs/HARDWARE_AGNOSTIC_CODE.md",
"chars": 3506,
"preview": "## HARDWARE-AGNOSTIC CODE\r\n\r\nThanks to Cross-Lib APIs, the game code can be *hardware-agnostic*.\r\nUsing only Cross-Lib A"
},
{
"path": "docs/HOW_TO_ADD_A_NEW_GAME.md",
"chars": 279,
"preview": "## HOW TO ADD A NEW GAME\r\n\r\nAdding a new game <game_name> is just a matter of \r\n- copying src/Makefile.bomber into src/M"
},
{
"path": "docs/HOW_TO_ADD_NEW_TARGET.txt",
"chars": 1848,
"preview": "HOW TO COMPILE FOR A NEW TARGET\r\n\r\nAdding a new target computer with no sound, no joystick/gamepad inpu \r\nand no user-de"
},
{
"path": "docs/HOW_TO_INSTALL_COMPILERS.txt",
"chars": 5182,
"preview": "-------------------------------------------------------------------------------------------------------\r\nXTC68\r\n--------"
},
{
"path": "docs/HOW_TO_LOAD.md",
"chars": 769,
"preview": "In order to run the game you will have to follow a different procedure depending on whether you want to load it into an "
},
{
"path": "docs/HOW_TO_LOAD_THE_GAME.md",
"chars": 40824,
"preview": "## HOW TO LOAD THE GAME\r\n\r\nThis document only describes some non-obvious procedures on how to load the game\r\non some emu"
},
{
"path": "docs/HOW_TO_LOAD_THE_GAME_ON_REAL_HARDWARE.md",
"chars": 1092,
"preview": "## Loading the game into a real vintage system\r\nThe loading procedure depends on the systems and the format used to stor"
},
{
"path": "docs/INSTALL.md",
"chars": 5033,
"preview": "## NO LOCAL INSTALLATION\r\n\r\nHaving a Dockerfile and a devcontainer configuration means that anyone with a GitHub account"
},
{
"path": "docs/LICENCE.txt",
"chars": 762,
"preview": "This software is provided 'as-is', without any express or implied warranty.\r\nIn no event will the authors be held liable"
},
{
"path": "docs/LINUX_SETUP.md",
"chars": 6183,
"preview": "# CROSS-LIB SET-UP UNDER LINUX\r\n\r\nWe give here the procedure to install Cross-Lib and its dependencies under Linux.\r\nIn "
},
{
"path": "docs/MSDOS_big_banging.txt",
"chars": 3176,
"preview": "Skip to content\r\nChat history\r\nYou said:\r\nHow can I produce sounds with the speaker by big banging in msdos 8086?\r\nChatG"
},
{
"path": "docs/PREREQUISITES.md",
"chars": 783,
"preview": "## Prerequisites\r\n\r\n- [Non-UNIX only] Install a POSIX environment if necessary, e.g., Cygwin.\r\n- Install `make` in your "
},
{
"path": "docs/PRESENTAZIONE_ITA/Documenti_on_line.txt",
"chars": 573,
"preview": "CROSS-LIB breve presentazione in italiano: https://github.com/Fabrizio-Caruso/CROSS-LIB/blob/master/docs/presentazione.m"
},
{
"path": "docs/PRESENTAZIONE_ITA/Giochi/EMULATORI_DA_USARE.txt",
"chars": 255,
"preview": "ATARI 8-bit: Altirra\r\nCommodore 64: Vice\r\nCommodore Vic 20 + 8k: Vice (settare memoria a +8k)\r\nGame Boy: Visual Boy Adva"
},
{
"path": "docs/SNAPSHOTS.md",
"chars": 315,
"preview": "## Snapshots\r\n\r\n\r\n\r\n\r\n\r\nIn principle you can compile the game with minimal input and output for a"
},
{
"path": "docs/TESTS.md",
"chars": 1113,
"preview": "## COMPILATION TESTS\r\n\r\nWe can test the compilation of the game for multiple targets by running some tests that build a "
},
{
"path": "docs/THE_GAME.txt",
"chars": 1672,
"preview": "THE GAME\r\nby Fabrizio Caruso\r\n\r\n- Game idea\r\n\r\nThe idea behind the game was my own and it was not inspired by any other "
},
{
"path": "docs/TILES.txt",
"chars": 5602,
"preview": "TILES\r\n\r\nIn the code we use the name tiles for different things:\r\n- tile absolute index [used to display] \"_TILE_{inde"
},
{
"path": "docs/TODO.txt",
"chars": 15908,
"preview": "TODO\n\n 1. Improve documentation on how to add new targets\n\n 2. Factorize cmoc/stdlib includes in all concerned files\n\n 3"
},
{
"path": "docs/VGA_from_protected_mode.txt",
"chars": 4469,
"preview": "vga_mode13.s (ACK / Minix-386 assembly)\r\n .globl set_mode13h\r\n .globl set_textmode\r\n .globl init"
},
{
"path": "docs/VZ.txt",
"chars": 77,
"preview": "VZ keyboard echo fix\r\n\r\n*((byte *)0x7839) |= 1; (that is, set bit 0 to \"1\")\r\n"
},
{
"path": "docs/XL.md",
"chars": 3004,
"preview": "## BUILDING PROJECTS\r\n\r\nWe recommend to use `xl` (equivalent to `xl build`) to build projects.\r\n\r\n### Using `xl`\r\n\r\nI re"
},
{
"path": "docs/alt_conio_fonts.s",
"chars": 12741,
"preview": "; The internal font structure for Atari7800 needs a full set of 128\r\n; characters. Each character is 16 x 8 bits.\r\n; The"
},
{
"path": "docs/articles/CALL_APPLE/apple2.txt",
"chars": 24420,
"preview": "\r\n[INSERT LOGO PICTURE HERE]\r\n\r\n[If desired, also INSERT PHOTO OF THE AUTHOR]\r\n\r\n# INTRODUCTION\r\n\r\nThe goal of this arti"
},
{
"path": "docs/articles/article.txt",
"chars": 6598,
"preview": "CROSS CHASE\r\nA massively 8-bit multi-system game\r\n\r\nMYSELF - THE AUTHOR\r\nMy name is Fabrizio Caruso, I am a software eng"
},
{
"path": "docs/articles/articolo_ITA.txt",
"chars": 7782,
"preview": "CROSS CHASE\r\nUn gioco estremamente multi-sistema di Fabrizio Caruso\r\n\r\n# L'autore\r\nMi chiamo Fabrizio Caruso. Sono uno s"
},
{
"path": "docs/bbc/chibiakumas.txt",
"chars": 50,
"preview": "\r\n\r\nhttps://www.chibiakumas.com/6502/bbc.php\r\n\r\n\r\n"
},
{
"path": "docs/bbc/putchar.txt",
"chars": 688,
"preview": "FYI I have uploaded a new release of vbcc6502. For the bbc target I have\r\nadded a function to suppress the conversion of"
},
{
"path": "docs/bbc_sounds/bbc.h",
"chars": 1789,
"preview": "typedef struct {\n int channel;\n int amplitude;\n int pitch;\n int duration;\n} bbc_sound;\n\n\nchar OSBYTE0(__reg(\"a\") cha"
},
{
"path": "docs/bbc_sounds/bbctest.c",
"chars": 282,
"preview": "#include <stdio.h>\n\n#include \"bbc.h\"\n\nbbc_sound snd = {1,-15,200,20};\n\nmain()\n{\n unsigned int i=0;\n puts(\"playing soun"
},
{
"path": "docs/compilation_parameters.txt",
"chars": 346,
"preview": "\r\n-------------------------------------\r\nNO_MESSAGE\r\n\r\nIt disables:\r\n- printGameOver\r\n- gameCompleted\r\n- _printScoreOnRo"
},
{
"path": "docs/compiler_install.txt",
"chars": 1311,
"preview": "(1) TMS9900-GCC\r\nhttps://github.com/mburkley/tms9900-gcc\r\n\r\nVery simple instructions are here: https://github.com/mburkl"
},
{
"path": "docs/conio_macros_vs_functions.txt",
"chars": 3495,
"preview": "xl snake c16_16k_conio\r\n\r\n\r\nBEFORE (with macros for _XL_CHAR, _XL_PRINT):\r\nld65: Warning: cross_lib/cfg//cc65/c16-16k.cf"
},
{
"path": "docs/docker.txt",
"chars": 698,
"preview": "\r\n# CROSS-LIB in GitHubCodeSpaces \r\n\r\nhttps://github.com/codespaces/\r\n\r\n\r\n# CROSS-LIB in a Docker container\r\n\r\n## BUILD "
},
{
"path": "docs/games/BOMBER.txt",
"chars": 1797,
"preview": "BOMBER\r\nBomber is a mini-game and clone of Air Attack (aka Blitz) that first appeared on the Commodore Pet. \r\nThe game i"
},
{
"path": "docs/games/CHASE.txt",
"chars": 2088,
"preview": "CHASE\r\n\r\nCross Chase is somehow similar to Daleks / Gnome Robots. You need to lure your pursuers into the mines.\r\nThe ma"
},
{
"path": "docs/games/HORDE.txt",
"chars": 1872,
"preview": "HORDE\r\n\r\nHorde is a zombie-themed shooter with many power-ups and several different enemies, levels and special items to"
},
{
"path": "docs/games/SHOOT.txt",
"chars": 2267,
"preview": "SHOOT\r\n\r\nShoot is a shooter somehow similar to Robotron. You have to kill a horde of ghosts on each level.\r\nYou can kill"
},
{
"path": "docs/games/SNAKE.txt",
"chars": 2191,
"preview": "SNAKE\r\n\r\nSnake is my personal interpretation of a hybrid game between Nibbler (arcade game) and the Nokia Snake game to "
},
{
"path": "docs/games/VERBIX.txt",
"chars": 1734,
"preview": "VERBIX\r\n\r\nVerbix is a Scrabble-like game that looks also a bit like Tetris.\r\nIn this game you have to form valid 5-lette"
},
{
"path": "docs/generic_tiles.txt",
"chars": 2213,
"preview": "GENERIC TILES\r\n\r\nNAMES USED IN THE CODE\r\nIn the code we use the name tiles for different things:\r\n- tile absolute index "
},
{
"path": "docs/hector_sound.txt",
"chars": 866,
"preview": "\r\nPour 2HR - CALL 0x07BF\r\nPour HRX - CALL 0x1A09\r\nIl faut préalablement définir DE pour la longueur\r\nEt BC pour le pério"
},
{
"path": "docs/manual/XSize.txt",
"chars": 86,
"preview": "XSize\r\n\r\nNumber of tiles that can be displayed horizontally on the (usable) screen\r\n\r\n"
},
{
"path": "docs/manual/YSize.txt",
"chars": 82,
"preview": "YSize\r\n\r\nNumber of tiles that can be displayed vertically on the (usable) screen\r\n"
},
{
"path": "docs/manual/_XL_CHAR.txt",
"chars": 104,
"preview": "_XL_CHAR(X,Y,C)\r\n\r\nIt displays the C character at position X,Y with the color set by _XL_SET_TEXT_COLOR."
},
{
"path": "docs/manual/_XL_CLEAR_SCREEN.txt",
"chars": 51,
"preview": "_XL_CLEAR_SCREEN()\r\n\r\nIt clears the whole screen.\r\n"
},
{
"path": "docs/manual/_XL_DELETE.txt",
"chars": 83,
"preview": "_XL_DELETE(X,Y)\r\n\r\nIt deletes a tile-sized area of the screen at position (X,Y)\r\n\r\n"
},
{
"path": "docs/manual/_XL_DOWN.txt",
"chars": 161,
"preview": "_XL_DOWN(J)\r\n\r\nThis Boolean function returns 1 (true) if J represents the down movement, and 0 (false) otherwise.\r\nJ is "
},
{
"path": "docs/manual/_XL_DRAW.txt",
"chars": 284,
"preview": "_XL_DRAW(X, Y, T, C)\r\n\r\nIt displays tile T at position (X,Y) with color C if color C is available or its \"closest\" match"
},
{
"path": "docs/manual/_XL_EXPLOSION_SOUND.txt",
"chars": 48,
"preview": "_XL_EXPLOSION_SOUND()\r\n\r\nShort explosion noise\r\n"
},
{
"path": "docs/manual/_XL_FIRE.txt",
"chars": 159,
"preview": "_XL_FIRE(J)\r\n\r\nThis Boolean function returns 1 (true) if J represents the fire button, and 0 (false) otherwise.\r\nJ is su"
},
{
"path": "docs/manual/_XL_INIT_GRAPHICS.txt",
"chars": 122,
"preview": "_XL_INIT_GRAPHICS()\r\n\r\nIt initializes the graphics. Necessary for any build that wants to show anything on the screen.\r\n"
},
{
"path": "docs/manual/_XL_INIT_INPUT.txt",
"chars": 126,
"preview": "_XL_INIT_INPUT()\r\n\r\nIt initializes the input (joystick/keyboard). Necessary for any program that needs to receive an inp"
},
{
"path": "docs/manual/_XL_INIT_SOUND.txt",
"chars": 101,
"preview": "_XL_INIT_SOUND()\r\n\r\nIt initializes the sound system. Necessary for any program that produces sound.\r\n"
},
{
"path": "docs/manual/_XL_INPUT.txt",
"chars": 278,
"preview": "_XL_INPUT()\r\n\r\nIt returns a value J that represents the specific received input or absence of input at the moment of its"
},
{
"path": "docs/manual/_XL_KEY_PRESSED.txt",
"chars": 99,
"preview": "_XL_KEY_PRESSED()\r\n\r\nThis Boolean function returns 1 (true) if any key or fire button is pressed.\r\n"
},
{
"path": "docs/manual/_XL_LEFT.txt",
"chars": 161,
"preview": "_XL_LEFT(J)\r\n\r\nThis Boolean function returns 1 (true) if J represents the left movement, and 0 (false) otherwise.\r\nJ is "
},
{
"path": "docs/manual/_XL_PING_SOUND.txt",
"chars": 46,
"preview": "_XL_PING_SOUND()\r\n\r\nShort high-pitched sound\r\n"
},
{
"path": "docs/manual/_XL_PRINT.txt",
"chars": 432,
"preview": "_XL_PRINT(X,Y,S)\r\n\r\nIt prints the \"Cross-Lib string\" S starting a position (X,Y) with the color set by _XL_SET_TEXT_COLO"
},
{
"path": "docs/manual/_XL_PRINTD.txt",
"chars": 155,
"preview": "_XL_PRINTD(X,Y,L,N)\r\n\r\nIt prints the positive integer number N in L digits (1<=L<=5) starting at position (X,Y) with the"
},
{
"path": "docs/manual/_XL_RAND.txt",
"chars": 74,
"preview": "_XL_RAND()\r\n\r\nIt generates a pseudo-random number in the range [0,32767]\r\n"
},
{
"path": "docs/manual/_XL_RIGHT.txt",
"chars": 163,
"preview": "_XL_RIGHT(J)\r\n\r\nThis Boolean function returns 1 (true) if J represents the right movement, and 0 (false) otherwise.\r\nJ i"
},
{
"path": "docs/manual/_XL_SET_TEXT_COLOR.txt",
"chars": 288,
"preview": "_XL_SET_TEXT_COLOR(C)\r\n\r\nIt sets the text color to C. Such color will be used on next _XL_PRINT, _XL_PRINTD, _XL_CHAR fo"
},
{
"path": "docs/manual/_XL_SHOOT_SOUND.txt",
"chars": 47,
"preview": "_XL_SHOOT_SOUND()\r\n\r\nVery short shoot noise\r\n\r\n"
},
{
"path": "docs/manual/_XL_SLEEP.txt",
"chars": 95,
"preview": "_XL_SLEEP(S)\r\n\r\nIt waits S seconds or an approximations of S seconds depending on the target\r\n"
},
{
"path": "docs/manual/_XL_SLOW_DOWN.txt",
"chars": 52,
"preview": "_XL_SLOW_DOWN(T)\r\n\r\nIt waits T loops (0<=T<=65535)\r\n"
},
{
"path": "docs/manual/_XL_TICK_SOUND.txt",
"chars": 51,
"preview": "_XL_TICK_SOUND()\r\n\r\nVery short high-pitched sound\r\n"
},
{
"path": "docs/manual/_XL_TOCK_SOUND.txt",
"chars": 50,
"preview": "_XL_TOCK_SOUND()\r\n\r\nVery short low-pitched sound\r\n"
},
{
"path": "docs/manual/_XL_UP.txt",
"chars": 159,
"preview": "_XL_UP(J)\r\n\r\nThis Boolean function returns 1 (true) if J represents the up movement, and 0 (false) otherwise.\r\nJ is supp"
},
{
"path": "docs/manual/_XL_WAIT_FOR_INPUT.txt",
"chars": 78,
"preview": "_XL_WAIT_FOR_INPUT()\r\n\r\nIt waits for any key or fire button to be pressed.\r\n\r\n"
},
{
"path": "docs/manual/_XL_ZAP_SOUND.txt",
"chars": 39,
"preview": "_XL_ZAP_SOUND()\r\n\r\nShort rising sound\r\n"
},
{
"path": "docs/mc10.txt",
"chars": 90,
"preview": "Multicolor graphics\r\n\r\nDisable Interrupt with SEI\r\nCLI to enable\r\n\r\nPOKE 49151,36\r\n\r\n$4000"
},
{
"path": "docs/mc10_2.txt",
"chars": 129923,
"preview": "; Radio Shack MC-10 Disassembly\r\n; (C) Copyright 1999 Kevin Timmerman\r\n;\tAdditional annotation by Greg D.\r\n;\tFixed and m"
},
{
"path": "docs/mega65.txt",
"chars": 50,
"preview": "https://dansanderson.com/mega65/taste-the-rainbow/"
},
{
"path": "docs/presentazione.md",
"chars": 2445,
"preview": "# CROSS-LIB \r\nUna breve presentazione\r\n\r\n## COSA E'?\r\nCross-Lib è una libreria C e alcuni strumenti che permettono di sc"
},
{
"path": "docs/presentazione.txt",
"chars": 2282,
"preview": "CROSS-LIB \r\nUna breve presentazione\r\n\r\nCOSA E'?\r\nCross-Lib è una libreria C e alcuni strumenti che permettono di scriver"
},
{
"path": "docs/requirements.txt",
"chars": 156,
"preview": "REQUIREMENTS\n\nIn order to build the binaries for all targets, you need the compilers (see README.md) and some additional"
},
{
"path": "docs/zzap_issue.txt",
"chars": 2372,
"preview": "Are PSG sound routines on the Spectrum target suppose to work as on other A&-3-8910 targets?\r\n\r\nI am testing with the Sp"
},
{
"path": "logs/.gitkeep",
"chars": 0,
"preview": ""
},
{
"path": "roms/mame/.keepthisfile.txt",
"chars": 16,
"preview": "keep this file\n\n"
},
{
"path": "roms/vice/c64/.keepthisfile.txt",
"chars": 16,
"preview": "keep this file\n\n"
},
{
"path": "roms/vice/pet/.keepthisfile.txt",
"chars": 16,
"preview": "keep this file\n\n"
},
{
"path": "roms/vice/plus4/.keepthisfile.txt",
"chars": 16,
"preview": "keep this file\n\n"
},
{
"path": "roms/vice/vic20/.keepthisfile.txt",
"chars": 16,
"preview": "keep this file\n\n"
},
{
"path": "src/Makefile_common",
"chars": 133322,
"preview": "######################################################################\n# Common Makefile\n\n\nSOURCE_PATH := $(PARENT_DIR)/"
},
{
"path": "src/assets/LoggerSingleton.py",
"chars": 1870,
"preview": "import logging\r\nimport datetime\r\n\r\n\r\n# global logger \r\n\r\n# logger = None\r\n\r\nclass LoggerSingleton:\r\n \r\n @staticmet"
},
{
"path": "src/assets/__init__.py",
"chars": 1,
"preview": " "
},
{
"path": "src/assets/copy_assets.py",
"chars": 720,
"preview": "#!/bin/python\n\n\nimport shutil\n\nimport os,sys\n\n\nif len(sys.argv)<2:\n game_dir = \"chase\"\nelse:\n game_dir = sys.argv["
},
{
"path": "src/assets/examples/README.txt",
"chars": 108,
"preview": "Some of the sample BASIC programs and code excerpts are taken from\r\nhttps://gkanold.wixsite.com/homeputerium"
},
{
"path": "src/assets/examples/single_tiles/tile_shape0.txt",
"chars": 72,
"preview": "...##...\n..#..#..\n...##...\n.##..##.\n#.####.#\n# ####.#\n..#..#..\n..#..#..\n"
},
{
"path": "src/assets/examples/single_tiles/tile_shape1.txt",
"chars": 118,
"preview": "...#.... 16\n..###... 56\n..#.###. 46\n.##...## 99\n##...##. 198\n.###.#.. 116\n...###.. 28\n....#... 8\n\n\n\n\n\n\n"
},
{
"path": "src/assets/examples/tile_sets/asm/8x6_cidelsa_digits.s",
"chars": 537,
"preview": "\r\n!byte $1E, $21, $21, $21, $1E, $00, $00, $00\r\n \r\n!byte $01, $3F, $21, $11, $01, $00, $00, $00\r\n \r\n!byte $11, $29, $25,"
},
{
"path": "src/assets/examples/tile_sets/asm/8x6_cidelsa_fonts.s",
"chars": 1278,
"preview": "\r\n!byte $00, $1F, $28, $28, $28, $3F, $1F, $00\r\n\r\n!byte $00, $16, $29, $29, $29, $3F, $3F, $00\r\n \r\n!byte $00, $12, $21, "
},
{
"path": "src/assets/examples/tile_sets/asm/Antiriad_Chars.asm",
"chars": 2243,
"preview": "\r\n\r\n; CHARSET IMAGE DATA...\r\n; 48 images, 8 bytes per image, total size is 384 ($180) bytes.\r\n\r\ncharset_data\r\n\r\n.byte $0"
},
{
"path": "src/assets/examples/tile_sets/asm/test_vchar-charset.s",
"chars": 9886,
"preview": "; Exported using VChar64 v0.2.4\n; Total bytes: 2048\ncharset:\nfoo .byte $3c,$66,$6e,$6e,$60,$62,$3c\n.byte $00,$18,$3c,$66"
},
{
"path": "src/assets/examples/tile_sets/asm/tile_8x6_shapeA.txt",
"chars": 54,
"preview": "!byte 0x00, 0x1F, 0x28, 0x28, 0x28, 0x3F, 0x1F, 0x00\n\n"
},
{
"path": "src/assets/examples/tile_sets/asm/tile_8x6_shapeA_rotated.txt",
"chars": 29,
"preview": "!byte 0,0,60,98,126,98,98,98\n"
},
{
"path": "src/assets/examples/tile_sets/asm/tiles_all.asm",
"chars": 64,
"preview": "Charset_00_data:\r\n!byte $18, $24, $18, $66, $BD, $3C, $24, $24\r\n"
},
{
"path": "src/assets/examples/tile_sets/asm/tiles_all_2.asm",
"chars": 16015,
"preview": "\r\n\r\n; Generated by CharPad 2.7, assemble with 64TASS or similar.\r\n\r\n\r\n; Character display mode : Multi-colour (MCM).\r\n\r\n"
},
{
"path": "src/assets/examples/tile_sets/asm/tiles_bin.asm",
"chars": 136,
"preview": "\r\n.byte %01010101\r\n.byte %11111111\r\n.byte %10101010\r\n.byte %00110011\r\n.byte %11001100\r\n.byte %01010101\r\n.byte %10101010\r"
},
{
"path": "src/assets/examples/tile_sets/asm/tiles_charPad.asm",
"chars": 10559,
"preview": "\r\n\r\n\r\n; CHARSET IMAGE DATA...\r\n; 256 images, 8 bytes per image, total size is 2048 ($800) bytes.\r\n\r\ncharset_data\r\n\r\n.byt"
},
{
"path": "src/assets/examples/tile_sets/asm/tiles_magellan.a99",
"chars": 95,
"preview": " \r\nPAT0 DATA >1824,>1866,>BD3C,>2424 \r\nPAT1 DATA >0000,>0000,>0000,>0000 \r\n"
},
{
"path": "src/assets/examples/tile_sets/asm/tiles_magellan_2.a99",
"chars": 6972,
"preview": "CLRNUM DATA 256 \r\nCLRSET BYTE >10,>10,>10,>10 \r\n BYTE >10,>10,>10,>10 "
},
{
"path": "src/assets/examples/tile_sets/basic/test.txt",
"chars": 2573,
"preview": "\r\n20 SYMBOL AFTER 32\r\n30 REM Upper case chars\r\n40 SYMBOL 65,126,66,66,126,98,98,98,0\r\n50 SYMBOL 66,126,66,66,126,98,98,1"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_atari.bas",
"chars": 1036,
"preview": "\r\n1560 DATA 0,6,15,249,239,6,0,0\r\n1570 DATA 34,148,65,58,124,62,122,60\r\n1580 DATA 251,251,251,0,223,223,223,223\r\n1590 DA"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_atari_2.bas",
"chars": 1146,
"preview": "0A=PEEK(106)-4:POK.106,A:GR.17:U=256*A:F.I=28TO432:POK.U+I,PEEK(57344+I):N.I:F.I=64TO79:REA.J:POK.U+I,J:N.I:H=400\r\n1DIMN"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_bbc.bas",
"chars": 235,
"preview": "10 REM Walking alien\r\n20 MODE 6\r\n30 VDU 23,240,153,189,219,126,36,60,36,36\r\n40 PRINT TAB(0,10);CHR$(240)\r\n50 FOR I%=1 TO"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cbm.bas",
"chars": 1006,
"preview": "000 REM ** USER DEFINED GRAPHICS **\r\n001 REM ** BY SHANE JOLLY **\r\n100 PRINT \"♥\": PRINT TAB(12)\"PLEASE WAIT...\"\r\n110 PRI"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cbm_10_liner.bas",
"chars": 1066,
"preview": "0l=32:v=36878:fOk=.to4:rEb$:fOi=1to8:pO7167+i+k*8,aS(mI(b$,i)):pO7421+i,.:nE:nE\r\n1pO52,26:pO56,26:n=1:t=30720:pOv-9,255:"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cbm_10_liner_2.bas",
"chars": 1043,
"preview": "0pO56,26:pO52,26:v=36878:x=132:pOv-9,255:fOp=.to39:rEb:pO7168+p,b:pO7421+p,.:nE\r\n1e=22:z=218:o=4:y=3:b=7:p=8174:pO650,z:"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cbm_10_liner_3.bas",
"chars": 1092,
"preview": "0pO56,28:pO52,28:n=36879:w=49:rEb$:fOk=1to48:pO7559+k,aS(mI(b$,k)):pO7421+k,.:nE\r\n1v=n-1:pOv-9,255:g=198:u=22:z=8186:t=3"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cbm_10_liner_4.bas",
"chars": 1065,
"preview": "0v=36878:t=30720:pokev+1,110:b=7816:c=b+12:z=65:q=.:g=160:dimc(g):pokev-9,255:data17,85\r\n1fori=1to16:reade:poke7167+i,25"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cbm_2.bas",
"chars": 6938,
"preview": "1 goto800\r\n2 poke53280,6:poke53281,1\r\n5 s=1304:ex=1:l=3:sc=0:so=54272\r\n10 pokeso+24,15:pokeso+5,17:pokeso+6,16:pokeso,10"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_cpc.bas",
"chars": 2573,
"preview": "\r\n20 SYMBOL AFTER 32\r\n30 REM Upper case chars\r\n40 SYMBOL 65,126,66,66,126,98,98,98,0\r\n50 SYMBOL 66,126,66,66,126,98,98,1"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_msx_headless_hex.bas",
"chars": 1589,
"preview": "\r\n490 DATA 22,63,F7,B7,FF,7E,3C,3C ' a\r\n491 DATA 38,6C,FF,3F,0F,3F,FC,38 ' b\r\n492 DATA 3C,3C,7E,FF,ED,EF,C6,44 ' c\r\n493 "
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_oric.bas",
"chars": 3265,
"preview": "10 REM Golf\r\n20 CH=46080\r\n30 FOR Q=1 TO 3\r\n40 READ C\r\n50 FOR I=0 TO 7\r\n60 READ D\r\n70 POKE CH+C+I,D\r\n80 NEXT I\r\n90 NEXT Q"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_oric_2.bas",
"chars": 798,
"preview": "0DATA,12,,30,45,12,18,51,63,63,45,30,12,12,18,51,,61,61,61,,47,47,47,18,12,30'\r\n1DIME(40):DEFFNR(X)=INT(RND(1)*36)+2:FOR"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_oric_3.bas",
"chars": 778,
"preview": "0PAPER0:INK7:FORA=0TO15:READV:POKE47368+A,V:NEXT:DATA0,28,56,63,63,56,28,0,54\r\n1HIRES:POKE#26A,10:Q=14:P=-14:X=231:Y=100"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_oric_4.bas",
"chars": 765,
"preview": "0PAPER0:INK7:TEXT:FORI=0TO15:READA:POKE#B908+I,A:NEXT:DEFFNR(X)=RND(1)*X:G=.1\r\n1HIRES:Y=150:M=3:FORI=12TO230STEP6:R=FNR("
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_oric_5.bas",
"chars": 792,
"preview": "0 U=520:W=34:X=20:Y=25:P=X:DIMJ(40):M=123:B=32:A=125:Z=124:O=24:GOSUB7:REPEAT\r\n1 K=PEEK(U):PLOTX,Y,B:X=X+(K=170ANDX>2):X"
},
{
"path": "src/assets/examples/tile_sets/basic/tiles_sinclair.bas",
"chars": 247,
"preview": "5 POKE USR \"a\"+0,BIN 0000000\r\n10 POKE USR \"a\"+1,BIN 0001000\r\n20 POKE USR \"a\"+2,BIN 0011100\r\n30 POKE USR \"a\"+3,BIN 011111"
},
{
"path": "src/assets/generate_assets.py",
"chars": 10203,
"preview": "#!/bin/python\n\nimport os\nimport sys\n\n# sys.path.append(\"..\")\n\nfrom LoggerSingleton import *\n\nglobal logger\n\nif len(sys.a"
},
{
"path": "src/assets/templates/4x4/4x4_chars.h.template",
"chars": 1152,
"preview": "#ifndef _4X4_CHARS\r\n#define _4X4_CHARS\r\n\r\n#define _TILE_0_UDG { <tile_0>}\r\n#define _TILE_1_UDG { <tile_1>}\r\n#def"
},
{
"path": "src/assets/templates/6x8/6x8_chars.h.template",
"chars": 3601,
"preview": "#ifndef _6X8_CHARS\n#define _6X8_CHARS\n\n // A - Z\n\t#define _TILE_A { 0x08, 0x1C, 0x22, 0x22, 0x3E, 0x22, 0x22, 0x00 }\n"
},
{
"path": "src/assets/templates/6x8/z88dk_6x8_pmd85.asm.template",
"chars": 5999,
"preview": "SECTION rodata_font\r\nSECTION rodata_font_6x8\r\n\r\nPUBLIC _udgs\r\nPUBLIC _udgs_end\r\n\r\n_udgs:\r\n\r\n\tdefb %\"------\"\r\n\tdefb %\"---"
},
{
"path": "src/assets/templates/6x9/6x9_chars.h.template",
"chars": 3684,
"preview": "#ifndef _6X9_CHARS\r\n#define _6X9_CHARS\r\n\r\n\r\n // A - Z\r\n\t#define _TILE_A { 0x08, 0x1C, 0x22, 0x22, 0x3E, 0x22, 0x22, 0"
},
{
"path": "src/assets/templates/7x8/7x8_chars.h.template",
"chars": 3717,
"preview": "#ifndef _7X8_CHARS\r\n#define _7X8_CHARS\r\n\r\n\r\n // A - Z\r\n\t#define _TILE_A { 0x08, 0x1C, 0x22, 0x22, 0x3E, 0x22, 0x22, 0"
},
{
"path": "src/assets/templates/8x6/8x6_chars.h.template",
"chars": 2713,
"preview": "#ifndef _8x6_C_DEFINITION\r\n#define _8x6_C_DEFINITION\r\n\r\n#include \"standard_libs.h\"\r\n\r\n\r\n // A - Z\r\n\t#define _TILE_A {"
},
{
"path": "src/assets/templates/8x6/8x6_tiles.s.template",
"chars": 934,
"preview": "\t\t.export __compressed_tile_data\r\n\r\n__compressed_tile_data:\r\n\r\n; tile 0\r\n.byte <tile_0>\r\n\r\n; tile 1\r\n.byte <tile_1"
},
{
"path": "src/assets/templates/8x6/z88dk_8x6_sprites_definitions.h.template",
"chars": 10579,
"preview": "#ifndef _Z88DK_8X6_SPRITES_DEFINITIONS\r\n#define _Z88DK_8X6_SPRITES_DEFINITIONS\r\n\r\n\r\n__asm\r\n\t._sprites\r\n\r\n; 0\r\n\tdefb 8"
},
{
"path": "src/assets/templates/8x8/8x8_chars.h.template",
"chars": 3478,
"preview": "#ifndef _8X8_CHARS\r\n#define _8X8_CHARS\r\n\r\n\r\n// A - Z\r\n#define _TILE_A { 0x38,0x6c,0xc6,0xc6,0xfe,0xc6,0xc6,0x00 }\r\n#defi"
},
{
"path": "src/assets/templates/8x8/cc65_agat.s.template",
"chars": 1808,
"preview": "\t\t.export _udgs\n\n_udgs:\n\n.byte <tile_0>\n\n.byte <tile_1>\n\n.byte <tile_2>\n\n.byte <tile_3>\n\n.byte <tile_4>\n\n.byte <tile_5>\n"
},
{
"path": "src/assets/templates/8x8/cc65_gamate_tiles.s.template",
"chars": 5202,
"preview": "; VGA charset for the Gamate conio implementation\n\n.export fontdata\n\n.rodata\n\nfontdata:\n.byte <tile_26>\n.byte <tile_13>\n"
},
{
"path": "src/assets/templates/8x8/cc65_nes_color_tiles.s.template",
"chars": 166320,
"preview": "; ------------------------------------------------------------------------\n; Character data\n; --------------------------"
},
{
"path": "src/assets/templates/8x8/cc65_nes_tiles.s.template",
"chars": 206823,
"preview": "\t\t.segment \"CHARS\"\n\t\t.export _Charset\n\n_Charset:\n\n .byte %00000000 ; 0000 1-00: \n .byte "
},
{
"path": "src/assets/templates/8x8/cc65_pce_tiles.s.template",
"chars": 5957,
"preview": ";----------------------------------------------------------------------------\r\n; VGA font for the PC-Engine conio implem"
},
{
"path": "src/assets/templates/8x8/cc65_udc.s.template",
"chars": 1974,
"preview": "\t\t.segment \"GFX\"\n\t\t.export _udgs\n\n_udgs:\n\n.byte <tile_26> \n.byte $38,$6c,$c6,$c6,$fe,$c6,$c6,$00 ; a\n.byt"
},
{
"path": "src/assets/templates/8x8/cc65_udc_64_chars.s.template",
"chars": 2360,
"preview": "\t\t.segment \"UDCCHAR\"\n\t\t.export _Charset\n\n_Charset:\n\n; 0xFE super\n.byte <tile_18>\n\n.byte <tile_21>\n\n.byte <tile_22>\n\n.byt"
},
{
"path": "src/assets/templates/8x8/cc65_udc_6chars.s.template",
"chars": 147,
"preview": "\n\t\t.segment \"UDCCHAR\"\n\t\t.export _Charset\n\n_Charset:\n\n.byte <tile_4>\n.byte <tile_5>\n.byte <tile_1>\n.byte <tile_0>\n.byte <"
},
{
"path": "src/assets/templates/8x8/cc65_udc_arcade.s.template",
"chars": 1953,
"preview": "\t\t.segment \"GFX\"\n\t\t.export _udgs\n\n_udgs:\n\n.byte <tile_26> \n.byte $38,$6c,$c6,$c6,$fe,$c6,$c6,$00 ; a\n.by"
},
{
"path": "src/assets/templates/8x8/cc65_udc_arcade_64_chars.s.template",
"chars": 2373,
"preview": "\t\t.segment \"UDCCHAR\"\n\t\t.export _Charset\n\n_Charset:\n\n\n; right missile\n.byte <tile_15>\n\n\n; 0xFD freeze\n; formerly 17\n.byte"
},
{
"path": "src/assets/templates/8x8/cc65_udc_arcade_VIC20.s.template",
"chars": 1943,
"preview": "\t\t.segment \"GFX\"\n\t\t.export _udgs\n\n_udgs:\n\n\n.byte $00,$00,$00,$00,$00,$00,$00,$00 ; 32\n\n.byte <tile_7> ;(33)\n.byte <tile_"
},
{
"path": "src/assets/templates/8x8/cc65_udc_arcade_conio.s.template",
"chars": 2911,
"preview": "\t\t.segment \"GFX\"\n\t\t.export _udgs\n\n_udgs:\n\n.byte <tile_26> \n.byte $38,$6c,$c6,$c6,$fe,$c6,$c6,$00 ; a\n.by"
},
{
"path": "src/assets/templates/8x8/cc65_udc_arcade_v2.s.template",
"chars": 1965,
"preview": "\t\t.segment \"GFX\"\r\n\t\t.export _udgs\r\n\r\n_udgs:\r\n\r\n\r\n.byte $00,$00,$00,$00,$00,$00,$00,$00 ; 32\r\n\r\n.byte <tile_7> ;(33)\r\n.by"
},
{
"path": "src/assets/templates/8x8/cc65_udc_atari7800_160A.s.template",
"chars": 1513,
"preview": "\r\n0,0,0,0,0,0,0,0\r\n\t\r\n\r\n$38,$4c,$c6,$c6,$c6,$64,$38,$00\r\n$30,$70,$30,$30,$30,$30,$fc,$00\r\n$7c,$c6,$0e,$3c,$60,$c0,$fe,$0"
},
{
"path": "src/assets/templates/8x8/cc65_udc_vic20_19_tiles.s.template",
"chars": 820,
"preview": "\t\t.segment \"UDCCHAR\"\r\n\t\t.export _Charset\r\n\r\n_Charset:\r\n\r\n\r\n; 0xEC player up\r\n.byte <tile_1>\r\n\r\n; 0xED gun\r\n.byte <tile_9"
},
{
"path": "src/assets/templates/8x8/cc65_udc_vic20_25_tiles.s.template",
"chars": 982,
"preview": "\t\t.segment \"UDCCHAR\"\r\n\t\t.export _Charset\r\n\r\n_Charset:\r\n\r\n; 0xE6\r\n.byte <tile_19>\r\n\r\n; 0xE7\r\n.byte <tile_20>\r\n\r\n; 0xE8\r\n."
},
{
"path": "src/assets/templates/8x8/cc65_udc_vic20_27_tiles.s.template",
"chars": 1038,
"preview": "\t\t.segment \"UDCCHAR\"\r\n\t\t.export _Charset\r\n\r\n_Charset:\r\n\r\n\r\n; 0xE4\r\n.byte <tile_19>\r\n\r\n; 0xE5\r\n.byte <tile_20>\r\n\r\n; 0xE6\r"
},
{
"path": "src/assets/templates/8x8/cc65_udc_vic20_64_chars.s.template",
"chars": 1740,
"preview": "\t\t.segment \"UDCCHAR\"\n\t\t.export _Charset\n\n_Charset:\n\n\n\n\n\n.byte <tile_0>, $38,$6c,$c6,$c6,$fe,$c6,$c6,$00 ; a (65)\n.byte $"
},
{
"path": "src/assets/templates/8x8/cmoc_udc_tiles.s.template",
"chars": 2503,
"preview": "* 6809 assembly program generated by cmoc 0.1.56\r\n\r\n\r\n\tSECTION\tcode\r\n\r\n\r\n_udgs\tEXPORT\r\n\r\n\r\n\tENDSECTION\r\n\r\n\r\n\r\n\r\n\tSECTION"
},
{
"path": "src/assets/templates/8x8/cmoc_udc_tiles_and_fonts.s.template",
"chars": 8807,
"preview": "* 6809 assembly program generated by cmoc 0.1.56\r\n\r\n\r\n\tSECTION\tcode\r\n\r\n\r\n_udgs\tEXPORT\r\n\r\n\r\n\tENDSECTION\r\n\r\n\r\n\r\n\r\n\tSECTION"
},
{
"path": "src/assets/templates/8x8/z88dk_cpc_Chars8.asm.template",
"chars": 4037,
"preview": "; ******************************************************\n; ** Libreria de rutinas para Amstrad CPC **\n; **\t "
},
{
"path": "src/assets/templates/8x8/z88dk_gameboy.asm.template",
"chars": 22638,
"preview": "\r\nSECTION rodata_user\r\nPUBLIC _udgs\r\n\r\n_udgs:\r\n\r\n; Paste in the contents of lower.asm here\r\n\r\n\r\n\tdefb\t2+4\t;256 char enco"
},
{
"path": "src/assets/templates/8x8/z88dk_pv1000.asm.template",
"chars": 62388,
"preview": " \r\n\r\n\r\n; Char 32 (20)\r\n\tdefb\t0,0,0,0,0,0,0,0\r\n\tdefb\t@00000000\r\n\tdefb\t@00000000\r\n\tdefb\t@00000000\r\n\tdefb\t@00000000\r\n\tde"
},
{
"path": "src/assets/templates/8x8/z88dk_sprites_definitions.h.template",
"chars": 13412,
"preview": "#ifndef _Z88DK_SPRITES_DEFINITIONS\r\n#define _Z88DK_SPRITES_DEFINITIONS\r\n\r\n\r\n__asm\r\n\t._sprites\r\n\r\n; 0\r\n\tdefb 8,8\r\n\tdef"
},
{
"path": "src/assets/templates/8x8/z88dk_xchase.asm.template",
"chars": 11519,
"preview": "SECTION rodata_font\r\nSECTION rodata_font_8x8\r\n\r\nPUBLIC _udgs\r\nPUBLIC _udgs_end\r\n\r\n_udgs:\r\n\r\n\tdefb %\"--------\"\r\n\tdefb %\"-"
},
{
"path": "src/assets/unit_tests/testAssets.py",
"chars": 2136,
"preview": "import unittest\r\nimport sys\r\n\r\n\r\n\r\nsys.path.append(\"assets\")\r\n\r\nfrom generate_assets import *\r\n\r\n\r\n\r\nclass testAssets(un"
},
{
"path": "src/config.ini",
"chars": 2907,
"preview": "[build]\n\n# gnu_make name (usually \"make\" but \"gmake\" on FreeBSD\")\n# auto -> automatic heuristic detection\ngnu_make "
},
{
"path": "src/cross_lib/boot/multi8/bootstrap.c",
"chars": 1103,
"preview": "/*\n * Bootstrap program for loading larger programs in 64k mode\n * on the Mitsubishi Multi8\n *\n * zcc +multi8 bootstrap."
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-16k.cfg",
"chars": 1558,
"preview": "# Memory configuration for the VIC-20 with 32K RAM Cartridge\n# Contributed by Stefan Haubenthal\nSYMBOLS {\n __LOADADDR"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-24k.cfg",
"chars": 1568,
"preview": "# Memory configuration for the VIC-20 with 32K RAM Cartridge\n# Contributed by Stefan Haubenthal\nSYMBOLS {\n __LOADADDR"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-3k.cfg",
"chars": 1489,
"preview": "SYMBOLS {\n __LOADADDR__: type = import;\n __EXEHDR__: type = import;\n __STACKSIZE__: type = weak, value = $0"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-8k.cfg",
"chars": 1602,
"preview": "# Memory configuration for the VIC-20 with 32K RAM Cartridge\n# Contributed by Stefan Haubenthal\nSYMBOLS {\n __LOADADDR"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-8k_GFX_tight.cfg",
"chars": 1993,
"preview": "# Memory configuration for the VIC-20 with 32K RAM Cartridge\n# Contributed by Stefan Haubenthal\nSYMBOLS {\n __LOADADDR"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-8k_old_GFX.cfg",
"chars": 2075,
"preview": "# Memory configuration for the VIC-20 with 16K RAM Cartridge\n# Contributed by Stefan Haubenthal\nSYMBOLS {\n __LOADADDR"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20-8k_tight.cfg",
"chars": 1993,
"preview": "# Memory configuration for the VIC-20 with 32K RAM Cartridge\n# Contributed by Stefan Haubenthal\nSYMBOLS {\n __LOADADDR"
},
{
"path": "src/cross_lib/cfg/cc65/alt/vic20_unexpanded.cfg",
"chars": 1472,
"preview": "SYMBOLS {\n __LOADADDR__: type = import;\n __EXEHDR__: type = import;\n __STACKSIZE__: type = weak, value = $0"
},
{
"path": "src/cross_lib/cfg/cc65/apple2-hgr.cfg",
"chars": 2137,
"preview": "# Configuration for programs including a hires screen (with 6KB LOWCODE)\n\nFEATURES {\n STARTADDRESS: default = $0803;\n"
},
{
"path": "src/cross_lib/cfg/cc65/apple2enh-hgr.cfg",
"chars": 2137,
"preview": "# Configuration for programs including a hires screen (with 6KB LOWCODE)\n\nFEATURES {\n STARTADDRESS: default = $0803;\n"
},
{
"path": "src/cross_lib/cfg/cc65/atari5200_redefined_chars.cfg",
"chars": 2744,
"preview": "SYMBOLS {\n __CARTSIZE__: type = weak, value = $4000; # possible values: $4000 and $8000\n __CART_ENTRY__"
},
{
"path": "src/cross_lib/cfg/cc65/atari5200_redefined_chars_32k.cfg",
"chars": 2744,
"preview": "SYMBOLS {\n __CARTSIZE__: type = weak, value = $8000; # possible values: $4000 and $8000\n __CART_ENTRY__"
},
{
"path": "src/cross_lib/cfg/cc65/atari7800_more_ram.cfg",
"chars": 3335,
"preview": "# Atari VCS 7800 linker configuration file for cc65\n# In order to add the a78 header to the build you can add\n# \"--force"
},
{
"path": "src/cross_lib/cfg/cc65/atari_mode12.cfg",
"chars": 2642,
"preview": "FEATURES {\n STARTADDRESS: default = $2000;\n}\nSYMBOLS {\n __EXEHDR__: type = import;\n __SYSTEM_CHECK__: "
},
{
"path": "src/cross_lib/cfg/cc65/atari_mode1_redefined_chars.cfg",
"chars": 2815,
"preview": "FEATURES {\n STARTADDRESS: default = $2000;\n}\nSYMBOLS {\n __EXEHDR__: type = import;\n __SYSTEM_CHECK__: "
},
{
"path": "src/cross_lib/cfg/cc65/atarixl_mode12.cfg",
"chars": 4393,
"preview": "FEATURES {\n STARTADDRESS: default = $2400;\n}\nSYMBOLS {\n __EXEHDR__: type = import;\n __SYSTEM_CHECK__: typ"
}
]
// ... and 7980 more files (download for full content)
About this extraction
This page contains the full source code of the Fabrizio-Caruso/CROSS-LIB GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 8180 files (45.1 MB), approximately 3.1M tokens, and a symbol index with 2906 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.