Types | Documentation

boolean byte code data dptr file function high idata lcall memory module procedure record register segment type value xdata 8051
Declarations Types

# Types

Turbo51 provides the following system types: Byte (unsigned 8-bit), Word (unsigned 16-bit), ShortInt (signed 8-bit), Integer (signed 16-bit), LongInt (signed 32-bit), Real (uses 4 bytes), String, Boolean, ByteBool, WordBool, LongBool and Char. You can also construct any other type according to Pascal syntax. In Turbo51 there are three types of pointer: ShortPtr (points to IDATA), Pointer (points to XDATA) and CodePointer (points to CODE). Similarly there are ShortPChar, PChar and CodePChar. Pointers to ordinal types can have memory type directive DATA, IDATA or XDATA which overrides default memory type for variables and sets memory type to which this pointer will point to.
Examples:

    Type
        PDataWordX = ^TDataWord XDATA;
        TDataWord = Record
                      Case Byte of
                       0: (Word: Word);
                       1: (Byte0, Byte1: Byte);
                       2: (Bits: Set of 0..15);
                       3: (Pointer: Pointer);
                    end;

        TGroupType = (Group_0A, Group_0B, Group_15A, Group_15B);

        PByte = ^Byte;
        PByteX = ^Byte XDATA;
        PPointerX = ^Pointer XDATA;
        TPS = Array [1..8] of Char;
        TRT_Text = Array [1..64] of Char;
        TRT_Flags = (rtToggleAB);
        TRT_FlagSet = Set of TRT_Flags;
        PRTX = ^TRT XDATA;
        TRT = Record
                Flags: TRT_FlagSet;
                RepeatNumber: LongInt;
                Text: TRT_Text;
              end;

        TAF = Array [0..NumberOf_AF_FrequenciesInDataSet - 1] of Byte;

        PEON_AF_X = ^TEON_AF XDATA;
        TEON_AF = Record
                    Variant: LongInt;
                    Case Byte of
                      0: (AF_DataWord: Word);
                      1: (AF_Data1: Byte; AF_Data2: Byte);
                  end;

        TEEPROM_Data = Record
                         eeSignature:             TSignature;
                         eeDataSet:               Array [1..NumOfDS] of TDataSet;
                         eeEnd:                   Byte;
                       end;