For the complete documentation index, see llms.txt. This page is also available as Markdown.

12. Expert: indexed BVAR record with round-trip load

Difficulty: Expert

indexed-bvar-record-round-trip.gpc
define RECORD_BASE = 100;
define RECORD_STRIDE = 4;
define FIELD_X = 0;
define FIELD_Y = 1;

int record_id;
int record_base;
int edit_x;
int edit_y;

main {
    record_base = RECORD_BASE + (record_id * RECORD_STRIDE);

    if(event_press(PS5_LEFT)) {
        edit_x = edit_x - 1;
    }

    if(event_press(PS5_RIGHT)) {
        edit_x = edit_x + 1;
    }

    if(event_press(PS5_OPTIONS)) {
        if(record_base >= 0 && record_base + FIELD_Y <= 1023) {
            set_bvar(record_base + FIELD_X, edit_x);
            set_bvar(record_base + FIELD_Y, edit_y);
        }
    }

    if(event_press(PS5_TRIANGLE)) {
        if(record_base >= 0 && record_base + FIELD_Y <= 1023) {
            edit_x = get_bvar(record_base + FIELD_X);
            edit_y = get_bvar(record_base + FIELD_Y);
        }
    }

    set_val(TRACE_1, edit_x);
    set_val(TRACE_2, edit_y);
}

This demonstrates indexed ownership, bounds proof, explicit event-driven writes, and a complete read-back path. Reserve every BVAR range, attach a schema version to production records, and test reload and power-cycle behavior on the target firmware.

Last updated