User Tools

Site Tools


The -storage- Command

In certain applications 150 individual student variables are not sufficient, even when using segmented variables. It is possible to set up extra storage of up to 1500 variables to give a total of 1650 variables that are individual, not shared in a common. A “storage 350” statement will cause a storage block of 350 variables to be set up in the swapping memory for each student who enters the lesson. Like -common-, the -storage- command is not “executed” (it is rather an instruction to TUTOR to set up storage when the student enters the lesson). Like temporary common, the storage variables are zeroed when the storage is set up.

A -transfr- command can be used to move common or storage variables from swapping memory into the student variables or into the “ye” area. Usually, however, common is loaded automatically into the “vc” area. If the common is larger than 1500 variables, a -comloadcommand must be used to specify which part of this large common is to be swapped into and out of which section of vcl through vc1500. In the case of -storage-, there is no automatic swapping. Instead, a -stoloadcommand is used to specify what parts of the storage are to be moved into what area of the “ye” variables. Here is a typical example:

common 1000 storage 75 stoload vc1001,1,75

The common will be automatically swapped in and out of vcl through vc1000. The 75 storage variables will be swapped in and out of vc1001 through vc1075. It is good form to define all these matters:

define comlong=1000,stlong-75 stbegin=vc(comlong+1) (etc.) common comlong storage stlong stoload stbegin,1,stlong . . . calc stbegin⇐37.4

While -common- and -storage- are “non-executable” commands, -cornload- and -stoload- are executable, so that swapping specifications can be changed during the lesson.

The student's current variables vl through v150 are saved with other restart information when he or she signs out. Therefore, when the student signs in the next day, these variables will have the values they had when the student left. Storage variables are not saved, however. All storage variables are initialized to zero when the storage block is set up upon entry into the lesson, as with temporary common. If it is necessary to file away more than the standard 150 student variables, you could split up a common into different pieces for individual students. For example, if you need to save 200 extra variables for no more than 20 students, you could split up a 4000-variable common into 20 pieces each containing 200 variables. An alternative is to use “dataset” operations, which permit you to directly control the transfer of blocks of individual data between the permanent storage (magnetic disks) and the swapping memory.

Using "datasets"

plato/tutor/storage_command.txt · Last modified: 2023/08/05 18:56 by Site Administrator