RAM MEMORY
RESERVED MEMORY
Many control systems use process variables that are operator entered. "variables" in this context include numbers, strings, ar rays, recipes, or formulas as applied to your application. They are not a part of the variables used by Basic . Process variables are accessed by PEEK and POK E type statements.
The upp er 512 by tes of mem ory ar e set aside for this purpose in a 32K RAM system. In 128K and 512K RAM systems, all of the first 64K of RAM is used for program and variable stora ge. P rocess var iables in these larger versions are stored starting at segment 1 and higher .
When the combined program and data size exceed 30K, a 128K or 512K RA M is nec essary. Additional R AM is necessary when your pr ogram has large ar rays and / or string storage r equireme nts.
MTOP should not be used when variables are battery backed for power off conditions. Basic clears all of RAM in segment 0 (except for the last 512 bytes in a 32K system) at power up. Store process variables starting at segment 1 or higher in a 128K or 512K RAM system or start at address 7E00H, segment 0 in a 32K RAM system .
STORING VARIABLES IN RAM
Program s and
PEEK and PO KE commands store and retrieve values from memor y. For example:
20 POKEB1,12,A
puts the 8 bit value of A into segment 1, addr ess 12.
Use the PEEK statement to retrieve the variable:
50 B = PEEKB(1,12)
Accessing reser ved mem ory in a 32 K RAM system is accomplished as follow s:
SECTION 5
Figure 5-2 RPBASIC-52 memory map
100POKEB0,7E00H,C
120B = PEEKB(0,7E05H)
The highest address in a 32K RAM system is 7FFFH .
Many times it is desirable to store an array containing a "mixed" set of variables. Suppose you needed to save an array m ade up of the following elem ents:
Bytes | Type | Description |
1 | Byte | Job counter |
2 | Word | Analog output offset |
6 | Floating | Corr ection factor |
20 | String | Job name |
Total number of byes required for each array is 30 (add 1 for a < CR> at the end of the string).
The Job c ounter is inc rem ented ever y time it is completed. A nalog output offset is an output constant or other var iable used to initialize the outputs. Job name is used with the display to identify a job.
For this example, suppose there are 20 of these arrays that need to be set up. A program fragment is as follows:
100 | STRING 400,20 | Initialize 20 string arrays | |
300 | NO = | 12 | Elem ent to fill |
310 | CF = | 23.432 | Corr ection factor |
320 JC = | JC + 1 | Job counter | |
330 | AC = | 25 | Analog offset |
350 | GOSUB 1000 |
| |
500 NO = | 5 | Element to retrieve |
Page