These brief notes on the DIALOG system are intended to summarise the state of suspended development in which the program presently rests, and to indicate the direction of future improvements.
The system uses PIGLET control structures and Free Format input routines. Input is from the system teletype and the DMAC digitiser, or an alternative input method is by character file from disc. This file is in the output format of the program and may be interpreted on the 1906A by the DOGS system and a picture produced on the FR80.
(a) Set up data structure.
(b) Specify tolerances in proximities, gradients, etc.
(c) Specify channel numbers.
(d) Initialise area description variables and display file length.
(a) Before input can proceed, the picture or diagram must be located on the DMAC table and the user's coordinate system specified. (DPLAN)
(1) Set up display file and draw viewport boundaries.
(2) Get specification of user's coordinate space. (Allow rotation and scaling)
(3) Set up initial window.
(b) Take input in the form of lines and plotted points (CURSIN). Lines are input in sets referred to as chains which may have invisible sections. The routine is directed by one letter commands input from the DMAC's keyboard. These are sent to the PDP15 by depressing the cursor microswitch. This action does not simultaneously record a position.
The commands allow for:
(1) A - amalgamate sequence of lines in same direction (AMALIN) (2) B - break in chain (INCLIN) (3) C - start of chain (INSTPT) (4) D - delete the last line input (CDELLN) (5) E - end of chain (6) G - interpret subsequent coordinates on grid (GRIDDL) (7) J - amalgamate nodes of chain (CHKCRD) (8) K - delete last chain input (CKILL) (9) N - complete closed chain (CLOSIT) (10) O - correct to orthogonal lines (HOZVRT) (11) P - input plotted point (INSP'T) (12) Q - delete last point (CDELPT)
Use routine CHKPT to check proximity to last node input routine, CHKCRD to check proximity to other nodes in chain, and routine DMTOUS to map DMAC coordinates into user coordinates before storing in data structure. Also use INAREA to check that coordinate input is within defined picture limits.
The language consists of SMOG commands in a PIGLET-compatible format. The routine MATCH is used to recognize the commands and the input to the data structure is governed by the routines INSPT,INSTPT,INCLIN.
Editing commands fall into three categories: additions, deletions and movements.
(a) DELCHN - delete a complete chain of lines DELLIN - delete a line (ie make it invisible) DELFLT - delete a plot point (b) ADDLIN - add a line to a chosen chain ADDPLT - add a plot point (c) DRAGND - drag one node of a chain MOVCHN - move a complete chain MOVPLT - move a plotted point
Central to the editing routines are the routines IDNODE and IDLINE which are used to identify nodes and lines of the picture. A cross may be moved around until 'A' is specified as in CURSIN.
All drawings may be scaled to any size and lines are clipped according to a screen window compatible with the PIGS screen layout. The clipping routine listed on P124 of Newman & Sproull is used.
The routine COORDS is used to identify the user coordinates at a specified point.
The SMOG-type language output file may be used for two purposes:
(a) Hardcopy via DOGS and FR8O
(b) Picture storage between runs
For checking and debugging the data structure may be printed out. Routines used are WRITAB,WRTABR.
Rounding off done by routine EXIT.
A simple interface could be provided by a paper menu placed on the DMAC table in a predetermined position. All commands presently typed in could be indicated by the DMAC cursor. This method would be crude but workable and could be a useful lash-up if a "quick and dirty" program was needed.
Ultimately, it is hoped that a PIGS interface or a similar system would be used to provide a more sophisticated man-machine interaction.
At present, approximately only 250 lines can be entered into a picture. This is due to limitations in data space in core. Disc random access files with paged data could overcome this problem.
A rearrangement of the overlay structure should make windowing possible during cursor input and picture editing.
Annotations are obviously a necessary part of a complete system. An extra data structure array would be needed, and editing facilities might prove difficult.