Los asuntos a los que se refiere el presente artículo se tramitarán por el procedimiento verbal sumario
ARTÍCULO 59. FACULTADES ADMINISTRATIVAS
Count of terms in series evaluation
This location is used as a flag during the routine [$8D22] that calculates the floating-point value equivalent of a string of digit characters to indicate whether the string being converted has a leading negative sign. During the series evaluation rou- tine [$909C], this location holds the number of terms in the series.
106-110 $6A-$6E FAC2
Floating-point accumulator 2
These locations are the second floating-point accumulator area, used in those operations that require a second floating-point value. Location 106/$6A is the exponent and locations 107-110/ $6B-$6E are the mantissa. All operations that involve both ac- cumulators will transfer the results to FAC1.
$6F
ARGSGN
111
Sign of FAC2
Bit 7 of this location indicates the sign of FAC2, just as loca- tion 104/$68 does for FAC1.
1 1 2 $ 7 0 ARISGN
Sign comparison flag
The routines that load values into FAC1 [$8A89] and FAC2 [$8AB4] perform an exclusive-OR of the values in locations 104/S68 and 111/$6F—the signs of the values in the respec- tive floating-point accumulators. Thus, this location will hold 0/$00 if both signs are positive or both are negative, or 255/ $FF if the signs are different.
112-113 $70-$71 STRNG1
Multipurpose address pointer
These locations are used as an address pointer by the routine [$42F1] which loads characters from strings in BASIC program text for transfer into the string pool. (That routine uses a com- mon bank 0 character retrieval subroutine [$039F].) The loca- tions are also used as a pointer by the routine [$42F6] that reads characters from the first string in a concatenation opera- tion. (That routine uses a common bank 1 character retrieval subroutine [$03AB].)
104
$68mathematical functions. Any numerical value used in a BASIC program will be converted to a floating-point value here for further processing. The result of any BASIC operation which performs a numerical calculation will be held in these locations.
Floating-point notation is rather complicated. This method of representing numbers has three components: the mantissa, the base, and the exponent. You may be familiar with BASIC'S scientific notation. For example, the value 73,500 will be rep- resented as 7.35E4, BASIC'S shorthand for 7.35 X 104. In this
format, the 7.35 is the mantissa, the 10 is the base, and the 4 is the exponent. In BASIC'S internal floating-point format, the base value is 2; location 99/$63 holds the exponent, and loca- tions 100-103/$64-$67 hold the mantissa. The exponent is held in excess-128 format, meaning that 129 has been added to the exponent value. (This is a little trick to avoid having to deal with negative exponents.) To get the true exponent value, subtract 129. Only the lower 31 bits of the four-byte mantissa value are used, and the mantissa is normalized—adjusted so that its value is always effectively in the range 1-1.9999. Thus, the formula for converting the FAC1 contents into a decimal value is:
value = (1 + (mantissa / (2 T 31))) * 2 t (exponent - 129) The routine which converts the contents of FAC1 into a two-byte integer value will leave the results of the conversion in locations 102-103/$66-$67. Some routines which don't use floating-point math use these locations for other purposes. Lo- cations 102-103/$66-$67 are used as a pointer by the routine [$42E7] that reads values from the variable table. That routine uses one of the common bank 1 character retrieval subroutines [$03AB].
$68
FACSGN
104
Sign of FAC1
Bit 7 of this location is used to indicate the sign of the value in FAC1. The value here will be 0/$00 for positive values in FAC1 and 255/$FF for negative values. As long as the floating- point value is held in the accumulator, this location will be used to indicate its sign. When the floating-point value is stored in a variable, the setting of this bit will be copied to the highest bit of the mantissa. Likewise, when a value is copied from a variable into the accumulator, the setting of bit 7 of the most significant byte of the mantissa is copied here.
$70-$71
112-113
1OS $69 SGNFLG
Sign flag during conversionCount of terms in series evaluation
This location is used as a flag during the routine [$8D22] that calculates the floating-point value equivalent of a string of digit characters to indicate whether the string being converted has a leading negative sign. During the series evaluation rou- tine [$909C], this location holds the number of terms in the series.
106-110 $6A-$6E FAC2
Floating-point accumulator 2
These locations are the second floating-point accumulator area, used in those operations that require a second floating-point value. Location 106/$6A is the exponent and locations 107-110/ $6B-$6E are the mantissa. All operations that involve both ac- cumulators will transfer the results to FAC1.
$6F
ARGSGN
111
Sign of FAC2
Bit 7 of this location indicates the sign of FAC2, just as loca- tion 104/$68 does for FAC1.
1 1 2 $ 7 0 ARISGN
Sign comparison flag
The routines that load values into FAC1 [$8A89] and FAC2 [$8AB4] perform an exclusive-OR of the values in locations 104/S68 and 111/$6F—the signs of the values in the respec- tive floating-point accumulators. Thus, this location will hold 0/$00 if both signs are positive or both are negative, or 255/ $FF if the signs are different.
112-113 $70-$71 STRNG1
Multipurpose address pointer
These locations are used as an address pointer by the routine [$42F1] which loads characters from strings in BASIC program text for transfer into the string pool. (That routine uses a com- mon bank 0 character retrieval subroutine [$039F].) The loca- tions are also used as a pointer by the routine [$42F6] that reads characters from the first string in a concatenation opera- tion. (That routine uses a common bank 1 character retrieval subroutine [$03AB].)
113 $71