I have decided on a set of datatypes that I want to support.
bit | Bit is a 1 bit data variable. Used as a separate variable it will minimum be 8 bits, but used inside a record it get bit packed. |
uint8 | 8 bit unsigned integer |
int8 | 8 bit signed integer |
uint16 | 16 bit unsigned integer |
int16 | 16 bit signed integer |
uint32 | 32 but unsigned integer |
int32 | 32 bit signed integer |
real32 | 32 bit float |
real64 | 32 bit double |
string | Text string. Text strings have a dynamic size. |
numeric | Number with exact size/precision. Unlike reals this uses BCD to encode exact decimal numbers. |
blob | Binary Large Object. A binary object of dynamic size and with a few static header variables like size etc. The objective is that this is often needed and as a consequence implemented special purpose in code. I believe declaring a blob datatype will save some space. |
class | reserved for a possible object oriented version of PScript later. |
record | Record is a data structure that hold a selected address in memory. It is a collection of variables that is bit packed on that address. In this context it is designed to overlay registers creating a way for PScript to access registers directly. |