C Draws four pages of all the characters of each character set C available with the Hershey character set. The 27 sets are C arranged from left to right, and the characters go down over C four separate pages. C C David Villeneuve C National Research Council C Ottawa Ont. Canada C CALL DRAW (1) CALL DRAW (2) CALL DRAW (3) CALL DRAW (4) CALL EXIT END SUBROUTINE DRAW (ITYPE) C C Draws a subset of characters of the Hershey character set. C ITYPE = 1 => A-Z C ITYPE = 2 => a-z C ITYPE = 3 => 0-9 C ITYPE = 4 => punctuation C INTEGER LEN(4) BYTE ICHAR(4) INTEGER KSET(17) BYTE STR(10) DATA LEN / 26, 26, 25, 7 / DATA ICHAR / 'A', 'a', '!', ':' / DATA KSET / 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 1 14, 15, 16, 17, 18, 20 / C HEIGHT = 0.25 DX = 12.0/20.0 DY = 10.0/28.0 Y = 10.0-DY X = 0.5 C C MAKE FIRST ROW A LIST OF THE SET NUMBERS C CALL PLOTS CALL NEWPEN (1) FOR J=1,17 { ENCODE (2,%%,STR) KSET(J) FORMAT (I2) CALL SYMBOC (X, Y, 0.6*HEIGHT, STR, 0.0, 2, 1) X = X+DX } C C NOW FILL IN ALL THE CHARACTERS FOR EACH SET C X = 0.5 FOR J=1,17 { Y = 10.0-DY-DY CALL COLUMN (ICHAR(ITYPE), LEN(ITYPE), KSET(J), X, Y, DY, HEIGHT) IFF (ITYPE .EQ. 4) THEN { CALL COLUMN ('[', 6, KSET(J), X, Y, DY, HEIGHT) CALL COLUMN ('{', 4, KSET(J), X, Y, DY, HEIGHT) } X = X+DX } C C FINISHED PAGE C CALL PLOTF RETURN END SUBROUTINE COLUMN (CHAR1, LEN, KSET, X, Y, DY, HEIGHT) C C Fills in the columns starting at (X,Y) with the LEN characters C starting with ascii code CHAR1. Y is advanced down. C Special characters $ < > and preceded by $. C BYTE CHAR, CHAR1, STR(10) CHAR = CHAR1 FOR J=1,LEN { IFF (KSET .LE. 9) THEN { ENCODE (2,%%,STR) '$', KSET FORMAT (A1, I1) N = 3 } ELSE { ENCODE (3,%%,STR) '$', KSET FORMAT (A1, I2) N = 4 } IFF (CHAR .EQ. '$' .OR. CHAR .EQ. '>' .OR. CHAR .EQ. '<') THEN { STR(N) = '$' STR(N+1) = CHAR N = N+1 } ELSE STR(N) = CHAR CALL SYMBOC (X, Y, HEIGHT, STR, 0.0, N, 1) CHAR = CHAR+1 Y = Y-DY } RETURN END