Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Contents1. Introduction2. Regions3. Display routines4. SPROGS files5. The file format6. Character fonts7. Index variables8. Efficiency of picture storage9. The sequence list10. Further facilities11. SPROGS on the 1906A12. An example film13. SPROGS preprocessor14. Future extensionsAppendices
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsSPROGS
ACLLiteratureICL 1906A manualsSPROGS
ACL ACD C&A INF CCD CISD Archives
Further reading

Contents
1. Introduction
2. Regions
3. Display routines
4. SPROGS files
5. The file format
6. Character fonts
7. Index variables
8. Efficiency of picture storage
9. The sequence list
10. Further facilities
11. SPROGS on the 1906A
12. An example film
13. SPROGS preprocessor
14. Future extensions
Appendices

Chapter 5: THE FILE FORMAT

In the previous chapter the idea of a picture file and film file (a file containing an ADVFLM) has been introduced. Little information has been given as to what will appear in the file and how efficient the recall of the filed information will be. This chapter outlines the method of storage control.

5.1 Priority Levels

In Chapter 3, a list of some of the standard display routines with their meaning was given. It was shown that some are treated as fundamental routines in terms of which others can be expressed. Thus the basic line drawing routine is TODXY and a routine such as VEC can be expressed as a call of TODXY. If a routine such as VEC is called within a picture file definition, it is possible to store the equivalent of either a call of VEC or a call of TODXY.

In general, the more basic the routine call that is stored away, the more space that will be used but also the more efficient will be the recalling of the picture. Thus, for example, a call to a routine such as CIRCLE might either store a single call to CIRCLE or, alternatively, many calls to the routine TODXY defining the individual line segments making up the circle. However, although the storing of TODXY calls will give rise to a file which will execute faster, the file will be considerably longer. Also, a circle that will appear small on the display needs few lines to represent it, whereas a large circle needs many lines. Thus storing the call to CIRCLE might be more advantageous.

The previous examples have been introduced to show that there is a need to be able to define exactly what gets stored in the picture file. If one of the hardware output devices has a circle generator in the hardware, then it would be advantageous to force the storage of the CIRCLE call. The decision as to what is stored in the picture file is controlled by two variables called NPRYV, the global priority level, and LPRYV, the local priority level. In general, each display routine has a local priority level associated with it. The basic routines such as SETXY and TODXY have a local priority level of 1 assigned to them, while routines such as VEC have a local priority level of 2 associated with them. When a picture file is defined, the current value of NPRYV will either be assumed to be 100 or will be set prior to the call of STDF by calling:

      PCPRY (P)

which would set the global priority level value, NPRYV, to P.

The basic action on calling a display routine is as follows:

  1. If NPRYV is less than LPRYV then execute the display routine. This will usually cause other display routines to be obeyed.
  2. If NPRYV is greater than or equal to LPRYV, store the call of the display routine in the picture file.

Consider for example:

      PCPRY (P) 
      STDF (ANAME('BOX')) 
      VEC (1.0,2.0,3.0,4.0) 
      FIDF(1.0 )

If P has the value 2 then NPRYV and LPRYV are both equal to 2 and the picture file for BOX will consist of the call to VEC. However, if P is set to 1 then NPRYV is less than LPRYV. Consequently, VEC will be executed. This causes the following routines to be obeyed:

      SETXY (1.0,2. 0) 
      TODXY (3.0-1.0, 4.0-2.0)

In this case these two calls will be stored in the picture file for BOX.

The idea of a priority level thus gives the ability to choose what information gets stored in the picture file. Unless altered, the standard global priority level when defining a file is 100. The value of NPRYV is reset to -1 on completing each picture file definition. Thus with the standard global setting, all display routines are stored.

5.2 Local Priority Levels

For most display routines a standard local priority level is assigned which is constant for all calls of that routine. A full list of these is given in the Appendices.

In some cases it is useful for a routine to be called with different local priority levels. The most used routine of this type is the routine DRAW. Unlike routines such as VEC, DRAW does not redefine the value of LPRYV. Instead,it uses the value assigned on entry. This will usually be 1 but can be reset if the routine LCPRY (P) is called before the call of DRAW. This will set the value of LPRYV to P.

Consider:

      PCPRY (2.0) 
      STDF (ANAME('BOX')) 
      VEC (1.0,1.0,2.0,2.0) 
      FIDF (1.0) 
      PCPRY (P) 
      STDF (ANAME('TWO')) 
      LCPRY (Q) 
      DRAW (ANAME('BOX')) 
      LCPRY (R) 
      DRAW (ANAME('BOX')) 
      FIDF (1.0)

The first picture file BOX consists of a single call to VEC as it was defined with a global priority level of 2. The contents of the second picture file TWO will depend on P, Q and R. Setting Q and R equal to 1 is equivalent to not having the LCPRY calls at all (the assumed value of LPRYV is 1). In this case, if P is equal to 1, the picture file TWO will consist of two calls to the routine DRAW. One important point in this case is that, subsequently, BOX could be redefined which would automatically redefine the meaning of TWO. If P = 1, Q = 1 and R = 2 then the file TWO will consist of:

      DRAW (ANAME ('BOX')
      VEC (1.0 , 1.0, 2.0, 2.0 )

Note that in this case, redefinition of BOX would alter the first part of TWO but not the second. Once BOX has been defined, however, it is not possible by use of LCPRY to cause the above call of VEC to be further reduced to SETXY,TODXY.

FIDF will reset the value of LPRYV to 1.

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site