Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ OverviewNo.1No.2No.3No.4No.5No.6No.7No.8No.9No.10No.11No.12No.13No.14No.15No.16No.17No.18No.19No.20No.21No.22No.23No.24No.25No.26No.27No.28No.29No.30No.31No.33No.34
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureProgress ReportsSPROGS Notes
ACLLiteratureProgress ReportsSPROGS Notes
ACL ACD C&A INF CCD CISD Archives
Further reading

Overview
No.1
No.2
No.3
No.4
No.5
No.6
No.7
No.8
No.9
No.10
No.11
No.12
No.13
No.14
No.15
No.16
No.17
No.18
No.19
No.20
No.21
No.22
No.23
No.24
No.25
No.26
No.27
No.28
No.29
No.30
No.31
No.33
No.34

SPROGS Note No 14

R E Thomas

4 January 1973

1. INTRODUCTION

It is intended to issue a basic version of SPROGS by 30 March. This will not include such features as multiple sequence list entries, variables or library facilities, but will enable users to get some idea of the system.

The following work will need to be done before this date.

1.1 Manual

A user manual, giving details of the basic system, will be prepared from the complete SPROGS manual by RET. All references to facilities not yet implemented will be removed.

1.2 COMMON

It is necessary to regularise the COMMON blocks used in the system to save lower data storage, and to avoid name clashes with user defined blocks. RET has collected these into three basic blocks, and will mend the routines. It is suggested that only references to the COMMON blocks be inserted in the source files, and that a pre-processing run is used to insert these blocks before compilation. In this way, altering COMMON will not require an extensive edit.

1.3 Library reorganisation

Currently the SPROGS routines are collected together in a haphazard order, and it is necessary to load all of them for each job. Re-ordering this library should allow only those routines required to be loaded.

A suggested ordering is

   SPROGS high level routines 
   Display routines in descending priority order 
   INTERP 
   OBEY 
   Execution routines derived from display routines 
   Basic house keeping 

RET will do this ordering.

1.4 Font

It is essential that a good simple software font is included. PRH is currently designing a font on the PDP15, which will be included.

1.5 SPROGS macro organisation

The SPROGS macro will have to be reorganised to provide all useful user facilities.

1.6 High level routines

It has been decided that the following high level routines should be available in the original system.

      Shaded regions 
      Hardware character plot at given X, Y 
             (this is one routine to perform SETXY PLOT) 
      Vertical TEXT printing 
      Number printing 
      Hardware font 
      Standard region setting routines and 
      Standard device selection routines, 
      which will ease the use of 
      RGLIM 
      RGPLIM 
      RGPRM 
      DVOUT 
      Circle, and arc generation 
      Quadratic form generation 
      Axes Grid Scales 
      Contour plotting- (possibly a modified version of SDFORTRAN routine) 
      Histogram         (possibly a modified version of SDFORTRAN routine) 
      Sine curve generation 
      Clock 
      Milometer 
      Leader 
      Filemarks 
      Expand image 
      and other such SD4020 control routines. 

Initially, FRAH, RET, AHF and PRH will work on these. Later it may be necessary to get help from the rest of the group.

2. CONVENTIONS

It will be necessary to have a discipline imposed when altering existing routines or adding new ones, so that incompatible editing can be avoided. Similarly some conventions must be applied to high level routines.

2.1 Source file structure

The basic SPROGS system will reside in pseudo user :SPROGS under :GSIN00. This pseudo user will have the following directory structure.

 
Directory   Files       SOURCE 
               
            FORTSRC1    Source file of high level FORTRAN routines which will always be present.
            FORTSRC2    Source file of high level FORTRAN routines which may be present.
            FORTSRC3    Source file of high level FORTRAN routines
            PLANSRC1    Source file of PLAN routines which will always be present.
            PLANSRC2    Source file of PLAN routines which may be present.
                        EDITS 
            EDFORTSRC1  Edits files for the appropriate
            EDFORTSRC2  source files to give the latest
            EDFORTSRC3  source versions.
            EDPLANSRC1 
            EDPLANSRC2 
                        COMMON
            SPRG1       COMMON Blocks for FORTRAN
            SPRG2
            SPRG3
            SPRG1X      COMMON Blocks for PLAN
            SPRG3X

2.2 Correcting an existing routine

The latest version of any routine can be obtained by getting the original source listing from the appropriate source file, and applying the relevant edits from the appropriate edits file. All edits will reference absolute source line numbers rather than text.

Anyone updating a routine should first inform RET, select the latest version of the routine and test it, and then hand the routine back to RET, together with the test program and a file containing the necessary edits to convert the original source file version of the routine to the new updated version. These edits should follow the convention about line numbers.

Routines which reference the SPROGS COMMON blocks should have the line

   ==COMMON common file name 

inserted at the appropriate point. The compilation system will automatically insert the required COMMON block. However, users updating routines which reference a COMMON block will have to do their own inserting during testing.

2.3 Adding a high level routine

Users writing high level routines should first write a complete specification and show this to RET. When complete, the routine source, together with the test program, should be given to RET. The following conventions will hold.

(1) All subroutine headings will be underlined.

(2) The routine will be heavily commented, and accompanied by a write up sufficient for a prospective user.

(3) Errors occurring in a high level routine should cause a call to XERROR(N) for non-fatal errors (i.e. errors that the routine itself can sort out) or ZERROR(N) for fatal errors. A COMMON block

      COMMON/SPRG4/ERR(6,2) 

will enable parameters to be passed to the error routines for writing, where.

 ERR(1,1) = number of parameters
 ERR(*,1) = parameter 
 ERR(*,2) = 0 if real number
            1 if text in real number form

The error number N must be checked with RET to avoid duplication. The writer should also give a FORMAT for each error checked.

(4) The last letter of a routine name will give some indication of the way it is written, or what arguments are expected. The following letters will be used for indication initially, but no doubt others will be needed later.

A  File contains VEC orders. If it is a curve drawing routine, 
   DX,DY are required for specifying smoothness. 
B  File contains VEC orders. Smoothness of curve is specified 
   by the number of points N.
R  File contains relative orders. If it is a curve drawing routine, 
   DX,DY are required for specifying smoothness. 
S  File contains relative orders. Smoothness of curve is specified 
   by the number of points N. 
⇑ 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