Navigation:  System Specifications >

Internal Specifications

Print this Topic Previous pageReturn to chapter overviewNext page

 

The alphanumeric type (A) is straightforward: for each character the program maintains a byte of storage.  There are no extra bytes at the beginning or end.  The size of the field is determined by the program from a DEFINE command or from the data dictionary.

 

A numeric field (type N) is in the standard IEEE floating point format and is contained in 8 bytes of storage independent of the display size of the field.

 

A byte field (type B) can have a value from 0 through 255.

 

A logical field (type L) can have only two values, .TRUE. or .FALSE.  Internally .TRUE. is 1 and .FALSE. is 0 and uses 1 byte of memory.

 

An integer field (type I) can have a value from -32768 through 32767.  It is maintained in standard IEEE low byte low format and uses 2 bytes of memory. This is know as a Short integer. Signed 16-bit.

 

A record field (type R) can have a value from -2,147,483,648 through 2,147,483,647 .  It is maintained in standard IEEE format and uses 4 bytes of memory.  This field can also be thought of as being a long or double integer and can be used in that manner. This is known as a Long Integer. Signed 32-bit.

 

A date field (type D) is kept in a special format that corresponds to that used by Btrieve.  This format is low byte day value, next byte month value and high word year value, total 4 bytes memory used.  All values are kept in binary format.

 

A time field (type T) is kept in a special format that corresponds to that used by Btrieve.  This format is low byte hundredths of seconds, next byte seconds, next byte minutes, and high byte hours, total 4 bytes memory used.  All values are kept in binary format.

 

An F-Pointer field (type F) is a compound field.  The low byte contains the type of the field being pointed to; F - standard field, C - constant, or X - expression.  The high double-word is the location of the field specification within the field list segment within the program being run, for a total of 5 bytes memory used.  This field type is not usable outside of TAS Professional.  However, it has great use within a program and is the smallest pointer value.

 

A P-Pointer field (type P) is a compound field.  This field is closer to the standard far pointers in C.  The low double-word is the location value, the next byte is the field type (a single alpha character as listed above), next byte is the number of decimal characters, the next double-word is the internal size in bytes, and the final double-word is the display size in characters, for a total of 14 bytes memory used.  The reason for the complexity of this field is so that you can pass this value to an external program (non-TAS) and know everything necessary about the field.  The location value points to the actual field value in memory, not at the field list.  You can add and subtract values to/from a P-Pointer field location using integers.  However, all other parts of the field cannot be changed.

 

 


Page url: http://www.cassoftware.com/tas/manual/internalspecifications.htm