### Окружение и Архитектура:
*   **Маппер:** MMC1 (Плата SNROM).
*   **Память:** 256 КБ PRG-ROM (16 банков по 16 КБ), 8 КБ CHR-RAM, 8 КБ WRAM ($6000–$7FFF).
*   **Инструменты:** Ассемблер ca65 и линкер ld65 под Linux.

Задача написать код таблицы укзанных игр, чтобы можно было определить необходимые параметры маппера mmc1.
Выведи только байткод и комменатрий структруы данных.
Банки по 16 КБ, в них может быть chr данные 2 игр, учти это. Super mario занимает 2 банка по 16 кб.

Структура:

; Байт 0: PRG Банк
; Байт 1: Размер PRG
; Байт 2: CHR Банк
; Байт 3: Зеркалирование (0 = Horiz, 1 = Vert)
; Байт 4: Смещение CHR (0 = $8000, 1 = $A000)


СПИСОК ИГР

№,Название,PRG,CHR,Mirroring (по данным)
01,Super Mario Bros,32 KB,8 KB,Horizontal
02,Battle City,16 KB,8 KB,Vertical
03,Galaxian,8 KB,8 KB,Vertical
04,Lunar Ball,16 KB,8 KB,Vertical
05,Duck Hunt,16 KB,8 KB,Horizontal
06,Wild Gunman,16 KB,8 KB,Horizontal
07,Balloon Fight,16 KB,8 KB,Horizontal
08,Bomberman,16 KB,8 KB,Horizontal
09,Ice Climber,16 KB,8 KB,Vertical


CFG ФАЙЛ СБОРКИ

MEMORY {
    # 16 байт заголовка iNES
    HEADER:  start = $0000, size = $0010, file = %O, fill = yes;

    # PRG Банки по 16 Кб ($8000 - это адрес их проекции в CPU при переключении)
    PRG_0:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_1:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_2:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_3:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_4:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_5:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_6:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_7:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_8:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_9:   start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_10:  start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_11:  start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_12:  start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_13:  start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;
    PRG_14:  start = $8000, size = $4000, file = %O, fill = yes, fillval = $FF;

    # PRG Банк 15 ($C000) для Меню
    PRG_15:  start = $C000, size = $3F00, file = %O, fill = yes, fillval = $FF;
    PRG_15_INIT: start = $FF00, size = $00FA, file = %O, fill = yes, fillval = $FF;
    VECTORS: start = $FFFA, size = $0006, file = %O, fill = yes, fillval = $FF;
}


SEGMENTS {
    HEADER:       load = HEADER,       type = ro;

    # Банк 0
    TILES:        load = PRG_0,        type = ro, start = $8000;
    SMB_CHR:      load = PRG_0,        type = ro, start = $A000;

    # Банк 1
    GALAXIAN_PRG: load = PRG_1,        type = ro, start = $8000;
    GALAXIAN_CHR: load = PRG_1,        type = ro, start = $A000;

    # Банки 2-3 (Марио)
    SMB_PRG_1:    load = PRG_2,        type = ro;
    SMB_PRG_2:    load = PRG_3,        type = ro;

    # Танчики и Лунар Бол
    BC_PRG:       load = PRG_4,        type = ro;
    BC_LB_CHR:    load = PRG_5,        type = ro;  # Сюда инклудите .incbin "battlecity.chr" и "lunarball.chr" подряд
    LB_PRG:       load = PRG_6,        type = ro;

    # Утки и Ковбои
    DH_PRG:       load = PRG_7,        type = ro;
    DH_WG_CHR:    load = PRG_8,        type = ro;  # Подряд CHR уток и ковбоев
    WG_PRG:       load = PRG_9,        type = ro;

    # Шарики и Бомбермен
    BF_PRG:       load = PRG_10,       type = ro;
    BF_BM_CHR:    load = PRG_11,       type = ro;  # Подряд CHR шариков и бомбера
    BM_PRG:       load = PRG_12,       type = ro;

    # Айс Клаймбер
    IC_PRG:       load = PRG_13,       type = ro;
    IC_CHR:       load = PRG_14,       type = ro, start = $8000; # Займет только первую половину банка 14

    # Меню
    CODE:         load = PRG_15,       type = ro, start = $C000;
    MMC1_INIT:    load = PRG_15_INIT,  type = ro, start = $FF00;
    VECTORS:      load = VECTORS,      type = ro, start = $FFFA;
}

