public class AlphaNumericDisplay
{
    private int h_res;
    private int v_res;
    private int n_symbol;
    private int symbol;
    private int[][] symbol_map;

    private void setSymbolMap () {
	symbol_map = new int [][] { {36, 41, 41, 41, 41, 41, 41, 36},
				    {04, 14, 24, 04, 04, 04, 04, 37},
				    {36, 01, 01, 01, 36, 40, 40, 77},
				    {36, 41, 01, 36, 01, 01, 41, 36},
				    {41, 41, 41, 77, 01, 01, 01, 01},
				    {37, 40, 40, 36, 01, 01, 01, 76},
				    {37, 40, 40, 76, 41, 41, 41, 36},
				    {77, 01, 02, 04, 10, 20, 40, 40},
				    {36, 41, 41, 36, 41, 41, 41, 36},
				    {36, 41, 41, 41, 37, 01, 01, 76} };
    }
    public AlphaNumericDisplay() {
	h_res = 6;
	v_res = 8;
	n_symbol = 10;
	symbol = 8;
	setSymbolMap();
    }
    public void setSymbol (int insym) {
	symbol = ( (insym <= n_symbol && insym >= 0) ? insym : 0);
    }
    public String displaySymbol () {
	String displayed_symbol;
	displayed_symbol = "\n";
	for (int i=0; i<v_res; i++) {
	    displayed_symbol = displayed_symbol + 
		mapSymbol((symbol_map[symbol][i])/10);
	    displayed_symbol = displayed_symbol + 
		mapSymbol((symbol_map[symbol][i])%10) + "\n";
	}

	return (displayed_symbol);
    }
    private String mapSymbol(int dig)
    {
	switch (dig) {
	case 0: return("   ");
	case 1: return("  #");
	case 2: return(" # ");
	case 3: return(" ##");
	case 4: return("#  ");
	case 5: return("# #");
	case 6: return("## ");
	case 7: return("###");
	}
	return ("Error");
    }
}
