%Griffin.jam %defines the string positioning commands needed by the JaM files that are created by %the Griffin to JaM converter (deltax) (.pop .exch .pop .sub).cvx .def (deltay) (.exch .pop .sub .exch .pop).cvx .def (topEdge) (.fontbox 0 .exch .neg .translate .pop .pop .pop).cvx .def (flushLeft) ().cvx .def (flushRight) (.dup .textbox deltax 0 .translate).cvx .def (centered) (.dup .textbox deltax 2 .div 0 .translate).cvx .def (docolor) (.hsvcolor).cvx .def (paleGrey) {0.0 0.0 0.85 docolor} .cvx .def (darkGrey) (darkGray).cvx .def (lightGrey) (lightGray).cvx .def (grey) (gray).cvx .def (maroon) (darkRed).cvx .def (darkBrown) {0.075 .5 0.3 docolor} .cvx .def (brown) {0.075 .5 .5 docolor} .cvx .def (tan) {.075 .4 .8 docolor} .cvx .def (darkRed) {0.0 1.0 0.4 docolor} .cvx .def (lightRed) {0 .5 1 docolor} .cvx .def (orange) {0.075 1.0 1.0 docolor} .cvx .def (darkYellow) {.167 1 .5 docolor} .cvx .def (lightYellow) {0.167 .6 1.0 docolor} .cvx .def (darkGreen) {0.333 1.0 0.4 docolor} .cvx .def (lightGreen) {0.333 0.5 1.0 docolor} .cvx .def (darkBlue) {0.67 1.0 0.5 docolor} .cvx .def (lightBlue) {0.67 0.4 1.0 docolor} .cvx .def (darkPurple) {0.776 1 .4 docolor} .cvx .def (purple) {0.776 1 .8 docolor} .cvx .def (violet) {0.776 .5 .8 docolor} .cvx .def (pink) {0.833 0.4 1.0 docolor} .cvx .def (darkAqua) {0.47 1.0 .4 docolor} .cvx .def (aqua) {0.47 .7 1.0 docolor} .cvx .def (darkGray) {0.0 0.0 0.3 docolor} .cvx .def (lightGray) {0.0 0.0 0.77 docolor} .cvx .def (black){0 0 0 docolor}.cvx .def (white){0 0 1 docolor}.cvx .def (gray){0 0 .5 docolor}.cvx .def (red){1 0 0 .rgbcolor .hsvfromcolor docolor}.cvx .def (green){0 1 0 .rgbcolor .hsvfromcolor docolor}.cvx .def (blue){0 0 1 .rgbcolor .hsvfromcolor docolor}.cvx .def (magenta){1 0 1 .rgbcolor .hsvfromcolor docolor}.cvx .def (cyan){0 1 1 .rgbcolor .hsvfromcolor docolor}.cvx .def (yellow){1 1 0 .rgbcolor .hsvfromcolor docolor}.cvx .def (griffinmap) ( (docolor) (index 4 1 .roll .sethsvmap (index) index 2 .add .store).cvx .def (index) 40 .def paleGrey darkPurple pink darkBrown brown tan darkRed lightRed orange darkYellow lightYellow darkGreen lightGreen darkBlue lightBlue purple violet pink darkGray lightGray (docolor) (.hsvcolor .setcolor).cvx .def ).cvx .def (pass) 0 .def % 0 1 2 3 = black cyan magenta yellow (Griffin.BlackPass) { (pass) 0 .def (docolor) { (v) .exch .def (s) .exch .def (h) .exch .def s 0.0 .eq (v .icolor .setcolor).cvx (.white .setcolor).cvx .ifelse }.cvx .def }.cvx .def (Griffin.CyanPass) { (pass) 1 .def (docolor) { (v) .exch .def (s) .exch .def (h) .exch .def s 0.0 .eq .not (h s v .hsvcolor .rgbfromcolor .pop .pop .icolor .setcolor).cvx (.white .setcolor).cvx .ifelse }.cvx .def }.cvx .def (Griffin.MagentaPass) { (pass) 2 .def (docolor) { (v) .exch .def (s) .exch .def (h) .exch .def s 0.0 .eq .not (h s v .hsvcolor .rgbfromcolor .pop .icolor .setcolor .pop).cvx (.white .setcolor).cvx .ifelse }.cvx .def }.cvx .def (Griffin.YellowPass) { (pass) 3 .def (docolor) { (v) .exch .def (s) .exch .def (h) .exch .def s 0.0 .eq .not (h s v .hsvcolor .rgbfromcolor .icolor .setcolor .pop .pop).cvx (.white .setcolor).cvx .ifelse }.cvx .def }.cvx .def (Griffin.FullColor) ((docolor) (.hsvcolor .setcolor).cvx .def).cvx .def Griffin.FullColor ÊǘJšœŠ˜Š˜J˜KJ˜J˜OJ˜YJ˜(J˜ —J˜J˜3˜J˜ ˜ J˜J˜J˜J˜BJ˜ —J˜ J˜—˜J˜ ˜ J˜J˜J˜J˜mJ˜ —J˜ J˜—˜J˜ ˜ J˜J˜J˜J˜mJ˜ —J˜ J˜—˜J˜ ˜ J˜J˜J˜J˜mJ˜ —J˜ J˜—J˜GJ˜J˜—…— Ä ‘