struct _list
{
    int        next;
    int        row;
    int        column;
    void    *video_region;
    int        region_size;
}

#define LIST_MEMBERS 20
struct _list list[LIST_MEMBERS];

int remove_from_list(int offset)
{
    int    i;

    for(i = 0; i < LIST_MEMBERS; i++)
        if(list[i].next == offset)
        {
            list[i].next = list[offset].next;
            list[offset].next = 0xffff;
            if(list[offset].video_region)
                free(list[offset].video_region);
            return TRUE;
        }
    return FALSE;
}
    .
    .
    if(remove_from_list(5))
        printf("\nList member 5 successfully removed from list");
    .
    .
