DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ R T

⟦9a089bd75⟧ TextFile

    Length: 22069 (0x5635)
    Types: TextFile
    Names: »README«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/euug-87hel/sec1/utep/README« 

TextFile

.pn 0
.po 1.25i
.ll 6i
.pl 11i
.hy
.lt 6i
.de hd
.if \\n%>0 \{\
'sp .5i
.tl '''Page %' \}
'sp |1i
.ns
..
.de fo 
'bp
..
.wh 0 hd
.wh -1.33333i fo
.de pp
.sp
.ti+5
..
.de HL
.br
\l'\\n(.lu-\\n(.iu'
.sp
..
.bp 0
.br
.rs
.sp 20
.ce 6
AN INTERACTIVE DRAWING BOARD PACKAGE
.sp 20
David H. Williams and Inaam Bakir
The University of Texas at El Paso
El Paso, Texas  79968
.sp
(915) 747-5470
.sp
ihnp4!ut-sally!utep-vaxa!williams
.bp
.fi
I. INSTALLATION
.sp
.fi
.in+17
.ti-14
cd to directory where software will be installed.
.sp
.ti-14
mkdir utep		(make utep directory)
.sp
.ti-14
tar vx0 * 		(extract all of the files)
.sp
.ti-14
cd utep			(enter the working directory)
.sp
.ti-17
To run the interactive program:
.sp
.ti-14
make			(compile and link the routines)
.sp
.ti-14
drawit.out > /dev/aed 		(execute the program, redirecting the output
to an AED display. Commands for executing
the program will be issued on the user
terminal, and the output will be displayed
on the AED.)
.sp
.ti-17
To run the demo program:
.sp
.ti-14
make -f demo.makefile	(compile and link the routines)
.sp
.ti-14
demo.out >/dev/aed		(execute the program, redirecting the output
to an AED display. Commands for executing the
program will be issued on the user terminal,
and the output will be displayed on the AED.
The demo output consists of a series of images
depicting a scene from sunrise to nightime.)
.sp
.ti-14
GOOD LUCK!
.sp 2
.in-17
II.	SUMMARY OF WORK
.pp
An interactive drawing board software package has been designed for any user
who has no knowledge of computers but is able to interact with the computer
through the use of the keyboard.
This package is menu driven and has a segmented display file where entites like
circles, squares, lines, etc. can be created by inputting
corresponding commands.
They then can be changed in many ways to assemble the required design.
Images can be saved and recalled on the display device for editing.
The package is structured to be device independent. It have the ability to
drive different devices with slight modification for each new device. It is
also structured to be machine independent by implementing the package in
FORTRAN 77. (One C language routine is also required.)
.bp
III.	REQUIRED HARDWARE AND SOFTWARE
.sp
The required hardware and sofware is:
.sp
.in+5
.ti-5
.br
(a) A computer with UNIX. (The output program requires about 120k
bytes of memory on a VAX 11/780.)
.ti-5
.br
(b) FORTRAN 77  and C compilers.
.ti-5
.br
(b) AED 512 Graphics/Imaging Terminal (Output Device).
.br
.ti-5
(c) Micro-Term or other Terminal (Input Device). The alpha- 
numeric keyboard is used to enter  commands and
parameter values.
.in-5
.sp 2
IV.	PROGRAM DESIGN
.sp
.pp
This package has been designed to enable the user to develop an image, modify it
and store it easily.
The generation of an image on the display devices screen consists of the
following steps:
.sp 2
.nf
    (1) initialize the  variables.
    (2) enter the graphics mode.
    (3) set window,screen and viewports limits.
    (4) identify item by inputting its type, position,  
        color and measurements.
    (5) clip item to window edges (if necessary).
    (6) perform world-to-screen transformation.
    (7) display item.
    (8) edit image.
    (9) exit graphics mode.
.fi
.sp 2
The following table lists all of the routines:
.sp 2
.ls 1
.nf
axes-       draw x and y axes along page sides.
blnkrow-    blank row and column that corresponds to
            segments number in overlapping table.
block data- assign default values to common variables.
boxit-      build boxes four corners out of boxes (blc) and
            (trc).
boxitm-     box current item by returning its boxes four 
            corners coordinates.
boxlin-     compare two boxes for overlapping- at least
            one box must represent a horizontal or a vertical
            line.
boxout-     check if item box lies outside page boundary.
boxsitm-    box current standard item (square,rectangle,
            triangle,circle and line).
buldcod-    build a background segment or a (ucp) segments
            code.
cat-        perform concatenation transformation.
change-     display a question on the screen regarding  
            making changes to current item.
check-      check if one point coordinates lie inside
            a boxed item.
checkit-    check if one point coordinates lie outside
            page boundary.
cir-        draw a 360 line segment unit circle in world 
            coordinates.
ckchang-    check issued change on current item for validity.
ckovlap-    check if current item overlaps other segments;
            if so, set the appropriate entries in
            overlapping table.
clean-      insert a character in display file.
clip-       clip line to window bounds using Conley's 
            Algorithm.
clr-        (re) initialize transformation matrix.
clrbkgd-    change background color.
compare-    compare two boxes for overlapping.
cpnums-     change polygon number after deletion of an item.
csif-       close and save image files.
dcl-        use an AED 512 built in command to draw
            a filled circle.
dcode-      transform one point device coordinates into 
            a three byte xy20 code (AED 512 code).
delitm-     delete item from image.
delucp-     delete a (ucp) from image.
dfplyln-    set deletion flags of current (ucp)s lines
            OFF.
dfr-        use an AED 512 built in command to draw 
            a filled rectangle.
dlbkgd-     delete segment background from image.
dlentry-    delete one entry from list of overlapping
            segments.
dmove-      define command m (move and fill).
drawp-      output display file contents on AED 512 screen 
driver-     transform one point screen coordinates into 
            device coordinates.
dsimage-    display recalled image.
dspage-     draw saved image's segments according to 
            their priorities.
edit-       edit current image.
eight-      draw digit 8.
eraitm-     erase item from image.
eraucp-     erase a (ucp) from image.
entaxes-    enter segment axes in auxiliary table.
enterbp-    enter a background segment or a (ucp) segment
            information in segments table.
entpage-    enter segment page in auxiliary table.
error-      display an error message on I/P devices screen.
fclose-     close image files.
findsg-     find if one segment number exists in list.
five-       draw digit 5.
fopen-      open image files.
four-       draw digit 4.
gcmenu-     display image editing menu.
hmarker-    draw a horizontal unit marker.
howmpg-     inquire about how many saved images exist.
ifl-        use an AED 512 built in command to interior
            fill closed polygons.
init-       initialize variables and set encoding scheme  
intrprt-    interpret code on the output devices screen.
isblin-     inquire if current box represents a horizontal 
            or vertical line.
isboxpg-    check if current box represents page bounds.
ispdone-    inquire if user is done with current (ucp).
issovlp-    build a list of items numbers that overlaps
            item in question.
itmmsin-    check new measurements of item for validity.
itmptin-    check new position of item for validity.
lcmenu-     display item editing menu.
line-       draw line if visible (within window bounds).
lsitems-    list segments table content on I/P devices 
            screen.
makmove-    make a move to a point on output devices screen.
matmlt-     perform multiplication between two matrices.
mfoptns-    display command (m) options on the screen.
move-       check if point coordinates are within bounds 
            before making a move.
movepr-     move to a certain point on screen.
movitm-     move item to a new position.
mvwhere-    read and process issued command.
newpage-    reinitialize variables and supply user with a
            blank page.
nine-       draw digit 9.
oif-        open image files.
one-        draw digit 1.
openfl-     open image files,save image,close files.
osegp-      find out if current segment overlaps segment 
            page.
pgdone-     exit output devices graphic mode and return
            to alpha mode.
pickitm-    pick one item by inputting its number.
pobound-    check if one point coordinates actually lie
            on page boundary.
procitm-    specify,display and edit current item.
rdcomnd-    read & process issued command on picked item.
rdinf-      read image information back into program.
rdjpg-      read display file content back into program.
readat-     read auxiliary table .
readol-     read overlapping table.
readst-     read segment table.
readup-     read (ucp)s common block.
recall-     recall an image on the output devices screen.
redmitm-    draw moved item into its new position.
replac-     replace one of the previously stored pages 
	    with current page.
resave-     resave current image.
respfy-     respecify current item according to issued 
            command.
rstable-    (re) initialize segments table.
rstotbl-    (re) initialize overlapping table.
rstplst-    (re) initialize (ucp)s list.
sat-        establish the auxiliary table.
savat-      save auxiliary table.
savinf-     write image information into storage files.
savjpg-     write display file content into storage files.
savpag-     save current page for later use.
savol-      save overlapping table.
savst-      save segments table.
savup-      save (ucp)s common block.
sbpovlp-    set a background segment or a (ucp) segment
            overlapping.
scl-        build scaling matrix.
screen-     (re) specify screen boundaries.
sct-        call an AED 512 built in command to create 
            a color table.
sctable-    (re) initialize color table.
search-     search for one segment entry in list of
            overlapping segments.
sec-        call an AED 512 built in command to set
            drawing color.
sendcod-    send one segment code to be interpreted on 
            output devices screen.
sendsgs-    send a number of segments to be displayed on
            output devices screen.
setovlp-    set two overlapped items entries in overlapping
            table.
seven-      draw digit 7.
showbg-     show a background segment on output devices
	    screen.
showbp-     show a user constructed polygon (ucp) on
            output devices screen.
six-        draw digit 6.
sndscd-     establish type of segment and send its code to
            be interpreted.
snpage-     save current page as a new page.
sortlst-    sort list of overlapping segments.
splyflg-    set (ucp) flag ON (meaning that (ucp) under
            construction).
sqr-        draw a unit square in world coordinates.
srchlst-    return one (ucp)s entry in list of (ucp)s.
srchtbl-    search segments table for background color.
star-       draw a star in world coordinates.
stovlap-    process two segments for overlapping.
swap-       swap two points.
tempinf-    temporarily transfer information from segments
            table into items (twb).
term-       terminate graphics mode by returning to alpha 
            mode.
three-      draw digit 3.
tlt-        build translation matrix.
triang-     draw a unit triangle in world coordinates.
two-        draw digit 2.
uftabl-     store units numbers and files names in a table.
updf-       update display file after deletion of an item.
upentry-    update segments table after deletion of an item.
upinfo-     update items (twb) after changing that item.
upolyln-    mark current line to be a component of a (ucp).
upotble-    update overlapping table after deletion of an
            item.
uppoly-     update (ucp)s common block after deleting one (ucp).
uptable-    update segments table after changing an item.
usrpoly-    construct current (ucp).
vmarker-    draw a vertical unit marker.
vwport-     (re) specify viewport boundaries.
wdscrn-     transform one point world coordinates into 
            screen coordinates.
whichf-     inquire about saved image files.
whichp-     inquire about recalled image number.
whichu-     inquire about saved image units.
windo-      (re) specify window boundaries.
wtitems-    write items (twb) into (pwb).
zero-       draw digit 0.
zeroone-    check if an array contains zeros or ones.
            for output device.
.fi
.sp 2
V.	DESCRIPTION OF SOFTWARE MODELS
.sp 
.pp
The modular design of this package exhibits a clear division
of tasks among its modules. Basically, there are four sections
to be considered in some detail:
.sp 
.nf
    (1) Create an item.
    (2) Edit an item.
    (3) Edit an image.
    (4) Save an image and/or Recall a saved image.
.fi
.sp 
.ce
CREATE AN ITEM
.sp
A. Main Routine
.pp
Subroutine PROCITM will access the items specification, which is stored in
the items temporary working block (twb), to construct an item and display
it on the output device screen. The information, which is in the temporary
working block will then be stored in the permanent working block (pwb).
.sp
B. Called Routines 
.sp
  1. SPFYITM (specify item)

.in+5
Calls upon four interactive routines to read and 
store users input concerning the item's position,
measurement, color and type of interior (outlined 
or solid object).

.ti-3
2. DSPLYIT (display item on output devices screen)
.sp
Basically, subroutine SHOWITM is called to use 
the items specifications stored in its (twb) to 
construct the item as follows:
.sp
.in-5
.sp
     CIRCLE-    uses center coordinates, radius value and  
.in+16
color value; calls DCL routine to use  
an AED 512 built in command (dcl) 
to draw a filled circle or call CIR
which is a routine to draw a 360 line 
segments circle.
.ti-11
.sp
SQUARE
.sp
.ti-11
OR
.sp
.ti-11
RECTANGLE- uses bottom left corner coordinates (blc),
top right corner coordinates (trc) and
color value to call routine DFR which
uses an AED 512 built in command (dfr)
to draw a filled square or rectangle or
call routine SQR to draw an outlined
square or use four lines segments to draw
an outlined rectangle.
.sp
.ti-11
TRIANGLE-  uses (blc) coordinates, side length value  
and color value to draw an outlined triangle.
If solid triangle is specified, fill 
triangle interior with specified color.
.sp
.ti-11
LINE-      uses (blc) coordinates, (trc) coordinates  
and color value to draw a line by calling 
subroutine LINE.
.sp
.in-16
.pp
Now that the item has been constructed according to the specification, the next step is
to show the item on the output device screen by calling subroutine SENDCOD which
will send that segment code to be interpreted and the result to be  
displayed on the output device.
.sp
  3. WTITEMS (write items (twb) into (pwb))
.sp
.in+5
This routine copies items (twb) information into  
the next available slot in the segments table  
which is also called the permanent working block
(pwb).
.in-5
.sp
EXAMPLE:
.sp
General Case:
.pp
Items are square, rectangle, triangle, circle and line.
To draw a square at position (1.0,1.0) with a side length of 2.5 
units and fill with light brown color,the user must:
.sp
.nf
         1. input real x-value blank real y-value
            followed by carriage return.
             (ex): 1.0 1.0 <CR>
         2. input real side length value followed by
            carriage return.
             (ex): 2.5 <CR>
         3. input integer color value followed by 
            carriage return.
             (ex): 10 <CR>
         4. answer yes to a type of interior question
            followed by carriage return.
             (ex): y <CR>
.fi
.sp
RESULT:
.sp
A solid, light brown square positioned at (1.0,1.0) with
(2.5) units side length. 
.sp
Special Case:
.sp
Item is a user constructed polygon (ucp) or background
segment.
.pp
The user needs to pick the m-command (for move and fill)
from the items menu. There are two options available within this command
to handle those two special cases, (u- (ucp) and
b- background).
To draw a (ucp) that has three lines with the following
begining and ending points,
.nf
       (1.0,1.0) , (4.0,3.0)
       (4.0,3.0) , (6.0,1.0)
       (6.0,1.0) , (1.0,1.0)

and is filled with red color, the user must:

        1. input the following for the 1st line
            1.0 1.0 <CR>
            4.0 3.0 <CR>
            7       <CR> (lines will be
                          drawn with white color)
        2. input the following for 2nd line
            4.0 3.0 <CR>
            6.0 1.0 <CR>
            7       <CR>
        3. input the following for 3rd line
            6.0 1.0 <CR>
            1.0 1.0 <CR>
            7       <CR>
         4. input  1 <CR> to color (ucp) with red.
         5. input 4.0 2.0 <CR> which is the interior
            fill point for (ucp).
.fi
.sp
RESULT:
.sp
.pp
A red filled (ucp) positioned at (1.0,1.0) which has three lines
as specified. 
.pp
The user needs to be aware of several things when creating
a (ucp). A user constructed polygons building
components should be lines ONLY. It also must be  a 
closed polygon and have an interior fill point that lies
clearly inside the polygon. The user has the responsibility
to see to it that it is inputted correctly on the first trial 
, (i.e) there is no room for error.
.sp
.ce
EDIT ITEM
.sp
A. Main Routine 
.pp
Subroutine PROCITM converses with the user interactivly. It inquires about a need to
issue changes on the current item. If so, the item will be erased from the image
followed by a redrawing of that part of the image which has overlapped with the item. 
This routine will ask the user to respecify the item.
.sp
B. Called Routines
.sp
  1. subroutine ISSOVLP will build a list of all segments 
.in+5
that overlap the item in question.
.ti-3
2. subroutine SENDSGS will send those segments to the  
output devices screen in the order in which they were  
created.
.ti-3
3. subroutine RESPFY will inquire about the type of  
change (position, color or measurement). It will check   
the issued change for validation. Subroutine CKCHANG
(check change) will return an answer to this question 
and inform the user about the reason if the issued 
change could not be approved. The condition for 
validation of the requested change is that the changed 
item falls within the page bounds.
.in-5
.sp
EXAMPLE:
.sp
General Case:
.sp
Items are square, rectangle, triangle, circle and line.
To edit a square by moving it from
position (1.0,1.0) to (2.0,3.5),the user must: 
.sp
.nf
        1. pick command p (position) from 
           items editing menu,
           p <CR>
        2. input new position,
           2.0 3.5 <CR>
.fi
RESULT:
.sp
The same solid, light brown square positioned at (2.0,3.5)
instead of (1.0,1.0). 
.sp
Special Case:
.sp
Items are (ucp) and background segments.
This program has not been designed to include these
special cases in items editing session.
.ce
CREATE AND EDIT IMAGE
.sp
.ul
Create An Image
.sp
.pp
In one drawing session, the user is allowed to create
up to five images. On each image he/she can draw up to
five (ucp)s, one background segment and any number of
regular items for a total of up to 20 items on
each page.
.sp
.ul
Edit image
.sp
A. Main Routine
.pp
Subroutine EDIT converses with the user interactively to inquire about a user's need
to issue changes on the current image. If so, the user must identify the item by
inputting its number and the change command. The changed item and updated image
will then be displayed on the screen.
.sp
B. Called Routines
.sp
.nf
   LSITEMS- list image items on the input devices screen.
   PICKITM- ask user to identify item by inputting its 
            number.
   GCMENU-  display image editing commands as follows:
            m- move item
            e- erase item
            a- add item
   RDCOMND- read command character and call corresponding
            routines as follows:

      subroutine MOVITM- erase item from image, redraw only  
.fi
.in+25
that part of image that  
has overlapped with item, redraw
item in new position and redraw 
that part of image that has 
overlapped with moved item.
.ti-19
subroutine DELITM- erase item from image, redraw only  
part of image that has overlapped  
with deleted item, update display    
file by erasing segments code,  
update segments records where 
needed.
.in-25
.sp
EXAMPLE:
.sp
To Edit an image, a menu of commands will be displayed
as follows:
.sp
.nf
     m- move item
     e- erase item
     a- add item
.fi
.sp
Each item will be handled one at a time by specifying
its number and the needed command. The user should be aware
of the following special cases in image editing :
.sp
.nf
    1. cannot move a (ucp) or a background segment.
    2. cannot move a line that belongs to a (ucp).
    3. cannot erase a line that belongs to a (ucp)
       without erasing that (ucp) first.
.fi
.sp
.pp
If these special cases are tried by the user, error messages
or warning messages will be displayed on the screen
to inform the user about these situations.
.ce
.sp
SAVE IMAGE AND/OR RECALL SAVED IMAGE
.sp
.ul
Save Image
.sp
A. Main Routine 
.pp
Subroutine SAVPAG converses interactively with the user to find out
if the created image is to be saved. If it is, the image must be checked
to see if it is a recalled image that has undergone some changes. If so
, the image is resaved. If not, nothing is done because the image will be
saved automatically, since an image file is designed to be saved after
execution. If it is a new image that has just been created, it will be saved
as a new page.
.sp
B. Called Routines
.sp
.nf
   SNPAGE- save new page
   RESAVE- resave image
   PGDONE- exit graphics mode
   NEWPAGE- reinitialize variables and supply a blank page.
.fi
.sp
.ul
Recall Saved Image
.sp
A. Main Routine
.pp
Subroutine RECALL converses interactively with the user to find out if the user
wants to call a previously saved image on the screen. If so, it will
display the image on the screen, edit the image if needed and resave the image again
.sp
B. Called Routines
.sp
.nf
   HOWMPG-  return the number of saved images
   WHICHP-  which page need to be recalled
   DSIMAGE- display and edit image
   FOPEN-   open image files
   FCLOSE-  close image files