intel MCS BASIC-52 — Intel MCS BASIC-52 Versions 1 & 1.1 Operating and Reference Manual PDF

int e l 1.7 STORAGE ALLOCATION As mentioned in the previous example, every time the user defines a new variable the VARUSE pointer decrements by a count of 8. Six of the eight counts are due to the memory required to store a floating point number and the other two counts are the storage required for the variable name (i.e. A1, B7, etc). The variable B7 would be stored as follows: LOCATION VALUE DESCRIPTION X 37H THE ASCII VALUE -- 7, IF B7 WAS A DIMENSIONED VARIABLE THE MOST SIGNIFICANT BIT OF THIS LOCATION WOULD BE SET.

IN VERSION 1.1 THIS LOCATION ALWAYS CONTAINS THE ASCII VALUE FOR THE LAST CHARACTER USED TO DEFINE A VARIABLE X-1 42H THE ASCII VALUE -- B, IN VERSION 1.1 OF MCS BASIC-52 THIS LOCATION CONTAINS THE ASCII VALUE OF THE FIRST CHARAC- TER USED TO DEFINE A VARIABLE PLUS 26 * THE NUMBER OF CHARACTERS USED TO DEFINE A VARIABLE, IF THE VARIABLE CONTAINS MORE THAN 2 CHARACTERS. X-2 ?? THE NEXT SIX LOCATIONS WOULD CONTAIN THE FLOATING THRU POINT NUMBER THAT THE VARIABLE IS ASSIGNED TO, IF THE X-7 VARIABLE WAS A SCALAR VARIABLE. IF THE VARIABLE WAS DI- MENSIONED, X-2 WOULD CONTAIN THE LIMIT OF THE DIMENSION (I.E. THE MAX. NUMBER OF ELEMENTS IN THE ARRAY) AND X-3:

X-4 WOULD CONTAIN THE BASE ADDRESS OF THE ARRAY. THIS ADDRESS IS EQUAL TO THE OLD VALUE OF THE DIMUSE POINTER BEFORE THE ARRAY WAS CREATED Whenever a new scalar or dimensioned variable is used in a program, MCS BASIC-52 checks both the DIMUSE and VARUSE pointers to make sure that VARUSE > DIMUSE. If the relationship is not true, a MEMORY ALLOCATION ERROR is generated. - 186 -