	PROGRAM CHARMAP
!	Print a map of characters
	CHARACTER title*30,CBUFF*4
D	INCLUDE 'SYS$LIBRARY:GKSDEFS.BND'

D	CALL ORIENT('PORTRAIT')	! NOT SUPPORTED BY DISSPLA
	CALL GSTART
	CALL PAGE(8.5,11.0)
	CALL AREA2D(7.0,9.5)
	CALL HEIGHT(0.14)
D	CALL HEIGHT(0.21)	! DEC GKS Heights are too small
	CALL GRACE(1.0)

	CALL DUPLX
	CALL MX1ALF('STANDARD','!')
	CALL MX2ALF('L/CSTD','?')
	CALL MX3ALF('GREEK','*')
	TITLE(1:) = 'Character-Map$'
	CALL MESSAG(TITLE,100,2.2,9.6)
	TITLE(1:) = 'DISSPLA$'
D	TITLE(1:) = 'GPLOT$'
	CALL MESSAG(TITLE,100,2.5,9.2)

	DY = 0.33
D	DY = 0.34
	I0   = 65 ! A
	IMAX = 90 ! Z
	DO ICOL=1,3
	  IF(ICOL .EQ. 1) THEN
	    XPOS = 0.2
	    YPOS = 0.0
	    CALL MESSAG('Roman',5,xpos,8.8)
	    call duplx
	  else if (icol .eq. 2) then
	    xpos = XPOS + 1.0
	    ypos = 0.0
	    CALL messag('ASCII',5,xpos,8.8)
	  else if (icol .eq. 3) then
	    xpos = XPOS + 1.3
	    ypos = 0.0
	    CALL messag('Greek',5,xpos,8.8)
C	    call greek	! NOT SUPPORTED BY DISSPLA
	  END IF
	  I = I0
	  DO WHILE (I .Le. IMAX)
	    IF(ICOL .EQ. 2) THEN
	      CALL INTNO(I,XPOS,YPOS)
	      CALL MESSAG('/',1,'ABUT','ABUT')
	      CALL INTNO(I+32,'ABUT','ABUT')
	    ELSE IF (ICOL .EQ. 1) THEN
	      WRITE(CBUFF,FMT='(A,''/'',A)') CHAR(I),CHAR(I+32)
	      CALL MESSAG(CBUFF,3,XPOS,YPOS)
	    ELSE IF (ICOL .EQ. 3) THEN
	      WRITE(CBUFF,FMT='(''*'',A,''/'',A)') CHAR(I),CHAR(I+32)
	      CALL MESSAG(CBUFF,4,XPOS,YPOS)
	    END IF
	    I = I + 1
	    YPOS = YPOS + DY
	  end do
	END DO

! Draw table lines
	YPOS = -0.09
	DO WHILE (YPOS .LE. 8.8)
	  CALL VECTOR(0.1,YPOS,XPOS+0.6,YPOS,0)
	  YPOS = YPOS + DY
	END DO

	call endpl(0)

30	CALL GSTOP

	END
