class Person
{
  U8 first    [32];
  U8 last     [32];
  U8 address1 [64];
  U8 address2 [64];
  U8 city     [32];
  U8 state_zip[32];
};

U0 OffsetDemo1()
{
  Person *p=MAlloc(sizeof(Person));
  StrCpy(p->first,    "Terry");
  StrCpy(p->last,     "Davis");
  StrCpy(p->address1, "8144 Sickle Lane");
  StrCpy(p->address2, "");
  StrCpy(p->city,     "Las Vegas");
  StrCpy(p->state_zip,"NV 89128");
}

U(&OffsetDemo1,34);
PressAKey;

/*

x86 has signed 8-bit  displacements
    and signed 32-bit displacements.

This example uses 8-bit negative displacements.

*/

class Person
{ $=-128;
U8 first    [32];
U8 last     [32];
U8 address1 [64];
U8 address2 [64];
U8 city     [32];
U8 state_zip[32];
};

U0 OffsetDemo2()
{
  Person *p=MAlloc(sizeof(Person))(I64)+128;
  StrCpy(p->first,    "Terry");
  StrCpy(p->last,     "Davis");
  StrCpy(p->address1, "8144 Sickle Lane");
  StrCpy(p->address2, "");
  StrCpy(p->city,     "Las Vegas");
  StrCpy(p->state_zip,"NV 89128");
}

U(&OffsetDemo2,34);
PressAKey;