Soci/Singular - 2026-04-05

That's because $5FFE is just a number (actually bit string) and not a real address. Adding an integer to it results in an integer.

When mapping a loaded file I recommend this instead of adding offsets:

                        ; The memory position where the file is loaded.
                                        .virtual $5FFE
>5ffe                   MAPFILE         .word ?
>6000                   UNIT_TYPE       .fill 64        ;Unit type 0=none (64 bytes)
>6040                   UNIT_LOC_X      .fill 64        ;Unit X location (64 bytes)
>6080                   UNIT_LOC_Y      .fill 64        ;Unit X location (64 bytes)
>60c0                   UNIT_A          .fill 64
>6100                   UNIT_B          .fill 64
>6140                   UNIT_C          .fill 64
>6180                   UNIT_D          .fill 64
>61c0                   UNIT_HEALTH     .fill 64        ;Unit health (0 to 11) (64 bytes)
>6200                                   .fill $100
>6300                   MAP             .fill $2000             ;Location of MAP (8K)
                                        .endv