Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Introduction and contents2. The SMOG system3. Mapping to a device4. Line drawing5. Text printing6. Control of the medium7. Command-sets in files8. Economy - Integer routines9. High level routines10. Appendices11. Manual updates
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

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

Introduction and contents
2. The SMOG system
3. Mapping to a device
4. Line drawing
5. Text printing
6. Control of the medium
7. Command-sets in files
8. Economy - Integer routines
9. High level routines
10. Appendices
11. Manual updates

8. ECONOMY - INTEGER ROUTINES

Economy in machine resource requirements was the intention when the SMOG system was designed. It is, effectively, a faster running subset of the SPROGS package. The latter, in being extremely comprehensive in the facilities it offers the film maker, is costly to run particularly for, say, the plotting of the dynamic representation of a Computational Physics experiment.

8.1 Machine Resource Requirements

When run with essentially "graphics-driven" (ie testing) programs, the SMOG system occupies about 12K words in core and is compiled and consolidated in less than 15 seconds. Its Lower Data requirement is less than 1K words (1906A, 1975). (See Appendix 2 for the Macro instruction for running the system). SMOG is presented to the consolidator or relocator as the last set of routine names - this ensures that the minimum graphical overhead is incurred. Once the package is loaded and running a lot of the time is devoted to the mapping processes (3.4 etc) and a considerable saving, when much drawing is being done per frame, is effected by selecting Region 0 and directly addressing raster cells using subsets of the integers chosen to "Match" the main device raster. The Integer routines facilitate this process.

8.2 The Integer Routines

All "devices" have a discrete structure - the device mesh or raster - and addressing is ultimately done by integer specifications. A set of "Integer routines" is included in the SMOG system. They are not loaded if they are not called by the user's program. Alternatively, very few of the "Real" routines need be loaded if the user intends to work in integers. The FORTRAN names of the integer routines are tabulated below, along with their real counterparts, and an example of their use follows:

Absolute 8.2.1
SETX(X)                            JSET(IX)
SETY(Y)                            JSET(IY)
SETXY(X,Y)                         JSETXY(IX,IY)
TOX(X)                             JTOX(JX)
TOY(Y)                             JTOY(JY)
TOXY(X,Y)                          JTOXY(JX,JY)
VEC(X1,Y1,X2,Y2)                   JVEC(IX,IY,JX,JY)
VECFAM(X1,Y1,X2,Y2,X3,Y3,X4,Y4,N)  JVECFM(IX1,..IY4,N)
Relative 8.2.2
UPDX(X)                            JUPDX(IX)
UPDY(Y)                            JUPDY(IY)
UPDXY(X,Y)                         JUPDXY(IX,IY)
TODX(X)                            JTODX(JX)
TODY(Y)                            JTODY(JY)
TODXY(X,Y)                         JTODXY(JX,JY)
VECFAR(DX1,DY1,DX2,DY2,DX3,DY3,N)  JVECFR(IDX1,..IDY3,N)
Scaling 8.2.3
LIMIT(X1,Y1,X2,Y2)                 JLIMIT(IX,IY,JX,JY)
LIMITV(X1,Y1,X2,Y2)                JLIMV(IX,IY,JX,JY)
LIMITS(X1,Y1,X2,Y2,AX,AY)          JLIMS(IX,IY,JX,JY,KX,KY)
REGION(X)                          JREGON(IX)
Miscellaneous 8.2.4
COLOR(X,Y,Z)                       JCOLOR(IX,IY,IZ)
INTNST(X)                          JINTS(IX)
FRSAV(X)                           JFRSAV(IX)
DRAWNM(X)                          JDRAWN(IX)
CHSIZE(Y)                          JCHSIZ(IY)
TYPNMB(X,A,B)                      JTYPEN(N,I)

Example:

      CALL TKTRON                    
      CALL JREGON(0)                 
      CALL JSETXY(132,10)            
      DO 40 I=1,50                   
      K = -2*I                       
      IAX = 380 + K                  
      IAA = 512 - IAX                
      IAB = 512 + IAX                
      IAC = 390 + IAX                
      IAD = 390 - IAX                
      CALL JTOXY(IAA,IAC)            
      CALL JTOXY(IAB,IAC)            
      CALL JTOXY(IAB,IAD)            
  40  CALL JTOXY(IAA,IAD)            
C       SET POSITION ...             
      CALL JSETXY(512,390)           
C        FLOURISH ....               
      CALL JTODXY(-30,-3)            
      CALL JTODY ( 6 )               
      CALL JTODXY(55 ,-11)           
      CALL JTODY ( 5 )               
      CALL JTODXY(-45,-9 )           
      CALL JTODY ( 4 )               
      CALL JTODXY(35 ,-7 )           
      CALL JTODY ( 3 )               
      CALL JTODXY(-25,-5 )           
      CALL JTODY ( 2 )               
      CALL JTODXY(15 ,-3 )           
      CALL JTODXY( 1 )               
      CALL JTODXY(-5 ,-1 )           
      CALL ENDSPR                    

This example demonstrates the initialisation of SMOG device 9, the Tektronix 4010 display, and the use of absolute commands and Integer routines to address mesh cells "On the tube face", as it were. The resulting display is a set of nested squares, centred on the centre point of the addressable area of the device.

Then the current position pointer is set by the first command. The relative commands then, in the continuation of this example, put a rather laborious flourish in the middle of the squares. The last command terminates graphical output.

8.3 Timing

SMOG on the 1906A runs at up to 5500 lines per second using the optimised FORTRAN compiler. The real function:

      XMLTIM(A)

gives the current mill time usage in seconds so that a user can time his own program. Note that this is the only function in the SMOG system and that the argument A is dummy since the time is returned as the value of the function.

⇑ 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