Trailing-Edge
-
PDP-10 Archives
-
decuslib10-11
-
43,50540/colors.mem
There are no other files named colors.mem in the archive.
CHANGING COLORS ON THE TEKTRONIX 4027
D. N. Clark
Computer Sciences at
Oak Ridge National Laboratory*
Oak Ridge, TN 37830
ABSTRACT
COLORS makes it easy for a person using the Tektronix 4027 color
terminal to change the hue, lightness, and saturation values for any
picture which is already drawn on the 4027 screen. Instead of the user
having to type !MAP C0 320,50,100 etc., every time he wishes to change
colors, he merely types in H, L, or S to increment or decrement the
current Hue, Lightness, or Saturation value for the current color.
This makes it simple to quickly obtain the most desirable color
combination for that particular picture.
*Operated by Union Carbide Corporation under contract W-7405-eng-26
with the U.S. Department of Energy.
1. INTRODUCTION
A nineteen character command such as "!MAP C0 340, 50,100" must
normally be typed into a Tektronix 4027 color terminal in order to
change one of the displayed colors. COLORS.EXE is a PDP-10 FORTRAN
program which changes the colors with single letter commands, thus
enabling the user to create pleasing color combinations with a minimum
of time and effort.
The Tektronix 4027 color terminal is capable of displaying a
maximum of eight different colors on its screen at any one time. Those
colors can be changed by typing commands to the terminal. The format
of one of the commands is:
!MAP Cx n1,n2,n3
The exclamation point is normally the control character (CC) for
the 4027. It alerts the 4027 that a command is being entered. "MAP"
is one of several "change color" commands which the 4027 understands.
"Cx" refers to one of eight "paint pots" which contain the colors
displayed on the screen. The "x" represents an integer from 0 through
7 and identifies which paint pot is being referenced. The numbers
"n1,n2,n3" refer to the Hue, Lightness, and Saturation values of the
referenced "paint pot."
Unfortunately, the user must type in the whole command each time
he wishes to change any one color which is being displayed on the
screen. If the user wishes to experiment with the colors of his
picture, he is forced to laboriously type the "MAP" command over and
over until he obtains the desired colors. This can be quite
time-consuming and tedious.
The program COLORS was developed to reduce the time and tedium
resulting from this activity. Once the user has a picture displayed on
the 4027 screen, he runs the COLORS program. Then he can change the
hue of the current paint pot by repeatedly typing the letter "H". If
he types H eighteen times, he will have incremented the hue completely
around the "color wheel" and will end up with the same color he started
with. Thus the user can rapidly change and view the colors on his
picture without typing the Tektronix 4027 command "!MAP Cx n1,n2,n3"
each time. Sets of eight colors can be stored in user named files and
can be read back into the COLORS program with simple commands. This
enables the user to keep files of pleasing color combinations. The
user can also store sets of colors in the Tektronix 4027 function keys
F1 through F9. Once they have been stored, the user can change the
colors of any displayed picture by pressing one of the function keys,
even while executing another program.
2. THE INTERNAL HELP FILE
COLORS has an internal HELP file which documents the use of the
program. It is reproduced here in its entirety as an explanation of
the program.
This program makes it easier for you to change the hue, lightness,
or saturation values (H,L,S) of any of the eight colors which a
Tektronix 4027 color terminal is capable of displaying at one time. To
change colors you must normally type:
!MAP C0 80,50,100
(The numbers will vary of course.) "COLORS" enables you to change the
H,L,S values of the eight paint pots (C0 through C7) using a single
keystroke. This makes it easy to adjust the colors of a picture which
has already been displayed on the Tektronix 4027 screen without typing
out the entire command each time.
This program recognizes thirteen characters. They are:
H The hue will be changed. The hue (color) will change as the
numbers vary from 0 to 360 degrees.
EX. !MAP C0 0,50,100 !MAP C0 340,50,100
L The lightness will be varied. The amount of black or white added
to the hue will vary from all black (0) to all white (100). The
program allows seven values. 0, 20, 40, 50, 60, 80, and 100.
EX. !MAP C0 180,20,100 !MAP C0 180,80,100
S The saturation of the hue will be varied. At zero saturation
there is no color present at all (gray). At 50% saturation all
colors look muted. At 100% saturation, all hues are at their
brightest.
EX. !MAP C0 120,50,0 !MAP C0 120,50,100
C Changes the color pot which you are modifying. You must enter a
number from 0 to 7 to complete the command. In the first example
"C5" was entered. In the second example "C2" was entered.
EX. !MAP C5 120,50,100 !MAP C2 120,50,100
E The program will exit. You can also type CTRL-C (control-C) and
get the same effect. The picture on the Tektronix 4027 will not
be affected.
T You can see the values of the current paint pot without changing
them by typing "T".
P If you enter "P" all of the paint pots will be changed to default
values. The default colors in C0 through C7 are: white, red,
green, blue, yellow, cyan, magenta, and black.
+ H, L, and S values will be incremented by some amount. The effect
of "+" will remain until you type in "-".
- H, L, and S values will be decremented by some amount. The effect
of "-" will remain until you type in "+".
R Reads a file which (hopefully) contains eight Tektronix 4027 color
commands. You will be asked for a filename. The picture will
change to the colors contained in the file.
W Writes a file which contains eight Tektronix 4027 color commands.
You will be asked for a filename. Be careful not to give the name
of a file which already exists, because it will be overwritten.
You can read the file later with the "R" command.
F The current color values will be stored in one of the first nine
Tektronix 4027 Function keys (F1-F9). You must enter a number
from 1 to 9 to finish the command. Then, when you press that
function key, your display will change to the colors which it
contains. Note that pressing the function key does NOT change the
current colors stored in this program; it changes the DISPLAY to
the colors stored in the function key.
? Types out this help file. If you have any further questions, call
Dennis Clark at 576-7384.
3. EXAMPLE RUN OF THE PROGRAM "COLORS"
The program COLORS.EXE is in the systems area [1,4] on the Fusion
Energy Division PDP-10. Copies of the file are available on the ORNL
PDP-10 also, but are not available on the systems area. The appendix
containing the example run should be used in conjunction with the
following explanation. The user invokes the program by typing:
.R COLORS
It responds with a brief message telling him what characters it
recognizes. If he types in "?" he will get the first of three levels
of help. The first level is a two line list of the single letter
commands and the word which each letter represents. If the user then
types in one of those single letter commands he will get the second
level of help which is a two line explanation of that particular
command. If the user types in "?" he will be asked if he wants to see
the large help file which is listed above. It represents the third and
most comprehensive level of help available.
In this example, he types in "r" which tells COLORS that he wants
to read a file containing eight Tektronix 4027 color commands. The
user types in "second" when the program asks him what file to read.
The program will actually read the file "second.dat" since the user did
not explicitly specify a null extension by inserting a period after the
filename. Since the user did not type in "second." the program then
reads the file SECOND.DAT and types the commands which will change all
eight of the paint pots to the colors contained in the file SECOND.DAT.
After it finishes changing all eight colors, it types out its brief
help message again. The user then types in "t" which shows him which
paint pot he is able to change at this moment. It is "C0". He then
types in "l" and the lightness value "wraps around" from 100 to 0. He
types in "l" several more times and the lightness value is incremented
to one of seven allowable values (0, 20, 40, 50, 60, 80, 100). Notice
that each time the user types "l" the program types out the Tektronix
COMMAND which actually changes the color on the 4027 screen, and it
also types out the TEXT which allows the user to see what command is
being sent to the 4027. If the user were actually on a Tektronix 4027
terminal, he would not see the command at all, but would merely see the
text describing the command. He then types in "F3" and the program
types out a command which "teaches" the 4027 function key F3 the
current values of the eight paint pots. If the user susbsequently
presses the F3 function key (as opposed to pressing the two characters
"F" and "3") the colors on the screen will change to the values stored
in the function key. However, presing the function key does NOT change
the H,L,S values contained in the COLORS program; it only changes the
DISPLAY. This can cause confusion if the user presses a function key
while running the program COLORS. In that case the colors he sees
displayed will not necessarily be the colors he would store if he were
to then use the W (write) command. Once the function keys have been
loaded with COLORS, they can be used while running MAPPER or
TELL-A-GRAF without affecting the programs.
In our current example the user next types in "h" several times
which changes the hue of the C0 paint pot. He then types in "-" which
means that subsequent "h", "l" and "s" commands will decrement instead
of incrementing. He then types in "h" and you will notice that the hue
(n1) portion of the color command is now decrementing. Lightness and
saturation would also decrement if he typed in "l" or "s". He then
types "w" which indicates that he wishes to have whatever the eight
paint pots (C0 through C7) currently contain to be written to a disk
file which he names "test.dat." He then resets the eight paint pots to
their default values by typing "p". He then types "e" and exits from
the COLORS program.
Note that on a Tektronix 4027 terminal, normal text is displayed
using C0 which is usually white (h,l,s of 0,100,100). The background
is displayed with C7 which normally contains black (h,l,s of 0,0,100).
The paint pots C1 through C6 may or may not be mapped onto the screen
depending on how many colors have been used in the picture. So it is
possible for the user to change the color of a paint pot and not see
any colors on the screen change because that paint pot has not been
mapped onto the screen anywhere. It is also possible for him to change
the color of the text and background, and if he chooses, can change the
text to be the SAME color as the background, which makes the text
invisible.
The COLORS program can significantly reduce the time needed to
obtain pleasing color combinations on the Tektronix 4027 screen. In
addition, once pleasing color combinations have been discovered, they
can be used for other pictures as well. Once the color combinations
have been written to disk files, the user does not even need to run the
COLORS program but can change the color of displayed pictures simply by
typing the monitor level command "TYPE FILE.EXT," where FILE.EXT is the
name of one of the files containing the 4027 commands.
APPENDIX A. EXAMPLE RUN
.R COLORS
(H, L, S, C, P, E, ?, T, +, -, R, W, F) FOR HELP (?) r
WHAT FILE (CONTAINING COLOR COMMANDS) DO YOU WANT TO READ? second
!MAP C0, 0,100,100
!MAP C1,120, 50,100
!MAP C2, 0, 50,100
!MAP C3, 0, 80,100
!MAP C4,360,100,100
!MAP C5,300, 20,100
!MAP C6,160, 40,100
!MAP C7, 0, 0,100
(H, L, S, C, P, E, ?, T, +, -, R, W, F) FOR HELP (?) t
MAP C0, 0,100,100 l
!MAP C0, 0, 0,100
MAP C0, 0, 0,100 l
!MAP C0, 0, 20,100
MAP C0, 0, 20,100 l
!MAP C0, 0, 40,100
MAP C0, 0, 40,100 l
!MAP C0, 0, 50,100
MAP C0, 0, 50,100 F3
!LEARN F3/!MAP C0 0, 50,100/-
/!MAP C1 120, 50,100/-
/!MAP C2 0, 50,100/-
/!MAP C3 0, 80,100/-
/!MAP C4 360,100,100/-
/!MAP C5 300, 20,100/-
/!MAP C6 160, 40,100/-
/!MAP C7 0, 0,100/13
(H, L, S, C, P, E, ?, T, +, -, R, W, F) FOR HELP (?) h
!MAP C0, 20, 50,100
MAP C0, 20, 50,100 h
!MAP C0, 40, 50,100
MAP C0, 40, 50,100 h
!MAP C0, 60, 50,100
MAP C0, 60, 50,100 -h
!MAP C0, 40, 50,100
MAP C0, 40, 50,100 h
!MAP C0, 20, 50,100
MAP C0, 20, 50,100 +h
!MAP C0, 40, 50,100
MAP C0, 40, 50,100 w
THE CURRENT COLORS WILL BE WRITTEN INTO A FILE.
WHAT DO YOU WANT THE FILE'S NAME TO BE? test
(H, L, S, C, P, E, ?, T, +, -, R, W, F) FOR HELP (?) p
!MAP C0, 0,100,100
!MAP C1,120, 50,100
!MAP C2,240, 50,100
!MAP C3, 0, 50,100
!MAP C4,180, 50,100
!MAP C5,300, 50,100
!MAP C6, 60, 50,100
!MAP C7, 0, 0,100
e
STOP
END OF EXECUTION
CPU TIME: 0.16 ELAPSED TIME: 1:43.47
EXIT
.
APPENDIX B. FORTRAN SOURCE CODE
IMPLICIT INTEGER(A-Z)
DOUBLE PRECISION FILNAM
COMMON /AREA/HLS(8,3),LITNES(7),LETRS(13),CPP,PP,HUEINC,SATINC,
& SIGN,VALUE
C THIS PROGRAM MAKES IT EASY FOR A PERSON USING THE TEKTRONIX 4027
C TO CHANGE THE HUE, LIGHTNESS, AND SATURATION VALUES ON ANY PICTURE
C WHICH IS ALREADY DRAWN ON THE 4027 SCREEN. INSTEAD OF THE USER
C HAVING TO TYPE "!MAP C0,150,50,100" ETC., EVERY TIME HE WISHES TO
C CHANGE COLORS, HE MERELY TYPES IN H, L, OR S TO INCREMENT OR
C DECREMENT THE CURRENT HUE LIGHTNESS OR SATURATION VALUE FOR THE
C CURRENT COLOR. THIS MAKES IT EASIER TO GET THE MOST DESIRABLE
C COLOR COMBINATION FOR THAT PARTICULAR PICTURE.
C
C INITIALIZE ALL OF THE ARRAYS
C
CALL INITL
C
C TYPE A BRIEF HELP MESSAGE FOR THE USER'S BENEFIT
C
10 TYPE 15
15 FORMAT(' (H, L, S, C, P, E, ?, T, +, -, R, W, F)',
& ' FOR HELP (?) ')
C
C WE COME HERE TO PICK UP A CHARACTER FROM THE USER'S TERMINAL.
C THAT CHARACTER DETERMINES WHAT GETS DONE.
C
50 I=IKHAR(DUMY)
C
C CHECK FOR LOWER CASE LETTERS
C
IF(I.GT.96) I=I-32
C
C CHECK THE CHARACTER TO SEE IF IT REPRESENTS A VALID OPTION
C
DO 60 J=1,13
IF(I.EQ.LETRS(J)) GOTO 90
60 CONTINUE
C
C WE DIDN'T RECOGNIZE IT, SO PRINT THE BRIEF HELP MESSAGE AGAIN.
C
GOTO 10
C
C WE GOT A VALID OPTION, SO BRANCH TO THE APPROPRIATE CODE
C H L S C P + - E ? T R W F
90 GOTO(100,200,300,400,500,600,700,800,900,1000,1100,1200,1300)J
STOP 'THIS SHOULD NEVER BE TYPED OUT'
C
C CHARACTER ENTERED WAS "H". THE HUE WILL BE CHANGED.
C
100 HLS(CPP,1)=HLS(CPP,1)+HUEINC*SIGN
IF(HLS(CPP,1).GT.360) HLS(CPP,1)=HUEINC
IF(HLS(CPP,1).LT.0) HLS(CPP,1)=360-HUEINC
GOTO 10000
C
C CHARACTER ENTERED WAS "L". THE LIGHTNESS VALUE WILL CHANGE.
C FIND OUT WHAT THE CURRENT LIGHTNESS VALUE IS FIRST, THEN
C EITHER INCREMENT IT, OR DECREMENT IT.
C
200 DO 210 J=1,7
IF(HLS(CPP,2).EQ.LITNES(J)) GOTO 250
210 CONTINUE
J=4
250 VALUE=J
VALUE=VALUE+SIGN
IF(VALUE.LT.1) VALUE=7
IF(VALUE.GT.7) VALUE=1
HLS(CPP,2)=LITNES(VALUE)
GOTO 10000
C
C CHARACTER ENTERED WAS "S". THE SATURATION WILL CHANGE
C
300 HLS(CPP,3)=HLS(CPP,3)+SATINC*SIGN
IF(HLS(CPP,3).GT.100) HLS(CPP,3)=0
IF(HLS(CPP,3).LT.0) HLS(CPP,3)=100
GOTO 10000
C
C CHARACTER ENTERED WAS "C". CHANGE FROM ONE PAINT POT TO ANOTHER.
C THERE ARE 8 PAINT POTS LABELED C0 THROUGH C7.
C CHECK THE VALUES TO BE CERTAIN THAT THEY ARE IN THE VALID RANGE.
C
400 I=IKHAR(DUMY)
I=I-48
IF((I.GE.0).AND.(I.LE.7)) GOTO 450
TYPE 410
410 FORMAT(' AFTER ENTERING "C" YOU MUST ENTER A NUMBER FROM 0 TO 7')
GOTO 10
450 PP=I
CPP=PP+1
GOTO 10000
C
C CHARACTER ENTERED WAS A "P". ALL OF THE COLOR PAINT POTS WILL
C BE RETURNED TO THEIR DEFAULT PRIMARY COLORS.
C
500 CALL INITL
DO 550 J=1,8
JJ=J-1
TYPE 540,JJ,HLS(J,1),HLS(J,2),HLS(J,3)
540 FORMAT(' !MAP C',I1,',',I3,',',I3,',',I3,' ')
550 CONTINUE
TYPE 560
560 FORMAT(' ')
GOTO 50
C
C CHARACTER ENTERED WAS "+". VALUES WILL BE INCREMENTED.
600 SIGN=+1
GOTO 50
C
C CHARACTER ENTERED WAS "-". VALUES WILL BE DECREMENTED
700 SIGN=-1
GOTO 50
C
C CHARACTER ENTERED WAS "E". EXIT FROM THE PROGRAM.
C
800 STOP
C
C CHARACTER ENTERED WAS "?". TYPE OUT DETAILED INSTRUCTIONS
C
900 CALL HELPME
GOTO 50
C
C CHARACTER ENTERED WAS "T". TYPE OUT WHAT YOU HAVE
C WITHOUT CHANGING ANYTHING.
C
1000 TYPE 1010,PP,HLS(CPP,1),HLS(CPP,2),HLS(CPP,3)
1010 FORMAT(' MAP C',I1,',',I3,',',I3,',',I3,' ')
GOTO 50
C
C CHARACTER ENTERED WAS "R". READ A FILE CONTAINING
C COLOR COMMANDS WHICH WILL FILL EACH OF THE EIGHT PAINT POTS.
C
1100 TYPE 1110
1110 FORMAT(' WHAT FILE (CONTAINING COLOR COMMANDS) DO',
& ' YOU WANT TO READ? '$)
ACCEPT 1120,FILNAM
1120 FORMAT(A10)
IF(FILNAM.EQ.' ') GOTO 10
OPEN(UNIT=20,ACCESS='SEQIN',FILE=FILNAM,ERR=1190)
DO 1150 M=1,8
READ(20,1130,ERR=1194,END=1196) I,J,K
1130 FORMAT(8X,3I)
HLS(M,1)=I
HLS(M,2)=J
HLS(M,3)=K
JJ=M-1
TYPE 1140,JJ,I,J,K
1140 FORMAT(' !MAP C',I1,',',I3,',',I3,',',I3)
1150 CONTINUE
GOTO 10
1190 TYPE 1191,FILNAM
1191 FORMAT(' COULD NOT FIND THE FILE "',A10,'"')
GOTO 10
1194 TYPE 1195,FILNAM
1195 FORMAT(' HAD TROUBLE READING THE FILE "',A10,'"')
GOTO 10
1196 TYPE 1197
1197 FORMAT(' ENCOUNTERED END-OF-FILE BEFORE READING ALL OF THE',
& ' NEEDED VALUES.')
GOTO 10
C
C CHARACTER ENTERED WAS "W". WRITE THE CURRENT COLOR VALUES
C INTO A USER NAMED FILE.
C
1200 TYPE 1210
1210 FORMAT(' THE CURRENT COLORS WILL BE WRITTEN INTO A FILE.'/
& ' WHAT DO YOU WANT THE FILE''S NAME TO BE? '$)
ACCEPT 1220,FILNAM
1220 FORMAT(A10)
IF(FILNAM.EQ.' ') GOTO 10
1230 OPEN(UNIT=20,ACCESS='SEQOUT',FILE=FILNAM)
DO 1290 J=1,8
JJ=J-1
WRITE(20,1240) JJ,HLS(J,1),HLS(J,2),HLS(J,3)
1240 FORMAT('!MAP C',I1,',',I3,',',I3,',',I3)
1290 CONTINUE
CLOSE(UNIT=20)
GOTO 10
C
C CHARACTER ENTERED WAS "F". THE CURRENT COLOR VALUES WILL
C BE STORED IN A TEK4027 FUNCTION KEY (F1-F9)
C
1300 I=IKHAR(DUMY)
I=I-48
IF((I.GE.1).AND.(I.LE.9)) GOTO 1320
TYPE 1310
1310 FORMAT(' AFTER ENTERING "F" YOU MUST ENTER A NUMBER',
& ' FROM 1 TO 9')
GOTO 10
1320 IZ=0
TYPE 1330, I,IZ,HLS(1,1),HLS(1,2),HLS(1,3)
1330 FORMAT(' !LEARN F',I1,'/!MAP C',I1,1X,I3,',',I3,',',I3,'/-')
DO 1350 J=2,7
JM1=J-1
TYPE 1340,JM1,HLS(J,1),HLS(J,2),HLS(J,3)
1340 FORMAT(' /!MAP C',I1,' ',I3,',',I3,',',I3,'/-')
1350 CONTINUE
IZ=7
TYPE 1360, IZ,HLS(8,1),HLS(8,2),HLS(8,3)
1360 FORMAT(' /!MAP C',I1,' ',I3,',',I3,',',I3,'/13')
GOTO 10
C
C THIS IS THE OUTPUT ROUTINE. IT IS AN ASCII INSTRUCTION STRING TO
C THE TEKTRONIX 4027 TO CHANGE EITHER THE HUE, LIGHTNESS OR SATURATION
C OF ONE OF THE EIGHT COLOR PAINT POTS C0 THROUGH C7.
C
10000 TYPE 10100, PP,HLS(CPP,1),HLS(CPP,2),HLS(CPP,3)
10100 FORMAT(' !MAP C',I1,',',I3,',',I3,',',I3,' ')
TYPE 10200, PP,HLS(CPP,1),HLS(CPP,2),HLS(CPP,3)
10200 FORMAT(' MAP C',I1,',',I3,',',I3,',',I3,' ')
GOTO 50
END
SUBROUTINE INITL
IMPLICIT INTEGER (A-Z)
COMMON /AREA/HLS(8,3),LITNES(7),LETRS(13),CPP,PP,HUEINC,SATINC,
& SIGN,VALUE
C H
LETRS(1)=72
C L
LETRS(2)=76
C S
LETRS(3)=83
C C
LETRS(4)=67
C P
LETRS(5)=80
C +
LETRS(6)=43
C -
LETRS(7)=45
C E
LETRS(8)=69
C ?
LETRS(9)=63
C T
LETRS(10)=84
C R
LETRS(11)=82
C W
LETRS(12)=87
C F
LETRS(13)=70
LITNES(1)=0
LITNES(2)=20
LITNES(3)=40
LITNES(4)=50
LITNES(5)=60
LITNES(6)=80
LITNES(7)=100
DO 400 J=1,8
HLS(J,2)=50
HLS(J,3)=100
400 CONTINUE
HLS(1,2)=100
HLS(8,2)=0
HLS(1,1)=0
HLS(2,1)=120
HLS(3,1)=240
HLS(4,1)=0
HLS(5,1)=180
HLS(6,1)=300
HLS(7,1)=60
HLS(8,1)=0
HUEINC=20
SATINC=50
VALUE=4
SIGN=1
PP=0
CPP=1
RETURN
END
SUBROUTINE HELPX
TYPE 10
10 FORMAT(
& ' '
& /' This program makes it easier for you to change the hue,'
& /' lightness, or saturation values (H,L,S) of any of the eight'
& /' colors which a Tektronix 4027 color terminal is capable of'
& /' displaying at one time. To change colors you must normally'
& /' type: '
& /' MAP C0 80,50,100 '
& /' (The numbers will vary of course.) "COLORS" enables you to'
& /' change the H,L,S values of the eight paint pots (C0 through'
& /' C7) using a single keystroke. This makes it easy to adjust'
& /' the colors of a picture which has already been displayed on'
& /' the Tektronix 4027 screen without typing out the entire'
& /' command each time. '
& /' This program recognizes thirteen characters. They are: '
& /' '
& /' H The Hue will be changed. The hue (color) will change as'
& /' the numbers vary from 0 to 360 degrees. '
& /' EX. MAP C0 0,50,100 MAP C0 340,50,100 '
& /' '
& )
TYPE 20
20 FORMAT(
& ' L The lightness will be varied. The amount of black or'
& /' white added to the hue will vary from all black (0) to'
& /' all white (100). The program allows seven values. 0,'
& /' 20, 40, 50, 60, 80, and 100. '
& /' EX. MAP C0 180,20,100 MAP C0 180,80,100 '
& /' '
& /' S The saturation of the hue will be varied. At zero'
& /' saturation there is no color present at all (gray). At'
& /' 50% saturation all colors look muted. At 100%'
& /' saturation, all hues are at their brightest. '
& /' EX. MAP C0 120,50,0 MAP C0 120,50,100 '
& /' '
& /' C Changes the color pot which you are modifying. You must'
& /' enter a number from 0 to 7 to complete the command. In'
& /' the first example "C5" was entered. In the second'
& /' example "C2" was entered. '
& /' EX. MAP C5 120,50,100 MAP C2 120,50,100 '
& /' '
& /' E The program will stop. You can also type CTRL-C'
& )
TYPE 30
30 FORMAT(
& ' (control-C) and get the same effect. The picture on the'
& /' Tektronix 4027 will not be affected. '
& /' '
& /' T You can see the values of the current paint pot without'
& /' changing them by typing "T". '
& /' '
& /' P If you enter "P" all of the paint pots will be changed'
& /' to default values. The default colors in C0 through C7'
& /' are: white, red, green, blue, yellow, cyan, magenta, and'
& /' black. '
& /' '
& /' + H, L, and S values will be incremented by some amount.'
& /' The effect of "+" will remain until you type in "-". '
& /' '
& /' - H, L, and S values will be decremented by some amount.'
& /' The effect of "-" will remain until you type in "+". '
& /' '
& )
TYPE 40
40 FORMAT(
& ' R Reads a file which (hopefully) contains eight Tektronix'
& /' 4027 color commands. You will be asked for a filename.'
& /' The picture will change to the colors contained in the'
& /' file. '
& /' '
& /' W Writes a file which contains eight Tektronix 4027 color'
& /' commands. You will be asked for a filename. Be careful'
& /' not to give the name of a file which already exists,'
& /' because it will be overwritten. You can read the file'
& /' later with the "R" command. '
& /' '
& /' F The current color values will be stored in one of the'
& /' first nine Tektronix 4027 Function keys (F1-F9). Then,'
& /' when you press that function key, your display will'
& /' change to the colors which it contains. Note that'
& /' pressing the function key does NOT change the current'
& /' colors stored in this program; it changes the DISPLAY to'
& /' the colors stored in the function key. '
& /' '
& )
TYPE 50
50 FORMAT(
& ' ? Types out this help file. If you have any further'
& /' questions, call Dennis Clark at 576-7384. '
& )
RETURN
END
SUBROUTINE HELPME
COMMON /AREA/HLS(8,3),LITNES(7),LETRS(12),CPP,PP,HUEINC,SATINC,
& SIGN,VALUE
C
C THIS SUBROUTINE CONTAINS THE HELP MESSAGES FOR EACH OF THE COMMANDS
C OF THE MAIN PROGRAM. IT ALSO CALLS THE SUBROUTINE CONTAINING THE
C DETAILED HELP FILE WHICH IS ABOUT 100 LINES LONG.
C
TYPE 3
3 FORMAT(/' H=Hue L=Litness S=Saturation C=Change P=Primary'
& ,' E=Exit T=Type ?=Help'/' +=Increment',
& ' -=Decrement R=Read W=Write F=Function key'
& ,' ...TYPE ONE '$)
C
C GET A CHARACTER AND CHECK TO SEE IF IT IS ONE WE KNOW ABOUT
C
I=IKHAR(DUMY)
IF(I.GT.96)I=I-32
DO 5 J=1,13
IF(I.EQ.LETRS(J))GOTO 8
5 CONTINUE
C
C WE DIDN'T RECOGNIZE IT, SO JUST RETURN
C
6 TYPE 7
7 FORMAT(/' (H, L, S, C, P, E, ?, T, +, -, R, W, F)',
& ' FOR HELP (?) ')
RETURN
C
C WE RECOGNIZED THE CHARACTER, SO BRANCH TO THE APPROPRIATE MESSAGES.
C
C H L S C P + - E ? T R W F
8 GOTO(10,20,30,40,50,60,70,80,90,100,110,120,130),J
10 TYPE 11
11 FORMAT(/' Typing H causes the HUE of the current paint'
& ,' pot to be incremented or'/' decremented depending',
& ' on whether the + or - is in effect. ')
RETURN
20 TYPE 21
21 FORMAT(/' Typing L causes the LIGHTNESS of the current color to',
& ' be incremented'/' or decremented depending on whether the +'
& ,' or - is in effect. ')
RETURN
30 TYPE 31
31 FORMAT(/' Typing S causes the SATURATION of the current hue to',
& ' be incremented or'/' decremented depending on whether the',
& ' + or - is in effect. ')
RETURN
40 TYPE 41
41 FORMAT(/' Typing Cn (n=0-7) changes the current paint pot to',
& ' one of the'/' eight paint pots C0 through C7. ')
RETURN
50 TYPE 51
51 FORMAT(/' P causes all of the paint pots C0-C7 to'
& ,' revert to their initial values.'/' white, red, green, ',
& 'blue, yellow, cyan, magenta, and black. ')
RETURN
60 TYPE 61
61 FORMAT(/' Typing + causes the H, L, and S values to be'/
& ' incremented by some amount. ')
RETURN
70 TYPE 71
71 FORMAT(/' Typing - causes the H, L, and S values to be'/
& ' decremented by some amount. ')
RETURN
80 TYPE 81
81 FORMAT(/' Typing E causes you to Exit from the program.',
& ' The picture on the screen'/' will not be affected.',
& ' You can also type a control-C to exit. ')
RETURN
90 TYPE 91
91 FORMAT(/' If you want to see the entire set of instructions,'/
& ' (about 100 lines of information) type Y. '$)
I=IKHAR(DUMY)
IF(I.GT.96) I=I-32
IF(I.EQ.89)GOTO 97
93 TYPE 94
94 FORMAT(/' (H, L, S, C, P, E, ?, T, +, -, R, W, F)',
& ' FOR HELP (?) ')
RETURN
97 CALL HELPX
RETURN
100 TYPE 101
101 FORMAT(/' Typing T causes a message to be printed. It tells',
& ' what the current'/' paint pot is, (C0-C7) and what H, L,',
& ' and S values it contains. ')
RETURN
110 TYPE 111
111 FORMAT(/' Typing R causes the program to read a file ',
& 'which you name.'/' You can create files with the',
& ' W (Write) command. ')
RETURN
120 TYPE 121
121 FORMAT(/' Typing W causes the program to write the values',
& ' of the current colors'/' into a file which you name.',
& ' Read them later with the R command. ')
RETURN
130 TYPE 131
131 FORMAT(/' Typing Fn (n=1-9) causes the current colors of all',
& ' eight paint pots'/' to be stored in one of the first nine',
& ' (F1-F9) function keys. ')
RETURN
END
;THIS ROUTINE IS FORTRAN CALLABLE AND IS USED BY
;CALLING IT LIKE THIS:
; I=IKHAR(DUMMY)
;IT RETURNS A SINGLE CHARACTER
ENTRY IKHAR
IKHAR: INCHRW
POPJ 17,
END